Online Certificate Status Protocol (OCSP) — це Інтернет- протокол, який використовується для отримання статусу відкликання цифрового сертифіката X.509.[1] Він описаний у RFC 6960 і відповідає стандартам Інтернету[en]. Він був створений як альтернатива спискам відкликаних сертифікатів (СВС), зокрема для вирішення певних проблем, пов'язаних із використанням СВС в інфраструктурі відкритих ключів (ІВК).[2] Повідомлення, що передаються через OCSP, кодуються в ASN.1 і зазвичай передаються через HTTP. Характер «запит/відповідь» цих повідомлень призводить до того, що сервери OCSP називають відповідачами OCSP.

Деякі веб-браузери (Firefox[3]) використовують OCSP для перевірки сертифікатів HTTPS, тоді як інші його вимкнули.[4][5] Більшість статусів відкликання OCSP в Інтернеті зникають незабаром після закінчення терміну дії сертифіката.[6]

Порівняння з СВС ред.

  • Оскільки відповідь OCSP містить менше даних, ніж типовий Список відкликаних сертифікатів (СВС), що менше навантажує ресурси мережі та клієнта.[7]
  • Оскільки відповідь OCSP містить менше даних для аналізу, бібліотеки на стороні клієнта, які її обробляють, можуть бути менш складними, ніж ті, які обробляють СВС.[8]
  • OCSP повідомляє респонденту, що певний хост мережі використовував певний сертифікат у певний час. OCSP не вимагає шифрування, тому інші сторони можуть перехопити цю інформацію.[1]

Базова реалізація ІВК ред.

  1. Аліса та Боб мають сертифікати відкритих ключів, видані Керол, центром сертифікації ключів (ЦСК).
  2. Аліса бажає виконати транзакцію з Бобом і надсилає йому свій сертифікат відкритого ключа.
  3. Боб, стурбований тим, що особистий ключ Аліси міг бути зламаний, створює «запит OCSP», який містить серійний номер сертифіката Аліси, і надсилає його Керол.
  4. Відповідач OCSP Керол зчитує серійний номер сертифіката із запиту Боба. Відповідач OCSP використовує серійний номер сертифіката для пошуку статусу відкликання сертифіката Аліси. Відповідач OCSP шукає базу даних ЦСК, яку підтримує Керол. У цьому сценарії база даних ЦСК Керол є єдиним надійним місцем, де буде записано відомості компрометацію сертифіката Аліси.
  5. Відповідач OCSP Керол підтверджує, що сертифікат Аліси все ще в порядку, і повертає підписану успішну «відповідь OCSP» Бобу.
  6. Боб криптографічно перевіряє підписану відповідь Керол. Боб зберіг відкритий ключ Керол за деякий час до цієї транзакції. Боб використовує відкритий ключ Керол, щоб перевірити відповідь Керол.
  7. Боб завершує операцію з Алісою.

Деталі протоколу ред.

Відповідач OCSP (сервер, як правило, керований емітентом сертифіката) може повернути підписану відповідь, яка вказує, що сертифікат, указаний у запиті, є «хорошим», «відкликаним» або «невідомим». Якщо він не може обробити запит, він може повернути код помилки.

Формат запиту OCSP підтримує додаткові розширення. Це дає змогу широко налаштувати конкретну схему ІВК.

OCSP може бути вразливим до атак повторного відтворення[9], коли підписана «хороша» відповідь захоплюється зловмисним посередником і відтворюється клієнту пізніше після того, як відповідний сертифікат може бути відкликано. OCSP дозволяє включати nonce у запит, який може бути включений у відповідну відповідь. Через високе навантаження більшість відповідачів OCSP не використовують розширення nonce для створення окремої відповіді для кожного запиту, замість цього використовують попередньо підписані відповіді з періодом дії в кілька днів. Таким чином, атака відтворення є основною загрозою для систем перевірки.

OCSP може підтримувати більше одного рівня ЦСК. Запити OCSP можуть бути з'єднані між одноранговими відповідачами для запиту до ЦСК, що видає відповідний сертифікат суб'єкта, з відповідачами, які перевіряють відповіді інших відповідачів за допомогою кореневого ЦСК.

