Теория шифрования диска
Шифрование диска — это особый случай защиты данных, находящихся в состоянии покоя , когда носителем данных является устройство с секторной адресацией (например, жесткий диск). В данной статье представлены криптографические аспекты проблемы. Обзор см. в разделе Шифрование диска . Для обсуждения различных пакетов программного обеспечения и аппаратных устройств, посвященных этой проблеме, см. Программное обеспечение для шифрования диска и Аппаратное обеспечение для шифрования диска .
Определение проблемы
[ редактировать ]Методы шифрования диска призваны обеспечить три различных свойства:
- Данные на диске должны оставаться конфиденциальными .
- Извлечение и хранение данных должны быть быстрыми операциями, независимо от того, где на диске хранятся данные.
- Метод шифрования не должен тратить дисковое пространство (т. е. объем памяти, используемый для зашифрованных данных, не должен значительно превышать размер открытого текста ).
Первое свойство требует определения злоумышленника , конфиденциальность данных которого сохраняется. Самые сильные противники, изученные в области шифрования дисков, обладают следующими способностями:
- они могут прочитать необработанное содержимое диска в любое время;
- они могут запросить диск для шифрования и хранения произвольных файлов по своему выбору;
- и они могут изменять неиспользуемые сектора на диске, а затем запрашивать их расшифровку.
Метод обеспечивает хорошую конфиденциальность, если единственная информация, которую такой злоумышленник может определить с течением времени, — это изменились или не изменились данные в секторе с момента последнего просмотра.
Второе свойство требует разделения диска на несколько секторов , обычно длиной 512 байт ( 4096 бит), которые шифруются и расшифровываются независимо друг от друга. В свою очередь, если данные должны оставаться конфиденциальными, метод шифрования должен быть настраиваемым ; никакие два сектора не должны обрабатываться одинаково. В противном случае злоумышленник может расшифровать любой сектор диска, скопировав его в неиспользуемый сектор диска и запросив его расшифровку. Тогда как цель обычного блочного шифра заключается в имитации случайной перестановки любого секретного ключа , цель настраиваемого шифрования заключается в имитации случайной перестановки любого секретного ключа и любые известные настройки .
Третье свойство в целом не вызывает споров. Однако он косвенно запрещает использование потоковых шифров , поскольку для своей безопасности потоковые шифры требуют, чтобы одно и то же начальное состояние не использовалось дважды (что было бы в случае, если сектор обновляется разными данными); таким образом, для этого потребуется метод шифрования для хранения отдельных начальных состояний для каждого сектора на диске — что, по-видимому, является пустой тратой места. Альтернатива — блочный шифр — ограничена определенным размером блока (обычно 128 или 256 бит). По этой причине шифрование диска в основном изучает режимы цепочки , которые расширяют длину блока шифрования, чтобы охватить весь сектор диска . Уже перечисленные соображения делают непригодными несколько известных режимов цепочки: режим ECB , который нельзя настроить, и режимы, превращающие блочные шифры в поточные шифры, такие как режим CTR .
Эти три свойства не обеспечивают никакой гарантии целостности диска; то есть они не сообщают вам, модифицировал ли злоумышленник ваш зашифрованный текст. Частично это связано с тем, что абсолютная гарантия целостности диска невозможна: несмотря ни на что, злоумышленник всегда может вернуть весь диск в предыдущее состояние, минуя любые подобные проверки. Если требуется некоторый неабсолютный уровень целостности диска, его можно достичь на зашифрованном диске для каждого файла отдельно, используя коды аутентификации сообщений .
Узкий и широкий блок
[ редактировать ]Методы шифрования диска также различают на «узкоблочные» и «широкоблочные». Для открытого текста размером с сектор узкоблочный метод шифрует его в нескольких блоках, тогда как широкоблочный метод делает это только в одном. Методы узкой блокировки, такие как LRW, XES и XTS, позволяют злоумышленнику использовать степень детализации блоков для анализа и воспроизведения трафика. [1] Широкоблочный шифр в идеале делает весь зашифрованный текст нераспознаваемым при изменении любого места открытого текста. [2]
Режимы на основе блочного шифрования
[ редактировать ]В этой статье отсутствует информация о XCB, которая содержится в стандарте IEEE 1619.2 2010; несколько известен недостатками в доказательствах безопасности . ( март 2024 г. ) |
Как и большинство схем шифрования, дисковое шифрование на основе блочного шифра использует режимы работы , которые позволяют шифровать большие объемы данных, чем размер блока шифра (обычно 128 бит). Таким образом, режимы — это правила многократного применения одноблочных операций шифров.
Цепочка шифроблоков (CBC)
[ редактировать ]Цепочка шифроблоков (CBC) — это общий режим цепочки, в котором зашифрованный текст предыдущего блока перед шифрованием фиксируется с открытым текстом текущего блока:
Поскольку для первого блока не существует «зашифрованного текста предыдущего блока», качестве в . Это, в свою очередь, делает CBC в некотором смысле настраиваемым.
CBC страдает от некоторых проблем. Например, если IV предсказуемы, то злоумышленник может оставить на диске «водяной знак», то есть сохранить специально созданный файл или комбинацию файлов, которые можно идентифицировать даже после шифрования. Точный метод создания водяного знака зависит от конкретной функции, предоставляющей IV, но общий рецепт состоит в том, чтобы создать два зашифрованных сектора с идентичными первыми блоками. и ; эти два затем связаны друг с другом . Таким образом, шифрование идентично шифрованию , оставив водяной знак на диске. Точный шаблон «тот же-разный-то же-разный» на диске затем можно изменить, чтобы сделать водяной знак уникальным для данного файла.
Для защиты от атаки с использованием водяных знаков используется шифр или хэш-функция для генерации IV на основе ключа и текущего номера сектора, так что злоумышленник не может предсказать IV. В частности, подход ESSIV использует блочный шифр в режиме CTR для генерации IV.
Зашифрованный вектор инициализации солевого сектора (ESSIV)
[ редактировать ]ЭССИВ [3] — это метод генерации векторов инициализации для блочного шифрования, используемого при шифровании диска. Обычные методы генерации IV представляют собой предсказуемые последовательности чисел, основанные, например, на метке времени или номере сектора, и допускают определенные атаки, такие как атака с использованием водяных знаков . ESSIV предотвращает такие атаки, генерируя IV из комбинации номера сектора SN и хеша ключа. Именно комбинация с ключом в виде хеша делает IV непредсказуемым.
ESSIV был разработан Клеменсом Фрувиртом и интегрирован в ядро Linux начиная с версии 2.6.10, хотя аналогичная схема использовалась для создания IV для шифрования подкачки OpenBSD с 2000 года. [4]
ESSIV поддерживается в качестве опции dm-crypt. [5] и FreeOTFE системы шифрования дисков .
Атака податливости
[ редактировать ]Хотя CBC (с ESSIV или без него) обеспечивает конфиденциальность, он не гарантирует целостность зашифрованных данных. Если злоумышленнику известен открытый текст, можно изменить каждый второй блок открытого текста на значение, выбранное злоумышленником, в то время как блоки между ними будут изменены на случайные значения. Это можно использовать для практических атак на шифрование диска в режиме CBC или CBC-ESSIV. [6]
Лисков, Ривест и Вагнер (LRW)
[ редактировать ]Настраиваемое узкоблочное шифрование (LRW). [7] является воплощением режима операций, введенного Лисковым, Ривестом и Вагнером. [8] (см. теорему 2). В этом режиме используются две клавиши: является ключом для блочного шифра и — дополнительный ключ того же размера, что и блок. Например, для AES с 256-битным ключом: это 256-битное число и это 128-битное число. Шифровальный блок с логическим индексом (настройка) использует следующую формулу:
Здесь умножение и дополнение выполняются в конечном поле ( для AES). После некоторых предварительных вычислений требуется только одно умножение на сектор (обратите внимание, что сложение в двоичном конечном поле представляет собой простое побитовое сложение, также известное как xor): , где предварительно вычисляются для всех возможных значений . Этот режим работы требует только одного шифрования для каждого блока и защищает от всех вышеперечисленных атак, за исключением незначительной утечки: если пользователь меняет один блок открытого текста в секторе, изменяется только один блок зашифрованного текста. (Обратите внимание, что это не та же утечка, что и в режиме ECB: в режиме LRW одинаковые открытые тексты в разных позициях шифруются разными зашифрованными текстами.)
некоторые С LRW существуют проблемы безопасности , и этот режим работы теперь заменен XTS.
LRW используется BestCrypt и поддерживается в качестве опции для систем шифрования дисков dm-crypt и FreeOTFE .
Xor-encrypt-xor (XEX)
[ редактировать ]Другой настраиваемый режим шифрования, XEX ( xor-encrypt-xor ), был разработан Рогавеем. [9] чтобы обеспечить эффективную обработку последовательных блоков (относительно используемого шифра) в пределах одного блока данных (например, сектора диска). Твик представлен как комбинация адреса сектора и индекса блока внутри сектора (оригинальный режим XEX, предложенный Rogaway). [9] допускает несколько индексов). Зашифрованный текст, , получается с помощью:
где:
- это открытый текст,
- номер сектора,
- является примитивным элементом определяется полиномом ; то есть число 2 ,
- — номер блока внутри сектора. XEX использует ; XTS использует .
Основные операции режима LRW (шифр AES и умножение полей Галуа ) такие же, как и в режиме Галуа/Счетчик (GCM), что позволяет компактно реализовать универсальное аппаратное обеспечение LRW/XEX/GCM.
У оригинального XEX есть слабость. [10]
Режим измененной кодовой книги на основе XEX с кражей зашифрованного текста (XTS)
[ редактировать ]Кража зашифрованного текста обеспечивает поддержку секторов, размер которых не делится на размер блока, например, секторы по 520 байт и блоки по 16 байт. XTS-AES был стандартизирован 19 декабря 2007 г. [11] как IEEE P1619 . [12] Стандарт XTS требует использования другого ключа для шифрования IV, чем для блочного шифрования; это отличается от XEX, который использует только один ключ. [9] [13] : 1–4 В результате пользователи, которым требуется шифрование AES -256 и AES-128, должны предоставить 512-битный и 256-битный ключ соответственно. Два ключа (т. е. обе половины ключа XTS) должны быть разными, чтобы XTS был CCA-безопасным, поскольку XTS вычисляет последовательность начиная с ; это отличается от XEX, который начинается с . [9] : 7 [13] : 6
27 января 2010 г. NIST выпустил специальную публикацию (SP) 800-38E. [14] в окончательном виде. 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 , Botan , NetBSD , cgd [15] dm-crypt , FreeOTFE , TrueCrypt , VeraCrypt , [16] DiskCryptor , FreeBSD для geli , программное обеспечение для шифрования дисков OpenBSD softraid, OpenSSL , Mac OS X Lion 2 для FileVault , Windows 10 для BitLocker [17] и волккрипт .
Слабые стороны XTS
[ редактировать ]нет, Режим XTS подвержен манипулированию и подделке данных, и приложения должны использовать меры для обнаружения изменений данных, если манипуляция и подделка вызывают беспокойство: «...поскольку тегов аутентификации любой зашифрованный текст (исходный или измененный злоумышленником) будет расшифровывается как некоторый открытый текст, и нет встроенного механизма для обнаружения изменений. Лучшее, что можно сделать, — это гарантировать, что любое изменение зашифрованного текста полностью рандомизирует открытый текст, и полагаться на то, что приложение, использующее это преобразование, включает достаточную избыточность. в его открытом тексте, чтобы обнаружить и отбросить такие случайные открытые тексты». Для этого потребуется поддерживать контрольные суммы для всех данных и метаданных на диске, как это делается в ZFS или Btrfs . Однако в широко используемых файловых системах, таких как ext4 и NTFS, от подделки защищены только метаданные, а обнаружение подделки данных отсутствует. [18]
Этот режим чувствителен к анализу трафика, повторному воспроизведению и атакам рандомизации на сектора и 16-байтовые блоки. При перезаписи данного сектора злоумышленники могут собирать мелкозернистые (16 байт) зашифрованные тексты, которые можно использовать для анализа или повторных атак (с степенью детализации 16 байт). Можно было бы определить общесекторные блочные шифры, но, к сожалению, с ухудшением производительности (см. ниже). [1]
CBC-маска-CBC (CMC) и ECB-маска-ECB (EME)
[ редактировать ]CMC и EME защищают даже от упомянутой выше незначительной утечки ЖРО. К сожалению, цена — двукратное снижение производительности: каждый блок необходимо шифровать дважды; многие считают это слишком высокой ценой, поскольку такая же утечка на уровне сектора в любом случае неизбежна.
CMC, введенный Халеви и Рогавеем, означает CBC-mask-CBC: весь сектор зашифрован в режиме CBC (с ), зашифрованный текст маскируется с помощью xoring с помощью и повторно зашифрован в режиме CBC, начиная с последнего блока. Если базовый блочный шифр представляет собой стойкую псевдослучайную перестановку (PRP), то на уровне сектора схема представляет собой настраиваемую PRP. Одна из проблем заключается в том, что для расшифровки необходимо последовательно пройти все данные дважды.
Чтобы решить эту проблему, Халеви и Рогауэй представили распараллеливаемый вариант под названием EME (ECB-маска-ECB). Это работает следующим образом:
- открытые тексты фиксируются с помощью , сдвинуты на разную величину влево и зашифрованы: ;
- маска рассчитывается: , где и ;
- промежуточные зашифрованные тексты маскируются: для и ;
- окончательные зашифрованные тексты вычисляются: для .
Обратите внимание, что в отличие от LRW и CMC здесь имеется только один ключ. .
CMC и EME рассматривались на предмет стандартизации SISWG . EME запатентован, поэтому его не рекомендуют использовать в качестве основного поддерживаемого режима. [19]
Режимы потокового шифрования
[ редактировать ]Конструкция HBSH (хеш, блочный шифр, потоковый шифр, хеш), опубликованная сотрудниками Google в 2018 году, позволяет использовать быстрый потоковый шифр при шифровании дисков. Схема Adiantum , используемая в младших устройствах Android, специально выбирает NH , 256-битный расширенный стандарт шифрования (AES-256), ChaCha12 и Poly1305 . Конструкция сборная и широкоблочная. Для этого требуется три прохода данных, но он все равно быстрее, чем AES-128-XTS на ARM Cortex-A7 (который не имеет набора инструкций AES ). [20]
В 2023 году Альдо Гансинг, Джоан Дэмен и Барт Меннинк представили «двухэтажную» конструкцию, в которой также используется поточный шифр. Он снова настраиваемый и широкоблочный. [2]
Патенты
[ редактировать ]Хотя шифрования с аутентификацией схема IAPM обеспечивает шифрование, а также тег аутентификации, компонент шифрования режима IAPM полностью описывает схемы LRW и XEX, описанные выше, и, следовательно, XTS без аспекта кражи зашифрованного текста . Это описано в подробно на рисунках 8 и 5 патента США 6963976. [21]
См. также
[ редактировать ]- Остаточность данных
- Атака с холодной загрузкой
- Программа для шифрования диска
- Аппаратное шифрование диска
- IEEE P1619 , проект стандартизации шифрования данных хранения.
Ссылки
[ редактировать ]- ^ Jump up to: а б Томас Птачек; Эрин Птачек (30 апреля 2014 г.). «Тебе не нужен XTS» .
- ^ Jump up to: а б Альдо Гансинг; Джоан Дэмен; Барт Меннинк. Режимы палубного широкоблочного шифрования (PDF) . Третий семинар NIST по режимам работы блочных шифров, 2023 г.
- ^ Клеменс Фрувирт (18 июля 2005 г.). «Новые методы шифрования жесткого диска» (PDF) . Институт компьютерных языков: группа теории и логики (PDF) . Венский технологический университет.
- ^ «Шифрование виртуальной памяти» (Постскриптум).
{{cite journal}}
: Для цитирования журнала требуется|journal=
( помощь ) - ^ Милан Броз. «DMCrypt dm-crypt: криптографическая цель устройства сопоставления устройств ядра Linux» . gitlab.com . Проверено 5 апреля 2015 г.
- ^ Якоб Лелль (22 декабря 2013 г.). «Практическая гибкая атака на разделы LUKS, зашифрованные CBC» .
- ^ Последние проекты SISWG и IEEE P1619, а также информация о собраниях находятся на домашней странице P1619 [1] .
- ^ М. Лисков, Р. Ривест и Д. Вагнер. Настраиваемые блочные шифры [2]. Архивировано 5 декабря 2008 г. в Wayback Machine , CRYPTO '02 (LNCS, том 2442), 2002 г.
- ^ Jump up to: а б с д Рогауэй, Филипп (24 сентября 2004 г.). «Эффективное создание настраиваемых блочных шифров и уточнения режимов OCB и PMAC» (PDF) . Кафедра компьютерных наук (PDF) . Калифорнийский университет в Дэвисе.
- ^ Минемацу, Кадзухико (2007). «Улучшенный анализ безопасности режимов XEX и LRW» (PDF) . Избранные области криптографии . Конспекты лекций по информатике. Том. 4356. стр. 96–113. дои : 10.1007/978-3-540-74462-7_8 . ISBN 978-3-540-74461-0 .
- ^ Карен МакКейб (19 декабря 2007 г.). «IEEE утверждает стандарты шифрования данных» . Ассоциация стандартов IEEE. Архивировано из оригинала 06 марта 2008 г.
- ^ Стандарт IEEE для криптографической защиты данных на блочно-ориентированных устройствах хранения данных . 18 апреля 2008 г. стр. 1–40. дои : 10.1109/IEESTD.2008.4493450 . ISBN 978-0-7381-5363-6 .
{{cite book}}
:|journal=
игнорируется ( помогите ) - ^ Jump up to: а б Лисков, Моисей; Минемацу, Кадзухико (02 сентября 2008 г.). «Комментарии к XTS-AES» (PDF) .
- ^ Моррис Дворкин (январь 2010 г.). «Рекомендации по режимам работы блочного шифрования: режим XTS-AES для конфиденциальности на устройствах хранения» (PDF) . Специальная публикация NIST 800-38E. Национальный институт стандартов и технологий . doi : 10.6028/NIST.SP.800-38E .
{{cite journal}}
: Для цитирования журнала требуется|journal=
( помощь ) - ^ «Драйвер криптографического диска NetBSD» . Архивировано из оригинала 08 января 2019 г. Проверено 7 января 2019 г.
- ^ «Режимы работы» . Документация VeraCrypt . ИДРИКС . Проверено 13 октября 2017 г.
- ^ «Что нового в BitLocker?» . 12 ноября 2015 года . Проверено 15 ноября 2015 г.
- ^ Стандарт криптографической защиты данных на блочно-ориентированных устройствах хранения данных (PDF) , IEEE P1619/D16, 2007 г., стр. 34, заархивировано из оригинала (PDF) 14 апреля 2016 г. , получено 14 сентября 2012 г.
- ^ П. Рогауэй, Режим работы блочного шифра для построения блочного шифра с широким блоком из обычного блочного шифра , Заявка на патент США 20040131182 A1.
- ^ Кроули, Пол; Биггерс, Эрик (13 декабря 2018 г.). «Адиантум: шифрование с сохранением длины для процессоров начального уровня» . Транзакции IACR по симметричной криптологии : 39–61. дои : 10.13154/tosc.v2018.i4.39-61 .
- ^ * Патент США № 6,963,976, «Схемы шифрования с аутентификацией симметричным ключом» (подана в ноябре 2000 г., выдана в ноябре 2005 г., срок действия истекает 25 ноября 2022 г.) [3] . Архивировано 11 августа 2018 г. в Wayback Machine [4] .
Дальнейшее чтение
[ редактировать ]- С. Халеви и П. Рогауэй, Настраиваемый режим шифрования , CRYPTO '03 (LNCS, том 2729), 2003.
- С. Халеви и П. Рогауэй, Режим параллельного шифрования [5] , 2003.
- Стандартная архитектура для зашифрованных общих носителей данных, проект IEEE 1619 (P1619), [6] .
- SISWG, Проект предложения по формату резервного копирования ключей [7] , 2004 г.
- SISWG, Проект предложения по настраиваемому широкоблочному шифрованию [8] , 2004 г. – описывает EME-32-AES.
- Джеймс Хьюз, Зашифрованное хранилище — проблемы и методы [9]. Архивировано 18 мая 2006 г. в Wayback Machine.
- Дж. Алекс Халдерман , Сет Д. Шон , Надя Хенингер , Уильям Кларксон, Уильям Пол, Джозеф А. Каландрино, Ариэль Дж. Фельдман, Джейкоб Аппелбаум и Эдвард В. Фельтен (21 февраля 2008 г.). «Чтобы мы не помнили: атаки с холодной загрузкой на ключи шифрования» (PDF) . Принстонский университет . Архивировано из оригинала (PDF) 14 мая 2008 г.
{{cite journal}}
: Для цитирования журнала требуется|journal=
( помощь ) CS1 maint: несколько имен: список авторов ( ссылка ) - Нильс Фергюссон (август 2006 г.). «AES-CBC + Elephant Diffuser: алгоритм шифрования диска для Windows Vista» (PDF) . Майкрософт .
{{cite journal}}
: Для цитирования журнала требуется|journal=
( помощь ) - Чакраборти, Дебруп; Лопес, Куаутемок Мансильяс; Саркар, Палаш (апрель 2018 г.). «Шифрование диска: нужно ли сохранять длину?» (PDF) . Журнал криптографической инженерии . 8 (1): 49–69. дои : 10.1007/s13389-016-0147-0 . S2CID 4647765 .
Внешние ссылки
[ редактировать ]- Рабочая группа по безопасности хранения данных SISWG .
- «Проект еСТРИМ» . Архивировано из оригинала 15 апреля 2012 г. Проверено 28 марта 2010 г.