Из Википедии, свободной энциклопедии
Перейти к навигации Перейти к поиску

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

Определение проблемы [ править ]

Методы шифрования диска стремятся обеспечить три различных свойства:

  1. Данные на диске должны оставаться конфиденциальными .
  2. Получение и хранение данных должны быть быстрыми операциями, независимо от того, где на диске хранятся данные.
  3. Метод шифрования не должен тратить впустую дисковое пространство (т. Е. Объем хранилища, используемый для зашифрованных данных, не должен быть значительно больше, чем размер открытого текста ).

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

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

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

Второе свойство требует разделения диска на несколько секторов , обычно по 512 байт (4096 бит), которые шифруются и дешифруются независимо друг от друга. В свою очередь, чтобы данные оставались конфиденциальными, метод шифрования должен быть настраиваемым ; никакие два сектора не должны обрабатываться одинаково. В противном случае злоумышленник может расшифровать любой сектор диска, скопировав его в неиспользуемый сектор диска и запросив его расшифровку.

Третье свойство, как правило, не вызывает споров. Однако он косвенно запрещает использование потоковых шифров , поскольку потоковые шифры для своей безопасности требуют, чтобы одно и то же начальное состояние не использовалось дважды (что может иметь место, если сектор обновляется разными данными); таким образом, для этого потребуется метод шифрования для хранения отдельных начальных состояний для каждого сектора на диске - по-видимому, пустая трата места. Альтернатива, блочный шифр , ограничена определенным размером блока (обычно 128 или 256 бит). Из-за этого шифрование диска в основном изучает режимы цепочки , которые увеличивают длину блока шифрования, чтобы покрыть весь сектор диска . Уже перечисленные соображения делают несколько известных режимов цепочки неподходящими:Режим ECB , который нельзя настроить, и режимы, которые превращают блочные шифры в потоковые шифры, такие как режим CTR .

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

Режимы на основе блочного шифра [ править ]

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

Цепочка блоков шифрования (CBC) [ править ]

Цепочка зашифрованных блоков (CBC) - это общий режим цепочки, в котором зашифрованный текст предыдущего блока перед шифрованием сравнивается с открытым текстом текущего блока:

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

CBC страдает некоторыми проблемами. Например, если IV предсказуемы, то злоумышленник может оставить «водяной знак» на диске, то есть сохранить специально созданный файл или комбинацию файлов, идентифицируемых даже после шифрования. Точный метод создания водяного знака зависит от точной функции, обеспечивающей IV, но общий рецепт состоит в создании двух зашифрованных секторов с идентичными первыми блоками и ; эти двое затем связаны друг с другом посредством . Таким образом, шифрование идентично шифрованию , оставляя водяной знак на диске. Затем можно изменить точный шаблон «такой же-другой-такой же-другой» на диске, чтобы сделать водяной знак уникальным для данного файла.

Для защиты от атаки с использованием водяных знаков используется шифр или хеш-функция для генерации IV из ключа и текущего номера сектора, так что злоумышленник не может предсказать IV. В частности, подход ESSIV использует блочный шифр в режиме CTR для генерации IV.

Зашифрованный вектор инициализации соляного сектора (ESSIV) [ править ]

ESSIV [1] - это метод генерации векторов инициализации для блочного шифрования для использования при шифровании диска. Обычные методы генерации IV представляют собой предсказуемые последовательности чисел на основе, например, отметки времени или номера сектора, и предотвращают определенные атаки, такие как атака с использованием водяных знаков . ESSIV предотвращает такие атаки, генерируя IV из комбинации номера сектора SN с хешем ключа. Именно комбинация с ключом в виде хеша делает IV непредсказуемым.

ESSIV был разработан Клеменсом Фрувиртом и был интегрирован в ядро Linux с версии 2.6.10, хотя аналогичная схема использовалась для генерации IV для шифрования подкачки OpenBSD с 2000 года [2].

ESSIV поддерживается в качестве опции системами шифрования дисков dm-crypt [3] и FreeOTFE .

Атака пластичности [ править ]

Хотя CBC (с ESSIV или без него) обеспечивает конфиденциальность, он не гарантирует целостность зашифрованных данных. Если злоумышленнику известен открытый текст, можно изменить каждый второй блок открытого текста на значение, выбранное злоумышленником, в то время как блоки между ними изменяются на случайные значения. Это может быть использовано для практических атак на шифрование диска в режиме CBC или CBC-ESSIV. [4]

