Имитозащита

 

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

Имитозащита есть защита системы шифрованной связи или иной криптосистемы от навязывания ложных данных.

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

, где Y = f(T).

При получении сообщения принявшая его сторона проверяет выполнение условия Y = f(T), и если оно справедливо, сообщение считается подлинным, в противном случае оно отвергается как ложное.

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

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

, где – размер блоков.

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

· злоумышленник может попытаться изменить данные таким образом, чтобы их имитовставка осталась неизменной: ;

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

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

Для вычисления такой контрольной комбинации может быть использована так называемая вычислительно необратимая функция. Функция Y = f(T) называется вычислительно необратимой, если определение таких значений T, для которых справедливо уравнение f(T) = Y, то есть вычисление обратной функциивычислительно невозможно. На практике это означает, что такое значение T не может быть определено более эффективным способом, чем перебором по множеству всех его возможных значений. Размер имитовставки Y êYï= N должен исключать сколько-нибудь значимую вероятность успешной подделки сообщения, которая в наихудшем для аналитика случае равна .

Ясно, что понятие вычислительной необратимости чрезвычайно трудно формализуемо и поэтому его выполнение практически невозможно проверить для конкретных алгоритмов. Схема имитозащиты, основанная на необратимой функции, устойчива по отношению к первой угрозе. Действительно, чтобы ее реализовать, злоумышленник должен подобрать сообщение T под заданную контрольную комбинацию Y, для чего ему необходимо решить уравнение f(T) = Y относительно T, что по нашему предположению невозможно за приемлемое время. Однако данная схема имитозащиты не защищает от второй угрозы. Чтобы сделать ее устойчивой к ней, можно передавать имитовставку вместе с сообщением зашифрованной на том же самом или другом ключе. Контрольная комбинация, вычисленная таким образом, в зарубежной литературе называется кодом обнаружения манипуляций с данными (Manipulation Detection Code), и сокращенно обозначается MDC. Для реализации данного метода необходима вычислительно необратимая функция сжатия данных. Слово “сжатие” присутствует в названии функции потому, что независимо от размера сообщения размер контрольной комбинации всегда постоянен, и, естественно, в большинстве практических случаев меньше размера сообщения. Однако соответствующая область математики настолько сложна, что вычислительная необратимость пока формально не доказана ни для одного используемого на практике алгоритма сжатия данных. В Российском стандарте на шифрование и имитозащиту данных подход на основе MDC не нашел отражения.

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

,

где – исходный текст, разбитый на блоки фиксированного размера. Выработанная таким способом контрольная комбинация получила название кода аутентификации сообщений (Message Autentification Code) и сокращенно обозначается MAC. В отечественной литературе она иногда (не вполне корректно) именуется криптографической контрольной суммой. Как нам реализовать эту функцию f(K,T)? В нашем распоряжении имеется алгоритм криптографического преобразования (простой замены), который обладает необходимыми для построения подобных функций свойствами, однако позволяет работать только с блоками текста фиксированного размера êTï= N.

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

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

.

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

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

.

При этом, однако, следует обратить внимание на две вещи:

· синхропосылка для вычисления имитовставки не нужна – преобразование можно начинать непосредственно с первого блока данных: ;

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

Данные замечания легко учесть – надо лишь изменить порядок использования на каждом шаге операций побитового “исключающего или” и простой замены, – тогда алгоритм вычисления имитовставки будет выглядеть следующим образом: .

Использование в качестве имитовставки последнего блока, полученного при шифровании массива данных гаммированием с обратной связью, или какой-либо функции от него, может сделать некоторые криптографические протоколы несостоятельными. Это имеет место, если для зашифрования текста и выработки имитовставки используется один и тот же алгоритм – гаммирование с обратной связью, и один и тот же ключ. Покажем, что эта схема не обеспечивает имитостойкости. Пусть сообщение зашифровано на ключе K по алгоритму гаммирования с ОС: . Пусть в качестве кода аутентификации используется вычисленный по тому же самому алгоритму и на том же самом ключе код I, очевидно . Тогда полное шифрованное сообщение с кодом аутентификации имеет следующий вид: . Если злоумышленник внесет изменения в шифротекст, то тем не менее наша схема аутентификации не обнаружит изменений, хотя, полученный при расшифровании текст будет весьма далек от истинного. Причина этого кроется в том, что критерием подлинности сообщения здесь служит равенство последнего блока шифротекста контрольной комбинации, а это обеспечить сравнительно легко. Ситуация кардинально не улучшится, если вместо непосредственно последнего блока шифротекста в качестве имитовставки использовать функцию от него, полученную пусть даже с помощью алгоритма простой замены: .

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

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

· использовать для шифрования и вычисления имитовставки различные ключи.

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

· не используется синхропосылка;

· комбинирование кода с данными с помощью функции Å осуществляется не после, а до шага криптопреобразования: , , i = 1,2,...,n.

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

Отметим, что в качестве имитовставки может браться не весь, а только часть полученного блока : , где L = êIï – размер имитовставки. Как правило, это 32 младших бита блока . Размер имитовставки L определяет вероятность успешного навязывания ложных данных, которая равна . В заключении данного раздела отметим, что в режиме вычисления имитовставки ГОСТ разрешает добавлять в начало текста его учетные параметры, такие, как дата последней модификации файла и его размер, и т. д.: I(T) = I(U,T), где U – вектор учетных параметров.