343.95K
Категория: ИнформатикаИнформатика

Криптографические протоколы. Управление криптографическими ключами

1.

Лекция 7
Криптографические протоколы.
Управление
криптографическими ключами

2.

Вопросы:
1. Криптографические протоколы.
2. Распределение секретных ключей.
3. Распределение открытых ключей.
4. Распределение секретных ключей с помощью
системы с открытым ключом.
5. Обмен ключами по схеме Диффи-Хеллмана.
6. Сертификаты открытых ключей.

3.

Вопрос 1
Криптографические
протоколы

4.

Задачи криптографии:
- обеспечение конфиденциальности, т.е. защита
секретной информации от внешнего противника;
- обеспечение целостности, т.е. гарантия
поступления сообщений в неискаженном виде;
- аутентификация, т.е. подтверждение подлинности;
- и др. (неотказуемость).
Для решения различных криптографических
задач разрабатываются криптографические
протоколы.

5.

Криптографический протокол – набор
формализованных правил, описывающих
последовательность действий, исполняемых двумя
или более сторонами, для решения задачи защиты
информации с использованием криптографии.
В криптографический протокол входят:
1) некоторый криптографический алгоритм (или
алгоритмы);
2) определение функций и описание
последовательности действий каждого из участников;
3) спецификации форматов сообщений, пересылаемых
между участниками;
4) описание действий при возникновении сбоев.

6.

Для облегчения демонстрации работы криптографических
протоколов используют стандартных участников:
• Алиса – первый участник (отправитель)
• Боб – второй участник (получатель)
• Кэрол – участник в трехсторонних протоколах
• Дэйв – четырехсторонний протокол
• Ева

перехватчик
сообщений
(пассивное
прослушивание)
• Мэллори – активный взломщик
• Трэнт – доверенный посредник
• Уолтер – надзиратель (стережет Алису и Боба)
• Пэгги – претендент (пытается что-то доказать)
• Виктор – верификатор (проверяет Пэгги)

7.

Имеется множество различных типов
криптографических протоколов:
- протоколы могут быть интерактивными, т. е.
подразумевать многораундовый обмен сообщениями
между участниками;
- в протоколе может быть более двух участников;
- участники протокола могут не доверять друг
другу.

8.

Все криптографические протоколы можно условно
разделить на две группы: прикладные протоколы и
примитивные протоколы.
Прикладной протокол решает конкретную задачу,
которая возникает на практике.
Примитивные протоколы используются как
«строительные блоки» при разработке прикладных
протоколов.

9.

Различают:
• самодостаточные протоколы;
• протоколы с посредником;
• протоколы с арбитром.
Самодостаточные протоколы
- это двусторонние
протоколы, в которых честность сторон гарантируется
самим протоколом. Для выполнения протокола не нужна
третья
сторона.
Отсутствие
споров
обеспечивает
конструкция протокола.
Алиса
Боб

10.

Протоколы с посредником – это трехсторонние
протоколы, в которых участвует посредник (Трэнт) незаинтересованная третья сторона, которой доверено
довести до конца исполнение протокола.
«Незаинтересованность» означает, что посреднику
безразличны как результат исполнения протокола, так и
любой его участник.
Трент
«Доверенная» – означает, что
все участники протокола воспринимают слова посредника как
истину, все его действия
признают правильными.
Алиса
Боб

11.

Протоколы с арбитром
Алиса
Доказательство
Арбитр
Боб
Трент
Доказательство

посредник
особого
типа.
Это
незаинтересованная и доверенная третья сторона, которая, в
отличие от посредника, не обязательно участвует в
исполнении каждого протокола, а только в том случае, когда
между сторонами возникают разногласия.
Арбитражные протоколы не предотвращают, а обнаруживают
мошенничество.

12.

13.

Недостатки симметричных криптосистем
1. Ключи так же ценны, как и зашифрованные ими сообщения,
отсюда следует проблема распределения ключей.
2. Каждая пара пользователей сети должна использовать
отдельный ключ, общее число ключей быстро возрастает с ростом
числа пользователей.
n пользователей - n (n – 1) / 2 – ключей,
3. При краже ключа возможно создание ложных сообщений.
4. В целях безопасности требуется частая смена ключей.
Вывод: надежность любой симметричной криптосистемы
значительно зависит от используемой системы распределения
ключей (т.е. средств доставки ключей двум сторонам).

