Методы аутентификации, использующие пароли и PIN-коды
Стр 1 из 2Следующая ⇒
Одной из распространенных схем аутентификации является простая аутентификация, которая основана на применении традиционных многоразовых паролей с одновременным согласованием средств его использования и обработки. Аутентификация на основе многоразовых паролей — простой и наглядный пример использования разделяемой информации. Пока в большинстве защищенных виртуальных сетей VPN доступ клиента к серверу разрешается по паролю. Однако все чаще применяются более эффективные средства аутентификации, например программные и аппаратные системы аутентификации на основе одноразовых паролей, смарт-карт, PIN-кодов и цифровых сертификатов. Базовый принцип «единого входа» предполагает достаточность одноразового прохождения пользователем процедуры аутентификации для доступа ко всем сетевым ресурсам. Поэтому в современных операционных системах предусматривается централизованная служба аутентификации, которая выполняется одним из серверов сети и использует для своей работы базу данных (БД). В этой БД хранятся учетные данные о пользователях сети, включающие идентификаторы и пароли пользователей, а также другую информацию. Процедура простой аутентификации пользователя в сети: пользователь при попытке логического входа в сеть набирает свои идентификатор и пароль. Эти данные поступают для обработки на сервер аутентификации. В БД, хранящейся на сервере аутентификации, по идентификатору пользователя находится соответствующая запись. Из нее извлекается пароль и сравнивается с тем паролем, который ввел пользователь. Если они совпали, то аутентификация прошла успешно - пользователь получает легальный статус и получает те права и ресурсы сети, которые определены для его статуса системой авторизации.
В схеме простой аутентификации (рис.1) передача пароля и идентификатора пользователя может производиться следующими способами: · в незашифрованном виде; например, согласно протоколу парольной аутентификации PAP пароли передаются по линии связи в открытой незащищенной форме; · в защищенном виде; все передаваемые данные (идентификатор и пароль пользователя, случайное число и метки времени) защищены посредством шифрования или однонаправленной функции. Рисунок 1. Простая аутентификация с использованием пароля Чтобы защитить пароль, его нужно зашифровать перед пересылкой по незащищенному каналу. Для этого в схему включены средства шифрования ЕК и расшифровывания DK, управляемые разделяемым секретным ключом К. Проверка подлинности пользователя основана на сравнении присланного пользователем пароля РА и исходного значения Р'А, хранящегося на сервере аутентификации. Если значения РА и Р'А совпадают, то пароль РА считается подлинным, а пользователь А — законным. Наиболее распространенным способом является хранение паролей пользователей в открытом виде в системных файлах, причем на эти файлы устанавливаются атрибуты защиты от чтения и записи (например, при помощи описания соответствующих привилегий в списках контроля доступа ОС). Система сопоставляет введенный пользователем пароль с хранящейся в файле паролей записью. При этом способе не используются криптографические механизмы, такие как шифрование или однонаправленные функции. Недостаток: возможность получения злоумышленником в системе привилегий администратора, включая права доступа к системным файлам, и в частности, к файлу паролей. Пароли пользователей должны храниться в ОС в открытом виде. С точки зрения безопасности предпочтительным являет метод передачи и хранения паролей с использованием односторонних функций. Обычно для шифрования паролей в списке пользователей используют одну из известных криптографически стойких хэш-функций. В списке пользователей хранится не сам пароль, а образ пароля, являющийся результатом применения к паролю хэш-функции.
Однонаправленность хэш-функции не позволяет восстановить пароль по образу пароля, но позволяет, вычислив хэш-функцию, получить образ введенного пользователем пароля и таким образом проверить правильность введенного пароля. В простейшем случае в качестве хэш-функции используется результат шифрования некоторой константы на пароле. Например, односторонняя функция h (∙) может быть определена следующим образом: h(P∙) = Ep (ID), где Р — пароль пользователя; ID — идентификатор пользователя; ЕР — процедура шифрования, выполняемая с использованием пароля Р в качестве ключа. Рисунок 2. использование односторонней функции для проверки пароля. Такие функции удобны, если длина пароля и ключа одинаковы. В этом случае проверка подлинности пользователя А с помощью пароля РA состоит из пересылки серверу аутентификации отображения h(PA) и сравнения его с предварительно вычисленным и хранимым в БД сервера аутентификации эквивалентом h'(PA) (рис. 2). Если отображения h(PA) и h'(PA) равны, то считается, что пользователь успешно прошел аутентификацию. Для того чтобы предотвратить такую атаку, функцию h(P) можно определить иначе, например в виде: h(P) = ЕP K(ID), где К и ID — соответственно ключ и идентификатор отправителя. Различают две формы представления объектов, аутентифицирующих пользователя: · внешний аутентифицирующий объект, не принадлежащий системе; · внутренний объект, принадлежащий системе, в который переносится информация из внешнего объекта. Системы простой аутентификации на основе многоразовых паролей имеют пониженную стойкость, поскольку выбор аутентифицирующей информации происходит из относительно небольшого числа слов. Схемы аутентификации, основанные на традиционных многоразовых паролях, не обладают достаточной безопасностью. Более надежными являются процедуры аутентификации на основе одноразовых паролей.
Суть схемы одноразовых паролей - использование различных паролей при каждом новом запросе на предоставление доступа. Одноразовый динамический пароль действителен только для одного входа в систему, и затем его действие истекает. Динамический механизм задания пароля — один из лучших способов защиты процесса аутентификации от угроз извне. Обычно системы аутентификации с одноразовыми паролями используются для проверки удаленных пользователей. Генерация одноразовых паролей может осуществляться аппаратным или программным способом. Некоторые аппаратные средства доступа на основе одноразовых паролей реализуются в виде миниатюрных устройств со встроенным микропроцессором, внешне похожих на платежные пластиковые карточки. Такие карты, обычно называемые ключами, могут иметь клавиатуру и небольшое дисплейное окно. Схема аутентификации с использованием временной синхронизации базируется на алгоритме генерации случайных чисел через определенный интервал времени. Этот интервал устанавливается и может быть изменен администратором сети. Схема аутентификации использует два параметра: · секретный ключ, представляющий собой уникальное 64-битное число, назначаемое каждому пользователю и хранящееся в БД аутентификационного сервера и в аппаратном ключе пользователя; · значение текущего времени. Недостаток: генерируемое аппаратным ключом случайное число является достоверным паролем в течение небольшого конечного промежутка времени. Поэтому возможна кратковременная ситуация, когда можно перехватить PIN-код и случайное число, чтобы использовать их для доступа в сеть. Одним из наиболее распространенных протоколов аутентификации на основе одноразовых паролей является стандартизованный в Интернете протокол S/Key (RFC 1760). Этот протокол реализован во многих системах, требующих проверки подлинности удаленных пользователей. Наиболее распространенным методом аутентификации является ввод секретного числа, которое обычно называют PIN-кодом. Обычно PIN-код представляет собой четырехразрядное число, каждая цифра которого может принимать значение от 0 до 9.
PIN-код вводится с помощью клавиатуры терминала или компьютера и затем отправляется на смарт-карту. Смарт-карта сравнивает полученное значение PIN-кода с эталонным значением, хранимым в карте, и отправляет результат сравнения на терминал. При идентификации клиента по значению PIN-кода и предъявленной карте используются два основных способа проверки PIN-кода: 1. Неалгоритмический не требует применения специальных алгоритмов. Проверка PIN-кода осуществляется путем непосредственного сравнения введенного клиентом PIN-кода со значениями, хранимыми в БД. Обычно БД со значениями PIN-кодов клиентов шифруется методом прозрачного шифрования, чтобы повысить ее защищенность, не усложняя процесса сравнения. 2. Алгоритмический заключается в том, что введенный клиентом PIN-код преобразуют по определенному алгоритму с использованием секретного ключа и затем сравнивают со значением PIN-кода, хранящимся в определенной форме на карте. Достоинства: · отсутствие копии PIN-кода на главном компьютере исключает его раскрытие обслуживающим персоналом; · отсутствие передачи PIN-кода между банкоматом или кассиром-автоматом и главным компьютером банка исключает его перехват злоумышленником или навязывание результатов сравнения; · упрощение работы по созданию программного обеспечения системы, так как уже нет необходимости действий в реальном масштабе времени. Строгая аутентификация
Идея строгой аутентификации: проверяемая сторона доказывает свою подлинность проверяющей стороне, демонстрируя знание некоторого секрета. Доказательство знания секрета осуществляется с помощью последовательности запросов и ответов с использованием криптографических методов и средств. Доказывающая сторона демонстрирует только знание секрета, но сам секрет в ходе аутентификационного обмена не раскрывается. Это обеспечивается посредством ответов доказывающей стороны на различные запросы проверяющей стороны. При этом результирующий запрос зависит только от пользовательского секрета и начального запроса, который обычно представляет произвольно выбранное в начале протокола большое число. В большинстве случаев строгая аутентификация заключается в том, что каждый пользователь аутентифицируется по признаку владения своим секретным ключом. Иначе говоря, пользователь имеет возможность определить, владеет ли его партнер по связи надлежащим секретным ключом и может ли он использовать этот ключ для подтверждения того, что он действительно является подлинным партнером по информационному обмену.
В соответствии с рекомендациями стандарта Х.509 различают процедуры строгой аутентификации следующих типов: · односторонняя аутентификация, предусматривает обмен информацией только в одном направлении; · двусторонняя аутентификация содержит дополнительный ответ проверяющей стороны доказывающей стороне, который должен убедить ее, что связь устанавливается именно с той стороной, которой были предназначены аутентификационные данные; · трехсторонняя аутентификация содержит дополнительную передачу данных от доказывающей стороны проверяющей. Этот подход позволяет отказаться от использования меток времени при проведении аутентификации. Одноразовые параметры иногда называют также nonces — это величина, используемая для одной и той же цели не более одного раза. Среди используемых на сегодняшний день одноразовых параметров следует выделить: случайные числа, метки времени и номера последовательностей. Они позволяют избежать повтора передачи, подмены стороны аутентификационного обмена и атаки с выбором открытого текста. С их помощью можно обеспечить уникальность, однозначность и временные гарантии передаваемых сообщений. Различные типы одноразовых параметров могут употребляться как отдельно, так и дополнять друг друга. Следует отметить, что одноразовые параметры широко используются и в других вариантах криптографических протоколов. В зависимости от используемых криптографических алгоритмом протоколы строгой аутентификации делятся на протоколы, основанные: · на симметричных алгоритмах шифрования; · однонаправленных ключевых хэш-функциях; · асимметричных алгоритмах шифрования; · алгоритмах электронной цифровой подписи. Для работы протоколов аутентификации, построенных на основе симметричных алгоритмов, необходимо, чтобы проверяющий и доказывающий с самого начала имели один и тот же секретный ключ. Для закрытых систем с небольшим количеством пользователей каждая пара пользователей может заранее разделить его между собой. В больших распределенных системах, применяющих технологию симметричного шифрования, часто используются протоколы аутентификации с участием домеренного сервера, с которым каждая сторона разделяет знание ключа. Такой сервер распределяет сеансовые ключи для каждой пары пользователей всякий раз, когда один из них запрашивает аутентификацию другого. Рассмотрим следующие варианты аутентификации: · односторонняя аутентификация с использованием меток времени; · односторонняя аутентификация с использованием случайных чисел; · двусторонняя аутентификация. В каждом из этих случаев пользователь доказывает свою подлинность, демонстрируя знание секретного ключа, так как производит расшифровывание запросов с помощью этого секретного ключа. При использовании в процессе аутентификации симметричного шифрования необходимо также реализовать механизмы обеспечения целостности передаваемых данных на основе общепринятых способов. Введем следующие обозначения: rА — случайное число, сгенерированное участником А; rВ — случайное число, сгенерированное участником В; tA — метка времени, сгенерированная участником А; ЕК— симметричное шифрование на ключе К (ключ К должен быть предварительно распределен между A и В). 1. Односторонняя аутентификация, основанная на метках времени: — (1) После получения и расшифровывания данного сообщения участник В убеждается в том, что метка времени tA действительна и идентификатор В, указанный в сообщении, совпадает с его собственным. Предотвращение повторной передачи данного сообщения основывается на том, что без знания ключа невозможно изменить метку времени tA и идентификатор В. 2. Односторонняя аутентификация, основанная на использовании случайных чисел: — (1) — (2) Участник В отправляет участнику А случайное число rB. Участник А шифрует сообщение, состоящее из полученного числа А и идентификатора В, и отправляет зашифрованное сообщение участнику В. Участник В расшифровывает полученное сообщение и сравнивает случайное число, содержащееся в сообщении, в тем, которое Он послал участнику А. Дополнительно он провернет имя, указанное в сообщении. 3. Двусторонняя аутентификация, использующая случайные рачения: — (1) — (2) — (3) При получении сообщения (2) участник В выполняет те же проверки, что и в предыдущем протоколе, и дополнительно расшифровывает случайное число rА для включения его в сообщение (3) для участника А. Сообщение (3), полученное участником А, позволяет ему убедиться на основе проверки значений rА и rВ, что он имеет дело именно с участником В. Широко известными представителями протоколов, обеспечивающих аутентификацию пользователей с привлечением в процессе аутентификации третьей стороны, являются протокол распределения секретных ключей Нидхэма и Шредера и протокол Kerberos. Протоколы, представленные выше, могут быть модифицированы путем замены симметричного шифрования на шифрование с помощью односторонней ключевой хэш-функции. Это бывает необходимо, если алгоритмы блочного шифрования недоступны или не отвечают предъявляемым требованиям (например, в случае экспортных ограничений). Своеобразие шифрования с помощью односторонней хэш-функции заключается в том, что оно по существу является односторонним, т. е. не сопровождается обратным преобразованием - расшифровыванием на приемной стороне. Обе стороны (отправитель и получатель) используют одну и ту же процедуру одностороннего шифрования. Односторонняя хэш-функция hK (∙)с параметром-ключом К, примененная к шифруемым данным М, дает в результате хэш-значение т (дайджест), состоящее из фиксированного небольшого числа байт (рис. 3). Рисунок 3. Применение для аутентификации односторонней хэш-функции с параметром-ключом Дайджест т = hK(M) передается получателю вместе с исходным сообщением М. Получатель сообщения, зная, какая односторонняя хэш-функция была применена для получения дайджеста, заново вычисляет ее, используя расшифрованное сообщение М. Если значения полученного дайджеста т и вычисленного дайджеста т' совпадают, значит содержимое сообщения Мне было подвергнуто никаким изменениям. Знание дайджеста не дает возможности восстановить исходное сообщение, но позволяет проверить целостность данных. Дайджест можно рассматривать как своего рода контрольную сумму для исходного сообщения. Контрольную сумму используют как средство проверки целостности передаваемых сообщений по ненадежным линиям связи. При вычислении дайджеста применяются секретные ключи. В случае, если для получения дайджеста используется односторонняя хэш-функция с параметром-ключом К, который известен только отправителю и получателю, любая модификация исходного сообщения будет немедленно обнаружена. Рисунок 4. На рис. 4 показан другой вариант использования односторонней хэш-функции для проверки целостности данных. В этом случае односторонняя хэш-функция h (∙) не имеет параметра-ключа, но применяется не просто к сообщению М, а к сообщению, дополненному секретным ключом К, т. е. отправитель вычисляет дайджест т = h(M, К). Получатель, извлекая исходное сообщение М, также дополняет его тем же известным ему секретным ключом К, после чего применяет к полученным данным одностороннюю хэш-функцию h (∙). Результат вычислений — дайджест т' — сравнивается с полученным по сети дайджестом т. При использовании односторонних функций шифрования в рассмотренные выше протоколы необходимо внести следующие изменения: · функция симметричного шифрования Ек заменяется функцией hK; · проверяющий вместо установления факта совпадения полей в расшифрованных сообщениях с предполагаемыми значениями вычисляет значение однонаправленной функции и сравнивает его с полученным от другого участника обмена информацией; · для обеспечения независимого вычисления значения однонаправленной функции получателем сообщения в протоколе 1 метка времени tA должна передаваться дополнительно в открытом виде, а в сообщении (2) протокола 3 случайное число rA должно передаваться дополнительно в открытом виде. Модифицированный вариант протокола 3 с учетом сформулированных изменений имеет следующую структуру: — (1) — (2) — (3) Заметим, что в сообщение (3) протокола включено поле A. Результирующий протокол обеспечивает взаимную аутентификацию и известен как протокол SKID 3. В протоколах строгой аутентификации могут быть использованы асимметричные алгоритмы с открытыми ключами. В этом случае доказывающий может продемонстрировать знание секретного ключа одним из следующих способов: · расшифровать запрос, зашифрованный на открытом ключ · поставить свою цифровую подпись на запросе. Выбранная система с открытым ключом должна быть устойчивой к атакам с выборкой шифрованного текста даже в том случае, если нарушитель пытается получить критичную информацию, выдавая себя за проверяющего и действуя от его имени. В качестве примера протокола, построенного на использовании асимметричного алгоритма шифрования, можно привести следующий протокол аутентификации: — (1) — (2) Участник В выбирает случайным образом r и вычисляет значение х = h(r) (значение х демонстрирует знание r без раскрытия самого значения r), далее он вычисляет значение е = РА(r,В). Под РА подразумевается алгоритм асимметричного шифрования (например, RSA), а под h (∙) — хэш-функция. Участник В отправляет сообщение (1) участнику А. Участник А расшифровывает е = РА(r, В) и получает значения r1 и B1, а также вычисляет x1 = h (r1). После этого производится ряд сравнений, доказывающих, что х = х1, и что полученный идентификатор Bt действительно указывает на участника В. В случае успешного проведении сравнения участник А посылает г. Получив его, участник В проверяет, то ли это значение, которое он отправил в сообщении (1). В качестве другого примера приведем модифицированный протокол Нидхэма и Шредера, основанный на асимметричном шифровании (достаточно подробно он описан в разделе, посвященном распределению ключевой информации, поскольку основной вариант протокола используется для аутентификационного обмена ключевой информации). Рассматривая вариант протокола Нидхэма и Шредера, используемый только для аутентификации, будем подразумевать под РВ алгоритм шифрования открытым ключом участника В. Протокол имеет следующую структуру: — (1) — (2) — (3) В рекомендациях стандарта Х.509 специфицирована схема аутентификации, основанная на использовании цифровой подписи, меток времени и случайных чисел. Для описания этой схемы аутентификации введем следующие обозначения: tA, rA и rВ — временная метка и случайные числа соответственно; SA — подпись, сгенерированная участником А; SB — подпись, сгенерированная участником В; cert A — сертификат открытого ключа участника А; cert B — сертификат открытого ключа участника В. Если участники имеют аутентичные открытые ключи, полученные друг от друга, то можно не пользоваться сертификатами, в противном случае они служат для подтверждения подлинности открытых ключей. В качестве примеров приведем следующие протоколы аутентификации. 1. Односторонняя аутентификация с применением меток времени: — (1) После принятия данного сообщения участник В проверяет правильность метки времени tA, полученный идентификатор В и, используя открытый ключ из сертификата cert А, корректность цифровой подписи SA(tA, В). 2. Односторонняя аутентификация с использованием случайных чисел: — (1) — (2) Участник В, получив сообщение от участника А, убеждается, что именно он является адресатом сообщения; используя открытый ключ участника А, взятый из сертификата cert А, проверяет корректность подписи SA(rA, rB, В) под числом rА, полученным в открытом виде, числом rВ, которое было отослано в сообщении (1), и его идентификатором В. Подписанное случайное число rА используется для предотвращения атак с выборкой открытого текста. 3. Двусторонняя аутентификация с использованием случайных чисел: — (1) — (2) — (3) В данном протоколе обработка сообщений (1) и (2) выполняется так же, как и в предыдущем протоколе, а сообщение (3) обрабатывается аналогично сообщению (2).
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|