В последнее время все чаще встречается новость о том, что SHA1 - одна из наиболее популярных функций хеширования - на грани исчезновения. Алгоритм SHA1 был разработан в далеком 1995 году, а его первые слабые стороны обнаружили в 2005-м - почти 10 лет назад. Расчеты, проведенные два года назад, показали, что возможности взлома SHA1 значительно возросли. В связи с этим еще в ноябре прошлого года (2013) Microsoft заявил о том, что начиная с 2016 года компания полностью откажется от поддержки сертификатов, основанных на SHA1.
Отказ Google от SHA1 в Chrome
Тем не менее, намного больше паники вызвало недавнее заявление Google о том, что компания будет постепенно отказываться от поддержки SHA1 в новых версиях наиболее используемого браузера Chrome. В первую очередь это отразится на том, что веб-сайты, использующие SSL сертификаты с хешированием SHA1 и сроком действия, заканчивающемся в 2016 году и позже, будут отмечены в браузере как ненадежные. Это изменение требует незамедлительных действия со стороны веб-администраторов, так как на сентябрь 2014 более 85% всех защищенных веб-сайтов использовали SSL сертификаты, основанные на алгоритме SHA1.
Как отказ от SHA1 будет заметен в браузере?
Chrome 39 (обновление от 26 сентября 2014 года)
Веб-сайты с SSL сертификатами, которые истекают 1 января 2017 года или позже и содержат подпись, основанную на SHA1, будут отмечены в браузере как "доверенные, но с незначительными ошибками". Для этого будет использоваться желтый треугольник, который и ранее применялся для обозначения незначительных ошибок (как, например, смешанный контент).

Chrome 40 (обновление от 7 ноября 2014 года)
Веб-сайты с SSL сертификатами, срок действия которых истекает в промежутке с 1 января до 31 декабря 2016 года (включительно) и которые используют подпись, основанную на SHA1, будут обозначены как "доверенные, но с незначительными ошибками". Веб-сайты с SSL сертификатами, включающими SHA1 и со сроком действия, заканчивающимся 1 января 2017 года и позже, будут отмечены как "нейтральные, со слабой защитой". При этом в адресной строке браузера будет показываться белый лист вместо знака замка, как на веб-сайтах без SSL шифрования.
Chrome 41 (обновление с первого квартала 2015 года)
В этой версии браузера Chrome веб-сайты с SSL сертификатами, срок действия которых истекает с 1 января до 31 декабря 2016 года так и будут отмечаться желтым треугольником. Веб-сайты с установленными SSL сертификатами на основе SHA1 и со сроком действия, истекающим 1 января 2017 года и позже, будут отмечены как "небезопасные", что будет показано с помощью красного крестика на иконке замка и красной перечеркнутой надписи https.
Если на Вашем сайте установлен один из таких SSL сертификатов, рекомендуем заняться устранением данной проблемы как можно раньше.
Что следует делать
До заявления Google решение этого вопроса было простым: не использовать SHA1 после 2016 года. Решение Google усложнило ситуацию. Теперь небезопасно использовать SHA1 с браузером Google Chrome и на протяжении 2016 года. Для некоторых веб-сайтов нет положительного решения, независимо от предпринимаемых усилий: если веб-мастер хочет, чтобы сайт отображался в Chrome без ошибок, возможно придется отказаться от части посетителей, использующих более старые версии браузеров и других клиентских приложений. Позже мы рассмотрим эту проблему.
Мы рекомендуем:
1. Просмотреть объявление Google и разобраться, как будут вводиться изменения. В течение нескольких следующих месяцев изменения коснутся SSL сертификатов, срок действия которых заканчивается после 2016 года. После этого будут введены дальнейшие изменения, которые затронут уже и сертификаты, истекающие на протяжении 2016 года.
2. Убедитесь, что новые сертификаты и их цепочки основаны на SHA256. Это важно, ведь если Ваш SSL сертификат не использует алгоритм SHA256, Ваши дальнейшие старания бессмысленны. Таким образом, все SSL сертификаты с SHA1, которые истекают до конца 2015 года, можно будет без проблем продлить, используя алгоритм хеширования SHA256 и таким образом избежать ошибок в Chrome.
Также необходимо убедиться, что SHA1 отсутствует во всей цепочке сертификатов. Не часто, но тем не менее бывают случаи, когда персональный сертификат использует SHA256, в то время как один из промежуточных сертификатов основан на алгоритме SHA1. Не беспокойтесь, если SHA1 присутствует в корневом сертификате - подписи корневых сертификатов не используются и Chrome, соответственно, не будет предупреждать о них.
3. Замените SSL сертификаты, срок действия которых истекает после 2015 года.

