4.7. Анализ протоколов ssh и ака
Протоколы SSH [35,36] и АКА [37] предназначены для аутентификации и конфиденциальной передачи сообщений в открытых сетях. Основу обоих протоколов составляют методы асимметричной криптографии. Анализ криптостойкости протоколов выполнен в [38].
Рассмотрим протоколы SHS и АКА. Введем некоторые, общие для обоих протоколов. обозначения:
• через А обозначим клиента, В — сервер, С — злоумышленника. Введенные обозначения используются в качестве уникальных идентификаторов абонентов;
• К а — открытый, а КА-1 — парный секретный ключ А;
• через КB h и КBs обозначим два открытых, а через KBh-1 и KBs-1 — два парных секретных ключа В. В SSH KBh выполняет функции долговременного, а КBs кратковременного ключа. В протоколе АКА KBs — одноразовый ключ;
• зашифрованный на ключе К открытый текст X обозначим через {X}K.. Каждый, кто знает {X}K и ключ, обратный к К, может получить X. Для симметричных криптосистем эти ключи совпадают. Для асимметричных криптосистем открытый и парный секретные ключи взаимно обратимы в указанном смысле. Если К --- секретный ключ, то асимметричное шифрование с целью получения {Х}к есть, по сути, вычисление цифровой подписи на ключе К. Иногда в шифротекст {Х}K вводится дополнительная избыточность, которая позволяет контролировать целостность принятого сообщения. Однако с точки зрения анализа криптостойкости протоколов это не существенно:
• через Н обозначена хэш-функция
• NA и NB — уникальные случайные одноразовые значения, генерируемые А и В соответственно. Для протокола AHA (но не для SSH) важно, чтобы эти значения хранились в секрете.
Предполагается, что при заданных А и КA сервер В может достоверно убедиться в том, что КA является открытым ключом А и что А является легальным абонентом криптосети. Аналогично А может убедится в подлинности ключа КBh . Однако А не имеет какой-либо исходной информации о KBh-1 , кроме той, которую он получает в ходе реализации протокола. Аутентификация открытых ключей выполняется при помощи сертификатов. Все транзакции и действия, связанные с передачей и обработкой сертификатов, исключены из рассмотрения с целью упрощения описания протоколов.
Протокол SSH позволяет реализовать несколько различных вариантов аутентификации. Рассмотрим случай аутентификации клиента при помощи методов асимметричной криптографии. Имеем следующий протокол:
№ Отправитель Получатель Сообщение
Основное назначение описанного протокола — обеспечить сеансовым ключом К абонентов А и В. При помощи сообщений 1 и 2 абоненты А и В обмениваются одноразовыми случайными значениями. В сообщении 3 В передает А свои открытые ключи. В сообщении 4 А передает В ключ К. Конфиденциальность этого сообщения обеспечивается шифрованием на открытых ключах KBs И KBh .- Значение хэш-функции предыдущего сообщения позволяет установить непрерывную ассоциацию между сообщениями текущего сеанса и гарантирует невозможность несанкционированного воспроизведения сообщений. А передает свой идентификатор и открытый ключ в сообщении 5. Уникальность сообщения подтверждается цифровой подписью значения хэш-функции идентификатора абонента А и одноразовых случайных значений NA и NB. Конфиденциальность сообщения обеспечивается шифрованием на ключе К', полученном из К, NA и NB.
Протокол уязвим, так как в сообщении 5 не содержится явной информации о К и В. Возможна атака, в ходе которой некоторый сервер С, обладающий открытыми ключами KCh и KCS может выдать себя за абонента А при установлении сеансового соединения между А и В. Для этого А должен предварительно установить сеансовое соединение с С. Когда это происходит, С немедленно устанавливает сеансовое соединение с В. Если при этом допускается, что одноразовые значения могут быть одинаковыми в двух различных сеансах, то С может использовать аутентичные, подтвержденные цифровой подписью, сообщения А для установления сеансового соединения с В.
В результате В уверен, что уникальный ключ К используется в сеансовом соединении с А. однако это не так — тот же самый ключ известен С.
Метод противодействия описанной атаке заключается в использовании дополнительной информации, включающей идентификатор, сертификат и открытые ключи В, а также некоторый уникальный идентификатор сеансового ключа (например, значение хэш-функции этого ключа). Необходимо отметить, что в последнюю версию протокола SSH внесены соответствующие изменения.
Отправитель Получатель Сообщение
Цель протокола — обеспечить абонентов А и В сеансовым ключом NA mod2 NB . В сообщениях 1 и 2 абоненты A и В обмениваются открытыми ключами. В сообщениях 3 и 4 абоненты обмениваются одноразовыми значениями NA и NB , которые впоследствии будут использованы для вычисления сеансового ключа. В сообщении 5 передается подписанное В одноразовое значение NA. Сообщение 6 — результат хэширования одноразового значения NB, зашифрованный на открытом ключе абонента В. В результате только А и В знают результирующий сеансовый ключ — асимметричное шифрование гарантирует полную конфиденциальность передаваемых сообщений.
В рассмотренном протоколе подлинность сообщений подтверждается цифровой подписью абонента В. Однако протокол АКА столь же уязвим, что и рассмотренный выше протокол SSH. Основной недостаток заключается в том. что протокол позволяет убедиться в подлинности NA, но не NB. В результате С может выдать себя за В при установлении сеансового соединения между А и В.
• Атака возможна, если А и В инициируют сеансовое соединение, а С перехватывает и выполняет замену некоторых сообщений. При этом С может не быть легальным абонентом криптосети.
№ Отправитель______Получатель Сообщение
С перехватывает сообщение 2 и выполняет замену открытого ключа KBS на свой собственный открытый ключ KCS. Данная манипуляция позволяет С, перехватив сообщение 3 раскрыть NA. После чего С может конфиденциально передать NA абоненту В (сообщение 3’). С может также изъять сообщение 4 и вместо него передать А другое сообщение 4' с известным С одноразовым значением NC. В конечном итоге С не может продолжить взаимодействие с В, но А уверен, что уникальный сеансовый ключ NA mod2 NC известен только А и В. Однако этот ключ известен также и С. Превентивная мера заключается в том. что подписанные В сообщения должны содержать дополнительную информацию. Последняя версия протокола содержит все необходимые дополнения и исправления.
- 1. Пароли
- 1.1. Противодействие раскрытию и угадыванию пароля
- 1.2. Противодействие пассивному перехвату
- 1.3. Защита при компрометации проверяющего
- 1.4. Противодействие несанкционированному воспроизведению
- 1.5. Одноразовые пароли
- 1.6. Метод «запрос-ответ»
- 2. Биометрические методы
- 3. Криптографические методы аутентификации
- 3.1. Аутентификация в режиме on-line
- 3.1.1. Протокол 1. Симметричная криптосистема
- 3.1.2. Протокол 2. Асимметричная криптосистема
- 3.2. Аутентификация при участии нескольких серверов
- 3.3. Организация серверов аутентификации
- 3.4. Аутентификация в режиме off-line
- 3.4.1. Протокол на основе симметричной криптосистемы
- 3.4.2. Протокол на основе асимметричной криптосистемы
- 3.5. Аутентификация с привлечением арбитра
- 3.5.1. Протокол 3. Симметричная криптосистема
- 3.5.2. Протокол 4. Асимметричная криптосистема
- 4. Анализ протоколов аутентификации
- 4.1. Протокол с сервером аутентификации
- 4.2. Протокол «запрос-ответ»
- 4.3. Протоколы на основе асимметричных криптосистем
- 4.4. Протокол с «двуликим Янусом»
- 4.5. Протокол стандарта х.509
- 4.6. Протокол для сетей подвижной радиосвязи
- 4.7. Анализ протоколов ssh и ака
- 5. В an-логика
- 6. Протокол Kerberos
- 6.1. Модель Kerberos
- 6.2. Этапы протокола Kerberos
- 6.3. Атрибуты
- 6.4. Сообщения Kerberos версии 5
- 6.5. Получение первоначального мандата
- 6.6. Получение мандатов прикладных серверов
- 6.7. Запрос услуги
- 6.8. Kerberos версии 4
- 6.9. Безопасность Kerberos