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

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

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

Под участником (субъектом, стороной) протокола понимают не только людей, но и приложения, группы людей или целые организации. Формально участниками считают только тех, кто выполняет активную роль в рамках протокола. Хотя при создании и описании протоколов забывать про пассивные стороны тоже не стоит. Например, пассивный криптоаналитик формально не является участником протоколов, но многие протоколы разрабатываются с учётом защиты от таких «неучастников».[1]

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

Функции криптографических протоколов[править | править код]

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

Состав протокола[править | править код]

Протокол состоит из циклов (англ. round) или проходов (англ. pass). Цикл — временной интервал активности только одного участника. За исключением самого первого цикла протокола, обычно начинается приёмом сообщения, а заканчивается – отправкой.

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

Например:

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

Прошедшая в прошлом или даже просто теоретически описанная реализация протокола для конкретных участников называется сеансом. Каждый участник в рамках сеанса выполняет одну или несколько ролей. В другом сеансе протокола участники могут поменяться ролями и выполнять уже совсем другие функции.

Можно сказать, что протокол прескрептивно описывает правила поведения каждой роли в протоколе. А сеанс это дескриптивное описание (возможно теоретически) состоявшейся в прошлом реализации протокола. [1]

Запись протоколов[править | править код]

Для записи протоколов, связанных с реализацией функций за- щиты информации, не используют выражения вроде «участник с ролью «Отправитель»», а заменяют их на краткие обозначения вроде «отправитель» или используют общепринятые экземплификанты: Алиса, Боб, Клара, Ева и т.д. При этом используют следующие соглашения относительно участников протокола:

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

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

  • (от англ. message) — сообщение в исходном виде, открытый текст вне зависимости от кодировки. То есть под может пониматься и исходный текст в виде текста или, например, звука, либо уже некоторое число или массив бит, однозначно соответствующие этому сообщению.
  • (от англ. key) – некоторый ключ. Без дополнительных уточнений обычно обозначает секретный сеансовый ключ.
  • — общий секретный ключ между Алисой и Трентом (для симметричных криптосистем).
  • — открытый ключ Алисы (для асимметричных криптосистем).
  • (от англ. lifetime) — время жизни, например, сертификата.
  • (от англ. encrypt) — данные, зашифрованные на ключе .
  • , — данные, зашифрованные на ключах Алисы и Боба, соответственно.
  • (от англ. sign) — данные и соответствующая цифровая подпись на открытом ключе .
  • , (от англ. timestamp) — метки времени от соответствующих участников.
  • , (от англ. random ) — случайные числа, выбранные соответствующими участниками.

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

  • или просто — сообщение , зашифрованное ключом Боба .
  • — случайное число , сгенерированное Алисой и ей же подписанное. То есть в сообщении будет и случайное число (открытым текстом), и электронная подпись этого числа.
  • — идентификатор и ключ Алисы, метка времени и срок жизни данной записи, всё вместе подписанное открытым ключом доверенного центра (Трента). То есть фактически сертификат ключа Алисы. [1]

Классификация[править | править код]

1.Классификация по числу участников:

    • двусторонний;
    • трёхсторонний;
    • многосторонний.

2.Классификация по числу передаваемых сообщений:

    • интерактивный (есть взаимный обмен сообщениями);
    • неинтерактивный (только однократная передача).

3.Классификация по целевому назначению протокола:

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

Классификацию криптографических протоколов можно проводить также и по другим признакам:

  • по типу используемых криптографических систем:
    • на основе симметричных криптосистем;
    • на основе асимметричных криптосистем;
    • смешанные;
  • по способу функционирования:
    • интерактивный / неинтерактивный;
    • однопроходный / двух- / трёх- и т. д. проходный;
    • протокол с арбитром (протокол с посредником);
    • двусторонний / с доверенной третьей стороной (с центром доверия).

Групповые протоколы предполагают одновременное участие групп участников, например:

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

Примитивный криптографический протокол (primitive cryptographic protocol) — это криптографический протокол, который не имеет самостоятельного прикладного значения, но используется как базовый компонент при построении прикладных криптографических протоколов. Как правило, он решает какую-либо одну абстрактную задачу. Например, протокол обмена секретами, протокол привязки к биту, протокол подбрасывания монеты (по телефону).

