|
|
|
|
Главная » 2011 » Март » 1 » Стеганография
|
На хабре уже писали несколько раз о стеганографии, в частности недавний пост о LSB стеганографии
(который, к сожалению, перенесен автором в черновики) пробудил во мне
желание поделиться своими знаниями и мыслями по этой теме.
Давайте предположим, что вы шпион и (как у любого уважающего себя
шпиона) у вас на жестком диске имеется много секретной информации. Вам
нужно её спрятать так, чтоб никто её не нашел. Причем в случае если вас
поймают, то ваш компьютер отдадут на обследование и тот кто будет
искать эту информацию будет на 99% уверен, что такая информация на
жестком диске есть.
Так какие же способы спрятать информацию есть в нашем распоряжении…
Способ 1 — Банальный
Самый простой способ — это переименовать файл. К примеру у вас есть
картинка, которую надо спрятать. Вы просто переименовываете расширение
файла и картинка больше не определяется системой как картинка. Но,
понятное дело, что это защита от дурака. Если вы, к примеру,
переименуете файл JPG в RAR, то такой RAR архив нельзя будет открыть,
WinRar поругается на то, что этот архив битый, что вызовет подозрение и
более глубокое изучение данного файла.
Способ 2 — Банальный, продвинутый
Ещё один простой способ, но всё же более продвинутый — это склеивание
двух разных файлов в один. Простейший пример: добавление RAR архива в
конец JPEG изображения. Такое изображение будет без проблем открываться
в любой программе для просмотра/редактирования картинок, а также будет
открываться и в программе WinRar. Дело в том, что почти все программы
для работы с архивами рассчитаны на то, что архив начинается не с
начала файла, так как возможно, что архив заключен в
самораспаковывающуюся оболочку. Но недостатки данного способа в том,
что такое склеивание можно легко заметить. К примеру если картинка
имеет размер 200х200 и при этом весит 2 мегабайта, то тут же возникают
подозрения. К тому же все форматы (контейнеры) обычно имеют четкую
структуру и если вдруг в файле имеется какая то избыточная информация,
то это легко обнаружить.
Поэтому нам нужен способ скрытия информации, который не нарушает структуру файла выбранного формата.
Способ 3 — LSB
Как уже писалось ранее, данный способ очень прост в реализации, при
этом он не нарушает правила контейнера и файл не хранит избыточную
информацию. Но данный способ имеет и не мало минусов. Во-первых он
применим лишь к малому количеству контейнеров. К примеру его нельзя
применить к формату JPG, MP3 или AVI. А ведь как правило файлы именно
этих форматов хранятся сотнями на наших компьютерах и именно там
удобнее всего прятать информацию. Лично я сразу заподозрил бы не
ладное, найдя на компьютере большую библиотеку картинок в формате BMP.
Также этот способ выдает себя с потрохами на изображениях с однородной
поверхностью. А попробуйте применить данный метод к MP3 файлу.
Изменение всего одного бита раз в 2 и даже более байтов, приведет к
неминуемой порче аудио данных.
Для желающих поиграться с этим способом могу предложить плагин для Total Commander'a
который позволяет прятать данные в некоторых контейнерах картинок, а
также в WAV (при условии, что аудио данные закодированы кодеком PCM).
Также имеются более продвинутые алгоритмы, к примеру алгоритм Коха-Жао,
который прячет данные только в картинках. Его отличие в том, что он
кодирует один бит информации в блоках 8х8 пикселей. К сожалению, из-за
малого количества информации об этом алгоритме в интернете, не могу
рассказать о нем что то ещё.
Способ 4 — Мета данные
Очень многие форматы могут хранить определенные мета-данные. Плюс этого
способа в том, что он так же не нарушает формат файла, а также работа с
этими мета-данными обычно хорошо задокументирована и есть уже готовые
библиотеки позволяющие быстро написать программу для хранения своих
данных в этих файлах. Почти все медиа-форматы имеют поддержку
мета-данных. Однако далеко не всегда там можно хранить данные так, чтоб
их не было видно. Так где же можно попробовать хранить секретные данные:
MP3
Только недавно на хабре появился пост Прячем текст в MP3
где описывается реализация на PHP хранении своей информации в тэге
ID3v1. Но дело в том, что тэг ID3v1 имеет очень жесткие ограничения и
много информации там не сохранить. К тому же в любом нормальном
медиа-проигрывателе все ваши данные видны как на ладони. Совсем другое
дело тэг ID3v2.4 который позволяет хранить данные гораздо больших
размеров, а также позволяет сохранять какие либо не стандартные данные.
К примеру некоторые программы хранят там настройки громкости и
нормализации для каждого отдельного файла. Медиа-плееры обычно не
отображают не известные им параметры.
Раз уж мы говорим об MP3, то стоит упомянуть и про малоизвестный тэг
Lyrics3, который был создан для хранения в файле текста песен, а также
как расширение тэга ID3v1 (к примеру позволял сохранять более длинное
название песни), но выход стандарта тэга ID3v2 так и не дал тэгу
Lyrics3 получить широкое распространение. Но как не странно, большое
количество MP3 файлов которые сейчас можно найти на просторах
интернета, содержат в себе этот тэг (хотя кроме название песни там
больше ничего не хранится).
JPEG
У JPEG формата есть поддержка EXIF тэга. Данные в этом тэге хранятся
парами ключ=значение. В теории нет никаких проблем добавить туда какой
то не стандартный ключ содержащий ваши зашифрованные данные. Программа
работающая с этим тэгом, наткнувшись на этот ключ, скорей всего просто
проигнорирует его и не отобразит.
AVI
Не многим известно, что файлы формата AVI также имеют поддержку
мета-данных, причем хранить там можно много всего. Как и в MP3 и JPEG
можно создать какой то свой ключ, который будет просто проигнорирован
программами работающими с мета-данными. Могу порекомендовать хорошую
программу для просмотра мета-данных AVI файлов: abcAvi Tag Editor
Минус хранения секретных данных в мета-данных файла очевиден, есть
множество программ которые отображают абсолютно полностью их
содержимое, включая нестандартные и частные значения.
Способ 5
Ну и напоследок хочу рассказать про один замечательный способ хранения секретных данных в MP3 файлах. Реализован он в программе MP3Stego.
К сожалению автор данной программы не обновлял проект с 2006 года. Идея
заключается в том, что данные сначала шифруются, а затем в сердце
процесса кодирования MP3 файла (из WAV) подмешиваются в конечный
результат. В итоге получается обычный MP3 файл, без заметных для слуха
искажений, однако хранящий в себе закодированные данные.
|
Просмотров: 743 |
Добавил: Breger
| Рейтинг: 0.0/0 |
Добавлять комментарии могут только зарегистрированные пользователи. [ Регистрация | Вход ]
|
|
Copyright MyCorp © 2024 |
|
|