14.

Вопрос 2
Распределение
секретных ключей

15.

Для двух участников А и В распределение секретных
ключей можно организовать различными способами:
1. Ключ выбирает сторона А и физически доставляет В.
2. Ключ выбирает третья сторона и физически
доставляет А и В.
3. Одна из сторон передает новый ключ в
зашифрованном виде, используя старый ключ.
4. Третья сторона С генерирует ключ и доставляет его А
и В по защищенным каналам связи.
5. Секретный ключ распределяется с помощью
криптосистемы с открытым ключом.
Протокол распределения ключей может быть
централизованным и распределенным.

16.

Централизованная схема распределения ключей
Участвует третья сторона - Центр распределения ключей
(ЦРК).
Используется иерархия ключей (минимум два уровня).
Связь между конечными пользователями шифруется с
использованием временного ключа, называемого сеансовым
ключом.
Сеансовые ключи передаются участникам в зашифрованном
виде, для их шифрования используется главный ключ, общий
для ЦРК и данного пользователя.
Главных ключей требуется N (по числу пользователей).
Общее количество сеансовых ключей равно N(N-1)/2.

17.

Сценарий распределения ключей
Кa – главный ключ пользователя А для общения с ЦРК,
известный только ему и ЦРК;
Кb – главный ключ пользователя В для общения с ЦРК,
известный только ему и ЦРК;
Кs – одноразовый сеансовый ключ пользователей А и В.
Шаг (1) Пользователь А посылает запрос в ЦРК на получение
сеансового ключа для защиты связи с В.
Посылаемый запрос должен включать:
- информацию, позволяющую однозначно определить А и В (IDA,
IDВ);
- N1 оказия (время, счетчик, случайное число) - идентификатор,
уникальный для каждого запроса. Чтобы противник не мог ее
угадать и не фальсифицировал сообщение.

18.

Трент
ЦРК
(1) IDA,IDB,N1
EKa (2) EKa[KS,(IDA,IDB,N1),EKb(KS,IDA)]
(3) EKb(KS,IDA)
Для А
(4) EKs(N2)
Польз.А
Алиса
Польз.В
(5) EKs[f(N2])
Боб

19.

В рассмотренной схеме обеспечивается не только
передача ключа (шаги 1, 2, 3), но и аутентификация
(шаги 4 и 5).
Необязательно возлагать функцию распределения
ключей на один ЦРК. Более выгодно использовать
некоторую иерархию ЦРК.
Чем чаще меняются сеансовые ключи, тем более
они надежны, но распределение сеансовых ключей
задерживает начало сеанса обмена данными и
увеличивает нагрузку сети.

20.

Децентрализованная схема распределения ключей
Самодостаточный протокол (без посредников).
КАВ – главный ключ А и В, распределенный заранее.
(1) Запрос,N1
Польз. А
Алиса
(2) EKАВ[KS,Запрос,IDB,f(N1),N2]
(3) EKs[f(N2])
Польз. В
Боб

21.

Вопрос 3
Распределение
открытых ключей

22.

Для распределения открытых ключей существуют следующие
методы:
1) публичное объявление (неконтролируемое распределение);
2) публично доступный каталог;
3) авторитетный источник открытых ключей;
4) сертификаты открытых ключей.
Публичное объявление открытых ключей
Недостаток: публичное объявление может сделать кто угодно,
в том числе и злоумышленник. Пока пользователь Алиса откроет
подлог и предупредит других пользователей, фальсификатор
сможет прочитать все шифрованные сообщения, предназначенные
Алисе.

23.

Публично доступный каталог (централизованная схема)
Обеспечивает более высокую степень защиты, чем
неконтролируемое распределение.
За сопровождение и распространение публичного каталога
должен отвечать некоторый надежный центр или надежная
организация.
1) Ведется каталог с записями вида {имя, открытый ключ} для
каждого из участников;
2) Каждый участник регистрирует свой открытый ключ;
3) Любой участник может заменить существующий ключ новым
в любой момент с использованием средств аутентификации;
4) Периодически публикуется весь каталог или обновления к
нему.

