Криптография — инженерия доверия

Можно ли доверять сообщению, если отправителя мы никогда не видели?

Шифрование · подписи · открытые ключи · сертификаты · PKI
01

Что разберём за пару

02

Деньги путешествуют без монет

МеханизмКак помогает доверию
ХавалаПосредники передают распоряжение и проводят взаимные расчёты.
ТамплиерыУчёт обязательств и хранение ценностей в сети учреждений.
ВексельПисьменное обязательство помогает организовать платёж в другом месте.
Это исторические аналогии, а не криптографические протоколы.
03

Как защитить распоряжение от подделки?

Банкиру приносят письмо: «Выдать 100 золотых монет».

ВопросИсторическая проверка
Кто составил письмо?Печать, подпись, полномочия.
Не исправили ли сумму?Сверка текста и признаков документа.
Не выплатили ли раньше?Учётные книги и отметка об исполнении.
Имеет ли предъявитель право получить деньги?
04
Две части документа с совпадающим неровным краем

Хирограф: документ из двух частей

Договор о 100 монетах записывали на одном листе и делили неровным разрезом. Части можно было приложить друг к другу.

Совпадение края — дополнительная проверка, а не абсолютная гарантия.
05

У Алисы важное поручение

Перевести Бобу 100 000 ₽. Ева находится между ними.

УгрозаЧто делает Ева
ПодслушиваниеЧитает сумму и реквизиты.
ПодменаМеняет получателя или сумму.
СамозванствоВыдаёт себя за Алису или Боба.
Повтор, задержка и потеря распоряжения — отдельные проблемы.
06

Три свойства безопасности

СвойствоЧто проверяем
КонфиденциальностьПосторонний не узнаёт содержание.
ЦелостностьИзменение данных можно обнаружить.
АутентичностьМожно проверить происхождение и владение ключом.
Защита от повторного выполнения требует логики приложения.
07

Шифр Цезаря: идея понятна, защита слаба

HELLO + сдвиг 3 → KHOOR

Всего 25 ненулевых сдвигов. Их легко перебрать.

По принципу Керкгоффса секретным должен быть ключ, а не алгоритм.
08

Симметричное шифрование

АлисаКаналБоб
Шифрует с ключом KПередаёт шифротекстРасшифровывает тем же K
AES — пример современного симметричного алгоритма.
09

Как передать общий секрет?

Алиса и Боб никогда не встречались, а канал прослушивается.

Как согласовать ключ K, не отправляя сам K по этому каналу?
10

1970-е: новый способ обмена

ПубликацияИдея
1976: Диффи — ХеллманСогласовать общий секрет через недоверенный канал.
1977–1978: RSAПублично описанная система с открытым ключом.
Более ранние разработки GCHQ стали известны публично позднее.
11

У Боба теперь два ключа

Открытый ключЗакрытый ключ
Боб публикует его. Алиса использует его для шифрования Бобу.Боб хранит его в секрете и расшифровывает сообщение.
Открытый ключ — не пароль. Он не обязан быть секретным.
12

Отправляем секрет Бобу

ШагДействие
1Боб публикует открытый ключ.
2Алиса шифрует сообщение для Боба его открытым ключом.
3Боб расшифровывает сообщение своим закрытым ключом.
На практике часто используют гибридное шифрование.
13

Шифрование и подпись — разные операции

ЗадачаЧей ключ используют
Скрыть текст для БобаОткрытый ключ Боба; он расшифрует закрытым.
Подписать текст от АлисыЗакрытый ключ Алисы; её открытым ключом проверят подпись.
Подпись не скрывает текст. Шифрование само по себе не доказывает автора.
14

Хеш — отпечаток документа

Исходный текстРезультат SHA-256
«Перевести 100 000 ₽»Отпечаток A
«Перевести 900 000 ₽»Другой отпечаток B
Один хеш не доказывает, кто создал документ.
15

А если ключ Боба подменили?

УчастникЧто происходит
БобПубликует открытый ключ.
ЕваПодменяет его своим ключом.
АлисаШифрует для Евы, думая, что для Боба.
Шифрование работает. Привязка ключа к Бобу не проверена.
16

Что удостоверяет сертификат?

X.509 связывает идентификатор с открытым ключом.

ПолеПример
Subject / SANexample.com
Public keyОткрытый ключ сервера
IssuerУдостоверяющий центр (CA)
ПроверкиСрок действия и цифровая подпись CA
17

Цепочка доверия

УровеньПочему ему доверяют
Корневой CAЗаранее доверен браузеру или ОС.
Промежуточный CAЕго сертификат подписан корневым CA.
example.comЕго сертификат подписан промежуточным CA.
Доверие к корню — исходная настройка системы, а не математический вывод.
18

Что браузер проверяет при HTTPS?

19

Смотрим реальный сертификат

На компьютере преподавателя выполнить команду:

openssl s_client -connect example.com:443 -servername example.com -showcerts

Найти: домен, издателя, срок действия и цепочку сертификатов.
20

OpenPGP, S/MIME и SSH

КонтекстЧто применяют
OpenPGPШифрование и подпись сообщений/файлов; разные модели доверия к ключу.
S/MIMEЗащита почты, обычно с сертификатами X.509.
SSHЗащищённый канал, ключ сервера и вход с пользовательским ключом.
21

Четыре вопроса перед лабораторной

Следующий шаг: ключи, сертификаты, шифрование и подписи в лабораторной.
22
← → листать · F полный экран