Compartir Login SAML y LDAP
Introducción
El almacenamiento de las claves de forma segura es uno de los pilares de cualquier mecanismo de autenticación, ya que incluso ante una filtración de datos debería resultar imposible para el atacante poder determinar las claves originales de los usuarios.
SimpleSAMLPhp delega el tratamiento de la clave en el módulo que realiza la autenticación, en nuestro caso particular buscamos darle la mayor seguridad posible a las mismas, tomando como punto de partida los algoritmos que vienen usando el resto de nuestras aplicaciones.
El default para LDAP establecido por el estandar para el almacenamiento de claves, se encuentra en SSHA (Salted SHA-1).
Nota: a partir de la versión 3.2.0 de Arai-Usuarios, se soporta vía LDAP la autenticación (o bind) mediante el algoritmo
BCrypt
.
Passwords bcrypt y sha
De mas esta decir que al tratarse de diferentes algoritmos de hasheo, los resultados no son comparables entre si.
SHA (Secure Hash Algoritm)
Es una familia de funciones de hasheo, que se crearon para ser utilizadas como estandar en la creación de huellas digitales y en su versión salteada (SSHA o Secure SHA-1) se utiliza por LDAP como defecto en la operacion
Bind
.Dados los avances en criptografía el uso de SHA-1 ha sido deprecado hace unos años y aunque su version salteada es mas segura, el incremento de la capacidad de calculo augura un periodo breve por el cual los hashes no sean revertidos en su totalidad, tal como sucedio con SMD5.
Bcrypt
Es parte de una serie de algoritmos que ya incorpora el concepto de salt desde su concepcion, con cantidad de iteraciones variable para adaptarse al creciente poder de calculo y hasta el momento no ha sido encontrada vulnerabilidad para el mismo.
Por estas ultimas razones, es que hace años las aplicaciones SIU traen como default este algoritmo para el almacenamiento de claves.
Pasaje de password existentes
Durante la importación de usuarios (guia-importacion-usuarios-cuentas.md) a medida que se van creando los mismos se almacenan sus claves, las cuales:
- Serán las que provengan de la aplicación origen junto con su algoritmo especifico
- Serán autogeneradas en caso de no ser provistas y hasheado con el algoritmo especificado en la configuración (parametro
password_algoritmo
)
Usando LDAP Bind
Para aquellos usuarios que necesiten autenticarse contra el LDAP vía Bind, se deberá asegurar:
- configurar el algoritmo a SHA256; y que al momento de la importación de usuarios se incluya el password y algoritmo en el JSON requerido.
- configurar el algoritmo a BCrypt; y que utilizan la v3.2.0 de arai-usuarios para soportar LDAP Bind por medio del algoritmo
BCrypt
La segunda opción es la que se recomienda su utilización en producción, puesto que:
- permite mantener la base de usuarios y claves pre-existentes en arai-usuarios, y permitir que dichos usuarios sean utilizados desde para LDAP BIND desde otra aplicación o software externo.
- utiliza el algoritmo de mayor fortaleza para mantener los hashes de las constraseñas.