Autenticación
- Área: Control de Acceso y Autenticación
- Tipo de pauta: Directriz
- Carácter de la pauta: Obligatoria
Se deben tener en cuenta las siguientes recomendaciones para garantizar la autenticación segura de los usuarios
Pautas
Título | Carácter |
---|---|
Autenticación negativa | Obligatoria |
Cabecera de referencia | No Recomendada |
Nombre de usuario en las consultas | Recomendada |
Número de registros devueltos | Obligatoria |
Pérdida de autenticación sobre funciones significativas | Obligatoria |
Uso de POST en los procesos de autenticación | Obligatoria |
Limitar el número de autenticaciones fallidas | Obligatoria |
Retardo tras autenticación fallida | Recomendada |
Autenticaciones en el cliente | No Recomendada |
Tokens en el cliente | No Recomendada |
Asociación de tokens de autorización con identificador de sesión | Obligatoria |
Envío de tokens | Obligatoria |
Firma electrónica | Recomendada |
Uso de certificados digitales | Recomendada |
Uso de DNIe | Recomendada |
Sistemas anti robots | Recomendada |
Geolocalización | Recomendada |
Sistemas de coordenadas | Recomendada |
Uso de Single Sign-On de escritorio | Recomendada |
Autenticación negativa
Utilizar la autenticación negativa
A la hora de comprobar la autenticación del usuario, debe partirse del caso en el que, por defecto, el intento de autenticación es incorrecto, debiendo confirmarse en el proceso de autenticación la corrección del intento. Mediante este enfoque, en caso de producirse algún tipo de error durante la autenticación, siempre se negará el acceso.
Cabecera de referencia
Evitar la utilización de cabeceras de referencia
En una cabecera de referencia se almacena información acerca de la ubicación previa de la que vino el navegador. En la mayor parte de los casos, el uso de esta cabecera de referencia no es recomendable, ya que es muy fácil que su información sea modificada o falsificada por los atacantes. No puede asignarse confianza a su valor, y puede ser difícil de limpiar y usar correctamente. Los programas que desplieguen el contenido de cabeceras de referencia, como un analizador de registros Web, deben protegerse cuidadosamente contra XSS y otros ataques de inyección HTML.
Si la aplicación tiene que usar cabecera de referencia, deberá únicamente hacerlo con un mecanismo de defensa en profundidad, y no tratar de limpiar su contenido, solo rechazarlo si no es correcto. Todo código tiene errores, así que debe minimizarse la cantidad de código que trata con la cabecera de referencia.
Nombre de usuario en las consultas
Usar sólo el nombre de usuario como clave para las consultas
Se debe evitar la búsqueda por varias claves dado que, de esta forma, aumentamos las posibilidades de que una de estas claves sea vulnerable.
Se recomienda que siempre que haya que hacer una búsqueda se haga con el mínimo número de claves posibles. Es recomendable protegerse de esta situación utilizando sólo el nombre de usuario como clave para las consultas.
Número de registros devueltos
Verificar que sólo se devuelve un registro
Pérdida de autenticación sobre funciones significativas
Comprobar la autenticación sobre las funciones significativas
La pérdida de autenticación sobre funciones significativas sucede cuando el software no realiza ninguna comprobación de autenticación al acceder a una funcionalidad significativa (que requiere una identificación del usuario) o que consume una cantidad significativa de recursos.
Las consecuencias de no realizar esta comprobación puede ir desde la ejecución de funcionalidades restringidas, como la lectura o modificación de datos sensibles, el acceso a la funcionalidad privilegiada administrativa o incluso la denegación del servicio debido a la gran cantidad de recursos que el usuario malintencionado puede demandar.
Se deben controlar que no existen funciones significativas de negocio fuera del marco de la autenticación.
Uso de POST en los procesos de autenticación
Utilizar siempre métodos POST en los procesos de autenticación.
Limitar el número de autenticaciones fallidas
Limitar el número de accesos fallidos consecutivos
Limitar el número de fallos consecutivos permitidos en una autenticación es una protección bastante eficaz para prevenir los ataques de fuerza bruta.
Hay que tener especial cuidado del entorno en el que se aplica, ya que este mecanismo de seguridad puede ser utilizado para realizar ataques de denegación de servicio contra otros usuarios. Sólo podría aplicarse en contexto donde el usuario pueda contactar directamente con el administrador, como por ejemplo una empresa, organismo de la Junta, etc
Retardo tras autenticación fallida
Introducir un retardo tras un intento de autenticación fallido
Introduciendo un retardo que obligue a que pase un tiempo determinado antes de volver a intentar una autenticación se reducen las posibilidades de éxito de los ataques de fuerza bruta.
Autenticaciones en el cliente
No validar la autenticación o autorización en el lado cliente
No llevar a cabo ningún tipo de autenticación o autorización en el lado cliente mediante cabeceras, cookies, campos de formulario escondidos o argumentos en la dirección URL.
Tokens en el cliente
Desconfiar de tokens de autorización o autenticación en el lado del cliente
Los tokens de autorización o autenticación que se encuentren en el lado del cliente pueden ser fácilmente modificados con fines maliciosos. Por tanto, estos tokens no deben ser considerados como confiables.
Asociación de tokens de autorización con identificador de sesión
Asociar el identificador de sesión con los tokens de autenticación, flags o estados.
Cuando la aplicación confirme que un usuario se autentica, asocie el identificador de sesión con los tokens de autenticación, flags o estados.
Envío de tokens
No enviar tokens a través de medios no seguros.
No enviar ningún tipo de token de autenticación o autorización en cabeceras, cookies, campos de formulario ocultos o como argumentos de la dirección URL.
Firma electrónica
Usar la firma digital para firmar documentos telemáticamente.
La firma electrónica va mucho más allá de la firma manuscrita en cuanto a su potencial y a las capacidades que posee. Es una herramienta universal que puede ser utilizada en diversos ámbitos y escenarios. Además, la firma electrónica es otro de los elementos básicos que necesitamos para poder realizar un trámite de forma completamente electrónica. La mayoría de trámites, transacciones y operaciones que realizamos en Internet no precisan de nuestra firma.
Para que los trámites en los que es necesaria la firma también estén disponibles a través de Internet, es fundamental que ese último paso, donde llevamos a cabo la firma de un documento, podamos realizarlo también de forma electrónica.
Desde el momento en que un documento es firmado, adquiere un conjunto de propiedades
Uso de certificados digitales
Usar certificados digitales para evitar suplantaciones de identidad de usuarios.
Se trata de disponer de un documento oficial, expedido por una entidad reconocida y acreditada, que nos permita identificarnos y demostrar nuestra identidad.
Un certificado electrónico puede emitirlo en principio cualquier organización que disponga de la infraestructura necesaria, pero si esta entidad no está acreditada como emisor de certificados electrónicos o CA (Certification Authority), los certificados que emita no serán reconocidos y, por tanto, no podremos acreditar una identidad reconocida con ellos
El certificado digital permite autentificar y garantizar la confidencialidad de las comunicaciones entre ciudadanos, empresas u otras instituciones públicas a través de las redes abiertas de comunicación. Se recomienda el uso de certificados digitales para garantizar que únicamente el usuario que se identifica puede acceder a la información, evitando así las suplantaciones.
Uso de DNIe
Usar el DNIe como mecanismo de autenticación para evitar suplantaciones de identidad de usuarios.
El DNIe además de su uso tradicional, nos permite acceder a los nuevos servicios de la Sociedad de la Información, ampliando nuestras capacidades de actuar a distancia con las Administraciones Públicas, con las empresas y con otros ciudadanos. Gracias a que incorpora un chip, capaz de guardar y procesar internamente información de forma segura, se pueden recudir los casos de suplantación de identidad y de fraude.
Sistemas anti robots
Garantizan que quien envía el formulario es una persona y no una máquina
Los captchas se utilizan en los envíos de formularios e intentan garantizar que quien los envían son verdaderamente personas, en lugar de máquinas.
Geolocalización
Controlar desde donde se suele conectar el usuario.
Es un mecanismo que registra las localizaciones desde las que se conecta el usuario. En caso de que se acceda desde alguna dirección no registrada, el sistema alertará al usuario y preguntará si desea registrar la dirección. En algunos casos podrá solicitar información personal al usuario para tratar de garantizar la identidad de la persona que esta accediendo. Además notificará posteriormente mediante correo electrónico del registro o el acceso desde esa posición.
Sistemas de coordenadas
Solicitar al usuario que introduzca el valor de una coordenada de una tarjeta cada vez que quiera acceder a un recurso crítico
La Tarjeta de Coordenadas contiene una matriz o serie de números única para cada usuario.
A la hora de acceder a un recurso crítico protegido por una Tarjeta de Coordenadas el sistema requerirá el número que se encuentra impreso en alguna celda.
Uso de Single Sign-On de escritorio
Utilizar Single Sing-On de escritorio como mecanismo de autenticación
El Single-Sign-On (SSO) de escritorio permite al usuario acceder a las aplicaciones que estén configuradas, identificándose una única vez para acceder a las aplicaciones. El SSO es una solución que permite simplificar el uso diario de los sistemas y aplicaciones por parte de los usuarios, simplifica la administración de credenciales y permite incrementar los niveles de seguridad.
Contenidos relacionados
Código | Título | Tipo | Carácter | |
---|---|---|---|---|
LIBP-0202 | Integración en Autenticación | Libro de pautas | Directriz | Recomendada |
LIBP-0208 | Integración de aplicaciones con el Single Sign-On de Escritorio | Libro de pautas | Directriz | Obligatoria |
Código | Título | Tipo | Carácter |
---|---|---|---|
RECU-0563 | Ataques de reflexión sobre la autenticación en Java | Ejemplo | Obligatorio |
RECU-0559 | Autenticación | Referencia | Obligatorio |
RECU-0667 | Comprobación de la perdida de autenticación sobre funciones significativas en Java | Ejemplo | Obligatorio |
RECU-0210 | Conceptos de seguridad en la capa de negocio mediante Spring | Referencia | Recomendado |
RECU-0622 | Controlador Java del DNI electrónico | Referencia | Recomendado |
RECU-0664 | Limitación del número de autenticaciones en Java | Ejemplo | Recomendado |
RECU-0650 | Sistemas anti-bots | Referencia | Recomendado |
RECU-0621 | Portal CERES | Referencia | Recomendado |
RECU-0666 | Retardo tras autenticación fallida en PHP | Ejemplo | Recomendado |
RECU-0674 | Uso del modulo Login Security en Drupal | Ejemplo | Obligatorio |