Es un método sistemático que puede detectar un algoritmo criptográfico débil en el código fuente

0

El algoritmo criptográfico débil debe eliminarse del código fuente para evitar una falsa sensación de seguridad (por ejemplo: MD5. Por supuesto, es posible que exista un algoritmo en el código fuente, pero no usa el nombre "MD5"). sin embargo, ¿hay algún método / herramienta sistemático que pueda detectar un algoritmo de cifrado débil en el código fuente primero? El lenguaje del código fuente son Java y C.

    
pregunta Matt Elson 24.03.2016 - 09:50
fuente

2 respuestas

3

En primer lugar, md5 es una función hash, no una función de cifrado.

  • En cuanto a las funciones hash que se consideran rotas:

    Solo hay unos pocos, un simple egrep puede escupir algunos archivos fuente ofensivos si se les da la expresión correcta.

  • En cuanto a las cifras:

    • cifrados fuertes:

      Como Esta pregunta reciente demuestra que, la mayoría de las veces, el problema no es el cifrado real utilizado, sino que se utiliza de manera incorrecta, sin la suficiente comprensión del asunto.

      Esto no se puede detectar suficientemente bien, porque los problemas a menudo se introducen de una manera muy sutil, por ejemplo, solo los nombres de las variables hacen alusión a un problema.

    • los cifrados débiles (o modi débiles, como el BCE) se pueden colocar en el mismo archivo de cadenas de la lista negra que se usa para buscar md5 et al.

En segundo lugar, cuando lo pienso: md5 tiene casos de uso legítimos que no sean hash seguro (en los que no es tan bueno).

También, dices

  

Debería eliminarse el algoritmo criptográfico débil del código fuente para evitar una falsa sensación de seguridad

que no entiendo muy bien: ¿de dónde proviene la falsa sensación de seguridad? Los usuarios finales rara vez miran las fuentes, y si lo hacen, lo más probable es que puedan detectar lo que podría detectar muy rápidamente. Los desarrolladores de las fuentes deberían saberlo mejor. Si ese es un problema, prefiere educar a los desarrolladores en lugar de escanear sus fuentes en busca de criptografía débil.

    
respondido por el Tobi Nary 24.03.2016 - 10:01
fuente
1

Muchos algoritmos requieren algunas constantes mágicas. MD5 es uno de ellos. Requiere inicializar cuatro variables enteras de 32 bits a los siguientes valores:

0x67452301
0xefcdab89
0x98badcfe
0x10325476

Cuando estas cuatro constantes aparecen en el mismo archivo de código fuente, podría ser una implementación MD5. Sin embargo, un programador humano tendría que echar un vistazo para asegurarse de ello.

Tenga en cuenta que los lenguajes de programación a menudo tienen una gran variedad de formas posibles de representar literales enteros. Cada una de estas posibilidades necesita ser verificada.

    
respondido por el Philipp 24.03.2016 - 13:40
fuente

Lea otras preguntas en las etiquetas