ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 05.12.2019
Просмотров: 12602
Скачиваний: 26
416
SA (rA, rB, В) под числом rA, полученным в открытом виде, числом rB,
которое было отослано в первом сообщении, и его идентификатором В.
Подписанное случайное число rA используется для предотвращения атак с
выборкой открытого текста.
3. Двусторонняя аутентификация с использованием случайных чисел:
A¬В:rB
А®В : certA , rA, В, SA (rA, rB, В)
А¬В : certB, А, SB (rA, rB, А)
В данном протоколе обработка сообщений 1 и 2 выполняется так же,
как и в предыдущем, а сообщение 3 обрабатывается аналогично сообщению
2.
4.2. Протоколы аутентификации с нулевой передачей значений
Широкое распространение интеллектуальных карт (смарт-карт) для
разнообразных коммерческих, гражданских и военных применений
(кредитные карты, карты социального страхования, карты доступа в
охраняемое помещение, компьютерные пароли и ключи и т.п.) потребовало
обеспечения безопасной идентификации и аутентификации таких карт и их
владельцев. Во многих приложениях главная проблема заключается в том,
чтобы при предъявлении интеллектуальной карты оперативно обнаружить
обман и отказать обманщику в допуске, ответе или обслуживании.
Для безопасной реализации процедур аутентификации разработаны
протоколы аутентификации с нулевой передачей знаний. Секретный ключ
владельца карты становится неотъемлемым признаком его личности.
Доказательство знания секретного ключа с нулевой передачей этого знания
служит доказательством подлинности личности владельца карты.
Аутентификацию с нулевой передачей знания можно реализовать при
помощи демонстрации знания секрета, однако проверяющий должен быть
лишен возможности получать дополнительную информацию о секрете
доказывающего, а точнее протоколы аутентификации в виде доказательства с
нулевым знанием позволяют установить истинность утверждения и при этом
не передавать какой-либо дополнительной информации о самом
утверждении.
4.2.1.Упрощенная схема аутентификации с нулевой передачей
знаний
417
Схему аутентификации с нулевой передачей знаний предложили в 1986
году У.Фейге, А. Фиат и А. Шамир. Она является наиболее известным
доказательством идентичности с нулевой передачей конфиденциальной
информации.
Выбирают случайное значение модуля n, который является
произведением двух больших простых чисел. Модуль n должен иметь длину
512-1024 бит. Это значение n может быть представлено группе
пользователей, которым придется доказывать свою подлинность. В процессе
идентификации участвуют две стороны:
сторона А, доказывающая свою подлинность;
сторона В, проверяющая представляемое стороной А доказательство.
Для того чтобы сгенерировать открытый и секретный ключи для
стороны А, доверенный арбитр (Центр) выбирает некоторое число У, которое
является квадратичным вычетом по модулю n. Иначе говоря, выбирается
такое число У, при котором сравнение х
2
º У (mod n) имеет решение и
существует целое число V-1 mod n.
Выбранное значение V является открытым ключом для А. Затем
наименьшее значение S, для которого Sº sqrt (V-1) (mod n).
Это значение S является секретным ключом для A.
Теперь можно приступить к выполнению протокола идентификации:
1. Сторона А выбирает некоторое случайное число r, r < n. Затем она
вычисляет x= r2 mod n и отправляет х стороне В.
2. Сторона В посылает А случайный бит b.
3. Если b = 0, тогда А отправляет r стороне В.
Если b = 1, то А отправляет стороне В у = r * S mod n. 4.
Если b = 0, сторона В проверяет, что х = r2 mod n, чтобы убедиться, что
А знает sqrt (х).
Если b = 1, сторона В проверяет, что х = y 2*V mod n, чтобы быть
уверенной, что А знает sqrt (V-1).
Эти шаги образуют один цикл протокола, называемый аккредитацией.
Стороны А и В повторяют весь цикл t раз при разных случайных значениях r
и b до тех пор, пока В не убедится, что А знает значение S. Если сторона А не
знает значения S, она может выбрать такое значение r, которое позволит ей
обмануть сторону В, если В отправит ей b = 0, либо А может выбрать такое r,
которое позволит обмануть В, если В отправит ей b = 1. Но этого невозможно
сделать в обоих случаях. Вероятность того, что А обманет В в одном цикле,
составляет 1/2. Вероятность обмануть В в t циклах равна (1/2) t
418
Для того чтобы данный протокол работал, сторона А никогда не
должна повторно использовать значение r. Если А поступила бы таким
образом, а сторона В отправила бы стороне А на шаге 2 другой случайный
бит b, то В имела бы оба ответа А. После этого В может вычислить значение
S, и для А все закончено.
4.2.2.Параллельная схема аутентификации с нулевой передачей
знаний
Параллельная схема аутентификации позволяет увеличить число
аккредитаций, выполняемых за один цикл, и тем самым уменьшить
длительность процесса аутентификации.
Сначала генерируется число n как произведение двух больших чисел.
Для того чтобы сгенерировать открытый и секретный ключи для стороны А,
сначала выбирают К различных чисел V
1
, V
2
, …V
к
, где каждое V
i
является
квадратичным вычетом по модулю n. Т.е. выбирают такое значение Vi, при
котором сравнение х
2
º Vi mod n имеет решение и существует Vi -1 mod n.
Полученная строка V
1
, V
2
, …V
к
является открытым ключом. Затем
вычисляют такие наименьшие значения Si, что Si= sqrt (Vi-1) mod n.
Эта строка S
1
, S
2
,… S
k
является секретным ключом стороны А.
Протокол процесса идентификации имеет следующий вид:
1.Сторона А выбирает некоторое случайное число r при условии, что r
< n.Затем она вычисляет х = r2mod n и посылает х стороне В.
2. Сторона В отправляет стороне А некоторую случайную двоичную
строку из К бит: b1 , b2, ... bк
3. Сторона А вычисляет у = r * (S1b * S2b *…* Skb ) mod n.
Перемножаются только те значения Si, для которых bi = 1. Например,
если bi = 1, то сомножитель Si, входит в произведение, если же b1 = 0, то Si
не входит в произведение, и т.д. Вычисленное значение у отправляется
стороне В.
4. Сторона В проверяет, что х = у2 * (V1b * V2b * ... *Vkb ) mod n.
Фактически сторона В перемножает только те значения Vi, для которых bi =
1. Стороны А и В повторяют этот протокол t раз, пока В не убедится, что А
знает S
1
,S
2
,…,Sk
Вероятность того, что А может обмануть В, равна (1/2)k.
5. Механизмы идентификации и аутентификации в
современных операционных системах.
419
5.1. Протокол идентификации и аутентификации в ОС Windows 2000
При входе в систему пользователь передает в системную функцию
LogonUser свое имя, пароль и имя рабочей станции или домена, в котором
данный пользователь зарегистрирован. Если пользователь успешно
идентифицирован, функция LogonUser возвращает указатель на маркер
доступа пользователя, который в дальнейшем используется при любом его
обращении к защищенным объектам системы.
Механизм идентификации и аутентификации пользователя в ОС Windows
2000 реализуется специальным процессом Winlogon, который активизируется
на начальном этапе загрузки ОС и остается активным на протяжении всего
периода ее функционирования. Ядро операционной системы регулярно
проверяет состояние данного процесса и в случае его аварийного завершения
происходит аварийное завершение работы всей операционной системы.
Помимо идентификации пользователя Winlogon реализует целый ряд других
функций, таких, как переключение рабочих полей (desktop), активизация
хранителей экрана, а также ряд сетевых функций.
Процесс Winlogon состоит из следующих модулей:
ядра процесса Winlogon.exe;
библиотеки GINA (Graphic Identification aNd Autentication - графической
библиотеки идентификации и аутентификации) - динамической библиотеки
функций, используемых для «локальной» идентификации пользователя
(идентификации пользователя на рабочей станции);
библиотек сетевой поддержки (Network Provider DLLs), реализующих
«удаленную»
идентификацию
пользователей
(идентификацию
пользователей, обращающихся к ресурсам сервера через сеть). В каждый
момент времени Winlogon может находиться в одном из следующих
состояний:
Рис..1. Временная диаграмма процессов аутентификации
420
Когда пользователь еще не вошел в систему, Winlogon находится в состоянии
1, пользователю предлагается идентифицировать себя и предоставить
подтверждающую информацию (в стандартной конфигурации - пароль). Если
информация, введенная пользователем, дает ему право входа в систему,
активизируется оболочка системы (как правило, Program Manager) и
Winlogon переключается в состояние 2.
Хотя в состоянии 1 ни один пользователь не может непосредственно
взаимодействовать с системой, в случае, если на рабочей станции запущен
Server Service, пользователи могут обращаться к ресурсам системы через
сеть.
Когда пользователь вошел в систему, Winlogon находится в состоянии 2. В
этом состоянии пользователь может прекратить работу, выйдя из системы,
или заблокировать рабочую станцию. В первом случае завершает все
процессы, связанные с завершающимся сеансом, и переключается в
состояние 1 . Во втором случае Winlogon выводит на экран сообщение о том,
что рабочая станция заблокирована и переключается в состояние 3.
В состоянии 3 Winlogon выводит на экран приглашение пользователю
идентифицировать себя и разблокировать рабочую станцию. Это может
сделать либо заблокировавший ее пользователь, либо администратор. В
первом случае система возвращается в то состояние, в котором находилась
непосредственно перед блокировкой, и переключается в состояние 2. Во
втором случае все процессы, связанные с текущим сеансом, завершаются, и
Winlogon переключается в состояние 1 .
Когда рабочая станция заблокирована, фоновые процессы, запущенные
пользователем до блокировки, продолжают выполняться. Сразу после
загрузки Winlogon инициализирует GINA, вызывая последовательно ее
функции WlxNegotiate и Wlxlnitialize. Рабочая станция переходит в состояние
«Пользователь не вошел в систему».
Когда пользователь собирается войти в систему с помощью комбинации
клавиш Ctrl-Alt-Del, Winlogon вызывает функцию WlxLoggedOutSas
библиотеки GINA. WlxLoggedOutSas осуществляет попытку входа в систему,
вызывая системную функцию LogonUser. В зависимости от информации,
введенной пользователем, GINA возвращает процессу Winlogon одно из
следующих значений:
WLX_SAS_ACTION_LOGON - пользователь вошел в систему. Получив это
значение, Winlogon вызывает функцию WlxActivateUserShell библиотеки
GINA, которая загружает индивидуальную оболочку пользователя;
WLX_SAS_ACTION_NONE - пользователь не смог войти в систему.
Состояние системы не изменяется;