После приостановления поддержки сертификатов Sectigo в мае 2020 года многие клиенты испытали проблемы в работе программ, веб-браузеров и различных приложений. Давайте разберемся, в чем проблема и чья ошибка всему виной.
У пользователей стандартным актуальным ПО проблем возникнуть не должно. Ваш ресурс использует стандартный SSL-сертификат, в адресной строке вы виде привычный замочек? Значит вашему сайту или блогу ничего не грозит и вам не нужно вносить какие-либо изменения. Все современные браузеры будут адекватно отображать ваш ресурс.
Однако в том случае, если ваш ресурс или любой другой используемый сетевой сервис применят приложения сURL, OpenSSL и т.д., вы можете столкнуться с ошибками или невозможность нормально работать. Также проблемы возникнут у пользователей, которые для загрузки веб-страницы применяют устаревшее ПО, без обновлений с 2015 года.
В данной статье мы постараемся объяснить причины возникающих проблем, а также пути их решения.
Что случилось?
Начнем объяснение с определения того, что же делает SSL/TLS сертификат. Они применяются различным ПО, работающим с интернет-пространством. Процесс выглядит следующим образом: браузер пытается связаться со службой по защищенному протоколу SSL/TLS. В ответ на запрос веб-служба передает приложению сертификаты, которые приложение должно проверить. Проверяется принадлежность сертификатов той же службе, которой они были выданы, а также срок их действия. И, наконец, приложение проверяет, кем были выданы сертификаты, были ли это доверенные ЦС, и именно на этом этапе возникли сбои у клиентов после прекращения поддержки корневого сертификата AddTrust.
В процессе проверки, кем выдан сертификат, приложение пытается связаться с корневыми сертификатами, если этот этап успешно завершен – приложение устанавливает связь с веб-службой, используя SSL/TLS-протокол. Если проверка не пройдена, соединение обрывается, и клиент получает сообщение об ошибке или угрозе безопасности.
В процессе проверки сертификатов, приложения пытаются связаться с наиболее доверенными, к которым относился и корневой сертификат AddTrust External CA Root, благодаря его «почтенному сроку службы» насчитывающему 30 лет. Данный корневой сертификат включался в пакеты центров сертификации до 30 мая 2020 г. Хотя сертификат и считался устаревшим, еще в 2010 и 2015 году, применяя метод перекрестной сертификации, ЦС выпустил новые корневые сертификаты для замены устаревшего. Они распространялись в составе обновлений для ПО и приложений. По статистике, к 2015 году обновления покрыли более 90% ПО, использующего протоколы шифрования SSL / TLS.
Несмотря на наличие обновленных версий, старый сертификат входил в пакеты центров сертификации до 30 апреля 2020 года. Это было сделано с целью максимального охвата пользователей, в том числе применяющих устаревшее ПО.
Все современные веб-браузеры и приложения обладают как старыми, так и новыми сертификатами, благодаря перекрестной подписи. И при устаревании сертификата AddTrust, они автоматически переключаются на проверку более новых корневых сертификатов. В результате пользователи не ощущают никаких неудобств в работе из-за завершения срока действия AddTrust сертификата от Sectigo. Данные, передаваемые по зашифрованному протоколу, также не были подвержены никакому риску.
Однако у пользователей клиентов OpenSSL 1.0.x и GnuTLS, а также клиентов, использующих cURL возникли проблемы и сбои в работе.
Проблема в том, что данные приложения часто применяют настраиваемые вручную (пользовательские) способы проверки сертификатов. Это означает, что автоматическая цепочка доверия с исключением просроченного корневого сертификата не используется, Эти приложения или не содержали обновленных сертификатов, или применяли ошибочную логику построения пути проверки. Также часто подобное ПО настроено на доверие конкретному корневому сертификату, в данном случае – с истекшим сроком. Все варианты ошибок и причины их возникновения изучал Университет Карнеги – Меллона, ознакомиться с их материалами можно по ссылке (https://www.cmu.edu/iso/service/cert-auth/addtrust.html).
Приведем краткий список программ и клиентов, пострадавших в связи с прекращением срока действия корневого сертификата AddTrust от Sectigo:
- Устаревшие ПО и клиенты, не получившие обновления с середины 2015 года;
- Apple Mac OS X 10.11, а также более ранние;
- Mozilla Firefox 35 и более старые версии;
- iOS 9 и более старые версии;
- Клиенты, с пользовательской настройкой доверия конкретному сертификату (устаревшему);
- ПО на основе OpenSSL старше версии 1.1.1;
- Android 5.0 и более старые версии;
- Microsoft Windows Vista & 7 с устаревшими обновлениями корневых сертификатов (до 2010 года);
- Microsoft Windows XP, с устаревшими обновлениями корневых сертификатов (до 2010 года);
- Oracle Java 8u50 и более старые версии;
- Устройства без обновлений от 2015 года;
- Клиенты OpenLDAP;
- Java-приложения с ручными настройками проверки сертификатов;
- Клиенты с cURL;
- Клиенты с оповещениями Pingdom или OpsGenie.
После прекращения срока действия сертификата, многие пользователи столкнулись со сбоями в работе, приложения не смогли установить безопасное соединение со службами.
Почему пользователей не предупредили?
Увы, предположить такой сценарий развития событий было практически невозможно. Предполагалось, что окончание срока действия сертификата AddTrust от Sectigo повлияет только на владельцев устаревшего оборудования, технически не способного использовать обновления (это менее 0,1% пользователей).
По логике проблемы не должны были возникнуть, так как вместе с истекшим корневым сертификатом на сервере располагаются новые. При построении цепочки старый автоматически заменяется новым, в итоге проблемы с обновленными системами не возникают. На практике вышло немного иначе.
В связи с недооценкой вопроса, возник ряд ошибок. Исследователи не учли, что сбои произойдут не только в работе устаревшего ПО, но также современных систем с отключенными обновлениями, или ручной настройкой логики проверки сертификатов. Также объемы использования устаревшего ПО оказались значительно больше предполагаемых. Это привело к возникновению глобальных проблем у пользователей с различными клиентами и службами.
Почему СА-комплекты, выпущенные в апреле, включал корневой сертификат с истекающим сроком?
Компания Sectigo внесла изменения в пакет сертификатов только за 30 дней до истечения срока действия корневого сертификата AddTrust, то есть в СА-пакет он входил до конца апреля 2020 года. Из-за ошибки центров сертификации, такие пакеты предоставлялись вплоть до момента окончания срока действия, то есть до 30 мая.
Данную проблему уже устранили и компании, чьи клиенты пострадали в итоге ошибочных СА-пакетов, принесли извинения.
Проблема не повторится?
Возникшая проблема заставила центры сертификации пересмотреть определенные моменты в механизме формирования пакета сертификатов с тем, чтобы в дальнейшем такая ошибка не возникала. Теперь центры сертификации полностью контролируют цепочки, храня их на сервере, и по заявлениям центров, обновления не повлияют на производительность.
Также принято решение в дальнейшем информировать всех клиентов о любых изменениях, даже теоретически не влияющих на ПО конкретного пользователя.
Если у вас остались вопросы, связанные с истечением срока действия сертификата AddTrust или другие вопросы, связанные с сертификацией – обращайтесь в нашу службу поддержки по электронному адресу: support@emaro-ssl.ru, или по телефону: 8 800 555 14 99.