Online Certificate Status Protocol: відмінності між версіями

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку
Вилучено вміст Додано вміст
Створено шляхом перекладу сторінки «Online Certificate Status Protocol»
(Немає відмінностей)

Версія за 20:54, 9 серпня 2022

 

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

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

Порівняння з CRL

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

Базова реалізація PKI

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

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

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

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

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

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

Відповідач OCSP може отримати інформацію про відкликання серверами делегованої перевірки шляху (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 — це спосіб перевірити дійсність, не повідомляючи CA про поведінку перегляду.[1]

Критика

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

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

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

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

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

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

  • Internet Explorer побудовано на CryptoAPI Windows, тому, починаючи з версії 7 у Windows Vista (не XP [11]), підтримується перевірка OCSP.[12]
  • Усі версії Mozilla Firefox підтримують перевірку OCSP. Firefox 3 дозволяє за замовчуванням перевірку 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] CA та відповідач OCSP, розроблений і використаний Let's Encrypt (Go).
  • DogTag, [20] Центр сертифікації з відкритим кодом, відповідач CRL і OCSP.
  • EJBCA, [21] CA та відповідач OCSP (Java)
  • XiPKI, [22] CA та відповідач 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 June 2022.
  4. Are revoked certificates detected in Safari and Chrome?. Процитовано 29 June 2022.
  5. CRLSets. Процитовано 29 June 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 April 2014. Процитовано 24 April 2014.
  11. Windows XP Certificate Status and Revocation Checking. Microsoft. Процитовано 9 May 2016.
  12. What's New in Certificate Revocation in Windows Vista and Windows Server 2008. Microsoft. Процитовано 9 May 2016.
  13. Mozilla Bug 110161 – Enable OCSP by Default. Mozilla. 1 October 2007. Процитовано 18 July 2010.
  14. Wisniewski, Chester (26 March 2011). Apple users left to defend themselves against certificate attacks. Sophos. Процитовано 26 March 2011.
  15. Pettersen, Yngve Nysæter (9 листопада 2006). Introducing Extended Validation Certificates. Opera Software. Архів оригіналу за 10 February 2010. Процитовано 8 January 2010.
  16. Pettersen, Yngve Nysæter (3 July 2008). Rootstore newsletter. Opera Software. Процитовано 8 January 2010.
  17. Langley, Adam (5 Feb 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 March 2018. Процитовано 17 March 2018.
  20. Dogtag Certificate System. Процитовано 12 Aug 2019.
  21. EJBCA – Open Source PKI Certificate Authority. PrimeKey. 2 February 2018. Процитовано 17 March 2018.
  22. XiPKI. GitHub. 13 March 2018. Процитовано 17 March 2018.
  23. Certificate Services (Windows). Windows Dev Center. Microsoft. 2018. Процитовано 17 March 2018.
  24. Package ocsp. cfssl GoDoc. 25 February 2018. Процитовано 17 March 2018.
  25. OCSP_response_status. master manpages. OpenSSL. 2017. Процитовано 17 March 2018.
  26. OCSP in wolfSSL Embedded SSL – wolfSSL (амер.). 27 січня 2014. Процитовано 25 січня 2019.

Посилання