Протокол Нидхэма-Шредера — один из двух ключевых транспортных протоколов, предназначенных для использования в незащищенной сети, оба предложены Роджером Нидхэмом и Майклом Шредером . [1] Это:
Протокол симметричного ключа Нидхема -Шредера , основанный на алгоритме симметричного шифрования . Он составляет основу протокола Kerberos . Целью этого протокола является установление сеансового ключа между двумя сторонами в сети, обычно для защиты дальнейшего взаимодействия.
Протокол открытого ключа Нидхема-Шредера , основанный на криптографии с открытым ключом . Этот протокол предназначен для обеспечения взаимной аутентификации между двумя сторонами, общающимися в сети, но в предлагаемой форме он небезопасен.
Симметричный протокол
Здесь Алиса инициирует общение с Бобом . это сервер, которому доверяют обе стороны. В общении:
и являются личностями Алисы и Боба соответственно.
Алиса отправляет на сервер сообщение, идентифицируя себя и Боба, сообщая серверу, что она хочет связаться с Бобом.
Сервер генерирует и отправляет обратно Алисе копию, зашифрованную для Алисы, для пересылки Бобу, а также копию для Алисы. Поскольку Алиса может запрашивать ключи для нескольких разных людей, nonce уверяет Алису, что сообщение свежее и что сервер отвечает на это конкретное сообщение, а включение имени Боба сообщает Алисе, с кем ей следует поделиться этим ключом.
Алиса пересылает ключ Бобу, который может расшифровать его с помощью ключа, которым он делится с сервером, тем самым аутентифицируя данные.
Боб отправляет Алисе зашифрованный одноразовый номер, чтобы показать, что у него есть ключ.
Алиса выполняет простую операцию с одноразовым номером, повторно шифрует его и отправляет обратно, проверяя, что она все еще жива и что у нее есть ключ.
Атаки на протокол
Протокол уязвим для атаки повторного воспроизведения (как определили Деннинг и Сакко [2] ). Если злоумышленник использует старое, скомпрометированное значение для , он может затем воспроизвести сообщение Бобу, который примет его, будучи не в состоянии определить, что ключ устарел.
Исправление атаки
Этот недостаток исправлен в протоколе Kerberos путем включения временной метки . Это также можно исправить с помощью одноразовых номеров, как описано ниже. [3] В начале протокола:
Алиса отправляет Бобу запрос.
Боб отвечает с помощью nonce, зашифрованного под его ключом на Сервере.
Алиса отправляет на сервер сообщение, идентифицируя себя и Боба, сообщая серверу, что она хочет связаться с Бобом.
Обратите внимание на включение nonce.
Затем протокол продолжается, как описано, в течение последних трех шагов, как описано в исходном протоколе выше. Обратите внимание, что это другой одноразовый номер, чем . Включение этого нового nonce предотвращает воспроизведение скомпрометированной версии, поскольку такое сообщение должно иметь форму , которую злоумышленник не сможет подделать, поскольку у него нет .
Здесь Алиса и Боб используют доверенный сервер для распространения открытых ключей по запросу. Эти ключи:
и , соответственно, публичная и частная половины пары ключей шифрования, принадлежащей ( здесь означает «секретный ключ»)
и , аналогичные принадлежащие
и , аналогичные принадлежащие . (Обратите внимание, что эта пара ключей будет использоваться для цифровых подписей , т. е. использоваться для подписи сообщения и использоваться для проверки. Она должна быть известна до запуска протокола.)
Протокол работает следующим образом:
запрашивает открытые ключи у .
отвечает открытым ключом вместе с личностью , подписанным сервером в целях аутентификации.
выбирает случайный результат и отправляет его .
теперь знает, что A хочет общаться, поэтому запрашивает открытые ключи .
Сервер отвечает.
выбирает случайный и отправляет его вместе с , чтобы доказать способность расшифровать с помощью .
подтверждает , чтобы доказать способность расшифровать с помощью .
В конце протокола мы знаем личности друг друга, знаем обоих и . Эти одноразовые номера неизвестны перехватчикам.
Атака на протокол
Этот протокол уязвим для атаки «человек посередине» . Если самозванец сможет убедить начать с ним сеанс, он сможет передать сообщения и убедить , что он общается с .
Игнорируя входящий и исходящий трафик , который не изменяется, атака выполняется следующим образом:
отправляет , который расшифровывает сообщение с помощью .
передает сообщение , делая вид, что общается.
отправляет .
передает его .
расшифровывает и подтверждает это , который его узнает.
повторно шифрует и убеждает , что она его расшифровала.
В конце атаки ошибочно полагает, что с ним общаются и что известны только им и .
Следующий пример иллюстрирует атаку. Алиса ( ) хотела бы связаться со своим банком ( ). Мы предполагаем, что самозванец ( ) успешно убеждает , что он и есть банк. Как следствие, она использует открытый ключ вместо использования открытого ключа для шифрования сообщений, которые она намеревается отправить в свой банк. Поэтому отправляет ей nonce, зашифрованный открытым ключом . расшифровывает сообщение, используя свой закрытый ключ, и контакты отправляют его в зашифрованном виде с помощью открытого ключа . не имеет возможности узнать, что это сообщение на самом деле было отправлено . отвечает своим собственным nonce и шифрует сообщение открытым ключом . Поскольку у них нет закрытого ключа, им приходится передавать сообщение, не зная его содержания. А расшифровывает сообщение своим закрытым ключом и отвечает одноразовым номером, зашифрованным открытым ключом . расшифровывает сообщение, используя свой закрытый ключ, и теперь владеет nonce и . Таким образом, теперь они могут выдавать себя за банк и клиента соответственно.
Исправление атаки «человек посередине»
Атака была впервые описана в статье Гэвина Лоу в 1995 году . [4]
В документе также описывается фиксированная версия схемы, называемая протоколом Нидхэма-Шредера-Лоу . Исправление включает в себя изменение шестого сообщения, включив в него личность отвечающего, то есть мы заменяем:
с фиксированной версией:
и злоумышленник не может успешно воспроизвести сообщение, потому что A ожидает сообщение, содержащее идентификатор I, тогда как сообщение будет иметь идентификатор .
^ Нидхэм, Роджер; Шредер, Майкл (декабрь 1978 г.). «Использование шифрования для аутентификации в больших компьютерных сетях». Коммуникации АКМ . 21 (12): 993–999. CiteSeerX 10.1.1.357.4298 . дои : 10.1145/359657.359659. S2CID 7704786.
^ Лоу, Гэвин (ноябрь 1995 г.). «Атака на протокол аутентификации с открытым ключом Нидхэма – Шредера». Письма об обработке информации . 56 (3): 131–136. CiteSeerX 10.1.1.394.6094 . дои : 10.1016/0020-0190(95)00144-2 . Проверено 17 апреля 2008 г.
Внешние ссылки
Викискладе есть медиафайлы, связанные с протоколом Нидхэма-Шредера .
Роджер Нидэм; Майкл Шредер (1978). «Открытый ключ Нидхэма-Шредера». Лаборатория спецификации и проверки.
Роджер Нидэм; Майкл Шредер (1978). «Симметричный ключ Нидхэма Шредера». Лаборатория спецификации и проверки.
Гэвин Лоу (1995). «Фиксированная версия открытого ключа Нидхэма-Шредера Лоу». Лаборатория спецификации и проверки.
Объяснение атаки «человек посередине» от Computerphile .