Прикладной криптографический протокол (application cryptographic protocol) предназначен для решения практических задач обеспечения функций — сервисов безопасности с помощью криптографических систем. Следует заметить, что прикладные протоколы, как правило, обеспечивают не одну, а сразу несколько функций безопасности. Более того, такие протоколы, как IPsec, на самом деле являются большими семействами различных протоколов, включающими много разных вариантов для различных ситуаций и условий применения.

Примерами прикладных протоколов являются:

    • система электронного обмена данными;
    • система электронных платежей;
    • система электронной коммерции;
    • поддержка правовых отношений;
    • игровые протоколы.

Протоколы доказательства[править | править код]

Доказательство интерактивное (interactive proof) - осуществляется путём выполнения протокола с двумя участниками: доказывающий — убеждает проверяющего в истинности некоторого утверждения; проверяющий — либо принимает, либо отвергает доказательство. Характеризуется двумя условными вероятностями:

— если доказываемое утверждение верно, то доказательство должно быть верным с вероятностью, стремящейся к единице при увеличении числа повторений протокола;

— если же доказываемое утверждение ложно, то при увеличении числа повторений протокола вероятность правильности доказательства должна стремиться к нулю

Доказательство знания (proof of knowledge) — доказательство интерактивное, при котором доказывающий убеждает проверяющего в том, что он владеет секретной информацией, не раскрывая её. Протокол интерактивного доказательства должен учитывать возможность обмана со стороны обоих участников. Если участник A (доказывающий) на самом деле не знает доказываемого утверждения (либо от имени участника A выступает кто-либо другой), то B должен обнаружить факт обмана. Поэтому доказательство знания характеризуется двумя свойствами: полнотой и корректностью.

Задачи[править | править код]

  • Обеспечение различных режимов аутентификации
  • Генерация, распределение и согласование криптографических ключей
  • Защита взаимодействий участников
  • Разделение ответственности между участниками

Средства автоматизированного анализа[править | править код]

По принципам работы их можно сгруппировать в два основных класса:

  • Средства дедуктивного логического вывода. Использует дедуктивный подход, основанный на логической проверке корректности рассматриваемого протокола. Свойства формулируются как утверждения в рамках некоторой логики, и для их проверки ищется логический вывод этого утверждения. Применяется для доказательства корректности системы, того, что протокол действительно удовлетворяет определённым требованиям. Средства первого типа можно подразделить на три основные группы, в основе которых лежат соответственно: логика доверия и генерация теории; автоматическое доказательство теорем; логическое программирование.
  • Средства верификации. Основаны на использовании методов верификации, и прежде всего метода проверки на модели (model checking). По протоколу строится формальная модель — система переходов, состояниями которой являются множества высказываний о свойствах протокола. Затем она проверяется на удовлетворение некоторому свойству безопасности в каждом своем состоянии, которого можно достичь, выходя из определенного множества начальных состояний. Основные трудности такого подхода связаны с бесконечностью числа состояний моделирующей системы, что требует необходимости сведения к конечной поведенческой модели. С другой стороны, в результате строится контрпример, состоящий из траектории, ведущей к опасному состоянию системы, называемому состоянием атаки, тем самым явно указывается атака на протокол.

Разновидности атак на протоколы[править | править код]

  • Атаки, направленные против криптографических алгоритмов
  • Атаки против криптографических методов, применяемых для реализации протоколов
  • Атаки против самих протоколов (активные или пассивные)

