Идентификация и проверка подлинности
1.1 Основные понятия и концепции
С каждым объектом компьютерной системы (КС) связана некоторая информация, однозначно идентифицирующая его. Это может быть число, строка символов, алгоритм, определяющий данный объект. Эту информацию называют идентификатором объекта. Если объект имеет некоторый идентификатор, зарегистрированный в сети, он называется законным (легальным) объектом; остальные объекты относятся к незаконным (нелегальным).
Идентификация объекта - одна из функций подсистемы защиты. Эта функция выполняется в первую очередь, когда объект делает попытку войти в сеть. Если процедура идентификации завершается успешно, данный объект считается законным для данной сети.
Следующий шаг - аутентификация объекта (проверка подлинности объекта). Эта процедура устанавливает, является ли данный объект именно таким, каким он себя объявляет.
После того как объект идентифицирован и подтверждена его подлинность, можно установить сферу его действия и доступные ему ресурсы КС. Такую процедуру называют предоставлением полномочий (авторизацией).
Перечисленные три процедуры инициализации являются процедурами защиты и относятся к одному объекту КС.
При защите каналов передачи данных подтверждение подлинности (аутентификация) объектов означает взаимное установление подлинности объектов, связывающихся между собой по линиям связи. Процедура подтверждения подлинности выполняется обычно в начале сеанса в процессе установления соединения абонентов. (Термин "соединение" указывает на логическую связь (потенциально двустороннюю) между двумя объектами сети. Цель данной процедуры - обеспечить уверенность, что соединение установлено с законным объектом и вся информация дойдет до места назначения.
После того как соединение установлено, необходимо обеспечить выполнение требований защиты при обмене сообщениями:
(а) получатель должен быть уверен в подлинности источника данных;
(б) получатель должен быть уверен в подлинности передаваемых данных;
(в) отправитель должен быть уверен в доставке данных получателю;
(г) отправитель должен быть уверен в подлинности доставленных данных.
Для выполнения требований (а) и (б) средством защиты является цифровая подпись. Для выполнения требований (в) и (г) отправитель должен получить уведомление о вручении с помощью удостоверяющей почты (certified mail). Средством защиты в такой процедуре является цифровая подпись подтверждающего ответного сообщения, которое в свою очередь является доказательством пересылки исходного сообщения.
Если эти четыре требования реализованы в КС, то гарантируется защита данных при их передаче по каналу связи и обеспечивается функция защиты, называемая функцией подтверждения (неоспоримости) передачи. В этом случае отправитель не может отрицать ни факта посылки сообщения, ни его содержания, а получатель не может отрицать ни факта получения сообщения, ни подлинности его содержания.
1.2 Идентификация и механизмы подтверждения подлинности пользователя
Прежде чем получить доступ к КС, пользователь должен идентифицировать себя, а затем средства защиты сети должны подтвердить подлинность этого пользователя, т.е. проверить, является ли данный пользователь действительно тем, за кого он себя выдает. Компоненты механизма защиты легальных пользователей размещены на рабочей ЭВМ, к которой подключен пользователь через его терминал (или каким-либо иным способом). Поэтому процедуры идентификации, подтверждения подлинности и наделения полномочиями выполняются в начале сеанса на местной рабочей ЭВМ.
Когда пользователь начинает работу в КС, используя терминал, система запрашивает его имя и идентификационный номер. В зависимости от ответов пользователя компьютерная система проводит его идентификацию. Затем система проверяет, является ли пользователь действительно тем, за кого он себя выдает. Для этого она запрашивает у пользователя пароль. Пароль - это лишь один из способов подтверждения подлинности пользователя.
Перечислим возможные способы подтверждения подлинности.
- Предопределенная информация, находящаяся в распоряжении пользователя: пароль, персональный идентификационный номер, соглашение об использовании специальных закодированных фраз.
- Элементы аппаратного обеспечения, находящиеся в распоряжении пользователя: ключи, магнитные карточки, микросхемы и т.п.
- Характерные личные особенности пользователя: отпечатки пальцев, рисунок сетчатки глаза, тембр голоса и т.п.
- Характерные приемы и черты поведения пользователя в режиме реального времени: особенности динамики и стиль работы на клавиатуре, приемы работы с манипулятором и т.п.
- Навыки и знания пользователя, обусловленные образованием, культурой, обучением, воспитанием, привычками и т.п.
Применение пароля для подтверждения подлинности пользователя. Традиционно каждый законный пользователь компьютерной системы получает идентификационный номер и/или пароль. В начале сеанса работы на терминале пользователь указывает свой идентификационный номер (идентификатор пользователя) системе, которая затем запрашивает у пользователя пароль.
Простейший метод подтверждения подлинности с использованием пароля основан на сравнении представляемого пользователем пароля с исходным значением хранящимся в компьютерном центре. Поскольку пароль должен храниться в тайне, его следует шифровать перед пересылкой по незащищенному каналу. Если значения пользователя и системы совпадают, то пароль считается подлинным, а пользователь - законным.
Если кто-нибудь, не имеющий полномочий для входа в систему, узнает каким-либо образом пароль и идентификационный номер законного пользователя, он получит доступ в систему.
Иногда получатель не должен раскрывать исходную открытую форму пароля. В этом случае отправитель должен пересылать вместо открытой формы пароля отображение пароля, получаемое с использованием односторонней функции a(*) пароля. Это преобразование должно гарантировать невозможность раскрытия противником пароля по его отображению, так как противник наталкивается на неразрешимую числовую задачу.
Например, функция а(*) может быть определена следующим образом:
a(P)=Ep(ID),
где Р - пароль отправителя;
ID - идентификатор отправителя;
Ер - процедура шифрования, выполняемая с использованием пароля Р в качестве ключа.
Такие функции особенно удобны, если длина пароля и длина ключа одинаковы. В этом случае подтверждение подлинности с помощью пароля состоит из пересылки получателю отображения a(Р) и сравнения его с предварительно вычисленным и хранимым эквивалентом а'(Р).
На практике пароли состоят только из нескольких букв, чтобы дать возможность пользователям запомнить их. Короткие пароли уязвимы к атаке полного перебора всех вариантов. Для того чтобы предотвратить такую атаку, функцию а(Р) определяют иначе, а именно:
t(P)=Ep xor k(ID),
где К и ID-соответственно ключ и идентификатор отправителя.
Очевидно,значение а(Р) вычисляется заранее и хранится в виде a'(Р) в идентификационной таблице у получателя. Подтверждение подлинности состоит из сравнения двух отображений пароля a(РА) и a'(PА) и признания пароля рА, если эти отображения равны. Конечно, любой, кто получит доступ к идентификационной таблице, может незаконно изменить ее содержимое, не опасаясь, что эти действия будут обнаружены.