Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Петров А.А. Комп без-ть

.pdf
Скачиваний:
39
Добавлен:
28.03.2016
Размер:
16.03 Mб
Скачать

Протоколы распределения и управления ключевой информацией

131

К сожалению, этот протокол унаследовал все уязвимые точки ориги­ нального протокола Диффи-Хэлмана, которые, в свою очередь, могут быть устранены с помощью доработок этого же протокола.

Ключевой транспорт, основанный на симметричном шифровании и использующий третью сторону

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

центр распределения ключей (К О С ), непосредственно занимающий­ ся доставкой сеансового ключа;

центр трансляции ключей (К Т О ), где с помощью перешифрования сеансовый ключ одной стороны становится доступным для другой сто­ роны.

Ярким представителем подобного семейства схем распределения клю ­ чей является протокол КегЬегоз, который наиболее часто применяется на практике (речь об этом протоколе пойдет позже).

В данной главе мы остановимся на рассмотрении двух протоколов: про­ токола распределения ключей Нидхэма и Шредера и протокола 01жауКеез.

Протокол распределения ключей Нидхэма и Ш редера имеет долгую историю и за все время существования для устранения появляющихся уязвимостей не раз подвергался многочисленным преобразованиям, тем не менее его различные модификации широко используются на практике. Для работы этот механизм требует наличия КХЮ (обозначим его как 3), с которым взаимодействуют участники А и В, желающие выработать об­ щий сеансовый ключ.

Протокол имеет следующую структуру:

А - 5 :А ,В ,]Я а

А*—3: Екав(На, В, к, Екь5(к, А ))

А-*В : ЕКЬ8(к, А )

А4—В: Ек(Иь)

А- В : Ек(И ь - 1),

где Ыа и - случайные числа, выбранные А и В соответственно;

5*

132Аспекты создания и применения криптографических протоколов

Ка8 и К Ьзсекретные симметричные ключи, предварительно распределен­ ные участниками А и В соответственно с КОС;

Е- симметричное шифрование;

К- сеансовый ключ.

Данный протокол наряду с распределением ключей реализует аутентифи­

кацию пользователей А и В при помощи четвертого и пятого сообщения. Основная уязвимость данного протокола заключается в следующем, что В не может узнать, что к до этого не использовался, а это критично при ком­ прометации к. В данном случае злоумышленник имеет возможность рас­ пределить с В скомпрометированный секретный ключ.

Протокол О ^ау-Кеез построен с использованием К О С и путем переда­ чи четырех сообщений для распределения сеансового ключа и обеспечения аутентификации передаваемых сообщений, содержащих ключи. Однако наряду с предоставлением гарантий уникальности ключа описываемый протокол не обеспечивает аутентификации участников и подтверждения приема ключа. Протокол имеет следующую структуру:

А - 5 :

М, А, В, ЕКаз (Ыа, М, А, В) .

В— 3:

М, А, В, Екьз(Ма, М, А, В), ЕКЬз(Мь, М, А, В)

В- 3 : ЕКаз(Ыа, к), ЕКЬ5(Н ы к)

А- В : Е Ка8( К - 1 , к )

Все обозначения здесь совпадают с обозначениями из предыдущего протокола, а М - случайное число, служащее идентификатором обмена. Если проверка всех передаваемых сообщений прошла успешно, то гаранти­ руется, что к является уникальным. Данный протокол может быть расши­ рен с помощью добавления пятого сообщения, при этом четвертое сообще­ ние может быть дополнено значениями, демонстрирующими знание В относительно случайных чисел >1а и (например, Ек(Ма, N 1,)), тогда пятое сообщение будет иметь следующий вид: А — В: Ек(Мь).

Соглашения о ключах, основанные на симметричных алгоритмах

В данном разделе речь пойдет о ключевых соглашениях, построенных на основе использования симметричных алгоритмов шифрования и схем предварительного распределения ключей, которые отчасти похолси на про­ токолы Диффи-Хэлмана с фиксированной экспонентой.

Системой распределения ключей будем называть метод, с помощью ко­ торого в процессе инициализации системы доверенный сервер либо служ­ ба создает и распределяет секретные данные, которые в дальнейшем могут быть использованы для генерации ключей каждой пары абонентов.

Протоколы распределения и управления ключевой информацией

133

Подобная система распределения ключей для фиксированного ключа парной связи будет выступать в роли схемы предварительного распределе­ ния. Примером построения системы с распределением ключей может слу­ жить следующая простая схема: доверенная служба выбирает для каждой пары пользователей (будем считать, что всего пользователей п) отдель­ ный ключ и для каждого пользователя высылает безопасным способом

