Идентификация пользователя
Предполагается, что
администратор баз данных, предоставляя пользователям определенные права
доступа, должен указать системе, какие операции разрешены пользователю,
сформировать паспорт пользователя и обеспечить средства идентификации
пользователей при работе с системой.
Перед началом сеанса работы с
системой пользователи должны идентифицировать себя и подтвердить подлинность
своей идентификации, т.е. что они именно те лица, за которых себя выдают.
Процесс идентификации выполняется либо с помощью системного идентификационного
номера пользователя, либо машиночитаемых идентифицированных карт или знаков,
либо номера терминала, запросившего сеанс работы. Процесс подтверждения
подлинности представляет собой обмен между пользователем и системой
информацией, известной только пользователю и системе. Подтверждение подлинности
реализуется специальной процедурой, обычно несложной, но характеризующейся
очень низкой вероятностью ее открытия. Это могут быть одноразовые пароли,
ответы на некоторые вопросы или реализация некоторых алгоритмов.
Идентификацию и аутентификацию
можно считать основой программно-технических средств безопасности, поскольку
остальные сервисы рассчитаны на обслуживание именованных субъектов.
Идентификация позволяет субъекту
(пользователю, процессу, действующему от имени определенного пользователя, или
иному аппаратно-программному компоненту) назвать себя (сообщить свое имя). Посредством аутентификации вторая сторона
убеждается, что субъект действительно тот, за кого он себя выдает. В качестве
синонима слова "аутентификация" иногда используют словосочетание
"проверка подлинности".
Аутентификация бывает
односторонней (обычно клиент доказывает свою подлинность серверу) и
двусторонней (взаимной). Пример односторонней аутентификации – процедура входа
пользователя в систему.
В сетевой среде, когда
стороны идентификации/аутентификации территориально разнесены, у
рассматриваемого сервиса есть два основных аспекта:
- что служит аутентификатором (то есть
используется для подтверждения подлинности субъекта);
- как организован (и защищен) обмен данными идентификации/аутентификации.
Субъект может подтвердить
свою подлинность, предъявив по крайней мере одну из следующих сущностей:
- нечто, что он знает (пароль, личный идентификационный
номер, криптографический ключ и т.п.);
- нечто, чем он владеет (личную карточку или иное
устройство аналогичного назначения);
- нечто, что есть часть его самого (голос, отпечатки
пальцев и т.п., то есть свои биометрические характеристики).
В открытой сетевой
среде между сторонами идентификации/аутентификации не существует
доверенного маршрута; это значит, что в общем случае данные, переданные
субъектом, могут не совпадать с данными, полученными и использованными для
проверки подлинности. Необходимо обеспечить защиту от пассивного и активного
прослушивания сети, то есть от перехвата, изменения
и/или воспроизведения данных. Передача паролей в открытом виде,
очевидно, неудовлетворительна; не спасает положение и шифрование паролей, так
как оно не защищает от воспроизведения. Нужны более сложные протоколы аутентификации.
Надежная идентификация
затруднена не только из-за сетевых угроз, но и по целому ряду причин.
Во-первых, почти все аутентификационные сущности можно узнать, украсть
или подделать. Во-вторых, имеется противоречие между надежностью аутентификации,
с одной стороны, и удобствами пользователя и системного администратора с
другой. Так, из соображений безопасности необходимо с определенной частотой
просить пользователя повторно вводить аутентификационную информацию
(ведь на его место мог сесть другой человек), а это не только хлопотно, но и
повышает вероятность того, что кто-то может подсмотреть за вводом данных.
В-третьих, чем надежнее средство защиты, тем оно дороже.
Современные средства идентификации/аутентификации
должны поддерживать концепцию единого входа в сеть. Единый вход в
сеть – это, в первую очередь, требование удобства для пользователей. Если в
корпоративной сети много информационных сервисов, допускающих независимое
обращение, то многократная идентификация/аутентификация
становится слишком обременительной. Таким образом, необходимо искать компромисс
между надежностью, доступностью по цене и удобством использования и
администрирования средств идентификации и аутентификации.
Cервис идентификации/аутентификации
может стать объектом атак на доступность. Если система сконфигурирована так,
что после определенного числа неудачных попыток устройство ввода
идентификационной информации (такое, например, как терминал) блокируется, то
злоумышленник может остановить работу легального пользователя.
Парольная
аутентификация
Главное достоинство парольной
аутентификации – простота и привычность. При правильном использовании
пароли могут обеспечить приемлемый для многих организаций уровень безопасности.
Тем не менее, по совокупности характеристик их следует признать самым слабым
средством проверки подлинности: ввод пароля можно подсмотреть, пароли нередко
сообщают коллегам, записывают на листках, пароль можно угадать "методом
грубой силы", используя словарь. Если файл паролей зашифрован, но доступен
для чтения, его можно скачать к себе на компьютер и попытаться подобрать
пароль, запрограммировав полный перебор (предполагается, что алгоритм
шифрования известен).
Тем не менее, следующие
меры позволяют значительно повысить надежность парольной защиты:
- наложение технических ограничений
(пароль должен быть не слишком коротким, он должен содержать буквы, цифры,
знаки пунктуации и т.п.);
- управление сроком действия паролей,
их периодическая смена;
- ограничение доступа к файлу паролей;
- ограничение числа неудачных попыток входа в систему
(это затруднит применение "метода грубой силы");
- обучение пользователей;
- использование программных генераторов паролей
(такая программа, основываясь на несложных правилах, может порождать
только благозвучные и, следовательно, запоминающиеся пароли).
Одноразовые пароли
Рассмотренные выше
пароли можно назвать многоразовыми; их раскрытие позволяет злоумышленнику
действовать от имени легального пользователя. Гораздо более сильным средством,
устойчивым к пассивному прослушиванию сети, являются одноразовые пароли.
Наиболее известным
программным генератором одноразовых паролей является система S/KEY
компании Bellcore. Идея этой системы состоит в следующем. Пусть имеется
односторонняя функция f (то есть функция, вычислить обратную которой за
приемлемое время не представляется возможным). Эта функция известна и
пользователю, и серверу аутентификации. Пусть, далее, имеется секретный ключ K,
известный только пользователю.
На этапе начального
администрирования пользователя функция f применяется к ключу K n раз, после
чего результат сохраняется на сервере. После этого процедура проверки
подлинности пользователя выглядит следующим образом:
- сервер присылает на пользовательскую систему число
(n-1);
- пользователь применяет функцию f к секретному ключу
K (n-1) раз и отправляет результат по сети на сервер аутентификации;
- сервер применяет функцию f к полученному от
пользователя значению и сравнивает результат с ранее сохраненной
величиной. В случае совпадения подлинность пользователя считается
установленной, сервер запоминает новое значение (присланное пользователем)
и уменьшает на единицу счетчик (n).
На самом деле
реализация устроена чуть сложнее (кроме счетчика, сервер посылает затравочное
значение, используемое функцией f). Поскольку функция f необратима, перехват
пароля, равно как и получение доступа к серверу аутентификации, не
позволяют узнать секретный ключ K и предсказать следующий одноразовый пароль.
Система S/KEY имеет
статус Internet-стандарта (RFC 1938).
Другой подход к
надежной аутентификации состоит в генерации нового пароля через
небольшой промежуток времени (например, каждые 60 секунд), для чего могут
использоваться программы или специальные интеллектуальные карты (с практической
точки зрения такие пароли можно считать одноразовыми). Серверу аутентификации
должен быть известен алгоритм генерации паролей и ассоциированные с ним
параметры; кроме того, часы клиента и сервера должны быть синхронизированы.
Сервер
аутентификации Kerberos
Kerberos – это
программный продукт, разработанный в середине 1980-х годов в Массачусетском
технологическом институте и претерпевший с тех пор ряд принципиальных
изменений. Клиентские компоненты Kerberos присутствуют в большинстве
современных операционных систем.
Kerberos предназначен
для решения следующей задачи. Имеется открытая (незащищенная) сеть, в узлах
которой сосредоточены субъекты – пользователи, а также клиентские и серверные
программные системы. Каждый субъект обладает секретным ключом. Чтобы субъект C
мог доказать свою подлинность субъекту S (без этого S не станет обслуживать C),
он должен не только назвать себя, но и продемонстрировать знание секретного
ключа. C не может просто послать S свой секретный ключ, во-первых, потому, что
сеть открыта (доступна для пассивного и активного прослушивания), а, во-вторых,
потому, что S не знает (и не должен знать) секретный ключ C. Требуется менее
прямолинейный способ демонстрации знания секретного ключа.
Система Kerberos
представляет собой доверенную третью сторону (то есть сторону, которой доверяют
все), владеющую секретными ключами обслуживаемых субъектов и помогающую им в
попарной проверке подлинности.
Чтобы с помощью
Kerberos получить доступ к S (обычно это сервер), C (как правило – клиент)
посылает Kerberos запрос, содержащий сведения о нем (клиенте) и о запрашиваемой
услуге. В ответ Kerberos возвращает так называемый билет, зашифрованный
секретным ключом сервера, и копию части информации из билета, зашифрованную
секретным ключом клиента.
Клиент должен расшифровать вторую порцию данных и
переслать ее вместе с билетом серверу. Сервер, расшифровав билет, может
сравнить его содержимое с дополнительной информацией, присланной клиентом.
Совпадение свидетельствует о том, что клиент смог расшифровать предназначенные
ему данные (ведь содержимое билета никому, кроме сервера и Kerberos,
недоступно), то есть продемонстрировал знание секретного ключа. Значит, клиент
– именно тот, за кого себя выдает.
Подчеркнем, что секретные ключи в процессе
проверки подлинности не передавались по сети (даже в зашифрованном виде) – они
только использовались для шифрования. Как организован первоначальный обмен
ключами между Kerberos и субъектами и как субъекты хранят свои секретные ключи
– вопрос отдельный.
Проиллюстрируем
описанную процедуру.
Рис. 1. Проверка сервером S подлинности клиента C.
Здесь c и s – сведения
(например, имя), соответственно, о клиенте и сервере, d1 и d2 – дополнительная
(по отношению к билету) информация, Tc.s – билет для клиента C на обслуживание
у сервера S, Kc и Ks – секретные ключи клиента и сервера, {info}K – информация
info, зашифрованная ключом K.
Приведенная схема –
крайне упрощенная версия реальной процедуры проверки подлинности. Также стоит
отметить, что Kerberos не только устойчив к сетевым угрозам, но и поддерживает
концепцию единого входа в сеть.
Идентификация/аутентификация
с помощью биометрических данных
Биометрия представляет
собой совокупность автоматизированных методов идентификации и/или аутентификации
людей на основе их физиологических и поведенческих характеристик. К числу
физиологических характеристик принадлежат особенности отпечатков пальцев,
сетчатки и роговицы глаз, геометрия руки и лица и т.п. К поведенческим
характеристикам относятся динамика подписи (ручной), стиль работы с
клавиатурой. На стыке физиологии и поведения находятся анализ особенностей
голоса и распознавание речи.
В общем виде работа с
биометрическими данными организована следующим образом. Сначала создается и
поддерживается база данных характеристик потенциальных пользователей. Для этого
биометрические характеристики пользователя снимаются, обрабатываются, и
результат обработки (называемый биометрическим шаблоном) заносится в базу
данных (исходные данные, такие как результат сканирования пальца, обычно не
хранятся).
В дальнейшем для идентификации
(и одновременно аутентификации) пользователя процесс снятия и обработки
повторяется, после чего производится поиск в базе данных шаблонов. В случае
успешного поиска личность пользователя и ее подлинность считаются
установленными. Для аутентификации достаточно произвести сравнение с одним
биометрическим шаблоном, выбранным на основе предварительно введенных данных.
Обычно биометрию
применяют вместе с другими аутентификаторами, такими, например, как
интеллектуальные карты. Иногда биометрическая аутентификация является лишь
первым рубежом защиты и служит для активизации интеллектуальных карт, хранящих
криптографические секреты; в таком случае биометрический шаблон хранится на той
же карте.
К биометрии, однако,
следует относиться осторожно. Необходимо учитывать, что она подвержена тем же
угрозам, что и другие методы аутентификации. Во-первых, биометрический шаблон
сравнивается не с результатом первоначальной обработки характеристик
пользователя, а с тем, что пришло к месту сравнения. Во-вторых, биометрические
методы не более надежны, чем база данных шаблонов. В-третьих, следует учитывать
разницу между применением биометрии на контролируемой территории, под
бдительным оком охраны, и в "полевых" условиях, когда к устройству
сканирования роговицы могут поднести муляж. В-четвертых, биометрические данные
человека меняются, так что база шаблонов нуждается в сопровождении, что создает
определенные проблемы и для пользователей, и для администраторов.
Но главная опасность
состоит в том, что любая "пробоина" для биометрии оказывается
фатальной. Пароли, при всей их ненадежности, в крайнем случае можно сменить.
Утерянную аутентификационную карту можно аннулировать и завести новую. Палец
же, глаз или голос сменить нельзя. Если биометрические данные окажутся
скомпрометированы, придется как минимум производить существенную модернизацию
всей системы.
|