Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Все лекции ИБ.doc
Скачиваний:
45
Добавлен:
24.12.2018
Размер:
1.54 Mб
Скачать

Использование сертификатов

Метод достижения одновременно аутентичности и целостности при распределении открытых ключей заключается в использовании сертификатов.

Система, основанная на сертификатах, предполагает, что имеется центральный орган (ЦО), как и в случае распределения секретных ключей. Далее предполагается, что каждый пользователь может осуществлять безопасное взаимодействие с ЦО. Для этого требуется, чтобы у каждого пользователя был открытый ключ ЦО – ЕЦО. Тогда каждый пользователь А может зарегистрировать в ЦО свой открытый ключ ЕА. Поскольку ЕД является открытым, это можно сделать по почте, по открытому каналу электросвязи и т.п.

Обычно при регистрации в ЦО А будет следовать определенной аутентификационной процедуре. Альтернативным вариантом может быть обработка регистрации системой, имеющей древовидную структуру: ЦО выдает сертификаты местным представителям, которые в дальнейшем действуют в качестве посредников в процессе регистрации пользователя на более низких уровнях иерархии.

В любом случае, в ответ А получает сертификат, подписанный ЦО и содержащий ЕА, т.е. ЦО формирует сообщение М, содержащее ЕА, идентификационную информацию для А (IА), период действия сертификата и т.п.

Затем ЦО вычисляет CERTА = DЦО(М), который и становится сертификатом A. CERTA делается общедоступным документом, который содержит ЕА и одновременно аутентифицирует его, поскольку сертификат подписан ЦО.

Сертификаты могут распространяться ЦО, пользователями или использоваться в иерархической системе. Включение срока действия является обобщением временного штампа, что обеспечивает защиту от использования скомпрометированных ключей.

Однако, проблема устаревших данных не может быть решена только с помощью временных штампов, поскольку сертификат может стать недействительным до истечения срока его действия вследствие компрометации или по административным причинам. Поэтому, если сертификаты хранятся у пользователей (а не выдаются каждый раз ЦО при их использовании), ЦО должен время от времени публиковать списки аннулированных сертификатов.

Некоторые свойства рассмотренных схем могут быть объединены в подход, известный под названием "телефонный справочник", с использованием электронного эквивалента, такого как гибкий диск, содержащий сертификаты. Это облегчит использование, поскольку пользователь сможет быстро связаться с другим, очень быстро получая доступ к сертификату последнего.

Протоколы аутентификации

Предположим, что А желает установить связь с В, получил сертификационный путь от А до В, например обратившись к каталогу, и использовал этот путь для получения открытого ключа В.

Пусть Iа – идентификатор стороны А; DA – секретное криптопреобразование стороны А (секретный ключ); ЕА – открытое криптопреобразование стороны А (открытый ключ); TА – временной штамп стороны А; RА – случайное число, выбранное стороной А; СА – сертификат стороны.

IB – идентификатор стороны В; DB – секретное криптопреобразование стороны В (секретный ключ); EB – открытое криптопреобразование стороны В (открытый ключ); TB – временной штамп стороны В; RB – случайное число, выбранное стороной В.

Идентификаторы – это уникальные имена А и В. Временной штамп, включаемый в сообщение М, содержит также дату истечения срока действия М. Дополнительно он также может включать время создания М.

Случайные числа могут быть заменены последовательными числами, которые не должны повторяться в течение срока действия, указанного во временном штампе в том же сеансе связи.

Тогда односторонний протокол аутентификации будет выглядеть следующим образом:

Пользователь А:

1. Выбирает RA.

2. Формирует сообщение М = (ТА, RA, IB, данные), где данные произвольны. Данные могут быть зашифрованы с помощью EB для секретности, например, когда А передает В ключ шифрования данных.

3. Посылает (СА, DA(M)) пользователю В.

Пользователь В:

1. Расшифровывает СА и получает ЕА. Проверяет дату окончания срока действия сертификата;

2. Использует ЕА для расшифрования DA(M), проверяя как подлинность подписи А, так и целостность подписанной информации.

3. Проверяет IB, содержащееся в М, на точность.

4. Проверяет ТА в М.

5. Дополнительно проверяет RA, содержащееся в М.

Широкое распространение основанных на интеллектуальных картах систем доступа для различного рода приложений (как гражданского, так и военного назначения) потребовало создать схему обеспечения безопасной аутентификации субъекта. При этом секретный ключ владельца карты становится неотъемлемым признаком его личности, и для обеспечения защитs от возможной компрометации этого ключа был предложен ряд схем, называемых протоколами доказательства с нулевым разглашением или с нулевым знанием, подтверждающий полномочия субъекта, не раскрывая значения секретного ключа.

Первая схема подобного рода предложена в 1986 г. Фейге, Фиатом и Шамиром. Суть ее состоит в следующем:

Для группы пользователей, которым придется доказывать свою подлинность, выбирается большое (длиной более 512 бит) случайное целое число n, являющееся произведением двух простых чисел.

В процессе аутентификации участвуют две стороны: сторона А, доказывающая свою подлинность, и сторона В – проверяющий.

Доверенный арбитр (центр распределения ключей) выбирает некоторое целое число v, являющееся квадратичным вычетом по модулю п, т.е. сущ. x : x2 = v(mod n) , и взаимно простым с n. Это значение v передается А в качестве открытого ключа. Затем вычисляется наименьшее значение s, такое что s = (v1)1/ 2 (mod n). Это значение будет секретным ключом стороны А.

Далее протокол аутентификации выглядит следующим образом:

1. Сторона А выбирает случайное число r, 0 < r < n. Затем она вычисляет х = r2 mod n и отправляет его стороне В.

2. Сторона В посылает А случайный бит b.

3. Если b = 0, то А отправляет В число r. Если b = 1, то А отправляет В: у = r*s (mod n).

4. Если b = 0, то В проверяет, что х = r2 (mod n), чтобы убедиться, что А знает квадратный корень из х. Если b = 1, то сторона В проверяет, что х =y2*v (mod n), чтобы убедиться, что А знает квадратный корень из v–1.

Шаги 1–4 образуют один цикл протокола. Стороны повторяют этот цикл t раз при разных случайных значениях r и b. Если сторона А не знает значения s, она может выбрать такое r, которое позволит ей обмануть В в случае b = 0 или b = 1, но не в обоих случаях одновременно. Вероятность обмана в одном цикле составляет 0,5. Вероятность обмана в t циклах равна 2–t.

Недостатком данной схемы является большое число циклов протокола, необходимое для доказательства с требуемой вероятностью, если эта вероятность достаточно мала.

Способ, требующий только одного раунда обмена, но требующий большего объема вычислений, был предложен Гиллоу и Кискатером.

Пусть I – идентификационная информация стороны А (или значение ее хэш-функции); n – открытое произведение двух секретных простых чисел; v – открытое значение (показатель степени).

Секретный ключ g стороны А выбирается так, что Igv =1(mod n) .

Сторона А отправляет В свои идентификационные данные I. Протокол доказательства:

1. А выбирает случайное целое r (1 < r < n – 1), вычисляет Т = rv (mod n) и отправляет это значение стороне В.

2. В выбирает случайное целое d (1 < d < n – 1) и отправляет это число стороне А.

3. А вычисляет D = rgd (mod n) и отправляет это значение В.

4. В вычисляет Т' =DvId (mod n) и проверяет выполнение равенства Т'= Т. Если оно выполняется, то проверка считается завершенной успешно.