Quanto è sicuro l’algoritmo delle password di WordPress?

Aggiornate l'algoritmo per proteggere il vostro sito WordPress

All’installazione di WordPress, viene creato l’utente amministratore del sistema, le cui credenziali vengono salvate nella tabella wp-users del database di WordPress.

Aprendo la tabella wp-users, tramite riga di comando mysql oppure tramite phpmyadmin, potrete vedere che la password inserita per l’utente amministratore è stata sostituita da una sequenza di numeri e lettere totalmente diversa dalla password inserita.

Salvataggio della password utente nel database

Al momento della registrazione, la password scelta dall’utente viene abbinata ad una sequenza casuale di 64 caratteri chiamata “sale” (salt in inglese, concetto che spiegherò in un prossimo articolo) per poi essere elaborata da una procedura crittografica di hashing ed essere finalmente salvata nella tabella wp-users insieme al nome utente e altri dati aggiuntivi.

Verifica della password al login

Durante la procedura di login, la password digitata dall’utente viene abbinata al sale memorizzato nel database, poi elaborata da un’ulteriore procedura di hashing e il risultato viene confrontato con l’hash memorizzato nel database.
Se le sequenze corrispondono perfettamente viene dato accesso al sistema, altrimenti viene negato.

Tipologia di hashing

La funzione di hash è una funzione crittografica in grado di mappare una stringa (sequenza di caratteri) arbitraria, in una nuova stringa di lunghezza predefinita.

Una delle peculiarità più importanti di questa funzione, è l’irreversibilità, cioè l’impossibilità di risalire alla stringa inziale partendo dalla stringa finale, a differenza della crittografia che permette di risalire al testo iniziale grazie all’utilizzo di chiavi crittografiche (pubbliche e private).

Per produrre le stringhe hash, è necessario utilizzare degli algoritmi crittografici.
Nel caso di WordPress, fin dalle prime versioni, è stato utilizzato l’algoritmo MD5 (Message Digest 5) inventato dal Prof. Ronald Rivest del MIT nel lontano 1991.

Tuttavia, ora l’algoritmo MD5 non viene più considerato sicuro, visto che nel 2004 dei ricercatori cinesi sono riusciti ad ottenere una “collisione” (quando stringhe diverse producono un identico hash) rendendo l’algoritmo non più totalmente sicuro.

Per rafforzare le vulnerabilità dell’algoritmo MD5, dalla versione 2.5 di WordPress (Marzo 2008) in poi, è stato incorporato un framework per la gestione delle password chiamato Portable PHP Password Hashing Framework (sviluppato dalla Openwall) che utilizza sempre l’algoritmo MD5, ma ci aggiunge anche una lunga stringa casuale (sale o salt) di 64 caratteri e un numero maggiore d’iterazioni o rounds (8).

Come migliorare la sicurezza delle password del proprio sito

Oggi, tra gli algoritmi considerati più sicuri, ci sono l’algoritmo bcrypt (derivato da Blowfish, usato di default nei sistemi Unix-like BSD), e Argon2 più recente e ritenuto più sicuro di bcrypt.

Sul repository di WordPress, sono disponibili alcuni plugin che permettono di implementare degli algoritmi più sicuri quale bcrypt (Plugin tag: bcrypt)

L’unico dei plugin elencati ad essere stato testato con l’ultima versione (5.2.2) è il plugin Password Evolved (dello sviluppatore Carl Alexander).

Un altro progetto che sembra molto interessante (testato solo fino alla ver. 5.1.1) è PHP Native password hash (dello sviluppatore Ayesh Karunaratne)

Risorse aggiuntive

Oltre all’impiego di algoritmi sicuri, uno degli elementi fondamentali per la sicurezza del proprio sito è l’utilizzo di password complesse.
Per approfondimenti vi invito a leggere sul mio blog l’articolo “Guida per creare e gestire password a prova di hacker“.

Share on facebook
Share on twitter
Share on linkedin
Share on google
Roberto Jobet

Roberto Jobet

Sono un tecnico informatico e mi occupo di sicurezza di siti WordPress da diversi anni. Offro servizi professionali di analisi e di messa in sicurezza per tutelare la riservatezza, l'integrità e la disponibilità di sistemi WordPress.

Tutti gli articoli

Altri articoli che potrebbero interessarti

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Torna su