Лекция
Привет, Вы узнаете о том , что такое двойное дно, Разберем основные их виды и особенности использования. Еще будет много подробных примеров и описаний. Для того чтобы лучше понимать что такое двойное дно, скрытые контейнеры , гибкое шифрование, отрицаемое шифрование, secret sharing , настоятельно рекомендую прочитать все из категории Вредоносное ПО и защита информации.
отрицаемое шифрование (англ. deniable encryption, также двусмысленное шифрование) — способ криптографического преобразования, в котором зашифровываются совместно два или более различных сообщения на двух или более различных ключах . Этот метод обеспечивает возможность правдоподобного отрицания наличия одного или группы сообщений как таковых. Сам термин «двусмысленное шифрование» придуман Джулианом Ассанжем и Ральфом Вайманном в ходе работы над Rubberhose в 1997—2000 годах.
В концепции отрицаемого шифрования рассматривается цель обеспечения достаточно высокой стойкости к принуждающим атакам. В модели таких атак предполагается, что атакующий имеет некоторые рычаги воздействия на отправителя, получателя или хранителя зашифрованной информации и принуждает выдать ключ для ее расшифрования. Стойкость к атакам с принуждением обеспечивается тем, что, по крайней мере, одно из передаваемых сообщений не является секретным и атакующему предоставляется ключ, по которому расшифрование криптограммы ведет к раскрытию этого сообщения. При этом процедура расшифрования выполняется таким образом, что у атакующего нет обоснованных доводов полагать, что с криптограммой были связаны еще какие-то другие сообщения. Двусмысленное шифрование разрешает прочитать зашифрованное сообщение несколькими осмысленными способами в зависимости от использованного ключа. Иными словами, оно дает пользователю шанс скрыть секретное сообщение, даже если его вынудили раскрыть один из ключей.
Существенным требованием к алгоритмам отрицаемого шифрования является обеспечение равновероятностного влияния битов криптограммы на биты расшифрованного текста, которое состоит в том, что изменение любого бита криптограммы должно приводить к инвертированию любого бита расшифрованного текста с вероятностью, достаточно близкой к 0.5.
Допустим, вам нужно спрятать некий объем критически важных данных, которые представляют большой интерес для противника. В то же время просто зашифровать файл может быть недостаточно – ведь столкнувшись с криптоконтейнером, противник захочет получить пароль! Возможно даже прибегнет к пыткам разного рода, а этот метод криптоанализа приносит хорошие результаты, это лишь вопрос времени.
В таком случае целесообразно сделать так называемое “двусмысленное шифрование” или “ двойное дно ”. Создается криптоконтейнер, в который загружаются произвольные легитимные данные (то есть такие, которые человек вполне мог бы хранить в криптоконтейнере, например частные фотографии), затем, в свободном месте создается еще одна область, которая открывается по совершенно другому паролю и в которую записывается действительно критичная информация.
Когда файл попадает под пристальное внимание противника, наш герой с честным видом заявляет, что файл используется им для хранения личных фото. Если даже сильно прижмет – сообщает свой (первый) пароль от файла. Противник монтирует криптоконтейнер с этим паролем и видит действительно частные фото. С высокой долей вероятности он оставит контейнер в покое и будет искать дальше. Чтож, попробуем это реализовать!
Суть криптоконтейнера с двойным дном предельно проста: при вводе одного пароля вам выводится одна информация, при вводе другого – другая. С помощью программно-технических средств доказать наличие двойного дна невозможно, но если у вас потребуют доступ и отказать будет невозможно, вы можете выдать доступ к «публичному» содержимому, а о наличии двойного дна и его содержании никто не узнает (в конце материала я на примере из жизни покажу, что это миф).
Существует распространенное мнение, что скрытую область криптоконтейнера можно вычислить, очистив открытую часть и проверив свободное место для записи. Если там имеется скрытая область, она будет занимать место, и станет очевидно, что у криптоконтейнера есть двойное дно. На самом деле это миф. Наличие скрытого криптоконтейнера никак не отразится на основном, даже если по размеру будет занимать львиную его часть.
Если вы будете записывать в криптоконтейнер файл, который превышает по размеру свободную область криптоконтейнера, он будет записываться поверх скрытой части, никак не выдавая ее наличие. Криптоконтейнеры с двойным дном создаются одинаково на TrueCrypt и VeraCrypt, одинаково на всех операционных системах.
Возможный сценарий выглядит так:
Также Алиса может послать одну криптограмму и Бобу, и Карлу. При этом Боб, расшифровав сообщение при помощи своего ключа, узнает, что Карл хочет написать на него донос. Карлу же письмо поведает, что Боб пытается украсть его деньги. Попытки Алисы поссорить их не будут раскрыты, пока Боб и Карл не узнают о том, что у них разные ключи.
Пример 1.
Выполнение отрицаемого шифрования осуществляется с использованием секретного ключа в виде набора подключей и двух простых чисел и .Шифрование блоков и двух сообщений осуществляют путем вычисления значения по формуле ,вычисления значения по формуле и формирования блока криптограммы С, которое является решением системы сравнений
которую мы запишем в виде
в соответствии с китайской теоремой об остатках решение вычисляется по следующей формуле:
пусть для раскрытия при вынуждающей атаке предназначено сообщение {\displaystyle {\overline {M}}}. Об этом говорит сайт https://intellect.icu . Тогда атакующему представляются в качестве ключа шифрования тройка значений . Дешифровка выполняется по формуле
.
В последней формуле обратные значения для подключей и вычисляются по модулям и {\displaystyle p_{2}}, соответственно. Дешифровка секретного сообщения M выполняется по той же формуле, но с использованием ключа, представляющего собой тройку значений :
Пример 2
Ключ шифрования представляет собой набор подключей и два простых числа и . Шифруются два сообщения и путем генерации случайных чисел и , вычисления значения по формуле , вычисления значения по формуле и формирования криптограммы , являющейся решением системы сравнений, включающей три сравнения
.
Эту систему можно записать в виде
В соответствии с китайской теоремой об остатках решение этой системы сравнений вычисляется по формуле:
При вынуждающей атаке атакующему представляется в качестве ключа шифрования тройка значений , по которым расшифрование выполняется по формуле:
.
Очевидно, что размер криптограммы не может быть менее суммы размеров шифруемых совместно сообщений, поэтому в качестве признаков наличия в криптограмме других сообщений рассматриваются признаки отличия криптограммы от шифротекста, получаемого вероятностным шифрованием раскрытого сообщения, при котором размер шифротекста значительно больше размера исходного сообщения. Иными словами, атакуемая криптограмма могла быть получена с помощью вероятностного шифрования по представленному ключу. В силу этого для атакующего отсутствуют основания требовать еще какой-либо другой ключ для дальнейшего расшифрования криптограммы.
В пользу наличия дополнительных сообщений в криптограмме атакующим могут быть предъявлены следующие доводы:
Размер криптограммы может быть больше размера исходного текста. При этом атакующему сообщается, что при создании криптограммы был использован метод вероятностного шифрования. Увеличение размеров шифротекста является свойственным для шифров такого типа.
Такой тип шифрования обнаруживается при выявлениии случайных данных или загрузчика щафрователя, типа VeraCrypt. Этого может быть достаточно, чтобы вызвать подозренние о наличии такого шифрования со всеми вытикающими последствиями .
Современные способы двусмысленного шифрования используют свойства псевдослучайных перестановок блочных шифров, что препятствует доказательству того, что данные не являются просто бессмысленным набором бит, созданным генератором криптостойкой псевдослучайной последовательности. Данная технология дополняется раскрытием злоумышленнику некоторых обманных данных, похожих на то, что пользователь попытался бы скрыть. Такой вид двусмысленного шифрования иногда называется стеганографическим шифрованием.
В качестве примера можно привести криптографические файловые системы, использующие схему абстрактных «уровней», при которой каждый следующий уровень требует свой ключ для расшифровки. Помимо этого существуют так называемые chaff-уровни, заполненные случайными данными для противодействия обнаружению существования настоящих уровней, равно как и их ключей. Пользователь может хранить обманные данные на нескольких уровнях, утверждая, что остальное пространство используется в качестве chaff-уровней. Физически, данные чаще всего располагаются в одном каталоге, разбитые на файлы одинаковой длины с именами либо выбранными случайным образом (в случае chaff-уровня), либо представляющими результат работы криптографической хеш-функции над идентификаторами блоков. Временные параметры у этих файлов выбираются случайным образом. Примерами таких систем являются Rubberhose и PhoneBookFS.
Другой подход, применяемый традиционными пакетами по защите носителей информации, состоит в создании нового защищенного тома внутри основного. Процесс начинается с того, что при форматировании основной контейнер заполняется беспорядочным набором данных с последующей инициализацией файловой системы. После этого часть файловой системы заполняется безопасными данными, похожими на секретные. Затем где-то в оставшемся пространстве создается новый скрытый том, используемый для тех данных, которые пользователь действительно хочет скрыть. Поскольку противник не может отличить зашифрованные данные от случайных данных заполнителя, он не сможет обнаружить этот скрытый том на диске. Однако то, что содержимое несекретных данных не менялось со времен создания, в частности, время модификации файлов — это сделано, чтобы предотвратить повреждение пользовательских данных, — может возбудить подозрения. Решение данной проблемы состоит в указании системе менять содержимое заглушек. Впрочем, стоит отметить, что данная операция сопряжена с риском повредить хранимые на диске данные. Такие программы, как FreeOTFE и BestCrypt позволяют создавать несколько скрытых разделов на одном диске, в то время как TrueCrypt ограничивается одним.
Существование скрытого тома может быть обнаружено по причине ошибочных реализаций, зависящих от предсказуемых криптографических величин , либо с помощью некоторых инструментов, использующихся в юридических целях, способных обнаруживать неслучайные зашифрованные данные. Также было предположено, что существует уязвимость для тестирования псевдослучайных последовательностей с помощью критерия Хи-квадрат (критерия Пирсона): после каждого изменения зашифрованные данные должны быть видоизменены таким образом, чтобы их распределение правдоподобно соответствовало случайному распределению.
Отрицаемое шифрование также подвержено критике в связи с невозможностью защиты пользователей от вымогательства. Сам факт обладания инструментами, осуществляющими методы отрицаемого шифрования, может заставить злоумышленника продолжить взлом данных даже после того, как пользователь выдал ему пароль, предоставляющий доступ к некоей подложной информации.
Безусловно, недостаточная криптографическая стойкость блочных шифров или числового генератора может подвергнуть риску защищенность такой файловой системы. Для того, чтобы избежать сомнений по поводу достаточной криптографической стойкости генератора, можно зашифровать псевдослучайные данные при помощи другого ключа, нежели основные данные, что приведет к неразличимости хранимой информации и пустого пространства, ведь невозможно отличить зашифрованные данные от других зашифрованных данных. И напоследок стоит отметить, что неправильное использование режимов шифрования может сделать систему уязвимой, например, к атакам по водяным знакам.[10]
Некоторые криптографические продукты (например, TrueCrypt) позволяют создавать зашифрованные контейнеры без каких-либо сигнатур. Такой контейнер, в общем случае, невозможно связать с конкретной криптографической программой (так как содержимое контейнера выглядит как сплошная случайная последовательность данных).
Контейнеры без сигнатур невозможно обнаружить программами вроде file. С другой стороны, отсутствие каких-либо сигнатур и высокая энтропия данных уже является признаком зашифрованных данных.
Некоторые продукты позволяют создавать контейнеры внутри уже существующей сплошной случайной последовательности данных. Например, TrueCrypt может создать контейнер внутри свободного пространства файловой системы другого контейнера (свободное пространство файловой системы любого контейнера TrueCrypt изначально заполнено случайными данными).
Скрытые контейнеры могут быть обнаружены в некоторых случаях на стадии анализа выключенной системы, например:
Некоторые системы, шифрующие сообщения на лету, например OTRM предоставляют возможность гибкого шифрования, что позволяет собеседникам отрицать свое участие в беседе. Хотя данный тип шифрования не является, в сущности, двусмысленным, то есть не позволяет двояко расшифровывать сообщения, он лишает противника возможности доказать участие конкретного лица в беседе, равно как и сам факт наличия обмена информацией.
Это достигается добавлением в зашифрованное сообщение информации, необходимой для его подлога. Таким образом, если противник способен создать настоящее сообщение для данной беседы, то он автоматически сможет подделывать сообщения, что вместе с совершенной прямой секретностью (англ. perfect forward secrecy) гарантирует защищенность беседы, даже если ключи для отдельных сообщений находятся под угрозой разглашения.
Это одни из самых сложных ситуаций, от которых нужно защитить себя и свои данные. Один из немногих вариантов - использовать совместное использование секрета(Secret Sharing) и иметь доступ к данным только тогда, когда в систему вводятся ключи от двух или более человек .
Чтобы это сработало, вам нужно будет широко заявить о том, что информация доступна только тогда, когда несколько человек вводят свои пароли , аналогично тому, как банки имеют знаки о своих сейфах с задержкой времени, которые нельзя открыть без ожидания, несмотря ни на что. Если ваш противник не знает, что эта система действует, он может в конечном итоге подвергнуть вас пыткам или посадить в тюрьму, потому что он вам не верит.
Другое решение - настроить данные на самоуничтожение при вводе определенного ключа с помощью функции Kali Linux . Если ваш противник захватил вас, вы можете просто дать ему ключ самоуничтожения, и данные с устройства не будут восстановлены . Однако этот метод работает только в том случае, если злоумышленник не предусмотрительно скопировал данные с первого раза , что должен сделать любой технически опытный противник.
Если вы сделаете это, то, вероятно, все закончится для вас очень плохо. Удалив данные, вы сильно разозлите своего противника, и не исключены жестокие пытки, длительное заключение или смерть.
Этот метод рекомендуется только в том случае, если вы находитесь в ситуации, когда предотвращение попадания данных в руки злоумышленника является более важным, чем ваша жизнь.
Исследование, описанное в статье про двойное дно, подчеркивает ее значимость в современном мире. Надеюсь, что теперь ты понял что такое двойное дно, скрытые контейнеры , гибкое шифрование, отрицаемое шифрование, secret sharing и для чего все это нужно, а если не понял, или есть замечания, то не стесняйся, пиши или спрашивай в комментариях, с удовольствием отвечу. Для того чтобы глубже понять настоятельно рекомендую изучить всю информацию из категории Вредоносное ПО и защита информации
Комментарии
Оставить комментарий
Информационная безопасность, Вредоносное ПО и защита информации
Термины: Информационная безопасность, Вредоносное ПО и защита информации