This site is the archived OWASP Foundation Wiki and is no longer accepting Account Requests.
To view the new OWASP Foundation website, please visit https://owasp.org
Guía de Referencias sobre Autentificación
Last revision (mm/dd/yy): 08/1/2015 IntroducciónLa autentificación es el proceso de verificación de que un individuo, entidad o sitio Web es quien dice ser. En el contexto de una aplicación Web, la autentificación, comúnmente es realizada mediante el envío de un nombre de usuario o ID y, uno o más datos de información privada que solo un determinado usuario debe conocer.
Reglas generales de autentificaciónID de usuarioAsegúrese de que sus nombres/identificadores de usuarios no sean sensibles a mayúsculas y minúsculas. El usuario 'smith' y el usuario 'Smith' deberían ser el mismo usuario. Dirección de correo electrónico como ID de usuarioMuchos sitios utilizan la dirección de correo electrónico como identificador de usuario, lo cual es un buen mecanismo para segurar un identificador único por cada usuario sin agregarle a éstos la carga de tener que recordar un nuevo nombre de usuario. Sin embargo, muchas aplicaciones Web no tratan correctamente las direcciones de correo electrónico, debido a conceptos equivocados sobre lo que constituye una dirección de correo electrónico válida. Specifically, it is completely valid to have an mailbox address which:
La parte local es la parte de la dirección de correo electrónico que se encuentra a la izquierda del caracter '@'. El dominio es la parte de la dirección de correo electrónico que se encuentra a la derecha del caracter '@' y consiste en cero o más etiquetas unidas por el caracter de punto. Al momento de estar escribir este artículo, el RFC 5321 es el estándar actual que define el protocolo SMTP y lo que constituye una dirección de correo electrónico válida. Por favor, tenga en cuenta que las direcciones de correo electrónico deberías ser consideradas datos públicos. En aplicaciones de alta seguridad, podrías asignarse los nombres de usuario y ser secretos en lugar de ser datos públicos definidos por el usuario.
ValidaciónMuchas aplicaciones Web contienen expresiones regulares informáticamente muy costosas e inexactas contain computationally expensive and inaccurate regular expressions para intentar validar las direcciones de correo electrónico. Cambios recientes generaron que el número de falsos negativos se viera incrementado, particularmente debido a:
Siguiendo el RFC 5321, las mejores prácticas para la validación de una dirección de correo electrónico deberían ser:
Para asegurarse que una dirección de entrega sea verídica, la única forma es enviar un correo electrónico al usuario y que éste deba tomar alguna acción para confirmar que lo ha recibido. Más allá de confirmar que la dirección de correo electrónico es válida y reciba los mensajes, esto también proporciona una confirmación positiva de que el usuario tiene acceso al buzón de correo y es probable esté autorizado a usarlo. Esto no significa que otros usuarios no tengan acceso al mismo buzón de correo, cuando por ejemplo el usuario utiliza un servicio que genera una dirección de correo electrónico deshechable.
NormalizaciónComo la parte local de las direcciones de correo electrónico son, de hecho, sensibles a mayúsculas y minúsculas, es importante almacenar y comparar las direcciones de correo electrónico correctamente. Para normalizar la entrada de una dirección de correo electrónico, debería convertir la parte del dominio SOLO a minúsculas. Desafortunadamente, esto hace y hará a la entrada, más difícil de normalizar y de coincidir correctamente con los intentos del usuario. Es razonable aceptar solo una única capitalización de diferentes alternativas para direcciones de correo electrónico idénticas. Sin embargo, en este caso es crítico para:
Implementar controles adecuados de fortaleza de contraseñaUna de las principales preocupaciones cuando se utilizan contraseñas para la autentificación, es la fortaleza de las contraseñas. Una política de contraseñas "fuertes" hace que sea difícil o incluso improbable adivinar la contraseña a través de medios manuales o automatizados. Las siguientes características definen una contraseña fuerte:
Longitud de la contraseñaLas contraseñas más largas proporcionan una mayor combinación de caracteres y en consecuencia hacen que sea más difícil de adivinar para un atacante.
Mientras que la longitud mínima forzada puede causar problemas para la memorización de la contraseña en algunos usuarios, las aplicaciones deberían alentarlos a establecer frases de paso o passphrases (frases o combinaciones de palabras) que pueden ser mucho más largas que las contraseñas típicas y mucho más fáciles de recordar.
Complejidad de la contraseñaLas aplicaciones deberían imponer reglas de complejidad de contraseñas para evitar las contraseñas fáciles de adivinar. Los mecanismos de contraseñas deberían permitir al usuario, poder tipear casi cualquier caracter como parte de su contraseña, incluyendo el caracter de espacio. La contraseñas deberían, obviamente, ser sensibles a mayúsculas y minúsculas a fin de incrementar la complejidad de las mismas. Ocasionalmente, encontramos sistemas donde las contraseñas no son sensibles a mayúsculas y minúsculas, frecuentemente debido a problemas de sistemas heredados como los viejos ordenadores centrales que no tenían contraseñas sensibles a mayúsculas y minúsculas.
Topologías de contraseña
Información adicional
|