Секреты стеганографии. Стеганография в XXI веке

07.08.2019

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

Теги: Добавить метки

Если вы думаете, что техники тайнописи применяют только шпионы – вы немного заблуждаетесь. Техники скрытой передачи или хранения информации могут применяться повсеместно для вполне мирных целей. В данной статье я хочу рассказать о стеганографии (τεγανός [скрытый] + γράφω [пишу], дословно «скрытопись», «тайнопись»).

В самом начале необходимо провести черту между двумя понятиями: стенографией и стеганографией. Первое из них, стенография (στενός [узкий, тесный] + γράφω [пишу]) – это совокупность способов быстрой записи устной речи и не имеет ничего общего с утаиванием и скрытием от третьих глаз информации. Слова созвучные, но не стоит путать стенографию со стеганографией.

«Кто владеет информацией, тот владеет миром» сказал Натан Ротшильд, но люди за долго до его рождения задумывались над проблемой: когда вы получили информацию, необходимо её сохранить, в большинстве случаев не просто сохранить, а сохранить в тайне. Современная наука о защите информации говорит о двух путях хранения информации в тайне: использовать криптографию или использовать стеганографию (лучше это делать совместно). Криптография – наука о методах преобразования информации в вид, невозможный для прочтения третьими лицами. То есть при передаче секретного сообщения некто, перехватив письмо, будет знать, что в нём что-то написано, но для него это будет набор несвязных символов, лишённых смысла, так как ему неизвестен метод их перестановки (или замены), чтобы получить сообщение. Стеганография – наука о методах преобразования информации в вид, при котором сам факт её существования становится секретом. Для понимания данного определения необходимо обратиться к историческим примерам применения стеганографии.

История стеганографии

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

В истории существует пример, когда Демерат хотел послать союзникам в Спарту сообщение об угрозе нападения Ксерксов. В Древней Греции послания писались острыми палочками на дощечках, покрытых воском. Воск с таблички был снят, сообщение нацарапали на самой дощечке, потом покрыли воском и написали по воску «легальное» письмо.

Другое находчивое решение принадлежит тирану Гистею, который в V-м веке до н. э., находясь под надзором царя Дария в Сузах, должен был послать секретное сообщение своему родственнику в анатолийский город Милет. Тайное сообщение вытатуировали на обритой голове раба, затем дождались, пока волосы отрастут вновь, скрыв своим объёмом сообщение, и отправили раба гонцом в Милет, где волосы были сбриты, а сообщение попало в руки адресата.

Упоминание о методах, описанных выше, встречается в трактате Геродота «История», относящегося к 440 году до н. э.

Ближе к нашему времени появилось упоминание о Вожде мирового пролетариата В. И. Ленине (Ульянове), который, находясь в ссылке, писал письма товарищам по партии. Межу строк он молоком вписывал тайные сообщения однопартийцам: при нагревании письма текст, написанный молоком, проявлялся. Данный пример является наиболее известным применением симпатических (невидимых) чернил.

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

Что такое стеганосистема?

Скрытый канал передачи данных между отправителем и получателем, организованный при помощи метода (или методов) стеганографии, называется стеганоканалом. По стеганоканалу передаются так называемые заполненные стеганоконтейнеры.

Стеганоконтейнер – это тот «легальный» носитель информации, в котором скрывается секретный текст. Соответственно, «легальный» носитель информации сам по себе – это пустой контейнер, когда в него встраивают стеганографическое сообщение, он становится заполненным. В исторических примерах стеганоконтейнерами были: восковая табличка, голова раба, письма Ленина, дипломатические письма.

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

На современном этапе информационных технологий можно выделить два типа стеганоконтейнеров: потоковые (непрерывная радиотрансляция, сетевой трафик и так далее) и фиксированной длинны (фотография, аудиозапись, электронный документ и так далее).

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

Цели стеганографии

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

Цифровые отпечатки (Digital Fingerprinting) подразумевают наличие различных стеганографических меток-сообщений для каждой копии контейнера. Например, при продаже электронной книги в неё может быть встроена информация о покупателе: имя, e-mail, ip- адрес и прочая информация. В последствии при возникновении спорной ситуации («Уважаемый, а не изволили ли Вы получить сие издание незаконным образом?») цифровой отпечаток может быть использован для доказательства исключительного права владения («Не могу согласиться с вами, сударь! Извольте ознакомиться с доказательствами»).

Рисунок 1: Сталин с iPhon-ом

Стеганографические водяные знаки (Digital Watermarking ) подразумевают наличие одинаковых меток для каждой копии контейнера. Например, во время фотографирования на профессиональную камеру в изображение встраивается информация о фотографе: имя, время фотографирования, модель камеры, геотеги и так далее. В последствии при возникновении спорной ситуации («А не изволили ли Вы незаконным образом присвоить себе авторское право на изображение молодой красавицы?») стеганографический водяной знак может быть использован для доказательства права авторства («Прошу прощения, но вот данные о моём фотографическом аппарате и снимок сделан в моём поместье»).

Интересен факт доказательства Дмитрием Скляровым (доцент кафедры информационной безопасности МГТУ им. Баумана) «подлинности» фотографии И. В. Сталина с iPhon- ом в руке. Для того, чтобы это проделать, Дмитрий изучил стеганографический алгоритм фотокамеры, а затем произвел атаку: подделал водяной знак таким образом, что фотография стала «настоящей».

Скрытая передача данных – классическая цель стеганографии. Заключается она в передаче данных таким образом, чтобы противник не догадался о самом факте существования скрытого сообщения. Примером достижения этой цели являются все вышеописанные исторические примеры.

Три перечисленные цели нельзя объединять и смешивать, так как методы их достижения (задачи и проблемы, возникающие в ходе реализации) будут разниться во всем, кроме того, что это все «стеганография». Скрытая передача данных совсем не одно и то же, что цифровые отпечатки и стеганографические водяные знаки. Смыслом скрытой передачи является сама передача данных, а смысл цифрового отпечатка и стеганографического водяного знака – защита контейнера, их содержащего. Факт наличия цифрового отпечатка или стеганографического водяного знака может не являться тайной (как в случае водяных знаков на денежных купюрах), а в случае скрытой передачи данных потеря секретности наличия информации означает провал операции.

Классификация методов стеганографии

Методы стеганографии можно разделить на три больших класса: классические методы, компьютерные и цифровые.

Термин «классическая стеганография » покрывает все «некомпьютерные» методы стеганографии: симпатические чернила, микрофотоснимки и другие методы, придуманные людьми с изворотливым умом.

Компьютерная стеганография использует особенности вычислительной платформы и специальные свой свойства компьютерных форматов данных.

Цифровая стеганография старается внедрить дополнительную информацию в цифровые аудио-/фото-/видеообъекты, используя некоторую избыточность информации. Имеется в виду, что любой цифровой объект имеет в себе заведомо много больше информации, чем воспринимают наши органы чувств (глаза, уши). Когда стеганографический алгоритм пренебрегает 1/1000 долей чёткости картинки, чтобы разместить на фотографии скрытое сообщение, наш глаз этого попросту не может заметить.

Существует ряд других, мене глобальных, классификаций, например, по типу используемого контейнера: аудиоконтейнеры, графические контейнеры, текстовые контейнеры, видеоконтейнеры, сетевые контейнеры, временные и так далее. Из любопытства познакомимся с некоторыми из них.

Текстовые контейнеры

Стеганография, использующая текстовые контейнеры, может использовать особенности компьютерного представления текстов (компьютерная стеганография), а может использовать особенности языка (лингвистическая стеганография). Примером компьютерной стеганографии будет чередование по некоторому заранее обговорённому правилу латинских/кириллических символов со схожим написанием (е, а, с, В, Т, etc ). Лингвистические методы стеганографии могут допускать осознанные орфографические ошибки, чередование полных/неполных предложений, замену синонимичных слов.

Приведу простой пример, достойный урока информатики в школе. Пусть необходимо спрятать букву «А» в тексте «steganography». В двоичном виде букву «А» можно рассматривать как «01000001». Сопоставим двоичное представление скрытого сообщения (буквы «А») контейнеру (тексту «steganography») и запишем буквы, соответствующие единицам, прописью: sTeganoGraphy. Используя такой метод можно спрятать текст длинной в сообщение 8 символов.

Особенности файловой и операционной системы

За хранение информации на машинных носителях отвечает файловая система, которая задаёт структуру носителя и правила размещения фалов на нём. Файловая система FAT32 компании Microsoft при хранении файла всегда занимает целое число кластеров. Например, если при разметке диска был указан кластер размером в 4 Кбайта и размер файла всего 1,8 Кбайта, то оставшиеся 2,2 Кбайта останутся пустыми и не будут заполнены файловой системой при размещении следующего файла. Что значит «пустыми»? Это значит, что можно записать в это пространство скрытые данные, которые система не увидит. Но надо быть аккуратным, так как файловая система в погоне за более экономичным использованием пространства может «спутать вам карты».

Рисунок 2: Прячем файл в картинку

Другую особенность, уже операционной системы, можно использовать, чтобы спрятать файлы под видом обычной картинки. В Unix-подобных операционных системах это можно сделать легко: командой «cat» читаем последовательно картинку (например, pic.png) и файл архива (ar.7z), перенаправив основной поток в новый файл (например, final.png). В итоге мы получаем изображение, которое графическими редакторами открывается как изображение, а менеджерами архивов как архив.

Метод наименее значащих битов

Метод наименее значащих битов (Least Significant Bit, LSB) считается наиболее популярным для цифровой стеганографии. Как уже говорилось, цифровая стеганография основывается на ограниченности способностей органов чувств человека и, как следствие, неспособности распознать незначительные вариации звука/цвета.

Рисунок 3: «Значимость» битов цвета

Для простоты объяснения рассмотрим графический контейнер – изображение в формате BMP.В данном формате для описания каждой точки (пикселя) используются 3 байта, обозначающие в какой пропорции необходимо смешивать красный, зелёный и голубой цвета (цветовая схема RGB). Если произвести замену старших бит в этих байтах, цветовые изменения в картинке будут бросаться в глаза. Младшие же биты дают куда более незначительный вклад в изображение. Если использовать по одному младшему биту в каждом цвете для записи скрываемого сообщения, то распознать изменения человеческий глаз будет не способен.


Рисунок 4: Кодирование цветовой палитры RGB

Таким образом, в графическом изображении размером 117 Кбайт (200 на 200 пикселей) возможно спрятать, как минимум, 14 Кбайт скрытой информации.

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

Сетевая стеганография

Можно произвести более тонкое разделением методов сетевой стеганографии в зависимости от объекта воздействия стеганографического преобразования: модификация сетевых пакетов (кадров, сегментов – здесь и далее), модификация структуры передачи и гибридные системы.

При модификации пакетов может изменяться либо сама полезная нагрузка пакета (данные), либо особые поля пакета (зарезервированные протоколом сетевой передачи, но не используемые в данный момент), либо и то и другое. Например, в заголовке пакета IPv4 поле контрольной суммы (16 бит) не является обязательным для использования (если поле не используется, в него записывается 0).

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

В качестве примера метода стеганографии, который модифицирует структуру передачи пакетов, рассмотрим пример так называемой «временной» стеганографии (Covert Timing Channel, CTC ). Существует некоторый цифровой поток, например, видеопоток по протоколу RTSP. Задержки между пакетами будут всегда немного отличаться. Если избранные пакеты искусственно «притормаживать», можно передать скрытое сообщение: «0» – короткая задержка, «1» – длинная задержка.


Рисунок 5: Принцип сетевой временной стеганографии

Атаки на стеганосистемы

В целом атаки на стеганографические системы (стеганоанализ) очень напоминают атаки на криптографию (криптоанализ): похожая терминология, подходы. Поговорим о различиях.

Первый шаг стеганоанализа – субъективная атака . При этой атаке аналитик внимательно рассматривает изображение (слушает аудиозапись), пытаясь определить «на глаз», имеется ли в нём скрытое сообщение. В случае взлома криптосообщения – бесполезный этап, так как наличие зашифрованного сообщения очевидно.

Атака на основе известного пустого контейнера не имеет своего аналога в криптоанализе. Если аналитику удалось добыть в качестве образцов для исследования обе формы «жизни» стеганоконтейнера – пустой и заполненный, то, сравнивая их между собой, он может попытаться распознать алгоритм встраивания информации (в некоторых случаях ключ стеганосистемы ).

Если аналитик уверен, что в купленной электронной книге находится цифровой отпечаток покупателя, то он может купить эту книгу ещё 2, 3, 4 раза, используя разные данные о покупателе. У него будет ряд одних и тех же контейнеров с разной стеганографической меткой. Сравнивая их между собой, аналитик может попытаться, как и в прошлом примере, извлечь алгоритм встраивания информации.

Ряд других методов стеганоанализа является «калькой» с хорошо отработанных методов стеганоанализа.

Практическое применение стеганографии

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

Незаметная передача информации

В отличие от криптографических методов (которые тайны, но не скрытны) стеганография может применяться как метод передачи информации, не вызывая подозрений. Эта задача составляет «классическое» практическое применение стеганографии, поэтому занимает первое место.

Можно вспомнить про громкие аресты российских разведчиков в конце июня 2010 года – по данным США «шпионы» использовали в том числе стеганографию, чтобы переправлять в Москву разведданные.

Скрытое хранение информации

В данном случае стеганография используется не для передачи, а для хранения какой-либо информации, обнаружение самого факта наличия которой (пускай хоть даже в зашифрованном виде) пользователю нежелательно. Согласитесь, весьма странно, когда тайная полиция, производящая обыск вашего жилища, обнаруживает вдоль и поперёк зашифрованные жёсткие диски? Гораздо меньше подозрений вызовут пара папок с видеофильмами, наработки по учёбе, фотографии с отдыха, пусть даже, коллекция порнографии (не детской!) – мозг уже просчитывает, сколько Мбайт информации можно уместить в этих контейнерах?

Недекларированное хранение информации