п - 1 ключей, пронумерованных соответствующим способом. Это может

быть строка матрицы размером пХп (столбцы и строки матрицы обозначе­ ны номерами абонентов сети секретной связи и на пересечении строки 1

и столбца ] находится ключ парной связи 1-го абонента с фм), в которой ко­

личество строк совпадает с количеством абонентов в сети. Такой способ

обеспечивает совершенную безопасность (в теоретико-информационном смысле), но практическое применение данного метода связано с необхо­ димостью организационно-технического обеспечения хранения и ис­ пользования носителей информации, на которых записаны данные стро­ ки. В качестве таких носителей могут использоваться гибкие магнитные диски, смарт-карты, ПэисЬ т е т о г у и т.д.

В качестве примера рассмотрим схему Блома (В1ош), с помощью кото­ рой может быть распределено ] ключей, гд е] < п -2 (п - количество або­

нентов в сети). Данная схема не является интерактивной, пользователю нужно только получить свой номер в сети 1 (1 < К п), который будет иден­ тифицировать используемый данным абонентом ключ. В распределенных системах номера абонентов могут состоять, например, из номера сети, номера абонента в сети и серии ключей. Далее каждый пользователь по­ лучает безопасным способом нужную информацию, на основе которой он в дальнейшем вырабатывает ключи парной связи.

Результатом работы схемы для каждой пары абонентов А* и А -} будет сек­

ретный ключ парной связи Кц длиной т бит. Протокол начинается с того, что опубликовывается генератор матрицы С размером пхк, которая содер­ жит элементы конечного поля Еч в виде М БЗ-кодов. Далее доверенная служба 3 создает секретную симметричную матрицу размером кхк над по­ лем Рч. 3 передает каждому пользователя А; секретный ключ Зь являющий­ ся 1-ой строкой матрицы 3 = (П С )3. Пользователи А |и А; вычисляют об­

щий ключ Ку = длиной т бит, где т = 1§(ц). Используя 3; и столбец] из

С, вычисляет для данной пары пользователей симметричную матрицу К = (Б С )3С; применяя 3] и столбец I из С, А,- вычисляет точно такую же матрицу К.

Подобные схемы используются в небольш их корпоративных сетях, где есть возможность оперативного предварительного обмена секретной

134 Аспекты создания и применения криптографических протоколов

ключевой информацией. Соответственно в глобальных сетях передачи

данных эти схемы неприменимы.

Ключевой транспорт, основанный на асимметричном шифровании

Ключевой транспорт, основанный на асимметричном шифровании, позво­ ляет одной стороне, выбравшей симметричный ключ, передать его второй стороне, используя зашифрование на открытом ключе. В рамках данного подхода реализуется также аутентификация инициатора (на основе рас­ шифровывания на секретном ключе), но для него не обеспечивается аутен­ тификация и подтверждение приема ключа. Дополнительные гарантии безопасности могут быть получены при помощи дополнительных сообще­ ний, ЭЦ П и симметричного шифрования в дополнение к ЭЦП. Аутенти­ фикация в этих схемах может быть реализована как с использованием ЭЦП, так и без таковой и обеспечивает:

аутентификацию участников при помощи шифрования на открытых ключах;

аутентификацию источника сообщений при помощи цифровой подписи.

Ключевой транспорт, основанный на асимметричных алгоритмах и не использующий ЭЦП

Рассматривая схемы распределения ключей данного типа, начнем с прото­ кола Нидхама и Шродера, основанного на использовании открытых клю­ чей. В данном протоколе кроме взаимного распределения симметричных ключей (результирующий ключ получается путем вычисления односто­ ронней функции от тех секретных данных, которые были распределены в ходе работы протокола) обеспечивается взаимная аутентификация учас­ тников и аутентификация ключей. До начала работы протокола должна быть реализована структура открытых ключей, которые должны быть дос­ тупны надлежащим образом участникам распределения ключевой инфор­ мации (построение архитектур с открытыми ключами будет рассмотрено позже). Таким образом, предварительно требуется распределить только от­ крытые ключи участников. В ходе протокола выполняются следующие шаги:

1.Участник А выбирает свою часть секретного ключа к! и посылает учас­ тнику В следующее сообщение: АШ : Р в(к 1, А ), где Р в обозначает зашифрование на открытом ключе участника В.

2.Участник В расшифровывает полученное сообщение, вырабатывает свою часть сеансового ключа к2 и отправляет участнику А следующее сообщение: АаВ: Р д ^ , к2), где к! используется для аутентификации участника В.

