Existen dos clases de conjuntos de cifrado TLS-SRP: el primer tipo de conjuntos de cifrado utiliza solo autenticación SRP . El segundo tipo utiliza autenticación SRP y certificados de clave pública en conjunto para mayor seguridad.
Por lo general, TLS utiliza solo certificados de clave pública para la autenticación. TLS-SRP utiliza un valor derivado de una contraseña (el verificador SRP ) y una sal, compartida de antemano entre las partes que se comunican, para establecer una conexión TLS. Existen varias razones posibles por las que se puede optar por utilizar TLS-SRP:
El usuario final no necesita comprobar la URL que se está certificando. Si el servidor no conoce los datos derivados de la contraseña, simplemente no se puede establecer la conexión. Esto evita el phishing .
La autenticación con contraseña es menos propensa que la autenticación con certificado a ciertos tipos de errores de configuración, como certificados vencidos o campos de nombre común no coincidentes.
TLS-SRP proporciona autenticación mutua (tanto el cliente como el servidor se autentican entre sí), mientras que TLS con certificados de servidor solo autentica el servidor ante el cliente. Los certificados de cliente pueden autenticar al cliente ante el servidor, pero puede resultar más fácil para un usuario recordar una contraseña que instalar un certificado.
Implementaciones
TLS-SRP se implementa en GnuTLS , [1] OpenSSL a partir de la versión 1.0.1, [2] Apache mod_gnutls [3] y mod_ssl , cURL , TLS Lite [4] SecureBlackbox [5] y wolfSSL . [6]
Normas
RFC 2945: “El sistema de autenticación e intercambio de claves SRP”.
RFC 5054: “Uso del protocolo de contraseña remota segura (SRP) para la autenticación TLS”.