Многие информационные ресурсы позволяют хранить данные только определённого типа. А вам уж очень сильно хочется загрузить EXE- файл для хранения на YouTube. Один из путей решения задачи лежит через методы стеганографии.

Индивидуальный отпечаток в СЭДО

В системе электронного документооборота (СЭДО) можно использовать индивидуальный отпечаток внутри *.odt, *.docx и иных документах при работе с ними пользователей. С его помощью можно будет узнать, кто, когда и в каком объёме работал с документом. При этом куча записей о сеансах работы не будет «маячить» в начале документа и отвлекать пользователя.

Водяной знак в DLP системах

Data Leak Prevention, DLP – система обнаружения/предотвращения утечки информации. В отличие от индивидуального отпечатка в СЭДО, в данном применении стеганографии при создании документа, носящего конфиденциальный характер, в него встраивается неизменяемая метка. При попытке отправить документ по электронной почте система проверит наличие метки: если она присутствует, передача будет заблокирована, и администратор безопасности будет уведомлен , например, по SMS.

Скрытая передача управляющего сигнала

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

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

Funkspiel

Funkspiel (нем. «Радиоигра») – излюбленная забава контрразведчиков, когда на связь со «своими» выходит захваченный шпион и под контролем пары крепких мужчин с погонами сообщает в эфир дезинформацию. В случае такого развития событий (захват разведчика), можно использовать стеганосообщение, как признак, говорящий, стоит ли воспринимать всерьёз находящуюся в контейнере информацию (передаваемую «своим»). Если стеганосообщение не прошло проверку, то контейнер должен быть проигнорирован получателем, вне зависимости от его содержимого.

Неотчуждаемость информации

Если сделать скриншот чистой области в игре World of Warcraft , открыть файл в каком-нибудь графическом редакторе, увеличить резкость с максимальной настройкой фильтра и повторить процедуру несколько раз, то заметен явный узор, который многократно повторяется. В данном узоре имеются данные: имя пользователя, который сделал скриншот, время снятия скриншота, координаты в игровом мире (реалм).


Рисунок 6: Стеганографический водяной знак в скриншоте Wow

Перспективы развития/применения

«Я считаю, что мир технически готов к стеганографии, но в «культурном» плане современное информационное общество пока ещё не дозрело. Я думаю, что в ближайшее время (2015-2025 годах) произойдет то, что возможно в будущем назовут «стеганографической революцией.» – пишет @PavelMSTU, предрекая рассвет эпохи повсеместного применения стеганографии.

Однако существует ряд проблем, пока препятствующих такому развитию событий. Первая проблема – отсутствие единой теории стеганографии. Стеганография появилась раньше, но теоретически криптография проработана гораздо лучше: чего стоит одно только наличие абсолютной криптосистемы (шифр Вернама), стеганографии до этого далеко. Стеганография – наука междисциплинарная (как и все науки, дающие плоды в XXI веке ). То есть ей безуспешно заниматься в одиночестве математикам и в одиночестве инженерам, программистам и так далее – необходимо объединять знания.

В остальном же мир перенасыщен текстами, картинками милых котиков, толковыми и бестолковыми видеороликами – потенциальными контейнерами. А может уже давно и не потенциальными, а реальными?

Какая еще стеганография?

За последние несколько лет активность спецслужб значительно возросла. Увеличились также их права относительно методов добычи информации, теперь они имеют право на чтение твоей личной переписки.
Хорошо если ты общаешься только с тетками или корешами из чата. А что будет, когда анализируя твою переписку они наткнутся на пароль от
какого-нибудь забугорного сервачка или прочитают как ты хвастаешься знакомому о последнем дефейсе? Эти письма могут стать уликой преступления и послужить
прекрасной причиной для возбуждения криминального дела… Ну как
перспектива? Не очень… Поэтому следует
тщательно прятать содержимое такой переписки. Именно этим и занимается стеганография, а если она используется с элементами криптографии, прочитать письмо сможет только адресат, знающий схему извлечения защищенного
текста.

Название стеганография произошло от двух греческих слов
— steganos(тайна) и graphy(запись), поэтому ее можно назвать тайнописью. Основная задача стеганографии: сокрытие самого факта существования секретного сообщения. Возникла данная наука, в Египте. Ее использовали для передачи разнообразной государственной информации. Для этих целей стригли раба налысо и били бедняге тату. Когда волосы
отрастали, посланца отправляли в путь 🙂

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

Компьютерные технологии сокрытия информации тоже не стоят на месте и активно развиваются. Текст или даже файл может быть спрятан в безобидном письме, изображении, мелодии, и вообще во всех передаваемых данных. Для понимания данного процесса разберемся как скрыть информацию
информацию так, что бы даже не увидели ее
наличия.

Текстовый документ.txt

Использование стеганографии для передачи информации посредством текстовых данных достаточно затруднительно.
Реализовать это можно двумя способами (хотя идея одна для обеих случаев):

1. Использовать регистр букв.
2. Использовать пробелы.

Для первого варианта, процесс заключается в следующем: пускай нам необходимо спрятать букву «А» в тексте «stenography». Для этого берем двоичное представление кода символа «А» — «01000001». Пускай для обозначения бита содержащего единицу используется символ нижнего регистра, а для нуля — верхнего. Поэтому после накладывания маски «01000001» на текст «stenography», результат будет «sTenogrAphy». Окончание «phy» нами не использовано поскольку для сокрытия одного символа используется 8 байт (по биту на каждый символ), а длинна строки 11 символов, вот и получилось, что последние 3 символа «лишние». Исспользуя такую технологию можно спрятать в текст длинной N, сообщение из N/8 символов. Поскольку данное решение нелзя назвать наиболее удачным, часто используется технология передачи данных через пробелы. Дело в том, что пробел обозначен символом с кодом 32, но в тексте его можно заменить также символом имеющим код 255 или TAB’ом на худой конец. Также как и в прошлом примере, передаем биты шифруемого сообщения используя обычный текст. Но на этот раз 1 — это пробел, а 0 — это пробел с кодом 255.

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

GIF, JPG и PNG

Более надежно можно прятать текст в изображении. Все происходит по принципу замены цвета в изображении, на близкий к нему. Программа заменяет некоторые пиксели, положение которых вычисляет сама. Этот подход очень хороший, потому что определить технологию скрытия текста более сложно чем в прошлом примере. Этот подход работает не только с текстовой информацией, но и с изображениями. Это значит, что можно без особых проблем в изображении nastya.gif можно поместить
pentаgon_shema.gif, естественно если этого позволяют их размеры.

Самый простой пример использования изображений в стеганоргафии — третье задание из « «. Решается оно достаточно просто и
без особых усилий можно получить спрятанное сообщение. Для начала необходимо скопировать его в буфер обмена, далее установите цвет заливки для правой клавиши в цвет фона изображения
(голубой). Следующим этапом должна стать очистка рисунка и его заливка в черный цвет. Для завершения данной операции просто
вставьте изображение из буфера обмена, не увидит надпись «WELL DONE!», только слепой 🙂

