Но статья не о бомбах, а о информационной безопасности. Все более актуальным становится вопрос — как передать информации от Алисы (A) к Бобу (B) так, чтоб потом к ним не пришел Чарли (C ) и не увез их к Дэвиду (D). Одна идея на эту тему у меня возникла уже давно и недавние события утвердили меня в необходимости еее опубликовать. К сожалению, я ни разу не программист и потому шансов реализовать такую идею у меня не много. Если кто-то решит реализовать эту идею, буду рад принять участие в разработке чем могу :)

Об анонимности
Однажды мой друг показал забавное решение от Rohde&Schwarz – аудиоскремблер для защиты телефонных переговоров. Работает хитро – включается в разрыв шнура трубки (а не телефонного кабеля), скремблирует голосовой сигнал, и передает его в телефон для передачи средствами телефонии на такой же аппарат, который дескремблирует сигнал. Есть варианты для мобильных телефонов в виде Bluetooth гарнитуры. Я предложил приобрести такое решение человеку из одной крупной ФПГ. На что услышал ответ от СБ этой группы – при применении таких штучек спец. службы еще больше начинают интересоваться владельцами таких решений. Все потому, что этот скремблер не скрывает того, что защищает вашу информацию, а раз вы защищаетесь, значит, вам есть что скрывать.
Так вот основная задача, на мой взгляд, – как Алисе поговорить с Бобом в помещении, где сидит Чарли, таким образом, чтоб Чарли не заподозрил, что они обменялись закрытой от него информацией? Т.е. осуществить конспиративную передачу информации в открытой среде.
Другое положение, которое я считаю важным, – дискредитация способа конспирации не должна существенно увеличивать вероятность раскрытия. Т.е. если злоумышленник знает, каким образом происходит конспирация, он все равно должен затратить существенные ресурсы на раскрытие информации, а возможность доказать наличие конспиративной передачи информации должна быть минимальна.
На решение меня натолкнул один знакомый игротехник. Он утверждает, что члены игротехнической команды могут решать между собой вопросы в присутствии второй стороны таким образом, что вторая сторона не заподозрит их в этом. Я не видел как они это делают, но суть понятна – для передачи данных используются несущие сигналы, не несущие смысловой нагрузки, но формально ее имеющие. Полезный же сигнал передается в дифференциальной форме как отклонение от нормы несущего сигнала. Звучит все очень запутанно, но если простыми словами – передача полезного сигнала осуществляется в виде «водяных знаков» в несущем сигнале.
Очевидно, что полоса пропускания дифференциального сигнала будет на порядок меньше, чем несущего, но нам не до жиру. Выходит, что для несущего сигнала нам лучше взять что-то объемное. Наилучшим образом подойдет видеопоток. А полезный сигнал может быть сжатым аудио, текстом, в конечном пределе — бинарным потоком.
Простейшая реализация – полезный сигнал преобразовать в графическое представление и вставить как искажение кадров несущего видеопотока. Искажение может быть разным — наложение полупрозрачного изображения, различные операции с цветом, зашумление по маске и т.п. В простейшем случае, который был мне доступен, – информация закодирована в QR код, наложена полупрозрачно на выбранные кадры. В качестве несущего видеопотока взято невинное развлекательное видео.
Что получается можно посмотреть тут:

Понятно, что результат не очень, но я использовал только общедоступные средства без какой-либо модификации специально под задачу.
Если говорить о реализации, то это может быть модифицированный кодек, который подмешивает в видеопоток «водяные знаки» с информацией из исходящей папки. С другой стороны аналогичный кодек вытягивает зашитую информацию в файл или куда нужно. К сожалению, в вопросах программирования я не силен, потому предложенная реализация может быть не оптимальной.
P.S. Спасибо:
qrcode.kaywa.com
zxing.org
Apple за Final Cut

