В начале октября авторитетный центр выдачи TLS-сертификатов (CA) GlobalSign занялся реструктуризацией своей инфраструктуры. В числе прочих мер, GlobalSign удалил ряд кросс-подписей своих корневых TLS-сертификатов.

К сожалению, в процессе браузеры Safari, Chrome и IE11 начали воспринимать сертификаты GlobalSign как отозванные по причинам безопасности. Инженеры GlobalSign оперативно устранили критическую ошибку, однако некорректный OCSP-ответ оказался закэширован на CDN и широко распространился по свету. В данный момент — и следующие четыре дня, до истечения срока действия записи в OCSP-кэше браузеров — сайты, защищённые сертификатом от GlobalSign, могут быть недоступны для значительной части пользователей.

Среди затронутых сайтов такие компании, как Wikipedia, Dropbox, Financial Times и другие.


Кровавые технические подробности


Что такое OCSP


Для шифрования HTTP-трафика в Интернете используются протоколы SSL и TLS. В этих протоколах вводится понятие «certificate authority» (CA), или центра сертификации. Каждая операционная система и каждый браузер имеют встроенный кэш центров сертификации, которым они доверяют. Любой HTTPS-сайт должен иметь сертификат, выданный доверенным центром сертификации, иначе соединение не установится и браузер отобразит ошибку.



В этой концепции есть один скользкий момент. Дело в том, что в случае обнаружения, например, уязвимости на сервере злоумышленник может получить доступ к существующему сертификату и закрытому ключу шифрования. Украв ключ, злоумышленник сможет использовать его для имитации оригинального сайта и организовать на этот сайт атаку типа Man-in-the-Middle. В результате вор потенциально может получить доступ к паролям, данным пластиковых карт и иной конфиденциальной информации посетителей сайта.



Проблема усугубляется тем, что TLS-сертификаты выдаются хоть и не навсегда, но на достаточно длительный промежуток времени (обычно — от года и более), причём многие центры сертификации (включая, кстати, GlobalSign) дают скидку тем, кто покупает у них сертификат с длительным сроком действия. Это одна из тех проблем, решить которые стремится бесплатный центр сертификации Let's Encrypt. Сертификаты, выданные Let's Encrypt, действительны не более 3 месяцев, и центр сертификации планирует сократить этот период до 30 дней.

Исправить существующее положение дел призваны механизмы под названием CRL и OCSP. Они позволяют браузеру проверить, действителен ли тот TLS-сертификат, который предъявляется сайтом. Если в какой-то момент обладатель сертификата заподозрит, что закрытый ключ от сертификата попал не в те руки, он может связаться с центром, выдавшим сертификат, и отозвать его. Отозванный сертификат не будет приниматься большинством современных браузеров, в частности, Safari и Chrome, а в перспективе — всеми браузерами вообще. Таким образом, закрытая информация не попадёт не в те руки.

Что произошло в начале октября


Компания GlobalSign управляет множеством корневых доверенных сертификатов. Ряд этих сертификатов кросс-подписывает друг друга, аналогично тому, как это делает Let's Encrypt:



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

Само собой, кросс-подписывание усложняет обслуживание корневых сертификатов. Кроме того, со времени выпуска некоторых из сертификатов GlobalSign прошло уже достаточно времени, чтобы оставшимися необновлёнными системами можно было пренебречь. В конце концов, эти системы всё равно обречены — например, печально известный Internet Explorer 6 «из коробки» поддерживает криптографические протоколы версии не выше уязвимого SSL 3.0.

Ввиду этого в октябре 2016 года GlobalSign решил удалить часть кросс-подписей между своими сертификатами и управлять ими далее раздельно и независимо.

Что пошло не так


Утром 14 октября в процесс отзыва кросс-подписей вкралась ошибка. В результате ряд промежуточных сертификатов GlobalSign (в частности, недорогой и распространённый AlphaSSL) стал восприниматься браузерами Safari и Chrome как отозванный, а все сайты, купившие сертификат у AlphaSSL и других, перестали открываться.

Инженеры GlobalSign оперативно исправили проблему, но беды на этом не закончились. Дело в том, что OCSP-сервер — это чрезвычайно высоконагруженный элемент инфраструктуры CA, на него ходят все браузеры всех пользователей всех клиентов CA (кроме тех клиентов, которые настроили OCSP stapling). Поэтому большинство центров сертификации используют для раздачи OCSP-ответов CDN. В частности, GlobalSign пользуется услугами Cloudflare. Подробностей пока нет, но, по всей видимости, Cloudflare по каким-то причинам оказался не в состоянии оперативно очистить свой кэш, и некорректный OCSP-статус продолжил распространяться в Интернете.


В данный момент проблема с кэшом CDN также решена, однако у множества пользователей неверный OCSP-статус закэширован теперь уже в браузере. Запись в OCSP-кэше браузеров и операционных систем будет действительна в течение следующих 4 дней, потом ситуация исправится.

