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