Добавил:
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
106
Добавлен:
02.02.2021
Размер:
216.58 Кб
Скачать

15

Лекция №2

Тема: "Методы аутентификации, использующие пароли и pin-коды"

Вопросы:

1. Аутентификация на основе многоразовых паролей.

2 Аутентификация на основе одноразовых паролей.

3 Аутентификация на основе PIN-кода.

1. Аутентификация на основе многоразовых паролей.

Главное достоинство парольной аутентификации — простота и привычность. Пароли давно встроены в операционные системы и иные сервисы. При правильном использовании пароли могут обеспечить приемлемый для многих организаций уровень безопасности. Тем не менее, по совокупности характеристик их следует признать самым слабым средством проверки подлинности.

Чтобы пароль был запоминающимся, его зачастую делают простым (имя подруги, название спортивной команды и т.п.). Однако простой пароль нетрудно угадать, особенно если знать пристрастия данного пользователя. Известна классическая история про советского разведчика Рихарда Зорге, объект внимания которого через слово говорил «карамба» разумеется, этим же словом открывался сверхсекретный сейф.

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

Ввод пароля можно подсмотреть. Иногда для подглядывания используются даже оптические приборы.

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

Пароль можно угадать «методом грубой силы», используя, скажем, словарь. Если файл паролей зашифрован, но доступен для чтения, его можно скачать к себе на компьютер и попытаться подобрать пароль, запрограммировав полный перебор (предполагается, что алгоритм шифрования известен).

Тем не менее, следующие меры позволяют значительно повысить надежность парольной защиты:

• наложение технических ограничений (пароль должен быть не слишком коротким, он должен содержать буквы, цифры, знаки пунктуации и т.п.);

• управление сроком действия паролей, их периодическая смена;

• ограничение доступа к файлу паролей;

• ограничение числа неудачных попыток входа в систему (это затруднит применение «метода грубой силы»);

• обучение пользователей;

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

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

Аутентификация, которая основана на применении традиционных многоразовых паролей называется простая аутентификация. Она используется в большинстве локальных компьютеров а так же в виртуальных сетях VPN (Virtual Private Network) для доступа к серверу.

Современные сетевые средства идентификации/аутентификации должны поддерживать концепцию «единого входа» в сеть. Единый вход в сеть – это, в первую очередь, требование удобства для пользователей.

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

Процедуру простой аутентификации пользователя в сети можно представить следующим образом. Пользователь при попытке логического входа в сеть набирает свой идентификатор и пароль. Эти данные поступают для обработки на сервер аутентификации. В БД, хранящейся на сервере аутентификации, по идентификатору пользователя находится соответствующая запись. Из нее извлекается пароль и сравнивается с тем паролем, который ввел пользователь. Если они совпали, то аутентификация прошла успешно — пользователь получает легальный статус и получает те права и ресурсы сети, которые определены для его статуса системой авторизации.

В схеме простой аутентификации (рис.1) передача пароля и идентификатора пользователя может производиться следующими способами:

• в незашифрованном виде; например, согласно протоколу парольной аутентификации PAP (Password Authentication Protocol) пароли передаются по линии связи в открытой незащищенной форме;

Рис. 1. Простая аутентификация с использованием пароля

• в защищенном виде; все передаваемые данные (идентификатор и пароль пользователя, случайное число и метки времени) защищены посредством шифрования или однонаправленной функции.

Очевидно, что вариант аутентификации с передачей пароля пользователя в незашифрованном виде не гарантирует даже минимального уровня безопасности, так как подвержен многочисленным атакам и легко компрометируется. Чтобы защитить пароль, его нужно зашифровать перед пересылкой по незащищенному каналу. Для этого в схему включены средства шифрования Ек и расшифровывания Dк, управляемые разделяемым секретным ключом К. Проверка подлинности пользователя основана на сравнении присланного пользователем пароля Ра и исходного значения Ра', хранящегося на сервере аутентификации. Если значения Ра и Ра' совпадают, то пароль Ра считается подлинным, а пользователь А — законным.

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

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

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

Например, односторонняя функция h(•) может быть определена следующим образом:

h(P) = ЕР(ID),

где Р — пароль пользователя; ID — идентификатор пользователя; Ер — процедура шифрования, выполняемая с использованием пароля Р в качестве ключа.

Такие функции удобны, если длина пароля и ключа одинаковы. В этом случае проверка подлинности пользователя А с помощью пароля Рa состоит из пересылки серверу аутентификации отображения h(Pa) и сравнения его с предварительно вычисленным и хранимым в БД сервера аутентификации эквивалентом h'(Pa) (рис.2). Если отображения h(Pa) и h'(Pa) равны, то считается, что пользователь успешно прошел аутентификацию.

