Метка «bcrypt»

В недавней статье «Как надо хешировать пароли и как не надо» было озвучено предложение использовать некий локальный параметр (его еще называют перцем), как еще один рубеж защиты паролей. Несмотря на то, что это решение создает больше проблем, чем решает, большинство комментаторов поддержали эту идею, а несогласных, как водится, заминусовали. Мир в моей голове рухнул и я решил написать эту статью.

Суть

Перец — такая глобальная случайная строка, которая дописывается ко всем паролям (помимо соли). Она секретна (в отличии от соли). Таким образом, получив базу, узнать пароли становится невозможно. И все, казалось бы, хорошо…
Читать полностью »

Использование BCrypt является общепринятым и лучшим способом для хэширования паролей, но большое количество разработчиков по-прежнему используют старые и слабые алгоритмы, вроде MD5 и SHA1. Некоторые разработчики даже не используют соль для хэширования. Новый API хэширования в PHP 5.5 ставит своей целью привлечь внимание к BCrypt, упрощая работу с ним. В этой статье я расскажу об основах использования нового API для хеширования в PHP.

Новый API хэширования паролей предоставляет четыре простых функции:

  • password_hash() — используется для хэширования пароля.
  • password_verify() — используется для проверки пароля на соответствие хэшу.
  • password_needs_rehash() — используется для проверки необходимости создать новый хэш.
  • password_get_info() — возвращает имя алгоритма хеширования и различные параметры, используемые при хэшировании.

Читать полностью »

Зачем вообще хэшировать пароли?

В последние дни на хабре появились сообщения о том, что базы с хэшами паролей популярных сервисов попадают в руки злоумышленников (1), (2). Становится известно, что сервис linked.in использует метод хэширования SHA-1, а last.fm использует MD5. Большинство паролей представляют собой короткие словарные слова, а значит злоумышленник, имея хэш, сможет найти исходный пароль даже без брутфорса, просто воспользовавшись радужными таблицами.
Это серьёзное нарушение безопасности, несмотря на то, что многие разработчики считают, что сохранение хэша пароля вместо самого пароля способно защитить пользователей сервиса в случае утечки базы данных. Безусловно, это гораздо лучше, чем хранить пароли в открытом виде, но, очевидно, недостаточно безопасно. Метод BCrypt, в отличие от MD5 и SHA-1 не очень известен на просторах рунета, в русскоязычной википедии даже нет статьи о нём. Что же он из себя представляет?
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js