Если вы, как и я, часто пользуетесь Интернетом, велика вероятность, что вы получили электронное письмо примерно следующего содержания:
Уважаемый клиент!
Недавно наш сайт стал жертвой кибератаки в нашей корпоративной сети. Все пароли были зашифрованы, но в качестве меры предосторожности мы требуем от всех наших клиентов немедленно сбросить свои пароли.
Спасибо.
Итак, произошла утечка информации, часть вашей информации, включая зашифрованный пароль, была раскрыта. Ваш аккаунт находится под угрозой?
Краткий ответ: ДА, но почему?
Чтобы понять это, вы должны понимать концепцию «хеширования паролей».
Что такое хеш?
Хеш — это всего лишь способ представить любые данные в виде уникальной строки символов. Хешировать можно что угодно: музыку, фильмы, свое имя или эту статью. Образно говоря, хеширование — это способ присвоения «имени» вашим данным. Он позволяет вам взять входные данные любой длины и превратить их в строку символов всегда одинаковой длины. Очевидно, что для этого существует множество методов (алгоритмов).
Несколько самых популярных алгоритмов хеширования:
- MD5 – для л
Что такое хеш?
ащен уникальный хеш из 32 символов. - SHA1 – для любых данных будет возвращен уникальный хеш из 40 символов.
- SHA256 – любые данные вернут уникальный хеш из 64 символов; разработан Агентством национальной безопасности.
Давайте рассмотрим простой пример:
Меня зовут «Джамин Беккер»
Хеш-представление моего имени в формате MD5:
eeb7048c69b088739908f5f5144cd1f5
Хеш-представление моего имени по SHA1:
ae480b717c08b6ab36a85075864e35b9c528d7c5
Хеш-представление моего имени по SHA256:
a477cc14eae5fd94fe4cb20b36ec80ac6983bad44973ae7f4f230010f01289b0
Почему хеширование безопасно?
Причина, по которой хеширование безопасно, проста: хеширование — это односторонняя операция. Их невозможно повернуть вспять. Учитывая строку «eeb7048c69b088739908f5f5144cd1f5», невозможно перевернуть хеш MD5, чтобы вернуть «Джамин Беккер». Это связано с тем, как математики и программисты структурировали алгоритм хеширования MD5, и это возвращает нас к фундаментальной задаче информатики под названием « П против НП ». P и NP — это всего лишь два класса алгоритмов.
Большинство алгоритмов хеширования подпадают под категорию NP, что означает, что их можно быстро вычислить. Однако алгоритмы дехеширования (например, «eeb7048c69b088739908f5f5144cd1f5» ->«Джамин Беккер») подпадают под класс P и могут быть эффективно решены только за полиномиальное время (т.е. с использованием квантового компьютера, значительно более совершенного, чем те, которые доступны сегодня). /п>
Почему это полезно для безопасности?
Предположим, вы подписались на веб-сайт и выбрали пароль «12345». Этот веб-сайт с
Почему хеширование безопасно?
с помощью SHA1, и сохраняет его в базе данных. Теперь каждый раз, когда вы входите в систему, веб-сайт будет перехешировать ваш пароль и сравнивать его с паролем, хранящимся в базе данных. Если они совпадают, вы успешно пройдете аутентификацию. Если веб-сайт когда-либо будет взломан и база данных паролей будет раскрыта, ваш пароль будет отображаться как «8cb2237d0679ca88db6464eac60da96345513964», а не «12345».Стратегии хэш-атак
Итак, у злоумышленника есть хешированная версия моего пароля, и нет возможности изменить его на 12345. Мне не о чем беспокоиться, верно? НЕПРАВИЛЬНО!
Один метод, который обычно используется для получения простого текстового пароля из хеша, называется атакой методом перебора. В этой атаке злоумышленник просматривает огромный список слов и хэширует каждое слово с помощью соответствующего алгоритма хеширования. Затем они могут сравнить хеши в списке слов с теми, которые они получили из базы данных. Если хеш из списка слов совпадает с хешем в базе данных, они могут просто найти соответствующий пароль в виде простого текста в исходном списке слов, который они хешировали. Опытные злоумышленники будут использовать чрезвычайно большие списки слов в сочетании с мощным программным обеспечением, чтобы перебирать миллионы вариантов пароля в секунду.
Другой метод атаки пытается использовать сам алгоритм хеширования, создавая коллизию хэшей. Коллизия хэшей происходит, когда два разных набора данных разрешаются в один и тот же хэш, и хотя это случается редко, это может быть смертельно опасным. Это позволит злоумышленнику сгенерировать строку символов, которая не является вашим паролем, но при этом сможет войти в вашу учетную запись, поскольку она генерирует тот же хэш.
Заключение
Алгоритмы хеширования становятся все более совершенными. Математики и компьютерщики постоянно разрабатывают криптографические алгоритмы хеширования с меньшей вероятностью коллизий. Однако важно помнить, что каким бы сильным ни был алгоритм хеширования, его всегда можно взломать с помощью грубой силы. Хорошей новостью является то, что вы также можете легко защититься от этих атак, просто следуя передовой политике паролей.
- Размер имеет значение: чем длиннее исходный пароль, тем меньше вероятность того, что он появится в списке слов.
- Не будьте предсказуемыми – избегайте использования таких слов, как «пароль» и «моеимя123».
- Используйте сочетание специальных символов, цифр, прописных и строчных букв.
Что вы думаете о хешировании? Поделитесь своим мнением в комментариях ниже.
Изображение предоставлено: Стратегии хэш-атак_blank" target="_blank" rel="noopener" title="Увеличительное стекло онлайн отпечаток пальца">Увеличительное стекло онлайн отпечаток пальца от BigStockPhot