2012-08-27 7 views
6

Utilizzo PHPass per cancellare le mie password per un lungo periodo. Ammetto che ci sono ancora cose che non capisco completamente (o ignoro) per avere una password correttamente, quindi oggi stavo rivedendo tutte le informazioni che ho potuto trovare su di esso.Salatura corretta e utilizzo di PHPass

revisione dei documenti PHPass, ho steped in questo:

Oltre l'hashing reale, phpass genera in modo trasparente sali casuali quando una nuova password o passphrase viene assegnata, e codifica il tipo di hash, il sale, e il conteggio delle iterazioni della password viene conteggiato nella "stringa di codifica hash" restituita. Quando phpass autentica una password o passphrase contro un hash memorizzato, in modo simile estrae in modo trasparente e utilizza l'identificatore del tipo di hash, il salt e il conteggio dell'iterazione della "stringa di codifica hash". Quindi, non è necessario preoccuparsi di salatura e stretching da soli - phpass si prende cura di questi per voi.

Ho messo in evidenza la frase che mi ha infastidito.
Ho sempre pensato che il sale debba essere un po 'segreto, nel senso che non dovrebbe essere noto all'attaccante. Quindi, se capita correttamente, PHPass memorizza il sale usato nello stesso hash in modo che sia in grado di usarlo quando si confrontano le password e verificare se è valido.
Le mie domande sono

  1. È sicuro? Se l'hash è compromesso, l'attaccante ha il sale usato per cancellare la password ... C'è qualcosa che mi manca qui.
  2. Sono qui veramente libero di preoccuparmi di salare le password? Posso davvero fare affidamento su PHPass?
+0

Con l'aggiunta 'salt' si aggiunge un altro strato di sicurezza. Questo è il principio principale di Defence in Depth. Ma se _phpass_ aggiunge già il sale, non aggiungerà un altro livello. – Leri

+0

1.) A quale tipo di sicurezza siete interessati? Puoi renderlo più concreto? - 2.) Puoi rispondere con sicurezza alla seguente domanda entro una frazione di secondo con sì o no: "Phpass usa un sale?" - Dì quanto è certa e quanto velocemente puoi rispondere e anche la risposta. – hakre

+0

@hakra Mi riferisco all'atto di memorizzare il sale insieme alla password. Ho sempre pensato che archiviarlo in posti diversi (leggere i campi DB, per esempio) fosse meglio. –

risposta

1

Lo scopo di un sale è non essere un segreto. Lo scopo è quello di aggiungere un componente univoco a ciascun input di hash, in modo che le password identiche non abbiano hash per gli hash identici, rendendo così il processo a forza bruta più difficile e dispendioso in termini di tempo dal momento che ogni hash deve essere provato individualmente.

Sì, sarebbe marginalmente più sicuro se il sale era segreto, ma questo è difficile da realizzare in pratica, dal momento che l'applicazione ha bisogno il sale e, quindi ha bisogno di essere memorizzati da qualche parte dove la password è accessibile come bene. Pertanto, in pratica, quando l'hacker ottiene l'hash della password, in genere è anche in grado di ottenere il sale comunque.

1

Se ho capito bene, i sali sono utilizzati principalmente per contrastare gli attacchi di hash/arcobaleno precalcolati. Finché l'hash utilizzato viene generato in modo tale che sia ragionevolmente globalmente unico (non codificato in PHPass ad esempio), sei a posto.

3

Un po 'di storia
Un sale non è destinata ad essere un segreto, invece, un sale di 'opere' da assicurandosi che il risultato hash univoco per ogni istanza utilizzata. Questo viene fatto selezionando un diverso valore di sale casuale per ogni hash calcolato.

L'intenzione del sale non viene compromessa quando è nota; l'attaccante deve ancora attaccare ogni hash separatamente. Pertanto, è possibile memorizzare semplicemente il sale accanto alla password.

Quindi, PHPass è sicuro?
SÌ! PHPass (secondo le migliori pratiche) genera un forte sale casuale per te. È una libreria ben recensita e di buona qualità.

Link di interesse:
How to securely hash passwords?
How to store salt?
Password Hashing add salt + pepper or is salt enough?
Salt Generation and open source software

Problemi correlati