Скачиваний:
93
Добавлен:
18.10.2019
Размер:
14.08 Mб
Скачать

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

129

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

двух.

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

(1)А -? Т: »»:

(2)Т7 А : Еклт(Nл,В,«,EKnт(s, А)),

(3)А -? В: EKuг(s, А),

(4)В 7 А: Es(NB ) ,

(5)А -? В: Es(NB -1).

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

К недостаткам можно отнести тот факт, что противник имеет

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

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

сключомs*:

(1)А -? Т: А.в.н;

(2)Т-7 А : Еклт(NА'в».EKur (s, А)),

(3)Е -? В: е; (s*, А),

вт

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

(4)В -7 Е: E.\,.(N8)'

(5)Е -7 В: E,\_*(Nв -1).

ввыполнении шагов (1) - (2) протокола В не участвует и не ви­ дИТ их. На шаге (3) противник Е подставляет старое сообщение

ЕКm- (s*, А). При выполнении шагов (3) - (5) участник В не имеет

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

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

(1)Е -7 Т: А,В,Nл,

(2)Т-7 Е: ЕКЛ"l (NA,B,s*,EKIJT(s*,A)),

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

(З)Е-7В: ЕкI/T (s*,A),

(4)В -7 Е: к;(Nв) ,

(5)Е -7 В: е;(Nв -1).

Несколько видоизмененный протокол Needham - Schroeder был положен в основу программного средства аутентификации пользо­

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

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

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

131

ограничивает срок, в течение которого возможно осуществить атаку

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

Сервер аутентпфнкашш

Сервер б'

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

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

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

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

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

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

Kc:.rgs - общий секретный ключ для клиента и сервера выдачи би­ летов, выдаваемый сервером аутентификации;

Kcs - общий для клиента и сервера приложений секретный КЛЮЧ, выдаваемый сервером выдачи билетов;

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

Tc,tg.f' Te,s - билеты для доступа клие1:!та к серверу выдачи биле­

тов и к серверу приложений соответственно;

Ac,tgs, Ас,! - аутентификаторы клиента для сервера выдачи биле­

.тов и сервера приложений соответственно;

te> t,gs - метки времени, получаемые клиентом и сервером выдачи билетов соответственно;

1, ['- сроки действия билетов.

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

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

на ниже:

(1)С -7 AS : с, tgs, No

(2)AS -7 С: EKr ( н..K(".tg,r,Te.tgS = {tgs, Ек,с. (c,tgs,t(1$,I, KC.tJ;S)})'

(3)С -7 TGS: Ac tgS = Екос>(c,tc" " )' s, Tc.tgs,

(4)TGS -7 С: EKcj~, (Kc.s'~,s =={s,EK(c,s,tlg~.,l'.Kr..r)}).

(5)С -7 S: Ar f. =Ек,.• (с,t с'к.,,·..1Тг.!

(6)* S -7 С: Ац = Ек,..• (s,tc + 1,ksc " " ) '

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

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

 

Локальный сервер Кегьегоя

 

 

 

 

 

Удаленный сервер Кегветоя

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Сервер

 

Сервер ВЫДЛ-

 

 

 

 

 

Сервер

 

 

Сервер вьща-

 

аутентпфи-

 

 

'Ш билетов

 

 

 

 

 

аутентпфи-

 

'Ш бнпегов

 

кашш (AS)

 

 

(TGS)

 

 

 

 

 

кацип (.AS)

 

 

('fGS)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

t

 

 

 

 

 

 

 

 

 

 

 

 

 

l'

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(1)

(2)

 

(4)~

 

I

 

 

 

 

 

 

 

 

 

(5)

 

 

(6)

 

 

 

(3)

 

 

 

 

I

 

(7)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

I

 

Удаленный сервер S

 

 

 

Клиент С

I

 

 

'

I

 

 

 

 

 

 

 

 

 

 

1-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(8)*

 

1

 

 

 

 

 

 

 

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

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

133

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

(1)С ~ лок. AS: с, tgs, N" ... ,

(2)лок. AS ~ С :

EK~ (N~,Kr,tgs,tns,...), ~./gS =:; {tgs, EK,g, (c,tgs,tns,l, Ko Ks ) } ,

(3)С ~ лок. TGS: Ac,tgs :::: Екщ.,(с,tc,...),tgs - пет. Nc,T(',rgs'

(4)лок. TGS ~ С: Ек"..к>(KC,'8s-геm,tgs - пет,Nc,trss'··.} Т~,/gs-геJII'

(5) С ~ удал. TGS: Ac.,ss-rem' Tc,rgS-ГСIlI' s - пет, N c, ... ,

(6)удал.ТGS ~ С:ЕкcJк,_"щ(Kc.s- rem' s - rem, н..t,gs-rem ,.. .} Tc.s-rem'

(7)с~ удал.S: Ar.s-rcm :::: EKr.s_,.ml (с,tc ' kc,s-rem,"')'

(8)* удал. S ~ С: As-rcm,r :::: ЕК... _иm(s - петл, + 1, ks- rcm,(', ...).

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

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

Tc"ss-rem =:; {tgs - rem, EK't.•_" , (C,tgs -l-em,ttgs,l, K1:,rg-r-геJII)}'

rr

~.s-rl'm ={s - пет;ЕК,_,.... (C,S - rem,trgS_relll,l, Kc.s-rem)}'

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

(1) А ~ В: I,А,В,Еклт(NA,I,A,B),

134Запечников С. В. Криптографическиепротоколы и их Пр'Lllеllеиllе

(2)В -7 Т: 1, А,В,ЕкАт(NA,I,A,B), EKFfТ(NB,I,A,B),

(3) Т-7 В: I,EK'IT (Nл,s), ЕкlIт(NB,s),

. (4) В -7 А: I,Еклт (Nл,s).

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

предложено следующее расширение протокола:

(4)В-7А: EKAТ(NA,s),Es(I,NB)'

(5)А-7В: Es(NB ) .

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

(l)A -7 В: I,A,B,EK,IT (Nл,I,А,В),

(2) В -7 Е: I,A,B,EKАТ (Nл,I,А,В),Екнт (NB,I,A,B),

(2*) Е -7 Т: I,А,Е,Еклт(Nл,1, А,В),ЕкЕ:Г (N Е' I,A,B),

(3) Т-7 Е: I,ЕКАт(Nл,s),ЕКЕТ(NЕ'S)'

(4)Е-7А: I,ЕкАт(Nл,s).

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

(2) В -7 Т: I,A,B,EKАТ (Nл,I,А,В),ЕкffГ (NB,I,A,B),

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

135

ДОЛЖНЫ быть абсолютно одинаковы. Это условие в явном виде

должно проверятьсяпри реализациипротокола.

Долгая история конструированиявсе более стойких протоколов с центромдоверия привелак созданиюВейаге и Rogaway доказуемо стойкого протокола аутентичного распределенияключей, получив­ шего название протокола ЗРКD - З-Раrty Кеу Distribution. Пусть K~"~ - общий секретный ключ шифрования А и Т, K;IC - общий

секретныи... ключ шиФрования в и т, К'?"А - Обшийщии секретныи... кпюч

аутентификации А и т, к;шс - общий секретный ключ аутентифи­

кации В и Т. Тогда спецификация протокола имеет следующий вид:

О)А 7 В: RA

(2) В 7 Т; я; RB,

(3) Т 7

А : EK~;" (k ),МАСК;t'.'(А,В,RА,Екл,~ (k)) ,

(4) Т 7

В: Ек"" (k ),МАСк"",,, (A,B,Ro.EK

" " (k)) ,

 

8

IJ

В

при условии существования семантически безопасной схемы шиф­ рования (Е,О), безопасной схемы аутентификации сообщений (МАе,Vf) и псевдослучайного генератора Gen.

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

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

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

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

разделяются на три класса:

1. Протоколы, использующие только открытое шифрование без цифровой подписи. Примором такой конструкции является протокол Needham - Schroeder с открытымиключами. ПустьА,В - абоненты криптосистемы, Т - центр доверия, Ph Рв. РТ - их соответствующие открытые ключи, ST - секретный ключ центра доверия. РХ(••• ) - оз­ начает зашифровку на открытом ключе участника Х, Sx{... ) - под­ пись на секретном ключе участника X,f( ... ) - общеизвестная одно­ направленная функция.

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

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

времени он выглядит так:

(l)A -7 Т: А,В,

(2)Т -7 А : Рв, В, Sr{PB,B),

(3)А -7 В : PB(k},A),

(4)В -7 Т: В,А,

(5)Т -7 В : г; А, Sr{Рл,А),

(6)В -7 А : Рл(kI,k2),

(7)А -7 В : PO(k2) ,

(8)А,В : k ;::f(k1,k2) .

Врезультате выполнения шагов (1) - (2) абонент А получает ау­ тентичный открытый ключ абонента В. В результате выполнения шагов (4) - (5) абонент В получает аугентичный открытый ключ абонента А. Остальные шаги вполне очевидны. В результате на шаге

(8) оба участника получают сеансовый ключ k.

Во втором случае протокол использует уже имеющиеся в обще­ доступном справочнике сертификаты открытых ключей абонентов А и В. Он приведен в табл. 2.9. Номера над стрелками показывают со­

ответствие шагов этого варианта протокола первому варианту.

Слабости этого протокола - точно такие же, как и у протокола Needham - Schroeder с секретнымиключами: нет гарантий свежести ключа, получаемого от сервера Т. Если секретные ключи Sл ИЛИ SB

скомпрометированы, возможна атака методом повтора сеанса.

Таблица 2.9. Протокол Needham - Schroeder

 

 

с открытыми ключами

 

 

 

 

А

 

 

В

 

~

 

 

(3)

 

 

PS(k1,AJ

-7

 

 

 

(6)

 

 

 

~

 

PA(k1,k2J

 

(7)

 

 

PB(k2J

-7

 

k ;:: f(k 1,k2J

k = f(k"k2J

(8)

 

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

137

2. Протоколы. комбинирующие открытое шифрование и цифро­ вую подпись. К этому классу относятся протоколы стандарта ITU Х.509: ОДНОПрОХОДНЫЙ, ДВУХПРОХОДНЫЙ и трехпроходный. Во всех протоколах приняты следующие обозначения: ТА, ТВ - это метки времени, Rh RB - случайные числа, Хл, ХВ - произвольиые данные, для которых требуется обеспечить целостность и подлинность, УА> УВ - произвольные данные, для которых требуется обеспечить еще и

секретность (в том числе это могут быть сеансовые ключи), { ..

х

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

вания участником Х, {"}Гl означает подписание данных участии­

х

ком Х. (Аналогичные обозначения используются в записи после­ дующих протоколов.)

Однопроходный протокол обеспечивает одностороннюю аутен­ тификацию:

(l)A -7 В: А,{тл,RЛ'В'ХЛ'{УЛ}КВ}К,iI'

Прибавление к нему еще одной пересылки сообщения дает двух­ проходный протокол, который уже обеспечивает двустороннюю ау­

тентификацию:

(2) В -7 А: в,{тв,Rв,А,Rл,хв,{ув}к,JКjjl .

Добавлением еще одной пересылки получается трехпроходный

протокол из этого же стандарта:

(З)А -7 В: A,{B,RB}K-1 '

А

в трехстороннем протоколе полагают ТА = ТВ = О, так как указа­ ние меток времени является избыточным.

Во всех трех протоколах используется либо схема цифровой подписи с восстановлением сообщения, либо предварительное хе­

ширование данных перед подписанием.

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

до начала выполнения протокола каждый из них должен получить

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

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

К этому же классу принадлежит широко известный протокол SSL (Secure Sockets Layer), используемый на сеансовом уровне ком­ муникационной архитектуры TCPIIP. Пусть А - клиент, В - сервер. Клиент желает установить защищенное соединение с сервером. А генерирует сеансовый ключ SAB, который должен стать общим ДЛЯ

клиента и сервера, и инициирует протокол:

(1) А ~ В : {sАВ}К '

в

(2)В ~ А : {NB}SAII'

(3)А ~ В : {CertA.{ NB}K,~1}SЛВ ' где CertA={KA}K':,i .

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

(1) А ~ Е: {КАЕ} К

'

Е

 

(2) Е ~ В: {КЕВ}К

11

 

(3) В ~ Е: {NB}K

'

 

ЕН

(4)E~A: {NB}K

 

АЕ

(5)А -7 Е: {CertA ={КА}К-1 ,{NS}K-1} ,

СА

,1 K"f.

(6)Е ~ В: {CA,{NB}K;l}КЕВ .

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

(3)А -7 В: {CertA.{A,b,SAb,NB}K-1}

,

А

Sлв

где по-прежнему СепА ::::: { КА}К-1 .

 

СА