2004 г.
Технология LaGrande: аппаратная защита будущего
Александр Дудкин
«Экспресс-Электроника», #1/2004
Вопросы защиты данных важны не только для владельцев ПК. Понятно, что не существует программ, которые нельзя взломать. Доступ к информации определяется лишь временем, необходимым для взлома защиты. Пользователи же, в основном, страдают из-за кражи их важной личной информации, паролей, банковских счетов. Причем, техники нападения становятся с каждым днем все изощреннее, а технологии защиты не делают значительного прогресса в своем развитии.
Наиболее уязвимой средой, атакуемой хакерами является программная область. Эта среда, как правило, предоставляет доступ к сетевым возможностям компьютера, его накопителям и памяти. Основную опасность несут локальные сети, подключенные к Интернету, и сами пользователи. Именно их неквалифицированные действия чаще всего ставят под угрозу безопасность ПК. Достоверно известно, что большая часть взломов является следствием разглашения паролей или сохранения их в ненадежных источниках.
Аппаратная защита
Так как в области программной защиты данных пока не удается предложить эффективных методов защиты, то вполне очевидным кажется переход на аппаратные методы. Причем новые технологии актуальны как для отдельного домашнего ПК, так и для серверов и рабочих станций. Именно такой стала технология LaGrande, представленная компанией Intel на IDF Fall 2003. Ее цель - защитить компьютер от программных атак без ущерба для производительности и управляемости. Эта технология представляет собой комплекс аппаратных средств, которые позволяют обезопасить возможные источники атак.
Для начала давайте разберемся, от атак на какие элементы компьютера следует защищаться. Итак, программные атаки как правило используют возможности других программ в процессе их работы для доступа к конфиденциальным данным. Любая запускаемая программа помещает свою часть в оперативную память, а при обращении к ней с периферийных устройств результаты обработки запросов передает в память или буферы этих устройств. Это могут быть оперативная память, каналы DMA, буферы устройств ввода-вывода, буферы видеоадаптеров. Через контроллер DMA можно получить доступ напрямую к защищенной памяти, через оперативную память доступно нулевое кольцо защиты системы, в том числе все пароли, ключи, реестр. Через буфер клавиатуры и кадровый буфер видеокарты можно отслеживать ввод паролей пользователем. Причем, резидентные программы могут не только считывать информацию из памяти, буферов, но и отслеживать ввод-вывод и передачу данных (keyloggers, trackers, trojans, malware) и к тому же подменять и эмулировать запросы на получение информации, менять содержание памяти.
Давайте рассмотрим, как в общем случае действуют трояны и вирусы. Для получения пароля от приложения первым шагом подменяется экран для ввода пароля. Далее введенный пароль считывается из буфера клавиатуры. После этого пароль считывается из памяти, а обрабатывающее его приложение подменяется для игнорирования ввода пароля. Для решения этой проблемы необходимо применить комплекс мер по аппаратной защите компонентов системы. Все эти вопросы и решает технология LaGrande.
Принципы LaGrande
Для корректной работы технологии, во-первых, требуется защищенное исполнение всех компонентов системы, причем все компоненты должны друг друга узнавать. Защищенное исполнение на основе LaGrande (LT) базируется на принципе разделения доменов. Оно не позволяет злоумышленнику получить ресурсы приложения в памяти. Защищенное исполнение позволяет отделить ресурсы, используемые одним приложением: исполнительную часть, страницы в памяти и устройства, к которым обращается приложение. Чтобы различить платформы с защищенным исполнением и без него, необходима надежная идентификация платформы.
Во-вторых, эта идентификация должна поддерживать аттестацию и автоматическую реконфигурацию платформы. Таким образом, можно реализовать совместимость с любой платформой. Кроме того, информация об идентификации должна надежно храниться, легко проверяться. Все эти функции в технологии LaGrande выполняет модуль TPM (Trusted Platform Module), который также имеет защищенное исполнение. Информация о конфигурации системы в TPM легко обновляется, и позволяет судить о том, какие элементы системы имеют защищенное исполнение, и, соответственно, какие части приложения защищены. Мы создаем своеобразную "кирпичную стену", которая отделяет защищенные ресурсы приложения от остальных ресурсов. Аттестационному устройству необходима гарантия, что сами блоки идентификации и хранения конфигурации защищены должным образом. Об этом можно судить по тому, как создавалась "кирпичная стена".
В платформе LaGrande (LT) модуль TPM как раз и представляет собой аттестационное устройство. Для его реализации в современных платформах должен использоваться TPM версии 1.2 или более новый. TPM содержит информацию о том, каким образом создавалась "защитная стена", то есть информацию об идентификации платформы. Далее при выполнении операций информация в ТРМ сравнивается с конфигурацией платформы, и, если они не совпадают, то защищенная информация оказывается недоступной. К примеру, если кто-либо придет со своим накопителем и подключит его к вашему компьютеру, то считать определенных данных он не сможет. Для хранения информации используется генератор случайных чисел и уникальные сообщения. Питание не требуется, что обеспечивает надежность хранения.
Третьей составляющей является само опечатанное хранение информации. Опечатанное хранение состоит из процесса идентификации и шифрования. Опечатанные данные могут быть доступны, только если необходимая для этого информация присутствует в ТРМ. Таким образом, данные "за кирпичной стеной" доступны только TPM и никому более.
Чтобы иметь доступ к опечатанным данным, но при том быть уверенным в их защите, то для связи двух сред необходимо создать доверительный канал. Он состоит из двух обязательных участков между двумя вычислительными устройствами и между устройством и пользователем. При использовании даже обыкновенных устройств ввода-вывода в "кирпичной стене" создается точка монтирования для защищенного приложения, которая создает канал между двумя контроллерами, между которыми передается информация (к примеру, между памятью и контроллером клавиатуры). Путь между вычислительным устройством и человеком наименее защищен и поэтому он требует активного участия пользователя в процессе защиты. Например, пользователь должен работать, только когда доступен защищенный канал, о чем поступает звуковое или визуальное сообщение. Также необходимо создать доверительный канал ввода между устройством управления клавиатурой и мышью и самими этими устройствами. Для обеспечения безопасности LT генерирует аппаратные "ловушки", необходимые для создания доверительного канала. Для использования устройства управления ввода-вывода в режиме защищенного исполнения необходима соответствующая поддержка со стороны ОС. В будущем предполагается и использование специальных устройств ввода-вывода, поддерживающих доверительный канал. То же самое касается и доверительного канала между графическим адаптером и устройством отображения информации. Также требуется поддержка со стороны ОС, а графический адаптер должен поддерживать использование доверительного канала.
Требования к ОС
Проблема внедрения этой технологии, прежде всего, состоит в том, что современные операционные системы не совместимы с технологией LT, вернее не удовлетворяют ее требованиям. Они используют низкоуровневые драйвера, которые работают напрямую с аппаратным обеспечением в нулевом кольце системы, поэтому драйверы, используемые в одном приложении, могут использоваться и в другом и обращаться друг к другу. Выход один - разработать новую операционную систему с нуля. Правда здесь возникает проблема с совместимостью старых приложений и драйверов с новой ОС - кто же ее согласится использовать? Но сейчас Microsoft уже разрабатывает новую ОС NGSCB, которая способна использовать свойства LT для разделения доменов и поддерживать обратную совместимость. В эту ОС должен быть интегрирован ключ для шифрования опечатанных данных, который также должен защищаться.
Аппаратные компоненты LT
Новая технология представляет собой набор нововведений, которые будут интегрироваться на уровне контроллеров и микрокода в аппаратные компоненты системы. LaGrande состоит из следующих составных частей: процессора с поддержкой LT, набора микросхем с интегрированной на уровне контроллеров поддержкой LT, модуля TPM и защищенного ввода/вывода.
Первый процессор с поддержкой технологии LT выйдет совсем скоро - это будет настольный Prescott на ядре Pentium 4, выполненный по 0,09-мкм техпроцессу. Теперь для процессора будет действовать новая политика обращения к памяти: он будет управлять доменами и определять доступ к защищенной памяти. В микросхему (G)MCH будут интегрированы контроллеры памяти и графического адаптера, которые поддерживают LT. Причем, будут поддерживаться как внешние видеоадаптеры, так и встроенная графика. В ICH интегрированы контроллеры USB с защищенным вводом/выводом и шина LPC, на которую будет "вешаться" модуль TPM. DMA Bus Master также не имеет доступа к защищенным приложениям. Из обычных приложений защищенные приложения не видны, также как и не видна передача защищенных данных.
Работает эта технология следующим образом. Устройство управления доменом (DM) обеспечивает изоляцию доменов. Отныне распределение обращения к ядру системы может осуществлять не любое приложение. Точнее, ядро ОС теперь представляет собой набор независимых сервисов, каждый из которых может обращаться через LT к ядру. LT организует доступ приложений ко всем ресурсам, таким как защищенная память. Следовательно, в основе управления системой безопасности LT лежит настройка DM, которую пользователь может настраивать и легко управлять из ОС.
LT можно включать и выключать без перезагрузки компьютера. После включения проверяется правильность конфигурирования устройств - для этого исполняется модуль SINIT. Здесь возникает проблема с оперативной памятью, так как существует большое количество модулей памяти с разными частотами и разной плотности и емкости, а настройки BIOS поддерживают несколько вариантов конфигурации одних и тех же модулей. Несоответствие между настройками контроллера памяти и характеристиками DIMM может вызвать "свертывание" адреса памяти (привязывание двух адресов системной шины к одной области в памяти). Выход из этого положения очевиден - тестирование кода аутентификации самих модулей. SINIT блокирует настройки контроллера памяти, считывает характеристики модулей DIMM и контроллера и проверяет их на предмет "сворачивания" адресов. Код аутентификации имеет цифровую подпись, присвоенную набору микросхем их производителем. Для защиты код имеет ассиметричные ключи и исполняется в специальной защищенной области. Далее запускается процесс SENTER, который регистрирует DM и обеспечивает безопасность загрузки. Он гарантирует отсутствие вмешательства при загрузке. Для регистрации DM процесс SENTER использует информацию из TPM. Во время загрузки инструкции SENTER останавливается любая активность процессора. После окончания загрузки SENTER управление передается уже загруженному ранее SINIT-AC, который после проверки кода аутентификации инициализирует домены DM. SENTER определяет подлинность кода SINIT и хранит его в TCM PCR1 (Platform Configuration Register). Код SINIT определяет подлинность DM и хранит информацию о ней в TCM PCR2. Для этого SINIT использует свой специальный набор аппаратных команд и специальные циклы системной шины. После этого все защищенные операции осуществляются через защищенный домен.
Защищенный домен запускается в несколько этапов: сначала устройство управления доменом идентифицируется (DM), затем создает в памяти защищенное адресное пространство, после этого по запросу домен получает управление защищенным приложением на уровне ядра ОС. Для каждого из таких приложений в памяти создается свое защищенное адресное пространство. Питание на DM подается только по требованию, так что она особых требований на питание не налагает.
Дополнительная защита
В технологии LaGrande предусмотрена защита и при особенных обстоятельствах. Первое - это защита от перегрузок. При неожиданной перезагрузке системы память становится незащищенной, так как сбрасывается защита компонентов LT (CPU, чипсет), но в массиве памяти может остаться информация. Защиту нельзя переустановить, так как может быть попорчена таблица страниц памяти. Разработчики нашли оригинальное решение: при перезагрузке блокируется доступ к памяти. Если там остались защищенные данные, то запускается модуль SCLEAN AC. Он устанавливает значения в каждый байт памяти. Только после завершения работы этого модуля память разблокируется.
При переходе компьютера в спящий режим зачастую на памяти остается напряжение питания, при этом оно не подается на другие компоненты LT. В таком случае защита памяти при выходе из спящего режима может не восстановиться. Это удалось обойти шифрованием содержимого памяти. ОС должна послать сигнал о спящем режиме устройству управления доменами, тот шифрует данные из защищенной памяти, и питание отводится от памяти. При выходе из спящего режима все происходит в обратном порядке: при подаче питания запускается DM, и данные дешифрируются.
LaGrande допускает использование нескольких DM на одной платформе. Для защиты данных одного DM от другого используется так называемое опечатанное хранение данных. В каждый момент времени может исполняться только один DM. Каждый из них опечатывает все данные, используя TPM и определяя среду идентификации. Среда идентификации состоит из модуля SINIT и загруженного на платформе DM. DM может распечатать данные для новой среды после обновления данных.
Ну и важнейшим вопросом для любой системы безопасности всегда является система установления начального доверия. Возникает вопрос, когда же следует начинать "доверять" системе, следует ли доверять ей, когда она впервые выдает запрос на пароль, можно ли доверять загруженной в текущий момент среде, если еще нет доступа к опечатанной информации? Это можно проверить с помощью любого портативного устройства: USB-устройства, сотового телефона, смарт-карты. Они должны содержать информацию о подтвержденных конфигурациях, осуществлять аттестацию системы и показывать, пройдена она или нет. Чтобы установить начальное доверие с удаленной службой (например, веб-сайт), последняя проводит аттестацию и возвращает результат по иному каналу, чем был послан запрос. Этим каналом может быть другой компьютер, электронная почта, телефонный номер 800 и многие другие. Это уберегает платформу от атаки на оба конца проверки.
Итоги
Ну что же, можно констатировать, что на данный момент это уникальная разработка, не имеющая себе равных. Возможно, она еще сыровата и достаточно сложна для привыкания, но имеет весьма неплохие перспективы для развития и применения. Может быть, она станет будущим поколением защиты информации, так как программных методик уже недостаточно. LaGrande - это универсальный комплекс защиты, состоящий из аппаратных компонентов, который будет интегрироваться во все будущие платформы Intel, включая процессоры и чипсеты. В дальнейшем предполагается расширить валидацию устройств, полностью поддерживающих LT. По этому поводу проводятся консультации с Trusted Computing Group, которая собственно и разрабатывает спецификации TPM. Отличительной особенностью этой технологии является ее кросс-платформенность, независимость от используемого программного обеспечения. Причем, она найдет применение как в настольных компьютерах и рабочих станциях, так и в мобильных системах и сетях широкополосного доступа. Особое применение элементы этой системы найдут в ближайшем будущем в беспроводных сетях Wi-Fi и Wi-Max для защиты передачи данных. Так что какой бы нам эта технология не казалась сейча