<<
>>

2.2.3. Протоколы распределения ключей, основанные

на симметричных криптосхемах

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

Класс двусторонних протоколов включает протоколы обновле-ния ключа с использованием симметричного шифрования и прото-колы выработки производного ключа.

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

Самым простым примером этого рода протоколов служит одно-проходный протокол между сторонами А и 5, у которых уже имеется долговременный ключ К (табл.

2.2). В результате они вырабатывают новый сеансовый ключ s.

Таблица 2.2. Простой однопроходный протокол обновления

сеансового ключа А К— долговременный ключ В гА - случайное число, Е^гА) s = rA s = rA

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

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

Запечников С. В. Криптографические протоколы и их применение

Таблица 2.3. Простой двухпроходный протокол обновления

сеансового ключа А К- долговременный ключ в гА - случайное число, E^rA,tA,B) <е Ек(гв,гв,А) s =f(rA,rB) s =ДгА,Гв)

Протоколы транспортировки ключа методом «запрос - ответ» строятся на основе аналогичных протоколов аутентификации. В табл. 2.4 показан протокол, который обеспечивает одностороннюю аутентификацию методом «запрос - ответ». В нем ключ целиком определяется одним участником - абонентом А - и транспортируется второму участнику.

Таблица 2.4.

Протокол транспортировки ключа методом

«запрос - ответ» А К - долговременный ключ В <Г пв гА - случайное число, Е^гА,пв,В) S~rA s=rA

Протокол, помещенный в табл. 2.5, обеспечивает взаимную аутентификацию методом «запрос ~ ответ», и сеансовый ключ в нем определяется уже совместным вкладом обоих участников. По своей конструкции он может быть отнесен к «протоколам рукопожатия».

Таблица 2.5. Протокол транспортировки ключа, построенный на базе «протокола рукопожатия» А К - долговременный ключ В <г пв пА>гА - случайное число, Ек(гА,пА,пв,(В)) гв - случайное число, Ек(гв,пв,пА,(А)) s = Кга, гв) s =.f(rA,re)

Ни один из приведенных выше протоколов обновления ключа с использованием симметричного шифрования не обладает свойством совершенной опережающей секретности. Более того, все протоколы с числом пересылок сообщений две и более принципиально не го-дятся для прикладных программ с передачей данных в режиме «хра- нение и продвижение» (store-and-forward), таких, как электронная почта, так как, очевидно, они требуют диалога участников.

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

Среди протоколов этого рода рассмотрим однопроходный протокол (табл. 2.6). В нем сеансовый ключ s вычисляется каждым уча-стником самостоятельно из долговременного ключа и случайного числа, вырабатываемого участником А в каждом раунде протокола. Правильность вычисления ключа проверяется каждым из участни-ков по факту получения осмысленной информации в последующих сеансах связи. А может контролировать ключ в этом протоколе, вы-бирая его в виде rA - Dfjx). Протокол уязвим к атаке методом повтора сообщений.

Таблица 2.6. Однопроходный протокол выработки

производного ключа А К - долговременный ключ В гА - случайное число •г = Ек(га) или ^ = hK(rA) s = Ек(га) или s = 1гк(гА)

Все рассмотренные ранее протоколы обеспечивали лишь огра-ниченный набор свойств защиты, будучи подвержены тем или иным атакам.

Задача построения доказуемо безопасного протокола рас-пределения ключей без центра доверия была решена Bellare и Roga- way. Ими был предложен протокол АКЕР2 - Authenticated Key Exchange Protocol, показанный в табл. 2.7. Здесь hK - хеш-функция с ключом, tiK' - псевдослучайная перестановка или хеш-функция с ключом.

Таблица 2.7. Протокол АКЕР2 А К, К' - долговременные ключи В гА - случайное число гв - случайное число, Т= (В,А,Гл,гв), Т, hK(T) (А,гв) hK(A,rB) s = tiK.(rB)

