SHA-1, SHA-2, SHA-256, SHA-384 - Что такое хеш ( Hash - hashing algorithm )
Алгоритм хеширования - это математическая функция, которая уплотняет данные до фиксированного размера. Иногда хеширование называется односторонним шифрованием.
Например берем предложение "Что такое хеширование и как с ним бороться" пропускаем его через специальный алгоритм хеширования и получаем щось типа "078945aDf" - этот результат называется хешем (hash) от приведенного предложения. Если необходимо сравнить два файла, то проще сначала вычислить их хеши и сравнить их хеши, чем посимвольно сравнивать два файла. Очень удобно и безопасно получается например для хранения паролей в базе - достаточно сравнить хеш установленного пароля и хеш введенного пароля чтобы удостовериться что введен правильный пароль, плюс сам то пароль не хранится в базе, и это прекрасно с точки зрения безопасности
Существуют сотни алгоритмов хеширования, и все они имеют конкретные цели - некоторые оптимизированы для определенных типов данных, другие - для скорости, безопасности и т. д. SHA расшифровывается как алгоритм безопасного хеширования, он предназначен для криптографической безопасности.
Криптографические алгоритмы хеширования SHA создают необратимые и уникальные хэши. Необратимый хеш означает, что если у вас есть хеш вы не сможете восстановить исходный фрагмент данных. Уникальный хеш означает что два разных фрагмента данных никогда не могут создавать один и тот же хеш.
Протокол SSL / TLS используется для обеспечения безопасной передачи данных с одного устройства на другое. SSL сертификат обеспечивает «шифрование» а также обеспечивает аутентификацию. Задача сертификата SSL - предоставить необходимую информацию для аутентификации. Сертификаты SSL связывают определенный открытый ключ с организацией. Протокол SSL / TLS обеспечивает соединение с использованием асимметричного шифрования. Это означает, что есть два ключа шифрования, каждый из которых обрабатывает половину процесса: открытый ключ для шифрования и закрытый ключ для дешифрования. Каждый SSL-сертификат содержит открытый ключ, который используется клиентом для шифрования данных, а владелец SSL-сертификата использует закрытый ключ для расшифровки этих данных. В конечном счете, основной задачей асимметричного шифрования для HTTPS является безопасный обмен сеансовыми симметричными ключами .
Цифровые подписи являются важной частью того, как сертификаты SSL обеспечивают аутентификацию. SSL сертификат подписывается цифровой подписью центра сертификации DigiCert. Эта подпись предоставляет криптографическое доказательство того, что ЦС подписал сертификат SSL и что сертификат не был изменен или воспроизведен. Подпись является доказательством того, что информация, содержащаяся в сертификате, была проверена доверенной третьей стороной - Центром сертификации. ЦС сначала хэширует файл сертификата и подписывает полученный хэш. Это более эффективно, чем подписывать весь сертификат. Цифровая подпись обеспечивают необходимое доказательство того, что сертификат, который вы получили, является точным сертификатом, выданным доверенным центром сертификации для данного веб-сайта. Цифровые подписи чрезвычайно чувствительны - любое изменение в файле приведет к изменению хеша подписи. Это делает невозможным для злоумышленника изменить законный сертификат или создать поддельный сертификат, который выглядит законным.
SHA-1 и SHA-2
SHA обозначает алгоритм безопасного хеширования. SHA-1 и SHA-2 - две разные версии этого алгоритма. Они отличаются как полученный хеш создается из исходных данных и по длине в битах подписи. SHA-1 - это 160-битный хеш. SHA-2 является «семейством» хэшей и имеет различную длину, наиболее популярной из которых является 256-битная. Есть «SHA-224», «SHA-384» «SHA-512»... С 2011 по 2015 год SHA-1 был основным алгоритмом, с 2016 года SHA-2 является новым стандартом. (Хронология перехода сохранена ниже для истории ;)
Переход с алгоритма хэширования SHA-1 на SHA-2 ( SHA-256 ) с 1 января 2017
Использование SHA-1 в качестве алгоритма хеширования для подписи сертификатов не одобрялось,
а теперь и вовсе не рекомендуется. ;)
Основная причина проблемы — известная уязвимость алгоритма хэширования SHA-1, которая делает
возможными атаки, приводящие к конфликтам. Эти атаки могут позволить злоумышленнику создать
дополнительные сертификаты, обладающие той же цифровой подписью, что и исходный сертификат.
Microsoft опубликовал рекомендации по безопасности "Deprecation of SHA-1 Hashing Algorithm for Microsoft Root Certificate Program".
и перестал принимать SHA-1 сертификаты с 1 января 2017 года.
Чтобы работать с платформами Microsoft, все SHA-1 SSL сертификаты должны быть заменены на SHA-256 (SHA-2).
SSL сертификаты с окончанием срока действия после 1 января 2017 должны использовать SHA-2
CodeSigning сертификаты с окончанием срока действия после 1 января 2016 должны использовать SHA-2
Форум CA / B и отраслевые лидеры активно ищут способы помочь заказчикам защитить окружающую среду и инфраструктуру.
SHA-1 был широко распространенным отраслевым стандартом и обладал сильной повсеместностью,
однако SHA-2 содержит ряд улучшений для укрепления безопасности, и Национальный институт стандартов (NIST)
рекомендовал использовать его вместо SHA-1.
|