Главная
Новости
Строительство
Ремонт
Дизайн и интерьер

















Яндекс.Метрика

Криптографический протокол

Криптографический протокол (англ. Cryptographic protocol) — это абстрактный или конкретный протокол, включающий набор криптографических алгоритмов, часто являющихся последовательностью криптографических примитивов. В основе протокола лежит набор правил, регламентирующих использование криптографических преобразований и алгоритмов в информационных процессах для обмена сообщениями между двумя и более участниками, а также описание используемых структур.

В протоколе участниками (субъектом, стороной) могут быть приложения, люди, их группы или, например, организации. Другими словами — всё, по каким-либо причинам способное иметь активную или пассивную роль в работе протокола. Так, в частности, большинство протоколов разрабатывается с учётом наличия пассивного слушателя, способного перехватывать сообщения.

Появление самых простых протоколов датируется концом 1970-х, началом 1980-х годов. Вклад в их появление внесли такие специалисты, как Рональд Ривест, Ади Шамир, Роджер Нидхем, Майкл Шрёдер и многие другие. Брюс Шнайер приводит описание известных протоколов в своей книге «Прикладная Криптография».

Функции

Криптографический протокол имеет следующие функции:

  • Формирование ключей
  • Обмен ключами
  • Аутентификация сторон
  • Доказательство целостности и происхождения данных (ЭЦП)
  • Разделение ключей
  • Безопасные распределённые вычисления
  • Обеспечение конфиденциальности данных
  • Обеспечение невозможности отказа
  • Обеспечение целостности данных
  • Обеспечение целостности соединения
  • Разграничение доступа

Состав

Протокол делится на проходы (англ. pass) или циклы (англ. round), являющиеся интервалом времени активности только одного участника. В протоколах, рассчитанных на количество участников большее двух, при необходимости их синхронизации циклом называют период времени между двумя точками синхронизации.

Проход, в свою очередь, состоит из шагов (англ. step, action) — конкретных законченных действий, выполняемых участником.

Например:

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

Реализация протокола или даже теоретическое её описание для конкретных участников, каждый из которых имеет одну или несколько ролей, называется сеансом (англ. session). В другом сеансе протокола участники могут поменяться ролями и выполнять уже совсем другие функции.

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

Условные обозначения

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

  • Алиса, Боб (от англ. A, B) — отправитель сообщения и его получатель.
  • Карл, Клара, Чарли (от англ. C) — равноправная Алисе и Бобу третья сторона в случае её наличия.
  • Ева (от англ. eavesdropper) — пассивный криптоаналитик.
  • Меллори (от англ. malicious) — активный криптоаналитик.
  • Трент (от англ. trust) — доверенная сторона. Например, — удостоверяющий центр в протоколах проверки подписей.

Для записи примитивов принято использовать следующие обозначения:

  • M {displaystyle M} (от англ. message) — сообщение в исходном виде, открытая информация в том виде, в котором её способен прочесть любой участник протокола. То есть, под M {displaystyle M} может пониматься и исходный текст в прямом понимании или, например, массив бит, звук и так далее.
  • K {displaystyle K} (от англ. key) — ключ. Без дополнительных уточнений обычно обозначает секретный сеансовый ключ.
  • K A T {displaystyle K_{AT}} — общий между Алисой и Трентом секретный ключ (в случае симметричных криптосистем).
  • K A {displaystyle K_{A}} — открытый ключ Алисы (в случае асимметричных криптосистем).
  • L {displaystyle L} (от англ. lifetime) — время жизни примитивов. К примеру, ключа или сертификата.
  • E K ( . . . ) {displaystyle E_{K}(...)} (от англ. encrypt) — данные, зашифрованные на ключе K {displaystyle K} .
  • E B ( . . . ) {displaystyle E_{B}(...)} , E A ( . . . ) {displaystyle E_{A}(...)} — данные, зашифрованные на ключах Алисы и Боба соответственно.
  • S K ( . . . ) {displaystyle S_{K}(...)} (от англ. sign) — данные и соответствующая цифровая подпись на открытом ключе K {displaystyle K} .
  • T A {displaystyle T_{A}} , T B {displaystyle T_{B}} (от англ. timestamp) — метки времени от соответствующих участников. Часто используется в паре с L {displaystyle L}
  • R A {displaystyle R_{A}} , R B {displaystyle R_{B}} (от англ. random) — случайные числа, выбранные Алисой и Бобом соответственно.