Лисков, Ривест и Вагнер (LRW) [ править ]

Чтобы предотвратить такие сложные атаки, были введены различные режимы работы: настраиваемое узкоблочное шифрование (LRW и XEX) и широкоблочное шифрование (CMC и EME).

В то время как цель обычного блочного шифра - имитировать случайную перестановку для любого секретного ключа , цель настраиваемого шифрования - имитировать случайную перестановку для любого секретного ключа и любой известной настройки . Настраиваемое узкоблочное шифрование (LRW) [5] представляет собой реализацию режима операций, введенного Лисковым, Ривестом и Вагнером [6] (см. Теорему 2). В этом режиме используются два ключа: ключ для блочного шифра и дополнительный ключ того же размера, что и блок. Например, для AES с 256-битным ключом это 256-битное число и 128-битное число. Блок шифрования с логическим индексом (твик) использует следующую формулу:

Здесь умножение и сложение выполняются в конечном поле ( для AES). При некоторых предварительных вычислениях требуется только одно умножение на сектор (обратите внимание, что сложение в двоичном конечном поле - это простое побитовое сложение, также известное как xor):, где предварительно вычисляются для всех возможных значений . В этом режиме работы требуется только одно шифрование для каждого блока, и он защищает от всех вышеперечисленных атак, за исключением незначительной утечки: если пользователь изменяет один блок открытого текста в секторе, то изменяется только один блок зашифрованного текста. (Обратите внимание, что это не та же утечка, что и в режиме ECB: в режиме LRW одинаковые открытые тексты в разных позициях зашифровываются в разные зашифрованные тексты.)

Некоторые проблемы безопасности существуют с LRW , и этот режим работы теперь заменен XTS.

LRW используется BestCrypt и поддерживается в качестве опции для систем шифрования дисков dm-crypt и FreeOTFE .

Xor – encrypt – xor (XEX) [ править ]

Другой настраиваемый режим шифрования, XEX ( xor- encrypt -xor ), был разработан Rogaway [7] для обеспечения эффективной обработки последовательных блоков (по отношению к используемому шифру) в пределах одной единицы данных (например, сектора диска). Настройка представлена ​​как комбинация адреса сектора и индекса блока внутри сектора (исходный режим XEX, предложенный Rogaway [7], допускает несколько индексов). Зашифрованный текст получается с использованием:

где:

это открытый текст,
это номер сектора,
является примитивным элементом, определяемым полиномом ; т.е. число 2 ,
- номер блока в секторе.

Основные операции режима LRW (шифр AES и умножение поля Галуа ) такие же, как и в режиме счетчика Галуа (GCM), что позволяет компактно реализовать универсальное оборудование LRW / XEX / GCM.

У XEX есть слабость. [8]

Режим настраиваемой кодовой книги на основе XEX с кражей зашифрованного текста (XTS)[ редактировать ]

Кража зашифрованного текста обеспечивает поддержку секторов, размер которых не делится на размер блока, например 520-байтовых секторов и 16-байтовых блоков. XTS-AES был стандартизирован 19 декабря 2007 г. [9] как IEEE P1619 . [10] Стандарт поддерживает использование другого ключа для шифрования IV, чем для блочного шифрования; это противоречит намерениям XEX и, по-видимому, коренится в неправильной интерпретации исходной статьи XEX, но не вредит безопасности. [11] [7] В результате пользователи, желающие использовать шифрование AES- 256 и AES-128, должны предоставить 512 бит и 256 бит ключа соответственно.

27 января 2010 года NIST выпустил в окончательном виде Специальную публикацию (SP) 800-38E [12] . SP 800-38E - это рекомендация для режима работы XTS-AES, стандартизованного IEEE Std 1619-2007, для криптографических модулей. Публикация утверждает режим XTS-AES алгоритма AES со ссылкой на IEEE Std 1619-2007 с учетом одного дополнительного требования, которое ограничивает максимальный размер каждой зашифрованной единицы данных (обычно сектора или блока диска ) до 2 20Блоки AES. Согласно SP 800-38E, «При отсутствии аутентификации или контроля доступа XTS-AES обеспечивает большую защиту от несанкционированного манипулирования зашифрованными данными, чем другие одобренные режимы только с соблюдением конфиденциальности».

