Обмен зашифрованными ключами
Обмен зашифрованными ключами (англ. Encrypted Key Exchange, EKE) — протокол, разработанный Стивом Белловином и Майклом Мерритом[1]. EKE работает при условии, что у пользователей до начала работы протокола есть общий секрет. Протокол позволяет формировать сеансовый ключ для установления защищенного соединения. Для каждого сеанса генерируется новый сессионный ключ.
Предисловие
Данный протокол использует симметричное и асимметричное шифрование. В каждой сессии протокола генерируется случайным образом открытый ключ и шифруется на имеющимся у сторон секретном ключе. Использование двух видов шифрования - главная особенность данного протокола. В качестве общего секрета в схеме может выступать пароль, что делает данный протокол удобным при использовании в системах, где общий секрет является паролем.
Протокол EKE
Алиса и Боб обладают общим секретом P. Используя протокол EKE у них есть возможность генерировать общий сеансовый ключ K.
- Алиса генерирует случайную пару открытый-закрытый ключ, шифрует симметричным шифрованием открытый ключ K' с использованием общего секрета P в качестве ключа. Посылает Боб.
- Боб, зная общий секрет, расшифровывает сообщение и получает ключ K'. Далее - случайным образом генерирует сеансовый ключ k, шифрует его открытым ключом K' и общим секретом P. Посылает Алиса.
- Алиса получает общий сеансовый ключ k, расшифровывая сообщение. Генерирует случайную строку , шифрует её на k. Посылает Боб.
- Боб получает строку Алисы, расшифровывая сообщение. Далее - генерирует свою случайную строку . Общим сеансовым ключом шифрует обе строки, передает зашифрованные строки Алисе.
- Алиса получает и , расшифровывая сообщение. Значение ,полученное от Боба, сравнивается с тем, что было выбрано в пункте (3). Если значения совпадают, то Алиса шифрует на ключе и посылает Бобу.
- Боб получает , расшифровывая сообщение. Значение ,полученное от Алисы, сравнивается с тем, что было выбрано в пункте (4). Если значения совпадают, то работа протокола завершена - участники могут обмениваться сообщениями используя при их шифровании ключ k.
Стойкость к атакам
В результате работы протокола пассивный криптоаналитик Ева может получить доступ только к и , а также к сообщениям, зашифрованным на общем сессионном ключе k. Так как в алгоритме используется схема асимметричного шифрования и ключи K' и k выбираются случайно, Ева не сможет подобрать P. Таким образом общий секрет P может быть простым паролем, который в состоянии запомнить человек.
Этапы 3-6 обеспечивают подтверждение. На этапах 3-5 Алиса удостоверяется, что Боб знает общий сеансовый ключ. На этапах 4-6 Боб удостоверяется, что Алиса знает общий сеансовый ключ. Эта же задача решается в протоколе Kerberos посредством обмена метками времени.
Реализации
При реализации данного протокола возможно использование многих алгоритмов с открытыми ключами, но также надо учитывать, что ограничения методов шифрования на ключи могут дать взломщику дополнительные возможности для проведения атак. Использование случайных последовательностей в данном протоколе сделает атаку "брут-форсом" невозможной.
Реализация EKE с использованием системы Эль-Гамаля[1]
Преимущества
При использовании схемы Эль-Гамаля[2] возможно упрощение основного протокола.
Инициализация
Значения g - порождающий элемент группы и p - модуль, по которому производятся вычисления, выбираются для всех пользователей протокола. Также в соответствии с протоколом EKE у пользователей есть общий секрет r. Тогда - открытый ключ.
Работа протокола
- В данном алгоритме открытый ключ не надо шифровать на общем секрете P. Для общего случая такой подход не работает. На первом шаге протокола Алиса посылает Бобу:
- Для алгоритма Эль-Гамаля Боб выбирает случайное число R. Тогда на данном этапе Боб посылает данное сообщение:
Реализация EKE с использованием протокола Диффи — Хеллмана, DH-EKE[3]
При реализации EKE с использованием протокола Диффи — Хеллмана[4] ключ K генерируется автоматически участниками работы протокола во время его исполнения.
Преимущества
При использовании протокола DH-EKE решается уязвимость базового протокола Диффи-Хеллмана к атаке человек посередине(MITM). Если криптоаналитик не знает общий секрет пользователей, то он не сможет[3] подобрать ключ, потому что шифруются случайные значения.
Инициализация
Значения g - порождающий элемент группы и n - модуль, по которому производятся вычисления, выбираются для всех пользователей протокола. В соответствии с протоколом EKE у пользователей есть общий секрет P.
Работа протокола
- Алиса случайно выбирает , посылает его Бобу. При этом нет необходимости, чтобы Алиса шифровала первое сообщение на общем секрете P.
- Боб случайно выбирает , вычисляет K, генерирует случайную строку , шифрует её на ключе K. Далее - вычисляет , шифрует его на общем секрете P. Передает Алисе.
- Алиса получает , расшифровывая первую часть сообщения с использованием общего секрета P. Далее - вычисляет K, расшифровывает полученным ключом вторую часть сообщения Боба. Генерирует случайную строку , шифрует полученные строки на ключе K и посылает Бобу.
- Боб получает и , расшифровывая сообщение. Значение ,полученное от Алисы, сравнивается с тем, что было выбрано в пункте (3). Если значения совпадают, то Боб шифрует на ключе K и посылает Алисе.
- Алиса получает , расшифровывая сообщение. Значение ,полученное от Боба, сравнивается с тем, что было выбрано в пункте (4). Если значения совпадают, то работа протокола завершена - участники могут обмениваться сообщениями используя при их шифровании ключ K.
Усиленный протокол EKE
Стивом Белловином и Майклом Мерритом в работе[1] было предложено усиление части протокола запрос-ответ. Данное усиление позволяет[3] избежать компрометации данных при условии, что у криптоаналитика есть значение прошлого общего сеансового ключа k.
- На шаге 3 Алиса генерирует случайное число . Посылает Бобу:
- На шаге 4 Боб генерирует случайное число и посылает Алисе:
При такой работе протокола Алиса и Боб могут вычислить общий сеансовый ключ -- . В дальнейшем этот ключ используется для установления защищенного соединения, ключ k используется как ключ обмена ключами.
Допустим, что Ева получила доступ к значению S, но при этом работа протокола построена так, что это не даст Еве никакой информации об общем секрете P. К тому же, так как на ключе K шифруются только случайные данные, то криптографические подходы для его восстановлению неприменимы.
Примечания
- ↑ 1 2 3 S. M. Bellovin, M. Merritt. Encrypted Key Exchange: Password-Based Protocols Secure Against Dictionary Attacks (англ.) // Proceedings of the I.E.E.E. Symposium on Research in Security and Privacy, Oakland. — 1992. — P. 72—84. Архивировано 13 декабря 2021 года.
- ↑ T. ElGamal. A public key cryptosystem and a signature scheme based on discrete logarithms (англ.) // IEEE Transactions on Information Theory. — 1985. — Vol. IT-31. — P. 469–472.
- ↑ 1 2 3 Шнайер Б. Прикладная криптография. Протоколы, алгоритмы, исходные тексты на языке Си = Applied Cryptography. Protocols, Algorithms and Source Code in C. — М.: Триумф, 2002. — С. 82. — 816 с. — 3000 экз. — ISBN 5-89392-055-4.
- ↑ W. Diffie and M. E. Hellman. New directions in cryptography (англ.) // IEEE Transactions on Information Theory. — 1976. — Vol. IT-11. — P. 644–654.