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

Иванов М.А. КМЗИ сети

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

4.7.Код CMAC

Встандарте NIST FIPS 113 определена схема формирования кода аутентификации сообщений, названная CMAC (или CBCMAC). Схема формирования CMAC показана на рис. 4.5

и 4.6.

Оригинальное сообщение делится на N блоков по m разрядов в каждом. Если последний блок имеет длину, меньшую m, он дополняется единичным битом и последующими нулевыми битами до требуемой длины. Пусть n – разрядность CMAC. Пер-

вый блок сообщения M1 шифруется на симметричном ключе KAB, в результате получается m-разрядный блок шифротекста. Этот блок поразрядно суммируется по модулю 2 со следующим бло-

ком сообщения M2, в результате вновь получается m-разрядный блок шифротекста. Процесс повторяется до тех пор, пока не бу-

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

ние к симметричному ключу KAB для получения CMAC на последнем шаге шифрования используется другой ключ k. Он фор-

мируется в результате шифрования на ключе KAB блока, состоящего из m нулевых бит, после чего результат умножается на x или x2 в поле GF(2m), если операции дополнения последнего блока соответственно не проводилась или проводилась.

M1

M2

MN

 

m

m

m

 

 

m

m

m

E

E

E

k

m

m

m

 

KAB

 

Взятие n левых бит

 

 

n

 

 

 

CMAC

 

Рис. 4.5. Схема формирования кода CMAC

141

b нулей

KAB

 

E

Умножение на x или x2

 

k

Рис. 4.6. Схема генерации ключа k для последнего шага формирования CMAC

4.8. Идентификация, аутентификация и авторизация

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

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

предъявлении пользователем некоторых неизменных признаков, неразрывно связанных с ним; предоставлении доказательств того, что он находится в определенном месте в определенное время;

установлении подлинности пользователя некоторой третьей доверенной стороной.

Процедуры аутентификации должны быть устойчивы к подло-

гу, подбору и подделке.

142

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

Претендент A

 

Верификатор B

1

Запрос доступа

 

 

Запрос идентификатора (ID)

2

3

ID

 

 

 

Идентификация

4

 

 

(проверка ID)

 

 

 

 

Запрос пароля (PW)

5

 

6

PW

 

 

 

 

Аутентификация

7

 

 

(проверка пароля)

 

 

 

Авторизация 8

Разрешение доступа

9

Рис. 4.7. Процессы идентификации и аутентификации

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

143

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

Доступ к механизмам авторизации должны иметь только специальные системные программы ОБИ, а также строго ограниченный круг пользователей, отвечающих за безопасность системы. Рассматриваемые механизмы должны быть тщательно защищены от случайного или преднамеренного доступа неавторизованных пользователей. Многие атаки на информационные системы нацелены именно на вывод из строя или обход средств разграничения доступа.

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

(верификатором).

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

144

4.9. Аутентификация субъекта

Цель субъекта взаимодействия при аутентификации – доказать верификатору подлинности предъявленного идентификатора.

Классическим средством аутентификации субъекта являются парольные схемы. При этом для устранения последствий несанкционированного доступа противника к информации, хранящейся в памяти компьютера верификатора, передаваться может не сам пароль pw (password), а его хеш-образ q = h(pw) (рис. 4.8).

Функция h(pw) в этой ситуации может быть определена как

h pw

Epw ID ,

если длина пароля и длина ключа k функции зашифрования Ek

одинаковы, или как

 

 

h pw

Epw k ID ,

 

если длина пароля меньше

длины ключа. Верификатор заранее

вычисляет значения h(pw) и для каждого идентификатора ID

хранит значения q. Претендент, прошедший идентификацию,

вводит пароль

pwχ; верификатор, получив qχ

h pwχ , проверяет

равенство q

qχ

и при его выполнении заключает, что был вве-

ден правильный пароль, и разрешает доступ. Противник, даже

узнав значение q, не сможет определить pw в силу вычислитель-

ной необратимости функции h(pw).

 

Претендент А

Противник W

Верификатор B

pw'

 

pw = h -1(q)

Хеш-образы

 

 

 

 

 

 

 

паролей

 

 

 

 

q

h(x)

 

 

 

q' = h (pw')

 

Проверка

 

пароля

Рис. 4.8. Простейшая парольная схема аутентификации (вариант 1)

145

Однако рассмотренная схема не защищает от противника, ко-

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

венно к линии связи. В этой ситуации может помочь, схема, по-

казанная на рис. 4.9, в которой процедура вычисления qχ

