Определения:
Определения:
Доверие. Стимул. Риски.
Доверие. Стимул. Риски.
Доверие в криптографических протоколах
Уровни криптографических протоколов
Уровни криптографических протоколов
Классификация криптографических протоколов
Классификация криптографических протоколов
Классификация криптографических протоколов
Классификация криптографических протоколов
Свойства безопасности протоколов
Свойства безопасности протоколов
Свойства безопасности протоколов
Свойства безопасности протоколов
Свойства безопасности протоколов
Атаки характерные для криптографических протоколов
Атаки характерные для криптографических протоколов
Протоколы распространения ключей на симметричных шифрах
Основные обозначения в протоколах:
Протокол Wide-Mouth Frog (Лягушка с широким ртом)
Недостатки протокола Wide-Mouth Frog
Атаки на Wide-Mouth Frog
Атаки на Wide-Mouth Frog
Протокол Нидхема—Шрёдера
Недостатки протокола Нидхема—Шрёдера
Задание к лекции:
417.50K
Категория: ИнтернетИнтернет

Криптографические протоколы, ранние протоколы согласования ключей

1.

Криптографические
протоколы,
ранние протоколы
согласования ключей

2. Определения:

Протокол — описание распределённого алгоритма, в процессе выполнения которого
два или более участников последовательно выполняют определённые действия и
обмениваются сообщениями;
Под субъектом протокола понимают не только людей, но и приложения, группы людей
или организации(формально участниками считают только тех, кто выполняет активную
роль в рамках протокола, однако многие протоколы разрабатываются с учётом защиты
от «пассивных» криптоаналитиков);
Протокол состоит из циклов (round) или проходов (pass). Цикл — временной интервал
активности только одного участника. За исключением самого первого цикла протокола,
обычно начинается приёмом сообщения, а заканчивается — отправкой;
Цикл состоит из шагов (step) — конкретных законченных действий, выполняемых
участником протокола. Например:
генерация нового случайного значения;
вычисление значений функции;
проверка сертификатов, ключей, подписей, и др.;
приём и отправка сообщений.
Прошедшая в прошлом реализация протокола для конкретных участников
называется сеансом. Каждый участник в рамках сеанса выполняет одну или
несколько ролей. В другом сеансе протокола участники могут поменяться ролями и
выполнять уже совсем другие функции (В протоколах с тремя и более участниками,
один и тот же человек может исполнять несколько ролей одновременно.).

3. Определения:

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

4. Доверие. Стимул. Риски.

Доверие - это фундаментальная основа, на которой строятся взаимоотношения с другими
субъектами.
Существует несколько источников доверия:
Этика. Влияние этики на наше общество огромно. Хотя очень немногие ведут себя
этично абсолютно во всех ситуациях, однако большинство людей оплачивают свои
покупки, даже если их можно легко украсть.
Репутация. Зачастую угроза широкой огласки каких-то неблаговидных поступков
стимулирует вести себя должным образом.
Закон. Цивилизованные страны обладают хорошо развитой правовой
инфраструктурой, которая поддерживает возбуждение судебных исков и наказание
субъектов, ведущих себя неправомерно. Это вынуждает субъектов вести себя в
соответствии с законом.
Угроза физической расправы. Еще одним стимулом правильно поведения является
страх перед физической расправой, которой может подвергнуться недобросовестный
субъект, пойманный своими партнерами.
Взаимно-гарантированное уничтожение. Это термин времен “холодной войны". В
более мягких формах он означает угрозу нанести вред и себе, и второй стороне.
Довольно часто в ситуации взаимно-гарантированного уничтожения оказываются две
компании, которые возбуждают встречные иски о нарушении патентов.

5. Доверие. Стимул. Риски.

Понятие доверия нельзя рассматривать однозначно: либо доверять,
либо нет. Вопрос о доверии должен звучать: “Вы доверяете Субъекту
А в вопросе Х?".
Доверие является фундаментальной основой любого бизнеса, однако
обычно выражается в форме риска. Риск можно рассматривать как
противоположность доверию. Всевозможные виды рисков подвергают
оцениванию, сравнению и страхованию.

