¿Cómo evitan el problema del huevo y la gallina las nuevas técnicas / protocolos de seguridad y criptografía?

10
  

. . Se han propuesto mejores soluciones y valdrán la pena considerarlas una vez que hayan superado la prueba del tiempo (es decir, "5 a 10 años en el campo, y aún no se hayan roto").

- De la excelente de Thomas Pornin sobre el hashing de contraseñas .

La cita me parece ser un caso de la gallina y el huevo. Las nuevas soluciones necesitan experiencia de campo, pero hasta que no obtengan experiencia de campo, no se puede confiar en ellas y, por lo tanto, no se pueden usar en el campo.

El proceso de selección de AES evitó el problema al aportar una gran cantidad de fuerza académica. Durante cinco años, los mejores criptógrafos del mundo examinaron meticulosamente los algoritmos enviados, con el resultado de que Rijndael fue elegido como el mejor compromiso entre seguridad, velocidad y facilidad de uso.

Pero AES tenía la importante ventaja de que la norma que estaba reemplazando era demostrablemente débil contra el hardware de computadora moderno y con una necesidad extrema de reemplazo. La mayoría de los nuevos protocolos o algoritmos no tienen este límite estricto para ayudarlos a lograr prominencia.

Dado que la respuesta estándar a "qué algoritmo?" o "¿qué método?" es siempre "usar lo confiable", ¿cómo las nuevas soluciones obtienen su experiencia de campo? ¿Se basa en que alguien tome un acto de fe con sus datos confidenciales, o confíe en el uso de la nueva solución con datos no confidenciales y luego en la extrapolación según esa experiencia, o qué?

(Entiendo que el contexto de la cita se relacionó específicamente con el hashing de la contraseña. Si generalizar esto a todos los métodos de seguridad es injusto o fuera de la base, saber por qué sería útil).

    
pregunta Jonathan Garber 04.09.2013 - 17:14
fuente

2 respuestas

4

El proceso de arranque se logra cuando las personas do usan el nuevo algoritmo. Para ganar confianza en la fuerza del algoritmo, debe tener exposición . La exposición se logra a través de competiciones formales como para AES , o, más recientemente, para SHA-3 ; o se logra a través del algoritmo que se implementa ampliamente y se convierte en un objetivo interesante.

Las competiciones abiertas son complicadas: para reclamar un buen nivel de exposición, la competencia debe haber atraído a muchos investigadores durante bastante tiempo, y eso no es fácil porque los investigadores académicos rara vez trabajan por dinero , pero para la gloria (o al menos lo que pasa como fama en los círculos académicos). Necesita un patrocinador poderoso. NIST es bueno para eso, y lo hizo bien para AES; Podría decirse que SHA-3 también fue un éxito, aunque el final del proceso tiene un regusto algo amargo (porque el NIST actualmente está decidiendo qué ajustes introducirá en el algoritmo ganador, y dichos ajustes socavarán todo el proceso de creación de confianza). Hubo otras "competiciones" como eSTREAM para los cifrados de flujo; obtuvo una buena cantidad de exposición, pero "no tanto" como AES o SHA-3. Para el hashing de contraseñas, hay una competencia en curso que se encuentra en la fase de recopilación de candidatos (hasta el 31 de enero de 2014).

Amplia implementación se produce cuando alguna organización decide implementar el algoritmo "temprano", porque el nuevo algoritmo ofrece una ventaja de uso decisiva (por ejemplo, un algoritmo de firma que tiene firmas muy cortas o que requiere muy poca computación poder), o porque los poderes de esa organización sienten (erróneamente) que "más nuevo es mejor" y quieren ser los primeros en adoptar la nueva tecnología criptográfica ingeniosa. Por ejemplo, SSL se implementó ampliamente porque llenaba un nicho que no estaba cubierto de otra manera, a pesar de que el protocolo realmente no estaba a la altura de las "buenas prácticas" conocidas en ese momento (SSL 2.0 era bastante malo y llevó a una reescritura completa como SSL 3.0 menos de dos años después).

