Компьютерная стеганография

"Сограждане!" - начал он взволнованным голосом, но так как речь его была секретная, то весьма естественно, что никто ее не слыхал.

М. Салтыков-Щедрин,
"История одного города "

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

Греческий историк Геродот упоминает случай применения тайнописи в V веке до н.э. Тиран Гистий, будучи под надзором царя Персии Дария в Сузах, захотел послать сообщение своему родственнику в город Милет в Анатолии. Для этого он побрил наголо раба и вытатуировал сообщение на его голове. Волосы отросли, и раб доставил послание.

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

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

 

Компьютерная тайнопись основывается на нескольких принципах:

  1. Сообщение можно послать, используя шумовое кодирование. Оно будет трудно определимо на фоне аппаратных шумов в телефонной линии или сетевых кабелях.
  2. Сообщение можно поместить в пустоты файлов или диска без потери их функциональности. Исполнимые файлы имеют многосегментную структуру исполнимого кода, между пустотами сегментов можно вставить кучу байт. Так прячет свое тело вирус WinCIH. Файл всегда занимает целое число кластеров на диске, поэтому физическая и логическая длина файла редко совпадают. В этот промежуток тоже можно записать что-нибудь. Можно отформатировать промежуточную дорожку диска и поместить на нее сообщение. Есть способ проще, который состоит в том, что в конец строки HTML или текстового файла можно добавить определенное количество пробелов, несущих информационную нагрузку.
  3. Файлы, содержащие оцифрованное изображение или звук, можно исказить без потери функциональности и информационного содержания, так как в подобных данных не требуется абсолютная точность.
  4. Органы чувств человека неспособны различить малые изменения в цвете, изображении или звуке. Это применяют к данным, несущим избыточную информацию. Например, 16-битный звук или 24-битное изображение. Изменение значений битов, отвечающих за цвет пиксела, не приведет к заметному изменению цвета. Сюда же можно отнести метод скрытых гарнитур шрифтов. Делаются малозаметные искажения в очертаниях букв, которые будут нести смысловую нагрузку. В документ Microsoft Word можно вставить похожие символы, содержащие скрытое послание. Главный редактор "Компьютерных Вестей" рассказал, что однажды таким способом в текст статьи было вставлено поздравление. Никто не заметил. На будущее: читайте статьи в "Вестях" более внимательно, вдруг обнаружите что-нибудь еще:).

Самый распространенный и один из самых лучших программных продуктов для стеганографии - это S-Tools (статус freeware). Он позволяет прятать любые файлы в файлы форматов GIF, BMP и WAV. Осуществляет регулируемое сжатие (архивирование) данных. Кроме того, производит шифрацию с использованием алгоритмов MCD, DES, тройной-DES, IDEA (по выбору). Три вещи в одной! Два последних алгоритма актуальны и сегодня. Правда, есть недостаток, интерфейс сплошь "мышиный", построенный на "перетаскивании", что достаточно неудобно. Графический файл остается без видимых изменений, только изменяются оттенки. Звук тоже остается без заметных изменений. Даже при возникновении подозрений невозможно установить факт применения S-Tools, не зная пароля. К примеру, на сайте в GIF`ах или BMP`ах можно прятать файлы для "узкого круга ограниченных людей".

Другая программа подобного назначения - Steganos for Windows 95 (статус shareware, трайал на 30 дней). Возможности, похожие на S-Tools, но использует криптоалгоритм HWY1. Позволяет вставлять данные не только в BMP- и WAV-файлы, но также в файлы текстового и HTML-формата. Производитель предлагает также Steganos SDK для разработчиков.

Еще мне известен продукт - это Stash ("копилка" в дословном переводе). Работает с форматами BMP;JPG;PCX; PNG;TIF;GIF. Использует пять методов кодирования, на выходе выдает три формата по выбору: BMP; PCX; GIF. Шифрования данных не производит.

Другое применение компьютерной стеганографии - это цифровые водяные знаки (digital watermarking) для защиты авторских прав и идентификационные коды производителей (fingerprinting) для обозначения серийных номеров и характеристик продукции. Для защиты авторских прав на графические и звуковые файлы наносятся невидимые "водяные" знаки, которые считываются специальными программами и дают информацию о времени создания файла, авторе, его контактных реквизитах и т.п.

Один из лидеров на рынке подобных услуг - фирма Digimarc. Она предлагает модули, подключаемые к CorelDraw или PhotoShop`у или работающие отдельно. С их помощью можно прочитать зашитые в файлах водяные знаки, если они присутствуют. Бесплатно на год можно получить свой Creator ID. Продукт для корпоративных пользователей MarcSpider (интернетовский сетевой робот-паук) будет путешествовать по всемирной паутине и сообщать владельцу ID об использовании продуктов его творчества. По рекламным сообщениям создателей цифровые знаки могут перенести изменение яркости, контраста, использование спецэффектов, печать и последующее сканирование (верится с трудом). На это быстро нашлось и свое противоядие: программы UnZign и StirMark - стиратели водяных знаков.

Black Prince,
Werebad@bigfoot.com

Версия для печатиВерсия для печати

Номер: 

14 за 1999 год

Рубрика: 

Защита информации
Заметили ошибку? Выделите ее мышкой и нажмите Ctrl+Enter!