Interested Article - Криптографический протокол
- 2021-03-30
- 2
Криптографический протокол ( англ. Cryptographic protocol ) — это абстрактный или конкретный протокол , включающий набор криптографических алгоритмов , часто являющихся последовательностью криптографических примитивов . В основе протокола лежит набор правил, регламентирующих использование криптографических преобразований и алгоритмов в информационных процессах для обмена сообщениями между двумя и более участниками, а также описание используемых структур .
В протоколе участниками (субъектом, стороной) могут быть приложения , люди, их группы или, например, организации. Другими словами — всё, по каким-либо причинам способное иметь активную или пассивную роль в работе протокола. Так, в частности, большинство протоколов разрабатывается с учётом наличия пассивного слушателя, способного перехватывать сообщения .
Появление самых простых протоколов датируется концом 1970-х, началом 1980-х годов . Вклад в их появление внесли такие специалисты, как Рональд Ривест , Ади Шамир , Роджер Нидхем , Майкл Шрёдер и многие другие. Брюс Шнайер приводит описание известных протоколов в своей книге «Прикладная Криптография» .
Функции
Криптографический протокол имеет следующие функции :
- Формирование ключей
- Обмен ключами
- Аутентификация сторон
- Доказательство целостности и происхождения данных ( ЭЦП )
- Разделение ключей
- Безопасные распределённые вычисления
- Обеспечение конфиденциальности данных
- Обеспечение невозможности отказа
- Обеспечение целостности данных
- Обеспечение целостности соединения
- Разграничение доступа
Состав
Протокол делится на проходы ( англ. pass ) или циклы ( англ. round ), являющиеся интервалом времени активности только одного участника. В протоколах, рассчитанных на количество участников большее двух, при необходимости их синхронизации циклом называют период времени между двумя точками синхронизации .
Проход, в свою очередь, состоит из шагов ( англ. step, action ) — конкретных законченных действий, выполняемых участником .
Например:
- генерация случайного значения
- вычисление значений функции
- проверка сертификатов , ключей , подписей , и др.
- приём и отправка сообщений
Реализация протокола или даже теоретическое её описание для конкретных участников, каждый из которых имеет одну или несколько ролей, называется сеансом ( англ. session ). В другом сеансе протокола участники могут поменяться ролями и выполнять уже совсем другие функции .
Таким образом, протокол описывает правила поведения каждой абстрактного участника в протоколе. А сеанс описывает уже состоявшейся в прошлом конкретную реализацию протокола .
Условные обозначения
При записи криптографических протоколов для обозначения участников принято использовать либо термины «отправитель», «получатель», пр., либо экземплификанты . Соответствие между ними следующее :
- Алиса, Боб (от англ. A, B ) — отправитель сообщения и его получатель.
- Карл, Клара, Чарли (от англ. C ) — равноправная Алисе и Бобу третья сторона в случае её наличия.
- Ева (от англ. eavesdropper ) — пассивный криптоаналитик .
- Меллори (от англ. malicious ) — активный криптоаналитик.
- Трент (от англ. trust ) — доверенная сторона. Например, — удостоверяющий центр в протоколах проверки подписей.
Для записи примитивов принято использовать следующие обозначения :
- (от англ. message ) — сообщение в исходном виде, открытая информация в том виде, в котором её способен прочесть любой участник протокола. То есть, под может пониматься и исходный текст в прямом понимании или, например, массив бит , звук и так далее.
- (от англ. key ) — ключ . Без дополнительных уточнений обычно обозначает секретный сеансовый ключ .
- — общий между Алисой и Трентом секретный ключ (в случае симметричных криптосистем ).
- — открытый ключ Алисы (в случае асимметричных криптосистем ).
- (от англ. lifetime ) — время жизни примитивов. К примеру, ключа или сертификата .
- (от англ. encrypt ) — данные, зашифрованные на ключе .
- , — данные, зашифрованные на ключах Алисы и Боба соответственно.
- (от англ. sign ) — данные и соответствующая цифровая подпись на открытом ключе .
- , (от англ. timestamp ) — метки времени от соответствующих участников. Часто используется в паре с
- , (от англ. random ) — случайные числа , выбранные Алисой и Бобом соответственно.
Примеры использования обозначений :
- или просто — сообщение , зашифрованное ключом Боба .
- — случайное число , сгенерированное Алисой и ей же подписанное. То есть в сообщении будет и случайное число ( открытым текстом ), и электронная подпись этого числа.
- — идентификатор и ключ Алисы, метка времени и срок жизни данной записи, всё вместе подписанное открытым ключом доверенного центра (Трента). То есть фактически сертификат ключа Алисы.
Классификация
Глобально протоколы можно разделить на две группы: примитивные и прикладные .
Примитивный криптографический протокол ( англ. primitive cryptographic protocol ) сам по себе не имеет практической пользы, однако может быть частью прикладного протокола. Решает одну абстрактную задачу .
Прикладной криптографический протокол ( англ. application cryptographic protocol ) имеет практическое применение, используется для решения практических задач безопасности. Данные протоколы обычно реализуют сразу несколько криптографических функций. А порой и вовсе являются целым семейством протоколов, способных менять параметры системы по необходимости. Например, система электронных платежей .
Однако существуют и более точные классификации :
-
Классификация по числу участников:
- двусторонний
- трёхсторонний
- многосторонний
-
Классификация по числу передаваемых сообщений:
- интерактивный (есть взаимный обмен сообщениями)
- неинтерактивный (однократная передача)
-
Классификация по целевому назначению протокола:
- обеспечение целостности сообщений с аутентификацией источника / без аутентификации источника
- индивидуальная / групповая
- с восстановлением / без восстановления сообщения
- вслепую
- с доказуемостью подделки
- односторонняя / двусторонняя (взаимная) аутентификация / идентификация
- обычная конфиденциальная передача
- конфиденциальная широковещательная / циркулярная передача сообщений
- честный обмен секретами
- забывающая передача
- привязка к биту (строке)
- предварительное
- передача ключа (обмена ключами)
- совместная выработка ключа (открытое распределение ключей)
- парное / групповое
- разделение секрета
-
Классификация по типу используемых криптографических систем:
- на основе симметричных криптосистем
- на основе асимметричных криптосистем
- смешанные
-
Классификация по способу функционирования:
- интерактивный / неинтерактивный
- однопроходный / двух- / трёх- и т. д. проходный
- протокол с арбитром (протокол с посредником)
- двусторонний / с доверенной третьей стороной (с центром доверия)
Атаки
Бывают следующих направленностей :
- против криптографических алгоритмов
- против криптографических методов, применяемых для реализации протоколов
- против самих протоколов (активные или пассивные)
Виды атак на криптографические протоколы
- Человек посередине ( англ. man in the middle ) — вид атак, в которых злоумышленник встраивается в канал общения между участниками, внося изменения в передаваемые сообщения или перенаправляя их. Для неё уязвимы протоколы, в которых отсутствует взаимная аутентификация сторон .
- Повтором сообщения ( англ. replay attack ) — повторное использование ранее переданного сообщения или какой-либо его части в текущем сеансе протокола. Например, сначала записав сообщение, содержащее ключ в зашифрованном виде, можно потратить произвольное количество времени на его расшифровку, а далее заставить участников использовать его повторно .
- Подмены типа ( англ. type flaw attack ) — похожа на атаку повтором с той лишь разницей, что сообщение передаётся на другом раунде протокола, тем самым изменяется его значение в протоколе .
- Атака с параллельными сеансами ( англ. parallel-session attack ) — атака, в ходе которой злоумышленник инициирует несколько параллельных сеансов с участниками и предаёт сообщения из одного сеанса в другой .
Свойства безопасности
Свойств, характеризующих безопасность криптографического протокола, достаточно много. Обычно свойства протоколов, характеризующие их стойкость к различным атакам, формулируют как цели ( англ. goals ) или требования к протоколам. Трактовка этих целей со временем меняется и уточняется. Наиболее полное и современное толкование этих целей даётся в документах международной организации IETF . Под свойствами (целями, требованиями) безопасности в документах IETF в настоящее время понимаются следующие 20 целей, сгруппированные в 10 групп :
-
Аутентификация
(нешироковещательная):
-
G1
Аутентификация субъекта
- ( англ. Peer Entity Authentication ) Проверка подлинности участников протокола наличия, их полномочий, а также того, что они действительно принимают участие в выполнении текущего сеанса протокола.
-
G2
Аутентификация сообщения
- ( англ. Message authentication ) Проверка подлинности источника данных. Поскольку без гарантии того, что сообщение не было модифицировано, данное свойство становится бесполезным, возникает также требование целостности сообщения.
-
G3
Защита от повтора
- ( англ. Replay Protection ) Гарантирование того, что сообщение не является повторно отправленным. В зависимости от контекста, это может иметь либо смысл того, что сообщение было сгенерировано в данном сеансе, либо что сообщение было сгенерировано в течение известного промежутка времени. либо что сообщение не было принято ранее.
-
G1
Аутентификация субъекта
-
Аутентификация при рассылке по многим адресам или при подключении к службе подписки/уведомления:
-
G4
Неявная (скрытая) аутентификация получателя
- ( англ. Implicit Destination Authentication ) Протокол должен гарантировать, что к отправленной информации, многоадресному сообщению или групповому общению будут иметь доступ только те участники, которым разрешил отправитель.
-
G5
Аутентификация источника
- ( англ. Source Authentication ) Легитимные члены группы могут проверить подлинность источника и содержимого информации или группового сообщения. Сюда относятся случаи, когда члены группы не доверяют друг другу.
-
G4
Неявная (скрытая) аутентификация получателя
-
G6
Авторизация
(доверенной третьей стороной)
- ( англ. Authorization (by a Trusted Third Party) ) Доверенная третья сторона представляет одного участника другому участнику, давая уверенность в том, что они могут доверять друг другу.
-
Свойства совместной генерации ключа:
-
G7
Аутентификация ключа
- ( англ. Key Authentication ) Один из участников получает подтверждение того, что никакой другой участник, кроме заранее определённого второго участника (и, возможно, других доверенных участников), не может получить доступа ни к одному секретному ключу.
-
G8
Подтверждение правильности ключа
- ( англ. Key Confirmation, Key Proof of Possession ) Один из участников получает подтверждение того, что второй участник (возможно, неопределённый) действительно обладает конкретным секретным ключом (либо имеет доступ ко всем ключевым материалам, необходимым для его вычисления).
-
G9
Защищённость от чтения назад
- ( англ. Perfect Forward Secrecy ) Компрометация долговременных ключей не приводит к компрометации старых сеансовых ключей.
-
G10
Формирование новых ключей
- ( англ. Fresh Key Derivation ) Использование динамического управления ключами для получения свежих сеансовых ключей.
-
G11
Защищённая возможность договориться о параметрах безопасности
- ( англ. Secure capabilities negotiation ) Обнаружение криптографических возможностей и предпочтений участников, а также согласовывание параметров безопасности (как, например, стойкость ключей и шифры).
-
G7
Аутентификация ключа
-
G12
Конфиденциальность
- ( англ. Confidentiality , Secrecy ) Гарантия, что сообщение или его часть не станут доступными или раскрытыми для неавторизованных участников и злоумышленника.
-
Анонимность
:
-
G13
Защита личности от неучастников (несвязываемость)
- ( англ. Identity Protection against Eavesdroppers ) Злоумышленник, не являющийся правомерным участником протокола, не должен иметь возможности связать сообщение, которым обменивается одна сторона, с реальной личностью этой стороны.
-
G14
Защита личности от участников
- ( англ. Identity Protection against Peer ) Правомерный участник протокола не должен иметь возможности связать сообщение, переданное одной стороной, с реальной личностью этой стороны.
-
G13
Защита личности от неучастников (несвязываемость)
-
G15
(Ограниченная) защищённость от атак типа «
отказ в обслуживании
»
-
- ( англ. (Limited) Denial-of-Service Resistance ) Устойчивость к DoS. Трудно проверить, так как протокол может быть подвержен DoS-атакам по разным причинам, наиболее распространённой из которых является потребление слишком большого количества ресурсов (памяти, вычислительной мощности), прежде чем участник аутентифицирует себя. Но существует множество других причин: среди прочего, протоколы могут быть уязвимы для атаки DoS на распределение памяти, вычислительную мощность.
-
-
G16
Инвариантность отправителя
-
- ( англ. Sender Invariance ) Сторона получает уверенность в том, что источник сообщения остался тем же, что и тот, кто начал сообщение.
-
-
Невозможность отказа от ранее совершённых действий:
-
G17
Подотчётность
- ( англ. Accountability ) Гарантия, что действия участника могут быть однозначно отслежены.
-
G18
Доказательство источника
- ( англ. Proof of Origin ) Неоспоримое доказательство отправки сообщения.
-
G19
Доказательство получателя
- ( англ. Proof of Delivery ) Неоспоримое доказательство получения сообщения.
-
G17
Подотчётность
-
G20
Безопасное временное свойство
- ( англ. Safety Temporal Property ) Возможность использовать оператор когда-то в прошлом для описания отношений между раундами протокола. Например, если пользователь хочет слушать музыку на сервисе, когда-то в прошлом он должен был оплатить подписку.
Примечания
- Alfred J. Menezes , Paul C. van Oorschot , Scott A. Vanstone. . — CRC Press, 1996. — С. 1—2. — 816 с. — ISBN 0-8493-8523-7 . 1 декабря 2021 года.
- Ronald L. Rivest , Adi Shamir. (англ.) // Communications of the ACM. — 1984. — April ( no. 27 ). — P. 393—394 .
- Roger M. Needham , Michael D. Schroeder. (en (англ.)) // Communications of the ACM. — 1978. — Декабрь. — С. 993—999 .
- Bruce Schneier. . — John Wiley & Sons, 1996. — 784 с. — ISBN 978-1-119-09672-6 . 18 ноября 2021 года.
- ↑ Черёмушкин А. В. // Прикладная дискретная математика : Приложение. — 2009. — Ноябрь ( № 2 ).
- ↑ Владимиров С.М. и др. (6 сентября 2013). Дата обращения: 5 октября 2021. 5 октября 2021 года.
- ↑ Ященко В. В. , Варновский Н. П. , Нестеренко Ю. В. , Кабатянский Г. А. , Девянин П. Н. , Проскурин В. Г. , Черемушкин А. В. , Гырдымов П. А. , Зубов А. Ю. , Зязин А. В. , Овчинников В. Н. , Анохин М. И. / Под общ. ред. В. В. Ященко . — 2012. — С. 45. — 348 с. — ISBN 978-5-4439-0026-1 . 17 ноября 2021 года.
- Шаханова М. В. , Варлатая С. К. / Рецензенты: Корнюшин П. Н. , Глушков С. В. . — Дальневосточный государственный технический университет: ООО "Проспект", 2015. 17 ноября 2021 года.
- (англ.) . Internet Engineering Task Force . Дата обращения: 4 ноября 2021. Архивировано из 23 марта 2019 года.
- 2021-03-30
- 2