Иванов М.А. КМЗИ сети
.pdfного ключа, а их как минимум двое. Таким образом, задачи обеспечения секретности и аутентичности должны решаться различными методами [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