Конференция Персональные данные 2012: проблемы и решения

Вы здесь: Главная ЧИТАЛЬНЫЙ ЗАЛ Стеганография Стеганография. Особенности использования программ на основе метода наименьшего значащего бита

Вход Регистрация



Защита персональных данных
Статьи по защите персональных данных
Видео о защите персональных данных
Федеральный закон N 152-ФЗ "О персональных данных"
Федеральный закон Российской Федерации от 27 июля 2006 г. N 152-ФЗ "О персональных данных"
Об утверждении Положения об обеспечении безопасности персональных данных при их обработке в информационных системах персональных данных
Постановление Правительства РФ № 781 от 17 ноября 2007
Об утверждении Положения об особенностях обработки персональных данных, осуществляемой без использования средств автоматизации
Постановление Правительства Российской Федерации от 15 сентября 2008 г. N 687
See the entire folder …
СОФТ
Средства для оценки рисков
Средства разработки и внедрения политик безопасности
Средства мониторинга действий пользователей
Программы, предназначенные для контроля работы пользователей и администраторов за своими компьютерами и в сети Интернет. Они сообщают по сети информацию, которая интересует шефа, ему лично или уполномоченному им лицу.
Средства аудита и восстановления паролей
Шифровальщики файлов
Эти программы обеспечивают недорогое, надежное и быстрое шифрование файлов и дисков с использованием популярных алгоритмов (AES, 3DES, Blowfish, ...)
See the entire folder …

Стеганография. Особенности использования программ на основе метода наименьшего значащего бита

Send this page to somebody Print this page

Написать эту статью меня побудило практическое отсутствие в Интернете грамотных материалов в этой области и достаточно странная ситуация на рынке непрофессионального ПО, связанного со стеганографией. Забавно, но Интернет сейчас буквально завален поделками "уровня школьника" - серьёзные системы интересны серьёзным людям и стоят - вот странно, не правда ли? - серьёзных денег, а на рынке простых систем распространены удручающе примитивные программы, авторы которых явно прогуливали занятия если не в школе, то в институте точно. Я никого не хочу обидеть персонально (оптом - тоже не хочу), но ученье свет, а "неученье", особенно в области защиты информации, является всего лишь основанием для самоуспокоения, что тоже хорошо, но не имеет практической ценности =).

1. Введение

Здесь я не буду вдаваться в теорию, которая сама по себе очень интересна, но и достаточно сложна; не буду описывать виды и применение стеганографических методов скрытия данных и вообще растекаться мыслью по десктопу. Здесь я просто расскажу о некоторых аспектах самого распространенного метода скрытия информации в графических файлах - о методе НЗБ (Наименьшего Значащего Бита) и ошибках, связанных с использованием программ базирующихся на этом методе. О них уже писалось многими и неоднократно, но, как видно из отдельных материалов и комментариев, читали это не все…

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

2. Итак, приступим: основные понятия и определения.

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

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

Определения просты, но понятны:

  • Контейнер - некоторая информация, в частности файл, в которую можно внедрить другую информацию, не предназначенную для посторонних глаз.
  • Пустой контейнер - контейнер, в который ещё не внедрена информация. Соответственно, когда информацию внедрили, то контейнер становится заполненным.
  • Сообщение - секретная информация, наличие которой в контейнере необходимо скрыть, то, из-за чего весь сыр-бор. Это может быть файл, текст, что угодно. Исторически сложилось, что это всё называется сообщением.
  • Канал передачи - путь, по которому контейнер попадает от отправителя к получателю (пусть будут Юстас и Алекс, для интереса. Или Алиса и Боб, что тоже хорошо…).
  • Наблюдатель - промежуточное звено, задачей которого является определение, не передаётся ли от Юстаса Алексу чего-то скрытое и насквозь запрещённое в обычном их общении. Существует три типа наблюдателей: пассивный, активный и злонамеренный. Самый безопасный пассивный - он не может разрушить сообщение, или скажем заменить его ложным, все его возможности сконцентрированы на одном: смотреть, смотреть и еще раз смотреть… и быть тревогу, если что-то там высмотрит.

Предположим, что у нашего канала связи появился пассивный наблюдатель (бороться с активным можно только с помощью полной замены применяемого алгоритма, метод НЗБ не выдерживает такой атаки). Допустим, от Юстаса Алексу непрерывно пересылаются невинные - на первый взгляд - файлы. Если наблюдатель обоснованно определит, что в этих файлах не всё чисто, то это явится основанием для приглашения в гестапо, где, как известно, скорость перебора паролей очень высока, ибо прямо пропорциональна температуре паяльника. Или утюга, кому что больше нравится.

Способов внедрения и защиты данных в контейнере может быть множество даже в рамках одного типа контейнеров. Первое и главное из требований к методам внедрения - незаметность. Это означает, что посторонний наблюдатель в канале связи не должен на глаз определить наличие или отсутствие внедрения. Это требование большая часть самопальных программ худо-бедно, но выполняет (иначе зачем бы они были нужны?..). Вот сейчас мы и посмотрим, как именно.

3. Собственно НЗБ

