Sicurezza delle password e hashing di WordPress

Pubblicato: 2017-11-10

Le password sono una forma di autenticazione legata a utenti o processi. Sono utilizzati per convalidare l'identità di un utente o un processo rispetto a un sistema informatico o risorse. Nella moderna rete di ultra-connettività, di dispositivi IoT e mobili, la sicurezza delle password è un argomento più serio che mai. Le perdite del database delle password si verificano continuamente, con le principali aziende come LinkedIn, Tumblr e Yahoo che sono interessate. Bob Diachenko di MacKeeper Security, ha scritto all'inizio di quest'anno di una gigantesca lista di 560 milioni di email/password che è stata trovata fluttuante in Internet!

Quindi in questo articolo parleremo di tre cose relative alle password e a WordPress:

  1. Generazione e gestione di password complesse.
  2. Come WordPress esegue l'hashing delle password.
  3. Implementazione dell'hashing della password.

Password deboli e forti

La forza della password, in termini di complessità della forza bruta, è un argomento di ampio dibattito e l'idea di quanto sia forte una password è stata ampiamente ridefinita nel corso dei decenni, man mano che risorse informatiche più potenti diventano prontamente disponibili per l'individuo. L'esperto di sicurezza di fama mondiale Bruce Schneier ha scritto un post eccellente discutendo la sicurezza delle password e come scegliere password sicure.

Quando si parla di sicurezza della password è necessario includere il contesto e il livello di minaccia:

È diverso e molto più difficile quando l'attaccante cerca di indovinare la tua password WordPress che se ha compromesso la tua sicurezza e ha accesso all'intero elenco di password hash.

Nella prima situazione, l'attaccante verrà rapidamente bloccato dal servizio di autenticazione a causa di troppi tentativi di accesso in un breve periodo di tempo. Di solito, gli aggressori scoprono le password con altri mezzi, diversi dalla forza bruta, come phishing, malware e simili. Tuttavia, se il bersaglio ha scelto una password utilizzando informazioni relativamente pubbliche come data, nome/cognome, ecc., è più facile indovinarla per l'attaccante.

Nella seconda situazione, se l'attaccante ha accesso al file della password, potrebbe essere solo questione di tempo, in particolare se la funzione hash utilizzata è MD5. Era rotto e si è dimostrato insicuro molto tempo fa. L'attaccante può utilizzare hardware moderno (come le schede GPU) combinato con tabelle "arcobaleno" precalcolate per decrittografare l'intero file di password in pochissimo tempo. Inoltre, in alcuni casi estremi, le password di tutti gli utenti vengono archiviate in "testo normale" nel database. In entrambi questi casi, la "forza" della tua password viene annullata.

Come generare e archiviare password complesse

È meglio lasciare la generazione e la gestione delle password a un computer di cui ti fidi, invece di cercare di pensare regolarmente a password complesse. Sei umano e inevitabilmente sbaglierai e sceglierai qualcosa che un computer considera una scelta debole.

L'utilizzo di un gestore di password per generare e archiviare le password per ogni servizio è efficiente e con il minor numero di minacce. Anche se il pensiero di conservare tutte le tue password in un unico posto può essere snervante, in realtà è un vantaggio: sapendo che tutte le tue password sono in un unico posto, puoi proteggerle più facilmente. Non dovrai più usare pezzi di carta casuali o permutazioni di password deboli che puoi facilmente ricordare ma possono essere facilmente indovinate. Inoltre, un gestore di password può aiutarti a generare password complesse senza problemi.

La scelta più popolare (e costosa) è 1Password, ma puoi provare ad utilizzare quella fornita nel tuo sistema operativo (come iCloud KeyChain di Apple) o utilizzare una soluzione multipiattaforma open source come KeePass.

Ospita il tuo sito web con Pressidium

GARANZIA DI RIMBORSO DI 60 GIORNI

GUARDA I NOSTRI PIANI

Hashing delle password di WordPress

L'hashing della password è una tecnica in base alla quale la password in chiaro viene passata a una funzione hash e convertita in un valore alfanumerico lungo. WordPress lo utilizza per archiviarli nel database, impedendo ad occhi indiscreti di leggere direttamente le password di WordPress. Quando accedi a WordPress e invii la tua password, calcola l'hash e lo confronta con quello nel database. Se è lo stesso, ti viene concesso l'accesso, in caso contrario, ti viene negato. Questo metodo funziona perché una specifica stringa di testo (una password di WordPress in questo caso), genererà sempre lo stesso valore hash. Poiché un valore hash non può essere riconvertito nel testo originale, WordPress può sapere che hai inserito quello corretto solo se il valore hash della password che hai fornito e quello memorizzato nel database sono identici.

Per impostazione predefinita, la funzione wp_hash_password() di WordPress utilizza un algoritmo MD5 a 8 passaggi per generare hash. Tuttavia , MD5 è stato violato con successo utilizzando una combinazione di hardware moderno e una tecnica chiamata tabelle arcobaleno che contiene un'enorme quantità di valori precalcolati. Questi aiutano un utente malintenzionato a provare miliardi di combinazioni al secondo, su una sola GPU moderna.

Implementa il tuo hashing della password di WordPress

Puoi (e dovresti) selezionare un'implementazione diversa, come Bcrypt, passando la tupla (16, FALSE) all'oggetto PasswordHash nell'istanza. Entrambe le funzioni wp_hash_password() e wp_set_password() sono collegabili, quindi puoi fornire la tua implementazione. Possono essere trovati sotto wp-includes/pluggable.php.

Roots.io (le persone dietro il sistema WordPress standard Trellis, Bedrock e Sage) hanno anche rilasciato un plug-in WordPress che implementa la funzionalità bcrypt per le funzioni hash predefinite di WordPress.

Conclusione

Per assicurarti di utilizzare password complesse e modificarle frequentemente, è meglio utilizzare un gestore di password. Questo può aiutarti a mantenere tutte le tue password organizzate in un unico posto e ricordarti quando è il momento di cambiarle. Quando si tratta di hashing delle password, è meglio utilizzare un algoritmo crittograficamente sicuro come SHA-2 o Bcrypt invece di ricorrere all'impostazione predefinita di WordPress. È meglio evitare di eseguire il roll della propria funzione hash, poiché un errore può introdurre problemi di sicurezza.