Download - Антон Карпов - Криптография и PKI
Инфраструктура открытых ключей (PKI)
Антон Карпов
3
Криптография
Конфиденциальность (шифрование)
Целостность (подпись)
Аутентификация
Невозможность отказа от авторства
4
Криптография с открытым ключом
1. Алиса генерирует закрытый ключ (privkey) 2. Алиса генерирует открытый ключ (pubkey) 3. Алиса отправляет открытый ключ Бобу по открытом каналу
1. Боб шифрует сообщение на открытом ключе Алисы и отправляет его Алисе по открытому каналу
2. Алиса расшифровывает сообщение, используя свой закрытый ключ
5
Криптография с открытым ключом
Проблемы
Распространение ключей
Как проверить подлинность открытого ключа?
7
Public Key Infrastructure
Certificate Authority (УЦ) - сущность, которой все доверяют
УЦ выпускает сертификаты субъектам
Возможность делегирования функций (Subordinate CA)
Иерархическая система доверия
8
Цифровой сертификат
Открытый ключ субъекта, подписанный закрытым ключом УЦ
Сертификаты могут использоваться для подписи, шифрования,
аутентификации клиента или сервера
10
Инфраструктура PKI
Корневой УЦ (Root CA)
Подчиненные УЦ (Intermediate CA)
Защищенное хранилище для закрытого ключа (HSM)
Набор политик и регламентов
Каталог выданных сертификатов
Каталог отозванных сертификатов
11
Mesh PKI
1. Алиса генерирует закрытый ключ 2. Алиса генерирует открытый ключ 3. Алиса передает открытый ключ Бобу 4. Боб верит Алисе и шифрует сообщения
на полученном открытом ключе
1. Алиса генерирует закрытый ключ 2. Алиса генерирует CSR 3. Алиса отправляет CSR в УЦ 4. УЦ подписывает CSR своим
закрытым ключом, выпуская сертификат (CER)
5. Боб получает CER Алисы из публичного каталога
6. Боб проверяет валидность CER и шифрует сообщения на нем
12
Модель доверия
13
Стандарт X.509
Разработан в 1988 году в RSA
Стандартная структура сертификата
Стандартные процедуры запроса и отзыва
Стандарты на проверку валидности
14
Структура X.509-сертификата
Serial number
Issuer
Validity (NotBefore, NotAfter)
Subject
Subject Public Key Info (Algorithm, Key)
Extensions
Certificate Signature Algorithm
Certificate Signature
PEM (base64)
DER (binary)
PKCS#12 (контейнер)
15
MD5 мертв
SHA-1 медленно помирает
SHA-2 — наше завтра
Certificate Signature Algorithm
16
CRL
Список, публикуемый УЦ на регулярной основе
Имеет время жизни
Содержит причину отзыва сертификата
Сертификат может быть “revoked” или “hold”
OCSPПроверка статуса сертификата в реальном времени
Доступность OCSP-сервера?
Нарушение приватности?
17
Модель доверия
Webtrust Program for CAhttp://www.webtrust.org/homepage-documents/item27839.aspx
Baseline requirements and guidelineshttps://www.cabforum.org/documents.html
18
PKI: практическое применение
Говорим “шифрование” — подразумеваем TLS/SSL
Говорим TLS/SSL — подразумеваем HTTPS (почти всегда)
Говорим “сертификат” — подразумеваем сертификат веб-сервера
Да, мы помним, что еще есть S/MIME
19
Проблемы X.509 PKI
Невозможно ограничить Subordinate CA в выдаче сертификатов
Что делать при недоступности CRL и/или OCSP?
Что делать при компрометации сертификата субъекта (сервера)?
Что делать при компрометации CA?
20
CRL и OCSP в современных браузерах
Chromium: Google CRLSets
Firefox: OCSP
Opera (Presto): CRL + OCSP
IE: CRL + OCSP
21
OCSP Stapling
22
Что делать при компрометации сертификата сервера?
(Perfect) Forward Secrecy
Безопасно, но медленно ;(
23
Что делать при компрометации CA?
В мире около 1500 УЦ от 650 организаций, которым доверяют
современные браузеры
Весна 2011: взлом Comodo
Лето 2011: взлом DigiNotar
Осень 2011: DigiCert Malaysia выпускает 22 сертификата со
слабыми RSA-ключами
Зима 2012: Trustwave выписывает сертификат для MITM
24
Отозвать сертификат скомпрометированного CA?
25
Отозвать сертификат скомпрометированного CA?
26
Extended Validation (EV) сертификаты
27
В современном мире удостоверяющему центру нет доверия
28
Расширения PKI
Certificate Pinning
Public Key Pinning Extension for HTTP
http://tools.ietf.org/html/draft-ietf-websec-key-pinning-20
29
Расширения PKI
Convergence (http://convergence.io)
Распределенная система доверия (trust agility)
Проверка сертификата третьими сторонами (нотариусами)
30
Расширения PKI
TACK (http://tack.io)
Расширение TLS
Передача ключа в рамках TLS handshake- Клиент передает TLS extension “tack”в ClientHello- Сервер отвечает TackExtension с ключом сервера
Сертификат сервера подписывается TACK-ключом
TACK-ключи имеют время жизни и механизм передачи
Не защищает от MITM при первоначальном подключении
31
Расширения PKI
Certificate Transparency (http://certificate-transparency.org)
Проблема: поддельные сертификаты обнаруживают не сразу
Идея: невозможно выписать сертификат на домен незаметно
для владельца домена
Certificate logs
Certificate monitors
Certificate auditors
32
Альтернативы PKI. Pretty Good Privacy
Фил Циммерман, 1991
“Web of Trust”