13-07-2023
Отрицаемое шифрование (англ. deniable encription, также двусмы́сленное шифрова́ние ) — способ компоновки зашифрованной информации, который обеспечивает возможность правдоподобного отрицания её наличия.
Отрицаемое шифрование предоставляет пользователю возможность правдоподобно отрицать сам факт шифрования информации или, в случае очевидности наличия шифрования, свою способность расшифровать её. При этом такое отрицание не обязано быть искренним, например, возможна ситуация, когда, несмотря на все подозрения, без содействия легитимных владельцев информации не удается точно выяснить, что данные зашифрованы. Целью данного вида шифрования является подрыв уверенности злоумышленника в том, что данные действительно зашифрованы или же что конкретный человек способен превратить их в открытый текст.
Обычно результатом расшифровки может являться лишь один открытый текст, поэтому, расшифровав сообщение, дешифровщик не может заявить, что расшифрованное сообщение не совпадает с исходным. Двусмысленное шифрование позволяет расшифровать сообщение другим способом, получая иной правдоподобный открытый текст. При этом у держателя шифротекста нет способов различить истинный открытый текст и фиктивный.
Двусмысленное шифрование разрешает прочитать зашифрованное сообщение несколькими осмысленными способами в зависимости от использованного ключа. Иными словами, оно скрывает наличие настоящего сообщения в отсутствие соответствующего ключа шифрования. Это дает пользователю шанс скрыть настоящее сообщение, даже если его вынудили раскрыть свой ключ. Сам термин двусмысленное шифрование придуман Джулианом Ассанджем и Ральфом Вайманном в ходе работы над Rubberhose[1].
Возможный сценарий выглядит так:
Также Алиса может послать одну криптограмму и Бобу, и Карлу. При этом Боб, расшифровав сообщение при помощи своего ключа, узнает, что Карл хочет написать на него донос. Карлу же письмо поведает, что Боб пытается украсть его деньги. Попытки Алисы поссорить их не будут раскрыты, пока Боб и Карл не узнают о том, что у них разные ключи.
Современные способы двусмысленного шифрования используют свойства псевдослучайных перестановок блочных шифров, что препятствует доказательству того, что данные не являются просто бессмысленным набором бит, созданным генератором криптостойкой псевдослучайной последовательности. Данная технология дополняется раскрытием злоумышленнику некоторых обманных данных, похожих на то, что пользователь попытался бы скрыть. Такой вид двусмысленного шифрования иногда называется стенографическим шифрованием.
В качестве примера можно привести криптографические файловые системы, использующие схему абстрактных "уровней", при которой каждый следующий уровень требует свой ключ для расшифровки. Помимо этого существуют т.н. chaff-уровни, заполненные случайными данными для противодействия обнаружению существования настоящих уровней, равно как и их ключей. Пользователь может хранить обманные данные на нескольких уровнях, утверждая, что остальное пространство используется в качестве chaff-уровней. Физически, данные чаще всего располагаются в одном каталоге, разбитые на файлы одинаковой длины с именами либо выбранными случайным образом (в случае chaff-уровня), либо представляющими результат работы криптографической хеш-функции над идентификаторами блоков. Временные параметры у этих файлов выбираются случайным образом. Примерами таких систем являются Rubberhose и PhoneBookFS.
Другой подход, применяемый традиционными пакетами по защите носителей информации, состоит в создании нового защищенного тома внутри основного. Процесс начитается с того, что при форматировании основной контейнер заполняется беспорядочным набором данных, с последующей инициализацией файловой системы. После этого часть файловой системы заполняется безопасными данными, похожими на секретные. Затем где-то в оставшемся пространстве создается новый скрытый том, используемый для тех данных, которые пользователь действительно хочет скрыть. Поскольку противник не может отличить зашифрованные данные от случайных данных заполнителя, он не сможет обнаружить этот скрытый том на диске. Однако то, что содержимое несекретных данных, не менялось со времён создания, в частности, время модификации файлов — это сделано, чтобы предотвратить повреждение пользовательских данных, может возбудить подозрения. Решение данной проблемы состоит в указании системе менять содержимое заглушек. Впрочем, стоит отметить, что данная операция сопряжена с риском повредить хранимые на диске данные. Такие программы, как FreeOTFE и BestCrypt позволяют создавать несколько скрытых разделов на одном диске, в то время как TrueCrypt ограничивается одним.
Безусловно, недостаточная криптографическая стойкость блочных шифров или числового генератора может подвергнуть риску защищенность такой файловой системы. Для того чтобы избежать сомнений по поводу достаточной криптографической стойкости генератора, можно зашифровать псевдослучайные данные при помощи другого ключа, нежели основные данные, что приведет к неразличимости хранимой информации и пустого пространства, ведь невозможно отличить зашифрованные данные от других зашифрованных данных. И напоследок стоит отметить, что неправильное использование режимов шифрования может сделать систему уязвимой, например, к атакам по водяным знакам.[2]
Некоторые системы, шифрующие сообщения на лету, например OTRM предоставляют возможность гибкого шифрования, что позволяет собеседникам отрицать своё участие в беседе. Хотя данный тип шифрования не является, в сущности, двусмысленным, т.е. не позволяет двояко расшифровывать сообщения, он лишает противника возможности доказать участие конкретного лица в беседе, равно как и сам факт наличия обмена информацией.
Это достигается добавлением в зашифрованное сообщение информации, необходимой для его подлога. Таким образом, если противник способен создать настоящее сообщение для данной беседы, то он автоматически сможет подделывать сообщения, что вместе с совершенной прямой секретностью (англ. perfect forward secrecy) гарантирует защищенность беседы, даже если ключи для отдельных сообщений находятся под угрозой разглашения.
Некоторые криптографические продукты (например, TrueCrypt) позволяют создавать зашифрованные контейнеры без каких-либо сигнатур. Такой контейнер, в общем случае, невозможно связать с конкретной криптографической программой (так как содержимое контейнера выглядит как сплошная случайная последовательность данных).
Контейнеры без сигнатур невозможно обнаружить программами вроде file. С другой стороны, отсутствие каких-либо сигнатур и высокая энтропия данных уже является признаком зашифрованных данных.
Некоторые продукты позволяют создавать контейнеры внутри уже существующей сплошной случайной последовательности данных. Например, TrueCrypt может создать контейнер внутри свободного пространства файловой системы другого контейнера (свободное пространство файловой системы любого контейнера TrueCrypt изначально заполнено случайными данными).
Скрытая ОС — операционная система, установленная в скрытом контейнере.
Зашифрованные контейнеры данного типа могут быть обнаружены по следующим признакам:
Следующими программами:
Некоторые криптографические продукты (например, TrueCrypt) не изменяют временные метки MAC при работе с контейнером.
Скрытые контейнеры могут быть обнаружены в некоторых случаях на стадии анализа выключенной системы, например:
Скрытые ОС класса Windows могут быть легко обнаружены путем анализа некоторых характеристик сетевого трафика и данных «ложной» ОС.
Отрицаемое шифрование — вики проекта КОМПЬЮТЕРНО — ТЕХНИЧЕСКАЯ ЭКСПЕРТИЗА
Отрицаемое шифрование.