Справочник от Автор24
Найди эксперта для помощи в учебе
Найти эксперта
+2

Хеширование

Понятие хеш-функции

Определение 1

Хеш-функция или просто хеш – это алгоритм, который преобразует массив данных в последовательность букв и цифр фиксированной длины. При этом длина последовательности должна быть одинаковой не зависимо от объема исходных данных.

Криптостойкой называется хеш-функция, удовлетворяющая следующим требованиям:

  • Стойкость к восстановлению исходных данных из хеша (то есть, невозможность такого восстановления);
  • Стойкость к коллизиям, то есть к случайному получению одинакового хеша для разных массивов исходных данных.

В реальности все существующие хеш-алгоритмы не соответствуют первому требованию. Восстановление исходных данных теоретически возможно всегда. Но оно требует настолько много времени, что это не реализуемо на практике.

Для того чтобы оценить возможность коллизий, зашифруем алгоритмом SHA1 две очень похожие текстовые строки ‘Mary’ и ‘Marry’.

Пример 1

SELECT SHA1('Mary');

Результат: 94f85995c7492eec546c321821aa4beca9a3e2b1

SELECT SHA1('Marry');

Результат: 3984efca9e07e42e23a78a9efd4b9ec851050792

В результате получились строки длиной в 40 символов, которые не просто отличаются, а очень значительно отличаются друг от друга.

Более того, даже если в имени ‘Mary’ заменить все буквы на строчные, результат будет снова совершенно непохожим:

Пример 2

SELECT SHA1('MARY');

Результат: 68ba729f955f31c9b85b148daf9971f3f04434d9

Наиболее распространены такие алгоритмы шифрования как SHA1 и md5. Кроме них можно встретить алгоритмы SHA-256, LM, NTLM.

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

Чаще всего хеш-функции применяются для хеширования паролей. Когда пользователь регистрируется на некотором онлайн-сервисе (в социальной сети, интернет- магазине, почтовом сервере и т.д.), он сообщает сервису свой пароль. Сервис должен сохранить пароль в базе данных. Если сервис поддерживает правильную политику безопасности, то пароль сразу же хешируется и сохраняется в базе только в виде хеша. Далее каждый раз, когда пользователь входит в свой личный аккаунт, введенный пароль снова хешируется, и проводится сравнение двух хешей.

«Хеширование» 👇
Помощь эксперта по теме работы
Найти эксперта
Решение задач от ИИ за 2 минуты
Решить задачу
Помощь с рефератом от нейросети
Написать ИИ

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

Большинство современных онлайн-сервисов требуют, чтобы пароль удовлетворял определенным требованиям:

  • был не короче 6 символов;
  • содержал буквы в разном регистре;
  • содержал цифры.

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

Другие области применения хеширования

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

Для того чтобы найти запрещенный контент, сохраненный в облачных сервисах, нет нужды просматривать содержимое клиентских аккаунтов. Достаточно просто сравнить хеши сохраненной клиентами информации с хешами запрещенного контента. Это могут сделать автоматические сканеры.

Таким же способом антивирусные программы определяют наличие вирусов. Если раньше в антивирусных базах хранили тексты известных вирусов, то сейчас гораздо чаще вместо текста используются хеши характерных фрагментов известных вирусов.

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

Дата написания статьи: 06.09.2016
Получи помощь с рефератом от ИИ-шки
ИИ ответит за 2 минуты
Все самое важное и интересное в Telegram

Все сервисы Справочника в твоем телефоне! Просто напиши Боту, что ты ищешь и он быстро найдет нужную статью, лекцию или пособие для тебя!

Перейти в Telegram Bot