Технология LaGrande: аппаратная защита будущего

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

Аппаратная защита

Так как в области программной защиты данных пока не удается предложить кардинально новых методов защиты, то вполне очевидным кажется переход на аппаратные методы защиты. Причем эти новые технологии актуальны как для отдельного локального компьютера, так и для серверов и рабочих станций. Вот как раз такой аппаратной технологией защиты от нападения на локальный компьютер стала технология LaGrande, представленная компанией Intel на IDF Fall 2003. Её цель – защитить компьютер от программных атак на сеть и систему без ущерба для производительности и управляемости. Эта технология представляет собой комплекс низкоуровневых и аппаратных средств, которые позволяют обезопасить возможные источники атак.

Для начала давайте разберемся, от атак на какие элементы компьютера следует защищаться. Итак, программные атаки как правило используют возможности других программ в процессе их работы для доступа к конфиденциальным данным. Любая запускаемая программа помещает свою часть с оперативную память, а при обращении к ней с периферийных устройств результаты обработки запросов передает в память или буферы этих устройств. Это могут быть оперативная память, каналы DMA, буферы устройств ввода-вывода, буферы видеоадаптеров. Через контроллер DMA можно получить доступ напрямую к защищенной памяти, через оперативную память доступно нулевое кольцо защиты системы, в том числе все пароли, ключи, реестр. Через буфер клавиатуры и кадровый буфер видеокарты можно отслеживать ввод паролей пользователем. Причем, резидентные программы могут не только считывать информацию из памяти, буферов, но и отслеживать ввод-вывод и передачу данных (keyloggers, trackers, trojans, malware) и к тому же подменять и эмулировать запросы на получение информации, менять содержание памяти.

Вот давайте рассмотрим, как в общем случае действуют «грамотные» трояны и вирусы. Для получения пароля от приложения первым шагом подменяется экран для ввода пароля. Далее введенный пароль считывается из буфера клавиатуры. После этого пароль считывается из памяти, а приложение его обрабатывающее подменяется для игнорирования ввода пароля. Для решения этой проблемы необходимо применение комплекса мер по аппаратной защите компонентов системы. Все эти вопросы и решает технология LaGrande от компании Intel.

Принципы LaGrande

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

Во-вторых, эта идентификация должна поддерживать аттестацию и автоматическую реконфигурацию платформы. Таким образом, можно реализовать совместимость с любой платформой. Кроме того, информация об идентификации должна надежно храниться, легко проверяться. Все эти функции в технологии LaGrande выполняет модуль TPM (Trusted Platform Module), который также имеет защищенное исполнение. Информация о конфигурации системы в TPM легко обновляется, и позволяет судить о том, какие элементы системы имеют защищенное исполнение, и, соответственно, какие части приложения защищены. Мы создаем своеобразную «кирпичную стену», которая отделяет защищенные ресурсы приложения от остальных ресурсов. Аттестационному устройству необходима гарантия, что сами блоки идентификации и хранения конфигурации защищены должным образом. Об этом можно судить по тому, как создавалась «кирпичная стена».

В платформе LaGrande (LT) модуль TPM как раз и представляет собой аттестационное устройство. Для его реализации в современных платформах должен использоваться TPM версии 1.2 или более новый. TPM содержит информацию о том, каким образом создавалась «защитная стена», то есть информацию об идентификации платформы. Далее при выполнении операций информация в ТРМ сравнивается с конфигурацией платформы, и, если они не совпадают, что защищенная информация оказывается недоступной. К примеру, если кто-либо придет со своим накопителем и подключит его к вашему компьютеру, то считать определенных данных он не сможет. Для хранения информации он использует генератор случайных чисел и уникальные сообщения. Для хранения информации питание не требуется, что обеспечивает надежность хранения.

Третьей составляющей технологии LT является само опечатанное хранение информации. Опечатанное хранение состоит из процесса идентификации и шифрования. Опечатанные данные могут быть доступны, только если необходимая для этого информация присутствует в ТРМ. Таким образом, данные «за кирпичной стеной» доступны только 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. Он устанавливает значения в каждый байт памяти. Только после завершения работы SCLEAN память разблокируется.

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

LaGrande допускает использование нескольких DM на одной платформе. Для защиты данных одного DM от другого используется так называемое опечатанное хранение данных. В каждый момент времени может исполняться только один DM. Каждый из них опечатывает все данные, используя TPM и определяя среду идентификации. Среда идентификации состоит из модуля SINIT и загруженного на платформе DM. DM может распечатать данные для новой среды после обновления данных.

Ну и важнейшим вопросом для любой системы безопасности всегда является система установления начального доверия. Возникает вопрос, когда же следует начинать «доверять» системе, следует ли доверять ей, когда она впервые выдает запрос на пароль, можно ли доверять загруженной в текущий момент среде, если еще нет доступа к опечатанной информации. Это можно проверить с помощью любого портативного устройства (PD). Это может быть любой механизм, поддерживающий Plug and Play, USB-устройства, сотовый телефон, смарт-карта, индикаторы. Они должны содержать информацию о подтвержденных конфигурациях, осуществлять аттестацию системы и показывать, пройдена она или нет. Чтобы установить начальное доверие с удаленной службой (например, Web-сайт). Эта удаленная служба проводит аттестацию и возвращает результат по иному каналу, чем был послан запрос. Этим каналом может быть другой компьютер, электронная почта, телефонный номер 800 и многие другие. Это уберегает платформу от атаки на оба конца проверки.

Итоги

Ну что же, можно констатировать лишь факт, что на данный момент это уникальная разработка, не имеющая себе равных. Возможно, она еще сыровата и достаточно сложна для привыкания, но имеет весьма неплохие перспективы для развития и применения. Может быть, она станет будущим поколением защиты информации, так как софтовых методик уже недостаточно. LaGrande – это универсальный комплекс защиты, состоящий из аппаратных компонентов, который будет интегрироваться во все будущие платформы Intel, включая процессоры и чипсеты. В дальнейшем предполагается расширить валидацию устройств, полностью поддерживающих LT. Поэтому поводу проводятся консультации с Trusted Computing Group, которая собственно и разрабатывает спецификации TPM. Отличительной особенностью этой технологии является ее кросс-платформенность, независимость от используемого программного обеспечения. Причем, она найдет применение как в настольных компьютерах и рабочих станциях, так и в мобильных системах и сетях широкого доступа. Особое применение элементы этой системы найдут в ближайшем будущем в беспроводных сетях Wi-Fi и Wi-Max для защиты передачи данных. Так что какой бы нам эта технология не казалась сейчас, ей уготовлено найти широкое применение и быстро развиваться.

Автор: Александр Дудкин
alexishw@xaker.ru

15.12.2003


© Авторские права и копия защищены законом: © Дудкин Александр Константинович, 2002 г.
Копирование любых материалов только с письменного разрешения автора сайта
URL сайта: www.alexishw.mailru.com
Ваши замечания и предложения присылайте по e-mail: alexishw@mailru.com