PHP 7.2, novità per la sicurezza

20 ottobre 2017

PHP 7.2 presenta novità interessanti soprattutto dal punto di vista della sicurezza, oltre che alcune migliorie minori e un nuovo set di feature deprecate.

Argon2i

Iniziamo con la prima importante novità dedicata alla sicurezza che riguarda la funzione password_hash(), introdotta con PHP 5.5 ma che fino ad ora aveva come unico supporto PASSWORD_BCRYPT. PHP 7.2 introduce Argon2i come alternativa, si tratta di un algoritmo più moderno per il salvataggio delle password, particolarmente veloce e progettato per resistere ad attacchi. In particolare rispetto a PASSWORD_BCRYPT può essere configurato secondo 3 parametri che ne stabiliscono il comportamento:

  • Un “costo” che definisce l’utilizzo della memoria da parte dell’algoritmo.
  • Un “costo” che definisce il tempo di esecuzione dell’algoritmo e il numero di iterazioni.
  • Un fattore di parallelismo, che definisce il numero di thread paralleli.

Per esempio:

// Uso di Argon2i con i fattori di costo di default
password_hash('password', PASSWORD_ARGON2I);
 
// Uso di Argon2i con i fattori di costo personalizzati
password_hash('password', PASSWORD_ARGON2I, ['memory_cost' => 1<<16, 'time_cost' => 5, 'threads' => 2]);

Altra importante differenza fra i due è che PASSWORD_ARGON2I genera un hash di 96 caratteri contro i 60 di PASSWORD_BCRYPT.

libsodium

L’altra grande novità per la sicurezza è la libreria di crittografia libsodium integrata nel core di PHP 7.2. Libsodium è facile da usare per la crittografia, la decrittografia, le firme e il password hashing. Il suo obiettivo è fornire tutte le operazioni fondamentali necessarie per costruire strumenti crittografici di livello superiore. In pratica esso mette a disposizione:

  • Crittografia a chiave pubblica usando Diffie-Hellman e firme digitali su Curve25519.
  • Interoperabilità con altri protocolli che utilizzano NaCl o libsodium (ad esempio Noise).
  • La capacità di cancellare i buffer di memoria.
  • Algoritmi di crittografia che non sono vulnerabili ai canali laterali in assenza di hardware dedicato.
  • Crittografia autenticata.

Se vuoi aggiornamenti su PHP 7.2, novità per la sicurezza inserisci la tua e-mail nel box qui sotto:
 
X
Se vuoi aggiornamenti su PHP 7.2, novità per la sicurezza

inserisci la tua e-mail nel box qui sotto:

Ho letto e acconsento l'informativa sulla privacy

Acconsento al trattamento di cui al punto 3 dell'informativa sulla privacy