A todos nos encantan las claves privadas de Ethereum/Bitcoin (es decir, EC secp256k1), porque nos permiten firmar transacciones. Sin embargo, los navegadores no admiten esas claves para la autenticación; lo que sí (más o menos) admiten son certificados SSL del lado del cliente.
Entonces, la pregunta obvia que viene a la mente es: ¿cómo sería generar un certificado SSL X.509 a partir de una clave privada de Ethereum (o Bitcoin para el caso)? ¿Los servidores reconocerían tales conexiones HTTPS autenticadas? ¿Qué soporte faltaría en el lado del cliente?
Para resumir, el primer flujo de trabajo que tengo en mente es la autenticación de cliente SSL:
Otro flujo de trabajo que me viene a la mente son las CA (autoridades de certificación, piense en "Verisign"). El trabajo de una CA es firmar certificados X.509. Entonces, si pudiera generar un certificado desde una dirección de Ethereum, podría tener ese certificado firmado por una CA y, por lo tanto, unir Ethereum con la enorme infraestructura de red de confianza que ya existe. Todas esas CA bien establecidas podrían comenzar a firmar certificados EC, anclando así las direcciones de Ethereum a entidades de la vida real.
Entonces, la parte clave es derivar un certificado X.509 de cliente o servidor a partir de una clave privada EC. ¿Es eso factible? ¿Cuáles son los obstáculos o impedimentos?
Es posible crear certificados con claves secp256k1 usando OpenSSL, por ejemplo, seguir OpenSSL genera diferentes tipos de certificados autofirmados .
El problema principal es que los certificados con claves secp256k1 no son compatibles . Por ejemplo, los navegadores más populares solo admiten secp256r1 y secp384r1, pero no secp256k1 https://www.ssllabs.com/ssltest/clients.html .
tiennv