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

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

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

ного ключа, а их как минимум двое. Таким образом, задачи обеспечения секретности и аутентичности должны решаться различными методами [8].

4.2. Имитозащита информации. Контроль целостности потока сообщений

На всех этапах своего жизненного цикла информация может подвергаться случайным и умышленным деструктивным воздействиям. Для обнаружения случайных искажений информации применяются корректирующие коды, которые в некоторых случаях позволяют не только зафиксировать факт наличия искажений информации, но и локализовать и исправить эти искажения. Умышленные деструктивные воздействия чаще всего имеют место при хранении информации в памяти компьютера и ее передаче по каналам связи. В таком случае полностью исключить возможность несанкционированных изменений в массивах данных нельзя. Поэтому крайне важно оперативно обнаружить данные изменения, поскольку в этом случае ущерб, нанесенный законным пользователям, будет минимальным. Целью противника, навязывающего ложную информацию, является выдача ее за подлинную, поэтому своевременная фиксация факта наличия искажений в массиве данных сводит на нет все усилия злоумышленника. Таким образом, под имитозащитой понимают не исключение возможности несанкционированных изменений информации, а совокупность методов, позволяющих достоверно зафиксировать факты изменений, если они имели место [8, 25, 29].

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

де 1, если в массиве данных M отсутствуют искажения, или 0, если такие искажения имеют место. Для ограничения возможностей противника по подбору информационной последовательности M' M' ζ M , где M – правильная последовательность (без

искажений), такой, что T M' 1, идеальная процедура этой проверки должна обладать следующими свойствами [8]:

131

невозможно найти такое сообщение M' способом, более эффективным, чем полный перебор по множеству допус-

тимых значений M (такая возможность в распоряжении противника имеется всегда);

вероятность успешно пройти проверку у случайно выбранного сообщения M' не должна превышать заранее установленного значения.

Учитывая, что в общем случае все возможные значения M могут являться допустимыми, второе свойство требует внесения избыточности в защищаемый массив данных. При этом чем больше разница N между размером преобразованного избыточ-

ного M * и размером исходного M массивов, тем меньше вероятность принятия искаженных данных за подлинные. Эта веро-

ятность равна 2-N .

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

Использование блока nrb позволяет контролировать целостность потока сообщений, защищая от повтора, задержки, переупорядочивания или их утраты. При использовании в качестве nrb порядкового номера получатель, приняв (i + 1)-е сообщение, проверяет равенство nrbi 1 nrbi 1, т.е. что его номер на едини-

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

132

 

 

Исходные данные

 

Избыточные

 

 

 

 

 

 

 

разряды

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

а

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Зашифрование

 

 

 

 

 

 

 

Ek

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Защищенные данные

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Неповторяющийся

 

 

 

 

 

Исходные

 

 

 

 

 

 

 

 

данные

 

 

 

блок данных nrb

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

б

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Формирование

 

 

 

 

 

 

 

 

 

 

 

контрольного кода

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Защищенные данные

 

 

Контрольный

 

 

 

 

 

 

 

 

код

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Неповторяющийся

 

 

 

 

 

Исходные

 

 

 

 

 

 

 

 

данные

 

 

 

блок данных nrb

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Формирование контрольного кода

Зашифрование

в

Ek

 

Защищенные данные

Рис. 4.1. Схемы контроля целостности:

а– с использованием зашифрования;

б– с формированием контрольного кода;

в– с формированием контрольного кода и зашифрованием

133

Шифрование (i - 1)-го сообщения

i-е cообщение

Шифрование

Зашифрование

i-го сообщения

Ek

Зашифрованное

сообщение

Шифрование (i + 1)-го сообщения

Рис. 4.2. Контроль целостности потока сообщений

Рассмотрим схему на рис. 4.1,б. Самый естественный способ преобразования информации с внесением избыточности – добавление к исходным данным контрольного кода s фиксированной разрядности N, вычисляемого как некоторая функция от этих

данных:

M, s M, f M , s N .

M *

В такой ситуации выделение исходных данных из преобразо-