6. Доверие в криптографических протоколах

Назначение криптографических протоколов состоит в
минимизации
объема
доверия,
необходимого
для
взаимодействия участников. Это означает минимизацию не
только количества людей, которые должны доверять друг
другу, но и необходимого уровня этого доверия.
Одним
из
самых
мощных
средств
разработки
криптографических протоколов является параноидальная
модель. Когда пользователь А принимает участие в протоколе,
он предполагает, что все другие участники общения
объединились, чтобы его обмануть.
Параноидальная модель является стандартной моделью
поведения, на основе которой разрабатываются все
криптографические протоколы.

7. Уровни криптографических протоколов

Как и при работе с коммуникационными протоколами, функциональность
криптографических протоколов может быть разбита на несколько уровней. Каждый
уровень функционирует поверх предыдущего.
1. Транспортный уровень
Для криптографов транспортный уровень – это лежащая в основе протокола
коммуникационная система, которая позволяет его участникам взаимодействовать
друг с другом, в частности отправлять строки байтов одним участником протокола
другому участнику.
2. Идентификация протоколов и сообщений
Следующий уровень обеспечивает идентификацию протоколов и сообщений.
Получая сообщение, мы хотим знать, какому протоколу оно принадлежит и что это за
сообщение в рамках данного протокола.
Идентификатор протокола обычно состоит из двух частей. Первая - это информация
о версии, которая предусматривает возможность будущих обновлений. Вторая часть
указывает, какому конкретно криптографическому протоколу принадлежит
сообщение. Например, в системе электронных платежей могут применятся
отдельные протоколы для снятия денег, оплаты, возврата и т.д. Идентификатор
протокола помогает избежать путаницы между сообщениями, принадлежащими
разным протоколам. Данный уровень не обеспечивает никакой защиты от активных
фальсификаторов; вместо этого он позволяет обнаруживать случайные ошибки.

8. Уровни криптографических протоколов

3. Кодирование и анализ сообщений.
Следующим уровнем является кодирование. Каждый элемент данных сообщения
должен быть преобразован в последовательность байтов.
Одним из наиболее важных моментов данной проблемы является синтаксический
анализ. Получатель должен иметь возможность проанализировать сообщение,
чтобы преобразовать его из последовательности байтов обратно в набор полей
данных. Такой анализ не должен зависеть от контекстной информации.
Поле фиксированной длины, одинаковое для всех версий протокола, легко
поддается анализу. Мы знаем, какой в точности должна быть длина этого поля.
Проблемы начинаются тогда, когда размер или значение поля зависят от некоторой
контекстной информации, такой, как более ранние сообщения, отправленные в
рамках соответствующего протокола. Это открывает массу возможностей для
злоумышленников.
Для кодирования полей хорошо использовать кодировку TLV (Tag-Length-Value дескриптор-длина-значение). Согласно ей каждое поле кодируется тремя
элементами данных. Первый элемент (дескриптор) идентифицирует текущее поле,
второй (длина) задает длину значения в закодированном виде, а третий (значение) это и есть фактические данные, которые должны быть закодированы.

9. Классификация криптографических протоколов

Классификация по числу участников
протокола:
двусторонний,
трёхсторонний и т. п.,
многосторонний.

10. Классификация криптографических протоколов

Классификация по числу
передаваемых сообщений:
интерактивный (с наличием
взаимного обмена сообщениями);
неинтерактивный (с однократной
передачей сообщений).

11. Классификация криптографических протоколов

Классификация по используемым
криптографическим системам:
на основе только симметричных
криптосистем;
на основе в том числе асимметричных
криптосистем.

12. Классификация криптографических протоколов

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

13. Свойства безопасности протоколов