Примеры использования обозначений:

  • E K B ( M ) {displaystyle E_{K_{B}}(M)} или просто E B {displaystyle E_{B}} — сообщение M {displaystyle M} , зашифрованное ключом Боба K B {displaystyle K_{B}} .
  • S A ( R A ) {displaystyle S_{A}(R_{A})} — случайное число R A {displaystyle R_{A}} , сгенерированное Алисой и ей же подписанное. То есть в сообщении будет и случайное число (открытым текстом), и электронная подпись этого числа.
  • S T ( A , K A , T T , L ) {displaystyle S_{T}(A,K_{A},T_{T},L)} — идентификатор и ключ Алисы, метка времени и срок жизни данной записи, всё вместе подписанное открытым ключом доверенного центра (Трента). То есть фактически сертификат ключа Алисы.

Классификация

Глобально протоколы можно разделить на две группы: примитивные и прикладные.

Примитивный криптографический протокол (англ. 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) Гарантирование того, что сообщение не является повторно отправленным. В зависимости от контекста, это может иметь либо смысл того, что сообщение было сгенерировано в данном сеансе, либо что сообщение было сгенерировано в течение известного промежутка времени. либо что сообщение не было принято ранее.
  • Аутентификация при рассылке по многим адресам или при подключении к службе подписки/уведомления:
    • G4 Неявная (скрытая) аутентификация получателя (англ. Implicit Destination Authentication) Протокол должен гарантировать, что к отправленной информации, многоадресному сообщению или групповому общению будут иметь доступ только те участники, которым разрешил отправитель.
    • G5 Аутентификация источника (англ. Source Authentication) Легитимные члены группы могут проверить подлинность источника и содержимого информации или группового сообщения. Сюда относятся случаи, когда члены группы не доверяют друг другу.
  • 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) Обнаружение криптографических возможностей и предпочтений участников, а также согласовывание параметров безопасности (как, например, стойкость ключей и шифры).
  • G12 Конфиденциальность (англ. Confidentiality, Secrecy) Гарантия, что сообщение или его часть не станут доступными или раскрытыми для неавторизованных участников и злоумышленника.
  • Анонимность:
    • G13 Защита личности от неучастников (несвязываемость) (англ. Identity Protection against Eavesdroppers) Злоумышленник, не являющийся правомерным участником протокола, не должен иметь возможности связать сообщение, которым обменивается одна сторона, с реальной личностью этой стороны.
    • G14 Защита личности от участников (англ. Identity Protection against Peer) Правомерный участник протокола не должен иметь возможности связать сообщение, переданное одной стороной, с реальной личностью этой стороны.
  • G15 (Ограниченная) защищённость от атак типа «отказ в обслуживании»
    • (англ. (Limited) Denial-of-Service Resistance) Устойчивость к DoS. Трудно проверить, так как протокол может быть подвержен DoS-атакам по разным причинам, наиболее распространённой из которых является потребление слишком большого количества ресурсов (памяти, вычислительной мощности), прежде чем участник аутентифицирует себя. Но существует множество других причин: среди прочего, протоколы могут быть уязвимы для атаки DoS на распределение памяти, вычислительную мощность.
  • G16 Инвариантность отправителя
    • (англ. Sender Invariance) Сторона получает уверенность в том, что источник сообщения остался тем же, что и тот, кто начал сообщение.
  • Невозможность отказа от ранее совершённых действий:
    • G17 Подотчётность (англ. Accountability) Гарантия, что действия участника могут быть однозначно отслежены.
    • G18 Доказательство источника (англ. Proof of Origin) Неоспоримое доказательство отправки сообщения.
    • G19 Доказательство получателя (англ. Proof of Delivery) Неоспоримое доказательство получения сообщения.
  • G20 Безопасное временное свойство (англ. Safety Temporal Property) Возможность использовать оператор когда-то в прошлом для описания отношений между раундами протокола. Например, если пользователь хочет слушать музыку на сервисе, когда-то в прошлом он должен был оплатить подписку.