Рис.2. Использование односторонней функции для проверки пароля

На практике пароли состоят из 7-8 символов, чтобы дать возможность пользователям запомнить их. Короткие пароли уязвимы к атаке полного перебора всех вариантов. Для того чтобы предотвратить такую атаку, функцию h(P) можно определить иначе, например в виде:

h(P) = h(P) = ЕР К(ID),

где К и ID— соответственно ключ и идентификатор отправителя.

Различают две формы представления объектов, аутентифицирующих пользователя:

внешний аутентифицирующий объект, не принадлежащий системе;

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

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

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

- IDi - неизменный идентификатор i-го пользователя, который является аналогом имени и используется для идентификации пользователя;

- Ki - аутентифицирующая информация пользователя, которая может изменяться и используется для аутентификации (например, пароль Pi = Кi).

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

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

Рассмотрим две типовые схемы идентификации и аутентификации.

Схема 1. В компьютерной системе выделяется объект-эталон для идентификации и аутентификации пользователей. Структура объекта-эталона для схемы 1 показана в табл. 1.

Таблица 1. Структура объекта-эталона

Номер пользователя

Информация для идентификации

Информация для аутентификации

1

ID1

E1

2

ID2

E2

N

IDn

En

Здесь Еi = F(IDi, Кi),

где F - функция, которая обладает свойством «невосстановимости» значения Кi, по Ei и IDi.

«Невосстановимость» Ki оценивается некоторой пороговой трудоемкостью Т0 решения задачи восстановления аутентифицирующей информации Ki по Ei; и IDi.

Кроме того, для пары Ki и Кj; возможно совпадение соответствующих значений Е. В связи с этим вероятность ложной аутентификации пользователя не должна быть больше некоторого порогового значения Р0. На практике задают значения, T0=1020 - 1030 и P0 = 10-7-10-9.

Протокол идентификации и аутентификации (для схемы 1):

1.Пользователь предъявляет системе свой идентификатор ID.

2.Система сверяет предъявленный ID с зарегистрированными IDi,

i = 1…n. Если ID не совпадает ни с одним IDi, зарегистрированным в системе, то идентификация отвергается - пользователь не допускается к работе.

Если ID = IDi, то считается, что пользователь, назвавшийся пользователем i, прошел идентификацию.

3.Система запрашивает у пользователя его аутентификатор.

4.Пользователь предъявляет системе аутентификатор К.

5.Система вычисляет значение Y = F(IDi, К) и сравнивает значения Y и Ei.

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

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

Схема 2. В компьютерной системе выделяется модифицированный объект-эталон, структура которого показана в табл. 2.

Таблица 2. Структура модифицированного объекта-эталона

Номер пользователя

Информация для идентификации

Информация для аутентификации

1

ID1, S1

E1

2

ID2, S2

E2

N

IDn, Sn

En

В отличие от схемы 1, в схеме 2 значение Еi = F(Si, Кi),

где Si,- — случайный вектор, задаваемый при создании идентификатора пользователя, то есть при создании строки, необходимой для идентификации и аутентификации пользователя;

F- функция, которая обладает свойством «невосстановимости» значения Ki по Еi и Si,

Протокол идентификации и аутентификации (для схемы 2):

1.Пользователь предъявляет системе свой идентификатор ID.

2.Если ID не совпадает ни с одним IDi, зарегистрированным в компьютерной системе, то идентификация отвергается - пользователь не допускается к работе.

Если существует IDi = ID, тогда устанавливается, что пользователь, назвавшийся пользователем i, прошел идентификацию.

3.По идентификатору IDi выделяется вектор Si.

4.Система запрашивает у пользователя аутентификатор.

5.Пользователь предъявляет системе аутентификатор К.

6.Система вычисляет значение Y = F(Si, К) и сравнивает значения Y и Ei.

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

Вторая схема аутентификации применяется в ОС UNIX. В качестве идентификатора ID используется имя пользователя (запрошенное по Login), в качестве аутентификатора Ki - пароль пользователя (запрошенный по Password), функция F представляет собой алгоритм шифрования DES. Эталоны для идентификации и аутентификации содержатся в файле Etc/passwd.

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

Вопросы исследования стойкости многоразовых паролей выносятся на лабораторные работы №1 и №2.

В дальнейшем нами будут рассматриваться протоколы аутентификации по многоразовому паролю PAP (Password Authentication Protocol), протокол аутентификации на основе процедуры запрос-отклик CHAP (Challenge-Handshake Authentication Protocol), а также протоколы централизованного контроля доступа к сети удаленных пользователей TACACS (Terminal Access Controller Access Control System), TACACS+ и RADIUS (Remote Authentication Dial-In User Service).