Facebook memorizza le password in testo semplice?

178

Stavo per ripristinare la mia password di Facebook e ho ricevuto questo errore:

Your new password is too similar to your current password. Please try another password.

Supponevo che Facebook memorizzasse solo gli hash delle password, ma in tal caso, come possono misurare la similarità delle password? Questo dovrebbe essere impossibile con una buona funzione di hashing, giusto?

La domanda è: come è possibile e quali sono le implicazioni?

Grazie in anticipo.

Aggiorna

Non l'ho chiarito: non mi è stato chiesto di fornire una vecchia e una nuova password. Era la procedura "reset password", in cui fornisco solo una nuova password, quindi la maggior parte delle risposte di suggerito duplicato non applicabile.

UPDATE2

Risolto il mistero - vedi commento (dall'ingegnere di Facebook )

    
posta Michał Šrajer 16.03.2014 - 17:58
fonte

6 risposte

191

Speriamo e presumiamo che Facebook memorizzi solo hash della password corrente (e potenzialmente delle password precedenti).

Ecco cosa possono fare:

  1. l'utente imposta la prima password su "first" e fb memorizza hash ("first").

  2. in seguito, gli utenti reimpostano la password e viene chiesto di fornire la nuova password "First2"

  3. Facebook può generare una serie di password (simili alla nuova): ["First2", "fIrst2", "firSt2", ... "first2", ... "first", ... ] e quindi confrontare l'hash di ciascuno con l'hash memorizzato.

Questa è l'unica soluzione che mi viene in mente. Qualsiasi altro?

    
risposta data 16.03.2014 - 18:33
fonte
21

Non saprei se lo fanno (non usare nemmeno Facebook), ma è anche possibile che usino Moduli di sicurezza hardware (HSM) per la loro elaborazione in crypt che non memorizza le password con hash ma semplicemente crittograficamente in modo reversibile. Con il volume di richieste di autorizzazione che devono affrontare, questo sarebbe perfettamente logico, poiché è molto più veloce di sicuro (leggi : lento) hashing della password , pur continuando a offrire l'archiviazione sicura delle password.

Gli HSM potrebbero quindi essere programmati per confrontare la password memorizzata e nuova come input di una delle loro funzioni e restituire semplicemente il risultato (potrebbe anche essere un valore booleano nel nostro caso), con la password originale mai trasmessa o memorizzata in testo in chiaro ovunque, oltre alla loro memoria interna (che è resistente alla manomissione). Di solito viene indicato come chiave di sicurezza integrata e memorizzazione / elaborazione delle applicazioni .

A proposito, molte banche usano HSM perché una corretta implementazione richiede anche la sicurezza fisica per i dispositivi stessi e il modo in cui sono accessibili (in più, sono piuttosto costosi), ma questo ovviamente offre molta più flessibilità nel modo in cui le password possono essere elaborate in modo sicuro senza che vengano mai divulgate.

    
risposta data 16.03.2014 - 21:51
fonte
16

C'è solo una risposta corretta a questo. Nessuno lo sa (eccetto Facebook).

Facebook potrebbe memorizzare la tua password di Facebook in testo semplice, ma potrebbe anche esserci qualche schema che usa gli hash fuzzy o gli hash precompilati di password simili.

Non c'è davvero alcun modo di saperlo a meno di non entrare in Facebook e controllare tutte le loro risorse.

    
risposta data 16.03.2014 - 18:50
fonte
7

Un'altra possibilità è che Facebook memorizzi un hash della tua password e un hash del SOUNDEX della tua password. Quindi quando inserisci la tua nuova password, può confrontare l'hash del suo SOUNDEX con quelli precedentemente memorizzati e rispondere che una password è troppo simile.

Questo è, naturalmente, solo una congettura.

    
risposta data 17.03.2014 - 01:35
fonte
3

Un'altra possibilità è che fb non hash, ma crittografare le password con la loro chiave master. Di quanto potrebbero decrittografarlo in qualsiasi momento per confrontarlo con quello nuovo.

  1. Speriamo di no - dovrebbero cancellarlo!
  2. Come sottolineato da Rell3oT, nessuno lo sa eccetto fb. Quindi tutto ciò che possiamo fare è lanciare ipotesi selvagge sul ring.
risposta data 16.03.2014 - 20:12
fonte
0

Fornire ulteriori dettagli sul metodo di memorizzazione della password stesso.

Le precedenti risposte storiche precedono qualsiasi conferma da parte di Facebook. Ma alle Password 14, Alec Muffett ha tenuto un discorso in cui ha descritto esplicitamente la memorizzazione delle password su Facebook in alcuni dettagli.

Nel suo discorso, conferma che Facebook non memorizza le password in testo semplice, ma utilizza piuttosto un metodo a più passaggi che è abbastanza resistente a una varietà di attacchi:

...comesegue:

$cur='plaintext'#MD5theplaintext.$cur=md5($cur)#HashSHA1witha160-bitsalt.$salt=randbytes(20)$cur=hmac_sha1($cur,$salt)#HashSHA256withasecretsalt,usinganinternallyabstractedcryptoservice.$cur=cryptoservice::hmac($cur)[=hmac_sha256($cur,$secret)]#RuntheresultthroughthescryptKDF(usingundisclosedtuningparameters)$cur=scrypt($cur,$salt)#UseSHA256(toreduceandnormalizethelargescryptresult)$cur=hmac_sha256($cur,$salt)

Questolivellodiresistenzanondovrebbesorprendere,datocheMuffettèl'autoredi crack , uno dei primi efficienti strumenti di cracking delle password.

Quindi ora abbiamo la conferma che Facebook non memorizza le password in testo semplice.

    
risposta data 27.12.2016 - 04:31
fonte

Leggi altre domande sui tag