OCSP - это протокол, используемый для проверки действительности сертификатов, чтобы убедиться,
что они не были отменены. OCSP является альтернативой Certificate Revocation Lists (CRLs)
Ответы OCSP это всего нескольких сотен байтов, поэтому OCSP особенно полезен, когда у выдающего ЦС имеется относительно большие CRL,
а также когда клиент имеет ограниченную память и вычислительную мощность.
OCSP также может предоставлять гораздо более своевременную информацию, чем CRL, о статусе сертификата, поскольку информация
обычно выбирается чаще. Кроме того, OCSP может сообщить, действительно ли CA выдал сертификат. Это невозможно с помощью CRL,
поскольку CRL содержит только список отозванных серийных номеров, тогда как ответчикам OCSP предоставляется серийный номер для
проверки. Таким образом, можно сразу обнаружить использование определенных видов мошеннических сертификатов.
У OCSP есть несколько недостатков.
Во-первых, веб-браузер должен получать сам ответ, что может привести к
задержкам в квитировании TLS с сервером и заставить пользователя ждать для отображаемой веб-страницы.
Конкуренция среди браузеров заставила в значительной степени игнорировать отказы от ответа OCSP, создавая уязвимость безопасности.
Во-вторых, поскольку каждый клиент, посещающий веб-сайт, запрашивает ответ OCSP для сервера, который они посещают, количество
запросов к респондентам будет зависеть от количества пользователей сайтов.
Если крупные сайты пронумерованы среди клиентов ЦС, ЦС должен создать значительную инфраструктуру для обработки всех этих запросов.
Наконец, сбой в этой инфраструктуре может заставить клиента сомневаться в том, что сертификат действителен, если ответ недоступен.
Чтобы преодолеть проблемы с задержкой и производительностью, рабочая группа TLS рабочей группы Internet Engineering определила
расширение статуса сертификата для протокола TLS, обычно называемое «Сшивание OCSP»
Сшивание OCSP использует сервер TLS в качестве прокси для клиента, выбирая Ответ OCSP на сертификат своего сайта и передачу ответа
клиентам, которые запрашивают ответ как часть рукопожатия TLS. Поскольку ответ получен непосредственно с сервера, клиенту не требуется
запрашивать информацию у эмитента, что приводит к увеличению производительности сайта. Помимо преимуществ клиента и более быстрой
загрузки страниц, сглаживание OCSP смягчает некоторые проблемы конфиденциальности, вызванные тем, что клиент сообщает CA,
какие сайты посещают пользователь, а также снижает нагрузку на эмитента, уменьшая требования к инфраструктуре.
Сшивание OCSP в настоящее время поддерживается IIS 7+, Apache 2.4+, Nginx 1.7.3+...
Основным недостатком сшивки OCSP является то, что он немного увеличивает размер трафика веб-сайта - от нескольких сотен байтов до
двух КБ за полное рукопожатие, в зависимости от размера ответа OCSP. Тем не менее, это увеличение незначительно по сравнению с количеством
зашифрованных данных, отправленных по соединению, особенно если сервер настроен хорошо и использует возобновляемые сеансы SSL / TLS,
что ограничит количество необходимых протоколов протокола TLS, что сократит затраты, как дорогостоящие операция закрытого ключа не
требуется при возобновлении сеанса.
Другим недостатком является то, что основная сшивка OCSP работает только для сертификатов сайта и не проверяет достоверность
промежуточных сертификатов ЦС в цепочке сертификатов, что также является требованием для надлежащей проверки сертификата.
Это означает, что клиентам по-прежнему приходится отдельно проверять достоверность сертификата ЦС, загружая CRL или запрашивая
ответы OCSP, в зависимости от того, что настроено в сертификате. Одной из возможных причин этого ограничения является то, что в то
время, когда было определено расширение TLS сертификата, промежуточные сертификаты CA не включали информацию OCSP.
Однако время изменилось, и теперь требуется информация OCSP в промежуточных продуктах.
Многократное скрепление OCSP
ЦС теперь выдают сертификаты, по крайней мере, с одним промежуточным ЦС в цепочке (или, по крайней мере, в большинстве случаев),
а в базовых требованиях для CA / Browser Forum теперь требуются указатели OCSP в промежуточных сертификатах CA. При необходимой
поддержке клиентов и серверов TLS можно было бы использовать скобки OCSP для промежуточных сертификатов ЦС. Проверка этой
информации в связи со сшитым ответом OCSP называется «сшивание с несколькими типами».
Множественное сшивание должно быть таким же простым, как определение нового метода для расширения статуса сертификата и включение
этого метода в список методов, поддерживаемых клиентом
Расширение статуса сертификата в TLS не позволяло клиентам сигнализировать поддержку для двух методов. Это проблематично, потому
что клиентам придется поддерживать как старые, так и новые методы сшивания, пока все клиенты не смогут поддерживать многошиточное
сшивание. Новое расширение устраняет несколько проблем, позволяя клиентам использовать несколько методов проверки состояния и
позволяя серверам пересылать несколько ответов OCSP клиенту.
Переход от проверки отзыва клиента на серверную доверенную информацию об отзыве повышает безопасность онлайн, позволяя клиентам
рассматривать недостающую информацию OCSP как серьезную проблему. Кроме того, многократное сшивание немедленно повысит
производительность веб-сайтов за счет устранения времени, которое в настоящее время клиентам необходимо потратить на установление
соединений, используемых для загрузки информации OCSP и CRL, что может быть значительной частью времени, затраченного на рукопожатие
с сервером.
Отзыв сертификатов является критическим аспектом обеспечения безопасности инфраструктуры сторонних сертификатов (ЦС), которая
поддерживает безопасную связь в Интернете с использованием SSL / TLS. Сертификат может быть отменен, если у него был скомпрометирован
его закрытый ключ, владелец сертификата больше не контролирует домен, для которого он был выпущен, или сертификат был ошибочно подписан.
Без возможности отзыва сертификатов ЦС не имеет прямых средств для маркировки сертификата как ненадежного до истечения срока действия
сертификата, который может занять несколько лет. В особенно срочных случаях поставщик браузера может иметь возможность блокировать
определенные отдельные сертификаты, доверенные корни или промежуточные сертификаты, но это редко выполняется и не подходит для
проблем с меньшим риском, где аннулирование является необходимым, но не срочным.
Поддержка браузера для обоих OCSP и CRL смешанна: в настоящее время Firefox не загружает CRL из доверенных ЦС автоматически,
поэтому пользователи Firefox должны полагаться только на OCSP; Google использует проприетарный механизм для распространения
CRL для пользователей Google Chrome, который объединяет CRL CAC в одном обновлении, которое распространяется с использованием
его автоматического канала обновления. Многие браузеры по умолчанию применяют «мягкий отказ», оставляя пользователей уязвимыми для
подслушивающих устройств, способных блокировать или подделывать трафик OCSP. До тех пор, пока центры сертификации, отвечающие
за ответы OCSP, не имеют надежной записи как для производительности, так и для надежности своих ответчиков OCSP, браузерам будет
трудно оправдать переход на синхронное поведение «с жестким отказом»
Конфигурация сервера OCSP
При использовании CRL - Certificate Revocation List - браузер загружает список серийных номеров отозванных сертификатов
с сервера СА и проверяет не отозван ли текущий сертификат, что увеличивает время SSL-переговоров.
Две основные проблемы CSR – это приватность и большая нагрузка на серверы центров сертификации.
Чтобы связаться с CA и подтвердить статус сертификата требуется браузер. это нарушает конфиденциальность,
поскольку ЦС знает к какому сайту вы обращаетесь и другу инфу (IP, браузер и др.).
При большом количестве посетителей сайта CRL-сервер ЦС приходится обрабатывать все запросы посетителей в отдельности.
OCSP - Online Certificate Status Protocol – это протокол, проверяющий, был ли отозван SSL-сертификат.
OCSP stapling – это расширение TLS/SSL, целью которого является повышение производительности
SSL-переговоров при сохранении конфиденциальности посетителя.
Он был создан в качестве альтернативы CRL, с целью уменьшить время SSL-переговоров и уменьшить нагрузку на CRL сервер СА.
Используя OCSP, браузер посылает запрос к вашему серверу (а не к серверу CRL центра сертификации)
и получает ответ, содержащий состояние достоверности сертификата.
Ваш сервер запрашивает не отозван ли сертификат у OCSP сервера CA и кэширует полученный ответ.
Этот ответ «сшивается» (staple) с TLS/SSL рукопожатием.
В результате серверы ЦС не перегружаются запросами, а браузеры больше не раскрывают деталий третьим лицам (CA).
Что такое OCSP Stapling
OCSP - Online Certificate Status Protocol - это модель расширения стандартного протокола OCSP, посредством которой веб-сервер получает ответ
OCSP от ЦС и отправляет ответ OCSP браузеру в процессе рукопожатия SSL. Это может быть более эффективным, поскольку ответ OCSP
действителен в течение нескольких часов или дней, а веб-сайт может кэшировать его и отправлять его всем пользователям в течение
этого периода времени. Это повышает скорость и надежность OCSP, что устраняет необходимость того, чтобы клиентский браузер инициировал
подключение к CA.
Зачем использовать OCSP Stapling
DigiCert рекомендует устанавливать OCSP нашим партнерам и клиентам, которые хотят воспользоваться этой улучшенной моделью OCSP,
чтобы улучшить производительность браузера своих конечных пользователей при доступе к веб-сайту. Сшивание OCSP также затрагивает
проблему конфиденциальности, поскольку CA больше не получает запросы проверки отзыва непосредственно от клиента (браузера).
Сертификаты DigiCert и OCSP
Инфраструктура DigiCert полностью поддерживает OCSP Stapling, и клиентам не нужен специальный SSL-сертификат, чтобы
воспользоваться им. Фактически, им вообще не нужно участие DigiCert. Все, что им нужно сделать, это убедиться, что они используют
одну из OCSP сшитых веб-серверных платформ, таких как Apache, Nginx или Windows Server, и что сшивание OCSP было настроено и
включено на веб-сервере локально.
Конфигурирование OCSP stapling в Apache >=2.3.3
Существуют две директивы, которые необходимо добавить в конфигурационный файл apache
SSLUseStapling on
SSLStaplingCache "shmcb:/var/run/ocsp(128000)"
SSLUseStapling включает эту функцию, а SSLStaplingCache указывает, где хранить кеш и как большой он должен быть.
Note:Если вы используете Apache для Windows, убедитесь, что путь для SSLStaplingCache
относится к пути к файлу Windows, например, "shmcb:C:/xampp/apache/logs/ocsp(128000)"]
Убедитесь, что SSLStaplingCache находится за пределами виртуального хоста или Apache, скорее всего, не запустится.
Мы предлагаем поместить всю настройку за пределы раздела Virtual Host для простоты.
Примечание. При включении и / или настройке OCSP Stapling на ваших серверах имейте в виду, что запрос OCSP с вашего сервера на
URL-адрес DigiCert OCSP должен быть разрешен. Если ваш сервер находится за брандмауэром.
Вам необходимо создать исключение брандмауэра, чтобы сервер для исходящих подключений соответствовал URL-адресу DigiCert OCSP.
Сохраните файл конфигурации и перезапустите Apache, чтобы изменения вступили в силу
Проверка работы OCSP Stapling
Убедитесь, что вы используете самую последнюю версию openssl (0.9.8k или более поздней) для тестирования.
Этот DNS-резольвер по умолчанию используется для распознавателя DNS Google, если вышеприведенные строки не добавлены,
то по умолчанию для преобразователя используется DNS-сервер по умолчанию.
Для проверки степелирования OCSP сертификат эмитента сертификата сервера включает в себя корневой сертификат и все промежуточные CA
сертификаты должны быть настроены как доверенные, используя директиву ssl_trusted_certificate, например
ssl_trusted_certificate /etc/ssl/CA.crt
Файл CA.crt в приведенном выше примере должен содержать все соответствующие корневые и промежуточные сертификаты ЦС.
Ниже приведен пример конфигурации Nginx для сшивания OCSP.
Примечание. При включении и / или настройке OCSP Stapling на ваших серверах имейте в виду, что запрос OCSP с вашего сервера на
URL-адрес DigiCert OCSP должен быть разрешен.
Если ваш сервер находится за брандмауэром, вам необходимо создать исключение брандмауэра, чтобы ваш сервер мог использовать
исходящие подключения к URL-адресу DigiCert OCSP.
Сохраните файл конфигурации и перезапустите Nginx, чтобы изменения вступили в силу.
Проверка работы OCSP Stapling
Убедитесь, что вы используете самую последнюю версию openssl (0.9.8k или более поздней) для тестирования.
Это означает, что сшивание OCSP включено. Если вы получите ответ, как показано ниже, то сшивание OCSP не включено:
OCSP response: no response sent
Конфигурирование OCSP stapling в Windows Server
Сшивание OCSP поддерживается и включено по умолчанию в Windows Server 2008 или выше .
Для Windows Server 2008 или выше не требуются шаги настройки
Версия сервера Windows ниже 2008 г. не поддерживает OCSP Stapling
Для сшивки OCSP для работы на вашем сервере Windows все, что вам нужно сделать, это проверить версию сервера,
на котором вы работаете, - 2008 или выше. А также требуется разрешение OCSP с вашего сервера на сервер OCSP DigiCert.
Если ваш сервер находится за брандмауэром. Вам необходимо создать исключение брандмауэра, чтобы ваш сервер мог
отправлять исходящие соединения на URL OCSP DigiCert.
Если вы уже используете Windows Server 2008 или выше, но сшивание OCSP все еще не включено, проверьте подключение
к URL-адресу DigiCert OCSP с вашего веб-сервера. Вы можете использовать команду ping ocsp_url'
на своем сервере Windows для проверки возможности подключения.
Если вы видите успешный результат подключения ping, но сшивание OCSP все еще не включено, возможно, что сшивание OCSP
может быть отключено и требует повторного включения на вашем сервере Windows. Проконсультируйтесь с документацией Microsoft.