Отрицаемое шифрование

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

Отрицаемое шифрование (англ. deniable encryption, также двусмы́сленное шифрова́ние ) — способ компоновки зашифрованной информации, который обеспечивает возможность правдоподобного отрицания её наличия.

Принцип[править | править вики-текст]

Отрицаемое шифрование предоставляет пользователю возможность правдоподобно отрицать сам факт шифрования информации или, в случае очевидности наличия шифрования, свою способность расшифровать её. При этом такое отрицание не обязано быть искренним, например, возможна ситуация, когда, несмотря на все подозрения, без содействия легитимных владельцев информации не удается точно выяснить, что данные зашифрованы. Целью данного вида шифрования является подрыв уверенности злоумышленника в том, что данные действительно зашифрованы или же что конкретный человек способен превратить их в открытый текст.

Обычно результатом расшифровки может являться лишь один открытый текст, поэтому, расшифровав сообщение, дешифровщик не может заявить, что расшифрованное сообщение не совпадает с исходным. Двусмысленное шифрование позволяет расшифровать сообщение другим способом, получая иной правдоподобный открытый текст. При этом у держателя шифротекста нет способов различить истинный открытый текст и фиктивный.

Сфера применения[править | править вики-текст]

Двусмысленное шифрование разрешает прочитать зашифрованное сообщение несколькими осмысленными способами в зависимости от использованного ключа. Иными словами, оно скрывает наличие настоящего сообщения в отсутствие соответствующего ключа шифрования. Это дает пользователю шанс скрыть настоящее сообщение, даже если его вынудили раскрыть свой ключ. Сам термин двусмысленное шифрование придуман Джулианом Ассанджем и Ральфом Вайманном в ходе работы над Rubberhose[1].

Сценарий[править | править вики-текст]

Возможный сценарий выглядит так:

  1. Алиса – жена Боба, подозревающего её в измене. Она хочет передать сообщение своему тайному возлюбленному Карлу. Она конструирует 2 ключа: один для того, чтобы хранить в секрете, и второй, которым можно пожертвовать в критической ситуации. Затем она передаёт настоящий ключ (а может быть и оба) Карлу.
  2. Вслед за этим она пишет Карлу безвредное сообщение M1 про особенности жизнедеятельности улиток — это сообщение можно показать Бобу в случае, если он обнаружит их переписку, а также письмо M2 Карлу, полное горячих чувств. После этого она комбинирует эти два сообщения и посылает получившийся шифротекст С Карлу.
  3. Карл, используя данные ему ключи, расшифровывает исходное сообщение M2 и, при желании, M1.
  4. Боб обнаруживает сообщение, посланное Алисой Карлу. В порыве ревности он заставляет Алису расшифровать письмо.
  5. Алиса восстанавливает открытый текст M1, используя жертвенный ключ. Таким образом в руки Боба попадает скучный текст об улитках, и, так как наличие еще одного ключа держится в тайне, он полагает, что никакого подозрительного смысла сообщение не несло.

Также Алиса может послать одну криптограмму и Бобу, и Карлу. При этом Боб, расшифровав сообщение при помощи своего ключа, узнает, что Карл хочет написать на него донос. Карлу же письмо поведает, что Боб пытается украсть его деньги. Попытки Алисы поссорить их не будут раскрыты, пока Боб и Карл не узнают о том, что у них разные ключи.

Современные формы двусмысленного шифрования[править | править вики-текст]

Современные способы двусмысленного шифрования используют свойства псевдослучайных перестановок блочных шифров, что препятствует доказательству того, что данные не являются просто бессмысленным набором бит, созданным генератором криптостойкой псевдослучайной последовательности. Данная технология дополняется раскрытием злоумышленнику некоторых обманных данных, похожих на то, что пользователь попытался бы скрыть. Такой вид двусмысленного шифрования иногда называется стеганографическим шифрованием.

