Per una breve descrizione, vedi Wikipedia . Questo è fondamentalmente un sistema password una tantum : l'utente non ha una sola password, ma una lunga catena di password, ogni password è utilizzabile una sola volta. Il punto è che se un keylogger prende una password usata, allora l'attaccante non guadagna nulla perché una volta che una password è stata utilizzata, non garantisce più alcun ulteriore accesso.
Il sistema è abbastanza elegante: esiste un segreto iniziale ( W ) che non è memorizzato da nessuna parte. Da W viene prodotta una catena di password, con una funzione hash h : h (W) , quindi h (h (W )) , quindi h (h (h (W))) e così via. Le password vengono utilizzate in ordine inverso e, in qualsiasi momento, il server memorizza l'ultima password utilizzata e concede l'accesso se l'utente presenta una password che, in caso di hash, restituisce la password attualmente memorizzata.
Sul lato utente, ciò richiede che l'elenco di password sia stampato su carta o che l'utente possieda una sorta di dispositivo che contiene l'elenco di password o può rigenerarlo su richiesta (il dispositivo memorizzerebbe W ).
Tutte queste password non sono realmente "password" in quanto l'utente umano non sceglie i loro contenuti e non li ricorda. Sono "chiavi" che l'utente può digitare con le dita su una tastiera. Agli utenti umani raramente piace l'uso di password monouso.
Un problema generico con password monouso è che tendono a non funzionare con sistemi che eseguono la crittografia basata su password di altri elementi di dati (tipici dei sistemi Windows).