Что такое хеширование и как его используют в ИБ
В этой статье расскажем о хешировании: в чём смысл процесса, как он связан с шифрованием и как помогает кибербезопасности.
Что такое хеширование?
Математический алгоритм, который преобразовывает данные в строку фиксированной длины. В строке могут быть буквы и цифры, но длина (для большинства алгоритмов) — всегда одна, вне зависимости от вводных данных.
Например, введем несколько фраз в онлайн-генераторе 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 |
Есть несколько алгоритмов хеширования. Вот самые популярные из них:
MD5 (Message Digest 5) — один из самых старых алгоритмов хеширования, преобразует входные данные в 128-битное хеш-значение.
SHA-3 — последняя версия алгоритма SHA, использует хеш-значения разной длины, но отличается более высоким уровнем безопасности.
SHA-256 — один из наиболее распространенных криптографических алгоритмов хеширования. Его используют для генерации уникального цифрового отпечатка данных.
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