La password con hash è protetta?

3

Sto creando un modulo di login per Wildfly estendendo org.jboss.security.auth.spi.DatabaseServerLoginModule e utilizzando log4j2 per il debug.

Ho preso l'abitudine di utilizzare i metodi Logger.entry () e Logger.exit () di log4j2 per la registrazione del livello TRACE e il metodo exit () ha l'opzione di includere il valore restituito per un metodo.

In questa particolare istanza, sto sovrascrivendo il metodo createPasswordHash () di DatabaseServerLoginModule e mi chiedo se è necessario saltare il valore di ritorno in log.exit () - ma sarebbe davvero utile vedere che gli hash sono utilizzato per accedere alla corrispondenza (o meno) degli hash che sto creando per la registrazione.

Ha un cattivo odore, ma da solo non riesco a trovare nessuna ragione perché nessuno che abbia accesso ai log non saprebbe ancora quale algoritmo di hash ho usato, quante iterazioni, sale, ecc. Ma poi di nuovo, io non sono l'hacker che cerca di entrare in questo account.

    
posta Michael Guinn 01.12.2015 - 01:51
fonte

2 risposte

9

Is logging a hashed password safe?

Non farlo.

Se non proteggi i registri nella stessa misura del tuo database (che sarebbe molto insolito e probabilmente difficile) indebolirai la tua sicurezza.

Se hai uno schema di hashing sicuro (hash lento, buon sale, ecc.) l'impatto sulla sicurezza dovrebbe essere minimo, ma dubito che qualsiasi impatto varrà la convenienza minore che hai menzionato.

someone with access to the logs still wouldn't know what hash algorithm I used, how many iterations, salt, etc.

Non vuoi dipendere dai parametri del tuo schema di hashing che rimangono segreti per la sicurezza.

Le informazioni sono molto preziose per un utente malintenzionato. Non sanno ancora queste cose, ma un hash potrebbe aiutarle a capirlo. Ad esempio:

  1. La lunghezza e l'aspetto dell'hash potrebbero fornire alcuni indizi sull'algoritmo
  2. Potrebbero essere in grado di stimare il numero di iterazioni (almeno entro un intervallo forzato bruto) entro il tempo richiesto dal server per completare la richiesta
  3. Se conoscono una password (ad esempio la loro) questo potrebbe lasciare il sale come l'unico sconosciuto

Potrebbe quindi essere computazionalmente fattibile forzare il sale per confermare tutte le supposizioni fatte sopra.

Forse un utente malintenzionato non può fare nulla di utile con questa informazione, ma forse li aiuterà - davvero non vuoi dare via più del necessario.

Chi lo sa, forse comprometteranno la tua base di codice nello stesso momento in cui compromettono i tuoi log (non improbabile), o forse un debole sarà scoperto nell'algoritmo di hashing in futuro.

    
risposta data 01.12.2015 - 03:58
fonte
1

la risposta di thexacre contiene già gli argomenti più importanti. Voglio aggiungerne un'altra:

Anche se si supponesse che le password con hash siano al sicuro (non si dovrebbe), non si sa mai cosa riserva il futuro. Un punto debole potrebbe essere scoperto nell'algoritmo di hashing o nell'implementazione che rende le password hashed crackabili. Quindi non dovrai preoccuparti solo di proteggere gli hash nel database con una nuova strategia, ma anche nei file di registro, inclusi tutti i file di registro esistenti.

    
risposta data 01.12.2015 - 07:37
fonte

Leggi altre domande sui tag