KarelWintersky

KarelWintersky / прозрачность.md

Last active 20 hours ago

Like 0

KarelWintersky revised this gist 20 hours ago · 76eb060

1 file changed, 58 insertions

прозрачность.md (file created)
@@ -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)