Что такое метод НЗБ? Это метод скрытия данных с искажением контейнера, основанный на особенностях человеческого восприятия. Конкретнее, идея метода заключается вот в чём: если взять картинку в формате BMP (или, скажем, как альтернативу 8 и более- битный оцифрованный звук), лучше всего TrueColor, в 24-х битном формате и взять да изменить младшие значащие биты цвета, то на глаз это будет незаметно. Почему 24 бита? Существует такой немаловажный фактор, как объём контейнера - сколько всего можно впихнуть в картинку, пока это не станет явным. Логично предположить, что чем больше контейнер, тем больше можно и внедрить, а распространенные на сегодня 24-х битные BMP - самая благодатная почва.

24 бита есть удобный формат хранения информации об изображении. При таком представлении за один цветовой канал отвечает один байт, чем все и пользуются. Оно и правильно.

Внедрение может осуществляться так:

  • Берём сообщение и предварительно подготавливаем его: шифруем и пакуем. Этим достигается сразу две цели - повышение КПД и увеличение стойкости системы (см. далее). В начало для удобства можно записать сигнатуру метода, что не секретно, зато просто.
  • Берём контейнер и внедряем подготовленное сообщение в младшие его - контейнера -биты любым удобным для нас способом. Самое простое:
    • раскладываем упакованное сообщение в битовую последовательность;
    • заменяем избыточные биты (НЗБ) контейнера битами сообщения. Просто и со вкусом.

А вот тут-то собака обычно и закапывается… Надежность такого внедрения прямо пропорциональна соответствию характера распределения НЗБ в контейнере и сообщении. А распределения эти в подавляющем большинстве случаев совпадать-то и не будут. А еще в некоторых случаях это будет визуально заметно на картинке, построенной из одних только младших битов контейнера. Вот простейший пример, послуживший поводом к написанию статьи - берём исходную картинку:

и внедряем в неё некоторое количество информации при помощи не так давно публиковавшейся здесь в исходном коде программы Stegograph (сие не в упрёк этой программе, она просто приведена для примера). Что мы видим?

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

Конечно, для большинства наблюдателей достаточно и того, что "на глаз не видно", но… слабые места своей защиты надо знать.

4. Как с этим бороться

Начать, пожалуй, нужно с того, что все BMP контейнеры нужно разделить на два класса: "чистые" и зашумленные. В "чистых" картинках прослеживается связь между младшим битом, в который мы так бесцеремонно влезаем, и остальными 7-ю битами элементов цвета, а также прослеживается существенная зависимость самих младших битов между собой. Внедрение сообщения в "чистую" картинку разрушает существующие зависимости, что, как видно из вышеприведенной иллюстрации, очень легко выявляется пассивным наблюдателем. Если же картинка зашумлена (например, получена со сканера или фотокамеры), то определить вложение становиться на порядок сложнее, но продвинутый наблюдатель может призвать на помощь науку (раз уж сам не справляется) - теорию вероятностей, матстатистику и др.

Различить, какой контейнер попал вам под руку, можно тоже побитным просмотром картинки. Например, сканированное изображение, в которое ничего не внедрялось, выглядит так:

А вот - изначально компьютерное:

Объясняется это тривиальным шумом матрицы сканера (или цифровой камеры). Опять же, несколько отступая в сторону, следует сказать, что просмотром и анализом распределения НЗБ иногда очень просто определить факт компьютерной обработки (подчистки) картинки:

А вот это же изображение, но с внедрением:

Чётко видна граница между "своим" шумом и шумом, возникшим в результате внедрения сообщения. Отсюда вытекает еще одно необходимое правило - всегда нужно распределять биты сообщения по всем младшим битам контейнер (например, внедрять не последовательно, а в каждый 2-й, 3-й и т. д. НЗБ) или же дополнять чем-то (шумом с тем же законом распределения) длину сообщения так, чтобы она стала равна объему НЗБ контейнера.

Есть еще одно интересное решение - подбор картинки под сообщение: из множества имеющихся картинок подобрать такую, которая исказится менее всего при внедрении указанного сообщения.

5. Резюме, оно же вывод

В данной статье я пытаюсь показать, что скрывать данные нужно с умом. И применение простейших методов скрытия может быть достаточно надёжным только тогда, когда понимаешь и учитываешь ограничения и область применимости этих методов. В частности, не стоить доверять свои секреты "чистым" картинкам-контейнерам, а перед использованием той или иной стеганографической программы лучше все же проверить, дает ли она хотя бы какой-то минимум надежности.

Автор: Алексей Кошкин, Наталья Кошкина
Источник: www.delphikingdom.ru


30-05-2012
Positive Hack Days 2012
Москва, Дмитровское ш., д. 27 к. 1, Клуб "Молодая гвардия"
30-05-2012
VIII-й Специализированный форум «Современные системы безопасности — Антитеррор»
Россия, Красноярск, ул. Авиаторов, 19, МВДЦ «Сибирь».
31-05-2012
Информационная безопасность: новые потребности рынка
07-06-2012
IT & Security Forum 2012 Kazan
Казань, отель Корстон, ул. Николая Ершова 1А
07-06-2012
8-й Евразийский форум информационной безопасности и электронного взаимодействия «ИНФОФОРУМ-Евразия»
Москва, здание Правительства Москвы (ул. Новый Арбат, 36)

< Май 2012 >
Пн Вт Ср Чт Пт Сб Вс
12 3456
78910111213
1415 16 17 18 19 20
21222324252627
282930 31
Рассылка

Пресс-релизы компаний
Новости портала
Антивирусный вестник



©2003 - 2012 GlobalTrust
Разработка сайта: Maximaster
Рейтинг@Mail.ru Rambler's Top100 Yandex