Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
88
Добавлен:
05.02.2016
Размер:
7.84 Mб
Скачать

411

(«клавиатурный почерк») позволяет построить достаточно надежные средства идентификации. В случае обнаружения изменения «клавиатурного почерка» пользователя ему автоматически запрещается работа на ЭВМ.

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

8.2. Строгая аутентификация Идея строгой аутентификации, реализуемая в криптографических

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

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

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

В соответствии с рекомендациями стандарта Х.509 различают процедуры строгой аутентификации следующих типов:

·односторонняя аутентификация;

·двусторонняя аутентификация;

·трехсторонняя аутентификация.

Односторонняя аутентификация предусматривает обмен информацией только в одном направлении.

412

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

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

В зависимости от используемых криптографических алгоритмов протоколы строгой аутентификации можно разделить на следующие группы:

·протоколы строгой аутентификации на основе симметричных алгоритмов шифрования;

·протоколы строгой аутентификации на основе однонаправленных ключевых хэш-функций;

·протоколы строгой аутентификации на основе асимметричных алгоритмов шифрования;

·протоколы строгой аутентификации на основе алгоритмов электронной цифровой подписи.

8.2.1. Протоколы аутентификации с симметричными алгоритмамишифрования

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

Рассмотрим следующие варианты аутентификации:

·односторонняя аутентификация с использованием меток времени;

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

чисел;

·двусторонняя аутентификация.

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

r A - случайное число, сгенерированное участником А; r B - случайное число, сгенерированное участником В; tA - метка времени, сгенерированная участником А;

Ек - симметричное шифрование на ключе К (ключ К должен быть предварительно распределен между А и В).

1. Односторонняя аутентификация, основанная на метках времени:

A® В: Ек (tA, В)

413

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

2.Односторонняя аутентификация, основанная на использовании случайных чисел:

A¬В: rB

А ® В : Ек (r B, В)

Участник В отправляет участнику А случайное число r B. Участник

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

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

А ¬ В : r B

A ® B: Ек (r A, r B, B)

А¬В : Ек (r A, r B)

При получении второго сообщения участник В выполняет те же

проверки, что и в предыдущем протоколе, и дополнительно расшифровывает случайное число r A для включения его в третье сообщение для участника А.

Третье сообщение, полученное участником А, позволяет ему убедиться на основе проверки значений r A, r В и, что он имеет дело именно

сучастником В.

8.2.2.Протоколы, основанные на использовании однонаправленных ключевых хэш-функций

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

Односторонняя хэш-функция hK (.) С параметром-ключом К, примененная к шифруемым данным М, дает в результате хэш-значение m (дайджест), состоящее из фиксированного небольшого числа байтов. Дайджест m = hK (М) передается получателю вместе с исходным сообщением М. Получатель сообщения, зная, какая односторонняя хэшфункция была применена для получения дайджеста, заново вычисляет ее, используя расшифрованное сообщение М. Если значения полученного

414

дайджеста m и вычисленного дайджеста m' совпадают, значит, содержимое сообщения М не было подвергнуто никаким изменениям.

Знание дайджеста не дает возможности восстановить исходное сообщение, но позволяет проверить целостность данных. Дайджест можно рассматривать как своего рода контрольную сумму для исходного сообщения. Однако между дайджестом и обычной контрольной суммой имеется и существенное различие. Контрольную сумму используют как средство про верки целостности передаваемых сообщений по ненадежным линиям связи. Это средство проверки не рассчитано на борьбу со злоумышленниками, которым в такой ситуации ничто не мешает подменить сообщение, добавив к нему новое значение контрольной суммы. Получатель

втаком случае не заметит никакой подмены.

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

Существует другой вариант использования односторонней хэшфункции для про верки целостности данных. В этом случае односторонняя хэш-функция h (.) не имеет параметра-ключа, но зато применяется не просто к сообщению М, а к сообщению, дополненному секретным ключом К, то есть отправитель вычисляет дайджест m = h (М, К). Получатель, извлекая исходное сообщение М, также дополняет его тем же известным ему секретным ключом К, после чего применяет к полученным данным одностороннюю хэш-функцию h (.). Результат вычислений – дайджест m’ - сравнивается с полученным по сети дайджестом m.

8.2.3. Аутентификация с использованием асимметричныхалгоритмов шифрования

Вкачестве примера протокола, построенного на использовании асимметричного алгоритма шифрования, можно привести следующий протокол аутентификации:

А¬В : h (r), В, РA (r, В)

A®B:r

Участник В выбирает случайным образом r и вычисляет значение х = h (r)при условии, что значение х демонстрирует знание r без раскрытия самого значения r; далее он вычисляет значение е = РA (r, В). Под РA подразумевается алгоритм асимметричного шифрования (например, RSA), а под h ( ) - хэш-функция. Участник В отправляет сообщение (1) участнику А. Участник А расшифровывает е = РA (r, В) и получает значения r1 и В1, а также вычисляет х1 = h (r1). После этого производится ряд сравнений,

415

доказывающих, что х = х1 И что полученный идентификатор В1 действительно указывает на участника В. В случае успешного проведения сравнения участник А посылает r. Получив его, участник В проверяет, то ли это значение, которое он отправил в первом сообщении. Еще одним примером аутентификации с использованием асимметричных алгоритмов является модифицированный протокол Нидхэма и Шредера.

Протокол имеет следующую структуру:

А®В : РВ (r1, А)

А¬В : РA (r2, r1)

А®В : r2

Под РВ подразумевается алгоритм шифрования открытым ключом участника В.

8.2.4. Аутентификация, основанная на использовании цифровой подписи

В рекомендациях стандарта Х.509 специфицирована схема аутентификации, основанная на использовании цифровой подписи, меток времени и случайных чисел.

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

tА, rA, rBвременная метка и случайные числа соответственно; SA - подпись, сгенерированная участником А;

SB - подпись, сгенерированная участником В; certA - сертификат открытого ключа участника А; certB - сертификат открытого ключа участника В.

Если участники имеют аутентичные открытые ключи, полученные друг от друга, то можно не пользоваться сертификатами; в противном случае они служат для подтверждения подлинности открытых ключей. В качестве примеров можно привести следующие протоколы аутентификации:

1. Односторонняя аутентификация с применением меток времени:

А®В : certA, tA, В, SA (tA, В)

После принятия данного сообщения участник В проверяет правильность метки времени tA, полученный идентификатор В и, используя открытый ключ из сертификата certA, корректность цифровой подписи

SA(tA, В).

2. Односторонняя аутентификация с использованием случайных чисел: A¬B: rB

А®В : certA, rA В, SA(rA, В)

Участник В, получив сообщение от участника А, убеждается, что именно он является адресатом сообщения; используя открытый ключ участника А, взятый из сертификата certA, проверяет корректность подписи

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 как произведение двух больших чисел. Для того чтобы сгенерировать открытый и секретный ключи для стороны А, сначала выбирают К различных чисел V1, V2, …Vк, где каждое Vi является квадратичным вычетом по модулю n. Т.е. выбирают такое значение Vi, при котором сравнение х2 º Vi mod n имеет решение и существует Vi -1 mod n. Полученная строка V1, V2, …Vк является открытым ключом. Затем вычисляют такие наименьшие значения Si, что Si= sqrt (Vi-1) mod n.

Эта строка S1, S2,… Sk является секретным ключом стороны А. Протокол процесса идентификации имеет следующий вид:

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 раз, пока В не убедится, что А знает S1,S2,…,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 - пользователь не смог войти в систему. Состояние системы не изменяется;

Соседние файлы в папке Информационная безопасность