PHP получает поддержку алгоритма хэширования паролей Argon2

4 декабрь, 2017 - 13:35
PHP получает поддержку алгоритма хэширование паролей Argon2

PHP уже лет десять как является предметом шуток программистов, между тем, с выходом версии 7.х в 2015 г. этот язык стал гораздо быстрее и безопаснее, чем прежде. На этой неделе анонсировано ответвление PHP 7.2 в котором значительной модернизации подвергнуты поддержка криптографии и алгоритмы хеширования паролей.

Фундаментальным нововведением в PHP 7.2 стал Argon2, алгоритм хеширования, разработанный в начале 2010-х. Argon2 обошел 23 других алгоритма и стал победителем конкурса Password Hashing Competition в 2015 г. Это достижение позволило рабочей группе Internet Engineering Task Force (IETF) выбрать Argon2 в качестве следующего универсального стандарта для всей сети Интернет.

Новый алгоритм превосходит Bcrypt — наиболее популярную сегодня функцию хэширования паролей — как по ценовой эффективности так и по уровню обеспечиваемой безопасности. Помимо хэширование паролей он может применяться для POW (Proof-Of-Work) защиты распределённых систем, в том числе используемых электронными криптовалютами.

Argon2 v1.3 добавлен в ядро PHP начиная с версии PHP 7.2, выпущенной в прошлый четверг, и разработчики могут использовать его через функцию password_hash().

Другим важным новшеством стала замена в ядре PHP 7.2 старой криптографической библиотеки Mcrypt на её современную альтернативу, Libsodium.

«Libmcrypt не пересматривалась уже восемь лет (последний релиз был в 2007 г.), что оставляло OpenSSL единственной опцией для пользователей PHP 5.x и 7.0, — заявил Скотт Арцишевски (Scott Arciszewski), директор по разработке компании Paragon Initiative Enterprises. — Libsodium это современная криптографическая библиотека, которая предлагает аутентифицированное шифрование, высокопроизводительную криптографию на эллиптических кривых и многое другое. В отличие от других криптографических стандартов (которые, как, например, WebCrypto, являют собой случайный набор криптографических примитивов) Libsodium составлена из тщательно подобранных алгоритмов, реализованных экспертами безопасности для устранения уязвимостей побочных каналов».

Арцишевски в феврале прошлого года стал инициатором внесения этой модификации в раннюю версию кода PHP 7.2. В то время PHP был первым языком программирования, включившим современную криптографическую библиотеку в дистрибутив ядра, а не в качестве подключаемого модуля.