Autenticación
De Wikipedia, la enciclopedia libre
Autenticación (Griego: αυθεντικός = verdadero o genuino, de ' los authentes' = el autor) es el acto de establecimiento o confirmación de algo (o alguien) como auténtico, es decir que reclama hecho por o sobre la cosa son verdadero. La autenticación de un objeto puede significar(pensar) la confirmación de su procedencia, mientras que la autenticación de una persona a menudo consiste en verificar su identidad. La autenticación depende de uno o varios factores de autenticación.
Tabla de contenidos |
[editar] Definiciones
Autenticación o autentificación, en términos de seguridad de redes de datos, se puede considerar uno de los tres pasos fundamentales (AAA). Cada uno de ellos es, de forma ordenada:
-
- Autenticación En la seguridad de ordenador, la autenticación es el proceso de intento de verificar la identidad digital del remitente de una comunicación como una petición para conectarse. El remitente siendo autenticado puede ser una persona que usa un ordenador, un ordenador por sí mismo o un programa del ordenador. En un web de confianza, "autenticación" es un modo de asegurar que los usuarios son quién ellos dicen que ellos son - que el usuario que intenta realizar funciones en un sistema es de hecho el usuario que tiene la autorización para hacer así.
- Autorización Proceso por el cual la red de datos autoriza al usuario identificado a acceder a determinados recursos de la misma.
- Auditoría Mediante la cual la red o sistemas asociados registran todos y cada uno de los accesos a los recursos que realiza el usuario autorizados o no.
El problema de la autorización a menudo, es idéntico a la de autenticación; muchos protocolos de seguridad extensamente adoptados estándar, regulaciones obligatorias, y hasta estatutos están basados en esta asunción. Sin embargo, el uso más exacto describe la autenticación como el proceso de verificar la identidad de una persona, mientras la autorización es el proceso de verificación que una persona conocida tiene la autoridad para realizar una cierta operación. La autenticación, por lo tanto, debe preceder la autorización. Para distinguir la autenticación de la autorización de término estrechamente relacionada, exiten unas notaciones de taquigrafía que son: A1 para la autenticación y A2 para la autorización que de vez en cuando son usadas,también exiten los términos AuthN y AuthZ que son usados en algunas comunidades.
[editar] Métodos de autenticación
Los métodos de autenticación están en función de lo que utilizan para la verificación y estos se dividen en tres categorías:
-
- Sistemas basados en algo conocido.Ejemplo, un password (Unix) o passphrase (PGP).
- Sistemas basados en algo poseído.Ejemplo, una tarjeta de identidad ,una tarjeta inteligente(smartcard)
- Sistemas basados en una característica física del usuario o un acto involuntario del mismo: Ejemplo, verificación de voz, de escritura, de huellas, de patrones oculares.
Cualquier sistema de identificación ha de poseer unas determinadas características para ser viable:
-
- Ha de ser fiable con una probabilidad muy elevada (podemos hablar de tasas de fallo de en los sistemas menos seguros).
- Económicamente factible para la organización (si su precio es superior al valor de lo que se intenta proteger, tenemos un sistema incorrecto).
- Soportar con éxito cierto tipo de ataques.
- Ser aceptable para los usuarios, que serán al fin y al cabo quienes lo utilicen.
[editar] Mecanismo general de autenticación
La mayor parte de los sistemas informáticos y redes mantienen de uno u otro modo una relación de identidades personales (usuarios) asociadas normalmente con un perfil de seguridad, roles y permisos. La autenticación de usuarios permite a estos sistemas asumir con una seguridad razonable que quien se está conectando es quien dice ser para que luego las acciones que se ejecuten en el sistema puedan ser referidas luego a esa identidad y aplicar los mecanismos de autorización y/o auditoría oportunos.
El primer elemento necesario (y suficiente estrictamente hablando) por tanto para la autenticación es la existencia de identidades biunívocamente identificadas con un identificador único (valga la redundancia). Los identificadores de usuarios pueden tener muchas formas siendo la más común una sucesión de caracteres conocida comunmente como login.
El proceso general de autenticación consta de los siguientes pasos:
-
- El usuario solicita acceso a un sistema.
- El sistema solicita al usuario que se autentique.
- El usuario aporta las credenciales que le identifican y permiten verificar la autenticidad de la identificación.
- El sistema valida según sus reglas si las credenciales aportadas son suficientes para dar acceso al usuario o no.
[editar] Control de acceso
Un ejemplo familiar es el control de acceso. Un sistema informático supuesto para ser utilizado solamente por ésos autorizados, debe procurar detectar y excluir el desautorizado. El acceso a él por lo tanto es controlado generalmente insistiendo en un procedimiento de la autentificación para establecer con un cierto grado establecido de confianza la identidad del usuario, por lo tanto concediendo esos privilegios como puede ser autorizado a esa identidad. Los ejemplos comunes del control de acceso que implican la autentificación incluyen:
-
- Retirar de dinero de un cajero automático.
- Control de un computador remoto sin Internet.
- Uso de un sistema Internet banking.
Sin embargo, observar que mucha de la discusión sobre estos asuntos es engañosa porque los términos se utilizan sin la precisión. La parte de esta confusión puede ser debido “al tono de la aplicación de ley” de mucha de la discusión. Ninguna computadora, programa de computadora, o poder del usuario de la computadora “confirman la identidad” de otro partido. No es posible “establece” o “probar” una identidad, cualquiera. Hay ediciones difíciles que están al acecho debajo de qué aparece ser una superficie directa.
Es solamente posible aplicar unas o más pruebas que, si están pasadas, se han declarado previamente para ser suficientes proceder. El problema es determinarse qué pruebas son suficientes, y muchos tales son inadecuadas. Tienen sido muchos casos de tales pruebas que son spoofed con éxito; tienen por su falta demostrada, ineludible, ser inadecuadas. Mucha gente continúa mirando las pruebas -- y la decisión para mirar éxito en pasar -como aceptable, y para culpar su falta en “sloppiness” o “incompetencia” de parte alguien. El problema es que la prueba fue supuesta para trabajar en la práctica -- no bajo condiciones ideales de ningún sloppiness o incompetencia-y no. Es la prueba que ha fallado en tales casos. Considerar la caja muy común de un email de la confirmación a el cual deba ser contestado para activar una cuenta en línea de una cierta clase. Puesto que el email se puede arreglar fácilmente para ir a o para venir de direcciones falsas y untraceable, éste es justo sobre la menos autentificación robusta posible. El éxito en pasar esta prueba significa poco, sin consideración alguna hacia sloppiness o incompetencia.
[editar] Autenticación por multifactor
Los factores de la autentificación para los seres humanos se clasifican generalmente en cuatro casos:
-
-
- Algo que el usuario es (ejemplo, la huella digital o el patrón retiniano, la secuencia de la DNA (hay definiciones clasificadas de cuál es suficiente), el patrón de la voz (otra vez varias definiciones), el reconocimiento de la firma, las señales bio-eléctricas únicas producidas por el cuerpo vivo, o el otro identificador biométrico).
- Algo que el usuario tiene (ejemplo, tarjeta de la identificación, símbolo de la seguridad, símbolo del software o teléfono de la célula)
- Algo que el usuario sabe (ejemplo, una contraseña, una frase o un número de identificación personal (el PERNO) del paso).
- Algo el usuario hace(ejemplo, reconocimiento de voz, firma, o el paso).
-
Una combinación de métodos se utiliza a veces, ejemplo, una tarjeta de banco y un PIN, en este caso se utiliza el término “autentificación del dos-factor”. Históricamente, las huellas digitales se han utilizado como el método más autoritario de autentificación, pero procesos legales recientes en los E.E.U.U. y a otra parte han levantado dudas fundamentales sobre confiabilidad de la huella digital. Otros métodos biométricos son prometedores (las exploraciones retinianas y de la huella digital son un ejemplo), pero se han demostrado para ser fácilmente spoofable en la práctica. En un contexto de los datos de la computadora, se han desarrollado los métodos criptográficos (véase la autentificación digital de la firma y de la desafiar-respuesta) que no son actualmente spoofable si (y solamente si) la llave del autor no se ha comprometido. Que el autor (o cualquier persona con excepción de un atacante) sabe (o no sabe) sobre un compromiso es inaplicable. No se sabe si estos métodos criptográficos basados en la autentificación son probablemente seguros puesto que los progresos matemáticos inesperados pueden hacerlos vulnerables al ataque en futuro. Si ése era ocurrir, puede llamar en la pregunta mucho de la autentificación en el pasado. Particularmente, un contrato digital firmado puede ser preguntado cuando un nuevo ataque contra la criptografía subyacente la firma se descubre.
[editar] eAutenticación
El eAuthentication fue definido por Arnnei Speiser en 2003 mientras que el Web basó el servicio que proporciona la autentificación a los usuarios finales que tienen acceso (que registran en) a un servicio de Internet. El eAuthentication es similar a la verificación de la tarjeta de crédito para los Web site del eCommerce. La verificación es hecha por un servicio dedicado que reciba la entrada y vuelva la indicación del éxito o del fall. Por ejemplo, un usuario final desea entrar en su Web site . Él consigue entrar en una página Web de la conexión y se requiere para incorporar su user-id y una contraseña o a los sitios asegurados, su contraseña de una Vez. La información se transmite al servicio del eAuthentication como pregunta. Si el servicio vuelve éxito, permiten al usuario final entrar en el servicio de esa página Web con sus privilegios como usuario.
[editar] Autenticación de usuarios en Unix
[editar] Autenticación clásica
En un sistema Unix habitual cada usuario posee un nombre de entrada al sistema o login y una clave o password; ambos datos se almacenan generalmente en el fichero /etc/passwd. Este archivo contiene una línea por usuario donde se indica la información necesaria para que los usuarios puedan conectar al sistema y trabajar en él, separando los diferentes campos mediante `:'.
Al contrario de lo que mucha gente cree, Unix no es capaz de distinguir a sus usuarios por su nombre de entrada al sistema. Para el sistema operativo lo que realmente distingue a una persona de otra (o al menos a un usuario de otro) es el UID del usuario en cuestión; el login es algo que se utiliza principalmente para comodidad de las personas (obviamente es más fácil acordarse de un nombre de entrada como toni que de un UID como 2643, sobre todo si se tienen cuentas en varias máquinas, cada una con un UID diferente).
Para cifrar las claves de acceso de sus usuarios, el sistema operativo Unix emplea un criptosistema irreversible que utiliza la función estándar de C crypt, basada en el algoritmo DES. Para una descripción exhaustiva del funcionamiento de crypt. Esta función toma como clave los ocho primeros caracteres de la contraseña elegida por el usuario (si la longitud de ésta es menor, se completa con ceros) para cifrar un bloque de texto en claro de 64 bits puestos a cero; para evitar que dos passwords iguales resulten en un mismo texto cifrado, se realiza una permutación durante el proceso de cifrado elegida de forma automática y aleatoria para cada usuario, basada en un campo formado por un número de 12 bits (con lo que conseguimos 4096 permutaciones diferentes) llamado salt. El cifrado resultante se vuelve a cifrar utilizando la contraseña del usuario de nuevo como clave, y permutando con el mismo salt, repitiéndose el proceso 25 veces. El bloque cifrado final, de 64 bits, se concatena con dos bits cero, obteniendo 66 bits que se hacen representables en 11 caracteres de 6 bits cada uno y que, junto con el salt, pasan a constituir el campo password del fichero de contraseñas, usualmente /etc/passwd. Así, los dos primeros caracteres de este campo estarán constituidos por el salt y los 11 restantes por la contraseña cifrada
[editar] Problemas del modelo clásico
Los ataques de texto cifrado escogido constituyen la principal amenaza al sistema de autenticación de Unix; a diferencia de lo que mucha gente cree, no es posible descifrar una contraseña, pero es muy fácil cifrar una palabra junto a un determinado salt, y comparar el resultado con la cadena almacenada en el fichero de claves. De esta forma, un atacante leerá el fichero /etc/passwd (este fichero ha de tener permiso de lectura para todos los usuarios si queremos que el sistema funcione correctamente), y mediante un programa adivinador (o crackeador) cifrará todas las palabras de un fichero denominado diccionario (un fichero ASCII con un gran número de palabras de cualquier idioma o campo de la sociedad: historia clásica, deporte, cantantes de rock...), comparando el resultado obtenido en este proceso con la clave cifrada del fichero de contraseñas; si ambos coinciden, ya ha obtenido una clave para acceder al sistema de forma no autorizada.
[editar] Shadow Password
Otro método cada día más utilizado para proteger las contraseñas de los usuarios el denominado Shadow Password u oscurecimiento de contraseñas. La idea básica de este mecanismo es impedir que los usuarios sin privilegios puedan leer el fichero donde se almacenan las claves cifradas.
[editar] Envejecimiento de contraseñas
En casi todas las implementaciones de Shadow Password actuales se suele incluir la implementación para otro mecanismo de protección de las claves denominado envejecimiento de contraseñas (Aging Password). La idea básica de este mecanismo es proteger los passwords de los usuarios dándoles un determinado periodo de vida: una contraseña sólo va a ser válida durante un cierto tiempo, pasado el cual expirará y el usuario deberá cambiarla.
Realmente, el envejecimiento previene más que problemas con las claves problemas con la transmisión de éstas por la red: cuando conectamos mediante mecanismos como telnet, ftp o rlogin a un sistema Unix, cualquier equipo entre el nuestro y el servidor puede leer los paquetes que enviamos por la red, incluyendo aquellos que contienen nuestro nombre de usuario y nuestra contraseña.
[editar] Otros métodos
Algo por lo que se ha criticado el esquema de autenticación de usuarios de Unix es la longitud, para propósitos de alta seguridad, demasiado corta sus claves; lo que hace años era poco más que un planteamiento teórico, actualmente es algo factible: sin ni siquiera entrar en temas de hardware dedicado, seguramente demasiado caro para la mayoría de atacantes, con un supercomputador es posible romper claves de Unix en menos de dos días.
Un método que aumenta la seguridad de nuestras claves frente a ataques de intrusos es el cifrado mediante la función conocida como bigcrypt() o crypt16(), que permite longitudes para las claves y los salts más largas que crypt y sin embargo, aunque se aumenta la seguridad de las claves, el problema que se presenta aquí es la incompatibilidad con las claves del resto de Unices que sigan utilizando crypt; este es un problema común con otras aproximaciones que también se basan en modificar el algoritmo de cifrado, cuando no en utilizar uno nuevo.
[editar] PAM
PAM (Pluggable Authentication Module) no es un modelo de autenticación en sí, sino que se trata de un mecanismo que proporciona una interfaz entre las aplicaciones de usuario y diferentes métodos de autenticación, trantado de esta forma de solucionar uno de los problemas clásicos de la autenticación de usuarios: el hecho de que una vez que se ha definido e implantado cierto mecanismo en un entorno, es difícil cambiarlo. Mediante PAM podemos comunicar a nuestra aplicaciones con los métodos de autenticación que deseemos de una forma transparente, lo que permite integrar las utilidades de un sistema Unix clásico (login, ftp, telnet...) con esquemas diferentes del habitual password: claves de un solo uso, biométricos, tarjetas inteligentes...
PAM viene `de serie' en diferentes sistemas Unix, tanto libres como comerciales , y el nivel de abstracción que proporciona permite cosas tan interesantes como kerberizar nuestra autenticación (al menos la parte servidora) sin más que cambiar la configuración de PAM, que se encuentra bien en el fichero /etc/pam.conf o bien en diferentes archivos dentro del directorio /etc/pam.d/