Прошел экстерном экзамен по курсу перепордготовки "Информационная безопасность". Хочу получить диплом, но не вижу где оплатить? Ну и соответственно , как с получением бумажного документа? |
Целостность сообщения и установление подлинности сообщения
1.3. Уcтановление подлинности сообщения
Дайджест сообщения гарантирует целостность сообщения - то есть что сообщение не было изменено. Дайджест сообщения, однако, не подтверждает подлинность передачи сообщения. Когда Алиса передает сообщение Бобу, Боб должен знать, что это сообщение точно прибыло от Алисы. Для того, чтобы обеспечивать установление подлинности сообщения, Алиса должна предоставить доказательство, что это сообщение послала именно она, а не самозванец. Дайджест сообщения не может обеспечить такое доказательство. Дайджест, созданный криптографической хэш-функцией, обычно называется кодом обнаружения модификации (Modification Detection Code - MDC ), - код может обнаружить любое изменение в сообщении. Кроме этого, мы нуждаемся аутентификации сообщения (установление подлинности происхождения данных) - в коде установления подлинности сообщения (Message Authentication Code - MAC ).
Код обнаружения модификации
Код обнаружения модификации ( MDC ) - дайджест сообщения, который может доказать целостность сообщения и подтвердить, что сообщение не было изменено. Если Алиса должна передать сообщение Бобу и хочет быть уверена, что сообщение не будет изменено во время передачи, она может создать дайджест, MDC -сообщение и послать сообщение и MDC Бобу. Боб может создать новый MDC из сообщения и сравнить полученный MDC и новый MDC. Если они одинаковые, значит, сообщение не был изменено. рис. 1.9 иллюстрирует идею.
Рис. 1.9 показывает, что сообщение может быть передано через ненадежный канал. Ева может читать или даже изменять сообщение. MDC, однако, должен быть передан через безопасный канал, - такой канал называют безопасный (safe), он не позволяет изменений.
Если сообщение и MDC передаются через ненадежный канал, Ева может перехватить сообщение, изменить его, создать новый MDC из сообщения и передать их Бобу. Боб никогда не узнает, что сообщение пришло от Евы. Обратите внимание, что термин безопасный может означать сторону, которой доверяют. Термин канал может означать отрезок времени прохождения сигнала. Например, если Алиса создает MDC своего завещания и вносит его с поверенным нотариусом, который сохраняет блокированное сообщение до ее смерти, - она использовала безопасный канал.
Алиса пишет свое завещание и объявляет это публично (ненадежный канал). Алиса делает MDC из сообщения и вносит его с поверенным нотариусом, который сохраняет его до ее смерти (безопасный канал). Хотя Ева может изменить содержание завещания, поверенный может создать MDC завещания и доказать, что версия Евы - подделка. Если хэш-функция криптографии используется для создания MDC, описанные в начале этой лекции три свойства Евой будут потеряны.
Код установления подлинности сообщения (Message Authentication Code - MAC)
Чтобы гарантировать целостность сообщения, подлинность первоначального сообщения и то, что создатель сообщения - Алиса, а не кто-то другой, мы должны изменить код обнаружения модификации ( MDC ) на код установления подлинности сообщения (Message Authentication Code - MAC). Отличие между MDC и MAC в том, что второй включает секретность между Алисой и Бобом, например секретный ключ, которым Ева не обладает. рис. 1.10 иллюстрирует идею.
Алиса использует хэш-функцию, чтобы создать MAC по объединению (конкатенации) ключа и сообщения - h (K|M). Она передает сообщение и MAC Бобу по ненадежному каналу. Боб отделяет сообщение от MAC и затем делает новый MAC из объединения сообщения и ключа засекречивания. Затем Боб сравнивает недавно созданный MAC с полученным. Если оба эти MAC совпадают, то сообщение подлинное и не было изменено противником.
Обратите внимание, что в этом случае нет необходимости использовать два канала. И сообщение, и MAC можно передать по одному, хотя бы и самому ненадежному каналу. Ева может видеть сообщение, но она не может создать новое сообщение, чтобы подделать исходное, потому что Ева не обладает ключом засекречивания между Алисой и Бобом. Она неспособна создать такой же MAC, как это сделала Алиса.
MAC, который мы описали, упоминается как префикс MAC, потому что ключ засекречивания добавлен в конец к началу сообщения. Мы можем иметь MAC с префиксом в конце, - ключ добавлен в конец после конца сообщения. Мы можем комбинировать места префикса и MAC, с тем же самым ключом или двумя различными ключами. Однако MAC в конце сообщения ненадежны.
Безопасность MAC
Предположим, что Ева перехватила сообщение М и дайджест h (K|M). Как Ева может подделать сообщение, не зная ключа засекречивания? Есть три возможных случая.
- Если размер ключа позволяет полный перебор, Ева может перебрать все возможные ключи в начале сообщения и сделать дайджест ( K|M ), чтобы найти, что этот дайджест равняется перехваченному. Она уже знает ключ и может успешно заменить сообщение подделанным сообщением по своему выбору.
- Размер ключа в MAC является обычно очень большим, но Ева может использовать другой инструмент - атаку прообраза, рассмотренную в алгоритме 1.1. Она использует алгоритм, пока не находит X, такой, что h (X) равен MAC, который она перехватила. Теперь она может найти ключ и успешно заменить сообщение подделанным. Поскольку размер ключа обычно очень большой, для полного перебора Ева может только атаковать MAC, который использует алгоритм прообраза.
- Получая некоторые пары сообщений и их MAC, Ева может управлять ими, чтобы придумать новое сообщение и его MAC.
Вложенный MAC
Чтобы улучшить безопасность MAC, был разработан вложенный MAC (nested MAC), в котором хэширование делается в два шага. На первом шаге ключ конкатенируется (последовательно объединяется) с сообщением и хэшируется, чтобы создать промежуточный дайджест. На втором шаге ключ конкатенируется с промежуточным дайджестом, чтобы создать конечный дайджест. рис. 1.11 иллюстрирует общую идею.
Код аутентификации сообщения, основанный на хэшировании (HMAC)
Национальный институт стандартов США (NIST) разработал стандарт (FIPS 198) для вложенного MAC, который часто называют HMAC (HASH-BASED MESSAGE AUTHENTICATION CODE ) (его надо отличать от CMAC, который будет рассмотрен в следующем разделе). Реализация HMAC намного более сложна, чем упрощенный вложенный MAC, показанный на рис. 1.11. Есть дополнительные особенности, такие как заполнение. рис. 1.12 показывает детали. При реализации HMAC мы проходим следующие шаги:
- Сообщение разделяется на N блоков, каждый по b битов.
- Ключ засекречивания дополняется слева нулями, чтобы создать ключ длиной b бит. Обратите внимание: рекомендуется, чтобы ключ засекречивания, прежде чем он будет дополнен, был длиною более чем n бит, где n - размер HMAC.
- Результат шага 2 складывают по модулю два с константой, называемой ipad ( входной блокнот ), чтобы создать блок b бит. Значение ipad - b/8 - состоит из повторяемой последовательности 00110110 (36 в шестнадцатеричном исчислении).
- Блок результата присоединим спереди к сообщению из N -блоков. В результате получим N + 1 блоков.
- Результат шага 4 хэшируется, чтобы создать дайджест длиною n -битов. Мы называем этот дайджест промежуточным HMAC.
- Промежуточный n -битовый HMAC дополняют слева нулями, чтобы создать b -битовый блок.
- Шаги 2 и 3 повторяются с другой константой opad ( выходной блокнот ). Значение opad - b/8 - состоит из повторяемой последовательности 01011100 ( 5C в шестнадцатеричном исчислении).
- Блок результата шага 7 присоединим спереди к блоку шага 6.
- Результат шага 8 хэшируется, тем же самым алгоритмом хэширования, что и в п. 4, чтобы создать конечный n -разрядный HMAC.
CMAC
Национальный институт стандартов и технологии США (NIST) разработал стандарт (FIPS113), названный Алгоритмом установления подлинности данных или кодом аутентификации сообщения, основанный на шифровании базового сообщения - CMAC (Сipher based Message, Authentication Code) или CBCMAC. Метод подобен режиму сцепления блоков шифрованного текста (CBC - Cipher Block Chaining), рассмотренному в "Безопасность на сетевом уровне: IP SEC" для шифрования симметричными ключами. рис. 1.13 иллюстрирует идею.
Однако смысл здесь состоит не в том, чтобы создавать N блоков зашифрованного текста из N блоков исходного текста. Идея в том, чтобы создать один блок MAC из N блоков исходного текста, используя N раз шифрование с симметричным ключом.
Сообщение разделено на N блоков, каждый длины m бит. Размер CMAC - n бит. Если последний блок - не m бит, он дополняется единичным битом ( 1 ), сопровождаемым достаточным количеством нулей (0), чтобы сделать его m -битовым. Первый блок сообщения зашифрован симметричным ключом, чтобы создать m -разрядный блок зашифрованных данных. Этот блок складывается (ИСКЛЮЧАЮЩЕЕ ИЛИ) со следующим блоком, а результат зашифровывается снова, чтобы создать новый m- битовый блок. Процесс продолжается, пока не будет зашифрован последний блок сообщения. CMAC - это n крайних левых бит последнего блока. В дополнение к симметрическому ключу, K, CMAC также использует другой ключ, k, который применяется только на последнем шаге. Этот ключ получен с помощью алгоритма шифрования исходного текста, дополненного m нулевыми битами, и использованием шифро-ключа, K. Результат затем умножен на x, если нет никакого дополнения, или на x2, если дополнение есть. Умножение проводится в GF(2m) с неприводимым полиномом степени m, выбранным в соответствии с используемым конкретным протоколом.
Обратите внимание, что эта процедура отличается от CBC (см. "Безопасность на сетевом уровне: IP SEC" ), метода, который используется для получения конфиденциальности. В упомянутом ранее методе выход каждого шифрования передают как зашифрованный текст и в то же самое время складывают (ИСКЛЮЧАЮЩЕЕ ИЛИ) со следующим блоком исходного текста. Здесь же промежуточные зашифрованные блоки не передаются как зашифрованный текст; они только используются для сложения со следующим блоком.