Sí, se puede hacer. Esto se denomina Cambio de clave autenticado por contraseña . Dichos protocolos reutilizan los elementos "criptográficos asimétricos" (como Diffie-Hellman) y los mezclan "inteligentemente" con un secreto compartido, de modo que:
- El cliente y el servidor se autentican entre sí con respecto al secreto compartido.
- Adivinar el secreto compartido no permite descifrar sesiones pasadas.
- Nada en lo que se registra da suficiente información para probar los valores potenciales del secreto compartido.
La tercera condición implica que un secreto compartido de baja entropía, por ejemplo, Una "contraseña", todavía se puede usar de manera segura, de ahí el nombre para este tipo de protocolo. El concepto criptográfico fue inventado en 1992 por Bellovin y Merrit, bajo el nombre de "intercambio de clave cifrada" (formalmente, un intercambio de clave DH en el que los mensajes se cifran simétricamente con el secreto compartido, de modo que el descifrado con el secreto incorrecto todavía produce un DH sintácticamente válido) mensajes - los requisitos matemáticos reales son sutiles).
En el contexto de SSL / TLS, se ha definido un protocolo PAKE estándar, bajo el nombre SRP (vea también la página de Wikipedia ). SRP es bueno. Desafortunadamente, los navegadores web no parecen admitirlo (todavía).