Введение
Методы шифрования, при которых противник не может доказать существование исходных данных.
В криптографии и стеганографии, шифрование с правдоподобным отрицанием описывает методы шифрования, при которых существование зашифрованного файла или сообщения можно отрицать в том смысле, что противник не может доказать существование исходных данных. Пользователи могут убедительно отрицать, что конкретные данные зашифрованы, что они способны расшифровать зашифрованные данные, или что определенные зашифрованные данные существуют. Данная тема подробно исследована в статье Ран Канетти, Синтии Дворк, Мони Наор и Рафаила Островского, опубликованной в 1996 году.
Сценарий
В некоторых юрисдикциях законы исходят из предположения, что у операторов есть доступ к таким вещам, как ключи шифрования. Примером является Закон Великобритании о регулировании следственных полномочий, который криминализирует отказ в предоставлении ключей шифрования по требованию уполномоченного правительственного чиновника. Согласно данным Министерства внутренних дел, бремя доказывания владения ключом обвиняемым лежит на стороне обвинения; более того, закон предусматривает защиту для операторов, потерявших или забывших ключ, и они не несут ответственности, если доказано, что они сделали все возможное для его восстановления – например, избивали этого человека резиновым шлангом, отсюда и название. Раннее упоминание термина встречается в новостной группе sci.crypt, в сообщении от 16 октября 1990 года, опубликованном Маркусом Дж. Ранумом, с аллюзией на телесные наказания: «техника криптоанализа резиновым шлангом» (когда резиновый шланг с силой и многократно прикладывается к подошвам ног, пока не будет обнаружен ключ к криптосистеме – процесс, который может занять удивительно короткое время и является достаточно дешевым в вычислительном плане). Отрицаемое шифрование позволяет отправителю зашифрованного сообщения отрицать его отправку. Для этого требуется доверенная третья сторона. Возможный сценарий выглядит следующим образом:
Боб подозревает, что его жена Элис изменяет ему. В таком случае Элис хочет общаться со своим любовником Карлом. Она генерирует два ключа: один – для сохранения в секрете, другой – для «жертвы». Она передает секретный ключ (или оба) Карлу. Элис создает безобидное сообщение M1 для Карла (предназначенное для раскрытия Бобу в случае обнаружения) и компрометирующее любовное письмо M2 для Карла. Она формирует шифротекст C из обоих сообщений, M1 и M2, и отправляет его Карлу. Карл использует свой ключ для расшифровки M2 (и, возможно, M1, чтобы прочитать поддельное сообщение). Боб узнает об электронном письме Карлу, начинает подозревать и заставляет Элис расшифровать сообщение. Элис использует «жертвенный» ключ и показывает Бобу безобидное сообщение M1. Поскольку Боб не может быть уверен, содержатся ли в C другие сообщения, он может предположить, что их там нет. Другой сценарий заключается в том, что Элис отправляет один и тот же шифротекст (некоторые секретные инструкции) Бобу и Карлу, которым она передала разные ключи. Боб и Карл должны получить разные инструкции и не иметь возможности прочитать инструкции друг друга. Боб получит сообщение первым, а затем перешлет его Карлу. Элис формирует шифротекст из обоих сообщений, M1 и M2, и отправляет его Бобу. Боб использует свой ключ для расшифровки M1 и не может прочитать M2. Боб пересылает шифротекст Карлу. Карл использует свой ключ для расшифровки M2 и не может прочитать M1.
Формы отрицательного шифрования
Обычно шифротексты расшифровываются в единственный открытый текст, который предполагается хранить в секрете. Однако одна из форм опровержимого шифрования позволяет пользователям расшифровывать шифротекст, получая другой (невинный, но правдоподобный) открытый текст и убедительно заявлять, что именно его они зашифровали. Владелец шифротекста не сможет отличить истинный открытый текст от ложного. В общем случае, один шифротекст нельзя расшифровать во все возможные открытые тексты, если ключ не равен по размеру открытому тексту, поэтому в большинстве случаев непрактично, чтобы шифротекст не раскрывал никакой информации о своем открытом тексте. Однако некоторые схемы позволяют расшифровывать открытые тексты, близкие к исходному по определенной метрике (например, расстоянию редактирования). Современные методы опровержимого шифрования используют тот факт, что без ключа невозможно отличить шифротекст от блочных шифров и данные, сгенерированные криптографически стойким генератором псевдослучайных чисел (свойствами псевдослучайной перестановки шифра). Это используется в сочетании с некоторыми "приманками" – данными, которые пользователь мог бы правдоподобно желать сохранить конфиденциальными и которые будут раскрыты злоумышленнику, с утверждением, что это все, что есть. Это форма стеганографии. Если пользователь не предоставит правильный ключ для действительно секретных данных, расшифровка приведет к видимо случайным данным, неотличимым от отсутствия там каких-либо конкретных данных.
Слои
Одним из примеров шифрования с возможностью отрицания является криптографическая файловая система, использующая концепцию абстрактных "слоев", где каждый слой может быть расшифрован с помощью отдельного ключа шифрования. Дополнительно, специальные "слои-заполнители" заполняются случайными данными для обеспечения правдоподобного отрицания существования реальных слоев и их ключей шифрования. Пользователь может хранить ложные файлы на одном или нескольких слоях, отрицая существование остальных, утверждая, что оставшееся пространство занято слоями-заполнителями. Физически, такие файловые системы обычно хранятся в одной директории, состоящей из файлов одинаковой длины, с именами файлов, которые либо рандомизированы (в случае слоев-заполнителей), либо являются криптографическими хешами строк, идентифицирующих блоки данных. Временные метки этих файлов всегда рандомизированы. Примером такого подхода является файловая система Rubberhose. Rubberhose (также известная под кодовым названием Marutukku) – это программа шифрования с возможностью отрицания, которая шифрует данные на носителе информации и скрывает зашифрованные данные. Существование зашифрованных данных может быть подтверждено только при наличии соответствующего криптографического ключа. Она была создана Джулианом Ассанжем как инструмент для правозащитников, которым требовалась защита конфиденциальных данных в полевых условиях, и впервые была выпущена в 1997 году.
Объемы контейнеров
Другой подход, используемый некоторыми традиционными программами для шифрования дисков, заключается в создании второго зашифрованного тома внутри контейнерного тома. Контейнерный том сначала форматируется путем заполнения его зашифрованными случайными данными, а затем на нем инициализируется файловая система. Пользователь затем заполняет часть файловой системы правдоподобными, но законными файлами-приманками, которые пользователю было бы логично скрывать. После этого внутри свободного пространства файловой системы контейнера выделяется новый зашифрованный том (скрытый том), предназначенный для данных, которые пользователь действительно хочет скрыть. Поскольку злоумышленник не может отличить зашифрованные данные от случайных данных, использованных для инициализации внешнего тома, этот внутренний том становится необнаружимым. LibreCrypt и BestCrypt позволяют создавать множество скрытых томов в контейнере; TrueCrypt ограничен одним скрытым томом.
Другие программы
OpenPuff, бесплатная стеганографическая программа с частично открытым исходным кодом для MS Windows. LibreCrypt, программа для прозрачного шифрования диска с открытым исходным кодом для MS Windows и PocketPC PDA, обеспечивающая как опровержимое шифрование, так и правдоподобное отрицание. Предлагает широкий спектр опций шифрования и не требует установки перед использованием, если у пользователя есть права администратора. Off the Record Messaging, криптографический метод, обеспечивающий истинное опровержение для обмена мгновенными сообщениями. StegFS, текущий преемник идей, реализованных в файловых системах Rubberhose и PhoneBookFS. VeraCrypt (преемник прекращенной TrueCrypt), программное обеспечение для шифрования диска "на лету" для Windows, Mac и Linux, обеспечивающее ограниченное опровержимое шифрование и, в некоторой степени (из-за ограничений на количество скрытых томов, которые можно создать), может быть раскрыто так называемой атакой с использованием водяных знаков при использовании неподходящего режима шифрования. Существование данных может быть раскрыто из-за их "утечки" в незашифрованное дисковое пространство, где их могут обнаружить криминалистические инструменты. Высказывались сомнения относительно уровня правдоподобного отрицания в "скрытых томах" – содержимое "внешней" файловой системы контейнера должно быть "зафиксировано" в исходном состоянии, чтобы предотвратить повреждение скрытого тома пользователем (это можно обнаружить по меткам времени доступа и изменения), что может вызвать подозрения. Эту проблему можно устранить, отключив защиту скрытого тома в системе, хотя это может привести к потере данных.
Недостатки
Владение инструментами шифрования с возможностью отрицания ответственности может побудить злоумышленников продолжать пытать пользователя даже после того, как он выдал все свои ключи, поскольку они не смогут убедиться, что пользователь раскрыл последний ключ. Однако осознание этого может удержать пользователей от выдачи каких-либо ключей, так как они никогда не смогут доказать злоумышленнику, что раскрыли все известные им ключи.
Отрицательная аутентификация
Некоторые комплексы зашифрованной обмена сообщениями в режиме реального времени, такие как Off the Record Messaging, предлагают опровержимую аутентификацию, которая предоставляет участникам возможность правдоподобно отрицать факт переписки или её содержание. Хотя опровержимая аутентификация технически не является "опровержимым шифрованием" – само шифрование сообщений не подвергается сомнению – её опровержимость заключается в невозможности для злоумышленника доказать, что участники вели переписку или говорили что-либо конкретное. Это достигается за счет того, что вся информация, необходимая для подделки сообщений, добавляется к зашифрованным сообщениям. Если злоумышленник способен создавать цифровые подписи, подтверждающие подлинность сообщений в переписке (см. код аутентификации сообщений на основе хеша (HMAC)), он также способен подделывать сообщения в этой переписке. Это используется в сочетании с прямой секретностью (perfect forward secrecy) для гарантии того, что компрометация ключей шифрования отдельных сообщений не приведет к компрометации других переписок или сообщений.