Kraken
  • 🐙Привет!
    • 👋Добро пожаловать!
  • ✏️Крупицы знаний
    • 🌚Общие статьи
      • Как установить Kali Linux
      • Как поставить виртуальную Kali Linux
      • Что такое CVE
      • Обзор популярных алгоритмов хеширования
      • Модель OSI
      • Какие есть алгоритмы шифрования
      • Что такое TCP/IP
      • HSTS
      • Что такое хеширование и как его используют в ИБ
      • Скрипт для проверки данных SSL-сертификата
      • Шифруем файлы на Kali Linux с помощью OpenSSL
      • Как работает WPA2
      • О протоколе FTP
      • Что такое CVSS
      • Что такое политика одного источника (SOP)
      • О Cross-Origin Resource Sharing (CORS)
      • О Content Security Policy (CSP)
      • Что такое Bash
      • Веб-сокеты
      • MITRE ATT&CK
      • Начало в OSINT
      • Особенности и подходы к тестированию мобильных приложений
      • Что такое REST
      • Что такое API
      • Сравнение безопасности среды iOS и Android
      • CSS в ИБ
    • 🎪Карьера
      • Какие бывают роли у пентестеров и в чем их смысл
      • Какие есть виды пентеста
      • Что входит в пентест
      • Какие есть области знаний в веб-пентесте
      • Главные ошибки новичков в ИБ
    • 😰Уязвимости
      • Об атаке Pastejaking
      • Об уязвимости KRACK
      • Об уязвимости Regex DoS
      • Об атаке MITM
      • Что такое уязвимость нулевого дня
      • Атака на протокол STP
      • Защита протокола STP
      • Clickjacking
      • База при атаке на Wi-Fi
      • Атаки по сторонним каналам
      • DNS ребайндинг
    • ⚙️Инструменты
      • Лучшие сканеры открытых портов и инструменты проверки портов
      • Что такое OWASP ZAP и как он помогает защитить приложения?
      • О фреймворке WiFi Exploitation Framework (WEF)
      • WeBaCoo — поддерживаем доступ к взломанному веб-серверу
      • Socialscan — проверяем использование электронной почты и имен пользователей в соцсетях
      • Обзор инструментов Red Team
      • 11 инструментов для сканирования уязвимостей
      • Подборка инструментов для автоматизации атак на JWT
      • О Bulk_Extractor
      • О Unicornscan
      • О Maryam
      • О Picocrypt, утилите для шифрования данных
      • Анализируем трафик с ZUI (Zed User Interface)
      • Об инструменте SkipFish
      • Как получить уведомления на почту о входе по SSH
      • О сканере OpenSCAP
      • О Censys — инструменте для поиска уязвимых поддоменов
      • О Scanless — инструменте для анонимного сканирования открытых портов
      • О SearchSploit — инструменте для поиска эксплойтов
      • Выбираем менеджер паролей
      • О Maltego
      • Устанавливаем и используем Snyk CLI в Windows
      • Проверяем безопасность Docker-образов с помощью Trivy
      • Об инструменте SpiderFoot
      • Сканируем сети с помощью скриптов Bash
      • О фреймворке Volatility на Windows
      • Определяем тип WAF с помощью WafW00f
      • Об инструменте ReNgine
      • О Foremost — инструменте для восстановления данных
      • Chisel — инструмент для проброса портов
      • O Yersinia
      • Об Acunetix
      • O Netcat
      • O Samba
      • O John the Ripper
      • О Common User Passwords Profiler (CUPP)
      • О RainbowCrack
      • Shodan
      • MobSF
      • Netsparker
      • Fortify
      • Veracode
      • Rapid7 InsightVM
      • Aircrack-ng
  • 🛠️ИНСТРУМЕНТЫ
    • ⌨️Беспроводные атаки
      • Aircrack-Ng
    • 🔑Атаки на пароли
      • Crunch
      • John
      • CUPP
      • Hashcat
      • Hydra
    • 👁️Сбор Информации
      • Masscan
      • Dnsenum
      • Parsero
      • Nmap
  • 👨‍💻Пентест
    • Методология
    • 🖥️Аппаратный/Физический доступ
      • Физические атаки
      • Побег из КИОСКа
  • 👾MITRE
    • 🗺️Тактики
      • 🏢Предприятия
        • Разведка
      • 📱Мобильные устройства
      • 🏭ICS
    • 💀CTI
      • ☠️Группы
        • admin@338
        • Ajax Security Team
        • ALLANITE
        • Andariel
  • 📟Справочник по безопасной разработке
    • 👨‍🔬CLIENT SIDE
      • Cross-Site Scripting [XSS]
      • Cross-Site Request Forgery [CSRF]
      • Clickjacking
      • Open Redirects
    • 🖥️SERVER SIDE
      • SQL Injections [SQLi]
      • XML External Entity Injection [XXE]
      • OS Command Injection [Command Execution]
      • File Upload
      • Server-Side Request Forgery [SSRF]
      • Host Header Injection
      • Аутентификация
      • Directory Traversal
      • Template Injection [SSTI]
    • API
  • 🐝OWASP
    • Cross Site Scripting (XSS)
