Криптографические протоколы — это абстрактные или конкретные протоколы, которые включают совокупность криптографических алгоритмов, часто представляющих собой последовательность криптографических примитивов.
Общие сведения о протоколах
Протоколом является последовательность шагов, которые могут предпринимать две или более сторон для совместного решения определенной задачи. Необходимо отметить, что каждый шаг выполняется строго по очереди и ни один из них не может быть осуществлен до того, как будет завершен предыдущий шаг.
Помимо этого, все протоколы предполагают, что участвуют в процессе две стороны. Кроме того, протокол в обязательном порядке служит, для того чтобы достигнуть какую-либо цель, и никак иначе. Протоколы обладают следующими отличительными чертами:
- Все участники протокола должны быть заранее оповещены о действиях, которые им нужно будет выполнить.
- Каждый участник протокола обязан следовать его правилам на добровольной основе, то есть, без принуждения.
- Нужно, чтобы протокол обладал только однозначным толкованием, а его шаги должны быть абсолютно однозначно определены и не должны допускать возможности их неверного толкования.
- Протокол обязан описать реакцию участников на все ситуации, которые способны случиться в процессе его реализации. Другими словами, недопустимой считается ситуация, для которой протоколом не определены соответствующие действия.
Криптографические протоколы и атаки на них
Криптографическим протоколом является протокол, основанный на криптографическом алгоритме. Тем не менее целью криптографического протокола часто выступает не только сохранение информационных данных в тайне от посторонних пользователей. Участниками криптографического протокола могут являться близкие друзья, у которых нет никаких секретов, а могут быть и непримиримые враги, каждый из которых не желает сообщать другому секретную информацию.
Однако им может потребоваться подписать совместный договор или удостоверить свою личность. В таком случае криптография нужна, чтобы не допустить или выявить подслушивание посторонним лицом, а также предотвратить возможное мошенничество. По этой причине часто криптографический протокол необходим в тех случаях, когда его участники не должны осуществить или узнать больше того, что предписывает данный протокол.
К числу функций криптографического протокола относятся следующие действия:
- Выполнение аутентификации источника данных.
- Осуществление аутентификации участвующих сторон.
- Обеспечение конфиденциальности информационных данных.
- Обеспечение невозможности отказа.
- Обеспечение невозможности отказа с доказательством получения.
- Обеспечение невозможности отказа с доказательством источника.
- Обеспечение целостности данных.
- Целостность соединения без восстановления.
- Реализация целостности соединения с восстановлением.
- Осуществление разграничения доступа.
Криптографические протоколы могут быть классифицированы следующим образом:
- Протоколы, которые предназначены для шифрования и дешифрования.
- Протоколы, которые предназначены для электронной цифровой подписи (ЭЦП).
- Протоколы, которые предназначены для идентификации (аутентификации).
- Протоколы, которые предназначены для аутентифицированного распределения ключей.
Криптографические протоколы предназначены для решения следующих задач:
- Для обеспечения разных режимов аутентификации.
- Для генерации, распределения и согласования криптографических ключей.
- Для защиты взаимодействий участников.
- Для разделения ответственности среди участников.
Наиболее известные атаки, предпринимаемые на криптографические протоколы:
- Атака, которая состоит в подмене (impersonation), то есть, это попытка подмены одного пользователя другим. Нарушители выдают себя за одну из сторон и стараются в полной мере имитировать ее действия. При этом они получают в ответ сообщения заданного формата, требуемые для подделки различных шагов протокола. Для защиты от подобных атак используют средства привязки ключей не к одной, а к обеим взаимодействующим сторонам путем трансляции обоих идентификаторов в зашифрованном формате.
- Атака, которая состоит в повторном навязывании сообщения (replay attack), то есть, это повторное использование раньше отправленного в текущем или предыдущем сеансе сообщения или какого-нибудь его фрагмента в текущем сеансе протокола. В протоколах, передающих ключи, подобная атака часто используется для повторного навязывания уже применявшегося раньше сеансового ключа, то есть, атака на основе новизны (freshness attack). Способы противодействия заключаются в обеспечении целостности сеанса и отсутствии возможности вставить в него лишние сообщений.
- Обратная передача адресату раньше передаваемых им сообщений. Она получила наименование атака отражением (reflection attack). Иногда атаки этого типа причисляют к классу атак с повторным навязыванием сообщения. Для организации защиты от подобных атак протоколы следует формировать как несимметричные, вставляя в зашифрованные сообщения идентификаторы сторон или меняя процедуры таким образом, что стороны обязаны были исполнять разные действия, а также можно ввести в протокол идентификационную информацию, использовать разные ключи для приема и передачи сообщений.
- Атака, которая состоит в задержке передачи сообщения (forced delay), то есть, противник перехватывает сообщение и навязывает его в более поздний момент времени. Эту атаку тоже можно считать разновидностью атаки с повторным навязыванием сообщения. Методики противодействия заключаются в использовании случайных чисел совместно с ограничением временного периода для ответа, а также в использовании временных меток.
- Комбинированный тип атаки (interleaving attack), то есть, подмена или другая методика обмана, использующая комбинацию данных из раньше исполненных протоколов. Метод противодействия заключается в обеспечении целостности сеансов протоколов.