Есть также косвенные основания полагать, что проблема была вызвана багом в обработке OCSP-записей в браузерах Safari и Chrome. Однако фактических подтверждений этому пока нет. Обновление: The Register в Твиттере сообщает: сотрудники GlobalSign подтвердили в интервью радио BBC, что проблема была целиком на их стороне.

Спустя 11 часов после начала инцидента GlobalSign выпустил рекомендацию по исправлению возникших проблем, однако ряд клиентов за это время уже мигрировали к другим CA:


Самое неприятное в данной ситуации: ошибка GlobalSign затронула в первую очередь Интернет-сервисы с высокой посещаемостью. Фактически, пострадавшие сайты будут недоступны только у тех пользователей, которые зашли на них в течение тех нескольких часов, пока Cloudflare выдавал некорректный OCSP-ответ. Чем популярнее сайт, тем больше на нём доля таких пользователей. Сайты с небольшой посещаемостью и сайты без постоянных посетителей практически не пострадали от этого инцидента.

Если вы сами испытываете проблемы с доступом к HTTPS-сайтам и браузер рапортует о том, что сертификат сайта отозван, попробуйте очистить локальные кэши CRL и OCSP. Соответствующую инструкцию можно найти на сайте GlobalSign.

Самое главное


Этот инцидент — первый в своём роде. Впервые в истории Интернета случилась проблема такого уровня, и нет сомнения, что все игроки индустрии CA сделают всё возможное, чтобы подобное не повторилось.

Глобальная инфраструктура TLS и CA сложна и объёмна, но любую систему характеризует не ошибка, а реакция на ошибку. Произошедшее не должно рассматриваться как причина останавливать повсеместное внедрение безопасных протоколов и шифров. Включая на своём сайте HTTPS, HSTS, HPKP, вы защищаете своих пользователей и делаете Интернет безопаснее и — всё же — надёжнее. И это то направление, в котором должен двигаться Интернет.

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

