стеганография. Повідомлення бо не знає про факт його існування. Якщо криптографія приховує зміст повідомлення, то стеганографія приховує сам факт існування повідомлення. Стеганографию обычно используют совместно с методами криптографии, таким образом, дополняя её
Скачать 44.8 Kb.
|
СтеганографіяСтеганогра́фія — (з грец. στεγανός — прихований + γράφω — пишу) — тайнопис, при якому повідомлення, закодоване таким чином, що не виглядає як повідомлення — на відміну від криптографії. Таким чином непосвячена людина принципово не може розшифрувати повідомлення — бо не знає про факт його існування. Якщо криптографія приховує зміст повідомлення, то стеганографія приховує сам факт існування повідомлення. Стеганографию обычно используют совместно с методами криптографии, таким образом, дополняя её.
Комп'ютерна стеганографіяВ современной компьютерной стеганографии существует два основных типа файлов: сообщение — файл, который предназначен для скрытия, и контейнер — файл, который может быть использован для скрытия в нем сообщения. При этом контейнеры бывают двух типов. Контейнер-оригинал (или “Пустой” контейнер) — это контейнер, который не содержит скрытой информации. Контейнер-результат (или “Заполненный” контейнер) — это контейнер, который содержит скрытую информацию. Под ключом понимается секретный элемент, который определяет порядок (алгоритм) занесения сообщения в контейнер. Скрываемая информация называется стеганограммой или просто стего. Данные, среди которых она прячется, играют роль информационного контейнера, а потому так же и именуются. Комп'ютерна стеганографія базується на двох принципах. По-перше, аудіо- і відеофайли, а також файли з оцифрованими зображеннями можна деякою мірою змінити без втрати функціональності. По-друге, можливості людини розрізняти дрібні зміни кольору або звуку обмежені. Методи стеганографії дають можливість замінити несуттєві частки даних на конфіденційну інформацію. Сімейна цифрова фотографія може містити комерційну інформацію, а файл із записом сонати Гайдна — приватний лист. Цифрова стеганографія — напрям класичної стеганографії, заснований на захованні або впровадженні додаткової інформації в цифрові об'єкти, викликаючи при цьому деякі спотворення цих об'єктів. Але, як правило, дані об'єкти є мультимедіа-об'єктами (зображення, відео, аудіо, текстури 3D-об'єктів) та внесення спотворень, які знаходяться нижче межі чутливості середньостатистичної людини, не призводить до помітних змін цих об'єктів. Приклади — стеганографічна файлова система StegFS для Linux, приховування даних в невикористовуваних областях форматів файлів, підміна символів в назвах файлів, текстова стеганографія і т. д. Таблица 1. Сравнительные характеристики стеганографических методов
Але найчастіше стеганографія використовується для створення цифрових водяних знаків. На відміну від звичайних їх можна нанести і відшукати тільки за допомогою спеціального програмного забезпечення — цифрові водяні знаки записуються як псевдовипадкові послідовності шумових сигналів, згенерованих на основі секретних ключів. Такі знаки можуть забезпечити автентичність або недоторканість документа, ідентифікувати автора або власника, перевірити права дистриб'ютора або користувача, навіть якщо файл був оброблений або спотворений. АлгоритмиІснуючі алгоритми вбудовування таємної інформації можна поділити на декілька підгруп:
LSB (Least Significant Bit, найменший значущий біт) — суть цього методу полягає в заміні останніх значущих бітів у контейнері (зображення[6], аудіо[7] або відеозапису) на біти приховуваного повідомлення. Різниця між порожнім і заповненим контейнерами повинна бути не відчутна для органів сприйняття людини. Наиболее часто для сокрытия инфы используются графические файлы. Существует множество разных по своей сложности методов сокрытия, но наиболее простым является так называемый метод битовых плоскостей. Суть его заключается в следующем. Как известно, любое изображение представляет собой совокупность точек. Каждая точка цветного изображения кодируется комбинацией из 3-х байт, задающих уровень красного (R), зелёного (G) и голубого цветов (B) — RGB. Если в этой комбинации изменить самый последний бит, или пару — тройку битов, цвет хоть и получится отличным от исходного, но настолько незначительно, что даже самый острый глаз не заметит никакой разницы. Это и используется для того, чтобы путём изменения битов точек встроить в изображение любые данные, которые предварительно ещё и шифруются, после чего можно спокойно передавать такую картинку (стегофайл), не представляющую никакой ценности для ФСБ, ЦРУ, M6, Моссада (нужное подчеркнуть) через открытый канал. Cтегофайл нельзя обрабатывать в графическом редакторе как картинку, иначе скрытая информация может быть разрушена. С осторожностью их надо загружать на файловые хостинги, поскольку они тоже при загрузке могут обрабатывать изображения. Підвиди LSB-алгоритмів для растрових зображень без палітриBlindHide (приховування наосліп). Найпростіший алгоритм: дані записують, починаючи з верхнього лівого кута зображення до правого нижнього — піксел за пікселем. Приховані дані програма записує у наймолодших бітах кольорів пікселя. Приховані дані розподіляються у контейнері нерівномірно. Якщо приховані дані не заповнять повністю контейнер, то лише верхня частина зображення буде засміченою. HideSeek (заховати-знайти). Цей алгоритм у псевдовипадковий спосіб розподіляє приховане повідомлення у контейнері. Для генерації випадкової послідовності використовує пароль. FilterFirst (попередня фільтрація). Виконує фільтрацію зображення-контейнера — пошук пікселів, у які записуватиметься прихована інформація (для яких зміна наймолодших розрядів буде найменш помітною для ока людини). BattleSteg (стеганографія морської битви). Найскладніший і найдосконаліший алгоритм. Спочатку виконує фільтрацію зображення-контейнера, після чого прихована інформація записується у «найкращі місця» контейнера у псевдовипадковий спосіб (подібно, як у HideSeek). Очень распространены 2 следующих формата: rar и jpeg. В первом хранятся заархивированные данные. Второй используется для хранения данных, сжатых по алгоритму сжатия изображений jpeg. Если внимательно приглядеться к их внутреннему устройству (я не буду здесь приводить точную спецификацию), то можно заметить, что в самое начало файла можно вставить практически любую информацию – она будет игнорироваться программами-архиваторами (winrar, к примеру) – так как они пропускают все до тех пор, пока не натолкнутся на определенную метку. То есть если сообщение не содержит такой метки в качестве какой-либо своей подпоследовательности, то коллизий не возникнет. Ну, а формат jpeg предусматривает хранение длины файла, и из-за этого программы для просмотра изображений игнорируют какое-либо сообщение, вставленное в конец файла. В связи с этим представляется любопытным провести следующий эксперимент: Попробовать взять какое-нибудь изображения в формате jpeg и дописать в конец него rar-архив. Мы увидим, что все действительно работает так, как нам хотелось бы – при просмотре файла, например с помощью ACDSee, нам открывается наше изображение. А при попытке его разархивировать – все тоже проходит гладко, и мы спокойно себе получаем наше сообщение. Естественно можно на архив наложить шифрование – и получить таким образом «спайку» возможностей криптографии и стеганографии. Ничего не подозревающий анонимус видит картинку, тот кто знает о скрытом содержимом, открывает архиватором. Такие стегоконтейнеры безразмерны, но при попытке засунуть слишком много такую конструкцию выдаст размер. Также существует множество скриптов для поиска. Представляется очевидным, что в компьютерах все конечно и дискретно. В связи с этим мы храним лишь отдельные части изображений/звуков/… В простейшем варианте (формат bmp = bitmap picture) изображение хранится как матрица (таблица) значений оттенков цвета для каждой точки хранимого изображения. Ну и, разумеется, он хранится не как длина его волны (вспоминаем немного физику), а как комбинация из трех оттенков (красного, зеленого и синего цветов - это называется схема смешения RGB) которые необходимо "смешать" для того чтоб получить наш исходный цвет. Таким образом, каждая из трех компонент (их еще называют каналами цвета), хранясь в одном байте, может принимать значения от 0 до 255 включительно. Особенность нашего зрения заключается в том, что мы достаточно терпимо относимся к незначительным колебаниям цвета. Это значит, что мы не заметим разницы между цветами, соответствующими значениям, отстоящим друг от друга в пределах 3. Изменение каждого из трех наименее значимых бит (в трех каналах соответственно) приводит к изменению менее чем на 1% интенсивности данной точки. А это, в свою очередь означает, что наименее значащий бит мы можем изменять по своему усмотрению. Это называется принцип "наименее значащих битов" = Least Significant Bits. Если отбросить в расчетах, обычно незначительную относительно размера изображения, служебную информацию в начале файла, то получаем следующую картину. Мы имеем возможность дополнительно хранить сообщение размером в 1/8 размера контейнера ("размазанную" по последним битам в каждом байте матрицы цветов пикселей) или же размером в 1/4 контейнера (соответственно при использовании 2 последних битов в байтах). Но недостатки данного способа в том, что такое склеивание можно легко заметить. К примеру если картинка имеет размер 200х200 и при этом весит 2 мегабайта, то тут же возникают подозрения. К тому же все форматы (контейнеры) обычно имеют четкую структуру и если вдруг в файле имеется какая то избыточная информация, то это легко обнаружить. Аудио: Например, можно замещать наименее значащие биты контейнера битами встраиваемого сообщения. Так же можно строить стегосистемы, основанные на особенностях системы слуха человека и на особенностях самих аудиосигналов. По своей сути система слуха человека – это анализатор частотного спектра, который воспринимает сигналы в диапазоне 10 – 20000 Гц. Систему слуха человека можно смоделировать, как 26 пропускающих фильтров, полоса пропускания, которых увеличивается с увеличением частоты. Изменение фазы сигнала улавливается системой человеческого слуха слабее, чем изменение амплитуды или частоты. Следовательно, существуют три способа встраивания информации в аудиосигналы:
Эхо-методы применяются в цифровой аудиостеганографии и используют неравномерные промежутки между эхо-сигналами для кодирования последовательности значений. При наложении ряда ограничений соблюдается условие незаметности для человеческого восприятия. Эхо характеризуется тремя параметрами: начальной амплитудой, степенью затухания, задержкой. При достижении некоего порога между сигналом и эхом они смешиваются. В этой точке человеческое ухо не может уже отличить эти два сигнала. Наличие этой точки сложно определить, и она зависит от качества исходной записи, слушателя. Чаще всего используется задержка около 1/1000, что вполне приемлемо для большинства записей и слушателей. Для обозначения логического нуля и единицы используется две различных задержки. Они обе должны быть меньше, чем порог чувствительности уха слушателя к получаемому эху. Программы для стеганографии в JPEG Более серьезным иструментом является OpenPuff, который имеет возможность работать с разными форматами контейнеров и позволяет использовать несколько ключей. SecurEngine, которая прячет сообщение в большом текстовом файле и напоследок познакомимся с программкой, которая скрывает файлы в MP3 формате – так называемая - MP3Stego. Сейчас наиболее распространены четыре программы стеганографии, работающие под управлениемWindows:
Принцип работы стеганографии (на примере программы JSteg). Для демонстрации работы стеганографического алгоритма рассмотрим подробнее программу JSteg. Сначала программа JSteg преобразует скрываемый файл в байтовую последовательность очень простым способом. Он добавляет имя скрываемого файла (если вы выбрали эту опцию) в начало. Затем, после имени скрытого файла, он добавляет байт с длиной названия файла. И, наконец, в конце в качестве подписи, добавляется строка korejwa (имя автора). Скрываемая информации имеет следующий формат (взято из файла README, и немного упрощенно):
где область: А – длиной в 5 бит. Он выражает длину (в битах) поля B; B – некоторое количество бит, определенное значением, содержащимся в области А. Количество битов может варьироваться в диапазоне от 0 до 31. Он выражает длину (в байтах) скрываемого сообщения; С – содержит само скрываемое сообщение. Для анализа работы программы JSteg скроем информацию в изображении обложки "Планета историй", сборника научно фантастических рассказов. Это небольшое JPEG изображение, размером 15 Kb. На рисунке приведены изображения до и после сокрытия информации. Изображение слева не содержит никаких скрытых сообщений. Внутри правого изображения , скрыто стихотворение "If ", Редьярда Киплинга, на английском языке, размером 1,5 Kb: Цветом обозначены области формата данных JSteg, описанные выше: красный цвет для поля "А" - первого 5 битного блока, содержащего размер следующего поля размера; зеленый для блока "B", содержащий размер данных, и синий для поля "С", в котором находятся скрытые данные. Важно помнить, что если байт равен 0 или 1, он не принимаются во внимание..
Далее декодируем приведенный в таблице первый блок размером 8x8 вручную, чтобы понять, как работает алгоритм сокрытия данных. В результате: Поле А: всегда содержит 5 бит для декодирования. Из таблицы 5 видно , что это число равное 00 01 00 01 01 или 01011 в двоичной системе счисления или 11 в десятичной системе счисления. Это размер следующего поля, содержащего размер скрытых данных. Поле В: 11 бит для декодирования: 01 01 00 00 00 00 01 00 00 00 01 или 11000010001 в двоичной или 1553 в десятичной системе. Это точный размер скрываемого стихотворения. Поле C: 1553 x 8 бит для декодирования, начиная с: 00 01 00 00 01 00 00 01 или 01001001 в двоичном или 73 в десятичной системе, что в соответствии с таблицей ASCII является буквой «I» в верхнем регистре, и соответствует первой букве скрытого стихотворения. Атаки на стегосистемы Под атакой на стегосистему понимается попытка обнаружить, извлечь, изменить скрытое стеганографическое сообщение. Такие атаки называются стегоанализом по аналогии с криптоанализом для криптографии. Способность стеганографической системы противостоять атакам называется стеганографической стойкостью. Наиболее простая атака — субъективная. Внимательно рассматривается изображение, прослушивается звукозапись в попытках найти признаки существования в нём скрытого сообщения. Такая атака имеет успех лишь для совсем незащищенных стегосистем. Обычно это первый этап при вскрытии стегосистемы. Выделяются следующие типы атак.[9] Атака по известному заполненному контейнеру — у взломщика имеется одно или несколько стего. В случае нескольких стего считается, что запись скрытой информации проводилось отправителем одинаковым способом. Задача взломщика заключается в обнаружении факта наличия стегоканала, а также доступа к нему или определения ключа. Имея ключ, можно раскрыть другие стегосообщения. Атака по известной математической модели контейнера — взломщик определяет отличие подозрительного послания от известной ему модели Атака на основе известного пустого контейнера — если злоумышленнику известен пустой контейнер, то сравнивая его с предполагаемым стего можно установить наличие стегоканала. |