Стеганография и с чем ее едят - Часть первая, вводная

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

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

Стеганография и с чем ее едят - Часть первая, вводная Стеганография, Иб, Информационная безопасность, Стеганография и с чем ее едят, Видео, Длиннопост

После привлечения внимания - по традиции начну с определений - потому что иногда среди читателей ИБ возникает путаница между шифрованием и стеганографией. Сразу уточню что это мое ИМХО и оно иногда расходится с чужим мнением.


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

В данном посте я кодирую свою речь в буквы, а компьютер тут - же буквы - в UTF-8, а сетевая карта - в манчестерское кодирование, вот так все сложно. Строго говоря шифрование и стеганография это тоже кодирование, просто довольно специфическое. Отличие между ними 1) - в результате кодирования в структурированных исходных данных после кодирования остается видимая структура. 2) - Если мы знаем алгоритм кодирования то любой человек способен получить данные до кодирования, то есть в общем случае не обеспечивается конфиденциальность информации. 3) Мы видим передачу и понимаем что это какой-то код.


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

Отличия от кодирования - современное шифрование на выходе почти полностью убирает структуру исходных данных, например в результате шифрования строка 11111111111 преобразится в F1E5367DB22 и так далее, то есть на выходе мы получаем набор данных очень похожих на случайную последовательность. Для того чтобы получить исходные данные нам нужен ключ, на основании которого вы можем сделать обратное преобразование и получить исходные. Без правильного ключа мы получим пусть и другую, но тоже псевдослучайную строку. Неочевидный вывод - если сгенерировать массив случайных данных а потом прогонять их через дешифровку AES-256 разными ключами рано или поздно мы получим все секретные документы США, главное подобрать нужный ключ)


Стеганография - (от греч. στεγανός — скрытый + γράφω — пишу; буквально «тайнопись») — способ передачи или хранения информации с учётом сохранения в тайне самого факта такой передачи (хранения).

Главная строка тут - с учётом сохранения в тайне самого факта такой передачи (хранения)

То есть мы можем не шифровать данные, но при этом не нужные нам люди не догадаются что данные даже есть в передаче которая только что произошла на их глазах.

Стеганография и с чем ее едят - Часть первая, вводная Стеганография, Иб, Информационная безопасность, Стеганография и с чем ее едят, Видео, Длиннопост

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


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


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


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


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


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


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


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

Информационная безопасность IT

1.4K постов25.5K подписчиков

Добавить пост

Правила сообщества

Обязательно к прочтению для авторов:

1. Если вы добавляете пост, утверждающий об утечке данных или наличии дыр в системе, предоставьте ссылку на источники или технически подкованное расследование. Посты из разряда "Какой-то банк слил данные, потому что мне звонили мошенники" будут выноситься в общую ленту.
2. Все вопросы "Как обезопасить сервер\приложение\устройство" - в лигу "Компьютер это просто".

Обязательно к прочтению для всех:

Добавление ссылки разрешено если она не содержит описание коммерческих (платных) продуктов и/или идентификаторов для отслеживания перехода и для доступа не нужен пароль или оплата в т.ч. интернет-ресурсы, каналы (от 3-х тематических видео), блоги, группы, сообщества, СМИ и т.д.


Запрещены политические holy wars.

По решению модератора или администратора сообщества пользователь будет забанен за:

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

2. Публикацию поста/комментария не соответствующего тематике сообщества, в том числе обсуждение администраторов и модераторов сообщества, для этого есть специальное сообщество.

3. За обвинение в киберпреступной деятельности.

4. За нарушение прочих Правил Пикабу.

Вы смотрите срез комментариев. Показать все
1
Автор поста оценил этот комментарий
При передачи зашифрованных данных стеганографическим методом необходимо делать контроль целостности, особенно для блочных шифров с сцеплением блоков. Если данные побьёт, то дешифровка будет проблематичной.
раскрыть ветку (11)
7
Автор поста оценил этот комментарий

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

раскрыть ветку (10)
Автор поста оценил этот комментарий
Да, согласен. Перекодировка повредит стеганографический контейнер, но величина повреждений зависит от используемого стеганографического алгоритма. Некоторые более подвержены к повреждению при перекодированию, другие же менее.
Читал я вот давно про один алгоритм, крайне высокая стойкость к повреждениям стеганографического контейнера, но вот записать можно лишь малый объем информации. Очень жаль...
раскрыть ветку (9)
Автор поста оценил этот комментарий
Ещё можно использовать несколько алгоритмов сразу или использовать разные типы алглритмов. Например с использование алгоритмов с ДКП хорошо реагирует на сжатие.
Да и цель может быть разной. Если стеганографические данные использовать как водяной знак, тогда хрупкость будет плюсом.
раскрыть ветку (4)
Автор поста оценил этот комментарий

Смотря какой... Если же водяной знак стоит как идентификатор записи отправленной в кинотеатр то наоборот данная метка должна обладать просто запредельной способностью переносить перекодировку.

раскрыть ветку (3)
Автор поста оценил этот комментарий
А вот если несколько алгоритмов. Мне кажется, что будет раздуваться контейнерный и это будет подозрительным фактом для анализирующего специалиста.
раскрыть ветку (2)
1
Автор поста оценил этот комментарий
Зависит еще и от типа алгоритмов. Если писать в младший бит каждого байта изображения или пробелы/стмволы использовать, тогжа да, будет заметно.
Очень много нюансов. И алгоритм,и соотношение контейнера и передачи и пр.
раскрыть ветку (1)
Автор поста оценил этот комментарий
Да, согласен. Для каждой цели и условий необходимо подбирать свой алгоритм.
1
Автор поста оценил этот комментарий

Ну тут ничего нового нет, это типичный trade-off. Хочешь устойчивости при повреждениях - изволь добавлять избыточные данные, от этого никуда не денешься.

раскрыть ветку (3)
Автор поста оценил этот комментарий
А это уже может быть вопрос криптографии и использования кодов с избыточностью. Наверное чистая стеганография как таковая без дополнительных улучшений шифровпнием и тому подобным не часто применяется ( лично моё мнение, не подкрепленное фактами)
раскрыть ветку (2)
Автор поста оценил этот комментарий
Действительно нечасто. Но допустимо при неустойчивом канале связи, когда нет возможности использовать блочные шифры с связанными блоками. Но в этой ситуации подходит потоковое шифрование.
Автор поста оценил этот комментарий

Да нет, применяется еще как, иначе бы не было бы программ класса Stegdetect. Тут уж кто во что горазд, стеганография лишь один из методов, применять только этот метод или вместе с другими лежит уже на пользователе/программисте.

Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку