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

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

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

Понятие криптографического протокола[править | править вики-текст]

Коммуникационный протокол устанавливает последовательность действий участников при передаче информации или информационном обмене. Обычный коммуникационный протокол обеспечивает установку сеанса, выбор маршрута, обнаружение искажений и восстановление передаваемой информации и т. п. Безопасность протокола выражается в обеспечении гарантий выполнения таких свойств, характеризующих безопасность, как доступность, конфиденциальность, целостность и др. На системном языке говорят о функциях, выполняемых системой безопасности, либо о предоставляемых ею сервисах. Чтобы не путать с обычным математическим понятием функции, будем в подобных случаях говорить о функциях-сервисах. Протокол, обеспечивающий поддержку хотя бы одной из функций-сервисов безопасности, называется защищенным или, точнее, протоколом обеспечения безопасности (security protocol). Защитные механизмы либо дополняют, либо встраиваются в коммуникационный протокол.

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

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

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. Специальный частный случай предыдущей атаки, в котором противник специально открывает одновременно несколько параллельных сеансов с целью использования сообщений из одного сеанса

Требования к безопасности протокола[править | править вики-текст]

  1. Аутентификация (нешироковещательная):
    • аутентификация субъекта
    • аутентификация сообщения
    • защита от повтора
  2. Аутентификация при рассылке по многим адресам или при подключении к службе подписки/уведомления:
    • неявная (скрытая) аутентификация получателя
    • аутентификация источника
  3. Авторизация (доверенной третьей стороной)
  4. Свойства совместной генерации ключа:
    • аутентификация ключа
    • подтверждение правильности ключа
    • защищенность от чтения назад
    • формирование новых ключей
    • защищенная возможность договориться о параметрах безопасности
  5. Конфиденциальность
  6. Анонимность:
    • защита идентификаторов от прослушивания (несвязываемость)
    • защита идентификаторов от других участников
  7. Ограниченная защищенность от атак типа «отказ в обслуживании»
  8. Инвариантность отправителя
  9. Невозможность отказа от ранее совершенных действий:
    • подотчётность
    • доказательство источника
    • доказательство получателя
  10. Безопасное временное свойство

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

[1]

Ссылки[править | править вики-текст]

  • А. В. Черемушкин. КРИПТОГРАФИЧЕСКИЕ ПРОТОКОЛЫ: ОСНОВНЫЕ СВОЙСТВА И УЯЗВИМОСТИ.