24.

Авторитетный источник открытых ключей
Обеспечивает распределение открытых ключей с помощью
системы с открытым ключом.
Протокол предполагает наличие некоторого ЦРК,
уполномоченного поддерживать динамический каталог открытых
ключей всех участников обмена данными.
Каждому из участников достоверно известен открытый ключ
центра, но только центр знает соответствующий личный ключ.
При этом выполняются следующие действия:
Шаг (1) Инициатор А посылает авторитетному источнику
открытых ключей запрос о текущем открытом ключе участника В
с меткой даты/времени (оказией).
(1) Запрос1,Время1

25.

Шаг (2) Авторитетный источник отвечает сообщением,
которое шифруется с использованием личного ключа
авторитетного источника KRАИ.
Это сообщение инициатор А
может расшифровать, используя открытый ключ авторитетного
источника. Поэтому отправитель А может быть уверенным в том,
что сообщение исходит от авторитетного источника. Это
сообщение должно включать следующее:
- Открытый ключ участника В - KUb;
- Оригинальный запрос, чтобы сторона А имела возможность
убедиться, что запрос не был изменен на пути к авторитетному
источнику.
- Оригинальную метку даты/времени (оказия N1), чтобы
отправитель А мог удостовериться, что это ответ именно на
данный запрос.
(2) EKRАИ[KUb,Запрос1,Время1]

26.

(1) Запрос1,Время1
Авторитетный
источник открытых ключей-АИ
(4) Запрос2,Время2
(2) EKRАИ[KUb,Запрос1,Время1]
(5) EKRАИ[KUa,Запрос2,Время2]
(3) EKUb[IDA,N1]
Инициатор А
Респондент В
(6) EKUa[N1||N2]
(7) EKUb[N2]

27.

Шаг (3) Инициатор А сохраняет открытый ключ участника В и
использует его для шифрования сообщения, направляемого В и
содержащего идентификатор отправителя IDA и оказию N1.
Шаги (4) (5) Респондент В получает открытый ключ
участника А от авторитетного источника таким же способом, каким
отправитель А получил открытый ключ получателя В.
Т.о. открытые ключи оказываются доставленными участникам
А и В, теперь А и В могут начать защищенный обмен данными.
Шаг (6) Респондент В посылает сообщение А, шифрованное с
помощью KUA и содержащее оказию отправителя А (N1), а также
новую оказию, сгенерированную участником В (N2). Присутствие
N1 в сообщении (6) убеждает участника А в том, что отправителем
полученного сообщения был В.
Шаг (7) А возвращает N2, шифрованное с помощью открытого
ключа участника В, чтобы тот мог убедиться, что отправителем
ответа является А.

28.

Вопрос 4
Распределение секретных
ключей с помощью системы
с открытым ключом

29.

Схема Меркла (самодостаточный протокол)
Противник Mэлори
(KUm,KRm)
KUm,IDA
(1) KUA,IDA
B (Ks)
A (KUa,KRa)
(2) EKUa [KS]
EKUm [KS]

30.

Шаг 1 Сторона А генерирует пару открытый/личный ключи
{KUA,KRA} и передает сообщение стороне В, содержащее KUA и
IDA.
Шаг 2 Получатель В генерирует сеансовый ключ KS и
передает этот ключ инициатору сообщения А, шифруя его с
помощью открытого ключа инициатора А.
Шаг 3 Пользователь А вычисляет DKRa[EKUa[KS]], чтобы
восстановить сеансовый ключ. Поскольку только участник А может
расшифровать это сообщение, только участники обмена А и В
будут знать значение KS.
Достоинство: Никаких ключей не существует перед началом
связи и никаких ключей не остается после завершения связи. Риск
компрометации минимален. В то же время связь оказывается
защищенной от прослушивания.

31.