В качестве примера можно привести криптографические файловые системы, использующие схему абстрактных "уровней", при которой каждый следующий уровень требует свой ключ для расшифровки. Помимо этого существуют т.н. chaff-уровни, заполненные случайными данными для противодействия обнаружению существования настоящих уровней, равно как и их ключей. Пользователь может хранить обманные данные на нескольких уровнях, утверждая, что остальное пространство используется в качестве chaff-уровней. Физически, данные чаще всего располагаются в одном каталоге, разбитые на файлы одинаковой длины с именами либо выбранными случайным образом (в случае chaff-уровня), либо представляющими результат работы криптографической хеш-функции над идентификаторами блоков. Временные параметры у этих файлов выбираются случайным образом. Примерами таких систем являются Rubberhose и PhoneBookFS.

Другой подход, применяемый традиционными пакетами по защите носителей информации, состоит в создании нового защищенного тома внутри основного. Процесс начитается с того, что при форматировании основной контейнер заполняется беспорядочным набором данных, с последующей инициализацией файловой системы. После этого часть файловой системы заполняется безопасными данными, похожими на секретные. Затем где-то в оставшемся пространстве создается новый скрытый том, используемый для тех данных, которые пользователь действительно хочет скрыть. Поскольку противник не может отличить зашифрованные данные от случайных данных заполнителя, он не сможет обнаружить этот скрытый том на диске. Однако то, что содержимое несекретных данных, не менялось со времён создания, в частности, время модификации файлов — это сделано, чтобы предотвратить повреждение пользовательских данных, может возбудить подозрения. Решение данной проблемы состоит в указании системе менять содержимое заглушек. Впрочем, стоит отметить, что данная операция сопряжена с риском повредить хранимые на диске данные. Такие программы, как FreeOTFE и BestCrypt позволяют создавать несколько скрытых разделов на одном диске, в то время как TrueCrypt ограничивается одним.

Существование скрытого тома может быть обнаружено по причине ошибочных реализаций, зависящих от предсказуемых криптографических величин[2][3], либо с помощью некоторых инструментов, использующихся в юридических целях, способных обнаруживать неслучайные зашифрованные данные. [4][5] Также было предположено, что  существует уязвимость к тестированию псевдослучайных последовательностей с помощью критерия Хи-квадрат (критерия Пирсона): после каждого изменения зашифрованные данные должны быть видоизменены таким образом, чтобы их распределение правдоподобно соответствовало случайному распределению.[6] Отрицаемое шифрование также подвержено критике в связи с невозможностью защиты пользователей от вымогательства. Сам факт обладания инструментами, осуществляющими методы отрицаемого шифрования, может заставить злоумышленника продолжить взлом данных даже после того, как пользователь выдал ему пароль, предоставляющий доступ к некоей подложной информации.[7]

Безусловно, недостаточная криптографическая стойкость блочных шифров или числового генератора может подвергнуть риску защищенность такой файловой системы. Для того чтобы избежать сомнений по поводу достаточной криптографической стойкости генератора, можно зашифровать псевдослучайные данные при помощи другого ключа, нежели основные данные, что приведет к неразличимости хранимой информации и пустого пространства, ведь невозможно отличить зашифрованные данные от других зашифрованных данных. И напоследок стоит отметить, что неправильное использование режимов шифрования может сделать систему уязвимой, например, к атакам по водяным знакам.[8]

Гибкое шифрование[править | править вики-текст]

Некоторые системы, шифрующие сообщения на лету, например OTRM предоставляют возможность гибкого шифрования, что позволяет собеседникам отрицать своё участие в беседе. Хотя данный тип шифрования не является, в сущности, двусмысленным, т.е. не позволяет двояко расшифровывать сообщения, он лишает противника возможности доказать участие конкретного лица в беседе, равно как и сам факт наличия обмена информацией.

Это достигается добавлением в зашифрованное сообщение информации, необходимой для его подлога. Таким образом, если противник способен создать настоящее сообщение для данной беседы, то он автоматически сможет подделывать сообщения, что вместе с совершенной прямой секретностью (англ. perfect forward secrecy) гарантирует защищенность беседы, даже если ключи для отдельных сообщений находятся под угрозой разглашения.

