Como mejorar la Autenticación de usuarios y hacerla segura

0
202

La autenticación es el proceso en el que se valida y verifica si un individuo o entidad es quién dice ser. La autenticación se efectúa comúnmente al enviar un usuario o ID y uno o más items de información privada que solo un usuario debería conocer.

El manejo de sesión es un proceso en el que un servidor mantiene el estado en que una entidad interactúa con este. Para esto se requiere que el servidor recuerde como reaccionar a las peticiones solicitadas a través de transacciones. Las sesiones son mantenida por el servidor por un identificador de sesión que se mantiene cuando el cliente y el servidor transmiten y reciben peticiones de información. Las sesiones deberían se únicas por usuario y difíciles de predecir computacionalmente.

Se recomienda reforzar la autenticación de un usuario o entidad usando las siguientes directrices:

Implementar controles de fortaleza de contraseñas.
Las siguientes características definen la fortaleza de una contraseña:

– Tamaño de la contraseña. Se recomienda un mínimo de 10 caracteres y un máximo de 128 caracteres.
– Complejidad. Se recomienda que una contraseña cumpla con 3 de los 5 puntos que se describen a continuación
* Por lo menos un carácter en minúsculas (a-z).
*Por lo menos un carácter en mayúsculas (A-Z).
* Por lo menos un número (0-9).
* Por lo menos un carácter especial (@#\!”·$()%&/)
* No se deben permitir caracteres más de 2 caracteres idénticos seguidos (1111).

Implementar Mecanismos seguros para la recuperación de contraseñas.
Las preguntas secretas para la recuperación de contraseñas muchas veces no son se consideran secretas dependiendo del tipo de persona que se va a autenticar, por ejemplo: Celebridades y personajes públicos. Por lo que se recomienda la implementación de verificación en 2 pasos para recuperar contraseñas.

Utilizar autenticación multifactor.

Para el uso de la autenticación multifactor se recomienda usar más de un factor conocido, estos factores son:
– Algo que se conoce (Detalles de cuentas o contraseñas)
– Algo que se tiene (tokens o teléfonos móviles)
– Algo que eres (Biométrica).

Hay muchas aplicaciones que implementar la autenticación multifactor que permiten la integración con aplicaciones web.

Mensajes de errores en autenticación
Una incorrecta funcionalidad de mensajes de notificación de errores en el proceso de autenticación pueden enumerar los factores que determinan el ID o la contraseña de un usuario. Tampoco se debe indicar el estado de una cuenta.

Ejemplo de los mensajes incorrectos:
“Contraseña Inválida”
“ID inválido”
“La cuenta no existe”
“Usuario inactivo”

Mensaje correcto
“Fallo de autenticación. ID inválido o contraseña”

Prevenir ataques de fuerza bruta
Si un atacante no puede adivinar contraseñas, lo más seguro es que recurra a técnicas para forzar la autenticación a través de la fuerza bruta. Para ejecutar ataques de fuerza bruta el atacante elabora algoritmos complejos hechos para encontrar posibles combinaciones de ID y contraseña que permitan acceder a una aplicación Web.
Se recomienda activar mecanismos que bloqueen una cuenta si se falla la autenticación más de 3 veces durante un periodo de tiempo (ej. 1 hora), en el caso de que un atacante pueda bloquear todas las cuentas de un sistema.
Uso de protocolos que no requieren contraseña
La autenticaciones de ID/contraseña y autenticación multifactor se consideradas como seguras, pero estas no son consideradas las mejores opciones ni mucho menos las más seguras, estos se pueden mitigar gracias a protocoles que pueden proteger los datos de un usuario de un atacante.

Los protocolos de autenticación más conocidos son:

OAuth es un protocolo que utiliza un token para autenticarse con un servidor que provee la forma en como un usuario va a usar un servicio a través de una aplicación. Sin la necesidad de tener contraseñas ni otras aplicaciones que actúen como proveedores de autenticación

OpenID, es un protocolo basado en HTTP que valida a un usuario que ofrece una interfaz para autenticar usuarios registrados en el servidor de OpenID. De esta forma un usuario solo puede usar un ID y una contraseña para cualquier aplicación que soporte la autenticación de OpenID sin tener que registrar un usuario en todas la aplicaciones web en las que se registre.

Dejar respuesta