2.2.4. Протоколы распределения ключей, основанные на асимметричных криптосхемах
Протоколы транспортировки ключей, в свою очередь, под-разделяются на три класса:
1.
Протоколы, использующие только открытое шифрование без цифровой подписи. Примером такой конструкции является протокол Needham - Schroeder с открытыми ключами. Пусть А,В - абоненты криптосистемы, Т- центр доверия, РА, РВ, РТ~ их соответствующие открытые ключи, ST - секретный ключ центра доверия. /*(...) - оз-начает зашифровку на открытом ключе участника X, Sy(...) - подпись на секретном ключе участника X,/(...) - общеизвестная одно-направленная функция.Протокол может быть построен в двух вариантах. В первом случае, при использовании доверенного сервера в режиме реального времени он выглядит так:
А-> Т:А,В,
T^A:Pb,B>S7{Pb>B),
А Я : Рв(1съА),
В Т: В,А,
(5В :РА> A, Sj{Pa,A), (6)B->A:PA(kuk2),
(7 )A^B:PB(k2),
(8) А,В : к =f(khk2)>
В результате выполнения шагов (1) - (2) абонент А получает ау-тентичный открытый ключ абонента В. В результате выполнения шагов (4) - (5) абонент В получает аутентичный открытый ключ абонента А. Остальные шаги вполне очевидны. В результате на шаге (8) оба участника получают сеансовый ключ к.
Во втором случае протокол использует уже имеющиеся в обще-доступном справочнике сертификаты открытых ключей абонентов А и В. Он приведен в табл. 2.9. Номера над стрелками показывают со-ответствие шагов этого варианта протокола первому варианту.
Слабости этого протокола - точно такие же, как и у протокола Needham - Schroeder с секретными ключами: нет гарантий свежести ключа, получаемого от сервера Т. Если секретные ключи SA или SB скомпрометированы, возможна атака методом повтора сеанса.
Таблица 2.9.
Протокол Needham - Schroeder с открытыми ключами А В Cert, и. ^ / (3) Рв(киА) (6) РА(ЬМ (7) Рв(к2) к = іїкик2) (8) к = Якък2)2. Инфраструктура криптосистем 137
2. Протоколы, комбинирующие открытое шифрование и цифровую подпись. К этому классу относятся протоколы стандарта ITV Х.509\ однопроходный, двухпроходный и трехпроходный. Во всех протоколах приняты следующие обозначения: ТА, Тв - это метки времени, RA, RB - случайные числа, Хд, Хв - произвольные данные, для которых требуется обеспечить целостность и ПОДЛИННОСТЬ, Уд, Ув - произвольные данные, для которых требуется обеспечить еще и секретность (в том числе это могут быть сеансовые ключи), означает зашифровку данных с помощью схемы открытого шифро-вания участником X, означает подписание данных участни-ком X. (Аналогичные обозначения используются в записи после-дующих протоколов.)
Однопроходный протокол обеспечивает одностороннюю аутен-тификацию:
(1 )А^В: A,{Ta,Ra,B,Xa,{Ya} }
L " J КЛ
Прибавление к нему еще одной пересылки сообщения дает двух-проходный протокол, который уже обеспечивает двустороннюю ау-тентификацию:
В А : ВЬв^АЛа,Хв,{Ув}к }
Добавлением еще одной пересылки получается трехпроходный протокол из этого же стандарта:
А^В: A,{B,Rb}k:1.
В трехстороннем протоколе полагают ТА-ТВ - 0, так как указание меток времени является избыточным.
Во всех трех протоколах используется либо схема цифровой подписи с восстановлением сообщения, либо предварительное хе-ширование данных перед подписанием.
Так как участники протокола для формирования сообщений должны знать открытые ключи друг друга, стандартом Х.509 пред-полагается использование метода сертификации открытых ключей: до начала выполнения протокола каждый из них должен получить
138 Запечников С. В. Криптографические протоколы и их применение
сертификат открытого ключа партнера, подписанный удостоверяющим центром, из общедоступного справочника.
К этому же классу принадлежит широко известный протокол SSL (Secure Sockets LayerJ, используемый на сеансовом уровне ком-муникационной архитектуры TCP/IP.
Пусть А - клиент, В - сервер. Клиент желает установить защищенное соединение с сервером. А генерирует сеансовый ключ sAB, который должен стать общим для клиента и сервера, и инициирует протокол: (1 )A^B:{sab}Kb,(2 )B*A:{NB}tM,
(3 )А^В: {CertA,[NB}^ , где CertA = {КА} .
Приведенная запись соответствует версии 2 протокола SSL. Однако на такой протокол транспортировки ключа возможна атака злоумышленника. Пусть Е - другой сервер, находящийся в том же домене, но контролируемый злоумышленником. Тогда Е может провести атаку методом включения в канал, в результате чего будет контролировать трафик между клиентом и сервером: (1 )А-»Е: {Кае}Ке,
(2 )Е^В:{Кев}кГ
В^Е {Nb}K?b,
?->А: {Nb}Ka?,
А^> E:{CertA={KA}Kj {NB}K.^ ,
u сл л jkae
E + B:[CA,{NB} Л .
l j kf.s
С целью исключения возможности ее осуществления в версии 3 этого протокола было изменено содержание сообщения, передаваемого на шаге (3):
(З)А^Я: \CertA,{A,B,sAB,NB} \ ,
1 Л "^лл
где по-прежнему CertA ={А'/1}а:_1 .
3. Гибридные протоколы, использующие одновременно симмет-ричные и асимметричные криптосхемы. Весьма интересным примером такого протокола является протокол Beller - Yacobi. Он предна-значен для использования в ситуациях, когда между участниками протокола существует значительный дисбаланс вычислительной мощности, например в случае обмена данными между интеллектуальной картой и приемным устройством или между терминалом и сервером. Такой протокол сокращает до минимума требования к слабейшей стороне (А), тогда как основную вычислительную нагрузку несет более сильная сторона (В). Итак, пусть А - терминал (слабейшая сторона), В ~ сервер (сильная сторона), Т - центр доверия, 1А, /я - идентификаторы участников протокола, h - однонаправленная хеш-функция. Протокол состоит из двух этапов: предварительного и рабочего. Действия участников протокола показаны в табл. 2.10.
Любопытной особенностью протокола Beller - Yacobi является то, что в нем используются две схемы открытого шифрования: RSA и Эль-Гамаля.
Схема RSA с е = 3 дает эффективные операции с от-крытым ключом: зашифровку и проверку цифровой подписи. Для этого требуется выполнить всего по два модульных умножения.Таблица 2.10. Протокол Beller - Yacobi Предварительный этап А | Т | В 1 Выбор системных па раметров: Параметры для схемы Эль-Гамаля: п, - простое число, CLE Zn -образующий элемент.
Параметры подписи Т по схеме RSA: р,д~ простые числа, пт = рд, ет= 3, dy
: eTdr =1 (mod (/?-l)(g-l)) 2 Распределение системных параметров: h Каждому участнику присваивается ^"уникальный идентификатор-^ h
Продолжение табл. 2.10 Предварительный этап А Г В 3 Инициализация терминала: А идентифицирует себя некриптографическими средствами, выбирает а - случайное число,
1 < а < ns — 2, вычис ляет открытый ключ цифровой ПОДПИСИ ПО схеме Эль-Гамаля: = a" mod п? ] Откр. ключ А по схеме Эль-Гамаля сертифицируется цифровой ПОДПИСЬЮ центра доверия по схеме RSA:
Ga=St(Ia,ua) =
= {ІІ(ІЛ >ил)УТ m0d»7-
<г[пв]
= (h(lB,nB)fT modtt,.
[іCertB={!B,nB,GB)]-»
2. Инфраструктура криптосистем 141 Окончание табл. 2.10
Рабочий этап
А В
1 Предварительные вычисления терминала: выбирает Л' - случ.: 1 < X < ris — 2, 1) = 1,вычисляет v = a*modпг, х-1 mod(/ii -1), flvmod(n, -l)
2 <-[CertB = (/в,ид,Св)]
3 Проверка аутентичности лд: h(lD,nB )-Gl mod^. Генерация сеансового ключа: А1- случ.: \ [у = Рв(К) = Кг modrcfl]->
4 Восстанавливает ключ К: К = Sn (К)=Г'В mod7ifl, те Z-случ., / = 50.
5 Расшифровывает поступившее сообщение и проверяет, что последние t бит равны нулю. Формирует М - (m,h), вычисляет w = (А/-av)x~l mod^ -l); (v,w) - подпись участника А под сообщением М по схеме Эль-Гамаля. [X ((v.w),CertA =(1A,UA,Ga))]
6 Расшифровывает поступившее сообщение и проверяет: і h (1А, иА)=G\ mod rij , формирует М = (т,1в) и проверяет. 7 0Iм • Vі" mod. 142 Запечников С. В. Криптографические протоколы и их применение Схема Эль-Гамаля дает эффективные операции с секретным ключом: расшифровку и генерацию цифровой подписи. Для этого требуется всего одно модульное умножение, предполагая выполне-ние предварительных вычислений. Открытые ключи схемы Эль- Гамаля сертифицируются центром доверия цифровой подписью по схеме RSA. Этот протокол обеспечивает аутентификацию его участ-ников и явную аутентификацию ключа. Рассмотрим теперь примеры протоколов обмена ключами, ос-нованных на асимметричных крипто схемах. Их удобно подразде-лить на протоколы, обеспечивающие основные свойства распреде-ления ключей (т. е. аутентификацию ключа, подтверждение ключа, явную аутентификацию), и протоколы, обеспечивающие расширенные свойства (совершенную опережающую секретность, стойкость к словарным атакам и др.). Начнем с протоколов, обеспечивающих основные свойства. Хорошо известен протокол Диффи - Хеллмана открытого распреде-ления ключей (табл. 2.11) - исторически первый протокол обмена ключами, предложенный в 1976 г. Таблица 2.11. Протокол открытого распределения ключей Диффи - Хеллмана
А В
р - простое число, а є Z* - образ, элемент, 2 < а < р-2
х - случ., 1<х<р-2 [a* mod р] ->
у - случайное число, \<у<р-2 [ос* mod р]
К = (а3 У mod р К - (ах У mod р
Простой протокол обмена ключа Диффи - Хеллмана не обеспе-чивает ни одного из основных свойств протоколов распределения ключей: ни аутентификацию, ни подтверждение ключа, ни аутенти-фикацию участников протокола. Активный противник может по-строить атаку на протокол методом включения в канал, как показано в табл."2.12. В итоге он сможет контролировать весь обмен данными между участниками по «защищенному», как им кажется, каналу. Таблица 2.12. Атака активного противника на протокол Диффи - Хеллмана
Обмен ключами
А Е в
х - случайное число, х - случ.
у - случайное число, <гау' у - случайное число, <гау
КА = a**' mod р КА = (a'r j' mod р, Ки = (а-' У mod р Кв = (Хху mod р
Обмен данными
А Е В
М [С = ЕКЛ (Л/)]-» M=DKy (С), [C = EKt(M)] + M=DKb{C>)
т = ПКл(с*) т = °кв (с), ±[с=ЕКл («)] т
Более защищенным является протокол MTl (Matsumoto, Takashima, Ішаі, 1986), показанный в табл. менные секретные ключи участников протокола, ZA> zB - их долго-временные открытые ключи. Компрометация разовых секретных ключей участников протокола не влияет на безопасность долговре-менных секретных ключей. Можно построить четыре варианта этого протокола, различающиеся сообщениями, которые участники пере-дают друг другу, и способом формирования общего секретного ключа (табл. 2.14). Таблица 2.13. Протокол MTI
Предварительный этап
А В
а - случайное число, 1< а < р-2, [zA = a" mod р] -> р - простое число, а є Z*p - образ, элемент, 2 < а < р - 2 b - случайное число, \.<Ь< р — 2, <- [гд = ab mod р]
Рабочий этап
1 х - случайное число, 1<*< р-2, [шлв = ах mod р]
2 у - случайное число, 1< у < р-2, [mM = <ху mod р]
3 КА zxB mod р К = КА = кп = = а***'0' mod р Кв =(axf zyA modp
Таблица 2.14. Варианты построения протокола MTI
№ п/п »ІАВ ПІКА КА Кк Общий ключ К
1 ах ау 2. Инфраструктура криптосистем 145 Протокол МТ1 обеспечивает взаимную неявную аутентификацию ключей, но не обеспечивает аутентификацию участников про-токола и подтверждение ключа. Такой протокол устойчив только против пассивных атак. Активный противник может осуществить атаку на него методом подстановки источника, как продемонстриро-вано в табл. 2.15. Таблица 2.15. Атака на протокол MTI методом подстановки источника (с одинаковыми открытыми ключами)
А С В
CertA Certn Certc
ах mod р, CertA \ ах mod р, Certc
mod
Суть атаки заключается в том, что злоумышленник С регистри-рует в удостоверяющем центре сертификат с таким же открытым ключом, как и А, а затем модифицирует сообщение, передаваемое от А к В. В результате В считает, что последующие сообщения зашиф-рованы на ключе k = аЬх+"у mod р , исходящем от С, в то время как только А знает ключ к и может производить такие сообщения. Для избежания атаки необходимо проверять уникальность открытого ключа при регистрации сертификатов. Можно построить более сложную атаку, которая достигает того же самого, но с открытым ключом С, отличным от открытого ключа А (табл. 2.16). Теперь С регистрирует в удостоверяющем центре сертификат с открытым ключом а"е mod р и подменяет сообщения, передаваемые участниками протокола друг другу. После осуществления такой атаки А полагает, что он выполнил обмен ключами с В (это так и есть!); В полагает, что он выполнил обмен ключами с С. Злоумышленник С не способен сам вычислить ключ к, но вынуждает В делать неверные выводы. Для избежания атаки необходимо проверять знание секретного ключа при регистрации сертификатов. Таблица 2.16. Атака на протокол MTI методом подстановки источника (с различными открытыми ключами)
А с В
zA - откр. ключ А е - случайное число, 1<е< р-2, = a"e mod p ~ откр. ключ С ZB - откр. ключ В
Cell's Certc І/ЛЛЧ
ах mod р, СепЛ _ ax mod p, Certc
(avmod p [a" mod p J
к = = ~J ¦zxB modр = аму-а*то dp = mod р K = Протокол STS (station-to-station), показанный в табл. 2.17, тоже основан на протоколе Диффи - Хеллмана. Дополнительно он ис-пользует симметричную схему шифрования (E,D) и две схемы цифровой подписи вида Sx (/и) = (я (tn)f x mod пх, X = {А, В}, Н(т)<пх. На эту роль подходят схемы RSA или Рабина. Таблица 2.17. Протокол STS
Предварительный этап
А В
ПА = РАЯЛ (еА, пА) dA : eAdA = slraod(pA-l)(gA-l) JvUJvi^ р - простое число, а є Z* - образ, элемент, 2 < a < р-2 "в = РвЧв <г(ев, пв) da :endu = slmod(/>e-l)(gB-l)
Рабочий этап
А В
1 х - случайное число, 1<х< р-2, [a'modp]
2 у - случайное число, I < у < Р~2 ,к modр
3 к = (осу mod р, расшифровывает Ек, проверяет подпись В, в случае положительного исхода формирует [^(^(aW))]
4 Расшифровывает Ек, проверяет подпись А, в случае поло-жительного исхода принимает ключ к как общий с А
Протокол STS обеспечивает аутентификацию его участников и явную аутентификацию ключа, обладает свойством совершенной опережающей безопасности, т. е. является самым безопасным из рассмотренных. Разработка новых безопасных протоколов распределения ключей, основанных на асимметричных криптосхемах, продолжаются и поныне. Многочисленные публикации по этой проблеме можно найти в трудах международных конференций CRYPTO, EUROCRYPT, ASIACRYPT за последние годы.
= • Z-^ MOD P R /)
- A ¦ A ¦ MOD P -
= *AEY+xbmod P