È importante usare un hash lento in htpasswd?

3

È a mia conoscenza che lo scopo dei file .htpasswd è di limitare l'accesso ad alcuni file nel filesystem del server. Se un utente malintenzionato vi accede, probabilmente ha accesso anche a tutto il resto, quindi sembra che ci sia poco senso usare un hash lento in questa situazione (aumenterebbe solo il carico del server). Tuttavia, ho appena visto che Apache 2.4 ha introdotto il supporto per bcrypt in questi file:

*) htpasswd, htdbm: Add support for bcrypt algorithm (requires apr-util 1.5 or higher). PR 49288. [Stefan Fritsch]

La richiesta di funzionalità non offre alcuna spiegazione su perché usando un hash più semplice, "le password memorizzate in quelle funzioni hash sono vulnerabili al cracking". È solo una "paranoia" o c'è una buona ragione per usare un hash più strong in questo scenario?

    
posta mgibsonbr 28.04.2014 - 09:39
fonte

2 risposte

3

Ci sono due ragioni principali per cui le password in un file .htpasswd hanno bisogno di hashing password sicuro :

  1. Anche se un utente malintenzionato che può leggere il file .htpasswd può probabilmente leggere gli altri file nella directory, la password può anche consentire l'accesso write . Esistono diverse situazioni in cui un utente malintenzionato può leggere file privati ma non scrivere su di essi; ad esempio, quando l'autore dell'attacco ha appena trovato un disco rigido scartato o un nastro di backup in un cassonetto. Allo stesso modo, le password possono avere una vita più lunga dei dati che proteggono: un vecchio .htpasswd potrebbe contenere una password che è ancora valida ora, per accedere ai file di dati che non esistevano affatto.

  2. L'hashing della password in definitiva non protegge i dati, ma la password stessa. Le password sono dati sensibili a pieno titolo, perché:

    • Gli utenti riutilizzano le password. Una password per un utente su un determinato server potrebbe essere valida anche su altri sistemi in cui l'utente ha un account. Personalmente sono abbastanza di un maniaco per generare password casuali diverse per tutti i server su cui ho account, ma so che molte persone non fanno le cose in questo modo.

    • Gli utenti non creano password casuali . In particolare, quando sono costretti a cambiare le loro password (come purtroppo richiesto su base regolare da politiche mal concepite), gli utenti si affidano a sequenze : se la loro password corrente è Lilongwe37 , allora è probabile che la loro prossima password sarà Lilongwe38 . Anche in questo caso, una vecchia password, anche dopo quella che sembra una "reimpostazione della password" , sarà preziosa per un utente malintenzionato.

Per questi motivi, è importante correggere l'hashing della password nei file .htpasswd .

    
risposta data 28.04.2014 - 14:53
fonte
1

Craccare le password, usando attacchi brute-force, dizionario o arcobaleno (o qualsiasi combinazione di questi), sono tutte tecniche che indovina la password.

Su un sistema informatico, indovinare le password richiede tempo, e qui sta il vantaggio di una funzione hash lenta (cioè computazionalmente più complessa). Quanto più una funzione hash richiede per calcolare, tanto più tempo ci vorrà per indovinare con successo (crack) una password.

Ecco perché le funzioni di hash lente sono superiori a quelle veloci, per quanto riguarda il livello di sicurezza che forniscono.

In effetti, se un hacker può ottenere (root) l'accesso al web server, può rubare il file .htpasswd (o meglio: è contenuto), e tentare di decifrare le password fuori linea. Il motivo per cui le password sono memorizzate in un formato hash (lento da calcolare) è quello di fornire un ulteriore livello di sicurezza: le credenziali memorizzate nel file potrebbero essere utilizzate su altri sistemi o servizi di calcolo.

    
risposta data 28.04.2014 - 10:30
fonte

Leggi altre domande sui tag