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

Криптографический протокол (англ. 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]

                Примечания

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

                Ссылки