Защищённая система и, соответственно, защищённый протокол могут выполнять разные функции
безопасности. Многие из этих функций можно сформулировать как устойчивость к определённому классу
атак. Наиболее полным и актуальным считается перечисление и толкование этих целей в документе проекта
AVISPA (Automated Validation of Internet Security Protocols and Applications), суммирующим описания из
различных документов IETF. Данные цели принято считать формализируемыми — то есть такими, что для
отдельных протоколов есть возможность формально доказать или опровергнуть достижение этих целей.
Аутентификация (однонаправленная).
(G1) Аутентификация субъекта.
Гарантия для одной стороны протокола через представление доказательств и / или учётных данных второй
стороны, участвующей в протоколе, и того, что вторая сторона действительно участвовала в текущем сеанса
протокола. Обычно делается через представления таких данных, которые могли быть сгенерированы только
второй стороной. Аутентификация субъекта подразумевает, что полученные данные могут быть однозначно
прослежены до субъекта протокола, что подразумевает аутентификацию источника данных.
(G2) Аутентификация сообщения.
Гарантия того, что полученное сообщение или фрагмент данных были созданы определённым субъектом в
какое-то (обычно неуказанное) время в прошлом, и что эти данные не были повреждены или подделаны. Но
без предоставления уникальности или своевременности. Аутентификация сообщений подразумевает их
целостность.
(G3) Защита от повтора.
Защита от ситуации, когда некоторая сторона запишет некоторое сообщение и воспроизведёт его позднее
(возможно — в другом сеансе протокола), что приведёт к некорректной интерпретации данной стороны как
аутентифицированной.

14. Свойства безопасности протоколов

Аутентификация при рассылке по многим адресам или при подключении к
службе подписки/уведомления.
(G4) Явная аутентификация получателя.
Протокол должен гарантировать, что отправленное сообщение доступно для чтения
только легальным получателям. То есть только легальные авторизованные участники
будут иметь доступ к актуальной информации, многоадресному сообщению или
сеансу групповой связи.
(G5) Аутентификация источника.
Легальные получатели смогут аутентифицировать источник и содержание
информации или группового общения. Включает случаи, когда члены группы не
доверяют друг другу.
(G6) Авторизация (третьей доверенной стороной).
Гарантия возможности авторизовать (в терминах протокола) одного субъекта на
доступ к ресурсу другого с помощью третьей доверенной стороны. Подразумевает,
что владелец ресурса может не иметь собственных списков доступа и полагается на
таковые у доверенной стороны.

15. Свойства безопасности протоколов

Совместная генерация ключа.
(G7) Аутентификация ключа.
Гарантия для одного из субъектов, что только легальные пользователи могут получить
доступ к конкретному секретному ключу.
(G8) Подтверждение владения ключом.
Гарантия для одного из субъектов, что другой субъект действительно владеет
конкретным секретным ключом (либо информацией, необходимой для получения
такого ключа).
(G9) Совершенная прямая секретность.
Гарантия того, что компрометация мастер-ключей в будущем не приведёт к
компрометации сессионных ключей уже прошедших сеансов протокола.
(G10) Формирование новых ключей.
Гарантия возможности создать новые сессионные ключи для каждого сеанса
протокола.
(G11) Защищённая возможность договориться о параметрах безопасности.
Гарантия не только того, что легальные стороны имеют возможность договориться о
параметрах безопасности, но и того, что нелегальная сторона не вмешалась в протокол
и не привела к выбору предпочтительных ей (возможно — наиболее слабых)
параметров безопасности.

16. Свойства безопасности протоколов