h pwχ

возложена на верификатора.

 

 

Претендент А

Противник W

Верификатор B

 

pw'

pw = h -1(q)

Хеш-образы

 

 

 

 

 

паролей

 

 

 

q

 

 

 

Проверка

 

 

 

пароля

 

 

 

q' = h (pw')

 

 

 

h

 

Рис. 4.9. Простейшая парольная схема аутентификации (вариант 2)

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

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

На рис. 4.11 рассмотрена модификация схемы, показанной на рис. 4.9. Особенностью данного варианта является использование при создании пароля случайной строки, называемой salt, после выполнения конкатенации введенного пароля pw′ и

146

salt, хранимой на стороне верификатора, результат хешируется и сравнивается с хранимым значением h pw salt .

Претендент A

 

pw'

 

h1

q' = h1(pw')

 

h2

r' = h2(q', nrb)

nrb

r'

nrb

 

Верификатор B

 

Хеш-образы паролей

q

 

h2

 

Проверка nrb

 

r = h2(q, nrb)

Сравнение

nrb

r'

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

На рис. 4.12 показана схема с использованием одноразового пароля. Пользователь системы и верификатор договариваются об используемых хеш-функции, пароле P0 и состоя-

нии счетчика n. Система (верификатор) вычисляет hn P0 , где

hn означает n-кратное применение хеш-функции.

Иначе го-

воря,

справедлива

цепочка равенств

hn x

h hn-1 x ,

hn-1 x

h hn-2 x , …,

h2 x h h x , h1 x

h x . Вначале, при

первом доступе система хранит hn P0 и значение n. На рис. 4.12 рассмотрен принцип осуществления первого доступа в систему.

147

 

 

UserID

Salt

Password

 

 

 

 

A

SA

h(pwA||SA)

 

A

A, pw

B

 

 

 

 

 

 

 

 

 

 

 

 

Конкатенация

 

 

 

 

 

h(x)

 

 

 

 

 

 

Сравнение

 

 

 

 

 

pw′

принимается

 

 

 

 

 

или отвергается

 

Рис. 4.11. Использование случайной строки salt при проверке пароля

 

 

Первоначальная запись

 

 

 

A

n

hn(P0)

 

 

 

A

 

 

 

 

 

A

n

B

 

 

 

 

 

 

 

Новая запись

 

hn1(P0)

В случае совпадения

 

 

 

 

A n 1

hn 1(P0)

 

 

 

 

 

 

 

h(x)

 

 

 

 

 

 

 

Сравнение

 

 

 

 

 

pw’ принимается

 

 

 

 

или отвергается

 

Рис. 4.12. Использование одноразового пароля при аутентификации субъекта

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

148

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

Проверка подлинности предполагает применение неповторяющихся блоков данных, в качестве которых используются временные метки, механизмы запрос-ответ и процедуры рукопожатия (handshake) (рис. 4.13). Метки времени позволяют регистрировать время отправки конкретного сообщения, что дает возможность получателю определить, насколько «устарело» пришедшее сообщение, а значит, защититься от повтора. При использовании меток времени возникает проблема допустимого времени задержки, связанная, во-первых, с невозможностью мгновенной передачи сообщения, а во-вторых, невозможностью абсолютной синхронизации хода часов получателя и отправителя. Механизм «запрос–ответ» предполагает включение пользователем А в сообщение для пользователя В запроса

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

вильным результатом вычислений, пользователь А может быть уверен, что В – подлинный. Процедура рукопожатия заключается во взаимной проверке ключей, используемых субъектами взаимодействия. Последние признают друг друга законными партнерами, если докажут друг другу, что обладают правильными ключами [25].

4.10. Аутентификация объекта

В процессе аутентификации объекта, иногда называемой

аутентификацией источника данных, проверяется подлин-

ность идентификатора, представленного с некоторыми данными. В отличие от аутентификации субъекта в этой ситуации претенденту не нужно быть активным участником процесса ау-

149

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

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

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

 

 

 

...

IDA

 

IDA

KAB

Генератор

KAB

 

...

 

 

ПСЧ

 

 

 

 

 

xA

 

 

DAB

EAB

 

 

xA

 

 

 

 

EAB(xA)

 

h

 

 

 

h(xA)

h

DAB

 

EAB

h(xA)

h(xA)

EAB(h(xA))

 

Сравнение

 

 

 

Если равно,

 

 

пользователь В

 

 

 

опознан

 

 

Рис. 4.13. Механизм «запрос–ответ» и процедура handshake

150