Реализация[править | править вики-текст]

Контейнеры без сигнатур[править | править вики-текст]

Некоторые криптографические продукты (например, TrueCrypt) позволяют создавать зашифрованные контейнеры без каких-либо сигнатур. Такой контейнер, в общем случае, невозможно связать с конкретной криптографической программой (так как содержимое контейнера выглядит как сплошная случайная последовательность данных).

Контейнеры без сигнатур невозможно обнаружить программами вроде file. С другой стороны, отсутствие каких-либо сигнатур и высокая энтропия данных уже является признаком зашифрованных данных.

Скрытые контейнеры[править | править вики-текст]

Некоторые продукты позволяют создавать контейнеры внутри уже существующей сплошной случайной последовательности данных. Например, TrueCrypt может создать контейнер внутри свободного пространства файловой системы другого контейнера (свободное пространство файловой системы любого контейнера TrueCrypt изначально заполнено случайными данными).

Скрытые ОС[править | править вики-текст]

Скрытая ОС — операционная система, установленная в скрытом контейнере.

Обнаружение[править | править вики-текст]

Контейнеры без сигнатур[править | править вики-текст]

Зашифрованные контейнеры данного типа могут быть обнаружены по следующим признакам:

  • Отсутствие каких-либо известных сигнатур внутри файла;
  • Высокая энтропия данных.

Следующими программами:

Некоторые криптографические продукты (например, TrueCrypt) не изменяют временные метки MAC при работе с контейнером.

Скрытые контейнеры[править | править вики-текст]

Скрытые контейнеры могут быть обнаружены в некоторых случаях на стадии анализа выключенной системы, например:

  • В случае утечки информации о содержимом скрытого контейнера на незашифрованные файловые системы:
    • Утечки в файл подкачки, файл гибернации и дампы памяти (crash dump);
    • Другие утечки (например, в списки MRU);
  • В случае утечки криптографических ключей или паролей в файл подкачки, файл гибернации и дампы памяти;
  • В случае наличия полной или частичной копии (нескольких копий) внешнего контейнера с ключом / паролем;
  • В случае использования слабых ключей / паролей для скрытого контейнера.

Скрытые ОС[править | править вики-текст]

Скрытые ОС класса Windows могут быть легко обнаружены путем анализа некоторых характеристик сетевого трафика и данных «ложной» ОС.

Программное обеспечение[править | править вики-текст]

  • OpenPuff (англ. статья), свободное ПО для шифрования для ОС Windows.
  • BestCrypt, коммерческое приложение по шифрованию дисков «на лету» для Windows.
  • FreeOTFE, свободное ПО для шифрования дисков «на лету» для Windows и Pocket PC, предоставляющая функциональность двусмыленного шифрования наряду с возможностью отказа[9]. Обладает большой функциональностью и не требует установки.
  • Off-the-Record Messaging, криптографический протокол для сетей обмена мгновенными сообщениями с возможностью отказа
  • StegFS - криптографическая файловая система для Linux с возможностью отказа, преемник ныне не поддерживаемых проектов PhoneBookFS и rubberhose
  • TrueCrypt, приложение для Windows, MAC OS и Linux, с возможностью шифрования дисков «на лету», ограничено способная к двусмысленному шифрованию[10] и с возможностью отказа[11] (с учётом ограниченности количества скрытых разделов на одном томе). Тоже не требует установки.
  • Vanish (англ. статья) - прототип самоуничтожающихся носителей информации.
  • ScramDisk 4 Linux - свободный пакет программ для GNU/Linux, способный работать с контейнерами truecrypt и scramdisk.

См. также[править | править вики-текст]

Примечания[править | править вики-текст]

Литература[править | править вики-текст]

Ссылки[править | править вики-текст]

Отрицаемое шифрование — вики проекта КОМПЬЮТЕРНО — ТЕХНИЧЕСКАЯ ЭКСПЕРТИЗА