Прозорість сертифікатів (Certificate Transparency) — це проект Google, який надає можливість занесення, моніторингу та аудиту всіх випущених EV-сертифікатів у відкритих та загальнодоступних джерелах.
Навіщо?
Сучасні методи криптографії постійно вдосконалюються. Ми думаємо, що захистили свій сайт від спуфінгу або від атаки «людина посередині», встановивши на нього SSL-сертифікат. Разом з тим, методи інтернет-шахрайства та подібних загроз стають дедалі витонченішими, що змушує більш критично дивитися на існуючі схеми безпеки. Наприклад, на той факт, що Центри сертифікації (ЦС) можуть випустити сертифікат на будь-який ресурс, а випадки компрометації ЦС відбувалися кілька разів, як і випадки помилкового випуску сертифіката. З прозорим захистом власники корпорацій зможуть стежити за сертифікатами, що їх випускають на їх домени, і вчасно відреагувати при виявленні помилок.
Як це працює?
Цей процес не зачіпає власника домену, який замовляє сертифікат, як і не затримує випуск. Це додатковий крок, який виконується на стороні Центру сертифікації відразу після випуску сертифіката. Прозорість сертифікатів забезпечується 3 складовими:
- Лог-сервери
- Монітори
- Аудитори
Лог-сервери — це репозиторій або журнал сертифікатів, куди центри сертифікації надсилають сертифікати під час випуску.
Монітори сканують занесені сертифікати на наявність підозрілих властивостей та відповідність технічним рекомендаціям. Більшість моніторів надаватиметься самими Центрами сертифікації.
Аудитори — це програмне забезпечення (зазвичай вбудоване в браузери), яке працює з сертифікатами, стежить за коректністю роботи лог-серверів і за тим, щоб конкретний сертифікат був занесений до лог-сервера і не змінювався за час присутності в журналі.
Центри сертифікації відправляють в лог-сервер запис про сертифікат, одержуючи у відповідь позначку часу для сертифіката SCT (signed certificate timestamp) — обіцянку занести сертифікат в лог протягом деякого часу (максимум 24 години). Це ніяк не впливає на випуск сертифіката і не затримує його.
У рекомендованій конфігурації Прозорості сертифікатів тимчасова мітка SCT додається до сертифіката через розширення X.509v3 і супроводжує сертифікат весь час його дії. Під час спілкування з веб-клієнтом вона є показником того, що сертифікат внесено до лог-сервера. Крім X.509v3, є 2 альтернативні методи передачі SCT разом із сертифікатом — за допомогою розширень TLS та OCSP. Більш детальний опис кожного читайте на офіційному сайті проекту Прозорості сертифікатів.
Далі Центр сертифікації випускає сертифікат разом із прикріпленим SCT. Змінювати конфігурацію сервера не потрібно, оскільки зараз всі сервери підтримують розширення X.509v3.
При спілкуванні клієнта і сервера відбувається «рукостискання», під час якого перевіряється справжність сертифіката та його ланцюжок, і плюс до цього, перевіряється справжність SCT — щоб мітка часу надавалася працюючим лог-сервером і саме для цього сертифіката.
Нижче схема роботи TLS/SSL системи до та після застосування прозорості сертифікатів (через розширення x509v3).
Як це стосується мого сертифіката, який випущено через SSL.com.ua?
Як уже писалося, цей процес не вимагає додаткових дій від вас як замовника сертифіката чи адміністратора сервера. Всі сертифікати EV, випущені через SSL.com.ua, підтримують Прозорість сертифікатів.
Компанії Comodo та Symantec (в минулому VeriSign) — наші основні постачальники сертифікатів — вже передають свої сертифікати в лог-сервери Google. При цьому Symantec з недавніх пір публікує не тільки сертифікати з розширеною перевіркою (EV SSL або extended SSL-certificate), але і з перевіркою організації (SSL OV або organization SSL-certificate) та доменною перевіркою (DV SSL або domain SSL-certificate).
Серед браузерів підтримка прозорості сертифікатів з’явилася у Chrome, а також запланована у Firefox. Наразі ці опції відключені за замовчуванням.
Перевірити підтримку прозорості можна у браузері, натиснувши на замочок та вибравши опцію «З’єднання» (в описі сертифіката буде запис «publicly auditable», «прозорість сертифіката» або «прозорість сертифіката» залежно від мови браузера).
Відповіді на більшість питань щодо цього проекту можна знайти тут. Якщо ж у вас виникнуть додаткові питання про те, що таке SSL і як з ним працювати, звертайтеся. Будемо раді підказати.