Шифрование диска стало безопасным благодаря амнезии


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

Возможно, вы не осознавали, что у шифрования диска есть недостаток, который позволяет любому человеку с небольшими техническими возможностями читать данные — это атака с холодной загрузкой. Причина уязвимости заключается в способе хранения ключей для обеспечения высокоскоростного шифрования. Теперь у Патрика Симмонса из Университета Иллинойса в Урбане-Шампейне есть решение, которое может снова сделать шифрование диска безопасным — амнезия.

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

Существует даже хорошо зарекомендовавший себя стандарт шифрования дисков — AES Advanced Encryption Standard. Он использует повторяющееся шифрование для защиты данных. Обычно данные шифруются десять раз с использованием разных 128-битных ключей для каждого раунда шифрования. Ключи генерируются путем перестановки начального ключа шифрования, поэтому вся схема защищается одним ключом, который затрудняется точным повторным шифрованием данных с использованием производных ключей.

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

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

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

В случае реализации алгоритма x86 регистры счетчика производительности были «переназначены» для хранения 128-битного ключа. Звучит просто, но возникает множество практических трудностей — например, что вы делаете с многоядерными процессорами, которым всем нужен доступ к зашифрованному тому? Что делать, если вам нужно работать с несколькими зашифрованными томами? Решением большинства проблем является не сохранение исходного ключа шифрования, а случайный ключ, используемый для дальнейшего шифрования ключа шифрования, который затем может быть сохранен в ОЗУ.

Фактические детали реализации сложны. Все это должно было быть написано на ассемблере, чтобы гарантировать, что незашифрованные ключи никогда не присутствуют в ОЗУ, и обнуление всех регистров после шифрования — чтобы обеспечить свойства «Loop Amnesia», необходимые для обеспечения безопасности шифрования. Алгоритм называется «амнезией», потому что цель состоит в том, чтобы гарантировать, что ключ шифрования никогда не попадет в оперативную память и будет стерт или «забыт» в конце каждого цикла шифрования.

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

В статье, объясняющей идеи, также подробно рассказывается о возможных атаках на метод Loop Amnesia, и, хотя он делает «интересное» чтение, он приходит к выводу, что он должен быть безопасным. На ЦП есть стандартный порт отладки, который дает доступ к регистрам, но обычно он не используется для вывода контактов в случае x86, и когда он есть, он может быть отключен навсегда. Однако вы не можете исключить более изощренную аппаратную атаку на ЦП, которая может внедрить код, сбрасывающий содержимое регистров, — но цель безопасности — сделать атаку трудной, а не невозможной.


Добавить комментарий