(G12) Конфиденциальность (секретность).
Гарантия, что конкретный элемент данных (часть передаваемого сообщения) остаётся
неизвестным для злоумышленника. В данной цели не рассматривается секретность
сеансового ключа, проверка подлинности ключа или надёжность долговременных мастерключей.
Анонимность.
(G13) Защита идентификаторов от прослушивания (несвязываемость).
Гарантия, что злоумышленник (подслушивающий) не состоянии связать обмен сообщениями
субъектом с его реальной личностью.
(G14) Защита идентификаторов от других участников.
Гарантия, что участник переписки не в состоянии связать обмен сообщениями субъекта с
реальной личностью, но только с некоторым псевдонимом.
(G15) Ограниченная защита от атак отказа в обслуживании.
Гарантия, что протокол следует определённым принципам, уменьшающих вероятность
(усложняющих использование) отдельных классов атак отказа в обслуживании.
(G16) Неизменность отправителя.
Гарантия для одной из сторон, что источник сообщения остался таким же, как тот, который
начал общение, хотя фактическая идентификация источника не важна для получателя.

17. Свойства безопасности протоколов

Неотрекаемость.
(G17) Подотчётность.
Гарантия возможности отслеживания действий субъектов над объектами.
(G18) Доказательство происхождения.
Гарантия неопровержимости доказательств источника сообщения.
(G19) Доказательство доставки.
Гарантия неопровержимости доказательств факта получения сообщения.
(G20) Защищённое временное свойство.
Гарантия возможности доказать, что факт нахождения системы в одном из состояний
означает, что некогда в прошлом система хотя бы раз находилась в некотором другом
состоянии. Например, что получение субъектом доступа к ресурсу означает, что
некогда в прошлом субъект успешно оплатил данный доступ.

18. Атаки характерные для криптографических протоколов

Атака считается успешной, если нарушено хотя бы одно из заявленных свойств протокола.
«Атака посередине» (man-in-the-middle)
Класс атак, в котором злоумышленник ретранслирует и, при необходимости, изменяет все
сообщения, проходящие между двумя и более участниками протокола, причём последние не
знают о существовании злоумышленника, считая, что общаются непосредственно друг с
другом. К данной атаке уязвимы все протоколы, которые не реализуют взаимную
аутентификацию сторон (цель G1). Классическим примером атаки данного класса является
атака на протокол Диффи—Хеллмана.
Атака с повторной передачей (Replay)
Класс атак, в котором злоумышленник записывает все сообщения, проходящие в одном
сеансе протокола, а далее повторяет их в новом, выдавая себя за одного из участников
первого сеанса. Примерами протоколов, к которым применима данная атака, являются
протоколы Ву-Лама и бесключевой протокол Шамира.
Атака подмены типа (TF-атаки, type flaw attack)
Класс атак, в котором злоумышленник используя переданное в легальном сеансе протокола
сообщение конструирует новое, передавая его на другом проходе (раунде) протокола под
видом сообщения другого типа (с другим предназначением). К таким атакам уязвимы,
например, протоколы Wide-Mouth Frog, Деннинга—Сако, Yahalom и Отвей—Рииса.

19. Атаки характерные для криптографических протоколов

Атака с параллельными сеансами (PS-атака, parallel-session attack)
Класс атак, в котором злоумышленник инициирует несколько одновременных сеансов
протокола с целью использования сообщений из одного сеанса в другом. Примером
протокола, уязвимого к данному классу атак, является симметричный вариант
Нидхема—Шрёдера.
Атака с известным сеансовым ключом (KN-атака, known-key attack)
Классы атак, в которых злоумышленник получает доступ к временным секретам,
используемых в протоколах (например, новым сеансовым ключам), после чего может
обеспечить, например, аутентификацию или хотя бы установление сессии от имени
одной из сторон протокола.
Атака с неизвестным сеансовым ключом (UKS-атака, unknown key-share
attack)
Класс атак на протоколы с аутентификацией ключа, в которых злоумышленник
получает возможность доказать одной из сторон владение ключом (с помощью,
например, повтора сообщения из легального сеанса), хотя сам ключ злоумышленник
не знает. К такому классу атак уязвим, например, симметричный протокол НидхемаШрёдера.

20. Протоколы распространения ключей на симметричных шифрах

