Протокол Нидхема – Шредера - один из двух ключевых транспортных протоколов, предназначенных для использования в незащищенной сети, оба предложены Роджером Нидхэмом и Майклом Шредером . [1] Это:
- Needham-Schroeder Симметричный ключ протокол , основанный на алгоритме симметричного шифрования . Он составляет основу протокола Kerberos . Этот протокол предназначен для установления сеансового ключа между двумя сторонами в сети, как правило, для защиты дальнейшего обмена данными.
- Needham-Schroeder Public-Key протокол , основанный на криптографии с открытым ключом . Этот протокол предназначен для обеспечения взаимной аутентификации между двумя сторонами, общающимися в сети, но в его предлагаемой форме он небезопасен.
Симметричный протокол
Здесь Алиса инициирует общение с Бобом . это сервер, которому доверяют обе стороны. В сообщении:
- а также тождества Алисы и Боба соответственно
- симметричный ключ, известный только а также
- симметричный ключ, известный только а также
- а также являются одноразовые номера , генерируемые а также соответственно
- симметричный сгенерированный ключ, который будет сеансовым ключом сеанса между а также
Протокол может быть указан следующим образом в обозначении протокола безопасности :
- Алиса отправляет сообщение на сервер, идентифицируя себя и Боба, говоря серверу, что она хочет связаться с Бобом.
- Сервер генерирует и отправляет Алисе копию, зашифрованную под для Алисы, чтобы переслать Бобу, а также копию для Алисы. Поскольку Алиса может запрашивать ключи для нескольких разных людей, одноразовый номер гарантирует Алисе, что сообщение свежее и что сервер отвечает на это конкретное сообщение, а включение имени Боба говорит Алисе, с кем она должна поделиться этим ключом.
- Алиса пересылает ключ Бобу, который может расшифровать его с помощью ключа, которым он поделился с сервером, тем самым аутентифицируя данные.
- Боб отправляет Алисе одноразовый номер, зашифрованный под чтобы показать, что у него есть ключ.
- Алиса выполняет простую операцию с одноразовым номером, повторно шифрует его и отправляет обратно, подтверждая, что она все еще жива и что у нее есть ключ.
Атаки на протокол
Протокол уязвим для повторной атаки (как было определено Деннингом и Сакко [2] ). Если злоумышленник использует старое скомпрометированное значение для, он может затем воспроизвести сообщение Бобу, который примет его, будучи не в состоянии сказать, что ключ не свежий.
Исправляем атаку
Этот недостаток исправлен в протоколе Kerberos путем включения метки времени . Это также можно исправить с помощью одноразовых номеров, как описано ниже. [3] В начале протокола:
- Алиса отправляет Бобу запрос.
- Боб отвечает одноразовым идентификатором, зашифрованным под его ключом с Сервером.
- Алиса отправляет сообщение на сервер, идентифицируя себя и Боба, говоря серверу, что она хочет связаться с Бобом.
- Обратите внимание на включение одноразового номера.
Затем протокол продолжается, как описано в последних трех шагах, как описано в исходном протоколе выше . Обратите внимание, что отличается от . Включение этого нового одноразового номера предотвращает повторное воспроизведение скомпрометированной версии поскольку такое сообщение должно иметь форму который злоумышленник не может подделать, поскольку у него нет .
Протокол открытого ключа
Это предполагает использование алгоритма шифрования с открытым ключом .
Здесь Алиса и Боб использовать доверенный сервер распространять открытые ключи по запросу. Эти ключи:
- а также соответственно публичная и приватная половины пары ключей шифрования, принадлежащих ( здесь означает "секретный ключ")
- а также , аналогично принадлежащим
- а также , аналогично принадлежащим . (Обратите внимание, что эта пара ключей будет использоваться для цифровых подписей , т. Е. используется для подписи сообщения и используется для проверки. должно быть известно а также до начала протокола.)
Протокол работает следующим образом:
- Запросы открытые ключи от
- отвечает открытым ключом рядом удостоверение личности, подписанное сервером в целях аутентификации.
- выбирает случайный и отправляет его .
- теперь знает, что А хочет общаться, поэтому Запросы открытые ключи.
- Сервер отвечает.
- выбирает случайный , и отправляет его вместе с доказать способность дешифровать .
- подтверждает к , чтобы доказать способность дешифровать с помощью
В конце протокола а также знать личности друг друга и знать обоих а также . Эти одноразовые номера не известны перехватчикам.
Атака на протокол
Этот протокол уязвим для атаки «злоумышленник посередине» . Если самозванец может убедить чтобы начать сеанс с ними, они могут ретранслировать сообщения и убедить что он общается с .
Игнорирование трафика туда и обратно , который остается неизменным, атака выполняется следующим образом:
- отправляет к , который расшифровывает сообщение с помощью
- передает сообщение , делая вид, что общается
- отправляет
- передает это
- расшифровывает и подтверждает это , кто это узнает
- повторно шифрует , и убеждает что она расшифровала это
В конце атаки ложно полагает, что общается с ним, и это а также известны только а также .
Следующий пример иллюстрирует атаку. Алиса (A) хотела бы связаться со своим банком (B). Мы предполагаем, что самозванец (I) успешно убеждает A в том, что это банк. Как следствие, A использует открытый ключ I вместо использования открытого ключа B для шифрования сообщений, которые она намеревается отправить в свой банк. Следовательно, A отправляет мне свой одноразовый номер, зашифрованный открытым ключом I. Я расшифровываю сообщение, используя свой закрытый ключ, и связываюсь с B, отправляя ему одноразовый номер A, зашифрованный открытым ключом B. B не имеет возможности узнать, что это сообщение было фактически отправлено I. B отвечает своим собственным nonce и шифрует сообщение открытым ключом A. Поскольку I не владеет закрытым ключом A, они должны передать сообщение A, не зная содержимого. A расшифровывает сообщение своим закрытым ключом и отвечает одноразовым номером B, зашифрованным открытым ключом I. Я расшифровываю сообщение, используя свой закрытый ключ, и теперь у него есть одноразовые номера A и B. Таким образом, теперь они могут выдавать себя за банк. и клиент соответственно.
Устранение атаки "человек посередине"
Атака была впервые описана в статье 1995 года Гэвина Лоу . [4] В документе также описывается фиксированная версия схемы, называемая протоколом Нидхема – Шредера – Лоу . Исправление включает в себя модификацию шестого сообщения, чтобы включить идентификацию респондента, то есть мы заменяем:
с фиксированной версией:
и злоумышленник не может успешно воспроизвести сообщение, потому что A ожидает сообщения, содержащего идентификатор I, тогда как сообщение будет иметь идентификатор B.
Смотрите также
Рекомендации
- ^ Нидхэм, Роджер; Шредер, Майкл (декабрь 1978). «Использование шифрования для аутентификации в больших компьютерных сетях». Коммуникации ACM . 21 (12): 993–999. CiteSeerX 10.1.1.357.4298 . DOI : 10.1145 / 359657.359659 . S2CID 7704786 .
- ^ Деннинг, Дороти Э .; Сакко, Джованни Мария (1981). «Метки времени в протоколах распределения ключей». Коммуникации ACM . 24 (8): 533–535. DOI : 10.1145 / 358722.358740 . S2CID 3228356 .
- ^ Needham, RM ; Шредер, доктор медицины (1987). «Повторная проверка подлинности». Обзор операционных систем ACM SIGOPS . 21 (1): 7. DOI : 10.1145 / 24592.24593 . S2CID 33658476 .
- ^ Лоу, Гэвин (ноябрь 1995 г.). «Атака на протокол аутентификации с открытым ключом Нидхема-Шредера» . Письма об обработке информации . 56 (3): 131–136. CiteSeerX 10.1.1.394.6094 . DOI : 10.1016 / 0020-0190 (95) 00144-2 . Проверено 17 апреля 2008 .
Внешние ссылки
- Роджер Нидхэм и Майкл Шредер (1978). «Открытый ключ Нидхема-Шредера» . Laboratoire Spécification et Vérification.CS1 maint: использует параметр авторов ( ссылка )
- Роджер Нидхэм и Майкл Шредер (1978). «Симметричный ключ Нидхема Шредера» . Laboratoire Spécification et Vérification.CS1 maint: использует параметр авторов ( ссылка )
- Гэвин Лоу (1995). «Фиксированная версия открытого ключа Нидхема-Шредера Лоу» . Laboratoire Spécification et Vérification.CS1 maint: использует параметр авторов ( ссылка )