SRP: ¿Se puede autenticar el cliente usando solo el hash almacenado?

3

Según la descripción de SRP , parece que una aplicación cliente puede almacenar en caché la contraseña con hash x y reutilizarlo para posteriores autentificaciones. La contraseña real p no parece usarse para nada, pero se calcula x en el lado del cliente.

Además de las ventajas más obvias de SRP sobre el hashing "habitual" del lado del servidor o del servidor (no es posible realizar ataques al diccionario incluso con contraseñas débiles), ¿son ciertas las siguientes suposiciones?

  • El servidor no tiene que almacenar contraseñas o datos equivalentes a contraseñas. Si se compromete el almacenamiento del servidor, un adversario que use esa información no podrá hacerse pasar por un cliente después del incidente.

  • El cliente tampoco tiene que almacenar la contraseña o datos equivalentes: la contraseña con hash se puede almacenar opcionalmente como un token de autenticación para su uso sin la interacción del usuario; alternativamente, se puede descartar y volver a calcular a partir de salt s y la contraseña proporcionada por el usuario p .

pregunta lxgr 09.11.2012 - 12:31
fuente

1 respuesta

3

Tus suposiciones son ciertas; son características de SRP.

En la descripción a la que te vinculas, ten en cuenta que el valor x se calcula a partir de la contraseña p y salt s (para que pueda ser re , computado en el lado del cliente si es necesario), y el verificador de contraseña v se obtiene de x con una exponenciación modular, que es bastante única. (la recuperación de x de v requiere el cálculo de un logaritmo discreto , que se sabe que es muy difícil y no factible si el módulo es lo suficientemente grande). El servidor almacena v , no x , y el conocimiento de v no es suficiente para autenticarse como cliente; necesita x para eso, que el servidor no almacena y, de hecho, nunca aprende .

    
respondido por el Thomas Pornin 09.11.2012 - 12:39
fuente

Lea otras preguntas en las etiquetas