Протоколы распределения и управления ключевой информацией

135

3.После расшифрования полученного сообщения участник А проверя­ ет значение к! на предмет совпадения с отправленным в первом сооб­ щении и посылает следующее сообщение: А — В: Р в(к 2), которое слу ­ жит для аутентификации участника А.

4.После расшифрования полученного сообщения В проверяет значение к2. По окончании протокола А и В могут выработать общий сеансо­ вый ключ при помощи Дкь к2).

Данный протокол может быть модифицирован добавлением случайных чисел 1'! и г2, созданных участниками А и В соответственно. В этом случае протокол будет иметь вид:

А— В: Р в(к!, А, г4)

А— В: Р А(к 2, гь г2)

А— В: г2

Ключевой транспорт, совмещающий использование асимметричного шифрования с ЭЦП

На практике, кроме секретности передаваемой ключевой информации, обычно требуется обеспечить аутентификацию источника, в таких случа­ ях совместно используется асимметричное шифрования и ЭЦП. Точно так же, как и для шифрования на асимметричных алгоритмах, использование ЭЦП требует реализации процедур предварительного распределения от­ крытых ключей проверки подписи. Существует несколько разновидностей совместного использования зашифрования на открытом ключе и генера­ ции ЭЦП, а именно:

сначала ключ подписывается, затем он зашифровывается на открытом ключе;

сначала ключ подписывается, затем зашифровывается неподписанный ключ на открытом ключе (данный подход является безопасным только при определенных обстоятельствах, о которых будет сказано позже);

сначала ключ зашифровывается на открытом ключе, затем подписы­ вается зашифрованный ключ (о уязвимостях данного подхода уже го­ ворилось);

использование симметричных алгоритмов в добавление к асимметрич­ ному шифрованию и ЭЦ П (данный подход будет обсуждаться в рам­ ках так называемых гибридных схем распределения ключей).

Далее в добавление к уже применяемым символам будем использовать следующие обозначения:

5А(у ) - генерация подписи на секретном ключе участника А;

Рв(у) ~ зашифрование на открытом ключе участника В;

К - сеансовый ключ.

136 Аспекты создания и применения криптографических протоколов

Зашифрование подписанного ключа

А-+В: Рв(к, *А, 3А(В, к, Ц ))

Использовать метку времени (Ц ) необязательно, ее присутствие необ­ ходимо только для обеспечения своевременности передаваемой информа­ ции. Негативные моменты в применении данного подхода заключаются в следующем: если данные имеют большую длину, зашифрование на от­ крытом ключе будет неэффективно с вычислительной точки зрения.

Независимое зашифрование и генерация подписи

Этот подход применяется в случае, если ЭЦП не позволяет злоумышлен­ нику получить информацию об открытых данных, например, если генера­ ция подписи применяется к хэш-коду открытых данных. Тем не менее криптоаналитик, вероятно, сможет получить открытую информацию (или часть открытой информации) на основе подписи (даже в случае использо­ вания хэш-функции). В общем случае данный подход может быть реали­ зован передачей следующего сообщения:

А —►В: Рв(к, <*), 3А(В, к, Ц )

Подписание зашифрованного ключа

А —»-В: 1а , Р в(А, к), 3А(В, РВ(А, к))

Зашифрование параметра А обеспечивает аутентификацию отправите­ ля данного сообщения. В случае его отсутствия злоумышленник сможет от чужого имени послать данное сообщение В. Подобный подход, несмот­ ря на некоторые уязвимости, получил широкое практическое распростра­ нение в связи с его использованием в рекомендациях Х.509 (раздел стро­ гой аутентификации).

Эти рекомендации принадлежат к классу аутентификационного распре­ деления ключей. Как уже говорилось, строгая аутентификация подразде­ ляется на несколько типов: с передачей одного сообщения, с передачей двух сообщений и с передачей трех сообщений. Наиболее распространен­ ной является аутентификация с обменом двумя сообщениями. В ходе ра­ боты данного варианта Х.509 протокола обеспечивается:

идентификация А и гарантия того, что принятые В данные были дей­ ствительно созданы;

гарантия того, что полученные В данные были действительно предназ­ начены для него;

гарантия того, что принятые данные переданы в течение текущего се­ анса обмена информацией и ранее не передавались;

взаимное согласование и распределение выбранного ключа.

Протоколы распределения и управления ключевой информацией

137

Перед началом работы протокола каждая сторона должна предваритель­ но выполнить процедуры выработки и распределения открытого и секрет­ ного ключа для шифрования и ЭЦ П , а также процедуры сертификации открытых ключей. Протокол состоит из следующих шагов:

1.Участник А вырабатывает метку времени Ц, случайное число гА, за­ шифрованную на открытом ключе участника В часть сеансового клю­ ча кь а также дополнительно может выбрать данные для проведения

аутентификации источника сообщения «За^ц. После чего оправляет­ ся следующее сообщение: А -»В : сегЦ, Э А, $А( 0 А), где сегЦ - серти­ фикат открытых ключей А для зашифрования и генерации подписи,

О а = Ц а>га, В, б а ^ , Р в(к 1» .

2.Участник В производит проверку сегЦ (подпись центра сертифика­ ции, содержащиеся данные, дата и т.д.), из которого, в случае успеш­ ного прохождения проверок, выбирается открытый ключ для про­ верки подписи. В случае ее успешной проверки идентифицируются остальные параметры в сообщении (метки времени, случайное число и идентификатор получателя). Если все проверки закончились успеш­

но, участник В отправляет следую щ ее сообщение: А«—В: сеИ в, Эв>

Звф в), где Б в= Ц в, гв, А, гА, ба1:аА, Р А(к 2).

3.Участник А производит аналогичные проверки, и в случае их успеш­ ного завершения считается, что аутентификация участника В прошла успешно.

Общий сеансовый ключ вырабатывается на основе секретных частей к! и к2 с использованием однонаправленных функций. Представленный ори­ гинальный вариант протокола аутентификационного распределения клю­ чей использует для проверки подписи и зашифрования один и тот же от­ крытый ключ. Как уже отмечалось, с точки зрения безопасности такой подход содержит ряд уязвимостей, однако данный протокол может быть модифицирован для использования раздельных открытых ключей. В этом случае для зашифрования и проверки подписи в пересылаемые сообщения добавляются два сертификата вместо одного.

Соглашения о ключах, основанные на асимметричных алгоритмах

Наиболее распространенным механизмом распределения ключей, отно­ сящимся к соглашению о ключах, является протокол неаутентификациониого распределения ключей Диффи-Хэлмана. Базовый вариант это­ го протокола обеспечивал защ иту от пассивного нарушителя, но имел проблемы с защитой от активного нарушителя. Протокол Д иф ф и-Хэл­ мана служит для распределения клю чей между двумя сторонами и не

138 Аспекты создания и применения криптографических протоколов

требует в ходе своей работы наличия третьей стороны. Существенный недостаток данной системы - не обеспечивается аутентификация пользо­ вателей.

Чтобы протокол функционировал, необходимо выбрать и опубликовать следующие параметры: простое р и генератор а группы 2 Р (2 < а < р - 2). Работа протокола состоит из следующих этапов:

1.Участник А выбирает случайное число х ( 1 < х < р - 2 ) , хранящееся

всекрете, и посылает участнику В следующее сообщение: А —*В: ах шоб р.

2.Участник В выбирает случайное число у ( 1 < у < р - 2 ) , хранящееся

всекрете, и посылает участнику А следующее сообщение: А*—В: ау шоб р.

3. Участник А получает ах и вычисляет сеансовый ключ: К

=

(ах) у шоб р.

4. Участник В получает ау и вычисляет сеансовый ключ: К

=

(ау) х т о б р.

Распределение ключей для конференц-связи

Протоколы распределения ключей для конференц-связи являются обоб­ щением протоколов распределения ключей для двух сторон. При этом не­ обходимо учитывать, что, несмотря на внешнюю схожесть, протоколы распределения ключей фундаментально отличаются от протоколов дина­ мического распределения ключей между двумя сторонами. Основные тре­ бования к протоколам распределения ключей для конференц-связи сво­ дятся к следующим пунктам:

различные группы участников конференц-связи должны вырабаты­ вать различные сеансовые ключи;

сеансовые ключи должны распределятся динамически (за исключени­ ем схем с предварительным распределением);

каждая сторона должна индивидуально вычислять сеансовый ключ.

Типичным примером применения протоколов конференц-связи явля­ ется необходимость обеспечить зашифрование трафика при разговоре по телеф ону сразу нескольких участников. Очевидно, что первым шагом к распределению ключей при конференц-связи является разделение каж­ дым и з 1 (Ь > 3) участников конференц-связи знания своего симметрично­ го ключа с доверенной третьей стороной. Далее третья сторона может со­ здать сеансовый ключ и передать его каждому участнику конференц-связи, зашифровывая его на секретных ключах. Недостатком данного метода яв­ ляется то, что, во-первых, не для всех случаев практического применения конференц-связи имеется возможность использовать третью сторону, вовторых, требования, предъявляемые к производительности третьей сторо­ ны, достаточно серьезны.

