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
Далее используются следующие обозначения:
с, 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. Инфраструктура криптосистем 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.