Другой подход, достаточно часто используемый для хранения ключевой информации, состоит в шифровании ключей и хранении их в зашифрованном виде. Кроме этого, данный подход часто используют для распределения ключевой информации в криптографических сетях.
Необходимость в хранении и передаче ключевой информации, зашифрованной с помощью других ключей, привела к развитию концепции иерархии ключей.
Иерархия ключевой информации может включать множество уровней, однако, наиболее часто выделяют:
· главные ключи (мастер-ключи),
· ключи шифрования ключей,
· рабочие ключи (сеансовые).
Сеансовые ключи находятся на самом нижнем уровне и используются для шифрования данных. Когда эти ключи необходимо безопасным образом передать между узлами сети или безопасно хранить, их шифруют с помощью ключей следующего уровня – ключей шифрования ключей.
На верхнем уровне иерархии ключей располагается мастер-ключ. Этот ключ применяют для шифрования ключей шифрования, когда требуется безопасно хранить их на диске. Обычно в каждом компьютере используется только один мастер ключ, который содержится на внешнем носителе, как правило, защищенном от несанкционированного доступа.
|
|
Значение мастер- ключа фиксируется на длительное время (до нескольких недель или месяцев). Сеансовые ключи меняются намного чаще, например, при построении криптозащищенных туннелей их можно менять каждые 10-15 минут, либо по результатам шифрования заданного объема трафика (например, 1 Мб).
Распределение ключей является очень ответственным процессом в управлении ключами. Одним из основных требований к реализации этого процесса является сокрытие распределяемой ключевой информации.
Задача распределения ключей сводится к построению протокола распределения ключей, обеспечивающего:
1) взаимное подтверждение подлинности участников сеанса;
2) подтверждение достоверности сеанса для защиты от атак методом
повторов;
3) использование минимального числа сообщений при обмене ключами.
Вообще говоря, выделяют два подхода к распределению ключевой информации в компьютерной сети:
1. Распределение ключевой информации с использованием одного
либо нескольких центров распределения ключей.
2. Прямой обмен сеансовыми ключами между пользователями.
Распределение ключевой информации с использованием центров распределения ключей
Данный подход предполагает, что центру распределения ключей известны распределяемые ключи, в связи с чем, все получатели ключевой информации должны доверять центру распределения ключей.
Достоинством данного подхода является возможность централизованного управления распределением ключевой информацией и даже политикой разграничения доступа удаленных субъектов друг к другу.
|
|
Данный подход реализован в протоколе Нидхема-Шредера и базирующемся на нем протоколе аутентификации Kerberos. Распределение ключевой информацией и разграничение доступа основывается в данных протоколах на выдаче мандатов центром распределения ключей. Использование данных протоколов позволяет безопасно распределить сеансовые ключи даже в случае взаимного недоверия двух взаимодействующих сторон.
Прямой обмен сеансовыми ключами между пользователями
Для возможности использования при защищенном информационном обмене между противоположными сторонами криптосистемы с секретным ключом взаимодействующим сторонам необходима выработка общего секрета, на базе которого они смогут безопасно шифровать информацию или безопасным образом вырабатывать и обмениваться сеансовыми ключами. В первом случае общий секрет представляет собой сеансовый ключ, во втором случае – мастер-ключ. В любом случае, злоумышленник не должен быть способен, прослушивая канал связи, получить данный секрет.
Для решения проблемы выработки общего секрета без раскрытия его злоумышленником существует два основных способа:
· использование криптосистемы с открытым ключом для шифрования;
· использование протокола открытого распространения ключей Диффи-Хеллмана.
Реализация первого способа не должна вызывать вопросов. Рассмотрим более подробно реализацию второго способа.
Протокол Диффи-Хеллмана
Протокол Диффи-Хеллмана был первым алгоритмом работы с открытыми ключами (1976 г.). Безопасность данного протокола основана на трудности вычисления дискретных логарифмов [4].
Пусть пользователи A и B хотят выработать общий секрет. Для этого они выполняют следующие шаги.
Стороны A и B договариваются об используемом модуле N, а также о примитивном элементе g, , степени которого образуют числа от 1 до N -1.
1. Числа N и g являются открытыми элементами протокола.
2. Пользователи A и B независимо друг от друга выбирают собственные секретные ключи СКA и CKB (случайные большие целые числа, меньшие N, хранящиеся в секрете).
3. Пользователи A и B вычисляют открытые ключи ОКА и OKB на основании соответствующих секретных ключей по следующим формулам:
4. Стороны A и B обмениваются между собой значениями открытых ключей по незащищенному каналу.
5. Пользователи A и B формируют общий секрет K по формулам:
Пользователь A:
K = (OKB)CKA (mod N) = (gCKB)CKA (mod N) = gCKB.CKA (mod N).
Пользователь B:
K = (OKA)CKB (mod N) = (gCKA)CKB(mod N) = gCKA.CKB (mod N).
Ключ K может использоваться в качестве общего секретного ключа (мастер-ключа) в симметричной криптосистеме.
Пример 6.2.
Возьмем модуль N = 47 и примитивный элемент g = 23. Пусть пользователи A и B выбрали свои секретные ключи СКА = 12, СКВ = 33. Тогда,
В данном случае общий секрет будет иметь вид:
.
Алгоритм открытого распределения ключей Диффи - Хеллмана позволяет обойтись без защищенного канала для передачи ключей. Однако, необходима гарантия того, что получатель получил открытый ключ именно от того отправителя, от которого он его ждет. Данная проблема решается с помощью цифровых сертификатов и технологии ЭЦП.
Протокол Диффи - Хеллмана нашел эффективное применение в протоколе SKIP управления ключами. Данный протокол используется при построении криптозащищенных туннелей в семействе продуктов ЗАСТАВА.