Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Петров А.А. Комп без-ть

.pdf
Скачиваний:
39
Добавлен:
28.03.2016
Размер:
16.03 Mб
Скачать

Протоколы аутентификации

 

111

Пользователь А

Система

 

Таблица паролей

 

Идентификатор

Н (парольд)

 

А

Н(парольд)

 

 

 

 

у Пароль

Пароль

Н

отвергается

 

 

Пароль

Н(парольд)

Пароль

и идентификатор

 

 

 

принимается

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

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

Чтобы ослабить эффект от словарной атаки, каждый пароль перед при­ менением односторонней функции может быть расширен с помощью слу­ чайной строки. Оба пароля - хэшированный и дополненный - в произволь­ ной последовательности записываются в файл паролей. Когда пользователь вводит пароль, система генерирует случайную последовательность и при­ меняет к введенному паролю и случайной последовательности односто­ роннюю функцию. Проведение атаки методом полного перебора затруднит­ ся вследствие увеличения объема вычислений (например, если случайная последовательность состоит из 1; символов, то сложность перебора увели­ чится в 2 1), а также вследствие необходимости привлечения дополнитель­ ных ресурсов для проведения атак данного типа. Заметим, что при помо­ щи случайной последовательности два пользователя, выбрав одинаковые пароли, будут иметь различные записи в файлах паролей. В таких систе­ мах в качестве случайной последовательности может использоваться иден­ тификатор пользователя.

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

112______ Аспекты создания и применения криптографических протоколов

Пример

В качестве примера простой аутентификации рассмотрим организацию парольной защиты в операционной системе (О С ) \Ушс1о\у5 N7. Прежде чем пользователь получит доступ к некоторым ресурсам системы, он должен пройти через процедуру входа в систему, при этом подсистема безопасно­ сти должна распознать его по имени и проверить подлинность запроса по паролю. Пароль пользователя хранится в базе данных в двух вариантах - в виде, необходимом для проведения аутентификации между компьюте­ рами, работающими под управлением ОС \\%<1 о\у5 N 4 (N 4 ЬазЬ), и в виде, необходимом для аутентификации между компьютерами, работающими под управлением ОС \^тс1о^ 5 95 или \Утс1о\У5 Гог ШогкСгоирз (Ьап та - па^ег ЬазЬ). Д ля формирования N 4 ЬазЬ используется алгоритм М О 4. Для формирования Ьап тапа§ег ЬазЬ все алфавитные символы исходной стро­ ки пароля приводятся к верхнему регистру. Каждая из двух половин 14байтного символьного пароля обрабатывается независимо от другой. Если длина пароля меньше 14 символов, то вторая половина заполняется нуля­ ми. На основании этих двух 7-байтных половин формируется ключ для шифрования по ИЕЗ некоторого 64-битного числа. В результате получа­ ются две половины 16-байтного хэшированного пароля.

Схемы одноразовых паролей

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

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

последовательность преобразуемых одноразовых паролей. Здесь изна­ чально распределенным является только один пароль. В ходе очередной

Протоколы аутентификации

113

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

последовательности паролей, основанные на односторонней функции. Суть данного метода составляет последовательное использование од­ носторонней функции (схема Лампорта, представленная ниже). Этот метод с точки зрения безопасности предпочтительней, чем метод по­ следовательно преобразуемых паролей.

В схеме, предложенной Лампортом, пользователи начинают с разделения секрета \у. Односторонняя функция Н применяется для того, чтобы опреде­ лить последовательность паролей: \у, Н (^ ), Н ( И ( ^ ) ) , ..., Щ ^ ) . Пароль, ко­ торый будет использоваться в 1-й сессии аутентификации, равен ^ = Н ы(^/), а количество сессий, для которых назначается начальный секрет V/, обозна­ чим через 1: (на практике обычно 1: = 100 или 1000). Пользователь в ходе 1

сессии аутентификации (значение предыдущей сессии сохраняется про­

веряющим) передает \уь а проверяющий производит сравнение Н (\у) = \ум, и при совпадении идентичность пользователя принимается.

2,2.3. Строгая аутентификация

Общие сведения

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

114Аспекты создания и применения криптографических протоколов

Всоответствии с рекомендациями Х.509 процедуры строгой аутентифика­ ции могут быть следующих типов:

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

-подтвердить подлинность только одной стороны информационного обмена;

-обнаружить нарушение целостности передаваемой информации;

-обнаружить проведение атаки типа «повтор передачи»;

-гарантировать, что передаваемыми аутентификационными данны­ ми может воспользоваться только проверяющая сторона;

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

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

Необходимо отметить, что данная классификация условна. Эти приемы носят только теоретический характер, а набор используемых средств зави­ сит непосредственно от контекста применения того или иного типа строгой аутентификации. Следует учитывать, что проведение строгой аутентифика­ ции требует дополнительного согласования сторонами используемых крип­ тографических алгоритмов и ряда дополнительных параметров.

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

Протоколы аутентификации

115

Существует несколько точек зрения на применение одноразовых пара­ метров:

проверка своевременности в протоколах, построенных по принципу зап­ рос/ответ. В ней могут использоваться случайные числа, метки време­ ни с синхронизацией часов или номера последовательностей для кон­ кретной пары (проверяющий, доказывающий);

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

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

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

Строгая аутентификация, основанная на симметричных алгоритмах

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