Задача распространения ключей является одной из множества задач построения надёжной сети общения многих
абонентов. Задача состоит в получении в нужный момент времени двумя легальными абонентами сети секретного
сессионного ключа шифрования (и аутентификации сообщений). Хорошим решением данной задачи будем
считать такой протокол распространения ключей, который удовлетворяет следующим условиям:
В результате работы протокола между двумя абонентами должны быть сформирован секретный сессионный
ключ.
Успешное окончание работы протокола распространение ключей должно означать успешную взаимную
аутентификацию абонентов. Не должно возникать такой ситуации, что протокол успешно завершился с точки
зрения одной из сторон, а вторая сторона при этом представлена злоумышленником.
К участию в работе протокола должны допускаться только легальные пользователи сети. Внешний
пользователь не должен иметь возможность получить общий сессионный ключ с кем-либо из абонентов.
Добавление нового абонента в сеть (или исключение из неё) не должно требовать уведомления всех
участников сети.
Большая часть решений состоит в том, что в сети выделяется один или несколько доверенных центров T (Trent),
которые владеют информацией о всех легальных участниках сети и их ключах. Они же будут явно или неявно
выступать одним из участников протоколов по формированию сеансовых ключей.
Важным моментом при анализе решений данной задачи является то, что сессионные ключи, вырабатываемые в
конкретный момент времени, являются менее надёжными, чем мастер-ключи, используемые для генерации
сессионных. В частности, нужно предполагать, что хотя злоумышленник не может получить сессионный ключ во
время общения абонентов, он может сделать это по прошествии некоторого времени (дни, недели, месяцы). И
хотя знание этого сессионного ключа поможет злоумышленнику расшифровать старые сообщения, он не должен
иметь возможность организовать новую сессию с использованием уже известного ему сессионного ключа.

21. Основные обозначения в протоколах:

Alice, Bob — легальные абоненты сети, для которых формируется общий
сеансовый ключ. Алиса является инициатором.
Trent — доверенный центр сети.
A, B — некоторые идентификаторы легальных абонентов Алисы и Боба
соответственно.
EA, EB — результат шифрования некоторого блока данных с использованием
секретных ключей легальных абонентов сети Алисы и Боба соответственно.
Такое шифрование могу осуществить либо сами легальные абоненты, либо
доверенный центр, которому известны все секретные ключи.
RA, RB, RT — случайные числа, генерируемые Алисой, Бобом и Трентом
соответственно.
TA, TB, TT— метки времени, генерируемые Алисой, Бобом и Трентом
соответственно.
K — секретный сеансовый ключ, получение которого и является одной из
целью протоколов.

22. Протокол Wide-Mouth Frog (Лягушка с широким ртом)

Протокол Wide-Mouth Frog является, самым простым протоколом с доверенным центром.
Протокол состоит из следующих шагов:
1. Алиса генерирует новый сеансовый ключ K и отправляет его вместе с меткой времени,
идентификатором Боба и своим незашифрованным идентификатором доверенному
центру:
Alice→{A, EA(TA,B,K)}→Trent
2. Доверенный центр, используя полученный незашифрованный идентификатор A,
находит у себя в базе данных легальных абонентов секретный ключ Алисы и
расшифровывает им пакет данных. Проверяет метку времени (что пакет не очень старый).
Далее он отправляет похожий пакет данных Бобу, зашифрованный его секретным ключом:
Trent→{EB(TT,A,K)}→Bob
Боб, кроме расшифрования пакета, также проверяет метку времени доверенного центра.
По окончании протокола у Алисы и Боба есть общий сеансовый ключ K.
Схема взаимодействия абонентов и довереного
центра в протоколе Wide-Mouth Frog

23. Недостатки протокола Wide-Mouth Frog

