[МУЗЫКА] Теперь, рассмотрев основные понятия
стеганографической защиты информации, определив возможные виды угроз,
нарушителей и атак, давайте поговорим о современной стеганографии,
о ее проявлении в компьютерных системах, в цифровом мире.
Наряду с так называемой классической стеганографией часто
выделяют еще два отдельных направления,
которые как бы ответвляются от основного ствола стеганографии, как ветви от дерева.
Это компьютерная стеганография — это такое направление в стеганографии,
основанное на том, что в качестве контейнера используются различные элементы
и особенности системного программного обеспечения вычислительной техники,
как правило, какие-то структуры операционной или файловой системы,
связанные с хранением файлов, с их размещением на диске, возможно,
доступ к дисковому пространству на низком уровне или какие-то особенности,
специально созданные для этого, операционной системы.
Я имею в виду, специально созданные для того,
чтобы сохранять информацию в скрытом от, допустим, ряда пользователей, виде.
Другая ветвь — это так называемая цифровая стеганография — направление в
стеганографии, основанное на использовании в качестве контейнера различных
цифровых объектов, чаще всего, файлов или сетевых пакетов.
Большинство из них имеют какие-то служебные структуры и пользовательские
данные.
Иногда в служебных структурах есть такие разделы, которые не проверяются
при стандартной обработке, их можно использовать для записи данных.
Ну а, как мы увидим далее, особенно в мультимедиа-файлах, в различных
структурах пользовательских данных можно внести небольшие изменения так,
что для пользователя это не будет заметно или будет практически
незаметно и не повлияет на его взаимодействие с информацией.
Именно на этом цифровая стеганография и основывается.
В качестве популярных типов цифровых контейнеров можно называть следующие
категории файлов: это текстовые файлы, графические файлы и звуковые файлы.
Разумеется, перечень цифровых контейнеров ими не исчерпывается,
но именно вот эти можно выделить как популярные.
Их выбор, возможно, основывается именно на том, что они содержат
пользовательскую информацию, которую можно несколько изменить таким образом,
чтобы это изменение казалось еще недостаточным для того,
чтобы быть воспринятым человеческими органами чувств, но достаточным для того,
чтобы быть воспринятым обрабатывающей программой.
В текстовых файлах, например, могут содержаться буквы — а мы глазом не
различаем буквы разных алфавитов, совпадающие по начертанию,
их коды символов, разумеется, различны, но при прочтении это не видно.
В графических файлах содержится некая информация о цвете тех или иных
изображений; если чуть-чуть изменить цвет, то на глаз это, возможно, будет незаметно,
но, опять же, обрабатывающая программа немедленно увидит отклонение даже в самом
минимальном разряде значения какого-то из трех цветов, составляющих,
например, код цвета в палитре RGB.
А в звуковых файлах содержится различная информация о частотах
и амплитудах звука, соответственно, опять же, ее можно немного изменить так,
чтобы ухом это было не слышно, а программа,
которая с этим файлом будет работать, немедленно бы это заметила.
Например, для текстовых файлов употребляются следующие алгоритмы.
Они достаточно просты и очевидны, теперь, когда они описаны в литературе широко, но,
тем не менее, возможно, они еще встречаются, и их полезно знать для того,
чтобы, например, настраивая систему предотвращения утечки информации,
на всякий случай проверять, не используются ли подобные методики.
Первый алгоритм — это использование синонимических пар,
то есть такой алгоритм, когда оба абонента договариваются о каких-то парах слов,
которые означают приблизительно одно и то же.
Например, начальник и руководитель, договор и контракт,
предприятие и организация.
И используют их таким образом,
чтобы каждое из этих слов кодировало либо 0, либо 1.
Тогда, используя эти слова в тексте, можно закодировать некое двоичное сообщение.
Разумеется, потребуется очень большой текст-контейнер для того,
чтобы какую-то осмысленную информацию передать, но нельзя исключать,
что у абонентов такая информация будет иметься.
Следующий алгоритм,
или способ — это использование букв с одинаковым начертанием.
Он получше с точки зрения того,
сколько полезной информации можно упаковать в контейнер, но, в общем-то,
очень легко обнаруживается любыми программными средствами.
Не представляет какого-то труда для нарушителя его опознать, но, тем не менее,
рассчитывая, что нарушитель вовсе не предполагает скрытую передачу информации,
нельзя исключать, что злоумышленники будут ее использовать, эту методику.
А следующая методика заключается в использовании числа пробелов между
словами или в строке — очень похоже на предыдущую.
Здесь расстояние между словами или строками кодирует единицы и нули.
Например, общее число пробелов в строке проверяется на четность, если
оно четное — то оно кодирует ноль, если оно нечетное — то оно кодирует единицу.
Тогда каждая строка кодирует один бит сообщения.
Еще одна методика — это использование различного порядка специальных символов,
символы конца строки и перевода каретки.
В некоторых случаях их можно поменять местами, не приведя к тому,
что файл перестанет открываться.
Если это так, пользователи могут договориться о том,
какой порядок соответствует нулю, а какой — единице, и точно так же использовать
эти специальные символы для кодирования двоичных сообщений.
Практически все эти методы легко обнаруживаются программно,
но, опять же, для того, чтобы их таким образом обнаружить,
нужно принять решение о том, что, возможно, имеет место стеганографический
канал и требуется контроль над информацией, которая передается,
и канал рассматривается как потенциально стеганографический,
а передаваемые сообщения в нем — как потенциальные контейнеры.
После этого такие методы, как правило, легко устанавливаются.
Значительно более разнообразно множество методов,
применяемых для графических файлов.
Самым распространенным, но с различными модификациями,
является метод наименьших значащих битов.
И этот метод не только для графических файлов может применяться,
а вообще для многих файлов, содержащих пользовательскую информацию, в том случае,
если какие-то параметры отдельных квантов информации
описываются конечным количеством бит и можно сказать четко,
какой набор бит отвечает за либо компоненту цвета в графическом файле,
либо, например, за частоту звука, одного кванта звукового в звуковом файле.
Или за что-то, какой-то параметр в видеофайле.
Или в ином пользовательском файле,
возможно, какие-то мы оставляем здесь за пределами рассмотрения.
Главное, что требуется для работы этого метода — должен быть какой-то параметр,
который имеет огромное количество значений, и четко известно,
какой набор бит за него отвечает.
При этом эти биты должны считываться как целое число,
то есть должны быть сильно значащие биты и малозначащие.
В этом случае можно самые наименее значащие биты испортить
или использовать для кодирования, таким образом, чтобы изменение параметра,
которое они описывают, оказалось бы совсем-совсем незначительным.
В этом случае пользователь, просто просматривая картинку или
прослушивая звук, этого изменения не заметит, но программа,
которая считывает этот файл и знает, какие конкретно биты нужно считать,
может собрать из них двоичную последовательность.
Например, в графических файлах, не использующих сжатие,
использующих стандартную палитру RGB,
в примерно каждом из вот этих цветовых компонент для каждого пикселя
можно испортить один или два в зависимости от разрядности битов,
таким образом, что никаких заметных глазу артефактов при этом не появится.
Это дает пространство, в которое можно записывать секретное сообщение.
Кроме того, в графических файлах используются различные методики,
использующие для записи секретного сообщения различные служебные параметры.
Например, в файлах формата JPEG для двойных косинусных преобразований,
для их коэффициентов, существует методика,
позволяющая в эти коэффициенты встраивать скрытые сообщения.
Тогда эти изменения касаются всего файла в целом, но, опять же,
на основе формата, на основе его особенностей,
можно добиться того, что это не будет заметно пользователю.
Для звуковых файлов чаще всего применяют следующие методики.
Кодирование файлов с высокой потерей качества, так называемый, low-bit coding,
то есть в тех файлах, в которых появление каких-то дополнительных шумов и искажений
не будет выбиваться из общей статистической картины,
это будет привычное явление для пользователя.
Фазовое кодирование, эхо-методы так называемые и отдельное,
еще исследуемое направление — это искажение речи, незаметное для слушателя,
то есть именно голоса человека, из которого выделяется некий параметр,
который описывает практически однозначно голос человека.
Известно, что практически любого человека мы можем узнать по голосу.
Например, по телефону узнаем собеседника.
Вот некий параметр, отвечающий за однозначную идентификацию по голосу,
выделяется и немного портится.
То есть какие-то отдельные биты, его описывающие, портятся.
Слушатель это не воспринимает, но программа, которая будет этот
звуковой файл затем обрабатывать, может это искажение определить и,
таким образом, воспроизвести двоичную последовательность.
Кроме того, используется для звуковых файлов так называемое четное кодирование.
Оно основывается на том, что сигнал разбивается на отдельные
части и каждый бит секретного сообщения встраивается в четный бит отдельной части.
Данный метод обладает достаточно высокой надежностью среди других
методов встраивания информации в звуковые сообщения.
Метод фазового кодирования предполагает использовать слабую чувствительность
системы слуха человека к незначительным изменениям фазы сигнала.
Фаза начального сегмента аудиосигнала модифицируется в зависимости от того,
какое сообщение мы в него встраиваем.
А в дальнейшем фазы сегментов согласовываются с тем сегментом,
в который произведено встраивание, для сохранения разности фаз.
Данный метод один из наиболее эффективных по соотношению сигнал / шум, то есть по
тому, какой сигнал мы встроили и какой уровень помех при этом воспроизвели.
Более подробно данный метод описан на схемах, представленных сейчас на слайде.
Звуковой сигнал разделяется на мелкие сегменты,
создаются массивы фаз и амплитуд с помощью преобразования Фурье,
вычисляется разность фаз между соседними сегментами,
и двоичная последовательность представляется в виде единиц и нулей.
После этого создается новый массив фаз,
на основе обратного дискретного преобразования Фурье восстанавливается
звуковой сигнал, и таким образом эта схема используется.
Недостатком данной схемы является ее низкая пропускная способность
по сравнению с другими методами встраивания информации в звуковые файлы.
Эхо-методы, так называемые из-за того,
что они основаны на изменении параметров эха звукового сигнала,
являются самыми простыми, но при этом малоэффективными, поскольку,
как правило, они создают помехи, слышимые человеческим ухом.
В небольшом объеме их можно списать на какие-то единичные помехи, возможно,
повреждение носителя, если происходит воспроизведение файла непосредственно,
например, с компакт-диска, но такое происходит достаточно редко.
Как правило, пользователь имеет дело с цифровым файлом, записанным на носитель
своего компьютера или портативного устройства воспроизведения звука,
поэтому появление слышимых ухом помех, конечно же, нежелательно.
Но при этом такие методы наиболее просто реализуемы, эхо-методы.
Они основываются на том, что кодер использует два времени задержки,
одно для кодирования нуля, другое для кодирования единицы.
Исходный сигнал снова разделяется на небольшие участки, а каждый участок
рассматривается как отдельный сигнал, и в него внедряется один бит информации,
то есть происходит небольшая временная задержка — либо поменьше для нуля,
либо побольше для единички.
Затем блоки объединяются вместе, образуя окончательный входной сигнал.
Таким образом, ухом можно слышать небольшие задержки.
[МУЗЫКА]