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


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

Комментарии
Гость (02/03/2013 05:35)   
Последнее время стеганография вызывала всё больше скепсиса, об этом подробнее было упомянуто в /comment39000[link1] и /comment2353[link2]. Более слабый аналог стеганографии, цензурозащищённость, находится примерно в той же ситуации[link3]. Гугление стеганография site:pgpru.com даст вам массу постов, перечитайте их все. Здесь высказывались идеи о стегоОС, был проект stegFS; гуглите тему, если интересно.
— ressa (02/03/2013 11:22)   
Мой личный вывод из этого – пока стеганография еще не достигла той степени совершенства, как криптография и рассчитывать на нее, как на альтернативу "критическому паролю" не стоит.

Но это unknown писал в 2004м, мб сейчас ситуация поменялась.
А так да – погуглю, спасибо.
— unknown (02/03/2013 19:13)   
В общем "сферическом" виде считается, что какие-то фундаментальные основы стеганографии доказаны. Но ни одного практически доверяемого решения, за которым бы стояла качественная разработка, неизвестно.


…бит. Куда уж там на целый байт замахиваться. Это самый тривиальный и нестойкий метод. Подозреваю, что почти во всех реализациях, по большей части любительских, явно переоценён теоретический порог количества встраиваемой информации, что позволяет легко детектировать такие стего. В некоторых таких поделках вообще не учитывалось, что младший бит скоррелирован со старшими. С другими методами возможно также сплошные фейлы. А какие на самом деле можно считать обоснованно стойкими — не в курсе. Количество публикаций немного растёт, разрабатываются методы моделирования стегопротоколов, но это всё на уровне теории.
— ressa (02/03/2013 19:43)   
unknown, т.е. ты лично не практикуешь подобное, и пока на стегано особо полагаться не нужно да?
Скажи свое мнение, а я опираться уже буду на него. Просто мне бы в некоторых моментах очень даже пригодилась стеганография.
— unknown (02/03/2013 20:08)   

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

Есть ряд публикаций и по широковещательному стего, совмещению стего с анонимностью и по созданию изолированных групп пользователей в стегоканале. Но пока это всё красивые теории. Годных реализаций не знаю, может они и есть.

Пока наблюдается стандартная ситуация: ни у одной серьёзной теоретической разработки нет програмной реализации ("сферический конь в вакууме"); ни у одной програмной реализации нет за собой серьёзной теоретической разработки ("поделки").
— ressa (02/03/2013 21:29)   
Понял, спасибо за прояснение.
Гость (04/03/2013 03:26)   
Multi-Class Classification Fusion using Boosting for Identifying
Steganography Methods

http://144.206.159.178/ft/CONF/16415375/16415381.pdf

Advances in digital forensics IV

http://books.google.ru/books?id=2vQEMLb1drMC
— unknown (20/03/2013 16:33, исправлен 20/03/2013 16:47)   

То, чего так жаждали многие, осуществилось и было опробовано в лаб. условиях:StegTorrent: a Steganographic Method for the P2P File Sharing Service[link4].
Скорость 270 бит/сек.


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


Как одному получателю незаметно рулить множеством айпишников и незаметно объединять от них данные в один канал неразъяснено. Так же как и неясен сценарий использования: это только для связи вида индивидуальный скрытый агент-отправительконтролирующая множество сетевых ресурсов на нейтральной стороне организация или как? Хотя авторы и говорят о возможности двусторонней связи, но сценарии использования также неразъяснены. Подозреваю, что они пока непрактичны.


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

Гость (20/03/2013 19:00)   
непривлекающий внимания протокол

ЛОЛ бля!))) Выпускайте Кешу!
Гость (20/03/2013 22:56)   
Скорость 270 бит/сек.