Начните с наиболее важных сайтов и с сайтов, на которых установлен SSL сертификат, истекающий после 2016 года, так как на них хуже всего отразится нововведение Google. После этого замените оставшиеся SSL сертификаты. Это действие требует времени, но не должно повлечь дальнейших затрат, так как большинство центров сертификации производят перевыпуск SSL сертификатов бесплатно.
Тем не менее, есть несколько фактов, на которые следует обратить внимание при перевыпуске SSL сертификатов:
- Более старые версии платформ могут не поддерживать SSL сертификаты с подписью, основанной на SHA256. Например, такая проблема существует в ОС сервера Windows Server 2003. Следовательно, для обновления SSL сертификата до SHA256 может потребоваться и обновление или исправление базовой платформы.
- Некоторые старые версии клиентов не поддерживают SHA256. Большинство веб-сайтов могут обновиться до SHA256 и ожидать, что пользователи также обновят браузеры и программы. Но для владельцев больших веб-ресурсов с разнообразными базами пользователей, возможно, есть смысл сохранить совместимость с SHA1 как можно дольше. В некоторых случаях этого можно добиться благодаря размещению "дуальных" сертификатов, что будет описано ниже.
Какие клиенты не поддерживают SHA256?
Многие из устаревших клиентов не поддерживают SHA256, но вопрос заключается в том, какие из них имеют значение? Ответ на этот вопрос индивидуален для каждого сайта. Более детальную информацию по совместимости браузеров и клиентов просмотрите наш обзор по
совместимости с SHA256.
Что касается операционных систем, Windows XP включил поддержку SHA256 в пакете обновлений SP3. Пользователям, использующим Windows XP SP2, следует обновить систему до следующего уровня. В зависимости от направления веб-сайта, существенная часть пользователей все еще может использовать Windows XP, поэтому рекомендуем провести аудит своей аудитории перед переходом на SHA256. Среди мобильных платформ, Android добавил поддержку SHA256 в версии 2.3. Ранние версии, которые все еще массово используются, поддерживают только SHA1.
Что делать, если Вам нужна поддержка старых клиентов?
С технической точки зрения идеальным решением данной проблемы была бы возможность предоставлять сертификаты SHA256 современным клиентам и обслуживать SHA1 для клиентов, которые не способны на большее. На самом же деле всем известно, что на одном сайте нельзя одновременно установить более одного сертификата. Но такой вариант идеально подходит для переходных периодов, как сейчас. В таком случае сайт мог бы предоставлять два сертификата: ECDSA+SHA256 для современных клиентов и RSA+SHA1 для более старых версий. К сожалению, эта возможность доступна не на всех платформах.
Насколько нам известно, Apache - единственный из наиболее популярных серверов, который поддерживает установку нескольких сертификатов. Что касается других платформ, CloudFlare и Yahoo объявили, что добавит подобную функцию соответственно в Nginx и Apache Traffic server. О том, как установить два SSL сертификата на одном IP адресе, Вы можете прочитать в нашей статье о
технологии SNI. Обновление! Октябрь, 2015: проведена первая успешная атака на алгоритм SHA 1, об этом в
нашей новой статье.