¿El uso de claves DSA es un riesgo para la seguridad?

6

De acuerdo con las respuestas en esta pregunta , las diferencias entre RSA y DSA parecen ser triviales. Sin embargo, de acuerdo con esta página , la DSA compromete su seguridad si alguien está olfateando sus paquetes cuando usa la tecla. Y de acuerdo con esta página , DSA está limitado a 1024 bits.

Si esas afirmaciones son ciertas, no puedo ver ninguna razón para usar las claves DSA. Sin embargo, la política de la empresa en la que estoy trabajando solo permitirá claves DSA.

¿Cuál es la verdad? ¿El uso de DSA realmente reduce la seguridad tanto como me parece?

    
pregunta iconoclast 18.01.2013 - 16:47
fuente

2 respuestas

10

Has leído mal la página sobre el rastreo de paquetes; ya es paranoico y alarmista, pero no hasta ese punto.

Al producir una firma DSA , el motor de firmas funciona en un grupo que está integrado por un módulo p (un número primo grande) y una orden de grupo q (un primo más pequeño, divisor de p-1 ). Estos valores forman parte de la clave pública. Para cada firma , el motor de firmas debe usar un generador de números aleatorios para producir un valor aleatorio k que DEBE seleccionarse uniformemente en el 1..q-1 rango. El término "uniformemente" es muy importante. Si la elección de k es parcial, entonces permite la recuperación de claves después de observar varias firmas. Si esto es crítico o no depende del sesgo. Un sesgo relativamente pequeño (p. Ej., k se genera como una secuencia de bits del tamaño de q , luego el módulo reducido q ) incurrirá en un " académico "rompe con la recuperación de claves después de aproximadamente 263 firmas: un ataque, sí, pero no es práctico. Por otro lado, si el generador aleatorio es tan inestable que siempre da el mismo valor para k , entonces las firmas dos son suficientes para volver a calcular la clave privada. Sony implementó un sistema de firma / firma RNG totalmente fallido .

Lo que esto significa es que si la implementación de un algoritmo de firma es falsa, bueno, puede filtrar datos importantes, incluida la clave privada. Esto es cierto para cualquier algoritmo criptográfico, y RSA no está exento. Señalar a DSA es injustificado.

(Lo que puede decirse con toda neutralidad es que DSA y ECDSA requieren una fuente de aleatoriedad para cada firma, que es un requisito relativamente importante para los sistemas integrados como las tarjetas inteligentes. Existen soluciones; tengo tiempo, Yo trabajo en el tema . Edit: ahora es un RFC publicado .)

En cuanto al tamaño de clave , el estándar actual especifica tamaños de 1024, 2048 y 3072 bits (que es el tamaño de p ). Una versión anterior del estándar solo permitía 1024 bits, mientras que una versión más antigua permitía todos los tamaños múltiples de 64 a 524 bits. Varias implementaciones implementadas de DSA están un poco retrasadas respecto al estándar de 2009 y, por lo tanto, solo permiten claves de 1024 bits.

Una clave DSA de 1024 bits no es un riesgo crítico. Por lo que sabemos, DSA parece ser al menos tan fuerte como RSA con el mismo tamaño de clave y, en la práctica, un poco más fuerte. DSA se basa en logaritmo discreto y el registro actual de DL-break es de 530 bits, mientras que el registro actual de factorización (RSA) es de 768 bits. Los mejores algoritmos conocidos para la factorización y la DL tienen muchas similitudes, pero el paso final (donde se necesita mucha RAM rápida) parece ser más costoso con la DL que con la factorización. Por lo tanto, en este momento, una clave DSA de 1024 bits no es un verdadero riesgo de seguridad . Sobre todo porque, para las firmas, tenemos menos de qué preocuparnos por las futuras interrupciones que por el cifrado; y DSA es solo de firma.

El problema principal con DSA es que no es tan ampliamente soportado como RSA; cuando se admite , puede tener limitaciones (por ejemplo, limitadas a claves de 1024 bits, o utilizables solo en conjunto con un conjunto limitado de otros algoritmos criptográficos). Estas limitaciones no son intrínsecas al algoritmo, sino que reflejan el estado del mercado, que está dominado por RSA. Sin embargo, actualmente está bastante de moda cambiar a variantes de curva elíptica de DSA y, en consecuencia, el mercado está lentamente > muy lentamente) cambiando hacia un mayor soporte para DSA (EC).

    
respondido por el Thomas Pornin 18.01.2013 - 17:17
fuente
2

Viendo sus dos problemas:

  1. El uso de un RNG incorrecto filtra la clave privada

    Este es un problema con la forma en que generalmente se describe e implementa DSA, pero no es un problema inherente de DSA. Puede implementar DSA de manera determinista para evitar este problema.
    Creo que es un defecto en las implementaciones típicas, y debería ser corregido. Pero al parecer, los que trabajan en estas implementaciones no están de acuerdo o quieren seguir algunos procedimientos estándar defectuosos.

    Los sistemas con un RNG roto son un gran problema, sin importar qué criptografía uses. Por ejemplo, a menudo se romperá totalmente la confidencialidad de sus conexiones cifradas porque las claves de la sesión son malas. Evita estos sistemas a toda costa.

    Matthew Green escribió una publicación de blog sobre los problemas que causa un RNG malo: Sobreviviendo a un mal RNG

  2. DSA está limitado a 1024 bits

    Algunos estándares más antiguos (FIPS 186-2) exigen claves de 1024 bits, y algunas implementaciones podrían limitarse a ese tamaño. Pero el nuevo estándar FIPS 186-3 los permite, y muchas implementaciones admiten claves de 2048 bits.

    Así que ya no creo que esto sea relevante.

  

Si esas afirmaciones son ciertas, no veo ninguna razón para usar las claves DSA [sobre las claves RSA]

Hay pocas razones para usar un DSA de campo finito sobre RSA. Tienen un rendimiento similar en niveles de seguridad similares. Pero ECDSA, que es DSA en curvas elípticas, ofrece un mejor rendimiento (al menos para la firma) con altos niveles de seguridad. Así que hay razones para usarlo, a pesar de la debilidad de los RNG rotos.

    
respondido por el CodesInChaos 18.01.2013 - 17:16
fuente

Lea otras preguntas en las etiquetas