5.2. Идентификация и аутентификация пользователя
Прежде чем получить доступ к ресурсам компьютерной системы, пользователь должен пройти процесс представления компьютерной системе, который включает две стадии:
- идентификацию — пользователь сообщает системе по ее запросу свое имя (идентификатор);
- аутентификацию — пользователь подтверждает идентификацию вводя в систему уникальную, не известную другим пользователям информацию о себе (например, пароль).
Для проведения процедур идентификации и аутентификации пользователя необходимы:
- во-первых, наличие соответствующего субъекта (модуля) аутентификации;
- во-вторых, наличие аутентифицирующего объекта, хранящего уникальную информацию для аутентификации пользователя.
Различают две формы представления объектов, аутентифицирующих пользователя:
- внешний аутентифицирующий объект, не принадлежащий системе;
- внутренний объект, принадлежащий системе, в который переносится информация из внешнего объекта.
Внешние объекты могут быть технически реализованы на различных носителях информации — магнитных дисках, пластиковых картах и т.п. Естественно, что внешняя и внутренняя формы представления аутентифицирующего объекта должны быть семантически тождественны.
5.2.1 Типовые схемы идентификации и аутентификации
Рассмотрим структуры данных и протоколы идентификации и аутентификации пользователя [73]. Допустим, что в компьютерной системе зарегистрировано n пользователей. Пусть i-й аутентифицирующий объект i-го пользователя содержит два информационных поля:
IDi — неизменный идентификатор i-го пользователя, который является аналогом имени и используется для идентификации пользователя;
Ki — аутентифицирующая информация пользователя, которая может изменяться и служит для аутентификации (например, пароль Pi = Ki).
Описанная структура соответствует практически любому ключевому носителю информации, используемому для опознания пользователя. Например, для носителей типа пластиковых карт выделяется неизменяемая информация IDi первичной персонализации пользователя и объект в файловой структуре карты, содержащий Ki.
Совокупную информацию в ключевом носителе можно назвать первичной аутентифицирующей информацией i-го пользователя. Очевидно, что внутренний аутентифицирующий объект не должен существовать в системе длительное время (больше времени работы конкретного пользователя). Для длительного хранения следует использовать данные в защищенной форме.
Рассмотрим две типовые схемы идентификации и аутентификации.
Схема 1. В компьютерной системе выделяется объект-эталон для идентификации и аутентификации пользователей. Структура объекта-эталона для схемы 1 показана в таблице 5.1.
Информация для идентификации
Информация для аутентификации
где F — функция, которая обладает свойством “невосстановимости” значения Ki по Ei и IDi. “Невосстановимость” Ki оценивается некоторой пороговой трудоемкостью Т решения задачи восстановления аутентифицирующей информации Ki по Еi и IDi. Кроме того, для пары Ki и Kj возможно совпадение соответствующих значений Е. В связи с этим вероятность ложной аутентификации пользователя не должна быть больше некоторого порогового значения Р. На практике задают Т = 10 20 . 10 30 , Р = 10 -7 . 10 -9 [73].
Протокол идентификации и аутентификации (для схемы 1).
- Пользователь предъявляет свой идентификатор ID.
- Если ID не совпадает ни с одним IDi , зарегистрированным в компьютерной системе, то идентификация отвергается — пользователь не допускается к работе, иначе (существует IDi = ID) устанавливается, что пользователь, назвавшийся пользователем i, прошел идентификацию.
- Субъект аутентификации запрашивает у пользователя его аутентификатор К.
- Субъект аутентификации вычисляет значение
- Субъект аутентификации производит сравнение значений Y и Ei. При совпадении этих значений устанавливается, что данный пользователь успешно аутентифицирован в системе. Информация об этом пользователе передается в программные модули, использующие ключи пользователей (т.е. в систему шифрования, разграничения доступа и т. д.). В противном случае аутентификация отвергается — пользователь не допускается к работе.
Данная схема идентификации и аутентификации пользователя может быть модифицирована. Модифицированная схема 2 обладает лучшими характеристиками по сравнению со схемой 1.
Схема 2. В компьютерной системе выделяется модифицированный объект-эталон, структура которого показана в таблице 5.2.
Информация для идентификации
Информация для аутентификации
В отличие от схемы 1, в схеме 2 значение Ei = F (Si, Ki),
где Si — случайный вектор, задаваемый при создании идентификатора пользователя, т.е. при создании строки, необходимой для идентификации и аутентификации пользователя;
F — функция, которая обладает свойством “невосстановимости” значения Ki по Ei и Si.
Протокол идентификации и аутентификации (для схемы 2).
- Пользователь предъявляет свой идентификатор ID.
- Если ID не совпадает ни с одним IDi, зарегистрированным в компьютерной системе, то идентификация отвергается — пользователь не допускается к работе, иначе (существует IDi = ID) устанавливается, что пользователь, называвшийся пользователем i, прошел идентификацию.
- По идентификатору IDi выделяется вектор Si.
- Субъект аутентификации запрашивает у пользователя аутентификатор К.
- Субъект аутентификации вычисляет значение
- Субъект аутентификации производит сравнение значений Y и Еi. При совпадении этих значений устанавливается, что данный пользователь успешно аутентифицирован в системе. В противном случае аутентификация отвергается — пользователь не допускается к работе.
Вторая схема аутентификации применяется в ОС UNIX. В качестве идентификатора ID используется имя пользователя (запрошенное по Loqin), в качестве аутентификатора Ki — пароль пользователя (запрошенный по Password), функция F представляет собой алгоритм шифрования DES. Эталоны для идентификации и аутентификации содержатся в файле Etc/passwd.
Следует отметить, что необходимым требованием устойчивости схем аутентификации к восстановлению информации Кi является случайный равновероятный выбор Кi из множества возможных значений.
Системы парольной аутентификации имеют пониженную стойкость, поскольку в них выбор аутентифицирующей информации происходит из относительно небольшого множества осмысленных слов. Мощность этого множества определяется энтропией соответствующего языка.
Особенности применения пароля для аутентификации
Традиционно каждый законный пользователь компьютерной системы получает идентификатор и/или пароль. В начале сеанса работы пользователь предъявляет свой идентификатор системе, которая затем запрашивает у пользователя пароль.
Простейший метод подтверждения подлинности с использованием пароля основан на сравнении представляемого пользователем пароля PA с исходным значением PA‘ , хранящимся в компьютерном центре (рис. 5.1). Поскольку пароль должен храниться в тайне, он должен шифроваться перед пересылкой по незащищенному каналу. Если значения PA и PA‘ совпадают, то пароль PA считается подлинным, а пользователь — законным [123].
Если кто-нибудь, не имеющий полномочий для входа в систему, узнает каким-либо образом пароль и идентификационный номер законного пользователя, он получает доступ в систему.
Рисунок 5.1 – Схема простой аутентификации с помощью пароля
Иногда получатель не должен раскрывать исходную открытую форму пароля. В этом случае отправитель должен пересылать вместо открытой формы пароля отображение пароля, получаемое с использованием односторонней функции () пароля. Это преобразование должно гарантировать невозможность раскрытия противником пароля по его отображению, так как противник наталкивается на неразрешимую числовую задачу.
Например, функция () может быть определена следующим образом:
где Р — пароль отправителя,
ID — идентификатор отправителя,
EР — процедура шифрования, выполняемая с использованием пароля Р в качестве ключа.
Такие функции особенно удобны, если длина пароля и ключа одинаковы. В этом случае подтверждение подлинности с помощью пароля состоит из пересылки получателю отображения (Р) и сравнения его с предварительно вычисленным и хранимым эквивалентом ’ (Р).
На практике пароли состоят только из нескольких букв, чтобы дать возможность пользователям запомнить их. Короткие пароли уязвимы к атаке полного перебора всех вариантов. Для того, чтобы предотвратить такую атаку, функцию (Р) определяют иначе, а именно:
где K и ID — соответственно ключ и идентификатор отправителя.
Очевидно, значение (Р) вычисляется заранее и хранится в виде ’ (Р) в идентификационной таблице у получателя (рис. 5.2). Подтверждение подлинности состоит из сравнения двух отображений пароля (РА) и ’ (РА) и признания пароля РА , если эти отображения равны. Конечно, любой, кто получит доступ к идентификационной таблице, может незаконно изменить ее содержимое, не опасаясь, что эти действия будут обнаружены.
Рисунок 5.2 – Аутентификация с помощью пароля с использованием идентификационной таблицы
Применение для целей идентификации и аутентификации персонального идентификационного номера PIN рассматривается в главе 9.
Идентификация, аутентификация и авторизация
Идентификация субъекта доступа заключается в том, что субъект сообщает системеидентифицирующую информациюо себе (имя, учетный номер и т.д.) и таким образом идентифицирует себя.
Аутентификация(authentification) предотвращает доступ к сети нежелательных лиц и разрешает вход для легальных пользователей. Процесс аутентификации следует отличать от процесса идентификации.
Термин «аутентификация» в переводе с латинского означает «установление подлинности». Аутентификацию следует отличать от идентификации. Идентификаторы пользователей используются в системе с теми же целями, что и идентификаторы любых других объектов, файлов, процессов, структур данных, но они не связаны непосредственно с обеспечением безопасности. Идентификация заключается в сообщении пользователем системе своего идентификатора, в то время как аутентификация – это процедура доказательства пользователем того, что он есть тот, за кого себя выдает, в частности, доказательство того, что именно ему принадлежит введенный им идентификатор.
В процедуре аутентификации участвуют две стороны: одна сторона доказывает свою аутентичность, предъявляя некоторые доказательства, а другая сторона — аутентификатор — проверяет эти доказательства и принимает решение. В качестве доказательства аутентичности используются самые разнообразные приемы:
- аутентифицируемый может продемонстрировать знание некоего общего для обеих сторон секрета: слова (пароля) или факта (даты и места события, прозвища человека и т. п.);
- аутентифицируемый может продемонстрировать, что он владеет неким уникальным предметом (физическим ключом), в качестве которого может выступать, например, электронная магнитная карта;
- аутентифицируемый может доказать свою идентичность, используя собственные биохарактеристики: рисунок радужной оболочки глаза или отпечатки пальцев, которые предварительно были занесены в базу данных аутентификатора.
- централизованная схема авторизации, базирующаяся на сервере;
- децентрализованная схема, базирующаяся на рабочих станциях.