Практическая работа № 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. Как повысить безопасность систем проверки паролей на базе хэш-свёрток?
Михаил
филиал в Анапе "Сочинский государственный университет"
Ася спасибо за работу ! Как всегда все согласно методическим. Главное что все на отлично
Тимофей
Технический Университет УГМК
Как всегда всё безукоризненно! Рекомендую всем данного исполнителя! Цена приемлемая!
Кристина
Нижегородский государственный университет имени Н.И. Лобачевского
Спасибо Большое Татьяне за помощь. Работа была выполнена очень быстро, на все дополнительн...
Ирина
Мед
Мадина быстро откликнулась, выполнила работу менее, чем за час! Всё объяснила! Огромное сп...