ванного массива M * суть простое отбрасывание контрольного кода s. Проверка же целостности заключается в вычислении для содержательной части M' полученного массива данных контрольного кода sχ f M' и сравнении его с переданным значе-

нием s. Если они совпадают, сообщение считается подлинным, в противном случае ложным:

­1, если s = f M' ; T M ' ®¯0, еслиs z f M' .

Функция f формирования контрольного кода обязана удовлетворять следующим требованиям:

она должна быть вычислительно необратимой, т.е. подобрать массив данных под заданный контрольный код можно

134

только путем полного перебора по пространству возможных значений M;

у противника отсутствует возможность сформировать ложный массив данных (или ложное сообщение) M' и снабдить его корректно вычисленным контрольным кодом s f M' .

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

4.3. Криптографические методы контроля целостности

Можно выделить два основных криптографических подхода к решению задачи защиты информации от несанкционированных изменений данных, которые предполагают формирование:

1)кода аутентификации сообщений MAC (Message Authentication Code);

2)кода обнаружения манипуляций с данными MDC (Manipulation Detection Code).

Втабл. 4.1 приведены сравнительные характеристики указанных двух подходов [8, 24]. Главное различие между кодами MAC и MDC заключается в том, что в первом случае для формирования контрольного кода требуется секретная информация, а во втором – нет.

4.4.Код аутентификации сообщений

Формирование кода MAC с использованием функции зашифрования блочного шифра официально или полуофициально закреплено во многих государственных стандартах шифрования. Имитоприставка ГОСТ 28147-89 – классический пример кода MAC. Код аутентификации сообщений может формироваться в режимах CBC или СFB, обеспечивающих зависимость последнего блока шифротекста от всех блоков открытого текста. В случае использования преобразования Ek для выработки контрольного

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

135

ство обратимости; во-вторых, его криптостойкость может быть снижена (например, за счет уменьшения числа раундов шифрования, как в ГОСТ 28147-89). Действительно, в случае выработки кода MAC преобразование всегда выполняется в одну сторону, при этом в распоряжении противника есть только зависящий от всех блоков открытого текста контрольный код, в то время как при зашифровании у него имеется набор блоков шифротекста, полученных с использованием одного секретного ключа.

 

 

Таблица 4.1

Сравнительная характеристика MAC и MDC

 

 

 

 

Параметр

MAC

MDC

Используемое

Функция зашифрования

Хеш-функция

 

преобразование

блочного шифра

 

 

Секретная

Секретный ключ

Нет

 

информация

 

 

 

 

Возможность для

Отсутствует

Присутствует

 

противника вычислить

 

контрольный код

 

 

 

Хранение и передача

Вместе с защищаемыми

Отдельно

 

контрольного кода

Данными

от защищаемых данных

 

Дополнительные

Требует

Необходим

 

аутентичный канал

 

предварительного

 

условия

для передачи

 

распределения ключей

 

 

контрольного кода

 

 

 

 

 

 

Защита при разовой

 

Области

Защита

передаче данных,

 

использования

при передаче данных

контроль целостности

 

 

 

хранимой информации

 

4.5. Код обнаружения манипуляций с данными

MDC есть результат действия хеш-функции. Иначе говоря, MDC – это хеш-образ сообщения M, к которому применили хешфункцию, т.е. s h M . Основное требование к хеш-функции: не

должно существовать способа определения массива данных M, имеющего заданное значение хеш-образа h M , отличного от

перебора по всему множеству возможных значений M. Наиболее простой способ построения хеш-функции основан на использовании вычислительной необратимости относительно ключа k

136

функции зашифрования Ek любого блочного шифра. Даже при известных блоках открытого M и закрытого c Ek M текстов

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

1)массив данных M разбивается на блоки фиксированного размера, равного размеру ключа k используемого блоч-

ного шифра, т. е.

M M1M2M3 ...Mt ,

 

 

M1

 

M2

 

M3

...

 

Mm-1

 

k

 

, 0 <

Mt

 

δ

 

k

 

;

 

 

 

 

 

 

 

 

 

