Про стеганографию
Методы стеганографии
Мне нравится концепция стеганографии. Это когда сообщение так «вшитo» в ноcитель, что сторонний наблюдатель даже не знает о том, что тайное сообщение вообще есть.
Скажем, в картинке можно чуть-чуть поменять интенсивности пикселов так, чтобы глазом разница была не заметна, но вот эти маленькие колебания (младший бит) будут составлять отдельное сообщение: другую картинку или текст, число и вообще что угодно другое (если размер сообщения влезает в оболочку)
В тексте тоже несложно скрывать информацию о ничего не подозревающего читателя. Например, можно кодировать информацию числом пробелов и неразрывных пробелов (наивный читатель почти наверняка не заметит), можно заменять буквы «о» и «с» на их латинские аналоги: в большинстве шрифтов подмена не будет видна.
Например, если суметь правильно интерпретировать информацию, тo в этoм сooбщении вы сможете прочитать данные моей банковскoй карточки.
Также можно использовать в качестве носителя информации длины слов, поскольку почти всегда существуют синонимы с разным числом букв, а нет если, переставить слова можно.
Просто скрытыми числами кодировать информацию не очень надёжно. Но всегда можно добавить больше слоёв обфускации. В детективных сюжетах вы наверняка видели шифры с использованием «словаря»: числа в тексте являются номерами страницы-строки-колонки в какой-то книге, о которой собеседники заранее договорились.
Как обнаружить попытку скрытия информации
Начинающие «хакеры» часто считают, что могут надёжно скрыть следы своей деятельности. И, конечно, на этом прогорают.
Можно было бы подумать, что стеганография — идеальный инструмент. Увы, он хорошо работает только если ваш читатель — человек, который не ожидает, что в вашем тексте что-то скрыто. Если же вас читает криптограф (или предназначенный для массового скрининга алгоритм), то он вас раскусит.
Каким образом? Дело в том, что статистические характеристики нормального текста и нормальных картинок известны. А у сообщения со скрытым слоем статистические характеристики другие. Например, младший бит нормальной картинки должен быть распределён равномерно, он фактически является случайным шумом. А если туда вшить информацию, то в некоторых участках картинки будет сильно неслучайное распределение, это легко детектируется в автоматическом режиме. Кстати, схожими методами в картинках детектируются следы фотошопа.
Стеганографические «отпечатки пальцев»
Как и любая технология, стеганография является инструментом и защиты, и нападения. Например, её используют для фингерпринтинга документов. Например, вы копируете или фотографируете из внутренней системы компании секретный документ и анонимно его публикуете. Вы и знать не знаете, что в него как встроен как «водяной знак» ваш идентификатор, и источник утечки легко будет обнаружен.
Причём подобные «закладки» делают не только в софте, но и в железе. Так раньше печатные машинки и принтеры имели немного разные дефекты печати, чтобы можно было по распечатке сказать, на каком принтере она сделана.
Аналогично фотокамера вашего телефона имеет едва заметные дефекты оптики и матрицы. У каждого телефона такие дефекты будут чуть свои. Не факт даже, что эти дефекты сделаны специально (хотя я бы не исключал и такого варианта), они могут получиться случайно: пылинка попала.
Фокус в том, что если у кого-то есть сотня фотографий с вашего телефона (77.8% статистических величин взяты из головы) , то он поймёт, какие именно дефекты вносит ваша камера. И когда увидит сто первую фотку, он сможет сказать, сделана ли она вашим телефоном или нет.
Как вы думаете, сколько фотографий с вашего телефона лежит в соцсети? Хватит, чтобы вас зафингерпринтить? ;)