OCSP сшивание - OCSP stapling

В Сшивание протокола Online Certificate Status Protocol (OCSP), формально известный как Запрос статуса сертификата TLS расширение - это стандарт для проверки статуса отзыва X.509 цифровые сертификаты.[1] Это позволяет предъявителю сертификата нести расходы на ресурсы, связанные с предоставлением Протокол статуса онлайн-сертификата (OCSP) ответы путем добавления ("сшивания") с отметкой времени OCSP ответ подписанный СА к начальному Рукопожатие TLS, избавляя клиентов от необходимости связываться с центром сертификации, с целью повышения безопасности и производительности.

Мотивация

Оригинал OCSP реализация имеет ряд проблем.

Во-первых, это может привести к значительным расходам для центров сертификации (ЦС), поскольку требует от них предоставления ответов каждому клиенту данного сертификата в режиме реального времени. Например, когда сертификат выдается веб-сайту с высокой посещаемостью, серверы центров сертификации могут столкнуться с огромным объемом запросов OCSP, запрашивающих действительность сертификата.[2]

Кроме того, проверка OCSP потенциально ухудшает конфиденциальность пользователей и замедляет просмотр, поскольку требует, чтобы клиент связался с третьей стороной (ЦС) для подтверждения действительности каждого обнаруженного сертификата.[2][3]

Более того, если клиенту не удается подключиться к CA для ответа OCSP, он вынужден выбирать между: (а) продолжением соединения в любом случае; преодоление цели OCSP или (б) завершение соединения на основании предположения, что существует атака; но это может привести к чрезмерному количеству ложных предупреждений и блокировок.[4]

Сшивание OCSP направлено на решение этих проблем с исходной реализацией OCSP.[5][6]

Решение

Сшивание OCSP решает обе проблемы способом, напоминающим Билет Kerberos. В сценарии сшивания владелец сертификата сам через регулярные промежутки времени запрашивает сервер OCSP, получая подписанный с отметкой времени Ответ OCSP. Когда посетители сайта пытаются подключиться к сайту, этот ответ включается ("скрепляется") с Подтверждение TLS / SSL через ответ расширения запроса статуса сертификата (примечание: клиент TLS должен явно включить расширение запроса статуса сертификата в свое сообщение подтверждения ClientHello TLS / SSL).[7]

Хотя может показаться, что разрешение оператору сайта управлять проверочными ответами позволит мошенническому сайту выдавать ложную проверку для отозванного сертификата, сшитые ответы нельзя подделать, поскольку они должны быть непосредственно подписаны центр сертификации а не сервер.[6] Если клиент не получает сшитый ответ, он просто свяжется с сервером OCSP самостоятельно.[4] Однако, если клиент получает неверный ответ сшитый, он прерывает соединение.[1] Единственный повышенный риск сшивания OCSP заключается в том, что уведомление об отзыве сертификата может быть отложено до истечения срока действия последнего подписанного ответа OCSP.

В результате клиенты продолжают получать от центра сертификации поддающуюся проверке уверенность в том, что сертификат в настоящее время действителен (или был совсем недавно), но им больше не нужно индивидуально связываться с сервером OCSP. Это означает, что теперь основная нагрузка по ресурсам ложится на держателя сертификата. Это также означает, что клиентскому программному обеспечению больше не нужно раскрывать информацию о привычках просмотра пользователями третьим лицам.[2]

Общая производительность также улучшается: когда клиент получает ответ OCSP непосредственно из CA, это обычно включает поиск доменного имени сервера OCSP CA в DNS, а также установку соединения с сервером OCSP. Когда используется сшивание OCSP, информация о статусе сертификата доставляется клиенту по уже установленному каналу, что сокращает накладные расходы и повышает производительность.[5]

Технические характеристики

Расширение запроса статуса сертификата TLS указано в RFC 6066, Раздел 8.

RFC 6961 определяет расширение запроса состояния нескольких сертификатов, которое позволяет серверу отправлять несколько ответов OCSP в квитировании TLS.

В черновом предложении для поля расширения X509v3, срок действия которого истек в апреле 2013 года, указано, что совместимый сервер, представляющий сертификат, несущий расширение, должен возвращать действительный токен OCSP в своем ответе, если расширение status_request указано в приветственном сообщении клиента TLS.[8] Текущая версия предложения была расширена для поддержки дополнительных расширений TLS.[9] Разработчик TLS Адам Лэнгли обсудил расширение в статье в апреле 2014 года после ремонта Heartbleed Ошибка OpenSSL.[10]

Развертывание

Поддержка сшивания OCSP постепенно внедряется. В OpenSSL проект включил поддержку в выпуск 0.9.8g с помощью гранта от Фонд Mozilla.

HTTP-сервер Apache поддерживает сшивание OCSP с версии 2.3.3,[11] то nginx веб-сервер с версии 1.3.7,[12] Веб-сервер LiteSpeed начиная с версии 4.2.4,[13] Microsoft IIS поскольку Windows Server 2008,[14] HAProxy начиная с версии 1.5.0,[15] F5 Сети BIG-IP с версии 11.6.0[16] и KEMP LoadMasters, начиная с версии 7.2.37.1.

Хотя многие веб-серверы рекламируют поддержку сшивания OCSP, реализации не всегда надежны.[17] Например, когда Apache запрашивает сервер OCSP, в случае временного сбоя он отбрасывает кэшированный хороший ответ из предыдущего запроса и начинает обслуживать плохой ответ.[18] Nginx - это ленивая загрузка Ответы OCSP, что означает, что для первых нескольких веб-запросов невозможно добавить ответ OCSP.[19]

Со стороны браузера сшивание OCSP было реализовано в Fire Fox 26,[4][20] в Internet Explorer поскольку Виндоус виста,[21] и Google Chrome в Linux, Chrome OS и Windows начиная с Vista.[22]

Для SMTP Exim агент передачи сообщений поддерживает сшивание OCSP в обоих клиентах [23]и сервер [24] режимы.

Ограничения

Сшивание OCSP предназначено для снижения стоимости проверки OCSP как для клиента, так и для ответчика OCSP, особенно для крупных сайтов, обслуживающих множество одновременных пользователей. Однако сшивание OCSP поддерживает только один ответ OCSP за раз, что недостаточно для цепочек сертификатов с промежуточными сертификатами CA.[25][26]

Это ограничение было устранено с помощью расширения запроса состояния нескольких сертификатов, указанного в RFC 6961. Он добавляет поддержку отправки нескольких ответов OCSP.[27]

Рекомендации

  1. ^ а б Истлейк, Д. (январь 2011 г.). «Расширения безопасности транспортного уровня (TLS): определения расширений: запрос статуса сертификата». Инженерная группа Интернета (IETF). Получено 2 марта, 2015.
  2. ^ а б c А., Есин (12 июня 2014 г.). «Как настроить сшивание OCSP на Apache и Nginx». Руководства сообщества. Digital Ocean, Inc. Получено 2 марта, 2015.
  3. ^ Примечание: с Microsoft CA и службой OCSP (например, тип, используемый как часть типичного домена Active Directory) службе OCSP не нужно проверять каждый раз, когда она хочет проверить статус сертификата (тем самым сокращая загрузить в ЦС). Служба OCSP (обычно работающая на сервере, отдельном от ЦС) ссылается на CRL (список отзыва сертификатов), который обычно публикуется ЦС раз в неделю (расписание может быть изменено), и использует его в качестве источника информации для проверки статуса. сертификатов.
  4. ^ а б c Киллер, Дэвид (29 июля 2013 г.). «Сшивание OCSP в Firefox». Блог о безопасности Mozilla. Фонд Mozilla. Получено 2 марта, 2015.
  5. ^ а б Принц, Мэтью (29 октября 2012 г.). «Сшивание OCSP: как CloudFlare сделала SSL на 30% быстрее». CloudFlare, Inc. Получено 2 марта, 2015.
  6. ^ а б Гибсон, Стив. «Уведомление об отзыве сертификата безопасности: аргументы в пользу» OCSP, обязательного к использованию"". Gibson Research Corporation. Получено 2 марта, 2015.
  7. ^ «Сшивание OCSP». Поддержка GlobalSign. GMO GlobalSign Inc. 1 августа 2014 г.. Получено 2 марта, 2015.
  8. ^ П. Халлам-Бейкер, Расширение X.509v3: требуется сшивание OCSP
  9. ^ П. Халлам-Бейкер Расширение возможностей TLS X.509v3 draft-hallambaker-tlsfeature-05
  10. ^ А. Лэнгли, Нет, не включать проверку отзыва, 19 апреля 2014 г.
  11. ^ Документация по mod_ssl для HTTP-сервера Apache - директива SSLUseStapling
  12. ^ Список рассылки nginx-announce - nginx-1.3.7
  13. ^ Журнал релизов - Litespeed Tech. Проверено 7 февраля 2014 г.
  14. ^ Дункан, Роберт. «Microsoft достигает мирового господства (в сшивании OCSP)». Netcraft Ltd. Получено 28 апреля 2014.
  15. ^ Сайт HAProxy
  16. ^ Примечание к выпуску: BIG-IP LTM и TMOS 11.6.0
  17. ^ Проблема со сшиванием OCSP
  18. ^ Ошибка Apache OCSP
  19. ^ Ошибка Nginx OCSP
  20. ^ Улучшение отзыва - MozillaWiki, дата обращения 28.04.2014
  21. ^ «Как работает отзыв сертификата». TechNet. Microsoft. 16 марта 2012 г.. Получено 28 апреля 2014.
  22. ^ «Проблема 361820: флажок« Проверить отозванный сертификат сервера »сбивает с толку». Код Google. 10 апреля 2014 г.
  23. ^ SMTP транспорт, дата обращения 24.01.2015
  24. ^ Основная конфигурация, дата обращения 24.01.2015
  25. ^ Ошибка Mozilla NSS 360420, Комментарий Адама Лэнгли
  26. ^ Ошибка Mozilla NSS 611836 - реализация нескольких расширений сшивания OCSP
  27. ^ Петтерсен, Ингве Н. (июнь 2013 г.). «Расширение запроса состояния нескольких сертификатов безопасности транспортного уровня (TLS)». Инженерная группа Интернета. Получено 31 октября 2014.