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

From CryptoWiki
Jump to: navigation, search
m (Краткая история)
m (Применение PAKE)
 
(One intermediate revision by one user not shown)
Line 2: Line 2:
  
 
==Краткая история==
 
==Краткая история==
Одним из первых представленных протоколов распределения ключей, основанных на паролях были [[Протоколы шифрованного распределения ключа|протоколы шифрованного распределения ключа]], описанные в [[Список литературы к разделу "Протоколы распределения ключей, основанные на паролях"#1|[1]]]. В этой работе рассмотрена так называемая гибридная схема, в которой пароль являлся лишь дополнением к публично доступному публичному ключу. Более каноничная считается формулировка протокола распределения ключей, основанного на пароле была представлена S. Bellovin и M. Merritt в 1992.[[Список литературы к разделу "Протоколы распределения ключей, основанные на паролях"#2|[2]]]
+
Одним из первых представленных протоколов распределения ключей, основанных на паролях были [[Протоколы шифрованного распределения ключа|протоколы шифрованного распределения ключа]], описанные в [[Список литературы к разделу Протоколы распределения ключей, основанные на паролях#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]]].
+
Первыми доказанно надежными протоколами распределения ключа, основанном на пароле считаеются протоколы, представленные в работах M. Bellare, D. Pointcheval, и P. Rogaway [[Список литературы к разделу Протоколы распределения ключей, основанные на паролях#3|[3]]], а также V. Boyko, P. MacKenzie, и S. Patel [[Список литературы к разделу Протоколы распределения ключей, основанные на паролях#4|[4]]].
Безопасность этих протоколов была доказана применительно к модели так называемого [[Случайный оракул|случайного оракула]]. Несколько позже были разработаны общие предположения о теоретических возможностях злоумышленника[[Список литературы к разделу "Протоколы распределения ключей, основанные на паролях"#5|[5]]] и было строго сформулировано обоснование осуществимости функционирования и безопасности протоколов в рамках всех принятых моделей.[[Список литературы к разделу "Протоколы распределения ключей, основанные на паролях"#6|[6]]]
+
Безопасность этих протоколов была доказана применительно к модели так называемого [[Случайный оракул|случайного оракула]]. Несколько позже были разработаны общие предположения о теоретических возможностях злоумышленника[[Список литературы к разделу Протоколы распределения ключей, основанные на паролях#5|[5]]] и было строго сформулировано обоснование осуществимости функционирования и безопасности протоколов в рамках всех принятых моделей.[[Список литературы к разделу Протоколы распределения ключей, основанные на паролях#6|[6]]]
  
 
Текущие стандарты для протоколов '''PAKE''' влючают в себя IETF RFC 2945, RFC 5054, RFC 5931, RFC 5998, RFC 6124, RFC 6617, RFC 6628, RFC 6631.
 
Текущие стандарты для протоколов '''PAKE''' влючают в себя IETF RFC 2945, RFC 5054, RFC 5931, RFC 5998, RFC 6124, RFC 6617, RFC 6628, RFC 6631.
  
 
==Применение PAKE==
 
==Применение PAKE==
Протоколы семейства '''PAKE''' являются одними из самых распространненных криптографических примитивов ввиду того факта, что распределение общего ключа необходимо для выполнения высокоуровневых задач, таких как, например, шифрование сообшений и/или вычисление имитовставки. При согласования общего ключа сторонам необходимо договориться об использовании информации, которой обладала бы каждая из стороны. Как известно, в настоящее время наиболее распространенным подходом к распределераспределению ключей является предварительный обмен открытыми ключами между сторонами и последующая отправка в зашифрованном виде распределяемого, криптографически стойкого ключа. Существует множество в точности таких и похожих протоколов, основанных, как правило, на протоколе Диффи-Хеллмана [[Список литературы к разделу "Протоколы распределения ключей, основанные на паролях"#7|[7]]]. Однако, все эти протоколы имеют один общий фундаментальный недостаток - они противостоят прослушиванию и не предоставляют механизмов какой бы то ни было аутентификации сторон, не говоря о подтверждении владения ключом для противодействия навязывания трафика. Таким образом, если сертификат, содержащий открытый ключ второй стороны был каким-то образом перехвачен злоумышленником и заменен собственным, то, при отсутствии у получателя знания действительного вида сертификата, прослушивание не будет обнаружено. Также применимость протоколов семейства PAKE может быть обоснована требованием интерактивности при угадывании пароля злоумышленником в отличие от абсолютной неинтерактивности в случае использования для аутентификации классических протоколов, основанных на протоколе Диффи-Хеллмана.  
+
Протоколы семейства '''PAKE''' являются одними из самых распространненных криптографических примитивов ввиду того факта, что распределение общего ключа необходимо для выполнения высокоуровневых задач, таких как, например, шифрование сообшений и/или вычисление имитовставки. При согласования общего ключа сторонам необходимо договориться об использовании информации, которой обладала бы каждая из стороны. Как известно, в настоящее время наиболее распространенным подходом к распределераспределению ключей является предварительный обмен открытыми ключами между сторонами и последующая отправка в зашифрованном виде распределяемого, криптографически стойкого ключа. Существует множество в точности таких и похожих протоколов, основанных, как правило, на протоколе Диффи-Хеллмана [[Список литературы к разделу Протоколы распределения ключей, основанные на паролях#7|[7]]]. Однако, все эти протоколы имеют один общий фундаментальный недостаток - они противостоят прослушиванию и не предоставляют механизмов какой бы то ни было аутентификации сторон, не говоря о подтверждении владения ключом для противодействия навязывания трафика. Таким образом, если сертификат, содержащий открытый ключ второй стороны был каким-то образом перехвачен злоумышленником и заменен собственным, то, при отсутствии у получателя знания действительного вида сертификата, прослушивание не будет обнаружено. Также применимость протоколов семейства PAKE может быть обоснована требованием интерактивности при угадывании пароля злоумышленником в отличие от абсолютной неинтерактивности в случае использования для аутентификации классических протоколов, основанных на протоколе Диффи-Хеллмана.  
  
 
Области применения '''PAKE''':
 
Области применения '''PAKE''':
Line 16: Line 16:
 
* согласование высокоэнтропийного криптографически стойкого ключа при использовании низкоэнтропийных паролей для взаимной аутентификации.
 
* согласование высокоэнтропийного криптографически стойкого ключа при использовании низкоэнтропийных паролей для взаимной аутентификации.
 
* некоторые классы протоколов позволяют избежать относительно вычислительно затратной процедуры генерации закрытого асимметричного ключа(RSA или ECDSA) аутентификации и/или подписи для одной из сторон, что позволяет использовать эти протоколы(EKE/SRP) для низкопроизводительных устройств(токены/смарт-карты).
 
* некоторые классы протоколов позволяют избежать относительно вычислительно затратной процедуры генерации закрытого асимметричного ключа(RSA или ECDSA) аутентификации и/или подписи для одной из сторон, что позволяет использовать эти протоколы(EKE/SRP) для низкопроизводительных устройств(токены/смарт-карты).
 
 
  
 
==Типы протоколов распределения ключей, основанных на паролях==
 
==Типы протоколов распределения ключей, основанных на паролях==

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