Протоколы с симметричными алгоритмами шифрования

Яркими представителями протоколов, обеспечивающих аутентификацию пользователей с привлечением в процессе аутентификации третьей дове­ ренной стороны, являются протокол КегЬегоз и протокол распределения секретных ключей Нидхэма и Шредера.

116 Аспекты создания и применения криптографических протоколов

Ниже приводятся примеры отдельных протоколов аутентификации, спе­ цифицированных в 150/1ЕС 9798-2. В ходе работы подобные протоколы будут требовать предварительного распределения секретных ключей (что в дальнейшем позволит отказаться от третьей - доверенной - стороны). Мы рассмотрим следующие варианты аутентификации:

односторонняя с использованием меток времени, состоящая из двух шагов;

односторонняя с использованием случайных чисел, состоящая из трех шагов;

двусторонняя, требующая от двух до трех шагов.

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

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

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

гА - случайное число, сгенерированное участником А.

1:а - метка времени, сгенерированная участником А.

Ек - симметричное шифрование на ключе к (ключ к должен быть пред­ варительно распределен между А и В).

1, Односторонняя аутентификация, основанная на метках времени:

А —*В: Ек(1А, В)

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

2. Односторонняя аутентификация, основанная на использовании слу­ чайных чисел:

Протоколы аутентификации

117

А*~В: гв А —>В: Ек(г в, В )

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

3.Двусторонняя аутентификация, использующая случайные значения:

А4—В: гв

А—*В: Ек(гА, гв, В)

А*-В : Ек (гв, гА)

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

Протоколы, основанные на использовании однонаправленных ключевых функций

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

функция шифрования Ек заменяется функцией Ьк;

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

в протоколе 1 ЪА может передаваться дополнительно в открытом виде, а в протоколе 2 гА может дополнительно передаваться в откры­ том виде.

118 Аспекты создания и применения криптографических протоколов

Приведем в качестве примера модификацию протокола 3. Результирую­ щий протокол известен как 5КГО 3 и имеет следующую структуру:

А< В: Гц

А-^В: гА, Ьк(гА, гв, В)

А+-В: Ьк (гв, гА, А )

Реализация аутентификации с использованием дополнительных устройств

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

В ходе протоколов, построенных по принципу запрос/ответ, в некото­ рых случаях возникает необходимость использования вычислительных ус­ тройств и устройств хранения долговременной ключевой информации. Кроме того, такие устройства, как смарт-карты, могут реализовывать в себе устройства хранения ключевой информации и вычислитель. Здесь мы рассмотрим устройство, которое используется для генерации кодов или одноразовых паролей (рис. 2.4). Оно называется генератором кодов (раззсобе §епега!:ог) и содержит специфичный для данного устройства секрет­ ный ключ.

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

Рис. 2.4. Алгоритм работы генератора кодов

Протоколы аутентификации

119

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

Строгая аутентификация, основанная на асимметричных алгоритмах

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

расшифровать запрос, зашифрованный на открытом ключе;

подписать запрос проверяющего.

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

Аутентификация с использованием асимметричных алгоритмов шифрования

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

А4—В: Ь(г), В, Р А(г, В )

А-*В: г

Участник В выбирает случайным образом г и вычисляет значение х = Ь (г) (значение демонстрирует знание г без раскрытия самого г), далее вычисляется значение е = РА(г, В). Под Р А подразумевается алгоритм асим­ метричного шифрования (например, К ЗА), а под Ь - хэш-функция. Учас­ тник А расшифровывает е и получает значения г1и В1, а также вычисляет х1== Ь (г1). После этого производится ряд сравнений, доказывающих, что х = х1 и что полученный идентификатор В 1 действительно указывает на участника В. В случае успешного проведения сравнения участник А посы­ лает г. Получив его, участник В проверяет, то ли это значение, которое он отправил в первом сообщении.

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

120 Аспекты создания и применения криптографических протоколов

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

А- В : Р в(г „ А ) А^-В: РА(г2, гО

А*-В : г2

Аутентификация, основанная на использовании цифровой подписи

Аутентификация, специфицированная в рекомендациях Х.509, основана на использовании цифровой подписи, меток времени и случайных чисел. Поскольку она относится к разряду аутентификационного ключевого об­ мена, то о ней рассказывается в разделе, посвященном распределению клю­ чевой информации.

Для описания примеров введем следующие обозначения:

гА и 1;а - случайное число и временная метка соответственно;

5а - подпись, сгенерированная участником А;

сеНАсертификат открытого ключа участника А.

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

впротивном случае они служат для подтверждения подлинности откры­ тых ключей.

Вкачестве примеров приведем следующие протоколы аутентификации:

1.Односторонняя аутентификация с применением меток времени:

А—>-В: сеПА, *А, В, 5А(1:А, В)

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

2. Односторонняя аутентификация с использованием случайных чисел:

А*-В: гв А —”В: сеНА, гА, В, 3А(гА, гв, В)

Участник В проверяет корректность подписи и адресата сообщения. Случайное число гА используется для предотвращения атак с выбор­ кой открытого текста.

3.Двусторонняя аутентификация с использованием случайных чисел:

А«—В: гв

А^ В : сегСА, гА, В, 3А(гА, гв, В)

А+-В: сеПв, А, Зв(гв, гА, А )