1.4.2. Аутентификация методом «запрос - ответ»
Параметры, меняющиеся во времени, используются для проти-водействия атакам на протокол методами повтора сеанса и включе-ния в канал. Они обеспечивают гарантии уникальности и актуальности каждого сеанса протокола. В криптографических протоколах широко используется такое понятие как свеоісесть (freshness) той или иной величины. Оно означает, что значение этой величины было сгенерировано в начале или в ходе выполнения текущего сеанса протокола.
В качестве таких параметров могут использоваться три типа величин, изменяющихся от сеанса к сеансу: это случайные числа, числовые последовательности и метки времени. При этом важно, чтобы была еще и гарантирована целостность этих одноразовых вели-чин, что обычно реализуется путем криптографической привязки их к другим данным, используемым в протоколе.
Наиболее просто реализуется выработка числовых последовательностей (члены последовательности обычно обозначают символом п с соответствующими индексами). В простейшем случае можно применить последовательность номеров сеансов выполняемого про-токола с увеличением на единицу в каждом последующем сеансе.
Недостатком этого способа является необходимость ведения участ-никами своих внутренних счетчиков последовательностей чисел.Случайные числа (обычно обозначают символом г с соответствующими индексами) легко генерировать всем сторонам протокола, при этом от участников не требуется поддержания какой-либо до-полнительной информации, как в предыдущем случае.
Наконец, в третьем случае, когда используются метки времени (timestamps)y сторона, генерирующая сообщение в протоколе, полу-чает метку времени со своих локальных часов (системного таймера) и криптографически привязывает ее к сообщению. Получатель берет текущее время со своих локальных часов (системного таймера) и сравнивает с величиной метки времени, полученной от партнера. Для использования этого метода необходимо выполнение следую-щих условий:
Разница между метками времени отправителя и получателя должна укладываться в определенный интервал времени фиксиро-ванного размера - окно принятия (acceptance window).
Ранее не должно было быть получено сообщений с идентич-ной меткой времени от того же отправителя. Это подтверждается проверкой по списку всех меток времени, полученных от каждого источника за период текущего окна принятия.
Часы должны быть синхронизированы и защищены от моди-фикации.
Преимущество метода в том, что он не требует поддержания внутренней информации (ни долговременной, ни кратковременной) и наличия каких-либо дополнительных устройств, так как часы (сис-темный таймер) есть практически на любой вычислительной плат-форме.
Основным международным стандартом по криптографическим протоколам аутентификации является стандарт Международной ор-ганизации по стандартизации и Международной электротехниче-ской комиссии ISO/IEC 9798 - Information technology - Security techniques - Entity authentication mechanisms, состоящий из пяти частей:
ISO/IEC 9798-1 - «General Model»;
ISO/EEC 9798-2 - «Mechanisms using symmetric encipherment algo-rithms»;
ISO/EEC 9798-3 - «Entity authentication using a public-key algorithm»;
ISO/IEC 9798^1 - «Mechanisms using a cryptographic check function»;
ISO/IEC 9798-5 - «Mechanisms using zero knowledge techniques».
Далее мы рассмотрим некоторые из протоколов, рекомендуемых .этим стандартом.
Протоколы «запрос — ответ» с использованием симметричных криптосхем.
В этих протоколах претендент и проверяющий имеют симметричный секретный ключ либо ключи парно- выборочной связи. Для их получения может использоваться дове-ренный сервер в режиме реального времени. Стандартом ISO/IEC 9798-2 предусмотрены три способа аутентификации (звездочками в таблицах обозначены необязательные компоненты сообщений):1. Односторонняя аутентификация, основанная на метке времени (табл. 1.11). Если у претендента и проверяющего есть синхро-низированные (в пределах погрешности) системные часы, нет необ-ходимости посылать запрос. Претендент сразу может направить со-общение с включенной в него меткой времени, а проверяющий - сверить метку с показаниями своих часов. Включение в сообщение идентификатора проверяющего предотвращает использование со-общения для аутентификации участника Р в протоколе с каким-либо другим проверяющим.
Таблица 1.11. Протокол односторонней аутентификации
с меткой времени р К - общий секретный ключ V EK(tP,V)
2. Односторонняя аутентификация с использованием случайных чисел (табл. 1.12). В качестве запроса проверяющим используется случайное число, поэтому он должен иметь генератор псевдослучайных чисел. Получив запрос, претендент вычисляет ответ на него, используя алгоритм симметричного шифрования, случайное число и (если необходимо) идентификатор V. Проверяющий расшифровывает полученный шифртекст и проверяет структуру запроса. Если она верна, он принимает претендента.
Таблица 1.12. Протокол односторонней аутентификации с использованием случайных чисел Р К- общий секретный ключ V <г rv ~ случайное число
3. Взаимная аутентификация с использованием случайных чисел (табл. 1.13). Отличие этого протокола от предыдущего в том, что здесь каждый из участников поочередно выполняет роли проверяющего и претендента, т. е. они проверяют аутентичность друг друга. Протокол взаимной аутентификации представляет собою два прото-кола односторонней аутентификации, «упакованных» в три пере- сылки сообщения.
Подобного рода протоколы в силу их симметричности называются протоколами рукопожатия.Таблица 1.13. Протокол взаимной аутентификации с использованием случайных чисел р К- общий секретный ключ V <Г rv - случайное число гР ~ случайное число, EA'v>rr)
Этот протокол допускает замену шифра на хеш-функцию с клю-чом, как указано в стандарте ISO/IEC 9798-4 (табл. 1.14).
Таблица 1.14. Протокол взаимной аутентификации с использованием случайных чисел (вариант с хеш-функциями) Р К - общий секретный ключ V <г rv - случайное число гр - случайное число, hK(rv,rp,P)
Для повышения стойкости протокола к передаваемым сообще-ниям могут добавляться метки времени.
Протоколы «запрос - ответ» с использованием асимметричных криптосхем. Можно выделить две группы таких протоколов: протоколы с использованием схем цифровой подписи и протоколы с использованием схем открытого шифрования. Перечислим те из них, которые рекомендованы в стандарте ISO/IEC 9798-3.
I. Протоколы с использованием цифровой подписи:
Односторонняя аутентификация с метками времени (табл. 1.15).
Односторонняя аутентификация со случайными числами (табл.1.16).
Взаимная аутентификация со случайными числами (табл.1.17).
Таблица 1.15. Протокол односторонней аутентификации с использованием схемы цифровой подписи (метка времени) р V certP,tP,V,SP(tP,V) Таблица 1.16. Протокол односторонней аутентификации с использованием схемы цифровой подписи (случайные числа) Р V гу - случайное число гР - случайное число, certp,rP,V>SP (rp,rViV*"j -> Таблица 1.17. Протокол взаимной аутентификации с использованием схем цифровой подписи р V Гу — случайное число гР — случайное число, certp, rp ,VySP{rp,rv,V*^ certv,P,Sv (rv,rp,p)
Относительно приведенных в табл. 1.15-1.17 протоколов умест-но будет сделать несколько замечаний.
В описаниях протоколов встречаются обозначения certP и certy. Так обозначены сертификаты открытых ключей цифровой подписи соответствующих участников протокола, т.
е. структуры данных, содержащие их идентификаторы, открытые ключи и другую слу-жебную информацию, заверенную цифровой подписью удостове-ряющего центра. Подробнее метод сертификации открытых ключей будет рассмотрен в гл. 2 .Протоколы, подобные описанным выше, используются также в стандарте Международного телекоммуникационного союза ГШ Х.509 (будет рассмотрен далее). В нем описаны протоколы аутенти-фикации, совмещенные с протоколами обмена ключами.
Как видим, в этих протоколах часто повторяется ситуация, когда один участник передает другому некоторый набор данных неболь-шого размера, подписанный цифровой подписью. В подобных случаях очень удобно бывает при реализации протокола использовать схему подписи с восстановлением сообщений (будет рассмотрена далее). Тогда нет необходимости передавать отдельно данные и отдельно подпись: данные можно извлечь из подписи при ее проверке. Таким образом, часть полей из сообщений можно устранить.
2. Протоколы с использованием схем открытого шифрования:
Односторонняя аутентификация (табл. 1.18) - использование хеш-функции позволяет проверяющему демонстрировать знание г, не разглашая его, тем самым предотвращая атаку с выбранным от-крытым текстом.
Взаимная аутентификация (табл. 1.19).
Таблица 1.18. Протокол односторонней аутентификации с использованием схем открытого шифрования р V г - случайное число [x = h(r),V,Ep(r,V)] Расшифровывает сообщение,
вычисляет х - h (/), сравнивает
?
х ~х, если да, то посылает г
Таблица 1.19. Протокол взаимной аутентификации с использованием схем открытого шифрования
Р У Г] - случайное число, Ev (г{, Р) -> г2 - случайное число, Ер (rt, г2 ) Г2