В данной статье описывается понятие стеганографии, а также показывается её применение на простейших примерах в операционной системе Windows.
Ключевые слова: стеганография, скрытие, криптография, альтернативные потоки данных, rarjpeg
В настоящее время, когда в мире активно развиваются информационные технологии, безопасность — одна из самых важных задач. При передаче различной информации зачастую возникает потребность скрыть смысл информации, а иногда необходимо замаскировать факт скрытия информации.
Стеганография — способ передачи или хранения информации с сохранением в тайне самого факта передачи или хранения. Данный термин был введён в 1499 году. В отличие от криптографии, которая скрывает только смысл сообщения, стеганография скрывает сам факт существования тайного сообщения.
Основное преимущество состоит в том, что переданные сообщения не привлекают к себе внимания, что значительно усложняет поиск тайного сообщения среди нескольких сообщений подобного вида. В некоторых странах запрещена криптография (например, в Австрии). В таком случае единственным способом передать сообщение с целью скрытия его смысла является стеганография.
Рассмотрим два способа хранения информации с сохранением тайны данного факта:
– альтернативный поток данных;
– файловый контейнер RarJpeg.
Каждый из способов может быть использован в операционной системе Windows любой версии.
Альтернативный поток данных
Альтернативные потоки данных — метаданные, связанные с объектом файловой системы NTFS. В файловой системе NTFS файл может быть связан не только с основными данными, но и с одним или несколькими дополнительными потоками данных. При этом дополнительный поток может быть произвольного размера, в том числе может превышать размер основного файла.
Таким образом в файловой системе NTFS возможно создать в любом файле дополнительный поток, в котором будет скрываемая информация. При открытии файла будет запускаться основной поток, из которого нет доступа к дополнительному.
Данный способ можно продемонстрировать на текстовом файле. Создавать его необходимо через командную строку:
где x — скрываемый текст; y — название файла; z — название дополнительного потока.
При создании файла с альтернативным потоком данных можно не указывать скрываемый текст, а указать его позже при открытии файла. Дополнительный поток может быть прочитан и изменён следующим образом (в случае с блокнотом):
где notepad.exe — название программы, с помощью которой будет открыт файл (в нашем случае блокнот); y — название файла; z — название дополнительного потока.
После необходимых изменений документ можно сохранить. По итогу получается пустой основной поток, но альтернативный поток имеет в себе скрытый текст. Заполнять можно как основной поток, так и дополнительный.
Рис. 1. Демонстрация способа «Альтернативный поток данных»
Файловый контейнер RarJpeg
RarJpeg — файловый контейнер, который состоит из двух входных файлов:
изображение формата JPEG;
– архив формата RAR.
Метод основан на том, что создаётся новый результативный файл, в котором архив RAR приписывается впритык к JPEG-изображению. При запуске такого файла будет открываться изображение. Если открыть файл с помощью архиватора, можно будет увидеть содержимое скрытого архива. Данный эффект достигается с помощью побитового копирования. Тот же метод может использоваться и для некоторых других форматов: к иллюстрациям JPEG, GIF, PNG или к звукозаписям WAV могут быть дописаны архивы RAR или ZIP, или аудиозаписи MP3.
Метод способен к реализации из-за того, что любая программа для просмотра изображений, читающая первый файл, игнорирует все данные, следующие за его концом, а программа, читающая второй файл, разыскивает его заголовок и игнорирует всё, что заголовку предшествует. Поэтому на первом месте необходимо ставить изображение, а на втором архив. За счёт этого можно «склеить» изображение и архив в один файл, который приобретёт функциональность обоих составляющих.
Для реализации данного способа, как уже было сказано ранее, необходимо производить побитовое копирование файлов. Данное действие возможно применить с помощью командной строки:
где x — изображение JPEG; y — скрываемый архив RAR; z — результативный контейнер формата JPEG.
Скрытый архив RAR возможно будет изменить в будущем. Таким образом, пересылая изображение, можно передать архив, в котором содержатся скрываемые файлы.
Как было сказано ранее, возможно использовать и другие форматы изображений. Исполнив аналогичную команду.
Рис. 2. Демонстрация способа «Файловый контейнер RarJpeg»
Литература:
1. Стеганография // Википедия — URL: https://ru.wikipedia.org/wiki/Стеганография
2. Альтернативные потоки данных // Википедия — URL: https://ru.wikipedia.org/wiki/Альтернативные_потоки_данных
3. DarkJPEG: cтеганография для всех // Хабрахабр — URL: https://habrahabr.ru/post/187402/