Известные атаки на криптографические протоколы[править | править код]

  1. Подмена (impersonation) — попытка подменить одного пользователя другим. Нарушитель, выступая от имени одной из сторон и полностью имитируя ее действия, получает в ответ сообщения определенного формата, необходимые для подделки отдельных шагов протокола. Методы противодействия состоят в: — сохранении в тайне от противника информации, определяющей алгоритм идентификации; — использование различных форматов сообщений, передаваемых на разных шагах протокола; — вставка в них специальных идентификационных меток и номеров сообщений. В протоколах с использованием третьей стороны возможны атаки, основанные на подмене доверенного сервера. Например, одна из сторон, имеющая доверительные отношения с сервером, выступает от его имени, подменяет его трафик обмена с другими сторонами и в результате получает возможность раскрывать значения генерируемых центром ключей. Эта атака может быть успешной для протоколов, в которых аутентификация при доступе к серверу основана только на идентификаторах сторон и случайных числах, генерируемых при каждом взаимодействии. Для защиты от таких атак применяют средства привязки ключей не к одной, а к обеим взаимодействующим сторонам путем передачи обоих идентификаторов в зашифрованном виде.
  2. Повторное навязывание сообщения (replay attack) — повторное использование ранее переданного в текущем или предыдущем сеансе сообщения или какой-либо его части в текущем сеансе протокола. Например, повторная передача информации ранее проведенного протокола идентификации может привести к повторной успешной идентификации того же самого или другого пользователя. В протоколах передачи ключей данная атака часто применяется для повторного навязывания уже использованного ранее сеансового ключа — атака на основе новизны (freshness attack). Методы противодействия состоят в обеспечении целостности сеанса и невозможности вставки в него лишних сообщений. Для этого используется: — техника типа «запрос — ответ»; — вставка в передаваемые сообщения временных меток, случайных чисел или возрастающих последовательностей чисел.
  3. Еще один тип подобных атак связан с обратной передачей адресату ранее переданных им сообщений и получил название атака отражением (reflection attack). Часто атаки данного типа относят к классу атак с повторным навязыванием сообщения. Для защиты от таких атак протоколы специально делают несимметричными, включая в зашифрованные сообщения идентификаторы сторон либо изменяя процедуры так, чтобы стороны должны были выполнять разные действия, вводят в протокол идентификационную информацию, используют различные ключи для приема и передачи сообщений.
  4. Задержка передачи сообщения (forced delay) — перехват противником сообщения и навязывание его в более поздний момент времени. Это также разновидность атаки с повторным навязыванием сообщения. Методы противодействия включают использование случайных чисел совместно с ограничением временного промежутка для ответа, использование временных меток.
  5. Комбинированная атака (interleaving attack) — подмена или другой метод обмана, использующий комбинацию данных из ранее выполненных протоколов, в том числе протоколов, ранее навязанных противником. Метод противодействия состоит в обеспечении целостности сеансов протоколов и отдельных сообщений.
  6. Специальный частный случай предыдущей атаки, в котором противник специально открывает одновременно несколько параллельных сеансов с целью использования сообщений из одного сеанса

Свойства безопасности протоколов[править | править код]

Свойств, характеризующих безопасность криптографического протокола, также достаточно много. Обычно свойства протоколов, характеризующие их стойкость к различным атакам, формулируют как цели (goals) или требования к протоколам. Трактовка этих целей со временем меняется и уточняется. Наиболее полное и современное толкование этих целей дается в документах международной организации IETF. Под свойствами (целями, требованиями) безопасности в документах IETF в настоящее время понимаются следующие 20 целей, сгруппированные в 10 групп:

  1. Аутентификация (нешироковещательная):
    • G1 — Аутентификация субъекта
    • G2 — Аутентификация сообщения
    • G3 — Аащита от повтора
  2. Аутентификация при рассылке по многим адресам или при подключении к службе подписки/уведомления:
    • G4 — Неявная (скрытая) аутентификация получателя
    • G5 — Аутентификация источника
  3. G6 — Авторизация (доверенной третьей стороной)
  4. Свойства совместной генерации ключа:
    • G7 — Аутентификация ключа
    • G8 — Аодтверждение правильности ключа
    • G9 — Аащищенность от чтения назад
    • G10 — Аормирование новых ключей
    • G11 — Защищенная возможность договориться о параметрах безопасности
  5. G12 — Конфиденциальность
  6. Анонимность:
    • G13 — Защита идентификаторов от прослушивания (несвязываемость)
    • G14 — Защита идентификаторов от других участников
  7. G15 — Ограниченная защищенность от атак типа «отказ в обслуживании»
  8. G16 — Инвариантность отправителя
  9. Невозможность отказа от ранее совершенных действий:
    • G17 — Подотчётность
    • G18 — Доказательство источника
    • G19 — Доказательство получателя
  10. G20 — Безопасное временное свойство

