it-swarm-es.com

¿Qué algoritmos criptográficos no se consideran seguros?

¿Qué algoritmos criptográficos no se consideran seguros, pero aún se usan ampliamente y están disponibles en bibliotecas estándar? Si corresponde, mencione una alternativa segura.

25
Olivier Lalonde

Estos son los mas comunes:

  • MD5 - Use SHA512
  • SHA1: use SHA512 (tenga en cuenta que esto no es realmente inseguro, pero muestra su antigüedad y será más frágil en los próximos dos años ...)
  • DES/3DES - Use AES
21
AviD

A fines de 2010, el gobierno de los EE. UU. Desprecia estos algoritmos basados ​​en las recomendaciones de los expertos en NIST:

  • SHA-1
  • RSA o DSA de 1024 bits
  • ECDSA de 160 bits (curvas elípticas)
  • 80/112-bit 2TDEA (dos claves triple DES)

MD5 nunca fue un algoritmo aceptable para uso gubernamental, junto con muchos otros algoritmos más antiguos.

Por seguridad hasta el año 2030, recomiendan utilizar al menos SHA-224, 2048 bits para RSA o DSA, EDCSA de 224 bits y AES-128 o triple-DES de 3 teclas.

Esto ha estado en proceso durante varios años. Vea esta publicación y los documentos del NIST a los que hace referencia: http://securitymusings.com/article/1587/algorithm-and-key-length-deprecation

Actualización: Otro conjunto conciso y útil de consejos es Respuestas criptográficas correctas por Colin Percival.

15
nealmcb

Los algoritmos criptográficos inseguros pero ampliamente utilizados incluyen:

  • funciones hash: MD4, MD5, (SHA-1) (MD2 también es inseguro pero no se usa ampliamente; SHA-1 solo está "debilitado"; MD4 y MD5 también se usan ampliamente en situaciones donde no se requiere resistencia criptográfica, por lo que no es un problema)

  • cifrado simétrico: DES (clave de 56 bits), RC4 (no aleatoriedad, pero la mayoría de los problemas de seguridad con RC4 están en cómo se usa, no debido al algoritmo en sí), el flujo cifrado en el formato de archivo Zip (las nuevas utilidades Zip usan AES)

  • cifrado asimétrico: RSA con una clave demasiado corta (es decir, 768 bits o menos), RSA con relleno incorrecto (por ejemplo, ISO 9796-1), módulo Diffie-Hellman un número primo demasiado pequeño (768 bits o menos) (Diffie-Hellman no es realmente un algoritmo de cifrado asimétrico, pero un algoritmo de acuerdo clave, pero la mayoría de los usos del cifrado asimétrico son acuerdos clave realmente disfrazados)

  • firmas digitales: RSA con una clave demasiado corta (es decir, 768 bits o menos)

  • muchos (demasiados) algoritmos hechos a mano por personas que se burlaron de sí mismos; un buen ejemplo es CSS, el cifrado para DVD

Alternativas seguras: SHA-256 para hashing (SHA-512 si tiene el mismo tamaño de fetiche que el Ejército de EE. UU., Y/o si quiere matar el rendimiento en sistemas de 32 bits), AES para cifrado simétrico. Para un acuerdo clave, considere ECDH (Diffie-Hellman sobre una curva elíptica) con una de las curvas NIST estándar (por ejemplo, P-224, K-233 o B-233, pero P-256 es más ampliamente compatible). Para el cifrado asimétrico, use RSA con una clave lo suficientemente grande (1024 bits para seguridad a corto plazo, preferiblemente 1536 o 2048 bits) y PKCS # 1 relleno (v1.5 "estilo antiguo" está bien, pero OAEP es más fino). Para las firmas, considere ECDSA (mismas curvas que para ECDH) o RSA con una clave lo suficientemente grande y relleno PKCS # 1 (v1.5 o PSS). Nunca diseñe su propio algoritmo (o, si lo hace, nunca cree que es seguro).

Sin embargo, la mayoría de los problemas de seguridad no están en la elección del algoritmo, sino en cómo se usan. WEP usa RC4, pero RC4 no es una de las numerosas debilidades de WEP. Sony protegió la PlayStation 3 con ECDSA, que es seguro, pero falló su generador de aleatoriedad, lo que resultó en una falla catastrófica (exposición de clave privada ...).

12
Thomas Pornin

El contexto es importante. ¿Seguro para qué ? ¿Cómo se está usando algo?

Por ejemplo:

  • AES-256 es "seguro". Hasta que decida cifrar una secuencia de datos estructurados en bloques con AES-256 en modo ECB .
  • AES-256 es "seguro". Hasta que encripte varios mensajes en modo CBC pero con la misma clave y el mismo IV .
  • AES-256 es "seguro". Hasta que use una implementación, la sincronización de la cual varía con los bits de la clave o de los datos .
6
yfeldblum

Aunque esta pregunta ya está respondida, me faltan muchas respuestas.

  • RC2, RC4
  • MD4 (todavía está disponible en algunas bibliotecas)

Además, depende del uso y el propósito del algoritmo. Romper DES no es difícil, pero es bastante caro. Considera quiénes son tus atacantes y cuánto dinero y esfuerzo pueden gastar para romper la seguridad?

5
Henri

Los enlaces a continuación pueden ayudarlo rápidamente a elegir el método y la longitud de clave adecuados para sus requisitos de seguridad (evitando así métodos inseguros):

"Este sitio web implementa fórmulas matemáticas y resume informes de organizaciones conocidas que le permiten evaluar rápidamente los requisitos mínimos de seguridad para su sistema. También puede comparar fácilmente todas estas técnicas y encontrar la longitud de clave adecuada para el nivel de protección deseado".

4
Tate Hansen

Obviamente, hay tantos algoritmos rotos como programadores que escriben sistemas de cifrado locales, pero en general están limitados a un paquete de software dado. Varios esquemas de "protección de contraseña" para documentos y archivos vienen a la mente como ejemplos.

Pero el único algoritmo de cifrado de propósito general (no el algoritmo de hash como otros están enumerando) que se considera "roto" para uso normal debido a fallas en el algoritmo (en lugar de la longitud de la clave), y que todavía está ampliamente implementado y aceptado, es RC4 .

Tenga en cuenta que la razón principal por la que RC4 se mantiene a pesar de sus defectos conocidos es que la vulnerabilidad puede mitigarse eliminando los primeros K resultados. Además, es el único cifrado de flujo ampliamente implementado, y muchos programadores no se dan cuenta de que puede convertir un cifrado de bloque en un cifrado de flujo utilizando un modo de encadenamiento de bloque apropiado.

2
tylerl

RC4 probablemente es mejor evitarlo. Su uso indebido fue la causa de los problemas en WEP, lo que sugiere que es difícil acertar incluso para los expertos. Usarlo correctamente significa elegir una clave lo suficientemente grande (al menos 128 bits), mezclar clave e IV de manera segura (por ejemplo, hashing en lugar de concatenación) y descartar la parte inicial de la secuencia de claves para mitigar los ataques de clave débil (256 octetos como mínimo).

1
stiabhan

Usando un cifrado de bloque como Blowfish o AES, cuando se opera en modo ECB (Electronic Code Book) .

0
Bradley Kreider