Gran parte del trabajo sobre contraseñas y claves está relacionado con el control de dónde se almacenan y se copian.
-
Una contraseña se almacena en la mente de un usuario humano. Se ingresa en un teclado (o equivalente) y pasa por los registros de una CPU y la RAM de la computadora, mientras se procesa. A menos que se cometan errores terribles, la contraseña nunca llega a un área de almacenamiento permanente como un disco duro.
-
Un algoritmo existe como código fuente en algún lugar, en la máquina de un desarrollador, un sistema de versiones de origen y copias de seguridad. Existen documentos de diseño, que se han mostrado a varias personas (por ejemplo, aquellos que deciden si financiar el desarrollo del sistema o no) y, a menudo, se depositan de forma negligente en un estante anónimo en alguna capa de corteza en el escritorio típico. Más importante aún, el algoritmo también existe como un archivo ejecutable en el propio sistema implementado; binario no es tan legible como el código fuente, pero la ingeniería inversa funciona sin embargo.
Por lo tanto, no podemos considerar razonablemente que el algoritmo sea secreto, o al menos tan secreto como la contraseña (o la clave).
Realmente, los métodos criptográficos se dividieron hace un siglo en el algoritmo y la clave precisamente por eso: en un sistema en funcionamiento, parte Del método necesariamente se filtra trazas por todas partes. Tener una llave significa concentrar el secreto en la otra mitad, la parte que podemos mantener en secreto.
"Seguridad a través de la oscuridad" es una expresión que usa el término oscuridad>, no secreto . La criptografía se trata de lograr seguridad a través del secreto . Esa es toda la diferencia: una contraseña puede ser secreta ; un algoritmo es, en el mejor de los casos, oscuro . La oscuridad se disipa tan pronto como un chico inteligente piensa en traer una linterna metafórica. El secreto es más como una caja fuerte de acero: para romperla, necesitas herramientas más poderosas.
Smart guy Auguste Kerckhoffs ya lo escribió hace más de un siglo. A pesar de la invención de la computadora y de toda la tecnología actual, sus hallazgos siguen vigentes. A los practicantes de criptografía les tomó un tiempo aprender esa lección; 60 años después, los alemanes seguían apostando mucho por el "secreto" del diseño de la máquina Enigma . Tenga en cuenta que cuando los alemanes pusieron en uso el Enigma naval de 4 rotores, los criptógrafos aliados tuvieron inconvenientes (el craqueo de rutina se detuvo durante algunos meses) pero no se desconcertó por completo porque algunos documentos capturados del año anterior se referían al desarrollo de la nueva versión, con Un cuarto rotor "reflector". Ahí lo tiene: el algoritmo secreto no se pudo lograr en la práctica.
Un giro adicional es que la oscuridad del algoritmo puede dañar la seguridad . Lo que explico anteriormente es que no se puede confiar en la oscuridad para la seguridad: podría aumentar la seguridad, pero no mucho (y realmente no se puede saber "cuánto"). Resulta que también puede disminuir la seguridad. El problema es el siguiente: es muy difícil hacer un algoritmo criptográfico seguro. El único método conocido es publicar el algoritmo y esperar a que la sabiduría colectiva de los criptógrafos de todo el mundo lo roe y llegue a una conclusión que puede expresarse como "se puede romper de esa manera" o "aparentemente robusto". Un algoritmo se declara "bueno" solo si resistió el ataque de docenas o cientos de criptógrafos competentes durante al menos tres o cuatro años.
Internet, la dilación académica y la arrogancia humana son tales que, con la campaña de comunicaciones adecuada, puede hacer que estos pocos cientos de criptógrafos hagan ese trabajo difícil de evaluar de forma gratuita; siempre que realice la Algoritmo público (y "atractivo" de alguna manera). Si desea mantener el algoritmo oscuro, entonces no puede beneficiarse de dicha consulta gratuita. En cambio, tienes que pagar. Veinte buenos criptógrafos por, digamos, dos años de esfuerzo: aquí estamos hablando de millones de dólares. Nadie hace eso, eso es demasiado caro. En consecuencia, los algoritmos oscuros son invariablemente mucho menos probados por el estrés que los algoritmos públicos y, por lo tanto, menos seguros .
(Tenga en cuenta la letra pequeña: la seguridad no solo consiste en no romperse, sino también en tener un conocimiento a priori de que no se producirán infracciones. Quiero poder dormir por la noche. )
Summary:
- Usted no debería mantener su algoritmo en secreto.
- Usted no sabe cuánto es secreto su algoritmo.
- Usted no puede mantener en secreto su algoritmo.
- Pero puede y debe mantener su contraseña en secreto, y puede saber "cuánta" es en secreto (eso es todo el asunto de la "entropía").