Distribución de claves es un tema en el que bastante se han escrito muchos documentos , y probablemente lo harán. Básicamente, uno necesita algún tipo de canal seguro para recibir la clave, pero ese canal seguro aún no está allí, por lo que la clave es necesaria en primer lugar.
El poderoso atacante
Para esta respuesta, comience con la imagen de un atacante muy poderoso, por ejemplo. un atacante Dolev-Yao que puede escuchar, interceptar y sintetizar cualquier mensaje en la red. Por supuesto, estos atacantes tienen mucho más poder de lo que comúnmente es razonable, pero también es el punto de partida en la investigación de seguridad común. Bajaremos el barier más adelante.
Dado nuestro poderoso atacante, en realidad necesitamos un poco de confianza bootstrapped. Por ejemplo, si tiene algún tipo de esquema de cifrado de correo electrónico en su lugar, podría utilizarse. Piense PGP o S / MIME. Esto aún deja un problema de confianza, pero en el primer caso puede delegarse a una decisión informada basada en su web de confianza o en el segundo caso la decisión de la autoridad de certificación (probablemente solo en base a la verificación por correo electrónico). En otras palabras, la confianza está contenida en una de las estructuras existentes, y podemos basar nuestra decisión en suposiciones sobre lo que normalmente se consideran terceros de confianza.
Si pretende utilizar la criptografía de clave pública, por ejemplo, Llaves SSH. Cambias el problema. Ahora, no necesita la confidencialidad de la clave, pero su usuario debe poder mantener la integridad cuando le envíe la clave pública. En el ejemplo de cifrado de correo electrónico, uno tendría que asegurarse de que el mensaje con la clave pública que se usará para el servidor esté firmado por su empleado (en lugar de que esté correctamente cifrado para él y para él solo para que lo lea).
Por lo tanto, cuando la confidencialidad es su problema, encripte con cierta confianza de arranque, como las proporcionadas por las herramientas de encriptación de correo electrónico (o similar), y cuando la integridad es su causa, deje que su empleado firme con la confianza de arranque.
El atacante que es poderoso en un solo canal
Más realista, el atacante tiene poder sobre solo uno o más canales inseguros. En otras palabras, asume la existencia de un canal seguro en el lado de su canal principal. Este canal se puede usar para enviar información adicional que se requiere para comprender el mensaje principal o para verificar el mensaje principal. Por ejemplo, puede cifrar la contraseña con otra contraseña y enviarla por correo electrónico. En el lateral, envías un SMS con la contraseña necesaria para descifrar la contraseña. De esta manera, hay que comprometer dos canales. Tenga en cuenta que esto podría ser cualquier combinación (correo postal, teléfono, SMS, correo electrónico, fax, etc.) siempre que estén lo suficientemente desconectados para que esté seguro. Por lo tanto, un teléfono inteligente que maneja tanto los SMS entrantes como el correo electrónico no es lo suficientemente bueno.
El enfoque de dos canales podría jugarse de manera similar en la situación de integridad, por ejemplo, Enviar la clave pública a través de dos canales separados. De esta manera, debe verificar estos resultados entre sí.
Notas concluyentes
Hay muchos otros métodos, pero espero que esto genere una carga demasiado alta contra no demasiada seguridad adicional, ya que todavía estás tratando con humanos.
Además, las cosas que requieren un cambio de contraseña directamente en el primer inicio de sesión serían adiciones inteligentes.
Finalmente, notará que todas estas son preguntas de confianza, que son fundamentales para muchos sistemas criptográficos y otros métodos de seguridad. Debería encontrar el equilibrio adecuado entre paranoia y ser ingenuo, por ejemplo. el sistema de certificados utilizado por SSL y S / MIME ciertamente no es fantástico, pero generalmente se encuentra lo suficientemente bueno para la banca en línea, por lo que cuando no se está comunicando acerca de misiles nucleares, es probable que funcione bien. Solo asegúrate de hacer una auditoría razonable.