Доказано, что этот протокол обеспечивает взаимную аутентификацию участников и неявную аутентификацию ключа, т. е. является протоколом аутентичного распределения ключей в смысле введен-ного ранее определения.

Как видим, протоколов без центра доверия существует довольно много, и такое многообразие обусловлено отсутствием одного- единственного, «идеального» протокола: в различных ситуациях и различных приложениях бывает удобно использовать разные прото-колы.

Довольно любопытен трехэтапный протокол Шамира (табл. 2.8).

Таблица 2.8. Трехэтапный протокол Шамира А р: вычисление дискрет-ного логарифми modр вычислит, сложно В Выбирает я : 1 < а < р-2,

(а,р-=

Вычисляет

a'1 mod (р-1) Выбирает b:l(b,p~l) = l.

Вычисляет

b~x mod (/7-і) К - случ.: \<К< р-1 К" mod р <е [К" )'' mod р (К'*)"' modр(= K"modp к - сеансовый ключ mo dp

(= К mod p)

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

2. Инфраструктура криптосистем 129

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

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

Рассмотрение протоколов с центром доверия начнем с прото-кола Needham - Schroeder, предложенного в 1978 г. Он был первым протоколом этого класса, опубликованным в научной литературе. Начальные условия для него таковы: Т - это центр доверия, А и Т имеют общий секретный КЛЮЧ КАТ, В и Т имеют общий секретный ключ КВТ\ NA - неповторяющаяся ни в одном сеансе протокола вели-чина, чаще всего это случайное число; s - сеансовый ключ, выраба-тываемый сервером; А, В - идентификаторы участников протокола. Протокол выполняется следующим образом:

Т^А: EKAT{NA,B,s,EKJs,A%

А^В: EKbt(s,A), (4 )B*A:ES(NB), (5)А^В: E,(NB-l).

Достоинства этого протокола состоят в том, что он обеспечивает взаимную аутентификацию участников А и В, а также обладает свойством подтверждения ключа (Тявляется центром распределения ключей).

К недостаткам можно отнести тот факт, что противник имеет неограниченное время для компрометации ключа s.

Если же ключ s скомпрометирован, возможна атака на протокол методом повтора сеанса: берутся сообщения из прошлого сеанса с ключом s *:

Т^А: EK/iT{NA^s,EKffr(s,A)),

Е*В: Ек (у*, А),

130 Запечников С. В. Криптографические протоколы и их применение

В -ЇЕ: ES+(NB),

Е*В: E^{Nb- 1).

В выполнении шагов (1) - (2) протокола В не участвует и не ви-дит их. На шаге (3) противник Е подставляет старое сообщение Ек^ (s*, А). При выполнении шагов (3) - (5) участник В не имеет

никаких гарантий «свежести» ключа, т. е. того, что он был сгенери-рован именно в текущем сеансе. Следовательно, Е может участво-вать в протоколе с В вместо А.

Если ключ КАТ скомпрометирован, противник может повторять сеансовые ключи даже после смены участником А своего долговре-менного ключа КАт, как показано ниже:

E^T:A,B,Na,

Г-»?: EKKr{NA,B,s*,EKJs*,Aj),

зная ключ, Е «добывает» NA,B,s*,EKn ,(s*,A), из него берет ЕКрт (.у*, А) и подставляет в следующее сообщение:

Е В : EKJs*tA),

В^Е: E^{Nb),

?->Я: Es*(NB-l).

Несколько видоизмененный протокол Needham - Schroeder был положен в основу программного средства аутентификации пользо-вателей распределенных вычислительных систем Kerberos, разрабо-танного в Массачусетском технологическом институте (США) и по-лучившем широкое распространение. Модифицированный протокол также получил название протокола Kerberos.

В целях исключения возможности осуществления атаки, опи-санной выше, применяются технические меры.

Клиент Су пройдя ау-тентификацию на сервере аутентификации AS, должен предварительно, до того как ему будет предоставлен доступ к серверам при-ложений, получить у специального сервера выдачи билетов TGS так называемые билеты-структуры данных, в которых указывается срок полномочий клиента для доступа к серверам приложений. По исте-чении этого срока клиент должен получать новый билет. Эта мера ограничивает срок, в течение которого возможно осуществить атаку на протокол. Схема взаимодействия участников для протокола Кег- beros версии 4 показана на рис. 2.10.

Рис. 2.10. Взаимодействие участников протокола Kerberos версии 4

Рис. 2.10. Взаимодействие участников протокола Kerberos версии 4

Далее используются следующие обозначения:

с, s, tgs - идентификаторы клиента, сервера приложений и сервера выдачи билетов соответственно;

Nc - не повторяющаяся ни в одном сеансе протокола величина, чаще всего это случайное число;

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

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

K(.jgS - общий секретный ключ для клиента и сервера выдачи билетов, выдаваемый сервером аутентификации;

KCiS - общий для клиента и сервера приложений секретный ключ, выдаваемый сервером выдачи билетов;

kc s~ общий сеансовый секретный ключ, вырабатываемый клиентом и сервером приложений;

TCJGX, TC S - билеты для доступа клиента к серверу выдачи билетов и к серверу приложений соответственно;

A-c,tgs> ACiS - аутентификаторы клиента для сервера выдачи билетов и сервера приложений соответственно;

ta tlgs - метки времени, получаемые клиентом и сервером выдачи билетов соответственно;

І, Ґ ~ сроки действия билетов.

132 Запечников С.

В. Криптографические протоколы и их прішеиеиие

Спецификация сообщений, передаваемых в протоколе, приведе-на ниже:

С AS: с, tgs, Nc,

AS С : EKr {Nr,Kr^Tc^={tgs,EKiei (cjgs^K^)}),

С TGS : ACJgs = EKcigj (c,tc,...),s,Tc tgi.,

TGS^C : (kcs,TCiS = {s,EKi (c,sJVJ'tKrj)})t

C*S: ArtS=EKJcJc,kc^4TrtS,

* S^C: Asc = ЕК з (s,ic + l,ksx,...).

Шаги (1) - (2) выполняются только во время первого входа клиента в систему. Шаги (3) - (4) выполняются всякий раз, когда клиент С хочет обратиться к новому серверу S. Шаг (5) выполняется всякий раз, когда С проходит аутентификацию для S. Шаг (6) является не-обязательным и выполняется, когда С требует от S взаимную аутен-тификацию.

Впоследствии протокол был обобщен на случай многодоменной информационной системы, когда в каждом домене имеется свой сервер аутентификации и сервер выдачи билетов. Этот протокол получил название Kerberos версии 5. Схема взаимодействия участни-ков для него показана на рис. 2.11.

Рис. 2.11. Взаимодействие участников протокола Kerberos версии 5

Рис. 2.11. Взаимодействие участников протокола Kerberos версии 5

2. Инфраструктура криптосистем 133

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

С -> лок. AS : с, tgs, Na...,

лок. AS -> С:

С лок. TGS : АсJgs = E^ic^.^tgs-rem.N^T^

лок. TGS С : ,

С^ удал. TGS : Actss_rei)lJr^rcm,s-rem,Nr,...,

удал.TGS^C: ^ [Кс^_гет, - rem, Nr, ttRS_rem,..) Tc s_rem,

С удал. 5 : ACiS_nm = (cjc

* удал. S С: As_mtlc = + U™.r,.»)-

Шаги (1) - (2) выполняются только во время первого входа клиента в систему. Шаги (3) - (4) выполняются всякий раз, когда клиент С хочет обратиться к серверу S, расположенному в новом домене (в который он ранее не обращался). Шаги (5) - (6) выполняются вся-кий раз, когда С обращается к новому серверу S в удаленном отно-сительно него домене. Шаг (8) является необязательным и выполня-ется, когда С требует от S взаимную аутентификацию.

Билеты в этом варианте протокола имеют такую структуру:

Tc,,ss-rc,n = - Гет' (C^8s - гет1 Kc,S,-r,n, )} '

Tc,s-rem ={s-rem,(c,s-rem,tlgs_remJ,Kcs_rem)}.

С целью устранения уязвимостей, присущих протоколу Needham - Schroeder (и основанных на нем протоколов), был пред-ложен протокол Otway - Rees. Начальные условия для него таковы: Т - центр доверия; А и Г имеют общий секретный ключ КАТ\ В и Т имеют общий секретный ключ Квт; I обозначает идентификатор се-анса связи; s - сеансовый ключ, выработанный в протоколе. Прото-кол выполняется следующим образом:

(1 )А^В: I,A,B,EK (NaJ,A,B),

134 Запечников С. В. Криптографические протоколы и іос применение

(2) Д Г: /, Л, В>ЕКаг (Na , /, Л, В), ЕКт (NB, /, А, fi),

(4)В->А: I,EKjNA,s).

Протокол обеспечивает неявную аутентификацию ключа ^ и дает гарантию его «свежести». Однако он не обеспечивает аутентификацию участников протокола и подтверждение ключа. Для этой цели предложено следующее расширение протокола:

В->А: EKjNA,s),Es(l,NB),

А*В: ES(NB).

На протокол возможна атака методом «смещения доверия с сервера». Пусть Е - другой авторизованный пользователь системы. Он может деперсонифицировать В\

(1 )А^В: I,A,B,EKat{NaJ,A,B),

(2) В Е : /, А, В, ЕКлт (NA, /, А, В\ЕКю (Nb , I, А, 5),

(2*) Е-ЇТ: I, A, E, ЕКа (Na , /, А, В\ ЕКег (УУ?, /, А, В),

Атака возможна благодаря тому-способу, которым А выводит за-ключение об аутентичности В на шаге (4) протокола: А не имеет прямого указания на другого участника, которому Т сделал доступ-ным ключ я, но полагается на случайное число NA в сообщении (4) и на тот факт, что оно было ассоциировано с В в защищенной части сообщения на шаге (1). Таким образом, А полагается на то, что Т сделал ключ s доступным именно тому участнику В, которого запросил А на шаге (1). А это может быть гарантировано Т только путем проверки совпадения содержимого полей, записанных в открытой и защищенной частях сообщения, пересылаемого на шаге (2). Наборы величин (1,А,В), трижды повторяющиеся в сообщении

(2) В Т: /, А, В, Е (NaJ, А, В), Ек (,NBJ, А, Я),

2. Инфраструктура криптосистем 135

должны быть абсолютно одинаковы. Это условие в явном виде должно проверяться при реализации протокола.

Долгая история конструирования все более стойких протоколов с центром доверия привела к созданию Bellare и Rogaway доказуемо стойкого протокола аутентичного распределения ключей, получив-шего название протокола 3PKD - 3-Party Key Distribution. Пусть

К™С - общий секретный ключ шифрования А и Т, К^!С - общий секретный ключ шифрования В и Т, К'™,с - общий секретный ключ аутентификации А и Г, К'Ц'"с ~ общий секретный ключ аутентификации В И Т. Тогда спецификация протокола имеет следующий вид:

(1 )A^B:Ra,

(2 )B^T:Ra>Rb,

Т -> А : Ект {K),MACKT(A,B,Ra,Ек7 (к)),

Т-> В : Ек7 {к)МАСкТ(КВЛв,ЕкТ (к)),

при условии существования семантически безопасной схемы шиф-рования (E,D), безопасной схемы аутентификации сообщений (MAC,Vf) и псевдослучайного генератора Gen.

<< | >>
Источник: Запечников С. В.. Криптографические протоколы и их применение в финансовой и коммерческой деятельности: Учебное пособие для вузов. - М.: Горячая линия-Телеком,2007. - 320 с.. 2007

Еще по теме 2.2.3. Протоколы распределения ключей, основанные: