¿Cómo funciona la firma con Elliptic Curve Crypto?

5

Así que he leído y tengo una comprensión decente de cómo funciona el criptografía con la criptografía de curva elíptica. También creo que entiendo cómo funciona la firma con cosas como el algoritmo de firma digital de curva elíptica (ECDSA). El certificado y la clave privada en mi servidor web son claves RSA de 2048 bits. ¿Puedo hacer solo firmas RSA porque esas son mis claves? Si puedo hacer cosas como ECDSA, ¿cómo se encadena la confianza de mis claves RSA a las claves ECC que se usan para firmar bajo ECDSA?

    
pregunta user225295 06.07.2014 - 05:11
fuente

1 respuesta

1

La criptografía de curva elíptica (EC) es significativamente diferente a la criptografía tradicional de estilo RSA.

Línea inferior frontal ( BLUF ): su servidor solo puede manejar intercambios de claves RSA dada la información que proporcionó.

Como manual, ambos son protocolos criptográficos asimétricos. Se utilizan para transmitir de forma segura una clave SIMÉTRICA que ambas partes utilizan para cifrar los datos / mensajes reales. La razón detrás de esto es que los protocolos criptográficos asimétricos son extremadamente intensivos en computación en comparación con los protocolos criptográficos simétricos (en el caso general). Por lo tanto, cifrar un conjunto de datos grande o un mensaje de transmisión sería un recurso intensivo. En su lugar, se utiliza la clave simétrica.

Entonces volvamos a tu pregunta. Su firma digital ha sido creada y firmada indicando que su clave pública es una clave RSA de 2048 bits. Eso significa necesariamente que su clave privada también es una clave RSA: no puede usar los protocolos EC con esa firma digital o las claves que posee. Entonces, la respuesta a su primera pregunta es: Sí, solo puede hacer intercambios de claves RSA de 2048 bits en su servidor web.

Para crear / generar claves EC, debe recibir una (o más) de un proveedor ascendente o generarlas usted mismo a través de una herramienta de terceros como openssl.

Como nota adicional, los lectores pueden preguntarse por qué usaría EC sobre RSA. Bueno, eso es por el rendimiento. En teoría (al menos en lo que se ha comprobado hasta la fecha en la comunidad de seguridad), las claves EC ocupan mucho menos espacio y se ejecutan más rápidamente en un sistema en particular (las implementaciones de hardware pueden variar en contradicción con esa afirmación, pero solo en implementaciones de software en el mismo El sistema EC debería ser más rápido que el RSA de potencia equivalente).

Por ejemplo, de acuerdo con la página openssl en EC ( enlace ), cifrando una clave simétrica de 256 bits en RSA requeriría una clave RSA de 15360 bits pero solo una clave EC de 512 bits.

Así que ya ves, si estás ejecutando un servidor HTTPS con muchos clientes, querrías las claves EC porque puedes asegurar la clave simétrica mucho más rápidamente y reducir mucho el procesamiento general (incluida la cantidad de datos enviados) sobre el cable en los intercambios de claves).

A tu segunda pregunta. Si tuviera claves de EC, probablemente estarían en un certificado diferente porque se emitirían / generarían en un momento diferente. La confianza sería de cualquier fuente que sea su confianza actual, ya sea una autoridad de certificado raíz interno o una externa como verisign o godaddy.

En teoría, si a su certificado se le otorgaran los permisos adecuados, PODRÍA usarse para firmar certificados posteriores (lo que significa que su certificado es una autoridad de certificación intermedia que luego puede firmar solicitudes de otros dentro de su organización). Si ese fuera el caso (probablemente dado que su certificado no se usa en un servidor web), puede crear claves EC y una solicitud de firma de certificado EC y emitir un certificado que esté autorizado por su firma RSA de 2048 bits para permitir el uso para su , por ejemplo, clave EC de 384 bits.

Espero que esto ayude a algunos. Leí el enlace de openssl que publiqué un poco más sobre esto.

    
respondido por el Nick 27.07.2014 - 18:42
fuente

Lea otras preguntas en las etiquetas