Стеганогра́фия (от — скрытый + — пишу; ) — способ передачи или хранения информации с учётом сохранения в тайне самого факта такой передачи (хранения). Этот термин ввёл в 1499 году аббат бенедиктинского монастыря Святого Мартина в Шпонгейме Иоганн Тритемий в своём трактате «Стеганография» (), зашифрованном под магическую книгу.
В отличие от криптографии, которая скрывает содержимое тайного сообщения, стеганография скрывает сам факт его существования. Как правило, сообщение будет выглядеть как что-либо иное, например, как изображение, статья, список покупок, письмо или судоку. Стеганографию обычно используют совместно с методами криптографии, дополняя её. Криптография защищает содержание, а стеганография скрывает как само сообщение, так и факт сокрытия его содержания.
Преимущество стеганографии над чистой криптографией состоит в том, что сообщения не привлекают к себе внимания. Сообщения, факт шифрования которых не скрыт, вызывают подозрение и в странах, где криптография запрещена, могут становиться уликами сами по себе.
Стегоанализ — раздел стеганографии, посвящённый выявлению фактов скрытых сообщений.
История Первая запись об использовании стеганографии встречается в трактате Геродота «История», относящегося к 440 году до н. э. В трактате были описаны два метода скрытия информации. Демарат отправил предупреждение о предстоящем нападении на Грецию, записав его на деревянную подложку восковой таблички до нанесения воска. Второй способ заключался в следующем: на обритую голову раба записывалось необходимое сообщение, а когда его волосы отрастали, он отправлялся к адресату, который вновь брил его голову и считывал доставленное сообщение.
Существует версия, что древние шумеры одними из первых использовали стеганографию, так как было найдено множество глиняных клинописных табличек, в которых одна запись покрывалась слоем глины, а на втором слое писалась другая. Однако противники этой версии считают, что это было вовсе не попыткой скрытия информации, а всего лишь практической потребностью.
В конце 1990-х годов выделилось несколько направлений — классическая стеганография, компьютерная стеганография и цифровая стеганография.
Классическая стеганография
Симпатические чернила
Одним из наиболее распространённых методов классической стеганографии является использование симпатических (невидимых) чернил. Текст, записанный такими чернилами, проявляется только при определённых условиях (нагрев, освещение, химический проявитель и так далее)Громов В. И. Энциклопедия безопасности.. Изобретённые ещё в I веке н. э. Филоном АлександрийскимДля чего нужны симпатические чернила? // Вокруг света., они продолжали использоваться как в средневековье, так и в новейшее время, например, в письмах русских революционеров из тюрем. В советское время школьники на уроках литературы изучали рассказ, как Владимир Ленин писал молоком на бумаге между строк (см. «Рассказы о Ленине»). Строки, написанные молоком, становились видимыми при нагреве над пламенем свечи.
Существуют также чернила с химически нестабильным пигментом. Написанное этими чернилами выглядит как написанное обычной ручкой, но через определённое время нестабильный пигмент разлагается, и от текста не остаётся и следа. Хотя при использовании обычной шариковой ручки текст можно восстановить по деформации бумаги, этот недостаток можно устранить с помощью мягкого пишущего узла, наподобие фломастера.
Другие стеганографические методы Во время Второй мировой войны активно использовались микроточки — микроскопические фотоснимки, вклеиваемые в текст писем.
Также существует ряд альтернативных методов сокрытия информации: запись на боковой стороне колоды карт, расположенных в условленном порядке; запись внутри варёного яйца; «жаргонные шифры», где слова имеют другое обусловленное значение (эзопов язык); трафареты, которые, будучи положенными на текст, оставляют видимыми только значащие буквы; геометрическая форма — метод, в котором отправитель старается скрыть ценную информацию, поместив её в сообщение так, чтобы важные слова расположились в нужных местах или в узлах пересечения геометрического рисунка; семаграммы — секретные сообщения, в которых в качестве шифра используются различные знаки, за исключением букв и цифр; узелки на нитках.
С 2000-х годов под стеганографией чаще всего понимают скрытие информации в текстовых, графических либо аудиофайлах путём использования специального программного обеспечения.
К «жаргонным шифрам» (системам, где слова имеют другое обусловленное значение) исторически относится термин «код». Брюс Шнайер называет подобные системы криптосистемами, работающими с лингвистическими единицами (например, он приводит в качестве примера слово «оцелот», которое в определённой системе может означать фразу «повернуть налево на 90 градусов», а слово «леденец» может означать «поворот направо на 90 градусов»). По его мнению, использование подобных кодов для сокрытия информации целесообразно только в особых случаях.
Стеганографические модели Стеганографические модели используются для общего описания стеганографических систем.
В 1983 году Симмонс предложил «проблему заключённых»: человек на свободе (Алиса) хочет передавать сообщения заключённому (Бобу) без вмешательства охранника (Вилли), при этом Алиса и Боб могли договориться о кодовом символе, который отделит одну часть текста письма от другой, в которой скрыто сообщение, а Вилли имеет право читать и изменять сообщения.
В 1996 году на первом семинаре по сокрытию информацию была принята единая терминология: стеганографическая система (стегосистема) — объединение методов и средств, используемых для создания скрытого канала для передачи информации; сообщение — общее название передаваемой скрытой информации (будь то лист с надписями молоком, голова раба или цифровой файл); контейнер — любая информация, используемая для сокрытия тайного сообщения: пустой контейнер — контейнер, не содержащий секретного послания, заполненный контейнер (стегоконтейнер) — контейнер, содержащий секретное послание; стеганографический канал (стегоканал) — канал передачи стегоконтейнера; ключ (стегоключ) — секретный ключ, нужный для сокрытия стегоконтейнера.
При построении стеганографической системы определение подразумевает, что противник (нарушитель) представляет работу стеганографической системы, но неизвестным для него является ключ, с помощью которого можно узнать о факте существования и содержание тайного сообщения. При обнаружении противником наличия скрытого сообщения он не должен смочь извлечь сообщение до тех пор, пока он не будет владеть ключом. Также подразумевается, что противник не имеет технических и прочих преимуществ.
Ключи в стегосистемах бывают двух типов: закрытые (секретные) и открытые. Если стегосистема использует закрытый ключ, то он должен быть создан или до начала обмена сообщениями, или передан по защищённому каналу. Стегосистема, использующая открытый ключ, должна быть устроена таким образом, чтобы было невозможно получить из него закрытый ключ. В этом случае открытый ключ можно передавать по незащищённому каналу.
Компьютерная стеганография Компьютерная стеганография — направление классической стеганографии, основанное на особенностях компьютерной платформы. Примеры — стеганографическая файловая система StegFS для Linux, скрытие данных в неиспользуемых областях форматов ов, подмена символов в названиях ов, текстовая стеганография.
В рамках компьютерной стеганографии широко распространены использование зарезервированных полей форматов файлов и особых свойств полей форматов, которые не отображаются на экране. Второй способ использует специальные «невидимые» поля для получения сносок, указателей, к примеру, написание чёрным шрифтом на чёрном фоне. В обоих случаях основными недостатками являются низкая производительность и небольшой объём передаваемой информации.
Также используется запись в неиспользуемых местах носителей информации и запоминающих устройств, например, запись на нулевую дорожку жёсткого диска. Как правило, в этот подход также ограничен небольшими по объёму сообщениями. Развитием этого метода является использование особенностей файловых систем — файлы как правило занимают целое число кластеров (минимальных адресуемых объёмов информации, к примеру, в FAT32 — 4 КБ), соответственно, для или их частей менее размера кластера можно использовать свободное место. Во всех этих случаях скрытое сообщение легко обнаруживается.
Цифровая стеганография
Цифровая стеганография — направление классической стеганографии, основанное на сокрытии или внедрении дополнительной информации в цифровые объекты, вызывая при этом некоторые искажения этих объектов. Но, как правило, данные объекты являются мультимедиа-объектами (изображения, видео, аудио, текстуры 3D-объектов) и внесение искажений, которые находятся ниже порога чувствительности среднестатистического человека, не приводит к заметным изменениям этих объектов. Кроме того, в оцифрованных объектах, изначально имеющих аналоговую природу, всегда присутствует шум квантования; далее, при воспроизведении этих объектов появляется дополнительный аналоговый шум и нелинейные искажения аппаратуры, все это способствует большей незаметности сокрытой информации.
Сетевая стеганография С 2000-х годов приобрели популярность методы, когда скрытая информация передаётся через компьютерные сети с использованием особенностей работы протоколов передачи данных. Такие методы получили название «сетевая стеганография», термин впервые ввёл Кшиштоф Щипёрский () в 2003 году. Типичные методы сетевой стеганографии включают изменение свойств одного из сетевых протоколов. Кроме того, может использоваться взаимосвязь между двумя или более различными протоколами с целью более надёжного сокрытия передачи секретного сообщения.
WLAN-стеганография основывается на методах, которые используются для передачи стеганограмм в беспроводных сетях, практический пример — система HICCUPS ().
LACK-стеганография (от — скрытие сообщений во время разговоров по IP-телефонии: вносятся пакеты, которые задерживаются или намеренно повреждаются и игнорируются приёмником или скрывается информация в полях заголовка, которые не используются. В LACK передатчик (Алиса) выбирает один из пакетов голосового потока, и его полезная нагрузка заменяется битами секретного сообщения — стеганограммой, которая встраивается в один из пакетов. Затем выбранный пакет намеренно задерживается. Каждый раз, когда чрезмерно задержанный пакет достигает получателя, незнакомого со стеганографической процедурой, он отбрасывается. Однако, если получатель (Боб) знает о скрытой связи, то вместо удаления полученных RTP-пакетов он извлекает скрытую информацию.
Алгоритмы Все алгоритмы встраивания скрытой информации можно разделить на несколько подгрупп — работающие с самим цифровым сигналом (например, метод LSB), «впаивающие» скрытую информацию (например, наложение скрываемого изображения, звука, иногда текста — поверх оригинала, в частности, встраивания цифровых водяных знаков), использование особенностей форматов ов (запись информации в метаданные или в различные другие неиспользуемые зарезервированные поля файла).
По способу встраивания информации стегоалгоритмы можно разделить на линейные (аддитивные), нелинейные и другие. Алгоритмы аддитивного внедрения информации заключаются в линейной модификации исходного изображения, а её извлечение в декодере производится корреляционными методами. При этом цифровой водяной знак обычно складывается с изображением-контейнером либо «вплавляется» () в него. В нелинейных методах встраивания информации используется скалярное либо векторное квантование. Среди других методов определённый интерес представляют методы, использующие идеи фрактального кодирования изображений. К аддитивным алгоритмам можно отнести: А17 (Cox); А18 (Barni); L18D (Lange); А21 (J. Kim); А25 (С. Podilchuk).
Стегоалгоритмы встраивания информации в изображения