ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 05.12.2019

Просмотров: 12602

Скачиваний: 26

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
background image

 

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.Упрощенная схема аутентификации с нулевой передачей 

знаний 

 


background image

 

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  


background image

 

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. Механизмы идентификации и аутентификации в              

современных операционных системах. 

 


background image

 

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. Временная диаграмма процессов аутентификации 

 


background image

 

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  -  пользователь  не  смог  войти  в  систему. 

Состояние системы не изменяется;