🤗 Хэширование и Хэш-функции
⚪️Хэширование — преобразование данных с помощью специального алгоритма
В результате возникает хеш (hash) — отображение данных в виде уникальной строки
😍размер строки одинаковый для информации разного объема.
😍хеш состоит из цифр и латинских букв.
😂 Хэш-функция
Хэш-функция — алгоритм, который принимает входные данные любого размера и возвращает хэш фиксированного размера
Результат хеш-функции называется «хеш-суммой»\«хеш», а входные данные — «сообщением»
Исходное сообщение -> [Хэш-функция] -> Хэш
Когда хэши совпадают — это коллизия. Это небезопасно, т.к. позволяет подменить данные.
Как работает хеш-функция
По шагам:
😍данные разбиваются на части
😍проходят через сжимающую функцию, которая преобразовывает информацию в меньшее количество бит
😍при необходимости сверки, данные снова хэшируются, и полученный хэш сравнивается с исходным
Функция должна быть криптостойкой, т.е. ее результат практически невозможно вскрыть
🔣В хеш-функциях для более простых случаев преобразования проще. Например, хэш-функция построения таблиц
🔣Хэш с солью — хэш, к которому добавили случайные данные (соль) перед хэшированием.
Это делается, чтобы предотвратить атаки по радужным таблицам и сделать каждый хэш уникальным, даже для одинаковых исходных данных
Основные характеристики хэш-функций
🟣необратимые, т.е. невозможно восстановить исходные данные из хэша
🟣для одних и тех же входных данных хэш всегда одинаковый
🟣 нет разных входных значений, у которых получится одинаковый хэш
🟣небольшое изменение в исходных данных приводит к сильному изменению хэша
🟣хэш генерируется быстро, даже если входной массив данных большой
Для чего используется хэширование
*️⃣для проверки целостности данных. Создается уникальный хеш исходных данных. Получатель вычисляет хеш и сравнивает его с переданным. Совпадение хешей подтверждает неизменность данных
*️⃣для безопасного хранения паролей: вместо паролей на сервере хранятся их хеши, что предотвращает доступ к паролям в случае утечки данных
*️⃣для создания цифровых подписей: создается хэш сообщения. Он шифруется закрытым ключом отправителя, создавая цифровую подпись. Получатель расшифровывает подпись с помощью открытого ключа отправителя и сравнивает с хэшем полученного сообщения. Хеши совпадают — документ подписан отправителем
Примеры хэширования
😍антивирус хранит в базе хеши вирусов, а не программы, что не позволяет исполнять вредоносное по
😍веб-серверы используют хеши для проверки изменений на страницах. Если хеши совпадают, страница не изменялась, и её можно загрузить из кэша
😍информация о транзакциях криптовалюты хранится в виде хешей
Популярные алгоритмы хэширования
✨MD5 (Message Digest Algorithm 5)
✨SHA-1 (Secure Hash Algorithm 1)
✨SHA-2 — семейство алгоритмов с общей идеей хеширования данных
☺️SHA-256
🥶 Шифрование
Шифрование — преобразование данных в вид, который нельзя прочитать без специального ключа
Как работает шифрование
Вводятся данные и используется ключ для шифрования.
Данные преобразуются алгоритмами в зашифрованный формат, который может быть расшифрован только с использованием соответствующего ключа
Основные типы
⏩ Симметричное: Один и тот же ключ используется как для шифрования, так и для дешифрования данных
⏩ Асимметричное: Используются два различных ключа – публичный для шифрования и приватный для дешифрования
Для чего используется
⚪️Конфиденциальность: защищает данные от несанкционированного доступа
⚪️Целостность: чтобы данные не были изменены
⚪️Аутентификация: подтверждает подлинность отправителя данных
Примеры использования
😥в HTTPS для защиты данных при передаче между веб-браузером и сервером
😥в емэйлах для прочтения только авторизованными пользователями
😥VPN сервисы шифруют интернет-трафик между устройством и сервером VPN
😥в бд при передаче и хранении
Популярные алгоритмы
✨AES (Advanced Encryption Standard)
✨RSA (Rivest–Shamir–Adleman)
✨Blowfish
⭐️ Подборки материалов по этой и другим темам доступны в базе знаний по системному анализу
#безопасность