Рассмотрим структуры данных и протоколы идентификации и аутентификации пользователя [73]. Допустим, что в компьютерной системе зарегистрировано n пользователей. Пусть i-й аутентифицирующий объект i-го пользователя содержит два информационных поля:
IDi - неизменный идентификатор i-го пользователя, который является аналогом имени и используется для идентификации пользователя;
Ki - аутентифицирующая информация пользователя, которая может изменяться и служит для аутентификации (например, пароль Pi = Ki).
Описанная структура соответствует практически любому ключевому носителю информации, используемому для опознания пользователя. Например, для носителей типа пластиковых карт выделяется неизменяемая информация IDi первичной персонализации пользователя и объект в файловой структуре карты, содержащий Ki.
Совокупную информацию в ключевом носителе можно назвать первичной аутентифицирующей информацией i-го пользователя. Очевидно, что внутренний аутентифицирующий объект не должен существовать в системе длительное время (больше времени работы конкретного пользователя). Для длительного хранения следует использовать данные в защищенной форме.
Рассмотрим две типовые схемы идентификации и аутентификации.
Схема 1. В компьютерной системе выделяется объект-эталон для идентификации и аутентификации пользователей. Структура объекта-эталона для схемы 1 показана в таблице 5.1.
Таблица 5.1.
Номер пользователя | Информация для идентификации | Информация для аутентификации |
1 | ID1 | E1 |
2 | ID2 | E2 |
... | ... | ... |
N | IDn | En |
Здесь Ei = F (IDi, Ki),
где F - функция, которая обладает свойством “невосстановимости” значения Ki по Ei и IDi. “Невосстановимость” Ki оценивается некоторой пороговой трудоемкостью Тo решения задачи восстановления аутентифицирующей информации Ki по Еi и IDi. Кроме того, для пары Ki и Kj возможно совпадение соответствующих значений Е. В связи с этим вероятность ложной аутентификации пользователя не должна быть больше некоторого порогового значения Рo. На практике задают Тo = 1020 ... 1030, Рo = 10-7... 10-9 [73].
Протокол идентификации и аутентификации (для схемы 1).
1. Пользователь предъявляет свой идентификатор ID.
2. Если ID не совпадает ни с одним IDi , зарегистрированным в компьютерной системе, то идентификация отвергается - пользователь не допускается к работе, иначе (существует IDi = ID) устанавливается, что пользователь, назвавшийся пользователем i, прошел идентификацию.
3. Субъект аутентификации запрашивает у пользователя его аутентификатор К.
4. Субъект аутентификации вычисляет значение
Y = F (IDi, K).
5. Субъект аутентификации производит сравнение значений Y и Ei. При совпадении этих значений устанавливается, что данный пользователь успешно аутентифицирован в системе. Информация об этом пользователе передается в программные модули, использующие ключи пользователей (т.е. в систему шифрования, разграничения доступа и т. д.). В противном случае аутентификация отвергается - пользователь не допускается к работе.
Данная схема идентификации и аутентификации пользователя может быть модифицирована. Модифицированная схема 2 обладает лучшими характеристиками по сравнению со схемой 1.
Схема 2. В компьютерной системе выделяется модифицированный объект-эталон, структура которого показана в таблице 5.2.
Таблица 5.2.
Номер пользователя | Информация для идентификации | Информация для аутентификации |
1 | ID1, S1 | E1 |
2 | ID2, S2. | E2 |
... | ... | ... |
N | IDn, Sn | En |
В отличие от схемы 1, в схеме 2 значение Ei = F (Si, Ki),
где Si - случайный вектор, задаваемый при создании идентификатора пользователя, т.е. при создании строки, необходимой для идентификации и аутентификации пользователя;
F - функция, которая обладает свойством “невосстановимости” значения Ki по Ei и Si.
Протокол идентификации и аутентификации (для схемы 2).
1. Пользователь предъявляет свой идентификатор ID.
2. Если ID не совпадает ни с одним IDi, зарегистрированным в компьютерной системе, то идентификация отвергается - пользователь не допускается к работе, иначе (существует IDi = ID) устанавливается, что пользователь, называвшийся пользователем i, прошел идентификацию.
3. По идентификатору IDi выделяется вектор Si.
4. Субъект аутентификации запрашивает у пользователя аутентификатор К.
5. Субъект аутентификации вычисляет значение
Y = F (Si, К).
6. Субъект аутентификации производит сравнение значений Y и Еi. При совпадении этих значений устанавливается, что данный пользователь успешно аутентифицирован в системе. В противном случае аутентификация отвергается - пользователь не допускается к работе.
Вторая схема аутентификации применяется в ОС UNIX. В качестве идентификатора ID используется имя пользователя (запрошенное по Loqin), в качестве аутентификатора Ki - пароль пользователя (запрошенный по Password), функция F представляет собой алгоритм шифрования DES. Эталоны для идентификации и аутентификации содержатся в файле Etc/passwd.
Следует отметить, что необходимым требованием устойчивости схем аутентификации к восстановлению информации Кi является случайный равновероятный выбор Кi из множества возможных значений.
Системы парольной аутентификации имеют пониженную стойкость, поскольку в них выбор аутентифицирующей информации происходит из относительно небольшого множества осмысленных слов. Мощность этого множества определяется энтропией соответствующего языка.