Технология использования изображений в качестве
контейнера предоставляет намного более широкие возможности, нежели текстовые документы.
Как я уже сказал, при использовании
графических форматов появляется возможность сокрытия не только текстовых сообщений,
но и других изображений и файлов. Единственным условием является то, что объем спрятанного рисунка, не должен превышать размер изображения-хранилища. Для данных целей каждая программа использует свою технологию, но все они сводится к замене определенных пикселей в изображении.

Достойным примером использования стеганографии может быть интернет браузер
Camera/Shy , от
известной хакерской команды Cult of Dead
Cow . С виду он напоминает обычный обозреватель интернета, но при входе на web-ресурс происходит автоматическое сканирование всех GIF изображений на наличие скрытых сообщений.

MP3 и все, что ты слышишь

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

Другие решения

Для стеганографии можно использовать документы Microsoft Word, формат RTF также может быть использован в качестве контейнера для сообщения. Существует ряд утилит, которые способны передавать файлы посредством пустых пакетов, используя
те же стенографические решения. При такой технологии одним пакетом передается один бит копируемого файла, который хранится в заголовке передаваемого пакета. Такая технология не предоставляет высокой скорости передачи данных, зато имеет ряд
преимуществ при передачи файлов через межсетевые экраны.

Стеганография достаточно мощный инструмент, для сохранения конфиденциальности данных. Ее использование давно признано эффективным при защите авторских прав, а также любой другой информации, которую можно
считать интеллектуальной собственностью. Но особенно
эффективно использование стеганографии с элементами криптографии. Такой подход создает
двух уровневую защиту, взлом который составляет большую трудность, если
вообще является возможным…

Картинка из «пищевого» патента для привлечения внимания:

