Протокол безопасного распределения ключей

From CryptoWiki
Jump to: navigation, search

Протокол безопасного распределения ключей известный под аббревиатурой SRP(Secure Remote Password) в англоязычных публикациях. Этот протокол является дополненным протоколом распределения ключей, основанном на паролях(PAKE). Как и подавляющее большинство протоколов распределения ключей, основанных на паролях, этот протокол предполагается к использованию в рамках клиент-серверной модели и не имеет прямых употреблений вне её, поэтому далее взаимодействие между клиентом и сервером рассматривается по-умолчанию и может не уточняться явно. Актуальной версией протокола является версия 6а.

Contents

Постановка задачи защиты передаваемой информации информации

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

Основные подходы к решению поставленной задачи

Согласно протоколу создается большой приватный ключ, распределяемый между участниками похожим на Диффи-Хеллмана образом, основываясь на знании пользователем пароля и наличии на сервере криптографического доказательства, полученного из пароля. Открытый ключ, в свою очередь, вычисляется из 2 случайный значений: одно из них сгенерировано на клиенте, а другое на сервере. В случае, если требуется организация защищенного соединения либо аутентификация протокол SRP более безопасен, чем SSH и работает с подписанными сообщениями быстрее протокола Диффи-Хеллмана. Также он независим от третьей доверенной стороны, в отличие от протокола Kerberos. Третья, в данный момент признанная неактуальной, версия протокола, описана в RFC 2945. Шестая версия протокола также используется для безопасной парольной аутентификации в протоколах TLS/SSL.

Описание основных криптографических конструкций

У протокола SRP существует ряд желательных свойств: он позволяет пользователям аутентифицироваться на сервере, устойчив к атакам подбора пароля по словарю и не требует наличия третьей доверенной стороны. Также этот протокол эффективно реализует доказательство с нулевым знанием клиента серверу. В 6 версии протокола, сообразно с установленными целями обеспечения защиты, возможна только одна попытка угадывания пароя за одну попытку соединения. Примечательной особенностью протокола SRP является тот факт, что даже имея в своей основе 1 или 2 скомпрометированных криптографических примитива он все еще остается безопасным.

SRP

Безопасность протокола SRP основана на проблеме дискретного логарифмирования в мультипликативной группе. Для наглядного объяснения взаимодействия клиента и сервера по протоколу SRP версии 6a приведена иллюстрация пошагового исполнения этого протокола.

SRP.png

Смотрите также

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