Обмен ключами с аутентификацией паролем путем жонглирования
Обмен ключами с аутентификацией паролем посредством жонглирования (или J-PAKE) — это протокол соглашения о ключах с аутентификацией паролем , предложенный Фэн Хао и Питером Райаном. [ 1 ] Этот протокол позволяет двум сторонам устанавливать частную и аутентифицированную связь исключительно на основе их общего (низкоэнтропийного) пароля без необходимости использования инфраструктуры открытых ключей . Он обеспечивает взаимную аутентификацию при обмене ключами, функцию, которой нет в протоколе обмена ключами Диффи-Хеллмана .
Описание
[ редактировать ]Две стороны, Алиса и Боб, договариваются о группе. с генератором высшего порядка в котором проблема дискретного журнала сложна. Обычно группа Шнорра используется . В общем, J-PAKE может использовать любую группу простого порядка, подходящую для криптографии с открытым ключом, включая криптографию на эллиптических кривых . Позволять быть их общим (низкоэнтропийным) секретом, который может быть паролем или хешем пароля ( ). Протокол выполняется в два раунда.
- Раунд 1
- Алиса выбирает , и отправляет , вместе с доказательствами с нулевым разглашением (с использованием, например, неинтерактивного доказательства с нулевым разглашением Шнорра, как указано в RFC 8235) для доказательства показателей степени и . Аналогично Боб выбирает , и отправляет , вместе с доказательствами с нулевым разглашением для доказательства показателей и . Вышеупомянутое общение может быть завершено за один раунд, поскольку ни одна из сторон не зависит от другой. По его завершении Алиса и Боб проверяют полученные доказательства с нулевым разглашением , а также проверяют .
- Раунд 2
- Алиса отправляет и доказательство с нулевым разглашением для доказательства показателя степени . (Обратите внимание, что Алиса фактически получает новый открытый ключ, используя в качестве генератора). Точно так же Боб отправляет и доказательство с нулевым разглашением для доказательства показателя степени .
После второго раунда Алиса вычисляет . Аналогично Боб вычисляет . С тем же ключевым материалом Алиса и Боб могут получить сеансовый ключ, используя криптографическую хеш-функцию : .
Двухраундовый протокол J-PAKE полностью симметричен. Это помогает значительно упростить анализ безопасности. Например, доказательство того, что одна сторона не разглашает какую-либо информацию о пароле при обмене данными, должно быть верным и для другой стороны на основе симметрии. Это сокращает количество необходимых доказательств безопасности вдвое.
На практике J-PAKE, скорее всего, будет реализован в три потока, поскольку инициатива обычно берет на себя одну сторону. Это можно сделать тривиально без потери безопасности. Предположим, Алиса инициирует связь, отправив Бобу: и доказательства с нулевым разглашением. Затем Боб отвечает: и доказательства с нулевым разглашением. Наконец, Алиса отправляет Бобу: и доказательство с нулевым разглашением. Обе стороны теперь могут получить один и тот же сеансовый ключ.
В зависимости от требований приложения Алиса и Боб могут выполнить дополнительный этап подтверждения ключа. Есть несколько способов сделать это. Простой метод, описанный в SPEKE, работает следующим образом: Алиса отправляет Бобу , а затем Боб отвечает . [ 2 ] В качестве альтернативы Алиса и Боб могут реализовать явное подтверждение ключа, используя вновь созданный сеансовый ключ для шифрования известного значения (или случайного запроса). EKE , Kerberos и Needham-Schroeder пытаются обеспечить явное подтверждение ключа именно этим методом.
Свойства безопасности
[ редактировать ]Учитывая, что базовое неинтерактивное доказательство с нулевым разглашением Шнорра безопасно, доказано, что протокол J-PAKE удовлетворяет следующим свойствам: [ 3 ]
- Устойчивость к атакам по словарю в автономном режиме. Пассивному/активному злоумышленнику не передается информация о проверке пароля.
- Прямая секретность . Создает сеансовые ключи, которые остаются в безопасности, даже если пароль позже раскрывается.
- Безопасность с известным ключом. Предотвращает влияние раскрытого сеансового ключа на безопасность других сеансов.
- Устойчивость к онлайн-атакам по словарю. Активный злоумышленник не может проверять только один пароль при каждом выполнении протокола.
В 2015 году Абдалла, Бенхамуда и Маккензи провели независимый формальный анализ J-PAKE, чтобы доказать его безопасность в модели случайного оракула, предполагающей алгебраических противников. [ 4 ]
Дизайн протокола
[ редактировать ]Протокол J-PAKE разработан путем объединения случайных открытых ключей таким структурированным образом, чтобы добиться исчезающего эффекта, если обе стороны предоставили одни и те же пароли. Это чем-то похоже на дизайн сетевого протокола анонимного вето. Однако суть идеи можно проследить до Дэвида Чаума оригинального Dining Cryptographers : сетевого протокола [ 5 ] где двоичные биты структурированно объединяются для достижения эффекта исчезновения.
Реализация
[ редактировать ]J-PAKE был реализован в OpenSSL и OpenSSH как экспериментальный протокол аутентификации. Он был удален из исходного кода OpenSSH в конце января 2014 года. [ 6 ] Это также было реализовано в Smoke Crypto Chat Messenger. [ 7 ] в NSS и использовался Firefox Sync версии 1.1, но прекращен в версии 1.5, которая использует другой метод обмена ключами и хранения. [ 8 ] Сервер J-PAKE Mozilla был отключен вместе с серверами хранения Sync 1.1 30 сентября 2015 года. [ 9 ] Pale Moon продолжает использовать J-PAKE как часть своей службы синхронизации. [ 10 ] С февраля 2013 года J-PAKE был добавлен в облегченный API в Bouncycastle (1.48 и более поздние версии). J-PAKE также используется в потоке (сетевом протоколе). [ 11 ]
Стандартизация
[ редактировать ]J-PAKE был включен в ISO/IEC 11770-4 (2017) в качестве международного стандарта. [ 12 ] Он также опубликован в RFC 8236.
Ссылки
[ редактировать ]- ^ Ф. Хао, П. Райан. Обмен ключами с аутентификацией паролем путем жонглирования . Материалы 16-го Международного семинара по протоколам безопасности, 2008 г.
- ^ Яблон, Дэвид (октябрь 1996 г.). «Обмен ключами с аутентификацией только по надежному паролю» . Обзор компьютерных коммуникаций ACM SIGCOMM . 26 (5): 5–26. CiteSeerX 10.1.1.57.4798 . дои : 10.1145/242896.242897 . S2CID 2870433 .
- ^ Ф. Хао, П. Райан. J-PAKE: обмен ключами с аутентификацией без PKI . Springer Transactions по вычислительной науке XI , Специальный выпуск по безопасности в вычислениях, Часть II, Vol. 6480, стр. 192-206, 2010.
- ^ М. Абдалла, Ф. Бенхамуда, П. Маккензи Безопасность протокола обмена ключами с аутентификацией по паролю J-PAKE .
- ^ Чаум, Дэвид (1988). «Проблема обедающих криптографов: безусловная неотслеживаемость отправителя и получателя» . Журнал криптологии . 1 : 65–75. дои : 10.1007/BF00206326 . S2CID 2664614 .
- ^ «Журнал CVS для src/usr.bin/ssh/Attic/jpake.c» . cvsweb.openbsd.org . Проверено 17 ноября 2023 г.
- ^ Лунный странник, Casio (2020). Smoke — программное обеспечение Android Echo Chat:: Personal Chat Messenger / Справочная документация технического веб-сайта с открытым исходным кодом . Нордерштедт: БПК. п. 44. ИСБН 9783752691993 .
- ^ «Новая модель безопасности Firefox Sync» . 30 апреля 2014 г.
- ^ «Отключение устаревшей службы синхронизации» . 31 июля 2015 г.
- ^ "Pale Moon обновлено до 25.7.3! - Форум Pale Moon" .
- ^ «Архивная копия» (PDF) . Архивировано из оригинала (PDF) 11 сентября 2015 г. Проверено 15 сентября 2015 г.
{{cite web}}
: CS1 maint: архивная копия в заголовке ( ссылка ) - ^ «ISO/IEC 11770-4:2017(ru)» . iso.org . Проверено 17 ноября 2023 г.