Протокол Диффи-Хеллмана
Необходимость в хранении и передаче ключевой информации, зашифрованной с помощью других ключей, привел к развитию концепции иерархии ключей.
Иерархия ключевой информации может включать множество уровней, однако, наиболее часто выделяют главные ключи (мастер-ключи), ключи шифрования ключей и рабочие ключи (сеансовые).
Сеансовые ключи находятся на самом нижнем уровне и используются для шифрования данных. Когда эти ключи необходимо безопасным образом передать между узлами сети или безопасно хранить, их шифруют с помощью ключей следующего уровня – ключей шифрования ключей.
На верхнем уровне иерархии ключей располагается мастер-ключ. Этот ключ применяют для шифрования ключей шифрования, когда требуется безопасно хранить их на диске. Обычно в каждом компьютере используется только один мастер ключ, который отчуждается на внешнем носителе, как правило, защищенном от несанкционированного доступа, чтобы раскрыть значение этого ключа было невозможно (смарт-карта, e-Token и т.п.). Значение мастер-ключа фиксируется на длительное время (до нескольких недель или месяцев). Сеансовые ключи меняются намного чаще, например, при построении криптозащищенных туннелей их можно менять каждые 10-15 минут, либо по результатам шифрования заданного объема трафика (например, 1 Мб).
Для возможности использования при защищенном информационном обмене между противоположными сторонами криптосистемы с секретным ключом, взаимодействующим сторонам необходима выработка общего секрета, на базе которого они смогут безопасно шифровать информацию или безопасным образом вырабатывать и обмениваться сеансовыми ключами. В первом случае общий секрет представляет собой сеансовый ключ, во втором случае – мастер-ключ. В любом случае, злоумышленник не должен быть способен, прослушивая канал связи, получить данный секрет.
Для решения проблемы выработки общего секрета без раскрытия его злоумышленником существует два основных способа:
1. использование криптосистемы с открытым ключом для шифрования и передачи секретного ключа симметричной криптосистемы;
2. использование протокола открытого распространения ключей Диффи-Хеллмана.
Реализация первого способа не должна вызывать вопросов. Рассмотрим более подробно реализацию второго способа.
Протокол Диффи-Хеллмана был первым алгоритмов работы с открытыми ключами (1976 г.). Безопасность данного протокола основана на трудности вычисления дискретных логарифмов в конечном поле.
Пусть пользователи A и B хотят выработать общий секрет. Для этого они выполняют следующие шаги.
1. Стороны A и B договариваются об используемом модуле N, а также о примитивном элементе g, , степени которого образуют числа от 1 до N-1, то есть во множестве присутствуют все числа от 1 до N-1. Числа N и g являются открытыми элементами протокола.
2. Пользователи A и B независимо друг от друга выбирают собственные секретные ключи СКA и CKB (случайные большие целые числа, меньшие N, хранящиеся в секрете).
3. Пользователи A и B вычисляют открытые ключи ОКА и OKB на основании соответствующих секретных ключей по следующим формулам:
4. Стороны A и B обмениваются между собой значениями открытых ключей по незащищенному каналу.
5. Пользователи A и B формируют общий секрет K по формулам:
Пользователь A:
Пользователь B:
Ключ K может использоваться в качестве общего секретного ключа (мастер-ключа) в симметричной криптосистеме.
Пример 8.1.
Возьмем модуль N=47 и примитивный элемент g=23. Пусть пользователи A и B выбрали свои секретные ключи СКА=12, СКВ=33. Тогда,
В данном случае общий секрет .
Алгоритм открытого распределения ключей Диффи-Хеллмана позволяет обойтись без защищенного канала для передачи ключей. Однако, необходима гарантия того, что получатель получил открытый ключ именно от того отправителя, от которого он его ждет. Данная проблема решается с помощью цифровых сертификатов и технологии ЭЦП.
Протокол Диффи-Хеллмана нашел эффективное применение в протоколе SKIP управления ключами. Данный протокол используется при построении криптозащищенных туннелей в семействе продуктов ЗАСТАВА.
Выводы
Удаленная аутентификация пользователей требует использования протоколов, не передающих в открытом виде по сети закрытую информацию. В связи с этим, в данном случае должны использоваться протоколы, отличные от локальной аутентификации.
Для выполнения удаленной аутентификации могут быть использованы протоколы, использованные в данном разделе.
Вопросы для самоконтроля
1. Опишите подход к аутентификации на основе сертификатов.
2. Опишите процедуру рукопожатия.
3. В чем заключаются функции сеансовых ключей и мастер-ключей?
4. Какие задачи должны решаться на этапе распределения ключей?
5. Опишите протокол Диффи-Хеллмана.
Дата добавления: 2020-10-14; просмотров: 452;