Quali sono le implicazioni dell'omissione del nome utente nel verificatore Password remota sicura?

3

Considero l'implementazione di un verificatore di password remota sicura (SRP-6a) che ometta il nome utente dall'hash della chiave x . L'intenzione è di consentire l'autenticazione con più identificativi utente alternativi come uid e email.

Il verificatore è normalmente calcolato in questo modo:

v = g^x mod(N), x =H(salt || H(username || ":" || password))

Invece considero che questo (nome utente non incluso):

v = g^x mod(N), x =H(salt || H(password))

Ci sono implicazioni di sicurezza per questo?

    
posta Vladimir Dzhuvinov 19.10.2011 - 06:14
fonte

1 risposta

6

La specifica SRP originale usata H (s, P) per un non-completamente -Specificato schema di derivazione della password, che include il sale e la password insieme (ma non l'identità). La prima bozza per RFC 2945 (che è SRP-3, predecessore di SRP-6) include già il nome utente nell'hash .

Di solito, l'inclusione del nome utente in uno schema di derivazione della password ha lo scopo di semplificare le prove di sicurezza; con l'inclusione dell'identità dell'utente, si può studiare la sicurezza di SRP senza doversi preoccupare (molto) di ciò che accade quando un utente malintenzionato gioca trucchi tra un server e diversi client (ad esempio ingannando due utenti nel parlare l'un l'altro, ognuno credendo che l'altro sia il server). I protocolli con più di due parti sono esponenzialmente più difficili da analizzare; il nome utente come parte dell'hash rende la sicurezza dell'intera cosa più semplice (che non significa semplice , solo possibile studiare ).

Pertanto, le implicazioni di omettere il nome utente dall'hash sono, nella migliore delle ipotesi, non investigate. Quindi, non farlo . Questo è anche il consiglio generale su algoritmi e protocolli crittografici: non giocherellare con loro, perché la sicurezza è una cosa sottile e non puoi sapere, da solo (anche se sei un crittografo competente), se lo hai ancora o no dopo qualsiasi modifica minore (ci vogliono un sacco di crittografi competenti per saperlo).

Per il tuo problema specifico, ti consiglio di registrare diversi "utenti" per tutti gli identificatori che l'utente potrebbe voler utilizzare e collegarli logicamente alla stessa identità una volta eseguito il protocollo.

    
risposta data 19.10.2011 - 14:17
fonte

Leggi altre domande sui tag