A tutti sarà capitato di inserire una password sbagliata su Windows (XP/7/8..) e di notare che il computer in questo caso impiega più tempo per riproporre il campo di inserimento.
Molti si saranno chiesti perché quando inseriamo la password corretta il PC la riconosce subito, mentre rimane in una sorta di semi-stallo altrimenti.
Alcuni avranno pensato che il computer deve eseguire più calcoli per verificare la password ‘sbagliata’, ma non è così.
Le istruzioni che il PC esegue per la verifica delle password sono sempre le stesse: esegue un hash tra la chiave inserita e quella precedentemente memorizzata.
La memorizzazione nel sistema della password iniziale avviene non in forma ‘plain text’ (testo leggibile), viene invece eseguito un Hash OWF (problema di complessità classe NP) e memorizzato in una stringa per questioni di sicurezza (non si potrà risalire alla password immessa anche con in mano tale stringa).
Quando andiamo ad inserire la password per accedere, il PC esegue una nuova conversione Hash e compara la nuova stringa con quella salvata inizialmente.
Se vi è una corrispondenza, lascia accedere al desktop, altrimenti ripropone il campo per l’inserimento.
Ma allora se esegue gli stessi calcoli, perché impiega più tempo quando sbagliamo?
E’ una misura di sicurezza: imponendo un breve ritardo in caso di fallimento si potranno evitare attacchi brute force (in poche parole quelli che provano tutte le password per cercare quella giusta), in quanto anche solo 5 secondi di attesa farebbero lievitare tali attacchi da anni a decenni in più per poter essere portati a termine.
Il nome generico per questo comportamento è tarpitting.
Concetto inizialmente utilizzato nel rilascio degli accessi per dispositivi di rete, oggi ormai esteso anche a molte altre applicazioni.
Una spiegazione approfondita qui.