Что такое хеширование и как его используют в ИБ

В этой статье расскажем о хешировании: в чём смысл процесса, как он связан с шифрованием и как помогает кибербезопасности.

Что такое хеширование?

Математический алгоритм, который преобразовывает данные в строку фиксированной длины. В строке могут быть буквы и цифры, но длина (для большинства алгоритмов) — всегда одна, вне зависимости от вводных данных.

Например, введем несколько фраз в онлайн-генераторе SHA-1 и посмотрим, что получится:

Что вводим

Что получаем при хешировании

Kraken

3515 dc3d fe46 1ab1 24f0 7951 72e3 d7a5 9a67 8c6b

Выпускайте кракена!

9b69 307f d79f 8709 ccb8 c4e8 69a8 2dec d725 07e3

Мифы ловят богов как сети — рыбу. Люди плохие рыбаки: боги уходят от них.

258d 5344 bc8b deec 5a5d 5c39 36e8 cfc3 3c6d 56e1

Есть несколько алгоритмов хеширования. Вот самые популярные из них:

  1. MD5 (Message Digest 5) — один из самых старых алгоритмов хеширования, преобразует входные данные в 128-битное хеш-значение.

  2. SHA-3 — последняя версия алгоритма SHA, использует хеш-значения разной длины, но отличается более высоким уровнем безопасности.

  3. SHA-256 — один из наиболее распространенных криптографических алгоритмов хеширования. Его используют для генерации уникального цифрового отпечатка данных.

  4. BLAKE — семейство алгоритмов, где используют хеш-значения разной длины. Отличаются высокой скоростью и безопасностью.

Хеширование отличается от других алгоритмов шифрования — здесь нет ключа, поэтому всегда можно дешифровать хеш в исходный файл. Вопрос лишь в мощностях: дешифровать некоторые алгоритмы займёт очень-очень много времени.

Для чего нужно хеширование?

Хранение паролей

Все онлайн-ресурсы держат ваши пароли не в открытом виде, а в виде хеш-значений. То есть ни Netflix, ни «Кинопоиск», ни Kraken Academy не знают, какой именно ваш пароль.

Поэтому когда вы восстанавливаете пароль на сервисах, вам не присылают его обратно — вас просят сделать новый. Кстати, если вы получили пароль от сервиса в открытом виде — всё очень плохо. У злоумышленников, кстати, есть наборы хешированных распространенных паролей. Это помогает взломать слабозащищенные учетные записи. Поэтому хеширование это, конечно, хорошо, но ставить пароль 12345 не стоит. Лучше пользуйтесь KeePass.

Давайте проведем эксперимент. У нас есть два пароля. Первый — admin, второй мы сделаем с KeePass — K$w3|°¦_aYebÑøîvIý±z Преобразуем их в хеш по алгоритму MD5:

Пароль

Пароль после хеширования

admin

21232f297a57a5a743894a0e4a801fc3

K$w3|°¦_aYebÑøîvIý±z

5efc85352533d1eff443ca57d7504dd6

Теперь попробуем преобразовать их обратно, с помощью ещё одного онлайн-сервиса. Пароль admin распознался на секунду. А вот что случилось, когда мы ввели второй пароль:

Защита медиафайлов

Сервис может хранить хеши фотографий, музыки, видео, текста в специальной базе. С помощью нескольких алгоритмов можно обнаружить, пытается ли какой-то пользователь выдать за своё чужой медиафайл. Можно сказать, что хеширование — неплохой инструмент против пиратства.

Поиск вирусов

В сообществе кибербезопасников есть списки хешов зловредов или их частей, обычно каких-то хорошо узнаваемых компонентов. Один из самых популярных — VirusTotal. Что это позволяет: 1. Пользователь, который наткнулся на подозрительный, может проверить его хеш и понять, не вредоносный ли он. Тут только стоит учесть, что далеко не все вредоносы и их части есть в списках. 2. По этому же принципу может работать и антивирус, проверка по хэшам — один из самых простых методов детектирования, которые они используют.

Защита от фальсификации данных

С помощью хеширования можно понять, были ли изменения в передаваемом файле. Нужно просто сравнить хеши, ведь даже изменение на 1 байт сильно повлияет на результат хеш-значения. Давайте на примере. Предположим, что в нашем файле есть значение admin, где каждый символ — на латинице. Также предположим, что нам вернули файл с аdmin, но первый символ здесь кириллический. Вот как будут выглядеть хеши по MD5:

Рил admin

Фэйк аdmin

21232f297a57a5a743894a0e4a801fc3

6bd61645af3f3f3b089964d29f139c56

Last updated