2)

если последний блок Mt неполный,

он дополняется ка-

 

ким-либо образом до нужного размера

 

k

 

;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3)

хеш-образ сообщения вычисляется следующим образом:

 

s

h M

EMt ...EM3

EM 2 EM1 s0 ,

 

 

 

 

 

 

 

где s0 – синхропосылка, обычно выбирают s0

0.

 

 

 

 

Задача подбора массива данных

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

M' M'1M'2M'3 ... M't

под заданный контрольный код s эквивалентна системе уравнений, которую необходимо решить для определения ключа для заданных блоков открытого и закрытого (в режиме простой за-

мены) сообщений. Однако в рассматриваемой ситуации нет не-

обходимости решать всю систему

EM'

s0

 

s1;

 

1

s1

 

 

EM'2

s2 ;

E

M'

s

2

 

s ;

 

 

 

3

 

3

 

 

 

 

...

 

 

 

 

EM' sM'-1

s,

 

t

 

 

 

 

достаточно решить уравнение

EM 'i

si-1

si

137

относительно M'i , остальные блоки массива M могут быть произвольными. Но и эта задача в случае использования надежной функции Ek вычислительно неразрешима.

К сожалению, приведенная схема формирования MDC не учитывает наличия так называемых побочных ключей шифра. Если для kχ ζ k справедливо

Ekχ Mi Ek Mi ,

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

Обнаружение противником побочного ключа при дешифровании сообщения не является особым успехом, так как с вероятностью, близкой к 1, на этом найденном побочном ключе он не сможет правильно расшифровать другие блоки закрытого текста, учитывая, что для различных блоков побочные ключи в общем случае также различны. В случае выработки кода MDC ситуация прямо противоположная: обнаружение побочного ключа означает, что противник нашел такой ложный блок данных, использование которого не изменяет контрольного кода [8].

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

исходный блок:

 

Mi

b1b2b3b4b5b6b7b8b9b10b11b12b13b14b15b16

;

расширенный блок:

 

Ext Mi

(b1b2b3b4b5b6b7b8b9b10b11b12b13b14b15b16b1b4b7b10b13b16b3b6b9b12b15

b2b5b8b11b14),

где bi – байты блока данных [8].

138

4.6. Код HMAC

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

Для повышения безопасности подобного алгоритма получения MAC, создана схема вложенного (nested) MAC, в которой хеширование выполняется дважды (рис. 4.3). В стандарте NIST FIPS 198 вложенный MAC назван HMAC (hashed MAC). Схема формирования HMAC (рис. 4.4) более сложная, чем показанная на рис. 4.3. Алгоритм формирования HMAC имеет следующий вид:

1.Сообщение делится на N блоков, по b бит в каждом.

2.Секретный ключ дополняется слева нулями до получения b-разрядного ключа. Рекомендуется, чтобы секретный ключ до операции дополнения имел длину, большую n, где n – разрядность HMAC.

3.Выполняется операция XOR результат шага 2 с константой ipad (input pud). Величина ipad суть b/8 повторений последовательности 36h.

4.Полученный блок добавляется слева к N-блоковому сообщению.

5.Результат шага 4 хешируется и создается n-разрядный хеш-образ, называемый Intermediate HMAC.

6.Результат шага 5 дополняется слева нулями до получения b-разрядного блока.

7.Шаги 2 и 3 повторяются с константой opad (output pud). Величина opad суть b/8 повторений последовательности

5Ch.

8.Результат шага 7 добавляется слева к блоку, полученному на шаге 6.

9.Результат шага 8 хешируется с использованием той же хеш-функции и создается финальный HMAC.

139

KAB M

h(x)

KAB MAC

h(x)

MAC

Рис. 4.3. Схема формирования кода nested MAC

KAB ipad

Дополнение

b b

b

 

 

M1

M2

MN

 

bN

 

h(x)

KAB

opad

n

 

 

Intermediate

Дополнение

 

HMAC

b

n

b

Дополнение

b

 

b

 

 

 

2b

 

 

h(x) n

HMAC

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

140