Por lo tanto, como criptógrafos, DEBEMOS recomendar que las personas se abstengan de usar algoritmos que son "demasiado nuevos" y "insuficientemente revisados", pero también estamos muy contentos de que algunas personas hagan lo "incorrecto" y no se abstengan de hacerlo; proporciona la exposición que es necesaria para el programa de arranque, y también garantiza que los criptógrafos no dejarán de trabajar (un artículo de investigación que destruye un protocolo mal especificado - WEP , te estoy mirando, sigue siendo un Artículo de investigación publicado ). Mientras tanto, lo mejor que podemos hacer es preparar : los criptógrafos pueden diseñar algoritmos basados en construcciones racionales que, por lo tanto, tienen una posibilidad razonable de sobrevivir al despliegue. Por ejemplo, cuando se describió por primera vez a bcrypt , (por supuesto) no se había expuesto en la naturaleza durante varios años, pero al menos los autores intentaron seguir algunas justificación justificada , y el algoritmo resultó ser "mayormente bueno".

    
respondido por el Tom Leek 04.09.2013 - 17:42
fuente
2

Descargo de responsabilidad: no soy un criptógrafo. Alguien * ahem * Bear * ahem * probablemente escribirá una respuesta más completa. Me gustaría señalar solo algunos puntos .

  

Pero AES tenía la importante ventaja de que la norma que estaba reemplazando era demostrablemente débil contra el hardware de computadora moderno y con una necesidad extrema de reemplazo. La mayoría de los nuevos protocolos o algoritmos no tienen este límite estricto para ayudarlos a lograr prominencia.

No es necesario un límite estricto para fomentar el estudio de nuevos algoritmos. Por ejemplo, el NIST recientemente concluyó una competencia para encontrar un nuevo algoritmo SHA-3 . Esto ha demostrado ser bastante exitoso para alentar a los criptógrafos a enviar y estudiar nuevos algoritmos. Sin embargo, SHA-2 sigue siendo seguro por todas las medidas existentes.

  

Dado que la respuesta estándar a "qué algoritmo?" o "¿qué método?" es siempre "usar lo confiable", ¿cómo las nuevas soluciones obtienen su experiencia de campo? ¿Se basa en que alguien tome un acto de fe con sus datos confidenciales, o confíe en el uso de la nueva solución con datos no confidenciales y luego en la extrapolación según esa experiencia, o qué?

Los nuevos algoritmos no necesariamente tienen que implementarse en aplicaciones de misión crítica para ser "estudiados". El proceso de crear nuevos algoritmos generalmente implica publicar un artículo sobre el algoritmo y tener interminables argumentos con otros criptógrafos sobre sus méritos. (Nota: no soy criptógrafo, solo asumo: P). Una vez que se han producido suficientes disputas, un algoritmo puede considerarse "seguro" o "roto" en un sentido matemático.

Si un algoritmo se considera "seguro", el siguiente paso para el algoritmo será obtener implementaciones buenas y fáciles de usar escritas para los lenguajes de programación más populares. Esto es crucial . La implementación importa y no es fácil hacerlo bien. Solo después de que se haya logrado esto, se puede considerar que un algoritmo es digno de uso en el campo. Probablemente habrá todo un proceso de errores que se encuentren y correcciones introducidas. La historia de SSL / TLS es un buen ejemplo de esto.

La primera parte es fácil. Los nuevos algoritmos son introducidos y estudiados frecuentemente en un sentido académico. La segunda parte, menos aún, tiene razón al decir que el hecho de que se prueben nuevos algoritmos y protocolos en el campo es un problema de la gallina y el huevo. Esto, lamentablemente, es un hecho de la vida. ¿Por qué arreglar lo que no está roto (todavía)?

    
respondido por el Ayrx 04.09.2013 - 17:31
fuente

Lea otras preguntas en las etiquetas