
- •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
3.1.2. Протокол 2. Асимметричная криптосистема
Обозначим открытый и секретный парные ключи абонента А через РКд и 8Кд соответственно. Протокол начинается с запроса открытого ключа абонента-респондента:
А -> AS: А, В. (IX.8)
Сервер аутентификации отвечает сообщением:
AS-»A: {PKB,B}SKAS. (IX.9)
Через SKas обозначен парный секретный ключ сервера. Предполагается, что А заранее знает парный открытый ключ РKas, необходимый для дешифрования принятого сообщения. Процедуры хранения, извлечения и применения ключа РKas должны отвечать требованиям повышенной безопасности. Подлог РKas означает полную дискредитацию сервера и вместе с ним всего протокола аутентификации.
Шифрование в (IX.9) выполняется не для того, чтобы гарантировать конфиденциальность, а для того, чтобы обеспечить целостность и аутентичность передаваемого сообщения. Необходимо, чтобы абонент А мог убедиться в аутентичности открытого ключа РКв. Для этого имя абонента В возвращается в сообщении (IX.9) вместе с его отрытым ключом. Абонент А знает имя абонента-респондента и всегда может его проверить.
Затем А посылает В сообщение:
А->В: {1А, А}РКв. (IX.10)
Абонент В дешифрует сообщение на парном секретном ключе и затем обращается к серверу за открытым ключом РKa:
B->AS: В, А, (IX.11)
AS->B: {PKA, A}SKAS. (IX. 12)
Шифрование в (IX. 12), как и в (IX.9), выполняется для обеспечения целостности и аутентичности сообщения сервера.
Для доказательства уникальности текущего сеанса необходимо выполнить следующие действия:
А->В: {1в}РКв. (IX. 14)
Рассмотренный протокол состоит из семи сообщений. Сохраняя в локальной базе данных открытые ключи абонентов А и В, можно избежать передачи сообщений (IX.8), (IX.9), (IX.11) и (IX. 12). В результате протокол будет состоять из трех сообщений.
Отметим, что, поскольку открытые ключи не являются секретными, злоумышленник может пытаться изымать сообщения легальных пользователей и вставлять свои собственные. Простейший способ защиты — использование преобразования вида {{данные} SKa} . Другой способ заключается во введении функции нумерации шифруемых сообщений. Так, номер текущего сообщения может вычисляться как функция его порядкового номера (например, текущий_номер := предыдущий_номер—1) и одноразового случайного значения Ia или Ib в зависимости от направления передачи. Еще один известный способ — метод одноразовых паролей S/KEY компании Bellcore [100]. При таком методе защиты злоумышленник не может воспроизвести легальный номер сообщения и, как следствие, не может вставить ложное сообщение в передаваемый поток.
3.2. Аутентификация при участии нескольких серверов
При рассмотрении протоколов аутентификации предполагалось, что оба абонента обслуживаются одним сервером. Однако А и В могут быть абонентами различных криптосетей и обслуживаться различными серверами аутентификации.
Специфика протокола аутентификации при участии нескольких серверов зависит от типа используемой криптосистемы — симметричной или асимметричной.
Рассмотрим протокол аутентификации для симметричной криптосистемы. Для вхождения в ключевой синхронизм абонент А должен передать абоненту В сообщение {Kg, A} B (сообщение (IX.3)). Предположим, что абонент А обслуживается сервером АSa, а абонент В — сервером АSв. Тогда в протоколе аутентификации должны участвовать оба сервера, так как только ASa может выполнить шифрование на ключе Кa и только АSв — на ключе Kb. Изменение протокола заключается в добавлении «рукопожатия» серверов между сообщениями (IX.1) и (IX.2):
ASA -> ASB: Ks, В, A, IA1, (IX.15)
ASв -> ASa: {Ks, А}Кв,1А1,А. (IX.16)
Предполагается, что предварительно серверы устанавливают аутентичный режим взаимодействия по протоколу 1. Секретные ключи серверов могут храниться, например, у мастер-сервера.
В случае применения асимметричной криптосистемы А может непосредственно взаимодействовать с сервером АSв. Для этого, однако, необходимо знать открытый ключ сервера.
Предположим, А знает открытый ключ РКasв и В знает РКas. Тогда А может непосредственно обмениваться сообщениями с сервером АSв (сообщения (IX.8) и (IX.9)), а В может обмениваться сообщениями с сервером АSв(сообщения (IX.11) и (IX.12)).
В обоих случаях использование локальных баз данных для хранения ключей позволяет сократить число сообщений до трех.