Протоколы распределения и управления ключевой информацией

139

Наиболее интересной работой в этом направлении считается протокол распределения ключей для конференц-связи, предложенный Бурместером (Вигтез1ег) и Десмедом (Б езтеб!:). В ходе работы протокола I участников (И о ... И м ) вычисляют собственную экспоненту ъх= а г' т о й р. Конференц­ ключ в данном случае будет иметь вид: К - а г0,1+г1г2-+гЬ'1г0 т о й р. Определяя

А, = а гМ+1 шоб р и Х^=

т о б р, получаем, что А ;= А^Х},

и тогда К

может быть представлен следующим образом: К = А 0А ! ... А м =

А Д|+1...

... ам ,2)= а ^ а ^ х а ^ в д + о ... .(А,мВД+1... ХЖ4.2)).

Работа протокола начинается с того, что выбираются общие для системы параметры р и а и рассылаются всем участникам протокола. Каждый поль­ зователь И,- выбирает случайное число г* (1 < ц < р - 2), вычисляет = = а п' шоб р и посылает 2 ; каждому из 1; - 1 участников протокола. Каждый участник протокола Ц , получая значения 2 М и 2 1+1, вычисляет X,- = ( 2 |+,/2и ) г‘ х X т о б р и посылает значение Х ; остальным участникам. После получения X] (1 < ] < 1;, исключая ] = 1) 16! вычисляет ключ К = К, = ( 2 ц )1г*Х!1'1Х|+11'2...

... Х 1+(с.3)2Х |+(1.2) т о б р.

Очевидно, что при 1 = 2 данный протокол представляет собой ориги­ нальный вариант протокола Диффи-Хэлмаиа, унаследовав при этом его уязвимость к атакам активного нарушителя. Безопасность протокола ос­ нована иа вычислительной сложности нахождения дискретных логариф­ мов в конечных полях. В то же время доказательство абсолютной безопас­ ности для протоколов этого типа представляет теоретический интерес, и на данном этапе строгое доказательство достаточно затруднено.

2.3.2. Управление ключевой информацией

Общие сведения

Практическое использование криптографических средств и методов за­ щиты данных порождает помимо проблемы распределения ключевой ин­ формации широкий круг вопросов, связанных с хранением, использо­ ванием, уничтожением, депонированием и т.д. ключевой информации. Различные схемы организации защиты информационных ресурсов с ис­ пользованием криптографических методов и средств требуют для своего надежного функционирования различных схем организации ключевой структуры. Поэтому в данной главе рассматриваются не только вышепере­ численные, но и другие вопросы, связанные с функционированием ключе­ вых структур (например, виды сертификатов открытых ключей, доверен­ ных сторон и т.д.).

140______ Аспекты создания и применения криптографических протоколов

Основу управления ключами составляет такое понятие, как ключевые взаимоотношения участников. В общем случае под управлением ключами будем понимать набор методов и/или средств, поддерживающих распре­ деление и обработку ключевого материала (в качестве ключевого матери­ ала могут служить не только секретные или открытые ключи, а также иници­ ализирующие векторы и дополнительные несекретные параметры) между авторизованными сторонами.

Управление ключами состоит из следующих процедур:

инициализация ключевой структуры для пользователей в домене;

создание, распределение и инсталляция ключевого материала;

контроль над использованием ключевого материала;

обновление, восстановление, уничтожение ключевого материала;

хранение ключевого материала.

Основной целью управления ключами является поддержка ключевых

взаимоотношений и ключевого материала таким образом, чтобы не про­

изошло:

компрометации секретных ключей;

компрометации системы аутентификации секретной ключевой инфор­ мации или открытых ключей;

неавторизованного использования секретных или открытых ключей (например, необходимо обеспечивать невозможность использования ключей, срок действия которых истек).

Реализация системы управления ключами должна проводиться в соот­ ветствии с политикой безопасности, принятой в организации. В политику безопасности обычно включены следующие стороны, связанные с управ­ лением ключами:

использование наряду с техническими средствами управления ключа­ ми административных методов;

ответственность и подотчетность каждой стороны, вовлеченной в управ­ ление ключами;

аудит системы управления ключами.

Схемы организации распределения ключей

Существуют две основные модели построения схем распределения клю ­ чей, на основании которых в дальнейшем строятся более сложные схемы. Основными являются схемы типа «точка-точка» и централизованные схе­ мы распределения ключей, которые в свою очередь делятся на схемы с ис­ пользованием Ю6С и К ТО (рис. 2.5).