XTS поддерживается BestCrypt , Ботан , NetBSD 's CGD, [13] дм-крипт , FreeOTFE , TrueCrypt , VeraCrypt , [14] DiskCryptor , FreeBSD ' ы Гели , OpenBSD SoftRAID шифрования диска программное обеспечение, OpenSSL , Mac OS X Lion «ы FileVault 2, в Windows 10 «сек BitLocker [15] и wolfCrypt .

Слабые стороны XTS [ править ]

Режим XTS восприимчив к манипуляциям и подделке данных, и приложения должны использовать меры для обнаружения модификаций данных, если манипуляции и подделка вызывают озабоченность: «... поскольку нет тегов аутентификации, любой зашифрованный текст (исходный или измененный злоумышленником) будет расшифровывается как некий открытый текст, и нет встроенного механизма для обнаружения изменений. Лучшее, что можно сделать, - это гарантировать, что любое изменение зашифрованного текста полностью рандомизирует открытый текст, и полагаться на приложение, которое использует это преобразование, чтобы включить достаточную избыточность в своем открытом тексте, чтобы обнаруживать и отбрасывать такие случайные открытые тексты ". Это потребует ведения контрольных сумм для всех данных и метаданных на диске, как это делается в ZFS или Btrfs . Однако в часто используемых файловых системах, таких какМетаданные только ext4 и NTFS защищены от подделки, в то время как обнаружение подделки данных отсутствует. [16]

Режим восприимчив к анализу трафика, атакам воспроизведения и рандомизации на сектора и 16-байтовые блоки. Когда данный сектор перезаписывается, злоумышленники могут собирать мелкозернистые (16-байтовые) зашифрованные тексты, которые можно использовать для анализа или повторных атак (с 16-байтовой степенью детализации). Можно было бы определить блочные шифры для всего сектора, к сожалению, с ухудшенной производительностью (см. Ниже). [17]

CBC – маска – CBC (CMC) и ECB – маска – ECB (EME) [ править ]

CMC и EME защищают даже от незначительной утечки, упомянутой выше для ЖРО. К сожалению, цена заключается в двукратном снижении производительности: каждый блок должен быть дважды зашифрован; многие считают, что это слишком дорого, поскольку такая же утечка на уровне сектора в любом случае неизбежна.

CMC, введенный Halevi и Rogaway, означает CBC – mask – CBC: весь сектор зашифрован в режиме CBC (с ), зашифрованный текст маскируется с помощью xoring и повторно шифруется в режиме CBC, начиная с последнего блока. Когда базовый блочный шифр представляет собой сильную псевдослучайную перестановку (PRP), тогда на уровне сектора схема представляет собой настраиваемый PRP. Одна из проблем заключается в том, что для расшифровки необходимо последовательно дважды передать все данные.

Чтобы решить эту проблему, Халеви и Рогавей ввели распараллеливаемый вариант под названием EME (ECB – mask – ECB). Это работает следующим образом:

  • в открытые тексты являются операции XOR с , сдвинуты на разное количество влево, и шифруются: ;
  • маска рассчитывается:, где и ;
  • маскируются промежуточные шифртексты: для и ;
  • рассчитываются окончательные шифртексты: для .

Обратите внимание, что в отличие от LRW и CMC здесь только один ключ .

CMC и EME были рассмотрены для стандартизации SISWG . EME запатентован и поэтому не считается основным поддерживаемым режимом. [18]

Патенты [ править ]

Хотя схема аутентифицированного шифрования IAPM обеспечивает шифрование, а также тег аутентификации, компонент шифрования режима IAPM полностью описывает схемы LRW и XEX, указанные выше, и, следовательно, XTS без аспекта кражи зашифрованного текста . Это подробно описано на фиг. 8 и 5 патента США 6,963,976. [19]

