El envejecimiento de contraseñas tiene dos casos extremos. Por un lado,
tenemos el esquema clásico: una clave es válida hasta que el usuario
voluntariamente decida cambiarla (es decir, no hay caducidad de
la contraseña). El extremo contrario del Aging Password es otorgar un
tiempo de vida mínimo a cada clave, de forma que sólo sirva para una
conexión: es lo que se denomina clave de un solo uso, One Time Password
([Lam81]).
>Cómo utilizar contraseñas de un sólo uso? Para conseguirlo existen
diferentes aproximaciones; la más simplista consiste en asignar al usuario
una lista en papel con la secuencia de claves a utilizar, de forma que cada
vez que éste conecte al sistema elimina de la lista la contraseña que acaba
de utilizar. Por su parte, el sistema avanza en su registro para que la
próxima vez que el usuario conecte pueda utilizar la siguiente clave. Otra
aproximación consiste en utilizar un pequeño dispositivo que el usuario
debe llevar consigo, como una tarjeta o una calculadora especial, de forma que
cuando desee conectar el sistema le indicará una secuencia de caracteres a
teclear en tal dispositivo; el resultado obtenido será lo que se ha de
utilizar como password. Para incrementar la seguridad ante un robo de la
tarjeta, antes de teclear el número recibido desde la máquina suele ser
necesario utilizar un P.I.N. que el usuario debe mantener en secreto
([GS96]).
Una de las implementaciones del One Time Password más extendida entre
los diferentes clones de Unix es S/KEY ([Hal94]), disponible
también para clientes Windows y MacOS. Utilizando este software, la
clave de los usuarios no viaja nunca por la red, ni siquiera al ejecutar
órdenes como su o passwd, ni tampoco se almacena información
comprometedora (como las claves en claro) en la máquina servidora. Cuando el
cliente desea conectar contra un sistema genera una contraseña de un solo
uso, que se verifica en el servidor; en ambas tareas se utilizan las funciones
resumen MD4 ([Riv90]) o MD5 ([Riv92]). Para realizar
la autenticación, la máquina servidora guarda una copia del password
que recibe del cliente y le aplica la función resumen; si el resultado no
coincide con la copia guardada en el fichero de contraseñas, se deniega el
acceso. Si por el contrario la verificación es correcta se actualiza la
entrada del usuario en el archivo de claves con el one time password que
se ha recibido (antes de aplicarle la función), avanzando así en la
secuencia de contraseñas. Este avance decrementa en uno el número de
iteraciones de la función ejecutadas, por lo que ha de llegar un momento
en el que el usuario debe reiniciar el contador o en caso contrario se le
negará el acceso al sistema; para ello ejecuta una versión modificada de
la orden passwd.
© 2002 Antonio Villalón Huerta