Аутентификация субъекта (G1)[править | править код]

(Аутентификация сторон, англ. Peer Entity Authentication) — проверка с подтверждением подлинности одной из сторон наличия или полномочий (посредством представленных доказательств и/или документов) идентичности второй стороны, участвующей в выполнении протокола, а также того, что она действительно принимает участие в выполнении текущего сеанса протокола.

Аутентификация сообщения (G2)[править | править код]

(англ. Message authentication) — обеспечение аутентификации источника данных и целостности передаваемого сообщения. Аутентификация источника данных (Data Origin Authentication) означает, что протокол должен обеспечивать средства гарантии того, что полученное сообщение или часть данных были созданы некоторым участником в некоторый (как правило, неопределенный) момент времени, предшествующий получению сообщения, и что эти данные не были искажены или подделаны, но без предоставления гарантий однозначности и своевременности. Поскольку уверенность в том, что данные были созданы некоторым участником, без гарантии того, что они не были модифицированы, не представляет практического интереса, то обычно полагают, что требование аутентификации сообщения влечет требование его целостности.

Защита от повтора (G3)[править | править код]

(англ. Replay Protection) — гарантирование одним участником того, что аутентифицированное сообщение не является старым. В зависимости от контекста, это может иметь разный смысл: — сообщение было сгенерировано в данном сеансе протокола; — сообщение было сгенерировано в течение известного промежутка времени; — сообщение не было принято ранее.

Аутентификация источника (G5)[править | править код]

(англ. Source Authentication) — законные группы участников должны быть способны аутентифицировать источник и содержание информации или групповой коммуникации.

Аутентификация ключа (G7)[править | править код]

(англ. Key Authentication) — это свойство предполагает, что один из участников получает подтверждение того, что никакой другой участник, кроме заранее определенного второго участника (и, возможно, других доверенных участников), не может получить доступа ни к одному секретному ключу.

Подтверждение правильности ключа (G8)[править | править код]

(англ. Key Confirmation, Key Proof of Possession) — один из участников получает подтверждение того, что второй участник (возможно, неопределенный) действительно обладает конкретным секретным ключом (либо имеет доступ ко всем ключевым материалам, необходимым для его вычисления).

Защищенность от чтения назад / Совершенная секретность в будущем (G9)[править | править код]

(англ. Perfect Forward Secrecy (PFS)) — протокол обладает этим свойством, если компрометация долговременных ключей не приводит к компрометации старых сеансовых ключей.

Конфиденциальность (G12)[править | править код]

(англ. Confidentiality, Secrecy) — свойство, состоящее в том, что специфический набор данных (обычно посылаемый или полученный как часть «защищенного» сообщения, а также сформированный на основе данных, полученных в результате обмена) не станет доступным или раскрытым для неавторизованных субъектов или процессов, а останется неизвестным противнику. Мы принимаем соглашение, что секретность сеансового ключа, сгенерированного в результате процедуры открытого распределения ключей, рассматривается не здесь, а в аутентификации ключа (G5). Заметим, что секретность долговременного ключа, используемого в протоколе, не рассматривается как целевое свойство безопасности протокола, а относится к исходным предположениям.[2]

См. также[править | править код]

[2]

Примечания[править | править код]

  1. 1 2 3 Владимиров С.М. и др. Учебное пособие по защите информации кафедры радиотехники и систем управления МФТИ.
  2. 1 2 А. В. Черемушкин. [http://www.mathnet.ru/php/archive.phtml?wshow=paper&jrnid=pdm&paperid=141&option_lang=rus КРИПТОГРАФИЧЕСКИЕ ПРОТОКОЛЫ: ОСНОВНЫЕ СВОЙСТВА И УЯЗВИМОСТИ]. — 2009.

Ссылки[править | править код]