См. Также [ править ]

  • Остаточная информация
  • Атака холодной загрузки
  • Программное обеспечение для шифрования дисков
  • Аппаратное шифрование диска
  • IEEE P1619 , проект стандартизации для шифрования данных хранилища

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

  1. ^ Clemens Fruhwirth (18 июля 2005). «Новые методы шифрования жесткого диска» (PDF) . Институт компьютерных языков: группа теории и логики (PDF). Венский технологический университет.
  2. ^ «Шифрование виртуальной памяти» (Postscript). Cite journal requires |journal= (help)
  3. ^ Милан Броз. «DMCrypt dm-crypt: криптографическая цель устройства отображения ядра Linux» . gitlab.com . Проверено 5 апреля 2015 года .
  4. ^ Jakob Lell (2013-12-22). «Практическая гибкая атака на разделы LUKS с шифрованием CBC» .
  5. ^ Последние проекты SISWG и IEEE P1619 и информация о собраниях находятся на домашней странице P1619 [1] .
  6. ^ М. Лисков, Р. Ривест и Д. Вагнер. Настраиваемые блочные шифры [2] , CRYPTO '02 (LNCS, volume 2442), 2002.
  7. ^ a b c Рогавей, Филипп (24 сентября 2004 г.). «Эффективные экземпляры настраиваемых блок-шифров и уточнения режимов OCB и PMAC» (PDF) . Кафедра компьютерных наук (PDF). Калифорнийский университет в Дэвисе.
  8. ^ https://link.springer.com/content/pdf/10.1007/978-3-540-74462-7_8.pdf раздел 4.1.
  9. Карен МакКейб (19 декабря 2007 г.). «IEEE утверждает стандарты шифрования данных» . Ассоциация стандартов IEEE. Архивировано из оригинала на 2008-03-06.
  10. ^ Стандарт криптографической защиты данных на блочно-ориентированных устройствах хранения . Цифровая библиотека IEEE Xplore. 18 апреля 2008 г. doi : 10.1109 / IEEESTD.2008.4493450 . ISBN 978-0-7381-5363-6.
  11. ^ Лисков, Моисей; Минемацу, Казухико (2 сентября 2008 г.). «Комментарии к XTS-AES» (PDF) . , Об использовании двух ключей , стр. 1–3.
  12. Моррис Дворкин (январь 2010 г.). «Рекомендации по режимам работы блочного шифра: режим XTS-AES для конфиденциальности на устройствах хранения» (PDF) . Специальная публикация NIST 800-38E. Национальный институт стандартов и технологий . Cite journal requires |journal= (help)
  13. ^ "Драйвер криптографического диска NetBSD" .
  14. ^ «Режимы работы» . Документация VeraCrypt . IDRIX . Проверено 13 октября 2017 .
  15. ^ "Что нового в BitLocker?" . 12 ноября 2015 года . Проверено 15 ноября 2015 .
  16. ^ Стандарт криптографической защиты данных на блочно-ориентированных запоминающих устройствах (PDF) , IEEE P1619 / D16, 2007, стр. 34, архивировано из оригинального (PDF) 14 апреля 2016 г. , извлечено 14 сентября 2012 г.
  17. ^ Томас Птачек; Эрин Птачек (30 апреля 2014 г.). «Вы не хотите XTS» .
  18. ^ P. Rogaway, Режим работы блочного шифра для построения блочного шифра большого размера из обычного блочного шифра , заявка на патент США 20040131182 A1.
  19. ^ * Патент США 6 963 976, «Симметричные схемы шифрования с аутентификацией ключа» (подана в ноябре 2000 г., выдана в ноябре 2005 г., истекает 25 ноября 2022 г.) [3] [4] .

Дальнейшее чтение [ править ]

  • С. Халеви и П. Рогавей, Настраиваемый режим шифрования , CRYPTO '03 (LNCS, том 2729), 2003.
  • С. Халеви и П. Рогавей, Режим параллельного шифрования [5] , 2003.
  • Стандартная архитектура для зашифрованных общих носителей данных, проект IEEE 1619 (P1619), [6] .
  • SISWG, Проект предложения по формату резервного копирования ключей [7] , 2004 г.
  • SISWG, Проект предложения по настраиваемому широкоблочному шифрованию [8] , 2004 г.
  • Джеймс Хьюз, Зашифрованное хранилище - проблемы и методы [9]
  • Дж. Алекс Халдерман , Сет Д. Шон , Надя Хенингер , Уильям Кларксон, Уильям Пол, Джозеф А. Каландрино, Ариэль Дж. Фельдман, Джейкоб Аппельбаум и Эдвард В. Фелтен (21 февраля 2008 г. ). «Чтобы мы не помнили: атаки холодной загрузки на ключи шифрования» (PDF) . Принстонский университет . Архивировано из оригинального (PDF) 14 мая 2008 года. Cite journal requires |journal= (help)CS1 maint: multiple names: authors list (link)
  • Нильс Фергюссон (август 2006 г.). «AES-CBC + Elephant Diffuser: алгоритм шифрования диска для Windows Vista» (PDF) . Microsoft . Cite journal requires |journal= (help)

Внешние ссылки [ править ]

  • Рабочая группа по безопасности в хранилище SISWG .
  • «Проект eSTREAM» . Проверено 28 марта 2010 .