Комментарии (22)


  1. Chupakabra303
    14.10.2016 10:40
    +3

    Спасибо за обзор. Вы прямо по полочкам разложили наши с коллегой мысли, когда мы вчера бились над «отозванным» сертификатом для сайта.


    1. ximaera
      14.10.2016 11:00

      Разложил ваши мысли — с точностью до использования ненормативной лексики, я полагаю :-)


    1. RootPass
      14.10.2016 11:11
      +1

      Теперь на крупные нагруженные проекты помимо всего прочего нужно добавлять запасной кластер с SSL. Мы устранили сбой за 30 минут, путем смены центра сертификации, благо были предупреждения на координатные изменения в трафике, из-за проблем проседание трафика было на 20%


  1. sumanai
    14.10.2016 10:55

    А финансовую ответственность GlobalSign будет нести?


    1. RootPass
      14.10.2016 11:03

      Пока писал свое послание, вы опередили. Читайте комментарий — https://geektimes.ru/post/281468/#comment_9628642, с юристом сегодня разбирали проблему.


    1. ximaera
      14.10.2016 11:06
      +1

      Сомневаюсь, но даже если так, их ответственность ограничивается сверху суммой $1000 за DV-сертификат или $2000 за EV (см. п. 6.0).


  1. RootPass
    14.10.2016 11:01

    Самое интересное то, что за эту ошибку никто не отвечает. У GlobalSign в договоре прописано:

    НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ КОМПАНИЯ «GLOBALSIGN» НЕ НЕСЕТ ОТВЕТСТВЕННОСТИ ЗА КАКОЙ-ЛИБО КОСВЕННЫЙ УЩЕРБ, НЕПРЕДНАМЕРЕННЫЙ УЩЕРБ, ФАКТИЧЕСКИЙ УЩЕРБ, ОПРЕДЕЛЯЕМЫЙ ОСОБЫМИ ОБСТОЯТЕЛЬСТВАМИ, ИЛИ ПОСЛЕДУЮЩИЙ УЩЕРБ, ВОЗНИКАЮЩИЙ ИЗ ИЛИ В СВЯЗИ С ИСПОЛЬЗОВАНИЕМ, ПРЕДОСТАВЛЕНИЕМ, ПОЛАГАНИЕМ, ЛИЦЕНЗИРОВАНИЕМ, ИСПОЛНЕНИЕМ ИЛИ НЕИСПОЛНЕНИЕМ ТРАНЗАКЦИЙ С ИСПОЛЬЗОВАНИЕМ СЕРТИФИКАТОВ, ЭЛЕКТРОННЫХ ПОДПИСЕЙ, ИЛИ ПРОЧИМИ ТРАНЗАКЦИЯМИ ИЛИ УСЛУГАМИ, ПРЕДЛАГАЕМЫМИ ИЛИ ПОДРАЗУМЕВАЕМЫМИ В ЭТИХ ПОЛОЖЕНИЯМ О ПРАВИЛАХ СЕРТИФИКАЦИИ КОМПАНИИ «GLOBALSIGN».

    И реселер соответственно на себя не берет ответственность. В сухом остатке: был причинен ущерб сервису, а заплатят за это только владельцы.


    1. ximaera
      14.10.2016 11:09

      Немного не так, там ещё есть фраза:

      «TO THE EXTENT GLOBALSIGN HAS ISSUED AND MANAGED THE CERTIFICATE IN ACCORDANCE WITH THE BASELINE REQUIREMENTS AND THE CPS, GLOBALSIGN SHALL NOT BE LIABLE TO THE SUBSCRIBER, RELYING PARTY OR ANY THIRD PARTIES FOR ANY LOSSES SUFFERED AS A RESULT OF USE OR RELIANCE ON SUCH CERTIFICATE. OTHERWISE, GLOBALSIGN’S LIABILITY TO THE SUBSCRIBER, RELYING PARTY OR ANY THIRD PARTIES FOR ANY SUCH LOSSES SHALL IN NO EVENT EXCEED ONE THOUSAND DOLLARS ($1,000) PER CERTIFICATE»
      Выделенное жирным условие очевидным образом было нарушено, так что можете претендовать на $1000. Или на $2000, если у вас EV-сертификат.

      А потери бизнеса, да, не компенсируют. Впрочем, даже если бы были обязаны, всё равно бы не смогли, скорее всего.


      1. RootPass
        14.10.2016 11:19
        +1

        По убыткам вообще все сложно. Есть прямые и косвенные. Например, у нас вчера «отвалился» крупный клиент с демо-периода, т.к. была проблема. Клиента, конечно, не волновало, что проблема не наша, мы должны были предвидеть. Но как…


        1. sumanai
          14.10.2016 11:23
          +2

          Думаю там одних прямых убытков хватит, чтобы разорить компанию.


        1. ximaera
          14.10.2016 11:32
          +1

          Да, обидно, конечно.

          Самое неприятное, что инструмента, который бы позволял оперативно отслеживать инциденты подобного уровня, нет. У Cloudflare большая распределённая сеть, и средство мониторинга, способное поймать проблему с кэшами на отдельных нодах, должно быть как минимум топологически распределено не хуже. Кроме того, оно должно уметь ходить из каждой точки в CRL и OCSP. Насколько я в курсе, до сего дня два этих свойства никогда не встречались в одном решении совместно.


          1. mayorovp
            14.10.2016 12:36
            +1

            А самое обидное — что если бы подобное средство существовало, именно оно бы и спровоцировало проблему для всех тех сайтов, которым сейчас повезло.


            1. ximaera
              14.10.2016 17:16

              Но оно бы, по крайней мере, сообщило о характере проблемы. Предупреждён — значит, вооружен.

              А сейчас вышло так, что множество компаний просто столкнулись с неведомой проклятой ерундой: всё работает, загрузка CPU и памяти ниже среднего, все системы мониторинга рапортуют об отсутствии проблем в сети, а меж тем в прайм-тайм трафик упал на 10-30% и не восстанавливается. Я знаю людей, которые только через пару часов сумели хотя бы понять, с чем связана проблема.

              При этом, если понимать, в чём проблема, то исправление занимает до получаса в большинстве случаев. Если у вас не EV, конечно, тогда всё плохо.


  1. ximaera
    14.10.2016 11:31

    Ссылка на heartbeat-страницу GlobalSign, где можно отслеживать текущее состояние этой и других проблем:

    GlobalSign System Alerts


  1. ivan19631224
    14.10.2016 11:40
    +1

    > Утром 14 октября в процесс отзыва кросс-подписей вкралась ошибка.
    Я так и не понял, что именно за ошибка? И как она могла возникнуть? Какого-то рода ручной ввод некорректных данных?


    1. ximaera
      14.10.2016 11:51

      Пока полного заявления от GlobalSign о том, какие именно действия производились, нет.

      Лично у меня есть следующее предположение. Насколько я вижу, все affected intermediate-сертификаты были выпущены в 2014-2015 годах. Я полагаю, что кто-то из сотрудников GlobalSign отозвал кросс-подпись старых сертификатов, выведенных из эксплуатации. Однако, так как новые сертификаты были выпущены для тех же ключей шифрования, что и старые, отзыв затронул и их. То есть да, это человеческий фактор.

      Но давайте всё же дождёмся описания от самого CA.


      1. mayorovp
        14.10.2016 12:44
        +1

        Разве отзываются ключи, а не сертификаты?


        1. ximaera
          14.10.2016 16:06
          +1

          Отзываются сертификаты, конечно же. Но, возможно, сотрудник GlobalSign ориентировался на модуль ключа и перепутал сертификаты.

          В общем, если бы эта ошибка была бы очевидной, она бы, очевидно, не была допущена :-)


  1. Valery4
    16.10.2016 15:23

  1. Asatur1979
    16.10.2016 15:36
    +1

    Самое весёлое — это то, что вся помощь по решению проблемы с невозможность зайти на https-сайты находится на https-сайте.


    1. sumanai
      16.10.2016 17:42

      Тут сертификат другого CA.


      1. Asatur1979
        16.10.2016 23:53
        +2

        Не-не, я не о GT, а о самом Globalsign, если у кого-то будут данные проблемы, то к ним на страницу саппорта можно будет зайти?