11.05 // Защита от холодной перезагрузки и чтения памяти частичным расшифрованием


Лео Доррендорф из компании Safend Ltd (Тель-Авив, Израиль) при сотрудничестве с Др. Бенни Пинкасом из университета Хайфы опубликовал свой подход к защите данных от атакующего, который имеет физический доступ к компьютеру.

В своей работе он рассматривает проблему атак холодной перезагрузкой (сохранение данных в оперативной памяти после выключения компьютера с последующим их восстановлением) и прямого доступа к памяти работающей машины через PCI, FireWire и даже USB-порты (Darrin Barral and David Dewey. Plug and root: The USB key to the kingdom).

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

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

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

Для пофайлового шифрования условия для работы алгоритма такие:


Для дискового шифрования, аналогично:


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

Автор считает реальным разработать механизм блокирования ("замораживания") всех других программ и процессов, которые не должны работать при включённой защите без глубокой модификации операционной системы. Он оптимистично считает, что решения такого рода на уровне драйверов могут быть разработаны для любых ОС. Также могут быть использованы специфические решения для режимов сна и гибернации.

Исследователь осознаёт ограниченность своего решения — злоумышленник может получить частичный доступ к системе и прочитать только те данные, которые пользователь оставил доступными по необходимости. Но это не будет полноценный администраторский доступ. Злоумышленник вероятно может установить троян, воспользовавшись ограниченными доступными ему программными ресурсами и получить более полный доступ позднее, но по-крайне мере пользователь будет защищён от прямого (нетайного) одноразового захвата системы.

Источник: Cryptology ePrint Archive[link1]

Ссылки
[link1] http://eprint.iacr.org/2011/221