Powered by GitBook
On this page
  • MD5
  • SHA-1
  • SHA-3
  • BLAKE
  • Сравнение алгоритмов хеширования
  1. Крупицы знаний
  2. Общие статьи

Обзор популярных алгоритмов хеширования

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

Last updated 1 year ago

Первую часть материала, где мы рассказали, что такое хеширование, . А теперь разберем некоторые из алгоритмов.

MD5

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

Поэтому его часто используют для проверки исходных данных. Любое изменение приведет к кардинально другому хеш-значению. Другие сферы применения: создание хеш-таблиц и проверка целостности данных в некритических системах.

Как работает MD5

+
-

Быстрое и простое хеширование данных

Небезопасен для криптографических задач, так как существуют атаки, которые позволяют создавать коллизии в хеш-функции

Может использоваться для проверки целостности данных и обнаружения подмены данных

Не рекомендуют для критических систем: электронных подписей, паролей

Поддержка в различных ОС и языках программирования

SHA-1

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

+
-

Надежное хеширование данных, используют для проверки целостности

Небезопасен для криптографических задач, так как существуют атаки, которые позволяют создавать коллизии в хеш-функции

Быстрый и простой в использовании

Не рекомендуют для критических систем: электронных подписей, паролей. SHA-1 надежнее MD5, но недостаточно безопасен

Используется в некоторых стандартах и протоколах, например, в SSL и TLS.

Объявлен небезопасным, поэтому многие организации переходят на более современные и безопасные алгоритмы хеширования

SHA-2

Набор алгоритмов хеширования данных. В него входят хеш-функции с разными размерами выходных значений: SHA-224, SHA-256, SHA-384 и SHA-512. Цифры — это количество бит. Больше размера выходного хеша → выше высокой стойкость к атакам. Но есть и минус: нужно будет больше мощностей.

SHA-2 один из самых распространенных. Довольно безопасен для применения в криптографических целях. Но всё-таки есть атаки, которые могут создать коллизии. Благо, для них требуются огромные мощности, поэтому они не так страшны: их можно отражать.

Высокая стойкость к коллизиям, считается одним из наиболее безопасных алгоритмов

Медленнее некоторых других алгоритмов. Особенно это заметно при больших выходных значениях

Разные размеры выходных значений, поэтому можно выбрать вариант в зависимости от задачи

Есть атаки, которые создают коллизии. Но там нужны огромные мощности

Поддержка многими ОС и языками программирования

Применяют для защиты данных, электронных подписей, проверки целостности и подлинности данных, хранения паролей

SHA-3

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

+
-

Устойчив к атакам

Относительно новый алгоритм: его ещё не все приняли и потестили

Высокая производительность на современных процессорах

Сложен для эксплуатации по сравнению с прошлыми алгоритмами

Генерирует хеш-значения в зависимости от задачи

Довольно медлительный: уступает, например, SHA-256

Для высокой скорости хеширования нужно специальное оборудование

BLAKE

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

+
-

Высокая скорость

BLAKE использовали меньше, чем SHA-1 и MD5. Он недостаточно изучен, и это вызывает осторожность при применении в критических системах

Высокая стойкость к атакам

Старые приложения не поддерживают BLAKE, поэтому могут быть проблемы при обмене данными между разными приложениями

Открытый исходный код

Сравнение алгоритмов хеширования

Размер ключа → длина ключа алгоритма Размер блока → размер данных, которые алгоритм обрабатывает за один раз

Алгоритм
Размер хэша (бит)
Размер блока (бит)
Размер ключа (бит)
Скорость хэширования
Устойчивость к атакам
Сложность атаки

MD5

128

512

–

Высокая

Уязвим к коллизиям

Можно атаковать за небольшое время

SHA-1

160

512

–

Высокая

Уязвим к коллизиям

Можно атаковать за небольшое время

SHA-2

224, 256, 384, 512

512, 1024

–

Высокая

Безопасен

Зависит от размера хэша

SHA-3

224, 256, 384, 512

1152, 1088, 832, 576, 512, 288

–

Средняя

Безопасен

Зависит от размера хэша

BLAKE

224, 256, 384, 512

512, 1024

256, 512

Средняя

Безопасен

зависит от размера хеша и ключа

Как работает SHA-1
Как работает SHA-2
Как работает SHA-3
Как работает BLAKE
✏️
🌚
читайте здесь