¿Es posible crear un certificado X.509 a partir de una clave privada de Ethereum/Bitcoin?

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:

  1. Yo (el usuario) genero un certificado SSL a partir de una clave privada de Ethereum (una vez) y lo importo al navegador
  2. Me conecto a un sitio web proporcionando ese certificado
  3. El sitio web confía en que poseo la dirección de Ethereum correspondiente. Tenga en cuenta que esto no me permitirá firmar ninguna transacción, pero al menos me permitirá demostrar que soy el propietario de esa dirección. Dependiendo del caso de uso, eso a veces es suficiente.

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?

Te refieres a este enlace. Espero que sea útil. seguridad.stackexchange.com/questions/44251/…

Respuestas (1)

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 .

¡Gracias! Votando la respuesta. Incluso lo marcaría como la respuesta esperada, pero no cubriste la parte de las CA. Muchas gracias por la información y los enlaces.
Lo siento, no tuve que tratar con CA, así que no sé nada de eso. Técnicamente debería ser posible firmar un certificado con cualquier curva elíptica. Pero las CA tienen sus propias reglas que deben seguir, por lo que deberá preguntarles directamente.