Digital Security and Privacy for Human Rights Defenders

2.8 Стеганография

С помощью шифрования мы делаем послание нечитаемым для посторонних. Стеганография помогает скрыть сам факт передачи сообщения. Вы, наверное, слышали о невидимых чернилах? Читали о том, как автор текста выводил буквы на бумаге лимонным соком? Все это – виды стеганографии. Одно из наиболее ранних упоминаний об использовании стеганографии восходит к 440 году до нашей эры. Геродот рассказывает, что тиран Гистий, находясь в плену в Сузах и желая передать тайное послание союзникам, выбрил волосы на голове своего верного раба и нанес секретное послание татуировкой. Когда волосы чуть отросли, раб отправился в путь. Тот же метод использовался в немецкой армии не далее, как в начале XX века.

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

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

diagram

Лингвистическая стеганография

В последние пару лет лингвистическая стеганография привлекает к себе большое внимание. Хотя по сути, этот вид стеганографии – шаг назад в смысле использования компьютерных технологий сокрытия и шифрования сообщений. Лингвистическая стеганография подразумевает дело, которое по-прежнему лучше дается людям, чем компьютерам: использование и понимание языка. Постижение смысла слов, превращение отдельных слов в значимую информацию, реакция на юмор, символизм и неопределенности – все это пока остается привилегией человеческого разума и не имеет аналогов в мире компьютеров. В этой части мы разберемся с разными методиками лингвистической стеганографии, которые помогают обойти современные технологичные системы слежки.
Язык, которым мы будем пользоваться, "по умолчанию" не должен быть понятен кому попало. Компьютеры не обладают способностью самостоятельно изучать языки, а программы распознавания речи всего лишь определяют разницу между частотами звукового сигнала и сопоставляют их с заранее определенными звуками речи. Сколько бы усилий мы ни вложили в обучение компьютера пониманию смысла слов, создаваемый таким образом искусственный интеллект (по крайней мере, сегодня) остается далек от человеческого. Кроме того, компьютеры используют системы распознавания символов (сходные с той, которую применяет человек при чтении текстов). Распознавание символов – популярный метод обеспечения безопасности. Например, в системах веб-почты (Hotmail, Yahoo) пользователя просят ввести с клавиатуры несколько букв, которые он видит на экране. Этот прием – "защита от роботов". С его помощью система защищается от компьютерных программ, автоматически регистрирующих электронные адреса для дальнейшей рассылки спама. Такие программы не умеют распознавать буквы в картинках. Специалисты, занимающиеся темой искусственного интеллекта, знают о многих других нерешенных проблемах в этой области, и все потому, что пока не изобретен способ научить компьютер мыслить интуитивно.

Семаграммы

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

diagram
Текстовые семаграммы – это послания, скрытые внутри текста. Заглавные буквы, подчеркивания, особенности почерка, пробелы между буквами и словами – все они могут быть использованы для передачи какого-либо сообщения. Ассоциации тоже могут применяться с этой целью, если вам нужно передать совсем небольшую по объему информацию. Скажем, вы заранее договорились со своими друзьями, что будете обмениваться по электронной почте безобидными с виду прогнозами погоды. Фраза "небо затянуто тучами" может означать сигнал тревоги и просьбу об оказании международной помощи.

Открытое кодирование

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

Опечатки

Электронные фильтры настроены на конкретные слова. Но сколько опечаток можно допустить в слове! Нетрудно сохранить смысл слова, чуть-чуть изменив его написание. Взгляните, что можно сделать с фразой "права человека":

прова чиловека правва челловека прва чловека

Таких вариантов множество. Конечно, набрать целый текст, коверкая слова подобным образом, тяжело. Но для отдельных слов – тех, на которые (как вы считаете) срабатывают фильтры – этот прием можно использовать.1

Фонетика

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

политзаключенный politzaklyutchenny

Жаргон

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

diagram

Скрытое кодирование

Это частный случай сокрытия текста в доступном сообщении. Иногда технология довольно проста. Взгляните на это невинное письмо москвички своему родственнику в Астрахань:

Паша, здравствуй! Как в Астрахани дела? Из Москвы привет и спасибо тебе огромное, Леонид Евгеньевич так обрадовался вашей икре! Забрал банку и так выразился: "Старикам икра - закуска" :) Он исхудал, питается овощами, мучает его щитовидка. Ему на воздух бы, отдохнуть. Ладно, надо идти. Целую, успехов!

Но если вы попробуете сложить первые буквы каждого слова, получится вот что:

ПЗК ВАДИМ ПИСТОЛЕТОВ ИЗБИТ В СИЗО И ПОМЕЩЕН В БОЛЬНИЦУ

(ПЗК – "политзаключенный")

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

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

