Qual è la soluzione per la gestione delle eccezioni negli schemi di hashing delle password?

0

Esiste una tecnica chiamata hashing password che descrive la creazione di password univoche basate su una chiave master univoca e un valore hash statico e arbitrario.

Utilizzando questa tecnica, l'utente deve solo ricordare la chiave master per avere una password univoca per ogni sito / applicazione.

Esistono molti programmi gratuiti, siti e estensioni del browser che implementano questo sistema. Un esempio molto semplice è questo .

Questa tecnica sembra utile, ma c'è un caso comune che non sembra gestire bene. Quel caso è quando l'utente deve cambiare la password per un sito (a causa di una violazione della sicurezza segnalata o una modifica forzata a causa della durata). Una volta che l'utente ha cambiato la password, non sarà conforme al sistema hash.

L'unica soluzione che posso pensare è che gli utenti cambino la chiave master per generare una nuova password, ma tutte le altre password non funzioneranno con quella nuova chiave master. Quindi ora devono ricordare quali siti utilizzano la chiave master, il che è quasi tanto grave quanto farli ricordare password diverse.

Qualcuno ha una soluzione per gestire questo caso comune?

    
posta RockPaperLizard 29.10.2014 - 20:20
fonte

2 risposte

1

Per essere chiari, c'è qualcos'altro chiamato hashing della password Questo è completamente diverso da ciò che descrivi, quindi questa è una collisione terminologica, che è sfortunata.

Per gestire "eccezioni", è necessario disporre di spazio di archiviazione. Un metodo potrebbe essere quello di memorizzare (ad esempio in un file locale) una mappa dal nome del server ad una stringa, ad es. un numero intero Lo schema sarebbe:

  • Il file locale contiene linee. Ogni riga contiene un nome di applicazione (ad esempio il nome di un sito Web) e un intero.
  • Se il nome dell'applicazione non appare nel file, la password per tale applicazione sarà un computer hash sulla concatenazione (in qualche modo) della password principale e del nome dell'applicazione.
  • Se il nome dell'applicazione appare nel file, il valore intero viene aggiunto alla password principale nell'input dell'hash.

In questo modo, la dimensione del file locale è proporzionale al numero di eccezioni.

C'è ovviamente un ampio spazio per il pasticciare le cose qui. In particolare, ciascuna password generata può essere utilizzata come test per un attacco del dizionario offline sulla password principale. Quindi la password principale deve essere stropicciata (vale a dire, più strong di quanto sia normalmente necessario per le password).

    
risposta data 29.10.2014 - 20:30
fonte
1

Funzionalità simile all'utilizzo di un algoritmo per generare informazioni sulla password. Dato che hai fornito un sito di esempio: link , possiamo descrivere come potresti generare una nuova password quando ti viene richiesto di cambiarla.

  • Puoi aggiungere un intero, una data o un altro valore al "parametro" per iterarlo
  • Puoi avere più chiavi principali (semi-sconfitte)
  • Puoi eseguire l'hash della password in modo iterativo utilizzando l'hash precedente come "parametro" alla successiva iterazione hash e lasciando intatta la tua chiave master.

Devi registrare i nomi dei siti e interi, data, cosa hai o le iterazioni degli hash, o entrambi. Dal momento che questi sono gli unici due input, devi modificare l'uno o l'altro quando si genera una nuova password per lo stesso sito. L'idea di hashing iterativa è probabilmente la migliore, dal momento che l'hacker non dovrebbe mai conoscere la chiave, e devi solo eseguire l'hash più volte, se necessario.

Abbastanza facile.

    
risposta data 29.10.2014 - 23:29
fonte

Leggi altre domande sui tag