Генератором ключа является инициирующий абонент. Если
предположить, что Боб — это сервер, предоставляющий некоторый
сервис, а Алиса — это тонкий клиент, запрашивающий данный сервис,
получается, что задача генерации надёжного сессионного ключа
взваливается на плечи абонента с наименьшими мощностями.
В протоколе общение с вызываемым абонентом происходит через
доверенный центр. Как следствие, второй абонент может стать мишенью
для DDOS-атаки с отражением (англ. distributed denial-of-service attack),
когда злоумышленник будет посылать пакеты на доверенный центр, а тот
формировать новые пакеты и посылать их абоненту. Если абонент
подключён к нескольким сетям (с несколькими доверенными центрами),
это позволит злоумышленнику вывести абонента из строя. Хотя
защититься от подобной атаки достаточно просто, настроив
соответствующим образом доверенный центр.

24. Атаки на Wide-Mouth Frog

1. В 1995 году Рос Андерсон и Роджер Нидхем предложили вариант атаки на протокол, при котором
злоумышленник (Ева) может бесконечно продлевать срок действия конкретного сеансового ключа. Идея атаки в
том, что после окончания протокола злоумышленник будет посылать доверенному центру назад его же пакеты,
дополняя их идентификаторами якобы инициирующего абонента.
При повторении шагов 3 и 5, по прошествии определенного времени наступит расшифрование ключа K.
С точки зрения доверенного центра шаги 1, 3 и 5 являются корректными пакетами, инициирующие общение
абонентов между собой. Метки времени в них корректны (если Ева будет успевать вовремя эти пакеты посылать). С
точки зрения легальных абонентов каждый из пакетов является приглашением другого абонента начать общение. В
результате произойдёт две вещи:
Каждый из абонентов будет уверен, что закончился протокол создания нового сеансового ключа, что второй
абонент успешно аутентифицировал себя перед доверенным центром. И что для установления следующего
сеанса связи будет использоваться новый (на самом деле — старый) ключ K.
После того, как пройдёт время, нужное злоумышленнику Еве для взлома сеансового ключа K, Ева сможет и
читать всю переписку, проходящую между абонентами, и успешно выдавать себя за обоих из абонентов.

25. Атаки на Wide-Mouth Frog

2. Атака 1997 года Гэвина Лоу проще в реализации. В результате этой атаки Боб уверен, что Алиса
аутентифицировала себя перед доверенным центром и хочет начать второй сеанс общения. Что, конечно,
не является правдой, так как второй сеанс инициирован злоумышленником.
В той же работе Лоу предложил модификацию протокола, вводящую явную взаимную аутентификацию
абонентов с помощью случайной метки RB и проверки, что Алиса может расшифровать пакет с меткой,
зашифрованной общим сеансовым ключом абонентов K. Однако данная модификация приводит к тому, что
протокол теряет своё самое главное преимущество перед другими протоколами — простоту.

26. Протокол Нидхема—Шрёдера

Первый абонент получает от доверенного центра специальный пакет, который он без
всякой модификации отправляет второму абоненту.
Схема взаимодействия абонентов и довереного центра в
протоколе Нидхема—Шрёдера

27. Недостатки протокола Нидхема—Шрёдера

Протокол обеспечивает двустороннюю аутентификацию сторон и защиту
от атак с повторной передачей (replay attack) с помощью введения
случайных меток RA и RB. Действительно, без знания ключа
злоумышленник не сможет выдать себя за Алису перед Бобом (так как не
сможет расшифровать пакет с зашифрованной меткой RB). Однако,
поскольку сессионный ключ не может считаться надёжным длительное
время, если злоумышленник сумеет в какой-то момент времени получить
ранее использованный сессионный ключ K, он сможет убедить Боба, что
он является Алисой, и что это новый сессионный ключ. Для этого ему
понадобится переданный ранее по открытому каналу пакет из пункта 3
протокола.
Относительно мелкий недостаток протокола состоит ещё и в том, что во
втором пакете доверенный центр в зашифрованном виде передаёт то, что
в третьем шаге пересылается по открытому каналу (ЕB(K,A)).

28. Задание к лекции:

Провести сравнительный анализ
протоколов Wide-Mouth Frog и Нидхема—
Шрёдера и записать в таблицу результат:

п\п
Схожие функции,
результаты,
проблемы
Основные отличия


English     Русский Правила