Dear E-Commerce professional ; This letter was specially
selected to be sent to you . This is a one time mailing
there is no need to request removal if you won't want
any more . This mail is being sent in compliance with
Senate bill 1622 , Title 1 , Section 302 ! THIS IS
NOT A GET RICH SCHEME . Why work for somebody else
when you can become rich as few as 73 weeks . Have
you ever noticed how long the line-ups are at bank
machines and people love convenience . Well, now is
your chance to capitalize on this . WE will help YOU
SELL MORE and sell more ! You can begin at absolutely
no cost to you . But don't believe us . Mr Simpson
who resides in Nebraska tried us and says "I was skeptical
but it worked for me" . This offer is 100% legal !
We IMPLORE you - act now ! Sign up a friend and you
get half off . God Bless ! Dear Salaryman ; Your email
address has been submitted to us indicating your interest
in our briefing . If you are not interested in our
publications and wish to be removed from our lists,
simply do NOT respond and ignore this mail ! This mail
is being sent in compliance with Senate bill 1619 ;
Title 1 , Section 305 ! This is not multi-level marketing
. Why work for somebody else when you can become rich
inside 57 days ! Have you ever noticed people love
convenience and more people than ever are surfing the
web . Well, now is your chance to capitalize on this
. WE will help YOU turn your business into an E-BUSINESS
and deliver goods right to the customer's doorstep
! You can begin at absolutely no cost to you . But
don't believe us ! Prof Anderson of Idaho tried us
and says "Now I'm rich, Rich, RICH" ! We are a BBB
member in good standing ! For the sake of your family
order now ! Sign up a friend and you'll get a discount
of 60% . Cheers !

Но если вы возьмете этот фрагмент текста и через буфер обмена вставите его в окошко на сайте www.spammimic.com/decode.shtml, то получите сообщение совсем иного характера:

NUZHEN ADVOCAT

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

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

В будущем

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

Стеганография данных

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

Как вы, наверное, знаете, компьютеры имеют дело с двоичным представлением чисел. Это значит, что любая буква и любая команда состоит из последовательности нулей и единиц. Скажем, английская "А" в двоичном представлении выглядит так:

11101101

Эта система создана таким образом, что последняя цифра ("0" или "1") не оказывает влияния на значение буквы. Если мы заменим последнюю единицу на ноль, компьютер все равно будет считать, что это – буква "А":

11101100

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

Скрываем в изображении

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

hidden in image
Фотография-контейнер На этом фрагменте приводятся различные численные значения пикселей. Верхние два ряда скрывают слово "ОК" (с использованием LSB пикселей). Такая фотография получается в результате
Источник: "Книга шифров" ("The Code Book"), Саймон Сингх (Simon Singh)
Примечание: Стеганографические изображения можно выявить. Человеческий глаз это сделать не в состоянии, но компьютер, настроенный на проверку и поиск скрытых сообщений, может заметить маленькие изменения в цвете, которые появляются при манипуляциях с LSB. Вот почему многие эксперты в области безопасности ставят под сомнение практическую ценность использования стеганографии. Если следовать их советам, можно пользоваться вдобавок другими способами защиты данных, например, шифрованием. Некоторые программы не только скрывают ваши сообщения в изображения, но и шифруют их. Специалисту недостаточно "вытащить" скрытое сообщение из контейнера: придется вдобавок заняться расшифровкой.

Скрываем в звуковом файле

Стеганография работает и со звуковыми файлами. Возьмите, к примеру, формат MP3. Это способ сжать исходный аудиопоток и добиться гораздо более скромных размеров файла. Достичь этого можно, если убрать некоторые частоты, которые не воспринимает человеческое ухо: ведь наш слух "настроен" на восприятие звуков определенного частотного диапазона. В мире гораздо больше звуков, чем слышим мы. Если убрать "лишние" звуки, наши уши не заметят разницы. Этот принцип лежит в основе формата MP3. Аудиостеганография скрывает сообщение в области частот, не воспринимаемых человеческим ухом. На слух результат ничуть не отличается от оригинала по качеству звучания.

Вот частотная диаграмма звукового фрагмента:

hidden in audio

Тот же фрагмент, но со скрытым сообщением:

hidden in audio
Источник: Гэри Кесслер (Gary C. Kessler), "Стеганография для судебного эксперта по компьютерам" ("An Overview of Steganography for the Computer Forensics Examiner").

Если сравнить эти диаграммы, можно заметить разницу, но на слух это сделать гораздо труднее.

Скрываем в тексте

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

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

Существует порядка сотни разных стеганографических программ, которые обрабатывают тексты, звуковые файлы, изображения. У каждой свой собственный метод сокрытия вашего сообщения в контейнере. Одни из наиболее известных – jphide и jpseek (http://linux01.gwdg.de/~alatham/stego.html), mp3stego (http://www.petitcolas.net/fabien/steganography/mp3stego/), а также коммерческий продукт Steganos Security suite (http://www.steganos.com). Много программ представлено на этом сайте: http://www.stegoarchive.com/.

diagram

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

Стеганоанализ

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

После событий 11 сентября 2001 года в прессе появились статьи, где говорилось об использовании стеганографии террористами из "Аль-Каеды". Как следствие, возник вопрос, сколько же вообще стеганографических изображений находится в Интернете. Авторы одного из известных исследований на эту тему использовали программу stegdetect для проверки более трех миллионов изображений в формате JPEG из архивов eBay и USENET. Программа посчитала подозрительными лишь 1-2% изображений. Они были подвергуты обработке с помощью программы stegbreak, но ни одного скрытого сообщения извлечь не удалось. В другом исследовании (там тоже использовались программы stegdetect и stegbreak) проверялись несколько сотен тысяч изображений с веб-сайтов (по случайной выборке). Результаты были похожими.1

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

security circle

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

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