Тем не менее, прочитав приличное количество статей и работ, посвященных стеганографии, я захотел систематиезировать свои идеи и знания в данной области. Данная статья сугубо [b]теоретическая и я хотел бы обсудить следующие вопросы:

  • [b]Цели стеганографии - на самом деле их три, а не одна.

  • [b]Практическое применение стеганографии - я насчитал 15.

  • [b]Место стеганографии в XXI веке - я считаю, что с технической точки зрения современный мир уже подготовлен, но «социально» стеганография пока «запаздывает».
  • Я постарался обобщить мои исследования по данному вопросу. (Это значит, что текста много)
    Надеюсь на разумную критику и советы со стороны хабросообщества.

    Цели стеганографии

    [b]Цель - это абстрактная задача, относительно которой разрабатывается научная теория и методология достижения данной цели. Не нужно путать цель и применение . Цель предельно абстрактна, в отличие от применения .

    Как я уже говорил, в стеганографии существуют три цели.

    Цифровые отпечатки (ЦО) (Digital Fingerprint)

    Данный вид стеганографии подразумевает наличие [b]различных стеганографических меток-сообщений, для [b]каждой копии контейнера. Например ЦО могут быть применимы для защиты . Если с помощью какого-либо алгоритма противник сможет извлечь ЦО из контейнера, то идентифицировать противника невозможно, но до тех пор, пока противник не научится подделывать ЦО, он не сможет без обнаружения распространять защищаемый контейнер.

    Таким образом, при извлечении ЦО третья сторона (т.е. противник) может преследовать две цели:

  • извлечение ЦО из контейнера ([b]«слабая цель»);

  • подмена одного ЦО другим ЦО ([b]«сильная цель»).
  • В качестве примера ЦО можно привести продажу электронных книг (например в формате *.PDF). При оплате книги и отправки её получателю можно в *.PDF вкраплять информацию о e-mail; IP; данных, введенные пользователем и т.д. Конечно это не отпечатки пальцев и не анализ по ДНК, но, согласитесь, это лучше, чем ничего. Возможно в России, по причине иной культуры и иного, исторически сложившегося, отношения к исключительному праву данное применение стеганографии неактуально; но, например, в Японии, где за скачивание с торрентов могут посадить, применение стеганографических ЦО более вероятно.

    Стеганографические водяные знаки (СВЗ) (Stego Watermarking)

    В отличие от ЦО, СВЗ подразумевает наличие [b]одинаковых меток для [b]каждой копии контейнера. В частности СВЗ можно использовать для подтверждения авторского права. Например, при записи на видеокамеру можно в каждый кадр вкраплять информацию о времени записи, модели видеокамеры и/или имени оператора видеокамеры.
    В случае если отснятый материал попадет в руки конкурирующей компании, вы можете попытаться использовать СВЗ для подтверждения авторства записи. Если ключ держать в секрете от владельца камеры, то с помощью СВЗ можно подтверждать подлинность фото и/или видеоснимков. Кстати, наш коллега по цеху, [b]Дмитрий Витальевич Скляров, успешно . Проблема правда была аппаратной, саму стеганку Дмитрий Витальевич не трогал, тем не менее он стеганографически «доказал» подлинность Сталина с айфоном.


    Скрытая передача данных (СПД)

    Это «классическая» цель стеганографии, известная со времен ( ?, см его труд, содержащий простые стеганографические приемы: ). Задача - передать данные так, чтобы противник не догадался о самом факте появления сообщения.

    В современных русcкоязычных работах, посвященных стеганографии, часто используется термин [b]ЦВЗ (Цифровые водяные знаки). Под этим термином подразумевают то СВЗ, то ЦО. (А иногда СВЗ и ЦО одновременно, да ещё в одной статье!) Тем не менее при реализации ЦО и СВЗ возникающие проблемы и задачи принципиально различные! Действительно, СВЗ на всех копиях электронного документа одинаков, а ЦО на всех копиях документов различен. По этой причине, например, атака сговором принципиально невозможна в СВЗ! Хотя бы по этой причине следует различать СВЗ и ЦО. Всех, кто собирается работать в области стеганографии, настоятельно советую не употреблять термин ЦВЗ в своей речи.

    Данная, казалось бы очевидная мысль, до сих пор у многих вызывает недоумение. Аналогичную точку зрения о необходимости различать СВЗ и ЦО высказывали такие небезызвестные в узких кругах для реализации ЦО или СВЗ для большинства практических задач не имеет никакого практического смысла.

    4. Защита исключительного права (ЦО)

    В качестве возможного применения можно привести голографический многоцелевой диск (). (Правда есть точка зрения, что данная технология изначально «мертворожденная») Разрабатываемые ныне данных на один cartridge. Эти технологии предполагают использовать компаниями теле и радиовещания для хранения видео и аудио информации. Наличие ЦО внутри корректирующих кодов этих дисков может использоваться в качестве основного или дополнительного средства для защиты лицензионного права.

    В качестве другого примера, как я уже писал ранее, можно привести интернет-продажу информационных ресурсов. Это могут быть книги, фильмы, музыка и т.д. Каждая копия должна содержать ЦО для идентификации личности (хотя бы косвенной) или специальную метку для проверки лицензионная это копия или не лицензионная.

    Данную цель попыталась воплотить в 2007-2011 годах компания . Цитата из статьи :

    Если по-русски: скачанный файл будет содержать уникальный идентификатор покупки, дату/время покупки и др. информацию (...).

    Скачать в лоб данные композиции не получилось (амазон ругается и говорит, что может их продать только на территории США). Пришлось попросить американских знакомых и через некоторое время у меня на руках была одна и та же песня, но скачанная независимо двумя разными людьми с разных аккаунтов в амазоне. По виду файлы были абсолютно одинаковы, размер совпадал до байта.

    Но т.к. амазон писал, что включает в каждый мп3 идентификатор загрузки и еще кое-какие данные решил проверить два имеющихся файла побитово и сразу нашел различия.

    5. Защита авторского права (СВЗ)

    В данном случае одним знаком защищается каждая копия контента. Например это может быть фотография. В случае если фотографию опубликуют без разрешения фотографа, сказав, что якобы не он автор данной работы, фотограф может попытаться доказать свое авторство с помощью стеганографии. В данном случае в каждую фотографию должна вкрапляется информация о серийном номере фотоаппарата и/или какие либо иные данные, позволяющие «привязать» фотографию к одному единственному фотоаппарату; и через фотоаппарат фотограф может попытаться косвенно доказать, что именно он является автором снимка.

    6. Защита подлинности документов (СВЗ)

    Технология может быть такая же, как и для защиты авторского права . Только в данном случае стеганография используется не для подтверждения авторства, а для подтверждения подлинности документа. Документ, не содержащий СВЗ считается «не настоящим», т.е. поддельным. Уже упомянутый выше Дмитрий Скляров как раз решал противоположенную задачу. Он нашел уязвимость фотоаппарата Cannon и смог подделать подлинность фотографии Сталина с айфоном.

    7. Индивидуальный отпечаток в СЭДО (ЦО)

    В системе электронного документооборота () можно использовать индивидуальный отпечаток внутри *.odt, *.docx и иных документах при работе с ними пользователем. Для этого должны быть написаны специальные приложения и/или драйверы, которые установлены и работают в системе. Если данная задача выполнена, то с помощью индивидуального отпечатка можно будет опознать, кто работал с документом, а кто нет. Разумеется стеганографию в данном случае глупо делать единственным критерием, но как дополнительный фактор идентификации участников работы с документом она может быть полезна.

    8. Водяной знак в DLP системах (СВЗ)

    Стеганография может быть применима для предотвращения утечек информации ( , DLP). В отличие от индивидуального отпечатка в СЭДО , в данном применении стеганографии при создании документа, содержащий конфиденциальный характер, вкрапляется определенная метка. При этом метка не изменяется, вне зависимости от количества копий и/или ревизий документа.

    Для того, чтобы извлечь метку необходим стегоключ. Стегоключ, разумеется, держится в тайне. DLP-система, перед одобрением или отказом выдать документ вовне, проверяет наличие или отсутствие водяного знака. Если знак присутствует, то система не разрешает отправлять документ вовне системы.

    9. Скрытая передача управляющего сигнала (СПД)

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

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

    10. Стеганографические botnet-сети (СПД)

    Если быть педантом, то данное применение можно считать частным случаем скрытой передачей управляющего сигнала . Тем не менее, я решил обозначит данное применение отдельно. Мой коллега из [b] прислал мне весьма любопытную статью неких [b]Shishir Nagaraja, [b]Amir Houmansadr, [b]Pratch Piyawongwisal, [b]Vijit Singh, [b]Pragya Agarwal и [b] . Я не специалист по botnet-сетям. Не могу сказать, лажа это или интересная фича. Буду раз услышать мнение хабрасообщества!

    11. Подтверждение достоверности переданной информации(ЦО).

    Стегосообщение в данном случае содержит данные, подтверждающие корректность передаваемых данных контейнера. В качестве примера это может быть контрольная сумма или хеш-функция (дайджест). Задача подтверждения достоверности является актуальной, если противник имеет необходимость подделать данные контейнера; по этой причине данное применение не нужно путать с защитой подлинности документов ! Например если речь идет о фотографии, то защитой подлинности является доказательство того, что данная фотография настоящая, не подделанная в фотошопе. Мы как бы защищаемся от самого отправителя (в данном случае фотографа). В случае подтверждения достоверности необходимо организовать защиту от третей стороны (man in the middle), которая имеет возможность подделать данные между отправителем и получателем.

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

    12. Funkspiel («Радиоигра») (СПД)

    :

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

    Возможность провала и последующей радиоигры учитывалась при планировании разведывательных операций. Заранее оговаривались различные признаки в радиограмме, по наличию или отсутствию которых можно было бы понять, что радист работает под контролем противника.

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

    Если стегосообщение не прошло проверку, то контейнер должен быть проигнорирован получателем, вне зависимости от его содержимого. В данном случае стеганография может быть использована для дезинформации противника. К примеру контейнер может представлять собой криптографическое сообщение. В этом случае отправитель, желая в вести в заблуждение противника, шифрует данные неким известным противнику скомпроментированным криптографическим ключом, а стегосообщение используется с целью, чтобы получатель не воспринял ложный контейнер.

    Предположим, что противник имеет возможность разрушить ЦО. В этом случае funkspiel может быть использован против интересов отправителя. Получатель, не обнаружив метку, не будет игнорировать полученный контейнер. Возможно в некоторых практических решениях разумно funkspiel использовать совместно с подтверждением достоверности . В этом случае любая информация, не содержащая метку достоверности - игнорируется; и соответственно для радиоигры следует просто не вкраплять метку в сообщение.

    13. Неотчуждаемость информации (СВЗ)

    Существует ряд документов, для которых важна целостность. Ее можно осуществить резервированием данных. Но что делать, если есть необходимость иметь документы в таком виде, чтобы невозможно было одну информацию отделить от другой информации? В качестве примера можно привести медицинские снимки. Многие авторы для надежности предлагают вовнутрь снимков вкраплять информацию об имени, фамилии и иных данных пациента. См например книгу Штефана Каценбейзера (Stefan Katzenbeisser) и Фабиана Петикола (Fabien A. P. Petitcolas) " ":

    The healthcare industry and especially medical imaging systems may benefit from information hiding techniques. They use standards such as (digital imaging and communications in medicine) which separates image data from the caption, such as the name of the patient, the date, and the physician. Sometimes the link between image and patient is lost, thus, embedding the name of the patient in the image could be a useful safety measure. It is still an open question whether such marking would have any effect on the accuracy of the diagnosis but recent studies by Cosman et al. revealing that lossy compression has little effect, let us believe that this might be feasible. Another emerging technique related to the healthcare industry is hiding messages in DNA sequences. This could be used to protect intellectual property in medicine, molecular biology or genetics.

    Аналогичные рассуждения можно сделать по поводу современной астрономии. Приведем цитату отечественного астронома ():

    Я завидую тем, кто сейчас входит в науку. Последние 20 лет мы [астрономы] в общем-то топтались на месте. Но сейчас ситуация изменилась. В мире построено несколько телескопов совершенно уникального свойства. Они видят почти все небо и огромные объемы информации получают каждую ночь. Вот достаточно сказать, что за предыдущие 200 лет астрономы открыли несколько тысяч объектов. (...) Это за 200 лет! Сегодня каждую ночь мы открываем триста новых объектов солнечной системы! Это больше, чем человек ручкой смог записать бы в каталог. [за сутки]

    Подумать только, каждую ночь 300 новых объектов. Понятно, что это различные мелкие космические астеройды, а не открытие новых планет, но все же… Действительно, возможно было бы разумно вкраплять информацию о времени съемки, месте съемки и иные данные непосредственно в изображение? Тогда при обмене снимков между астрономами, ученые всегда могли бы понять, где, когда и при каких обстоятельствах был сделан тот или иной снимок. Можно даже вкраплять информацию без ключа, считая, что противника нет. Т.е. использовать стеганографию только ради «неотчуждения» самих снимков от дополнительной информации, надеясь на честность пользователей; возможно, это было бы гораздо более удобно, чем сопровождать каждый снимок информацией.

    Из мира компьютерных игр можно привести . Если сделать скриншот игры, содержащий имя пользователя, время снятия скриншота (с точностью до минуты и IP) адрес сервера.

    14. Стеганографическое отвлечение (?)

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

    Грубо говоря, стеганографическое отвлечение чем-то напоминает DoS и DDoS атаки. Вы отвлекаете внимание противника от контейнеров, которые действительно содержат что-то ценное.

    15. Стеганографическое отслеживание (СПД)

    Данное применение чем-то похоже на п.7 индивидуальный отпечаток в СЭДО , только цель стоит иная - поймать злоумышлинника, который «сливает» информацию. Из реального мира можно привести пример [b]отмеченных дензнаков («меченные деньги»). Они используются правоохранительными органами, для того чтобы преступник, получивший деньги за какую-либо незаконную деятельность, не мог бы потом заявить, что эти деньги были у него до сделки.

    Почему бы не перенять опыт «реальных коллег» в наш виртуальных мир? Таким образом стеганографическое отслеживание напоминает чем-то вроде .

    Прогноз о будущем стеганографии в первой четверти XXI века

    Прочитав полусотню различных статей по стеганке и несколько книжек, рискну высказать свое мнение по поводу стеганографии. Данное мнение - лишь мое мнение и я его никому не навязываю. Готов к конструктивной критике и диалогу.

    [b]Тезис. Я считаю, что мир технически готов к стеганографии, но в «культурном» плане современное информационное общество пока ещё не дозрело. Я думаю, что в ближайшее время (2015-2025 годах) произойдет то, что возможно в будущем назовут "стеганографической революцией "… Может быть это немного заносчивое утверждение, но я попытаюсь обосновать свою точку зрения четырьмя положениями.

    [b]Первое. В данный момент не существует единой теории стеганографии. конечно лучше, чем ничего, но на мой взгляд это черно-белая фотография хвоста сферического виртуального коня в вакууме… Миттельхользер попытался немного улучшить результаты Кристиана Кашена, но пока это очень пространная теория.

    Отсутствие единой теории - важный тормоз. Математически доказано, что (=«одноразовый блокнот») взломать невозможно, по этой причине связь между В.В. Путиным и Баракой Обамой осуществляется именно с помощью этого алгоритма. Существует определенная теория, создающая и изучающая абстрактные (математические) криптографические объекты (Bent-функции, LFSR, циклы Фейстейля, SP-сеты и т.д.). В стеганографии существует зоопарк терминов и моделей, но большинство из них необоснованны, изучены не полностью или притянуты за уши.

    Тем не менее определенные сдвиги в данном направлении уже есть. Уже осуществляются скромные попытки использовать стеганографию если не как основное или даже единственное решение, то как вспомогательный инструмент. Огромный сдвиг в теории произошел за последние пятнадцать лет (2000-2015), но думаю об этом можно написать отдельный пост, в двух словах сказать трудно.

    [b]Второе. Стеганография - наука междисциплинарная ! Это первое, что должен уяснить любой начинающий «стеганограф». Если криптография может абстрагироваться от оборудования и решать исключительно задачи в мире дискретной математике, то специалист по стеганографии обязан изучать среду. Хотя конечно и в построении криптосистем существует ряд проблем, например атака по побочным каналам; но это не вина качества шифра. Я думаю, что стеганография будет развиваться в соответствии с развитием изучения среды, в которой передаются скрытые сообщения. Таким образом разумно ожидать появления «химической стеганографии», «стеганографии в изображениях», «стеганографии в кодах, исправляющих ошибки», «продовольственной стеганографии» и т.д.

    Начиная примерно с 2008 года это уже все осознали. Стеганографией стали интересоваться не только математики-криптографы, но и лингвисты, филологи, химики. Думаю это позитивный сдвиг, говорящий о многом.

    [b]Третее. Современный виртуальный мир перенасыщен текстами, картинками котиков, видеороликами и прочая и прочая… На одном сайте YouTube ежеминутно загружается более 100 часов видео! Вы только подумайте, [b]ежеминутно! Вот сколько минут вы читаете этот пространный опус?.. А теперь умножьте это число на 100! Вот столько часов различного видео на одном только YouTube появилось за это время!!! Вы можете себе это представить? А ведь это огромная «почва» для сокрытия данных! То есть «технически» мир давным давно готов к стеганографии. И я, если честно, глубоко уверен, что стеганография и противодействие стеганографии в ближайшем будущем станет такой же актуальной проблемой, как проблема BigData в 1938 году. Летом 1939 года в Кабатском лесу (недалеко от Варшавы) поляки подарили англичанам свои разработки и эвакуировали криптоаналитиков и инженеров. В Британии поляков возглавил Алан Тьюринг и на основе Бомбы была создана машина Colossus …

    Данная информация перестала быть секретной, если мне не изменяет память, только в 2000-х годах. В качестве другого исторического примера можно привести алгоритм RSA, который был изобретен в конце ВМВ британскими криптографами. Но, по понятным причинам, военные засекретили первый в мире алгоритм асимметричного шифрования и пальма первенства досталась Диффи, Хелману, а затем Ривесту, Шамиру и Адлеману.

    К чему я это? Дело в том, что в информационной безопасности все изобретается минимум два раза: один раз «в закрытую», а второй раз «в открытую»; а в некоторых случаях даже больше, чем два раза. Это нормально. Думаю тоже ждет и стеганографию (ели уже не постигло).

    В современной западной литературе почему-то «исчезли» (т.е. перестали публиковаться) многие ученые, которые в 1998-2008 годах предлагали весьма интересные идеи. (например Питер Вайнер, Мишель Элиа). Примерно аналогичная ситуация была перед изобретением атомного оружия… Кто знает, может быть уже изобретены совершенные стегосистемы и они успешно используются ГРУ и/или АНБ? А мы, дочитывая этот пост и глядя на наручные часы высчитываем, сколько ещё часов мурлыкающих котиков закачали миллионы пользователей на YouTube и есть ли среди них котики с перепиской террористов; команд для botnet-сети или чертежи РТ-2ПМ2, зашифрованные шифром Вернама.

    У кого из вас, уважаемые читатели, нет секретов? А кому хоть раз в жизни не приходилось доверить кому-либо нечто важное, взяв с него слово сохранить тайну? Думаю, вы со мной согласитесь: защита информации - дело, касающееся всех и каждого.

    Стеганография в далеком и недалеком прошлом

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

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

    Слово это в переводе с греческого буквально означает «тайнопись». Первые приемы стеганографии, как полагают историки, появились еще в Древнем Египте и затем использовались везде, где существовала письменность.

    Что же представляла собой стеганография в докомпьютерную эру? Классифицировать все методы сокрытия информации практически невозможно - они многочисленны и разнообразны. Чтобы стало понятно, что весь спектр этих методов объединяется лишь одним - целью их применения, приведем несколько исторических примеров.

    В античности, когда для письма использовались вощеные таблички, секретную информацию можно было написать непосредственно на подложке, потом нанести воск, а на нем написать какой-то безобидный текст. Попади такая табличка к врагам, они не догадались бы, что там имеются какие-то секреты. В средние века, да и позднее, большой популярностью пользовались особые чернила, не видимые постороннему глазу. Написанное с их помощью послание можно было прочесть лишь после особой обработки бумаги. Помните известный рассказ об умном Ленине и глупом жандарме? Так вот Владимир Ильич использовал как раз такой стеганографический инструмент - молочные чернила, которые после высыхания становились практически невидимыми, а при нагревании проявлялись четкими коричневыми буквами. Кроме таких незамысловатых способов, изобретались и сложные составы, для проявления которых нужно было провести химическую реакцию.

    Нередко для передачи важных данных использовался посторонний текст (книга, заметка в газете, безобидное письмо о погоде и пр.), буквы и знаки которого кодировали конфиденциальную информацию. И здесь простор для фантазии просто огромен: скрытый текст может считываться по первым буквам слов (принцип акростиха) или определяться по заранее оговоренному правилу. После изобретения общепринятых кодов (например, азбуки Морзе) стало возможным распознавать секретный текст по длинам слов: 4-5 букв - тире, 5-6 букв - точка, 7 и более - пробел, меньше 4 букв - игнорируются). В рукописном тексте значение могли иметь особенности начертания букв - размеры, завитки и т.д. Всего и не перечислишь.

    С появлением фотографии стали доступны новые способы - например в ничего не значащие снимки добавлялись микроточки. Подобные методы секретных сообщений активно использовались во время Второй мировой войны.

    Широкое распространение вычислительной техники открыло новые горизонты для изобретателей методов тайнописи. С одной стороны, были адаптированы и доработаны некоторые из старых методов, а с другой - разработаны новые алгоритмы, применимые только в сфере компьютерных технологий.

    Современные подходы к стеганографии

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

    В зависимости от типа контейнера компьютерные стеганографические алгоритмы удобно разделить на три основные группы.

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

    Фантазия разработчика может пригодиться в случае необходимости спрятать в тексте двоичные данные. Если в качестве стеганограммы выступает произвольный файл, он рассматривается в виде последовательности одиночных битов или короткой серии битов (группы по два-три бита). Для их кодирования используют пробелы (один пробел - 0, два - 1) или непечатаемые символы (например, нулевой символ). Для решения данной задачи вполне может подойти приведенный выше пример с азбукой Морзе: тогда для кодирования коротких серий битов будут использоваться длины слов или их первые буквы.

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

    2. Сокрытие данных в неиспользуемых областях носителей, в отличие от предыдущей группы алгоритмов, является ноу-хау периода вычислительной техники. Эти методы основаны на особенностях файловых систем. Во-первых, файлы всегда занимают целое число кластеров, поэтому между двумя файлами обычно остается свободное пространство, которое и используется для размещения сообщения. Во-вторых, для передачи информации можно использовать нулевую дорожку диска. Существует также возможность удалить заголовочную запись файла с носителя, а файловая система будет считать свободным место, занимаемое этим файлом.

    Слабой стороной всех перечисленных методик является все та же простота обнаружения, поскольку места закладки сообщения очевидны. Кроме того, последний способ требует пересылки заголовочной части файла отдельно от носителя, что вовсе не повышает уровень секретности. Использование алгоритмов этой группы для организации секретного обмена информацией предполагает применение внешних накопителей, обычно имеющих небольшую емкость, что налагает значительные ограничения на размер скрываемых данных. Поэтому разумнее будет выбирать носители информации в качестве контейнера только в том случае, когда планируется засекретить хранимые, а не передаваемые данные.

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

    3.1. В простых некоммерческих программах для стеганографии в качестве контейнера нередко используют области графических файлов, изменение которых не влияет на изображение. Скрываемая информация может размещаться и после окончания данных изображения, и между отдельными картинками одного файла (например, анимированного GIF), и в полях-комментариях, которые игнорируются при прорисовке. Такие стеганограммы легко детектируются, поэтому обычно они рассчитаны на то, что специально их никто искать не будет.

    3.2. Метод наименее значащих битов (Least Significant Bit, LSB) наиболее распространен в электронной стеганографии. Он основан на ограниченных возможностях человеческих органов чувств, в силу чего люди не способны различать незначительные вариации цветов или звуков. Для простоты описания покажем принцип работы этого метода на примере 24-битного растрового RGB-изображения. Одна точка изображения в этом формате кодируется тремя байтами, каждый из которых отвечает за интенсивность одного из трех составляющих цветов (рис. 1).

    В результате смешения цветов из красного (R), зеленого (G) и синего (B) каналов пиксел получает нужный оттенок. Чтобы нагляднее увидеть принцип действия метода LSB, распишем каждый из трех байтов в битовом виде (рис. 2). Младшие разряды (на рисунке они расположены справа) в меньшей степени влияют на итоговое изображение, чем старшие. Из этого можно сделать вывод, что замена одного или двух младших, наименее значащих битов, на другие произвольные биты настолько незначительно исказит оттенок пиксела, что зритель просто не заметит изменения.

    Допустим, нам нужно скрыть в данной точке изображения шесть бит: 101100. Для этого разобьем их на три пары (рис. 3) и заместим ими по два младших бита в каждом канале (рис. 4).

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

    Рис. 5. Слева — оригинальный цвет, справа — цвет после модификации

    Давайте теперь подсчитаем полезный объем такого RGB-контейнера. Занимая два бита из восьми на каждый канал, мы будем иметь возможность спрятать три байта полезной информации на каждые четыре пиксела изображения, что соответствует 25% объема картинки. Таким образом, имея файл изображения размером 200 Кбайт, мы можем скрыть в нем до 50 Кбайт произвольных данных так, что невооруженному глазу эти изменения не будут заметны.

    Модификацией метода LSB являются алгоритмы стеганографии, разработанные для компрессированных мультимедиаданных. В частности, довольно популярен у разработчиков стеганографического программного обеспечения алгоритм сокрытия данных в изображениях формата JPEG. Поскольку преобразование картинки в JPEG происходит с потерей информации, закладывать стеганограмму в исходное изображение не имеет смысла, так как потом ее невозможно будет восстановить. Выход нашелся в самом алгоритме сжатия - не вдаваясь в подробности спецификации JPEG, скажем, что сжатие проходит здесь в три этапа: дискретно-косинусоидальное преобразование (ДКП), квантование и вторичное сжатие (кодирование Хаффмана), а третья стадия проходит без потери данных, поэтому в качестве контейнера используются коэффициенты ДКП после квантования, то есть пользовательской информацией замещаются младшие разряды этих коэффициентов. Такие возможности предоставляются практически всеми схемами сжатия с потерей информации, включая аудио- и видеоформаты.

    Чем же объясняется лидерство метода LSB среди стеганографических алгоритмов? Во-первых, мультимедиаконтейнеры не вызывают подозрений: можно без проблем отправить другу свою фотографию или симпатичный пейзаж. Во-вторых, младшие биты оцифрованных изображений, звука или видео могут иметь различное распределение в зависимости от применявшихся параметров аналого-цифрового преобразования, от дополнительной компьютерной обработки и от прочих факторов. Эта особенность делает метод наименее значащих битов наиболее защищенным от обнаружения вложения. Наконец, в-третьих, реализации LSB для большинства стандартов файлов-контейнеров не требуют значительных затрат времени и сил - идея указанного метода проста, как все гениальное.

    Обнаружение стеганограмм

    ринцип действий, направленных на обнаружение стеганограмм, в общем виде не представляет собой ничего сложного. Для начала нужно найти все места возможных закладок инородной информации, которые допускает формат файла-контейнера. Далее требуется извлечь данные из этих мест и проанализировать их свойства на соответствие стандартным значениям. Для решения первой задачи достаточно внимательно изучить спецификации используемых форматов файлов, а вторая обычно решается методами статистического анализа. Например, если необходимо спрятать некий текстовый фрагмент, то такое послание будет содержать только символьную информацию: 52 знака латиницы, 66 знаков кириллицы, знаки препинания и некоторые служебные символы. Статистические характеристики такого сообщения будут резко отличаться от характеристик случайной последовательности байтов, которую должны напоминать младшие биты RGB-картинки, собранные вместе (для метода LSB).

    Повышение надежности сокрытия данных и пресечение такового

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

    Затем нужно приблизить статистические свойства сообщения к тому, что аналитик рассчитывает найти в неискаженном файле-контейнере. Если вы собираетесь использовать текстовые поля комментариев для передачи бинарных данных, то имеет смысл применить кодирование Base64 или аналогичное, чтобы двоичная последовательность была записана символьными знаками. Это хотя и не обманет профессионала, но позволит обойти некоторые программные фильтры.

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

    Относительно использования метода LSB можно дать еще несколько простых советов, которые позволят вам обойти стеганографический контроль:

    Не следует использовать для хранения сообщения более трех битов каждого байта контейнера, а лучше ограничиться двумя, разбив большое сообщение на несколько мелких или подобрав более емкий файл-носитель. Кроме того, не стоит забивать контейнер пользовательскими данными «под завязку» - чем меньше будет доля важной информации в общем объеме передаваемого файла, тем сложнее обнаружить факт закладки. На практике обычно рекомендуют скрывать сообщения так, чтобы их размер составлял не более 10% размера контейнера;

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

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

    Стеганография предоставляет различные по сложности и надежности инструменты для тех, кто хочет сохранить свою переписку в тайне - можно воспользоваться одной из десятков готовых бесплатных или коммерческих программ, а можно реализовать описанные выше алгоритмы самостоятельно (такие решения подчас оказываются надежнее широко распространенных). А что же делать сотрудникам отделов информационной безопасности предприятий, в задачу которых как раз и входит пресечение тайной переписки сотрудников с целью предотвращения утечки конфиденциальной информации из компании? Для начала нужно попытать счастья (вдруг подготовка злоумышленника окажется слабоватой) и проверить самые доступные хранилища: поля-комментарии и поля расширений различных форматов файлов, чтобы убедиться, что в переписке не встречаются вложения с необоснованно большим объемом. Текстовые сообщения должны быть значимы, а бессмысленные фразы типа «наскоро актер тащит арбуз шестой армии» сразу должны привлекать внимание - они могут автоматически генерироваться специальными стеганографическими программами по словарям. Стеганограммы, упакованные методом LSB, обнаружить сложно, особенно если этот метод применяется грамотно. Выход из положения подсказывает сам принцип, легший в основу алгоритма наименее значащих битов: если изменение младших разрядов каждого байта мультимедиафайла не отражается на качестве изображения или звука, то можно со спокойной совестью заменить эти разряды нулевыми битами. Безобидную картинку мы таким образом не испортим, но несанкционированную передачу данных обязательно пресечем.

    Примеры применения стеганографии

    тобы теория стеганографии не показалась вам умозрительной, не имеющей никакого отношения к практике, приведем пример ее применения. Для демонстрации мы использовали одну из десятков бесплатных и условно-бесплатных программ, предоставляющих сервис стеганографического сокрытия информации и доступных для загрузки в Интернет. В качестве контейнера, согласно описанным выше правилам, была выбрана фотография в формате BMP 24-bit размером около 1 Мбайт, подобранная в личном фотоальбоме автора этой статьи по принципу отсутствия крупных однотонных заливок и наличия мелких деталей. Сообщением послужил случайный бинарный файл (некая динамическая библиотека) размером чуть более 100 Кбайт, что составило как раз примерно 10% от размера контейнера. Перед тем как вложение было упаковано в файл изображения, оно было автоматически зашифровано при помощи указанной программы с использованием алгоритма Blowfish. Итак, все требования безопасности соблюдены, и две картинки, в одной из которых десятая часть информации замещена произвольными данными, практически неразличимы - убедитесь сами (рис. 6).

    Рис. 6. Справа — исходное изображение; слева — изображение с вложением

    Кроме тайной пересылки и хранения информации, стеганография имеет еще одну область применения - это защита авторских прав. Поскольку к изображению, аудио- или видеофайлу можно добавить какое-либо сообщение таким образом, чтобы это не испортило впечатления от просмотра/прослушивания, и поскольку такое вложение практически невозможно обнаружить и изъять, то это сообщение можно использовать в качестве авторской подписи. Подобные «водяные знаки» помогут доказать, что, например, сделанная вами фотография была незаконно использована для оформления некоего известного Web-сайта. В настоящее время существует ряд программ, реализующих электронную подпись мультимедиаданных методами стеганографии, а также сканирующих Интернет с целью обнаружения работ, используемых без разрешения.

    Вместо заключения

    юбое замечательное изобретение в истории человечества - от колеса до пороха, от письменности до расщепления атома - использовалось как во благо, так и во вред обществу, и стеганография здесь не является исключением. Раньше эта область знаний была доступна лишь немногим, но с приходом «виртуальной эпохи», когда персональные компьютеры стоят почти на каждом столе, стеганография становится массовым товаром. И задача лояльного сотрудника - спрятаться от подозрительного взгляда начальника, а цель хорошего начальника - не позволить нечестному работнику продать секреты фирмы конкурентам. А наша с вами задача - помнить о многовековой истории стеганографии, знать ее методы и уметь применять их на благо себе и окружающим.