El objetivo de al autentificación de usuarios en un sistema determinado consiste en permitir que accedan al sistema los usuarios que están autorizados y rechazar a los que no lo estén. Su eficacia se mide mediante dos índices: la tasa de rechazos indebidos, que indica el porcentaje de usuarios legítimos que han sido rechazados, y la tasa de aceptaciones indebidas, que es porcentaje de usuarios no autorizados que han sido aceptados. Los métodos más usados en sistemas son las comprobaciones mediante información secreta, ya que no necesitan dispositivos especiales para implantarlos, pero es posible que el usuario comunique el secreto a otras personas no autorizadas, o que un intruso averigüe las respuestas.
Generalmente, los sistemas operativos usan algoritmos criptográficos diseñados de forma que no se pueda realizar la operación inversa; es decir, se considera que a partir de la contraseña codificada no se pueda obtener la original. Por lo tanto, al comprobar la identidad del usuario, el sistema operativo solicita la contraseña, la codifica inmediatamente y comprueba que el resultado coincide con la que tiene almacenada. En consecuencia, la codificación debe ser unívoca, de modo que dos contraseñas distintas nunca produzcan la misma contraseña codificada.
A pesar de estas medidas, como el usuario debe memorizar la contraseña, tiende a usar palabras fáciles de recordar. Se ha llegado a comprobar en alguna instalación que el 86% de las contraseñas eran palabras de un diccionario. Como el algoritmo de codificación es público es muy sencillo procesar un archivo de palabras y obtener la forma codificada. En los sistemas UNIX, tradicionalmente, las contraseñas se almacenan en el archivo /etc/passwd, que pueden leer todos los usuarios. Por lo tanto, se pueden cruzar las dos informaciones y averiguar las contraseñas originales. Para colmo, la mayoría de los procesadores de texto tienen un archivo de vocabulario, como soporte para la comprobación de palabras (spell en UNIX), así el curioso ni siquiera tiene que molestarse en teclearlo. Por ello se recomienda siempre el uso de contraseñas aleatorias, pseudoaleatorias, alfanuméricas, con mayúsculas y minúsculas (para sistemas case sensitive), ...
Por otra parte, existen otros métodos de autentificación en sistemas como pueden ser las técnicas biométricas. En estos métodos, la aceptación se basa en las características personales del usuarios; algunas de ellas, se pueden obtener con cierta facilidad, y sin invadir demasiado su intimidad. Estas características se pueden dividir en dos grupos:
-
Características físicas: Huellas digitales, rasgos faciales, geometría de la mano, distribución de los capilares en la retina, ...
-
Características de comportamiento: Análisis de la voz, ritmo de pulsaciones en el teclado, firma con un lápiz electrónico, ...
Estas últimas suelen cambiar con el estado de ánimo, la salud o el desarrollo físico del usuario (por ejemplo la voz cambia durante nuestro desarrollo vital), por lo que presentan una tasa de rechazos indebidos bastante alta. En cambio, algunas características físicas como las huellas digitales o los capilares de la retina son muy estables. Por ejemplo, examinando la retina se obtiene una aceptación indebida entre 3 millones, que se reduce a una entre un billón si se comprueban los dos ojos. Estos métodos se usan en entornos que necesitan gran seguridad.