Антон Карпов - Криптография и PKI

Preview:

Citation preview

Инфраструктура открытых ключей (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”

Recommended