Алгоритм безопасного хеширования (SHA) — это алгоритм хеширования, который используется для хеширования данных. Для любого онлайн-бизнеса важно понимать, что такое SHA, как он работает и какие типы доступны.
Что такое хеширование SHA?
Алгоритмы безопасного хеширования (SHA) — это семейство криптографических хеш-функций, опубликованных Национальным институтом стандартов и технологий (NIST) в качестве федерального стандарта обработки информации США (FIPS). SHA используются для различных методов, в том числе для хеширования данных, файлов сертификатов и других криптографических целей, в том числе в криптовалютах, таких как биткойн. Эти алгоритмы хеширования помогают защитить основу современной интернет-инфраструктуры.
Наиболее распространенными семействами функций SHA, с которыми вы столкнетесь, являются SHA-1 и SHA-2:
SHA-1 - это 160-битная хеш-функция, созданная в результате работы над алгоритмом MD5. Первоначально он был создан Агентством национальной безопасности (АНБ) как часть их алгоритма цифровой подписи. Однако в SHA-1 были обнаружены криптографические недостатки, и после 2010 года стандарт больше не был одобрен для большинства криптографических применений.
SHA-2 был разработан вскоре после открытия атак грубой силы против SHA-1. Это семейство двух похожих хэш-функций с разными размерами блоков, известных как SHA-256 и SHA-512. Основное различие между SHA-256 и SHA-512 заключается в размере слова. SHA-256 использует 32-байтовые слова, тогда как SHA-512 использует 64-байтовые слова. Существуют также модифицированные версии каждого стандарта, известные как SHA-224, SHA-384, SHA-512/224 и SHA-512/256. На сегодняшний день наиболее часто используемой функцией SHA является SHA-256, которая обеспечивает достаточную защиту при текущих уровнях компьютерной обработки.
Помимо этих более известных вариантов, есть еще два семейства SHA, с которыми вы можете столкнуться - SHA-0 и SHA-3:
SHA-0 - это то, что мы теперь называем базовой версией 160-битной или 20-байтовой хеш-функции, которая была опубликована еще в 1993 году под названием алгоритм SHA. Использование хеш-функции было прекращено вскоре после ее публикации из-за обнаружения крупного недостатка, и после дальнейшего развития лежащей в основе теории SHA-1 был реализован.
SHA-3 - это метод хеширования SHA, который в настоящее время развивается наиболее быстро. Он отличается от других SHA использованием Keccak, недавно разработанной хэш-функции. Поддерживаемая длина такая же, как у SHA-2, но имеются существенные различия. Что отличает SHA-3, так это его общая структура, поскольку он основан на широком диапазоне генерации случайных функций, которые обычно поддерживают все случайные перестановки, тем самым позволяя вводить или поглощать любое количество данных. Это обеспечивает вывод, который эффективно псевдорандомизирован и теоретически более безопасен.
В чем разница между SHA-1 и SHA-2?
Разница между SHA-1 и SHA-2 заключается в «длине» или «количестве битов», которые содержит дайджест сообщения (хэшированное содержимое) для любого заданного ввода. Таким образом, чем больше битов в дайджесте, тем сложнее его взломать, используя тактику грубой силы, которая заставила эволюционировать дальше SHA-1. SHA-2 создает 256-битный дайджест, а функция SHA-1 создает 160-битный дайджест для тех же входных данных. Из-за этой разницы SHA-1 обеспечивает более слабую безопасность, поскольку иногда дает один и тот же дайджест для двух разных значений данных, в то время как SHA-2 создает уникальный дайджест для каждого значения данных, поскольку в нем возможно большое количество возможных комбинаций (2^256) для 256-битной функции
Как используется хеширование SHA?
SHA широко используются в протоколах и приложениях безопасности, включая безопасность транспортного уровня (TLS), уровень защищенных сокетов (SSL), цифровые подписи, сертификаты электронной почты S/MIME, PGP и IPsec. Этот тип хеширования часто требуется по закону для определенных приложений правительства США, таких как защита конфиденциальных данных. А производители браузеров, такие как Google, Microsoft или Mozilla, начали рекомендовать использование SHA-3 и прекратить использование алгоритма SHA-1.
Одним из наиболее важных применений SHA является протокол SSL/TLS, поскольку используется в качестве алгоритма хеширования для цифровых подписей.
SSL и TLS — это криптографические протоколы, предназначенные для обеспечения безопасного канала связи между клиентами и серверами через Интернет. Сертификаты TLS/SSL — это тип сертификата X.509, который используется для проверки подлинности сервера в браузере.
Этот тип сертификата предназначен не только для обеспечения аутентификации, но и для установления личности удаленного сервера, с которым взаимодействует клиентский браузер. Он содержит сведения о веб-сервере и связанных с ним ключевых файлах. Сертификаты должны содержать информацию DNS и не должны быть просрочены, чтобы их можно было правильно принять и создать сеанс SSL/TLS без каких-либо ошибок безопасности.
Как работает хеширование SHA?
SHA, как следует из названия, представляет собой алгоритм хеширования. Каждый фрагмент данных, пропущенный через алгоритм, создает уникальный хэш, который не может быть продублирован никаким другим фрагментом данных. Результирующая цифровая подпись также уникальна, поскольку зависит от хэша, сгенерированного из данных. В случае фактического общения используется симметричная криптография, где тот же самый ключ, который хеширует или шифрует данные, используется для их расшифровки. Это позволяет раскрывать открытый ключ без компрометации закрытого ключа.
Большинство алгоритмов хеширования основаны на исходном алгоритме хеширования MD4 и, таким образом, используют схожий метод работы.
Основной процесс хэширования любого типа — преобразовать входные данные в двоичные данные, а затем выполнить набор простых функций, которые работают через базовые стандартные транзисторные и шинные процессы, такие как И, НЕ, ИЛИ и другие. Результирующее хеш-значение представляет собой уникальное, но бессмысленное шестнадцатеричное число. Необходимость выполнять эти простые функции для правильного хэширования входных данных является одной из причин, по которой могут быть разработаны специализированные чипы (ASICS) для оптимизации хеширования.
В случае SHA-256 недавно созданные чипы были специально разработаны для увеличения скорости создания хэша из ввода. В случае майнинга биткойнов это означает, что вы можете вычислять больше хэшей в секунду, что увеличивает шансы на получение большей прибыли.
Безопасен ли SHA?
SHA-1 (алгоритм безопасного хэширования 1) восходит к 1995 году, и известно, что он уязвим для теоретических атак с 2005 года. Национальный институт стандартов и технологий США запретил использование SHA-1 федеральными агентствами США с 2010 года, и Центрам цифровой сертификации не разрешается выдавать сертификаты, подписанные SHA-1, с 1 января 2016 г., хотя были сделаны некоторые исключения.
Однако, несмотря на эти усилия по поэтапному отказу от использования SHA-1 в некоторых областях, алгоритм по-прежнему довольно широко используется в различных областях, включая:
- операции с кредитными картами
- электронные документы
- электронная почта с подписями PGP/GPG
- репозитории программного обеспечения с открытым исходным кодом
- резервные копии
- программные обновления
Его использование опасно повышенным риском раскрытия информации, поэтому было оказано значительное давление, чтобы в конечном итоге стараться перевести их на более безопасный стандарт. Многие браузеры, такие как Google Chrome, начали помечать любые сертификаты, подписанные SHA-1, как небезопасные для посетителей.
SHA по определению безопасны. Однако уровень безопасности, связанный с каждым SHA, со временем повышался по мере разработки новой версии. Как мы уже говорили, SHA-0 имеет больше открытых уязвимостей, чем SHA-1, который в свою очередь имеет больше открытых уязвимостей, чем SHA-2. Эта тенденция сохранится и в будущем, поскольку гонка вооружений между злоумышленниками и защитниками конфиденциальных данных продолжается.
Какой SHA следует использовать?
Чтобы защитить ваших пользователей, вы всегда должны использовать SHA, который лучше всего подходит для проекта, над которым вы работаете. В наши дни они, скорее всего, будут из семейства SHA-2, в котором для большинства проектов есть варианты использования. Все сертификаты SHA совместимы не со всеми серверами, поэтому для создания безопасной среды необходимо не только понимание потребностей вашего варианта использования, но и понимание вашего оборудования.
Версии продуктов различных популярных серверов, необходимые для совместимости с цифровыми сертификатами SHA-2, можно найти ниже:
- Сервер Apache: 2.0.63+
- IBM HTTP Server: 8.5 (в комплекте с Domino 9)
- Продукты на основе Java: Java 1.4.2+
- Mozilla: продукты на основе NSS 3.8+
- Oracle WebLogic: 10.3.1+
Как упоминалось ранее, SHA-256 в настоящее время является наиболее часто используемой версией SHA. Однако по мере развития компьютерной индустрии SHA-256 станет более уязвимым для атак, как и его предыдущие воплощения. Следуйте рекомендациям производителей браузеров, таких как Google, Microsoft или Mozilla, и начинайте, если это возможно, использовать SHA-3 в своих проектах. Убедиться, что вы знаете о самых последних обновлениях алгоритмов безопасного хеширования, — это лучший способ правильно хешировать данные без риска.
Какова бы ни была причина, по которой страница сайта не открывается, например DDoS-атаки или вирусы, важно контролировать доступность сайта для посетителя. Ситуация, при которой пользователь не может открыть страницу вашего сайта, отрицательно влияет на поднятие сайта в поиске (поисковой выдаче) и оставляет негативное впечатление о вашем сайте у посетителя. Вы теряете потенциальных клиентов, а значит и деньги. Используйте хороший сервис, например BAILRY для постоянного контроля (проверки) доступности сайта. Сервис предоставляет как бесплатную регулярную (периодическую) проверку доступности сайта, так и платную услугу - для постоянного контроля доступности сайта.
Компания Mainton - разработка программного обеспечения под заказ, SEO и реклама в интернете с 2004 года.