| @@ -0,0 +1,58 @@ | |||
| 1 | + | В контексте SSL/TLS **«прозрачность»** обычно означает *Certificate Transparency (CT)* — публичную регистрацию выданных сертификатов. Центр сертификации публикует сведения о сертификате в доступных для проверки журналах, чтобы владелец домена и браузеры могли обнаружить ошибочную или мошенническую выдачу. [developers.google](https://developers.google.com/public-key-infrastructure/faq/what-is-certificate-transparency) | |
| 2 | + | ||
| 3 | + | ## Как это работает | |
| 4 | + | ||
| 5 | + | При выпуске сертификата CA обычно: | |
| 6 | + | ||
| 7 | + | 1. отправляет сертификат или специальный precertificate в несколько CT-журналов; | |
| 8 | + | 2. получает от журналов подписанные временные метки — **SCT (Signed Certificate Timestamp)**; | |
| 9 | + | 3. включает SCT в сертификат, TLS-handshake или OCSP-ответ; | |
| 10 | + | 4. браузер проверяет, что сертификат был опубликован в приемлемых журналах. | |
| 11 | + | ||
| 12 | + | Журналы устроены по принципу **append-only**: записи можно добавлять, но нельзя незаметно исправлять или удалять. Это позволяет обнаружить, если CA выпустил сертификат для чужого домена. [datatracker.ietf](https://datatracker.ietf.org/doc/html/rfc6962) | |
| 13 | + | ||
| 14 | + | ## Практический пример | |
| 15 | + | ||
| 16 | + | Допустим, злоумышленник каким-то образом добился выпуска сертификата: | |
| 17 | + | ||
| 18 | + | ```text | |
| 19 | + | example.com | |
| 20 | + | ``` | |
| 21 | + | ||
| 22 | + | у доверенного CA, хотя владелец домена этого не просил. Сертификат попадёт в CT-журналы. Владелец может мониторить их и получить уведомление: «для example.com выпущен новый сертификат». После этого он может обратиться в CA, инициировать отзыв сертификата и расследовать проблему. | |
| 23 | + | ||
| 24 | + | Именно поэтому сертификаты для публичных сайтов часто можно найти через сервисы вроде `crt.sh`: там видны домены и поддомены, указанные в сертификатах. | |
| 25 | + | ||
| 26 | + | ## Что именно становится публичным | |
| 27 | + | ||
| 28 | + | Публичным становится содержимое сертификата, включая, как правило: | |
| 29 | + | ||
| 30 | + | - доменное имя или имена из поля SAN; | |
| 31 | + | - wildcard вроде `*.example.com`; | |
| 32 | + | - срок действия; | |
| 33 | + | - издателя; | |
| 34 | + | - открытый ключ; | |
| 35 | + | - иногда сведения об организации. | |
| 36 | + | ||
| 37 | + | **Закрытый ключ при этом не публикуется** — он должен оставаться только на сервере владельца. | |
| 38 | + | ||
| 39 | + | Следовательно, CT может раскрыть факт существования внутренних поддоменов. Например, сертификат с SAN `git.intranet.example.com` фактически сообщит всему миру о таком имени. Wildcard уменьшает раскрытие конкретных имён, но не устраняет публикацию самого сертификата. [chromium.googlesource](https://chromium.googlesource.com/chromium/src/+/refs/heads/main/net/docs/certificate-transparency.md) | |
| 40 | + | ||
| 41 | + | ## Что означает галочка CT | |
| 42 | + | ||
| 43 | + | Если в панели CA или проверке сертификата указано, что **Certificate Transparency включена**, это обычно означает: | |
| 44 | + | ||
| 45 | + | - сертификат опубликован или будет опубликован в CT-журналах; | |
| 46 | + | - браузеры смогут принять его как соответствующий требованиям публичной инфраструктуры PKI; | |
| 47 | + | - владелец домена сможет отслеживать неожиданные сертификаты. | |
| 48 | + | ||
| 49 | + | Это **не означает**, что: | |
| 50 | + | ||
| 51 | + | - сертификат безопаснее шифрует трафик; | |
| 52 | + | - CA проверяет сайт после выдачи; | |
| 53 | + | - сертификат невозможно украсть или неправильно выпустить; | |
| 54 | + | - сертификат автоматически отзывается при обнаружении проблемы. | |
| 55 | + | ||
| 56 | + | CT в первую очередь обеспечивает **обнаружение и аудит**, а не предотвращает сам факт ошибочной выдачи. [datatracker.ietf](https://datatracker.ietf.org/doc/html/rfc6962) | |
| 57 | + | ||
| 58 | + | Для обычного публичного сайта это нормальное и фактически обязательное свойство сертификата от публично доверенного CA. Для внутренних доменов, которые не должны раскрывать свои имена, обычно используют собственный или корпоративный CA, а не публичный сертификат: требования CT применяются прежде всего к публично доверенным центрам сертификации. [chromium.googlesource](https://chromium.googlesource.com/chromium/src/+/refs/heads/main/net/docs/certificate-transparency.md) | |
KarelWintersky / прозрачность.md
Last active 20 hours ago
KarelWintersky revised this gist 20 hours ago · 76eb060
1 file changed, 58 insertions