Difference between revisions of "Протоколы распределения ключей, основанные на паролях"

From CryptoWiki
Jump to: navigation, search
m (исправлена опечатка)
m (Применение PAKE)
 
(5 intermediate revisions by one user not shown)
Line 1: Line 1:
Протокол распределения ключей, основанные на паролях - интерактивный протокол для двух или более сторон согласования криптографических ключей основанный на знании учасниками протокола общего пароля.
+
'''Протоколы распределения ключей, основанные на паролях'''('''PAKE''') - класс интерактивных протоколов, предусматривающий наличие для двух или более сторон согласования криптографических ключей основанный на знании учасниками протокола общего секрета; в общем случае - [[Пароль|пароля]].
  
Важной особенностью этого семейства протоколов является тот факт, что прослушивающий и вносящий изменения в передаваемые между сторонами данные злоумышленник не может получить достаточно информации для проведения атаки грубой силы на пароль без взаимодействия с участниками протокола при каждой попытке угадывания. Это означает, что высокий уровень безопасности может быть достигнут даже при использовании слабых паролей.  
+
==Краткая история==
 +
Одним из первых представленных протоколов распределения ключей, основанных на паролях были [[Протоколы шифрованного распределения ключа|протоколы шифрованного распределения ключа]], описанные в [[Список литературы к разделу Протоколы распределения ключей, основанные на паролях#1|[1]]]. В этой работе рассмотрена так называемая гибридная схема, в которой пароль являлся лишь дополнением к публично доступному публичному ключу. Более каноничная считается формулировка протокола распределения ключей, основанного на пароле была представлена S. Bellovin и M. Merritt в 1992.[[Список литературы к разделу Протоколы распределения ключей, основанные на паролях#2|[2]]]
 +
Однако, в представленной ими работе отсутствовало обоснование стойкости протокола к атакам с учетом различных моделей злоумышленника.
 +
Первыми доказанно надежными протоколами распределения ключа, основанном на пароле считаеются протоколы, представленные в работах M. Bellare, D. Pointcheval, и P. Rogaway [[Список литературы к разделу Протоколы распределения ключей, основанные на паролях#3|[3]]], а также V. Boyko, P. MacKenzie, и S. Patel [[Список литературы к разделу Протоколы распределения ключей, основанные на паролях#4|[4]]].
 +
Безопасность этих протоколов была доказана применительно к модели так называемого [[Случайный оракул|случайного оракула]]. Несколько позже были разработаны общие предположения о теоретических возможностях злоумышленника[[Список литературы к разделу Протоколы распределения ключей, основанные на паролях#5|[5]]] и было строго сформулировано обоснование осуществимости функционирования и безопасности протоколов в рамках всех принятых моделей.[[Список литературы к разделу Протоколы распределения ключей, основанные на паролях#6|[6]]]
 +
 
 +
Текущие стандарты для протоколов '''PAKE''' влючают в себя IETF RFC 2945, RFC 5054, RFC 5931, RFC 5998, RFC 6124, RFC 6617, RFC 6628, RFC 6631.
 +
 
 +
==Применение PAKE==
 +
Протоколы семейства '''PAKE''' являются одними из самых распространненных криптографических примитивов ввиду того факта, что распределение общего ключа необходимо для выполнения высокоуровневых задач, таких как, например, шифрование сообшений и/или вычисление имитовставки. При согласования общего ключа сторонам необходимо договориться об использовании информации, которой обладала бы каждая из стороны. Как известно, в настоящее время наиболее распространенным подходом к распределераспределению ключей является предварительный обмен открытыми ключами между сторонами и последующая отправка в зашифрованном виде распределяемого, криптографически стойкого ключа. Существует множество в точности таких и похожих протоколов, основанных, как правило, на протоколе Диффи-Хеллмана [[Список литературы к разделу Протоколы распределения ключей, основанные на паролях#7|[7]]]. Однако, все эти протоколы имеют один общий фундаментальный недостаток - они противостоят прослушиванию и не предоставляют механизмов какой бы то ни было аутентификации сторон, не говоря о подтверждении владения ключом для противодействия навязывания трафика. Таким образом, если сертификат, содержащий открытый ключ второй стороны был каким-то образом перехвачен злоумышленником и заменен собственным, то, при отсутствии у получателя знания действительного вида сертификата, прослушивание не будет обнаружено. Также применимость протоколов семейства PAKE может быть обоснована требованием интерактивности при угадывании пароля злоумышленником в отличие от абсолютной неинтерактивности в случае использования для аутентификации классических протоколов, основанных на протоколе Диффи-Хеллмана.
 +
 
 +
Области применения '''PAKE''':
 +
* обеспечение безопасного согласования общего ключа при условии контроля активным злоумышленником канала передачи данных между сторонами.
 +
* согласование высокоэнтропийного криптографически стойкого ключа при использовании низкоэнтропийных паролей для взаимной аутентификации.
 +
* некоторые классы протоколов позволяют избежать относительно вычислительно затратной процедуры генерации закрытого асимметричного ключа(RSA или ECDSA) аутентификации и/или подписи для одной из сторон, что позволяет использовать эти протоколы(EKE/SRP) для низкопроизводительных устройств(токены/смарт-карты).
  
 
==Типы протоколов распределения ключей, основанных на паролях==
 
==Типы протоколов распределения ключей, основанных на паролях==
Line 42: Line 56:
 
* [[Эффективный дополненный исключительно-парольный протокол распределения ключей|Эффективный дополненный исключительно-парольный протокол распределения ключей]] (AugPAKE) (RFC 6628)
 
* [[Эффективный дополненный исключительно-парольный протокол распределения ключей|Эффективный дополненный исключительно-парольный протокол распределения ключей]] (AugPAKE) (RFC 6628)
  
'''Получение ключей при использовании парольной аутентификации''' это процесс, в котором клиент получает статический ключ путем защищенного паролем обращения к серверу, который владеет
+
'''Получение ключей при использовании парольной аутентификации''' это процесс, в котором клиент получает статический ключ путем защищенного паролем обращения к серверу, который владеет информацией, ассоциируемой с конкретным паролем. Так, например существуют протоколы Форда и Калиски для получения ключей при использовании парольной аутентификации.  
информацие, ассоциируемой с конкретным паролем. Так, например существуют модификации Форда и Калиски для получения ключей при использовании парольной аутентификации.  
+
Если используются самые строгие правила безопасности, одна из сторон использует пароль только в сочетании с другими N (2 или более) серверами для получения статического ключа. В этом случае, сохранность пароля и ключа гарантированно выполняется даже в том случа, если N-1 серверов скомпрометированы.
При использовании самых строгих правил безопасности одна из сторон использует пароль только в сочетании с другими N (2 или более) серверами для получения статического ключа.  
+
Причем, сохранность пароля и ключа гарантированно выполняется даже в том случа, если N-1 серверо скомпрометированы.
+
  
==Краткая история==
+
== Глоссарий ==
 
+
Одним из первых представленных протоколов распределения ключей, основанных на паролях были [[Протоколы шифрованного распределения ключа|протоколы шифрованного распределения ключа]], описанные Steven M. Bellovin и Michael Merritt в 1992. Несмотря на уязвимость нескольких первых протоколов, усовершенствованные формы протоколов шифрованного расределения ключа позволяют эффективно расширить общий пароль до общего ключа, что может быть использовано при шифровании и/или аутентификации.
+
Первыми доказанно надежными протоколами распределения ключа, основанном на пароле считаеюся протоколы, представленные в работах M. Bellare, D. Pointcheval, и P. Rogaway (Eurocrypt 2000), а также V. Boyko, P. MacKenzie, и S. Patel (Eurocrypt 2000).
+
Безопасность этих протоколов была доказана применительно к модели так называемого [[Случайный оракул|случайного оракула]].
+
 
+
Первый протокол получения ключей при использовании парольной аутентификации был описан Фордом и Калиски в 2000.
+
 
+
Существенная часть альтернативных, безопасных протоколов распределения ключа, основаанных на паролях, была прелставлена в работах M. Bellare, D. Pointcheval, и P. Rogaway. У них, в свою очередь, существуют различные вариации, а также доказательства их безопасности, предлагаемые для растущего числа классов протоколов применимо к различным моделям.
+
 
+
Текущие стандарты для этих протоколов влючают в себя IETF RFC 2945, RFC 5054, RFC 5931, RFC 5998, RFC 6124, RFC 6617, RFC 6628, RFC 6631.
+
 
+
==Смотрите также==
+
 
* [[Криптографический протокол]]
 
* [[Криптографический протокол]]
 
* [[Пароль]]
 
* [[Пароль]]
Line 65: Line 65:
 
* [[Случайный оракул]]
 
* [[Случайный оракул]]
  
==Ссылки==
+
==Библиографический указатель==
*T. Wu. The SRP-3 Secure Remote Password Protocol.  IETF RFC 2945.
+
 
*D. Taylor, T. Wu, N. Mavrogiannopoulos, T. Perrin. Using the Secure Remote Password (SRP) Protocol for TLS Authentication.  IETF RFC 5054.
+
Перейти к [[Список литературы к разделу Протоколы распределения ключей, основанные на паролях |списку литературы]] по разделу ''Протоколы распределения ключей, основанные на паролях''.
*D. Harkins, G.Zorn. Extensible Authentication Protocol (EAP) Authentication Using Only a Password. IETF RFC 5931.
+
 
*Y. Sheffer, G. Zorn, H. Tschofenig, S. Fluhrer. ''An EAP Authentication Method Based on the Encrypted Key Exchange (EKE) Protocol''. IETF RFC 6124.
+
[[ Оглавление| Вернуться к оглавлению]]
*D. Harkins. Secure Pre-Shared Key (PSK) Authentication for the Internet Key Exchange Protocol (IKE). IETF RFC 6617.
+
*ISO/IEC 11770-4:2006 Information technology—Security techniques—Key management—Part 4: Mechanisms based on weak secrets.
+
  
==Внешние ссылки==
+
Гoлoвчeнko А., 2015
* [http://grouper.ieee.org/groups/1363/index.html IEEE P1363 Working Group]
+
* [http://ieeexplore.ieee.org/servlet/opac?punumber=4773328 IEEE Std 1363.2-2008: IEEE Standard Specifications for Password-Based Public-Key Cryptographic Techniques]
+
* [http://jablon.org/passwordlinks.html David Jablon's links for password-based cryptography]
+
* [http://www.di.ens.fr/~mabdalla/papers/AbPo05a-letter.pdf Simple Password-Based Encrypted Key Exchange Protocols Abdalla et al 2005]
+

Latest revision as of 18:50, 22 November 2015

Протоколы распределения ключей, основанные на паролях(PAKE) - класс интерактивных протоколов, предусматривающий наличие для двух или более сторон согласования криптографических ключей основанный на знании учасниками протокола общего секрета; в общем случае - пароля.

Contents

Краткая история

Одним из первых представленных протоколов распределения ключей, основанных на паролях были протоколы шифрованного распределения ключа, описанные в [1]. В этой работе рассмотрена так называемая гибридная схема, в которой пароль являлся лишь дополнением к публично доступному публичному ключу. Более каноничная считается формулировка протокола распределения ключей, основанного на пароле была представлена S. Bellovin и M. Merritt в 1992.[2] Однако, в представленной ими работе отсутствовало обоснование стойкости протокола к атакам с учетом различных моделей злоумышленника. Первыми доказанно надежными протоколами распределения ключа, основанном на пароле считаеются протоколы, представленные в работах M. Bellare, D. Pointcheval, и P. Rogaway [3], а также V. Boyko, P. MacKenzie, и S. Patel [4]. Безопасность этих протоколов была доказана применительно к модели так называемого случайного оракула. Несколько позже были разработаны общие предположения о теоретических возможностях злоумышленника[5] и было строго сформулировано обоснование осуществимости функционирования и безопасности протоколов в рамках всех принятых моделей.[6]

Текущие стандарты для протоколов PAKE влючают в себя IETF RFC 2945, RFC 5054, RFC 5931, RFC 5998, RFC 6124, RFC 6617, RFC 6628, RFC 6631.

Применение PAKE

Протоколы семейства PAKE являются одними из самых распространненных криптографических примитивов ввиду того факта, что распределение общего ключа необходимо для выполнения высокоуровневых задач, таких как, например, шифрование сообшений и/или вычисление имитовставки. При согласования общего ключа сторонам необходимо договориться об использовании информации, которой обладала бы каждая из стороны. Как известно, в настоящее время наиболее распространенным подходом к распределераспределению ключей является предварительный обмен открытыми ключами между сторонами и последующая отправка в зашифрованном виде распределяемого, криптографически стойкого ключа. Существует множество в точности таких и похожих протоколов, основанных, как правило, на протоколе Диффи-Хеллмана [7]. Однако, все эти протоколы имеют один общий фундаментальный недостаток - они противостоят прослушиванию и не предоставляют механизмов какой бы то ни было аутентификации сторон, не говоря о подтверждении владения ключом для противодействия навязывания трафика. Таким образом, если сертификат, содержащий открытый ключ второй стороны был каким-то образом перехвачен злоумышленником и заменен собственным, то, при отсутствии у получателя знания действительного вида сертификата, прослушивание не будет обнаружено. Также применимость протоколов семейства PAKE может быть обоснована требованием интерактивности при угадывании пароля злоумышленником в отличие от абсолютной неинтерактивности в случае использования для аутентификации классических протоколов, основанных на протоколе Диффи-Хеллмана.

Области применения PAKE:

  • обеспечение безопасного согласования общего ключа при условии контроля активным злоумышленником канала передачи данных между сторонами.
  • согласование высокоэнтропийного криптографически стойкого ключа при использовании низкоэнтропийных паролей для взаимной аутентификации.
  • некоторые классы протоколов позволяют избежать относительно вычислительно затратной процедуры генерации закрытого асимметричного ключа(RSA или ECDSA) аутентификации и/или подписи для одной из сторон, что позволяет использовать эти протоколы(EKE/SRP) для низкопроизводительных устройств(токены/смарт-карты).

Типы протоколов распределения ключей, основанных на паролях

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

  • Сбалансированные протоколы распределения ключей, основанные на паролях
  • Дополненные протоколы распределения ключей, основанные на паролях
  • Получение ключей при использовании парольной аутентификации
  • Протоколы, предусматривающие наличие нескольких серверов
  • Протоколы, предусматривающие наличие нескольких взаимодействующих сторон

В самых строгих, исключительно парольных протоколах отсутствуют требования к пользователю, предписывающие ему запоминать какое-либо секретное значение или другие публично доступные данные кроме, непосредственно, пароля.

Протокол распределения ключей с парольной аутентификацией(Password Authenticated Key Exchange) (PAKE) подразумевает две или более сторон, основываясь только на их знании пароля вырабатывают криптографический ключ используя обмен сообщениями, причем неавторизованная сторона(контролирующая канал связи, но не имеющая пароля), не может учавствовать в выполнении протокола и ограничена, насколько это возможно, от попыток атаки перебора на пароль. В идеальном случае, попытка атаки перебора может производиться только один раз в итерацию протокола согласования ключа.

Существуют сбалансированная и дополненная форма протоколов распределения ключей с парольной аутентификацией.

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

Дополненный протокол распределения ключей с парольной аутентификацией это вариация стандартного протокола, применяемая к клиент-серверным системам, в которых сервер не хранит данных, эквивалентных паролю. Это означает, что злоумышленник, получивший доступ к данным на стороне сервера, даже в этом случае не может выдать себя за клиента, если только он не провел заранее атаку грубой силы на подбор пароля. Примеры дополненных протоколов распределения ключей с парольной аутентификацией:

Получение ключей при использовании парольной аутентификации это процесс, в котором клиент получает статический ключ путем защищенного паролем обращения к серверу, который владеет информацией, ассоциируемой с конкретным паролем. Так, например существуют протоколы Форда и Калиски для получения ключей при использовании парольной аутентификации. Если используются самые строгие правила безопасности, одна из сторон использует пароль только в сочетании с другими N (2 или более) серверами для получения статического ключа. В этом случае, сохранность пароля и ключа гарантированно выполняется даже в том случа, если N-1 серверов скомпрометированы.

Глоссарий

Библиографический указатель

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

Вернуться к оглавлению

Гoлoвчeнko А., 2015