Відповідач OCSP може отримати інформацію про відкликання серверами делегованої перевірки шляху[en] (DPV). OCSP сам по собі не виконує DPV наданих сертифікатів.

Ключ, який підписує відповідь, не обов'язково повинен бути тим самим ключем, яким підписано сертифікат. Емітент сертифіката може делегувати повноваження іншому відповідачу OCSP. У цьому випадку сертифікат відповідача (той, який використовується для підпису відповіді) має бути виданий видавцем відповідного сертифіката та має містити певне розширення, яке позначає його як повноваження підпису OCSP (точніше, містить розширення використання ключа з OID {iso(1) selected-organization(3) dod(6) internet(1) security(5) mehanizmi(5) PKIx(7) keyPurpose(3) ocspSigning(9)})

Застереження щодо приватності ред.

Перевірка OCSP створює занепокоєння щодо приватності для деяких користувачів, оскільки вона вимагає від клієнта зв'язатися з третьою стороною (хоча б зі стороною, якій довіряє постачальник клієнтського програмного забезпечення), щоб підтвердити дійсність сертифіката. Зшивання OCSP — це спосіб перевірити дійсність, не повідомляючи ЦСК про поведінку перегляду.[1]

Критика ред.

Відкликання на основі протоколу OCSP не є ефективним методом запобігання злому закритого ключа сервера HTTPS. Зловмиснику, який зламав приватний ключ сервера, зазвичай потрібно перебувати в положенні «людина посередині» в мережі, щоб зловживати цим приватним ключем і видати себе за сервер. Зловмисник у такому положенні також зазвичай може втручатися в запити OCSP клієнта. Оскільки більшість клієнтів мовчки ігноруватимуть OCSP, якщо запит закінчиться, OCSP не є надійним засобом запобігання компрометації ключа сервера HTTPS.[10]

Розширення MustStaple TLS у сертифікаті може вимагати перевірки сертифіката зшитою відповіддю OCSP[en], що пом'якшує цю проблему.[7] OCSP також залишається надійним захистом від ситуацій, коли зловмисник не є «людиною посередині» (підписання коду або сертифікати, видані помилково).

Протокол OCSP передбачає, що запитувач має доступ до мережі для підключення до відповідного відповідача OCSP. Деякі запитувачі можуть не мати змоги підключитися, оскільки їхня локальна мережа забороняє прямий доступ до Інтернету (звичайна практика для внутрішніх вузлів у центрі обробки даних). Примусове підключення внутрішніх серверів до Інтернету для використання OCSP сприяє тенденції депериметризації[en]. Протокол зшивання OCSP[en] — це альтернатива, яка дозволяє серверам кешувати відповіді OCSP, що позбавляє запитувача від необхідності безпосереднього зв'язку з відповідачем OCSP.

Підтримка браузерами ред.

 
Інформація про OCSP у Firefox 89

Існує широка підтримка OCSP серед більшості основних браузерів:

  • Internet Explorer побудовано на CryptoAPI[en] Windows, тому, починаючи з версії 7 у Windows Vista (не XP[11]), підтримується перевірка OCSP.[12]
  • Усі версії Mozilla Firefox підтримують перевірку OCSP. Firefox 3[en] дозволяє за замовчуванням перевірку OCSP.[13]
  • Safari на macOS підтримує перевірку OCSP. Її увімкнено за замовчуванням у Mac OS X 10.7 (Lion). До цього її потрібно було активувати вручну в налаштуваннях Keychain.[14]
  • Версії Opera від 8.0[15][16] до поточної версії підтримують перевірку OCSP.

Однак Google Chrome є винятком. У 2012 році Google вимкнув перевірки OCSP за замовчуванням, посилаючись на проблеми із затримкою та приватністю[17], і натомість використовує власний механізм оновлення для надсилання відкликаних сертифікатів у веб-переглядач.[18]

Реалізації ред.

Існує декілька реалізацій OCSP з відкритим вихідним кодом і пропрієтарних версій, включаючи повнофункціональні сервери та бібліотеки для створення спеціальних програм. Підтримка клієнта OCSP вбудована в багато операційних систем, веб-браузерів та інше мережеве програмне забезпечення завдяки популярності HTTPS і Всесвітньої павутини.