Недостаток: Протокол уязвим в отношении активных атак.
Если противник (Мэлори – активный взломщик) имеет
возможность внедрения в канал связи, он может
скомпрометировать связь без того, чтобы быть обнаруженным.
1. Участник А генерирует пару ключей {KUA,KRA} и передает
сообщение адресату В, содержащее KUA и IDA.
2. Противник М перехватывает сообщение, создает
собственную пару ключей {KUМ,KRМ} и передает сообщение
адресату В, содержащее KUМ и IDA.
3. В генерирует секретный ключ KS и передает EKUм[KS].
Противник М перехватывает это сообщение и узнает KS, вычисляя
DKRм[EKUм[KS]].
4. Мэлори передает участнику А сообщение EKUа[KS].
В результате оба участника, А и В, будут знать KS, но не будут
подозревать, что KS также известен Мэлори.

32.

Распределение секретных ключей с обеспечением
конфиденциальности и аутентификации.
Протокол обеспечивает защиту и от активной, и от
пассивной форм атак. Предположим, что А и В уже обменялись
открытыми ключами по одной из схем, описанных выше.
(1) EKUb[N1,IDA]
(2) EKUa [N1,N2]
N1-гарантия, что респондент В
KRa, KUa
KUb
KRb, KUb
KUa
Респондент В
Инициатор А
N2-гарантия, что респондент А
(3) EKUb[N2]
(4) EKUb[EKRa[KS]]

33.

Вопрос 5
Обмен ключами по схеме
Диффи-Хеллмана

34.

С помощью алгоритма Диффи-Хеллмана
Алиса и Боб могут получить общий
секретный ключ ни разу не передав его
по сети.

35.

Алгоритм Диффи-Хеллмана основан на однонаправленной
функции – модульная экспонента с фиксированным основанием и
модулем:
fA,N(x)=Ax(mod N), где x – целое число, 1≤x≤N-1
Обратная задача - вычисление дискретных логарифмов для
больших простых чисел считается практически неразрешимой.
Первообразный корень простого числа p – это число а,
степени которого порождают все целые числа от 1 до p-1. Это
означает, что если а является первообразным корнем простого
числа p, то все числа
a mod p, a2 mod p,…, ap-1 mod p
должны быть разными и представлять все целые числа от 1 до
p-1 в некоторой перестановке.

36.

1) Алиса и Боб вместе выбирают 2 открытых для всех числа:
- большое простое целое число q;
- целое число а<q, являющееся первообразным корнем q.
Числа эти необязательно держать в секрете. Они даже могут
быть «зашиты» в ПО.
2) Алиса выбирает случайное целое секретное число Хa<q и
вычисляет:
YA=аXa mod q
3) Боб выбирает случайное целое секретное число Xb<q и
вычисляет:
YB=aXb mod q
4) Каждая сторона сохраняет значение Х в тайне и делает
значение Y доступным другой стороне.
5) Алиса вычисляет секретный ключ по формуле:
К = (YB)Xa mod q
6) Боб вычисляет секретный ключ по формуле:
К = (YА)Xb mod q
Формулы дают одинаковые результаты.

37.

Пример:
1) Пусть Алиса и Боб договорились, что q = 13, а = 7
2) Алиса выбирает личный ключ Хa = 2 и вычисляет открытый
ключ:
YA=аXa mod q = 72 mod 13 = 10
3) Боб выбирает личный ключ Xb = 4 и вычисляет открытый
ключ:
YB=aXb mod q = 74 mod 13 = 2401 mod 13 = 9
4) Алиса и Боб обмениваются открытыми ключами:
5) Алиса вычисляет секретное число K (секретный ключ):
K = 92 mod 13 = 81 mod 13 = 3
6) Боб вычисляет секретное число K:
K = 104 mod 13 = 10000 mod 13 = 3
Алиса и Боб могут использовать число К в качестве секретного
ключа для симметричного алгоритма шифрования.

38.

Условия криптостойкости алгоритма Диффи-Хеллмана
Противник знает: q, а, YА , YВ.
Чтобы определить Хa и Xb, а затем секретный ключ,
необходимо вычислить дискретный логарифм.
Для того, чтобы усложнить решение обратной задачи, на
параметры алгоритма накладываются следующие ограничения:
1) q должно быть большим простым числом порядка 10300,
причем желательно, чтобы (q-1)/2 также было простым числом;
2) а не обязательно должно быть большим, обычно оно
выбирается меньше 10;
3) Хa и Xb – должны быть большими числами порядка 10100.

39.

Спасибо за внимание
English     Русский Правила