stringtranslate.com

Множественное шифрование

Множественное шифрование — это процесс шифрования уже зашифрованного сообщения один или несколько раз с использованием того же или другого алгоритма. Он также известен как каскадное шифрование , каскадное шифрование , множественное шифрование и супершифрование . Супершифрование относится к шифрованию внешнего уровня множественного шифрования.

Некоторые криптографы, такие как Мэтью Грин из Университета Джона Хопкинса, говорят, что множественное шифрование решает проблему, которая в большинстве случаев не существует: современные шифры редко ломаются... Вероятность того, что вас поразит вредоносное ПО или ошибка реализации, гораздо выше, чем вы сами. подвергнуться катастрофической атаке на AES . [1] .... и в этой цитате кроется причина многократного шифрования, а именно плохая реализация. Использование двух разных криптомодулей и процессов шифрования от двух разных поставщиков требует, чтобы оборудование обоих поставщиков было скомпрометировано, чтобы безопасность полностью не сработала.

Независимые клавиши

Выбрав любые два шифра , если используемый ключ один и тот же для обоих, второй шифр может частично или полностью отменить первый шифр. Это справедливо для шифров, где процесс дешифрования точно такой же, как и процесс шифрования: второй шифр полностью отменяет первый. Если злоумышленник восстановит ключ посредством криптоанализа первого уровня шифрования, он, возможно, сможет расшифровать все оставшиеся уровни, предполагая, что для всех уровней используется один и тот же ключ.

Чтобы предотвратить этот риск, можно использовать ключи, которые статистически независимы для каждого уровня (например, независимые ГСЧ ).

В идеале каждый ключ должен иметь отдельные и разные процессы генерации, совместного использования и управления.

Независимые векторы инициализации

Для процессов шифрования/дешифрования, требующих совместного использования вектора инициализации (IV)/ nonce , они обычно открыто передаются или доводятся до сведения получателя (и всех остальных). Это хорошая политика безопасности: никогда не предоставлять одни и те же данные как в открытом, так и в зашифрованном виде при использовании одного и того же ключа и IV. Поэтому рекомендуется (хотя на данный момент и без конкретных доказательств) использовать отдельные IV для каждого уровня шифрования.

Важность первого слоя

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

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

Чтобы предотвратить такого рода атаки, можно использовать метод Брюса Шнайера : [2]

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

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

Правило двух

« Правило двух» — это принцип безопасности данных, разработанный АНБ по коммерческим решениям для секретной программы (CSfC). [3] Он определяет два совершенно независимых уровня криптографии для защиты данных. Например, данные могут быть защищены как с помощью аппаратного шифрования на самом низком уровне, так и с помощью программного шифрования на уровне приложений. Это может означать использование двух проверенных FIPS программных криптомодулей от разных поставщиков для шифрования/расшифровки данных.

Важность разнообразия поставщиков и/или моделей между уровнями компонентов сосредоточена на устранении возможности того, что производители или модели будут иметь общую уязвимость. Таким образом, если один из компонентов будет скомпрометирован, все равно останется целый уровень шифрования, защищающий хранящуюся или передаваемую информацию. Программа CSfC предлагает решения для достижения разнообразия двумя способами. «Первый — реализовать каждый уровень с использованием компонентов, произведенных разными производителями. Второй — использовать компоненты одного и того же производителя, если этот производитель предоставил АНБ достаточные доказательства того, что реализации двух компонентов независимы друг от друга». [4]

Этот принцип реализован в защищенном мобильном телефоне АНБ под названием Fishbowl. [5] Для защиты голосовой связи в телефонах используются два уровня протоколов шифрования: IPsec и безопасный транспортный протокол реального времени (SRTP). Samsung Galaxy S9 Tactical Edition также является одобренным компонентом CSfC.

Примеры

На рисунке изнутри и снаружи показан процесс формирования зашифрованной капсулы в контексте протокола Echo, используемого программным приложением GoldBug Messenger. [6] GoldBug внедрил гибридную систему аутентификации и конфиденциальности. [5]

Первый уровень шифрования: зашифрованный текст исходного читаемого сообщения хешируется, а затем симметричные ключи шифруются с помощью асимметричного ключа, например, с использованием алгоритма RSA. На промежуточном этапе зашифрованный текст и хеш-дайджест зашифрованного текста объединяются в капсулу и упаковываются вместе. Он следует подходу: зашифровать-затем-MAC . Чтобы получатель мог убедиться, что зашифрованный текст не был подделан, перед расшифровкой зашифрованного текста вычисляется дайджест.

Второй уровень шифрования: опционально все еще возможно, поэтому дополнительно зашифровать капсулу первого уровня с помощью AES-256 , что сравнимо с широко используемым 32-значным симметричным паролем. Гибридное шифрование затем добавляется к множественному шифрованию. [ нужна цитата ]

Третий уровень шифрования: затем эта капсула передается через безопасное соединение SSL/TLS партнеру по связи.

Рекомендации

  1. Грин, Мэтью (2 февраля 2012 г.). «Множественное шифрование».
  2. Шнайер, Брюс (30 марта 2015 г.). Прикладная криптография, второе издание: протоколы, алгоритмы и исходный код в C. Wiley Computer Publishing. п. 368. ИСБН 9781119096726.
  3. ^ «Коммерческие решения для секретной программы» . Агентство национальной безопасности США. Архивировано из оригинала 25 декабря 2015 года . Проверено 24 декабря 2015 г.
  4. ^ «Пакет возможностей мобильного доступа» . Агентство национальной безопасности США . Проверено 28 февраля 2020 г. .
  5. ^ Аб Адамс, Дэвид / Майер, Анн-Катрин (2016): Исследование BIG SEVEN, крипто-мессенджеры с открытым исходным кодом для сравнения - или: Комплексный обзор конфиденциальности и аудит GoldBug, шифрования клиента электронной почты и безопасного обмена мгновенными сообщениями, описания , тесты и аналитические обзоры 20 функций приложения GoldBug на основе основных полей и методов оценки 8 основных международных руководств по аудиту для расследований ИТ-безопасности, включая 38 рисунков и 87 таблиц. URL: https://sf.net/ project/goldbug/files/bigseven-crypto-audit.pdf — английский/немецкий язык, версия 1.1, 305 страниц, июнь 2016 г. (ISBN: DNB 110368003X — 2016B14779)
  6. ^ «GoldBug - безопасный клиент электронной почты и мгновенный обмен сообщениями» .

дальнейшее чтение