Сервер ред.

З відкритим вихідним кодом ред.

  • Boulder,[19] ЦСК та відповідач OCSP, розроблений і використаний Let's Encrypt (Go).
  • DogTag,[20] Центр сертифікації з відкритим кодом, відповідач СВС і OCSP.
  • EJBCA[en],[21] ЦСК та відповідач OCSP (Java)
  • XiPKI,[22] ЦСК та відповідач OCSP. З підтримкою RFC 6960 і SHA3 (Java)

Пропрієтарні ред.

  • Служби сертифікації[23] та відповідач OCSP, включені до Windows Server

Бібліотеки ред.

З відкритим вихідним кодом ред.

Див. також ред.

Примітки ред.

  1. а б в A., Jesin (12 червня 2014). How To Configure OCSP Stapling on Apache and Nginx. Community Tutorials. Digital Ocean, Inc. Процитовано 2 березня 2015.
  2. OCSP Stapling. GlobalSign Support. GMO GlobalSign Inc. 1 серпня 2014. Процитовано 2 березня 2015.
  3. CA/Revocation Checking in Firefox. wiki.mozilla.org. Процитовано 29 червня 2022.
  4. Are revoked certificates detected in Safari and Chrome?. Процитовано 29 червня 2022.
  5. CRLSets. Процитовано 29 червня 2022.
  6. . ISBN 978-3-030-72582-2. {{cite conference}}: Пропущений або порожній |title= (довідка)
  7. а б Gibson, Steve. Security Certificate Revocation Awareness: The case for "OCSP Must-Staple". Gibson Research Corporation. Процитовано 2 березня 2015.
  8. Keeler, David (29 липня 2013). OCSP Stapling in Firefox. Mozilla Security Blog. Mozilla Foundation. Процитовано 2 березня 2015.
  9. RFC 6960, section 5, Security Considerations
  10. No, Don't Enable Revocation Checking. 19 квітня 2014. Процитовано 24 квітня 2014.
  11. Windows XP Certificate Status and Revocation Checking. Microsoft. Процитовано 9 травня 2016.
  12. What's New in Certificate Revocation in Windows Vista and Windows Server 2008. Microsoft. Процитовано 9 травня 2016.
  13. Mozilla Bug 110161 – Enable OCSP by Default. Mozilla. 1 жовтня 2007. Процитовано 18 липня 2010.
  14. Wisniewski, Chester (26 березня 2011). Apple users left to defend themselves against certificate attacks. Sophos[en]. Процитовано 26 березня 2011.
  15. Pettersen, Yngve Nysæter (9 листопада 2006). Introducing Extended Validation Certificates. Opera Software. Архів оригіналу за 10 February 2010. Процитовано 8 січня 2010.
  16. Pettersen, Yngve Nysæter (3 липня 2008). Rootstore newsletter. Opera Software. Процитовано 8 січня 2010.
  17. Langley, Adam (5 лютого 2012). Revocation checking and Chrome's CRL. Архів оригіналу за 12 лютого 2012. Процитовано 30 січня 2015.
  18. «Chrome does certificate revocation better», April 21, 2014, Larry Seltzer, ZDNet
  19. Boulder – an ACME CA. GitHub. 16 березня 2018. Процитовано 17 березня 2018.
  20. Dogtag Certificate System. Процитовано 12 серпня 2019.
  21. EJBCA – Open Source PKI Certificate Authority. PrimeKey. 2 лютого 2018. Процитовано 17 березня 2018.
  22. XiPKI. GitHub. 13 березня 2018. Процитовано 17 березня 2018.
  23. Certificate Services (Windows). Windows Dev Center. Microsoft. 2018. Процитовано 17 березня 2018.
  24. Package ocsp. cfssl GoDoc. 25 лютого 2018. Процитовано 17 березня 2018.
  25. OCSP_response_status. master manpages. OpenSSL. 2017. Процитовано 17 березня 2018.
  26. OCSP in wolfSSL Embedded SSL – wolfSSL (амер.). 27 січня 2014. Процитовано 25 січня 2019.

Посилання ред.