Стеганография
Прошу подсказать по стеганографическому софту, ориентированному на Linux.
Если можно – с личными комментариями по юзабилити. Интересует комбинированные решения, способные использовать помимо младших байт так же метод расширенного спектра.
Unknown, ты как гуру криптографии, подскажи пожалуйста, какова надежность и криптостойкость использования метода расширенного спектра, какой более надежный ну и криптостойкий. Я полагаю, что именно метод расширенного спектра удобен в плане надежности, но вот мне интересно – как у него дела на счет детекта и атак (например по математической модели встраиваемого в него контейнера)
Если кто проводил эксперименты или имел опыт с изучением стеганографии – прошу присоединиться.
Интересующие ключевые моменты: надежность, криптостойкость, минимальный факт детекта наличия стегано(вообще вопрос по детекции в целом), ориентированный на Linux софт.
Ссылки
[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
Последнее время стеганография вызывала всё больше скепсиса, об этом подробнее было упомянуто в /comment39000[link1] и /comment2353[link2]. Более слабый аналог стеганографии, цензурозащищённость, находится примерно в той же ситуации[link3]. Гугление стеганография site:pgpru.com даст вам массу постов, перечитайте их все. Здесь высказывались идеи о стегоОС, был проект stegFS; гуглите тему, если интересно.
Но это unknown писал в 2004м, мб сейчас ситуация поменялась.
А так да – погуглю, спасибо.
В общем "сферическом" виде считается, что какие-то фундаментальные основы стеганографии доказаны. Но ни одного практически доверяемого решения, за которым бы стояла качественная разработка, неизвестно.
…бит. Куда уж там на целый байт замахиваться. Это самый тривиальный и нестойкий метод. Подозреваю, что почти во всех реализациях, по большей части любительских, явно переоценён теоретический порог количества встраиваемой информации, что позволяет легко детектировать такие стего. В некоторых таких поделках вообще не учитывалось, что младший бит скоррелирован со старшими. С другими методами возможно также сплошные фейлы. А какие на самом деле можно считать обоснованно стойкими — не в курсе. Количество публикаций немного растёт, разрабатываются методы моделирования стегопротоколов, но это всё на уровне теории.
unknown, т.е. ты лично не практикуешь подобное, и пока на стегано особо полагаться не нужно да?
Скажи свое мнение, а я опираться уже буду на него. Просто мне бы в некоторых моментах очень даже пригодилась стеганография.
Даже если предположить, что кто-то был бы всегда прав в своих суждениях (примеры мировых авторитетов в предметной области, слажавших в своих оценках, скорее указывают на недостижимость такого идеала), просто можно действительно чего-то не знать, поскольку не было особого интереса или желания перелопачивать всю предметную область.
Есть ряд публикаций и по широковещательному стего, совмещению стего с анонимностью и по созданию изолированных групп пользователей в стегоканале. Но пока это всё красивые теории. Годных реализаций не знаю, может они и есть.
Пока наблюдается стандартная ситуация: ни у одной серьёзной теоретической разработки нет програмной реализации ("сферический конь в вакууме"); ни у одной програмной реализации нет за собой серьёзной теоретической разработки ("поделки").
Понял, спасибо за прояснение.
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
То, чего так жаждали многие, осуществилось и было опробовано в лаб. условиях:StegTorrent: a Steganographic Method for the P2P File Sharing Service[link4].
Скорость 270 бит/сек.
В местных новостях на главной скорее всего не будет, т.к. статья мутная в смысле, что протокол работает за счёт того, что стегторрент шлёт данные на группу разных IP-адресов обычных торрент-клиентов, которые сливают данные стего-битторент-получателю.
Как одному получателю незаметно рулить множеством айпишников и незаметно объединять от них данные в один канал неразъяснено. Так же как и неясен сценарий использования: это только для связи вида индивидуальный скрытый агент-отправитель → контролирующая множество сетевых ресурсов на нейтральной стороне организация или как? Хотя авторы и говорят о возможности двусторонней связи, но сценарии использования также неразъяснены. Подозреваю, что они пока непрактичны.
Но идея использовать самый массовый и непривлекающий внимания протокол для стего — перспективная. Тем более, что стего встраивается не в контент, а в сетевой уровень протокола (микрозадержки и перестановки в доставках пакетов на разные IP, с коррекцией кодов ошибок против наложения естественных задержек сети).
ЛОЛ бля!))) Выпускайте Кешу!
Интересно. Думаю, для передачи чисто текстовых сообщений по стегоканалу это не так много.
s/не так много/не так мало/
Существует утилита steghide, позволяющая встраивать небольшие файлы в jpg-контейнеры. Наткнулся на проблему, описанную здесь: http://www.google.com.ua/url?s.....vm=bv.53899372,d.bGE[link5]
Используемая библиотека libjpg встраивает в заголовок jpg-контейнера свою строку. Эта же библиотека используется в gimp, так что однозначно интерпретировать такой заголовок на наличие стеганографии нельзя, но все же от этого лучше избавиться. Кто может из людей, знающих C, выпилить этот заголовок из libjpg и собрать steghide, насколько я себе представляю – это не должно быть сложно, если проект нормально собирается из исходников.
Что вы думаете о текстовой стеганографии? Если когда-нибудь запретят использование шифрования, то можно будет маскировать зашифрованный трафик таким способом. Для этого можно использовать цепи Маркова, они же триграммы. При построении предложений использовать ключевые слова из ассоциативного массива, в котором каждому символу алфавита зашифрованного текста (base64, hex, bytes-dec) соответствовал бы свой список уникальных ключевых слов, которые выбирались бы рандомно. В итоге на выходе был бы текст, содержащий ключевые слова, проанализировав которые можно было бы восстановить исходный зашифрованный текст, а затем его уже расшифровать. Подозреваю, что понадобиться какой-то морфологический анализатор, способный ставить слова в нормальную форму. Ну и как насчет объемов выходного текста? На одно предложение одно ключевое слово – слишком расточительно, нужно как-то впихивать больше и соблюдать последовательность. Конечная цель – предотвратить машинное определение зашифрованного текста в переписке.
Лингвистическая стеганография становится более стойкой[link6].
unknown, спасибо за ссылку.
Привиденный по ссылке метод полу-автоматический. Требует ручной правки текстов. Синонимы нельзя подобрать для каждого слова в предложении, иначе оно будет подозрительным. Я подозреваю, что максимум в тексте может быть 25-30% синонимов. Если передавать так сообщение побитово, то это по-прежнему малоинформативно. Подозреваю, что это ограничение не обойти. Разве что кодировать предварительно открытый текст по какой-то таблице, где какому-то факту/предложению/словосочетанию будет соответствовать короткий цифровой код – тогда шифротекст будет коротким и его можно эффективно спрятать в стего-тексте.
На мой взгляд, гораздо актуальнее проблема защиты от машинного определения, чем от ручного. С развитием технологий, ручной анализ будет применяться даже большими корпорациями и правительствами лишь в редких случаях.
Это не претендует на стойкость, но масса прототипов существует, вот например онлайновая версия: http://spammimic.com/encodepw.shtml
Давно есть и программы такого рода, где якобы предлагаются претензии на больший уровень стойкости.
Перенесённые обсуждения из другой темы[link7]:
2 ressa: в следующий раз не злоупотребляйте временем модеров и не плодите оффтопика в обсуждениях разных тем, перенос коментов и приведение их в надлежащий вид отнимает много времени.
С т.з. стеганографии полностью исключается использование доступного противнику стегоконтейнера. Иначе о тонких нюансах теоретических доказательств стойкости речь вести совсем бесполезно.
Т.е., оригинал для стегоконтейнера должен быть создан самим пользователем, одноразово быть применён для вcтраивания стего, после чего исходный оригинал без стего должен быть уничтожен. В другом случае стего превращается в обфускацию.
Если совсем конкретно, то если сделать оригинальное фото или звукозапись, туда встроить стего, а оригинал без стего уничтожить, то только тогда можно уже переходить к рассмотрению теоретических нестойкостей по отношению к стегоанализу. Иначе противник просто путём поиска изображений найдёт оригинал картинки без стего в интернете, сравнит с вашим вариантом и может установить не только факт использования стего, но и в ряде случаев алгоритм его встраивания.
unknown, то есть, как вариант – можно добавить в скрипт head -c 8192 /dev/urandom | openssl enc -base64, после чего сделать скриншот выдачи консоли и в него уже вкрячивать стего. Правильно я мыслю?
Нет. Скриншоты также не годятся. Нужны изображения с естественными шумами, взятые с реальных фото или видео (компьютерная графика в общем случае также может не подойти).
unknown
А почему? Ну то есть, если я как раз таки возьму рандомную картинку с Википедии, как делает тот же darkjpeg[link8] – то такую фото с встроенным стегоконтейнером, как я полагаю, очень легко сверить с оригиналом – по содержимому, например. Гугл же как-то ищет "по картинкам". А если я как раз сделаю с псевдослучайными данными из OpenSSL – как найти ее оригинал? Или как, собственно понять, что внутри стегоконтейнер? Объясни пожалуйста, я видимо, вообще не понял ход твоей мысли.
Для начала: стегоконтейнер — это исходный файл (например, фото), куда встраивают стегосообщение. Стегоконтейнер существует соответственно в двух состояниях: пустой — до встраивания стегосообщения и до какой-то степени заполненный — после встраивания стего.
Потому что поиск оригинала (стегоконтейнера в исходном незаполненном состоянии) — это самая тривиальная атака. Но есть менее тривиальные, но также недалеко уходящие от тривиальных — реконструкция контейнера.
Представим идеальный контейнер для встраивания стего. Не с точки зрения его неприметности/подозрительности, а с т.з. информационной ёмкости. Логично предположить, что идеальным стегоконтейнером будет изначально полностью рэндомный файл. В случае фото это будет равномерный шум из точек всех оттенков. Самый плохой контейнер — это файл из одних нулевых байтов, там некуда встраивать информацию. В случае картинки — это чёрный квадрат Малевича, причём не сфотографированный на фотокамеру с шумами освещения и матрицы фотоаппарата, а сгенерированный компьютером файл из нулевого цвета.
Теперь надеюсь понятно, почему компьютерная графика не подходит? Она предсказуема, даже если используется какое-то сглаживание с шумами (шумы тоже, как правило, предсказуемые). Будет одно из двух: или можно восстановить исходное изображение, а по нему стего, вплоть до возможности извлечения; или сделать заключение, что картинка искусственная, но слишком аккуратно зашумлена, значит в ней какое-то стего есть.
Скриншот консоли скорее позволяет первое: буквы шрифта и фоновое изображение детерминированы. Это как на видео и фотосюжетах иногда размывают квадратиками лица участников и некоторые другие фрагменты изображения в сюжете, которые надо скрыть. Если лицо из квадратиков восстановить сложно (хотя можно, проанализировав несколько разных кадров), то размытый квадратиками номер автомобиля или адрес сайта можно восстановить по одному кадру или фото: шрифт детерминирован. Скриншот консоли восстанавливаем до оригинала практически полностью, что позволяет выявить факт внедрения стего, а в некотором случае и восстановить стего, или определить каким алгоритмом (и возможно, конкретной программой), оно внедрялось.
тхт файл с шифротекстом закрытый в zip. наверно уже не должен привлекать внимание (?).
В этой теме начинают путать стего и обфускацию, которая возникла в в другой[link10] ветке и, возможно, заслуживает отдельной темы, например «обфускация pgp-сообщений для переписки». Я бы мог изложить какие-то соображения и по этому поводу, но не в теме стего и не в теме про почту, иначе, если кто-то будет перечитывать форум, не вникнув в начальный контекст обсуждения, у него будет каша в голове: будет непонятно — где стего, где обфускация, чем они отличаются, где между ними проходит граница, в каких случаях можно было бы считать целесообразным то или другое.
Пожалуйста, если возникнет возможность, изложите Ваши соображения.
Изложил[link11]. А текущую тему перенёс из раздела Unixlike в раздел «практическая безопасность». Попытка разузнать набор конретного софта «под Linux» в запросе темы от топикстартера здесь совершенно бесполезна, пока нет понимания ни теории, ни практических ограничений использования, что стего, что обфускации. Т.к. стего имеет массу проблем и с теорией, и с практикой, которые можно продолжить обсуждать здесь. А авторы (большей?) части стегопрограмм, похоже, не понимают даже элементарных основ стегоанализа. Потому что они
шифрстегопанки ;-)шифрстегопанкиПрочиталось как "стегогопники".
Слыш, пацан! стего в мыле есть? а если найду?