Практическая работа № 4
«Контроль целостности данных»
Цель: получить навыки обнаружения фактов изменения данных, контроля целостности данных с помощью механизма хэш-функций. Научиться вычислять хэш-свёртки для файлов и строк данных, контролировать неизменность данных. Рассмотреть механизм атаки на хэш-функции и способы защиты от таких атак.
1. Теоретическая часть
Хеш-функция H(x) – функция, которая преобразует (отображает) сообщение произвольной длины в число («свёртку») фиксированной длины. Х – прообраз. Н(х) – образ.
Хеш-функция в общем случае – это функция, которая должна обладать следующими свойствами:
1. Хеш-функция может быть применена к аргументу любого размера.
2. Выходное значение хеш-функции имеет фиксированный размер (хэш-свёртка).
3. Хеш-функцию H(M) достаточно просто вычислить для любого M (простота вычисления образа).
4. Для любого y с вычислительной точки зрения невозможно найти x, такое что H(x) = y (сложность вычисления прообраза).
5. Для любого фиксированного x с вычислительной точки зрения невозможно найти z, не равное x, такое, что H(x) = H(z) (стойкость к коллизиям, вычислению второго прообраза).
Для криптографической хеш-функции (в отличие от хеш-функции общего назначения) сложно вычислить обратную и даже найти два сообщения с общей хеш-свёрткой. По четвёртому свойству H(х) – односторонняя функция, поэтому H(х) можно использовать в качестве контрольной суммы для проверки целостности.
Области использования хеш-функции:
защита паролей при их передаче и хранении;
формирование контрольных кодов MDC (Manipulation Detection Code) - кода обнаружения манипуляций с данными;
получение сжатого образа сообщения перед формированием электронной подписи;
задачи поиска данных.
Различные хэш-функции:
MD2;
MD4;
MD5;
MD6;
SHA-1;
SHA-2;
Keccak (SHA-3);
ГОСТ Р 34.11-94;
ГОСТ Р 34.11-2012.
ГОСТ Р 34.11-2012 – криптографический стандарт вычисления хеш-функции.
Размер блока входных данных: 512 бит.
Размер хеша (хэш-свёртки): 512 бит.
Стандарт ГОСТ Р 34.11-2012 определяет алгоритм и процедуру вычисления хеш-функции для последовательности символов. Стандарт обязателен для применения в качестве алгоритма хеширования в государственных организациях РФ и ряде коммерческих организаций.
Для вскрытия паролей, преобразованных при помощи сложнообратимой хеш-функции, а также для атак на симметричные шифры на основе известного открытого текста используются радужные таблицы. Радужная таблица – специальный вариант таблиц поиска для обращения криптографических хеш-функций. Радужная таблица – готовая построенная цепочка возможных паролей. Однако, таблицы могут взламывать только ту функцию, для которой создавались. Использование функции выведения ключа с применением соли делает эту атаку неосуществимой.
Для вычисления хэш-свёртки может быть использована любая программа. Кроме того такой функционал есть в системе Windows NT через консоль. Для этого нужно использовать команду: «certutil –hashfail “Путь”», используется хэш-функция SHA-1.
2. Практическая часть
В отчёте представить (с описанием и снимками экрана, достаточными для понимания факта проделанной работы) следующее:
1. Создать несколько файлов, дать им Ваше имя (например, Олег 007), заполнить их данными. Сделать копии файлов и произвести для некоторых из них «незаметные» для пользователей изменения в файлах. К таким изменениям можно отнести, к примеру:
изменение кода цвета объектов, в частности текста;
замена символов на похожие символы с другими кодами символов;
вставка объектов со 100% прозрачностью, отсутствующими цветами заливками или совпадающими с цветом фона;
изменение текста до минимального, установка цвета текста под цвет фона;
вставка текста с атрибутами «скрытый текст», опция «Шрифт» => «Видоизменение»;
изменение рисунка (областей с мало отличимой палитрой цветов);
изменение метаданных файлов (к примеру, вкладка «Подробно» с полями «Авторы», «Организация» и пр.);
прочее.
2. Используя программную реализацию механизма хэш-функций, проверить целостность и неизменность файлов. Предоставить снимки экрана, описание действий и результатов. Прокомментировать детально результаты работы. Когда совпадают, Когда расходятся и почему.
Вопросы (кратко ответить):
1. Что такое свёртка?
2. Что такое хэш и как его вычислить?
3. Что такое хэш-функция и зачем она нужна?
4. Сколько бит на выходе хэш-функции?
5. Каков принцип работы систем для контроля целостности из этой практической?
6. Как и почему мы обнаруживаем факты изменения данных?
7. Как можно в теории обойти этот механизм?
8. Почему происходят коллизии и что это?
9. Зачем в процессах проверки паролей по хэшам нужна соль?
10. Как повысить безопасность систем проверки паролей на базе хэш-свёрток?
Марина
Финансовый университет при правительстве рф
Исполнитель отлично справился с поставленной задачей и учел все пожелания. Рекомендую.
Олеся
СГУ им. Н.Г. Чернышевского
Огромное спасибо за качественную, оригинальную и своевременно выполненную работу! Сергей Н...
Марина
Финансовый университет при правительстве рф
Исполнитель отлично справился с поставленной задачей и учел все пожелания. Рекомендую.
Наталья
УрГУПС
Работу на проверку преподавателю ещё не сдавали, но думаем всё будет хорошо. Задачи выполн...