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 usuariop
.