"Immettere il carattere n." senza HSM

12

Questa domanda è stata ha chiesto alcune volte , ma sempre nel formato

"How does examplewebsite.com implement their 'please enter xth yth and zth characters of your password' function?"

In genere si presume che la risposta utilizzi un HSM in grado di rispondere a tale richiesta con un pass / fallire contro la password memorizzata.

Mi sembra che ci debba essere un modo ragionevole per raggiungere questo senza usando hardware sicuro. Questo potrebbe essere uno scenario improbabile, dato che chiunque si preoccupi della sicurezza per implementare tale mitigazione di keylogger avrà probabilmente il budget e le competenze per utilizzare un HSM. Ma da un punto di vista accademico, c'è una buona implementazione?

Un approccio ingenuo potrebbe essere quello di memorizzare tutte le combinazioni 3 choose n , dove n è la lunghezza della password e choose è funzione di combinazione matematica .

Ma la memorizzazione di queste terzine è problematica;

  • Nessuna quantità di salatura sarà in grado di difendere il database, dato che lo spazio di ricerca è così facilmente forzato.
  • Una lunga password ha un numero molto elevato di possibili combinazioni che portano a problemi di ricerca e archiviazione. Potremmo limitare il numero a un limite fisso, ma questo inizia a nuocere alla forza della password (in un modo abbastanza complesso che dipende da quali triple si sceglie di memorizzare).
  • Anche gli indici utilizzati per generare ogni tripla devono essere memorizzati e si applicano anche entrambi i punti sopra.

Questo approccio è scadente, esiste un approccio migliore che non richiede l'uso di un HSM?

    
posta lynks 22.04.2013 - 13:44
fonte

1 risposta

11

Supponiamo che la domanda inviata al client possa essere di circa tre caratteri: il server richiede (per esempio) il 4 °, 7 ° e 8 ° carattere della password.

Tempo di congelamento! In quel punto esatto, il server ha posto la domanda sopra e sarà in grado di verificare una risposta dal client. Ciò significa che nel suo stato completo, vi sono informazioni sufficienti per stabilire se una sequenza specifica di tre valori di carattere è una risposta corretta o meno. E può dire che dopo aver investito una quantità limitata di CPU, dì al massimo un secondo di calcoli sul server.

Se è solo software, allora lo stato può essere ripristinato. Immaginiamo un utente malintenzionato che ha dirottato la macchina, così da poter prendere una copia completa del disco rigido. A quel punto, l'attaccante ha tutto , quindi può eseguire un'emulazione del server sulle proprie macchine. In particolare, può riavvolgere il server in uno stato precedente noto.

Pertanto, l'utente malintenzionato può ora eseguire una ricerca esaustiva sui tre valori dei caratteri, provando e riavvolgendo il server emulato.

Questo è inevitabile. Senza un hardware dedicato non risolvibile (un HSM, ovvero), questo tipo di attacco deve funzionare. Questo in pratica significa che la forza della password è quella di una password di tre caratteri, vale a dire che non vale la pena vantarsi.

    
risposta data 22.04.2013 - 15:31
fonte

Leggi altre domande sui tag