Интересно. Думаю, для передачи чисто текстовых сообщений по стегоканалу это не так много.
Гость (21/03/2013 05:02)   
s/не так много/не так мало/
Гость (11/10/2013 13:26)   
Существует утилита steghide, позволяющая встраивать небольшие файлы в jpg-контейнеры. Наткнулся на проблему, описанную здесь: http://www.google.com.ua/url?s.....vm=bv.53899372,d.bGE[link5]
Используемая библиотека libjpg встраивает в заголовок jpg-контейнера свою строку. Эта же библиотека используется в gimp, так что однозначно интерпретировать такой заголовок на наличие стеганографии нельзя, но все же от этого лучше избавиться. Кто может из людей, знающих C, выпилить этот заголовок из libjpg и собрать steghide, насколько я себе представляю – это не должно быть сложно, если проект нормально собирается из исходников.
Гость (11/10/2013 13:37)   
Что вы думаете о текстовой стеганографии? Если когда-нибудь запретят использование шифрования, то можно будет маскировать зашифрованный трафик таким способом. Для этого можно использовать цепи Маркова, они же триграммы. При построении предложений использовать ключевые слова из ассоциативного массива, в котором каждому символу алфавита зашифрованного текста (base64, hex, bytes-dec) соответствовал бы свой список уникальных ключевых слов, которые выбирались бы рандомно. В итоге на выходе был бы текст, содержащий ключевые слова, проанализировав которые можно было бы восстановить исходный зашифрованный текст, а затем его уже расшифровать. Подозреваю, что понадобиться какой-то морфологический анализатор, способный ставить слова в нормальную форму. Ну и как насчет объемов выходного текста? На одно предложение одно ключевое слово – слишком расточительно, нужно как-то впихивать больше и соблюдать последовательность. Конечная цель – предотвратить машинное определение зашифрованного текста в переписке.
— unknown (11/10/2013 14:05, исправлен 11/10/2013 14:05)   

Лингвистическая стеганография становится более стойкой[link6].

Гость (11/10/2013 16:25)   
unknown, спасибо за ссылку.
Привиденный по ссылке метод полу-автоматический. Требует ручной правки текстов. Синонимы нельзя подобрать для каждого слова в предложении, иначе оно будет подозрительным. Я подозреваю, что максимум в тексте может быть 25-30% синонимов. Если передавать так сообщение побитово, то это по-прежнему малоинформативно. Подозреваю, что это ограничение не обойти. Разве что кодировать предварительно открытый текст по какой-то таблице, где какому-то факту/предложению/словосочетанию будет соответствовать короткий цифровой код – тогда шифротекст будет коротким и его можно эффективно спрятать в стего-тексте.
На мой взгляд, гораздо актуальнее проблема защиты от машинного определения, чем от ручного. С развитием технологий, ручной анализ будет применяться даже большими корпорациями и правительствами лишь в редких случаях.
— unknown (11/10/2013 17:05, исправлен 11/10/2013 17:06)   

Это не претендует на стойкость, но масса прототипов существует, вот например онлайновая версия: http://spammimic.com/encodepw.shtml

This is weak encryption – it's better than no encryption at all but not much. Not recommended for secret agents or even corporate spies.

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

— unknown (12/09/2014 13:36, исправлен 13/09/2014 01:35)   

Перенесённые обсуждения из другой темы[link7]:
2 ressa: в следующий раз не злоупотребляйте временем модеров и не плодите оффтопика в обсуждениях разных тем, перенос коментов и приведение их в надлежащий вид отнимает много времени.



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


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


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

— ressa (12/09/2014 14:06)   
unknown, то есть, как вариант – можно добавить в скрипт head -c 8192 /dev/urandom | openssl enc -base64, после чего сделать скриншот выдачи консоли и в него уже вкрячивать стего. Правильно я мыслю?
— unknown (12/09/2014 22:40, исправлен 13/09/2014 01:28)   

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

— ressa (12/09/2014 23:56, исправлен 12/09/2014 23:57)   

unknown


А почему? Ну то есть, если я как раз таки возьму рандомную картинку с Википедии, как делает тот же darkjpeg[link8] – то такую фото с встроенным стегоконтейнером, как я полагаю, очень легко сверить с оригиналом – по содержимому, например. Гугл же как-то ищет "по картинкам". А если я как раз сделаю с псевдослучайными данными из OpenSSL – как найти ее оригинал? Или как, собственно понять, что внутри стегоконтейнер? Объясни пожалуйста, я видимо, вообще не понял ход твоей мысли.

— unknown (13/09/2014 01:21)   
Для начала: стегоконтейнер — это исходный файл (например, фото), куда встраивают стегосообщение. Стегоконтейнер существует соответственно в двух состояниях: пустой — до встраивания стегосообщения и до какой-то степени заполненный — после встраивания стего.


Потому что поиск оригинала (стегоконтейнера в исходном незаполненном состоянии) — это самая тривиальная атака. Но есть менее тривиальные, но также недалеко уходящие от тривиальных — реконструкция контейнера.

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

Теперь надеюсь понятно, почему компьютерная графика не подходит? Она предсказуема, даже если используется какое-то сглаживание с шумами (шумы тоже, как правило, предсказуемые). Будет одно из двух: или можно восстановить исходное изображение, а по нему стего, вплоть до возможности извлечения; или сделать заключение, что картинка искусственная, но слишком аккуратно зашумлена, значит в ней какое-то стего есть.

Скриншот консоли скорее позволяет первое: буквы шрифта и фоновое изображение детерминированы. Это как на видео и фотосюжетах иногда размывают квадратиками лица участников и некоторые другие фрагменты изображения в сюжете, которые надо скрыть. Если лицо из квадратиков восстановить сложно (хотя можно, проанализировав несколько разных кадров), то размытый квадратиками номер автомобиля или адрес сайта можно восстановить по одному кадру или фото: шрифт детерминирован. Скриншот консоли восстанавливаем до оригинала практически полностью, что позволяет выявить факт внедрения стего, а в некотором случае и восстановить стего, или определить каким алгоритмом (и возможно, конкретной программой), оно внедрялось.
Гость (13/09/2014 02:22)   
тхт файл с шифротекстом закрытый в zip. наверно уже не должен привлекать внимание (?).
— unknown (13/09/2014 12:37)   

В этой теме начинают путать стего и обфускацию, которая возникла в в другой[link10] ветке и, возможно, заслуживает отдельной темы, например «обфускация pgp-сообщений для переписки». Я бы мог изложить какие-то соображения и по этому поводу, но не в теме стего и не в теме про почту, иначе, если кто-то будет перечитывать форум, не вникнув в начальный контекст обсуждения, у него будет каша в голове: будет непонятно — где стего, где обфускация, чем они отличаются, где между ними проходит граница, в каких случаях можно было бы считать целесообразным то или другое.
Гость (13/09/2014 14:53)   

Пожалуйста, если возникнет возможность, изложите Ваши соображения.
— unknown (15/09/2014 14:55, исправлен 15/09/2014 15:09)   

Изложил[link11]. А текущую тему перенёс из раздела Unixlike в раздел «практическая безопасность». Попытка разузнать набор конретного софта «под Linux» в запросе темы от топикстартера здесь совершенно бесполезна, пока нет понимания ни теории, ни практических ограничений использования, что стего, что обфускации. Т.к. стего имеет массу проблем и с теорией, и с практикой, которые можно продолжить обсуждать здесь. А авторы (большей?) части стегопрограмм, похоже, не понимают даже элементарных основ стегоанализа. Потому что они шифрстегопанки ;-)

— SATtva (15/09/2014 14:57)   

Прочиталось как "стегогопники".
— unknown (15/09/2014 15:11)   

Слыш, пацан! стего в мыле есть? а если найду?

Ссылки
[link1] https://www.pgpru.com/comment39000

[link2] https://www.pgpru.com/comment2353

[link3] https://www.pgpru.com/comment56501

[link4] http://arxiv.org/abs/1303.4264

[link5] http://www.google.com.ua/url?sa=t&rct=j&q=&esrc=s&frm=1&source=web&cd=7&cad=rja&ved=0CFsQFjAG&url=http://marisafag.wordpress.com/2012/08/19/%D1%81%D1%82%D0%B5%D0%B3%D0%B0%D0%BD%D0%BE%D0%B3%D1%80%D0%B0%D1%84%D0%B8%D1%8F-%D0%B8-%D0%BE%D0%BF%D0%B0%D1%81%D0%BD%D0%BE%D1%81%D1%82%D1%8C-%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2/&ei=GsRXUv2nMcjFtAaj2IHgDg&usg=AFQjCNEVbzKHUMkoFXo7oPjNniqrmOY40Q&bvm=bv.53899372,d.bGE

[link6] https://www.pgpru.com/novosti/2007/lingvisticheskajasteganografijastanovitsjastojjkojj

[link7] https://www.pgpru.com/comment83441

[link8] https://github.com/yndi/darkjpeg

[link9] https://www.pgpru.com/comment83465

[link10] https://www.pgpru.com/comment83440

[link11] https://www.pgpru.com/forum/prakticheskajabezopasnostj/obfuskacijapgpsoobschenijj