Сшивание OCSP
Сшивание протокола статуса онлайн -сертификата (OCSP) , формально известное как расширение запроса статуса сертификата TLS , является стандартом для проверки статуса отзыва сертификатов X.509 цифровых . [ 1 ] Это позволяет предъявителю сертификата нести затраты на ресурсы, связанные с предоставлением ответов протокола статуса онлайн-сертификата (OCSP), путем добавления («сшивания») с отметкой времени, ответа OCSP подписанного центром сертификации (центром сертификации) к начальному подтверждению TLS . устранение необходимости обращения клиентов в центр сертификации с целью повышения безопасности и производительности.
Мотивация
[ редактировать ]Исходная реализация OCSP имеет ряд проблем.
Во-первых, это может привести к значительным затратам для центров сертификации (ЦС), поскольку от них требуется предоставлять ответы каждому клиенту данного сертификата в режиме реального времени. Например, когда сертификат выдается веб-сайту с высоким трафиком, серверы центров сертификации, скорее всего, будут подвергаться воздействию огромных объемов запросов OCSP, запрашивающих действительность сертификата. [ 2 ]
Кроме того, проверка OCSP потенциально ухудшает конфиденциальность пользователей и замедляет просмотр, поскольку требует от клиента связаться с третьей стороной (ЦС) для подтверждения действительности каждого сертификата, с которым он сталкивается. [ 2 ] [ 3 ]
Более того, если клиенту не удается подключиться к центру сертификации для получения ответа 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 непосредственно от центра сертификации, это обычно включает в себя поиск доменного имени сервера OCSP центра сертификации в 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 Foundation .
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 Networks BIG-IP начиная с версии 11.6.0, [ 16 ] KEMP LoadMasters начиная с версии 7.2.37.1 и Lighttpd начиная с версии 1.4.56. [ 17 ]
Хотя многие веб-серверы рекламируют поддержку сшивания OCSP, реализации не всегда надежны. [ 18 ] Например, когда Apache запрашивает сервер OCSP, в случае временного сбоя он отбрасывает кэшированный хороший ответ из предыдущего запроса и начинает обслуживать плохой ответ. [ 19 ] Nginx выполняет отложенную загрузку ответов OCSP, что означает, что для первых нескольких веб-запросов он не может добавить ответ OCSP. [ 20 ]
На стороне браузера в Firefox 26 было реализовано сшивание OCSP. [ 4 ] [ 21 ] в Internet Explorer, начиная с Windows Vista , [ 22 ] и Google Chrome в Linux, ChromeOS и Windows, начиная с Vista. [ 23 ]
Для SMTP Exim агент передачи сообщений поддерживает сшивание OCSP как в клиент [ 24 ] и сервер [ 25 ] режимы.
Ограничения
[ редактировать ]Сшивание OCSP предназначено для снижения стоимости проверки OCSP как для клиента, так и для ответчика OCSP, особенно для крупных сайтов, обслуживающих множество одновременных пользователей. Однако сшивание OCSP поддерживает только один ответ OCSP одновременно, чего недостаточно для цепочек сертификатов с промежуточными сертификатами CA. [ 26 ] [ 27 ]
Это ограничение устранено с помощью расширения запроса статуса множественного сертификата, указанного в разделе РФК 6961 . Он добавляет поддержку отправки нескольких ответов OCSP. [ 28 ]
TLSv1.3 автоматически снимает это ограничение, обеспечивая поддержку браузерами RFC 6961 является спорным, поскольку все больше и больше веб-серверов отказываются от поддержки TLS 1.2. В соответствии с TLS 1.2 сервер может отправить только один сшитый ответ: ответ OCSP, связанный с конечным сертификатом. В соответствии с TLS 1.3 сервер может отправлять несколько ответов OCSP, обычно по одному на каждый сертификат в цепочке сертификатов. [ 29 ]
Ссылки
[ редактировать ]- ^ Jump up to: а б Истлейк, Д. (январь 2011 г.). «Расширения Transport Layer Security (TLS): Определения расширений: Запрос статуса сертификата» . Целевая группа инженеров Интернета (IETF) . Проверено 2 марта 2015 г.
- ^ Jump up to: а б с А., Джесин (12 июня 2014 г.). «Как настроить сшивание OCSP на Apache и Nginx» . Учебники сообщества . Цифровой Океан, Инк . Проверено 2 марта 2015 г.
- ^ Примечание. При использовании службы Microsoft CA и OCSP (например, типа, используемого как часть типичного домена Active Directory) службе OCSP не нужно проверять центр сертификации каждый раз, когда она хочет проверить состояние сертификата (тем самым уменьшая нагрузка в ЦА). Служба OCSP (обычно работающая на отдельном от ЦС сервере) ссылается на CRL (список отзыва сертификатов), который обычно публикуется ЦС раз в неделю (расписание может быть изменено) и использует его в качестве источника информации для проверки статуса. сертификатов.
- ^ Jump up to: а б с Киллер, Дэвид (29 июля 2013 г.). «Сшивание OCSP в Firefox» . Блог о безопасности Mozilla . Фонд Мозилла . Проверено 2 марта 2015 г.
- ^ Jump up to: а б Принц, Мэтью (29 октября 2012 г.). «Сшивание OCSP: как CloudFlare сделал SSL на 30% быстрее» . КлаудФлэр, Инк . Проверено 2 марта 2015 г.
- ^ Jump up to: а б Гибсон, Стив. «Информация об отзыве сертификатов безопасности: аргументы в пользу «обязательного сшивания OCSP» » . Исследовательская корпорация Гибсон . Проверено 2 марта 2015 г.
- ^ «Сшивание OCSP» . Поддержка GlobalSign . ГМО GlobalSign Inc., 1 августа 2014 г. Проверено 2 марта 2015 г.
- ^ П. Халлам-Бейкер, Расширение X.509v3: требуется сшивание OCSP
- ^ П. Халлам-Бейкер X.509v3 Расширение функции TLS Draft-hallambaker-tlsfeature-05
- ^ А. Лэнгли, Нет, не включайте проверку отзыва , 19 апреля 2014 г.
- ^ Документация mod_ssl HTTP-сервера Apache — директива SSLUseStapling
- ^ список рассылки nginx-announce — nginx-1.3.7
- ^ Журнал релизов — Litespeed Tech . Проверено 7 февраля 2014 г.
- ^ Дункан, Роберт. «Microsoft достигает мирового господства (в сшивании OCSP)» . ООО "Неткрафт" . Проверено 28 апреля 2014 г.
- ^ Веб-сайт HAProxy
- ^ Примечание к выпуску: BIG-IP LTM и TMOS 11.6.0.
- ^ «Информация о выпуске Lighttpd 1.4.56» . redmine.lighttpd.net .
- ^ Проблема со сшиванием OCSP
- ^ Ошибка Apache OCSP
- ^ Ошибка OCSP Nginx
- ^ Улучшение отзыва — MozillaWiki , получено 28 апреля 2014 г.
- ^ «Как работает отзыв сертификата» . ТехНет . Майкрософт. 16 марта 2012 года . Проверено 28 апреля 2014 г.
- ^ «Проблема 361820: флажок «Проверить отзыв сертификата сервера» сбивает с толку» . Гугл-код . 10 апреля 2014 г.
- ^ Транспорт smtp , получено 24 января 2015 г.
- ^ Основная конфигурация , получено 24 января 2015 г.
- ^ Ошибка Mozilla NSS 360420 , комментарий Адама Лэнгли.
- ^ Ошибка Mozilla NSS 611836 — реализация нескольких расширений сшивания OCSP.
- ^ Петтерсен, Ингве Н. (июнь 2013 г.). «Расширение запроса статуса множественного сертификата Transport Layer Security (TLS)» . Рабочая группа по интернет-инжинирингу . Проверено 31 октября 2014 г.
- ^ «Сшивание OCSP (GnuTLS 3.7.4)» .