Вопрос 23.Атаки на протоколы идентификации.
Перечень атак на протоколы идентификации и методов их отражения.
Подмена — попытка подменить одного пользователя другим.
Методы противодействия состоят в сохранении в тайне от противника информации, определяющей алгоритм идентификации.
Повторное навязывание сообщения (replay) — подмена или другой метод обмана, использующий информацию ранее проведенного протокола идентификации того же самого или другого пользователя.
Методы противодействия включают использование протоколов типа “запрос-ответ”, использование временных меток, случайных чисел или возрастающих последовательностей чисел.
Комбинированная атака (interleaving attack) — подмена или другой метод обмана, использующий комбинацию данных из ранее выполненных протоколов, в том числе протоколов, ранее навязанных противником.
Метод противодействия состоит в обеспечении целостности проводимых протоколов и отдельных сообщений.
Атака отражением — комбинированная атака, использующая посылку части информации только что проведенного протокола доказывающему.
Методы противодействия включают введение в протокол идентификационной информации проверяющего, использование различных ключей для приема и передачи сообщений.
Задержка передачи сообщения (forced delay) — перехват противником сообщения и навязывание его в более поздний момент времени.
Методы противодействия включают использование случайных чисел совместно с ограничением временного промежутка для ответа, использование временных меток.
Атака с использованием специально подобранных текстов- атака на протоколы типа “запрос-ответ”, при которой противник по определенному правилу выбирает запросы с целью получить информацию о долговременном ключе доказывающего. Эта атака может включать специально подобранные открытые тексты, если доказывающий должен подписать или зашифровать запрос, и специально подобранные шифрованные тексты, если доказывающий должен расшифровать запрос.
Методы противодействия этой атаке состоят во включении случайных чисел в запросы или ответы, а также в использовании протоколов с нулевым разглашением.
Использование противником своих средств в качестве части телекоммуникационной структуры— атака, при которой в протоколе идентификации между А и В противник С входит в телекоммуникационный канал и становится его частью при реализации протокола между А и В. При этом противник может подменить информацию, передаваемую между A и В. Эта атака особенно опасна в случае установления A и В общего ключа по протоколу Диффи — Хеллмана.
Противодействие этой атаке состоит в использовании защищенного канала для установления общего ключа между A и В.
Идентификация может быть гарантирована только в момент времени после завершения протокола. При этом имеется опасность того, что противник подключится к линии связи после окончания процесса идентификации, выдавая себя за законного пользователя. Для исключения этой возможности следует совместить процесс идентификации с процессом установления общего сеансового ключа, который должен быть использован для защиты передаваемой информации до следующей реализации протокола идентификации.
Вопрос 24.Хэш-функции
Хэш-функции — это функции, предназначенные для “сжатия” произвольного сообщения или набора данных, записанного, как правило, в двоичном алфавите, в некоторую битовую комбинацию фиксированной длины, называемую сверткой. Хэш-функции имеют разнообразные применения при проведении статистических экспериментов, при тестировании логических устройств, при построении алгоритмов быстрого поиска и проверки целостности записей в базах данных. Например, для осуществления быстрого поиска нужного сообщения в большом списке сообщений различной длины удобнее сравнивать друг с другом не сами сообщения, а короткие значения их сверток, играющих одновременно роль контрольных сумм. Основным требованием к таким хэш-функциям является равномерность распределения их значений при случайном выборе значений аргументов.
В криптографии хэш-функции применяются для решения следующих задач:
· построения систем контроля целостности данных при их передаче или хранении,
· аутентификации источника данных.
При решении первой задачи для каждого набора данных вычисляется значение хэш-функции (называемое кодом аутентификации сообщения или имитовставкой), которое передается или хранится вместе с самими данными. При получении данных пользователь вычисляет значение свертки и сравнивает его с имеющимся контрольным значением. Несовпадение говорит о том, что данные были изменены.
Хэш-функция, служащая для выработки имитовставки, должна позволять (в отличие от обычной контрольной суммы) осуществлять обнаружение не только случайных ошибок в наборах данных, возникающих при их хранении и передаче, но и сигнализировать об активных атаках злоумышленника, пытающегося осуществить навязывание ложной информации. Для того чтобы злоумышленник не смог самостоятельно вычислить контрольное значение свертки и тем самым осуществить успешную имитацию или подмену данных, хэш-функция должна зависеть от секретного, не известного злоумышленнику, параметра - ключа пользователя. Этот ключ должен быть известен передающей и проверяющей сторонам. Такие хэш-функции будем называть ключевыми.
Имитовставки, формируемые с помощью ключевых хэш-функций, не должны позволять противнику создавать поддельные (сфабрикованные) сообщения (fabrication) при атаках типа имитация (impersonation) и модифицировать передаваемые сообщения (modification) при атаках типа “подмена” (substitution).
При решении второй задачи — аутентификации источника данных — мы имеем дело с не доверяющими друг другу сторонами. В связи с этим подход, при котором обе стороны обладают одним и тем же секретным ключом, уже неприменим.В такой ситуации применяют схемы цифровой подписи, позволяющие осуществлять аутентификацию источника данных. Как правило, при этом сообщение, прежде чем быть подписано личной подписью, основанной на секретном ключе пользователя, “сжимается” с помощью хэш-функции, выполняющей функцию кода обнаружения ошибок В данном случае хэш-функция не зависит от секретного ключа и может быть фиксирована и известна всем. Основными требованиями к ней являются гарантии невозможности подмены подписанного документа, а также подбора двух различных сообщений с одинаковым значением хэш-функции (в этом случае говорят, что такая пара сообщений образует коллизию).
Формализуя сказанное, введем следующее определение. Обозначим через X множество, элементы которого будем называть сообщениями. Обычно сообщения представляют собой последовательности символов некоторого алфавита, как правило, двоичного. Пусть Y — множество двоичных векторов фиксированной длины.
Хэш-функцией называется всякая функция h: X -> Y, легко вычислимая и такая, что для любого сообщения Мзначение h(M) = Н (свертка) имеет фиксированную битовую длину.
Как правило, хэш-функции строят на основе так называемых одношаговых сжимающих функций у = f(xl,x2) двух переменных, где х1 и у — двоичные векторы длины m и nсоответственно, причем n — длина свертки. Для получения значения h(M)сообщение М сначала разбиваетсяна блоки длины m (при этом если длина сообщения не кратна m, то последний блок неким специальным образом дополняется до полного), а затем к полученным блокам М1, М2,.., МN применяют следующую последовательную процедуру вычисления свертки:
(1) |
Здесь v— некоторый фиксированный начальный вектор. Если функция f зависит от ключа, то этот вектор можно положить равным нулевому вектору. Если же функция fне зависит от ключа, то для исключения возможности перебора коротких сообщений (при попытках обращения хэш-функции) этот вектор можно составить из фрагментов, указывающих дату, время, номер сообщения и т. п.
При таком подходе свойства хэш-функции hполностью определяются свойствами одношаговой сжимающей функции f.