2011-01-09 21 views
8

Actualmente estoy trabajando en un proyecto que implica autenticar usuarios de forma segura. He estado leyendo mucho sobre SRP, y todavía no he logrado entender mis conceptos básicos. Le agradecería que me explicara la idea y la implementación de SRP en términos sencillos.Contraseña remota segura (SRP) en términos sencillos

Nota: No publique enlaces a sitios web sobre SRP, ya que estoy seguro de que he buscado en Google y leído la mayoría de ellos; a menos que sea un documento que explique SRP en un lenguaje lúcido.

Respuesta

9

Comience con que ambas partes ya hayan acordado una contraseña.

En la primera parte del protocolo, ambos lados generan un número aleatorio y utilizan algunas matemáticas claras que implican eso y la contraseña para acordar un secreto compartido aleatorio. Esto se hace de tal manera que cada vez es diferente (aunque la contraseña sea la misma), nadie que escuche por el cable puede determinar el secreto compartido, y solo funciona si ambas partes conocen la contraseña. (Las matemáticas involucradas se basan en el problema del logaritmo discreto, estrechamente relacionado con Diffie-Hellman).

Las partes luego se comprueban mutuamente que ambos han acordado el mismo secreto compartido (es decir, ambos conocen la contraseña), nuevamente sin revelarlo a nadie que esté escuchando. Esto requiere más (diferente) matemática ordenada.

Siempre que ambas partes estén satisfechas de que tienen el mismo secreto compartido, pueden derivar las claves de sesión de él y comenzar a comunicarse con su elección de cifrado.

+0

¿almacenan la "contraseña" acordada en alguna parte? ¿Se puede comprometer la contraseña? – Anup

+0

El servidor almacena solo un bloque de datos derivados de la contraseña. Los mecanismos utilizados significan que no es posible determinar la contraseña del bloque de datos, ni el bloque de datos se puede usar como si fuera la contraseña. – crazyscot

+0

Entonces, ¿esto es efectivamente equivalente (desde una perspectiva de recuadro negro) a mí al usar un KDF para generar un par de claves públicas y privadas, dando la mitad pública al servidor y luego utilizando la autenticación de clave pública estándar para autenticar conexiones futuras? – Ajedi32

Cuestiones relacionadas