Ваш пароль был слишком длинным, так что мы его поправили

Ранее в этом году на хакерском форуме были опубликованы хеш-суммы около 6,5 млн паролей к учётным записям LinkedIn. Хеш-суммы представляли собой простые SHA1-дайджесты пользовательских паролей в том виде, в каком они хранятся в базе данных LinkedIn.

Хакеры тут же стали пробовать взломать эти пароли; более половины всех паролей оказались взломаны практически сразу.

Существует две основных причины, по которым пароли оказались так быстро взломаны:

  • * использование самой функции SHA1
  • * использование быстрых графических процессоров.

Рассмотрим обе причины.

Функция SHA1 была в первую очередь разработана как замена более слабого криптографического алгоритма MD5. На графической карте AMD / ATI 7970 “hashcat” (см. https://hashcat.net/oclhashcat-plus/) считает чуть более двух миллиардов SHA1-хешей в секунду. Это означает, что за очень короткое время можно протестировать множество комбинаций.

Для решения этой проблемы существуют современные, более безопасные алгоритмы, такие как функция sha512crypt, использованная в Ubuntu и последних версиях Fedora Core Linux. При использовании этой функции на той же графической карте можно взломать вместо 2 млрд. хешей лишь чуть более 12000 sha512crypt-комбинаций в секунду. Например, перебор миллиарда sha512crypt-комбинаций займёт около 24 часов; при этом перебор того же количества SHA1-комбинаций займёт менее секунды.

Учитывая вычислительные мощности современных графических карт, можно посоветовать выбирать пароли посложнее, которые:


* содержат как прописные, так и строчные символы
* содержат хотя бы один знак пробела
* содержат цифры
* содержат несколько символов, таких как !@#
* не основываются на известном слове
* состоят не менее чем из 12 символов; чем длиннее, тем лучше

Среди моих знакомых, многие используют парольные фразы длиной от 20 до 50 символов. В таком случае, ваш пароль, вероятнее всего, останется невзломанным, даже если его хеш-сумма подвергнется утечке.

Представьте себе, насколько я был удивлён, когда попытался войти в старый почтовый ящик Hotmail и получил следующее сообщение:

Пароли к учётным записям Microsoft могут содержать до 16 символов.
Если вы ранее использовали пароль длиной более 16 символов,
введите первые 16 символов.

Мой пароль до этого содержал около 30 символов; теперь он не работает. Однако, я смог залогиниться, введя первые 16 символов.

Это ограничение широко известно (смотри замечательный пост Грэма Клули об ограничениях на длину пароля в различных сервисах); однако мне бросилось в глаза то, что теперь можно залогиниться, введя лишь 16 символов моего прошлого пароля.

Чтобы этот трюк работал со старыми паролями, у Microsoft было две возможности:

* либо хранить полные незашифрованные пароли у себя в базе и сравнивать лишь первые 16 символов;
* либо считать хеш-сумму только первых 16 символов, а остальные игнорировать.

Хранение незашифрованных паролей к онлайн-сервисам — это однозначное табу с позиций безопасности. Остаётся второй вариант; и получается, что со времени введения этой практики Hotmail втихаря использовал только первые 16 символов паролей пользователей.

Если честно, мне сложно определиться, какой вариант хуже.

PS. Мой учитель мне говорил: думайте в позитивном ключе, по возможности заканчивайте на оптимистичной ноте. Так что вот: «спасибо Google за Gmail».

Публикации на схожие темы

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *