Брюс Шнайер - Секреты и ложь. Безопасность данных в цифровом мире
Программы стеганографии существуют, чтобы скрывать файлы на вашем жестком диске. Это может работать, но вам по-прежнему нужна жизнеспособная история. Таким образом, есть определенные достижения по сравнению с простым шифрованием – по крайней мере, в свободных странах вы сможете доказать, что полиция не имеет реальных оснований для обвинения, – но вы должны тщательно все обдумать.
Скрытые каналыОдна из проблем, связанных с применением стеганографии, – ширина полосы пропускания. Легко скрыть несколько битов информации; спрятать целое сообщение электронной почты намного труднее. Рассмотрим пример совершенно разумного использования стеганографического канала передачи данных: Алиса и Боб должны обсудить, является ли некое отдельное действие «безопасным» или «угрожающим». Это один бит информации. Они регулярно обмениваются рецептами по электронной почте и договорились, что ключевая фраза «продублируй рецепт» будет индикатором сообщения. Если в послании сказано, что рецепт может быть продублирован, действие безопасно. Если же в нем говорится, что рецепт не может быть продублирован, соответствующее действие опасно. Любой рецепт без ключевой фразы не содержит скрытого сообщения.
Этот вид систем работает, поскольку секретное послание много-много меньше, чем скрывающее его сообщение, и в общем случае называется скрытым каналом (subliminalchannel) (похоже на тайный канал, описанный в главе 8). Скрытые каналы так же стары, как компьютеры, и всегда использовались недобросовестными программистами для «скачивания» информации без согласия пользователей. Представьте, что вы программист и делаете отчет по клиентам банка, и вы хотите запустить свои руки в картотеку индивидуальных номеров (PINs). Вас не уполномочили проверять реальные данные, но доверили вам написать код для получения отчета по базе, содержащей PINs. И вы можете посмотреть отчеты, которые были сделаны раньше. Программа создания отчета добавляет пробелы после данных каждого клиента, от 0 до 9, в соответствии с одной цифрой его PIN. Пусть теперь построитель отчета использует первую цифру в первый день, вторую цифру во второй день, и так далее, пока цикл не будет завершен и мы не возвратимся к первой цифре. Вот именно. Если программист сможет приложить руку к созданию электронного отчета в течение четырех дней, он справится с восстановлением всех индивидуальных номеров. (Действительно, он имеет четыре возможных варианта для каждого номера, в зависимости от того, какая цифра использовалась построителем отчета. Легко понять, что к чему.) Ни один из тех, кто будет смотреть отчеты, не увидит в них ничего злонамеренного, и пока они не проверят код, используемый для создания отчета (а как часто это случается?), никто не узнает, что индивидуальные номера раскрыты.
Есть история о солдате, которому не разрешали говорить, где он служит. У него не было среднего инициала, и он послал серию писем своей подруге, используя в подписи различные средние инициалы; таким образом он дал знать, где находится.
Теперь, когда вы имеете представление об общей идее, вы можете подумать обо всех возможных способах внедрения скрытых каналов в документы: выборе шрифтов и размерах шрифтов, размещении данных и графики на странице, использовании различных синонимов в тексте и т. д. Многие протоколы шифрования позволяют воспользоваться выбором параметров в целях создания скрытого канала: выбором случайных битов для дополнения или неиспользованных битов полей. До тех пор пока вы не слишком жадничаете и согласны черпать информацию чайной ложечкой, несложно организовать скрытый канал в системе.
Вы можете организовать утечку всего что угодно. Индивидуальные номера – хороший пример. Другой пример – ключи шифрования. Создание устройства для шифрования, в котором информация о ключах утекает по скрытому каналу, – замечательный способ атаковать кого-нибудь.
Скрытые каналы, внедренные недобросовестными программистами, обнаруживались во всех видах программного обеспечения спустя какое-то время. Разведывательные организации, подобные NSA, долгое время подозревались во внедрении скрытых каналов, по которым идет утечка информации о ключах криптографического оборудования, проданного иностранным правительствам. Недавний скандал, в котором фигурировала шведская компания Crypto AG, подтверждает это. Побочные каналы, обсуждавшиеся в контексте главы 14, где речь шла об аппаратных средствах сопротивления вторжению, могут рассматриваться как действующие скрытые каналы.
Заметим, что для скрытых каналов существует та же проблема, что и для стеганографии – каждый, кто удосужится проверить программное обеспечение, может обнаружить скрытый канал. Но внедренные в сложное программное обеспечение, а еще лучше в аппаратное обеспечение, они могут оставаться незамеченными в течение долгого времени.
Цифровые водяные знакиМы говорили об интеллектуальной собственности в главе 3. К слову сказать, компании, подобные компании Диснея, собираются торговать «в розницу» своей интеллектуальной собственностью – музыкой, видеоклипами, фотоснимками, чем угодно – в цифровой форме. Они не хотели бы, чтобы люди копировали Русалочку (The Little Mermaid) и свободно распространяли ее через Интернет. Они не хотели бы, чтобы люди крали части различных изображений – даже простейшего изображения Микки-Мауса – и использовали их без уплаты определенного вознаграждения автору. Они хотят осуществлять контроль над своей собственностью.
Цифровые водяные знаки – один из способов достижения этой цели. Их можно считать скрытым каналом или одним из приложений стеганографии. Идея состоит в том, чтобы вложить секретную информацию в материал, и тогда нетрудно будет определить, кто его законный владелец. Это похоже на бумажные водяные знаки: бумага с водяными знаками распространяется везде и передается от человека к человеку, но любой может посмотреть ее на свет и увидеть водяные знаки.
В действительности есть два различных термина. Создание водяных знаков (watermarking) позволяет идентифицировать неизменяемую информацию, а использование отпечатков пальцев (fingerprinting) дает возможность идентифицировать конкретного покупателя.
Например, водяной знак Русалочки будет говорить нам нечто вроде: «Собственность Диснея», тогда как цифровой отпечаток пальца на этом фильме скажет нам следующее: «Куплено Алисой 1 января 2001 года».
Цифровые водяные знаки и отпечатки пальцев всем хороши, кроме одного. Скопируйте бумагу, и водяные знаки пропадут. Скопируйте цифровой файл, и водяные знаки перейдут на копию. Может быть, мы не в силах предотвратить копирование, считают в компании Диснея, но мы по крайней мере можем указать пальцем на каждого, кто сделал копию. И я видел водяные знаки на множестве вещей: графике, изображениях, аудио, видео… даже в данных биржевых телеграфных аппаратов и компьютерных программ.
Таким образом, в зависимости от того, какие данные вы заложили в водяные знаки, вам предоставлена одна из двух возможностей. Во-первых, можно определить, кто обладает авторскими правами. Во-вторых, если каждая проданная копия Русалочки будет снабжена водяными знаками, указывающими на имя и адрес того, кто ее купил, станет возможным установить также и покупателя: тогда, если копия появится в Интернете, компания Диснея сможет найти виновного.
Замечательная идея, только не работает.
Проблема в том, что для того, чтобы Дисней смог найти внедренные в копию Русалочки водяные знаки, должна существовать возможность их обнаружения. Но если Дисней может их найти, пират может сделать то же самое. Компании, продающие подобные вещи, постараются объяснить вам, что их схема создания водяных знаков не позволяет удалить эти знаки по той или иной технологической причине.
Но это неправда. Может быть, так же как в случае со скрытым каналом, невозможно найти хорошие водяные знаки, если вы не знаете точно, куда смотреть. Но в отличие от скрытого канала, механизм обнаружения в данном случае в конце концов станет известным. Либо информация просочится в сообщество хакеров, как это обычно бывает, либо она станет доступной общественности при первом же случае судебного разбирательства. Механизмы создания водяных знаков в итоге все равно становятся известными, и когда это происходит, можно осуществить обратный процесс и удалить знаки с изображения.
Это может оказаться нелегким делом. Разные хитроумные трюки способны затруднить этот процесс, но все же это не является невозможным. И сообразительный хакер вполне в состоянии написать программу, автоматически удаляющую водяные знаки, как только он поймет, как это работает.
Другим слабым местом водяных знаков является то, что они не решают стоящей перед ними задачи. Создание водяных знаков должно позволить компании указать на ее цифровую собственность, которая должна оставаться неприкосновенной и сказать: «это мое». Осуществить это достаточно сложно, и водяные знаки не могут воспрепятствовать изменению цифровых данных, являющихся чужим имуществом. Также водяные знаки не обязательно укажут точно на нарушителя авторского права. Представьте, что каждая копия Русалочки снабжена водяными знаками с информацией о покупателе. Но как продавец установит личность покупателя? Это возможно только в том случае, если имеются защищенные от подделки документы. Однако нет способа воспрепятствовать злоумышленнику нанять за 10 долларов бездомного пьяницу, чтобы тот зашел в видеосалон и купил для него фильм. Таким образом, он получит копию с внедренными водяными знаками, указывающими на того, кто, скорее всего, не слишком беспокоится, что Дисней его опознает, и с кого нечего взять, если Дисней надумает предъявить к нему претензии.