PHP aggiunge il supporto ad Argon2

Vincitore della Password Hashing Competition, Argon2 viene incluso all'interno di PHP e si candida come probabile sostituto di BCrypt per il prossimo futuro
Vincitore della Password Hashing Competition, Argon2 viene incluso all'interno di PHP e si candida come probabile sostituto di BCrypt per il prossimo futuro

La nuova versione di PHP – la 7.2 – rilasciata lo scorso 30 novembre , include diversi miglioramenti relativi alla sicurezza e agli algoritmi crittografici e di hashing.

Il cambiamento principale di questa release è senza alcun dubbio l’introduzione di un nuovo algoritmo di hashing – Argon2, versione 1.3 – che sarà utilizzabile lanciando la funzione password_hash() , utilizzando la costante PASSWORD_ARGON2I come secondo argomento.

L’algoritmo Argon2 si è aggiudicato la Password Hashing Competition indetta nel 2013 da un team di esperti di sicurezza guidato da Jean Philippe Aumasson. L’algoritmo possiede tre caratteristiche importanti che lo rendono superiore a BCrypt, il quale rappresenta tuttora l’algoritmo di hashing predefinito di PHP: è possibile definire dei limiti al suo utilizzo del tempo, sia come numero di iterazioni che come tempo di esecuzione, della memoria e del numero di thread paralleli . BCrypt possiede invece un solo fattore di costo , poiché risale al 1999 e utilizza un solo core della CPU; al tempo non erano ancora presenti sul mercato i processori multi-core.

Altro cambiamento introdotto con PHP 7.2 riguarda il graduale abbandono della libreria Mcrypt , il cui sviluppo è stato abbandonato nel 2007 e che per questo motivo presenta numerosi bug irrisolti: Mcrypt non sarà più inclusa nel core di PHP, ma entrerà a far parte del PECL , il repository delle estensioni; ad ogni modo, le funzioni di Mcrypt lanceranno d’ora in avanti notifiche di tipo E_DEPRECATED . Una libreria analoga ad Mcrypt, libsodium, effettuerà la transazione opposta, passando dal PECL al pacchetto core del linguaggio.

Altri cambiamenti minori riguardano il miglioramento di alcune costanti relative al TLS , la restituzione di warning per l’uso improprio della funzione count() , la possibilità di forzare l’utilizzo del tipo object come parametro o come valore restituito di una funzione, miglioramenti ai cast da object ad array e viceversa, il refactoring dell’estensione Hash , al fine di utilizzare internamente object anziché resource.

Elia Tufarolo

Link copiato negli appunti

Ti potrebbe interessare

06 12 2017
Link copiato negli appunti