Tienes pocas opciones. En primer lugar, puede utilizar un tercero para realizar la autenticación por usted, como OpenID, Twitter, Facebook, etc. Probablemente sea mejor admitir la mayor cantidad posible, ya que no puede saber quién tiene una cuenta en qué servicio. Usar un tercero significa que no necesita manejar credenciales en absoluto. Eso es una victoria para ti.
Sin embargo, no todos tienen cuentas de redes sociales, por lo que para almacenar las credenciales de los usuarios, debe almacenarlas utilizando una función de Hash salada. Una función de hash segura guarda la contraseña en un formato que no es reversible: IOW, no es encriptación. Una función hash segura toma entradas arbitrarias de longitud y genera una salida única de longitud fija (el valor hash). Secure tiene funciones que tienen tres propiedades:
- Dado un valor hash, no puede recuperar la entrada.
- La misma entrada en una función hash segura siempre dará como resultado la misma salida.
- Dado que tiene un valor y un algoritmo de hash seguro, no puede descifrar la entrada (es por eso que los hashes seguros NO son cifrados).
Los hashes seguros se pueden revertir (supuestamente), pero los programas de adivinación de contraseña pueden probar varias entradas para encontrar la entrada que coincida con una salida (también conocido como un ataque de diccionario).
- ¿Cuál es el mejor sistema operativo de prueba de penetración?
- ¿Qué calificaciones considera al contratar a un recluta para una carrera de seguridad cibernética?
- Distribución de software: quiero un programa (preferiblemente gratuito) que, cuando descargue cualquier tipo de archivo a mi computadora, haga un registro de la fuente de la descarga. ¿Donde puedo conseguir uno?
- ¿Cuáles son las ventajas y desventajas de utilizar un certificado SSL gratuito para firmar y cifrar correos electrónicos?
- ¿En qué campo de TI debo entrar? ¿Garantía de calidad (automatización), ciberseguridad (cumplimiento) o servicio de asistencia?
Utiliza sales, un par de caracteres generados aleatoriamente que se agregan al valor hash, lo que hace que los diccionarios precalculados sean difíciles de crear y usar.
Los buenos hashes de hoy son SHA-1, SHA-2 y otros.
Almacene su hash salado en su base de datos junto con el nombre de usuario y otras cosas. Si un atacante obtiene su base de datos de contraseñas, tendrá que ejecutar algún tipo de ataque para adivinar las contraseñas.
También puede fortalecer sus contraseñas forzando el uso de caracteres, símbolos y números mixtos, manteniendo un historial de contraseñas para detener la reutilización de contraseñas en los cambios, etc.
Encuentre una biblioteca o algo en su idioma de elección que maneje la autenticación por usted. Escribir buenas rutinas criptográficas (y el código que las usa) es muy difícil. Escribir malas rutinas es muy fácil.