[Перевод] Аппаратные технологии безопасности Intel: новое слово в защите биометрических приложений. Часть первая

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

8cb594c688e44249a27ec9eacf491d09.jpg


Сегодня мы поговорим об аппаратных технологиях Intel, которые способны вывести защиту биометрических приложений на новый уровень.

Преимущества биометрии перед традиционными системами безопасности


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

  1. Простые пароли, вроде »123456» или «hello» можно взломать методом прямого перебора или атакой по словарю.
  2. Сложные пароли тяжело запомнить.
  3. Многие люди используют одни и те же пароли в различных системах.
  4. Если некто забудет пароль, то, после предоставления дополнительных сведений о себе, он может пароль сбросить.


a071a2581e804b629eb9995b6a682e69.png


Вход в систему с использованием пароля

Для того, чтобы повысить стойкость паролей ко взлому и облегчить жизнь пользователям, всё больше провайдеров услуг начинают применять технологии биометрической идентификации для организации доступа к своим системам. Благодаря этим технологиям пользователям не нужно запоминать пароли. Для идентификации применяется распознавание голоса, лица, отпечатков пальцев или радужной оболочки глаза. У биометрической идентификации, в сравнении с традиционными системами безопасности, есть определённые особенности.

  • Биометрия позволяет сгенерировать длинный и сложный пароль, который предлагает более высокий уровень защиты для противодействия атаке методом прямого перебора.
  • Биометрические системы требуют от разработчиков создания более защищённых приложений, участвующих в процессе распознавания биометрической информации. Дело в том, что биологическая информация — это часть человеческого тела и её невозможно легко изменить. Если биометрические сведения украдут, пользователю непросто аннулировать свой «биометрический пароль». Злоумышленник, используя украденные данные, может создать копию интересующей его части тела и, в будущем, использовать её для прохождения биометрической проверки в других учётных записях пользователя.
  • Некоторые биологические характеристики, такие, как особенности лица или голос, отличаются высоким уровнем ложных совпадений. В результате, системы биометрического распознавания пользователей обычно используют множество характеристик для улучшения точности распознавания.
  • Некоторые биометрические характеристики человека можно скопировать. Например — записать голос, распечатать фотографию, изготовить фальшивый палец из желатина, силикона или латекса с отпечатком пальца. Важно, чтобы в системе биометрической идентификации присутствовал модуль испытания на живучесть, то есть — распознавания человека как живого объекта. Нужно это для того, чтобы система могла различать биометрическую информацию, поступающую от настоящего человека и поддельную.


Как работает биометрическая идентификация


Работу биометрической системы распознавания личности можно разделить на пять шагов.

  1. Биометрическую информацию собирают с помощью датчиков, которые подключены к компьютеру через порт ввода-вывода.
  2. Формат и скорость поступления данных контролируется драйвером устройства. Драйвер, работающий с уровнем привилегий Ring-0, обрабатывает данные, приводит их к виду, соответствующему требованиям операционной системы. Затем данные отправляют приложению биометрической верификации, которое исполняется с уровнем привилегий Ring-3.
  3. Как только приложение получит исходные данные, оно выполняет их предварительную обработку, извлекая из них характерные признаки — биометрические шаблоны.
  4. Извлечённые шаблоны отправляют системе распознавания, которая сравнивает их с зарегистрированными в базе данных.
  5. Как только обнаружено совпадение, система распознавания отправляет главному приложению сообщение об этом (MATCH). Пользователя уведомляют об успешном входе в систему, он получает возможность работать с её закрытыми ресурсами.


0862fafaaf3f48f612dc79ce393da85f.jpg


Схема работы системы биометрического распознавания пользователей

Модель атаки


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

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

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

e36cad9a84a1fa70702b007d3b9e5104.png


Виды атак на приложение биометрического распознавания пользователей

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

  • Обеспечение доверенной среды исполнения приложения для сохранения целостности его кода.
  • Защита области памяти, которая содержит биометрические шаблоны, от других приложений.
  • Хранение конфиденциальные данных с использованием криптостойких методов шифрования. Шифрование нужно применять на всех этапах работы с такими данными. А именно, тогда, когда они находятся в памяти или в локальном хранилище, когда производится обмен данными с другими приложениями, работающими на том же компьютере или на удалённом сервере.


Применение аппаратных технологий безопасности Intel в биометрии


Платформа Intel предлагает различные аппаратные технологии для удовлетворения требований к безопасности приложений, выполняющих биометрическую верификацию пользователей. Рассмотрим три набора технологий Intel, направленных на решения этой задачи: Intel Software Guard Extensions, Intel Virtual Machine Extensions и Intel Identity Protection.

Организация доверенной среды выполнения с помощью Intel Software Guard Extensions


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

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

  • Как безопасно исполнять на конечном устройстве модули взятия биометрических образцов, извлечения характерных признаков, сравнения шаблонов.
  • Как обеспечить безопасность хранения шаблонов биометрических данных.
  • Как установить защищённый канал связи между конечным устройство и облачной базой данных биологических характеристик для того, чтобы выполнять процедуру аутентификации или другие операции.


Для того, чтобы спроектировать надёжно защищённые решения, разработчики могут воспользоваться технологией создания доверенной среды исполнения (Trusted Execution Environment, TEE).

Доверенная среда исполнения приложений


TEE — это изолированная, доверенная среда исполнения приложения, отделённая от обычной, так называемой «функционально богатой среды исполнения» (Rich Execution Environment, REE). В соответствии со спецификацией Global Platform TEE System Architecture, на самом высоком уровне, TEE — это среда, отвечающая следующим требованиям.

  • Гарантируется, что любой код, выполняющийся внутри TEE, является подлинным и целостным.
  • Ресурсы, которыми оперирует этот код, защищены от утечек. А именно, доверенная среда исполнения приложений должна препятствовать всем известным видам атак на программное обеспечение, совершаемых локально или удалённо, а так же — некоторым внешним атакам на аппаратное обеспечение.
  • Ресурсы и код защищены от несанкционированной трассировки, на ход выполнения приложения нельзя повлиять извне с помощью средств отладки и тестирования.


Обзор технологии Intel Software Guard Extensions


Intel Software Guard Extensions (Intel SGX) позволяет разработчикам создавать и разворачивать защищённые приложения на открытых платформах. Это — новые возможности архитектуры микропроцессоров Intel, включающие в себя набор новых инструкций и изменения в механизме доступа к памяти.

Intel SGX работает, выделяя участки памяти, хранящие код и данные, защищённые на аппаратном уровне. Защищённые области памяти называются анклавами (enclave). Данные, хранящиеся в анклаве, доступны только коду, который расположен в нём же. Код из анклава можно вызывать с помощью специальных инструкций. Анклав может быть создан и загружен как Windows DLL.

1c1b2a4f723e256ab40288eeb913e972.png


Защищённая среда исполнения, встроенная в процесс

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

0cef5bdea9ddc310a007eb3149e17064.png


Схема работы приложения, использующего Intel SGX

Цель технологии Intel SGX заключается в том, чтобы позволить организовать высокоуровневую защиту тех частей приложения, доступ к которым посторонних должен быть полностью исключён. В частности, защищёнными оказываются важные данные, которыми оперирует приложение.

Поверхность атаки, или доверенная вычислительная база (Trusted Computing Base, TCB), при таком подходе уменьшается до самого приложения и процессора, на котором исполняется его код. Даже вредоносное ПО, которое способно обойти операционную систему, VMM, BIOS, драйверы, не может украсть то, что авторы приложения хотят сохранить в секрете.

139c99ab06e3aa52aa6099b7f7accbc9.png


Уменьшение поверхности атаки при использовании Intel SGX

Усиление безопасности биометрических приложений с помощью Intel SGX


Прежде чем мы обсудим предложение по повышению безопасности биометрических систем, мы должны обратить внимание на то, что именно надо защищать.

К конфиденциальным данным о биометрических характеристиках пользователя следует относиться бережно: обрабатываются ли они в приложении, хранятся ли на диске, пересылаются ли удалённому сервису.

Модули обработки биометрических данных, в том числе — получение образцов, выявление характерных признаков, поиск совпадений, должны быть защищены от компьютерных вирусов и другого вредоносного ПО. Кроме того, нужно, чтобы выходные данные системы нельзя было подделать.

Мы предлагаем архитектурное решение, схема которого показана ниже.

08efad595d67f25eb857509fd92b6be2.png


Реализация стойкой ко взлому биометрической системы с использованием Intel SGX

Подсистема, выполняющая получение, обработку и сравнение биометрических данных, расположена внутри анклава Intel SGX, доверенной части клиента, и ответственна за действия над данными биометрических характеристик. Гарантируется предотвращение утечек данных и целостность программы во время её выполнения. Обычно подобные подсистемы реализуются в виде программных модулей. А программные реализации чего бы то ни могут быть взломаны, например — с помощью вредоносного ПО.

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

Технология Intel SGX предлагает функцию для шифрования и защиты целостности конфиденциального содержимого анклава для хранения его за пределами анклава. Например — на диске, для того, чтобы приложение могло повторно использовать всё это позднее. Данные могут безопасно передаваться между анклавами с использованием так называемого Seal Key –аппаратного ключа, с помощью которого эти данные можно «запечатать». Seal Key уникален для CPU и для существующего окружения анклава. В комбинации с другими службами, такими, как Monotonic Counter или Trusted Time, которые предоставляет программное обеспечение платформы Intel SGX, это решение можно использовать для защиты от различных видов атак.

Monotonic Counter может использоваться для реализации политики безопасности, направленной на защиту от атаки повтором. Trusted Time можно использовать для применения политик безопасности, основанных на учёте времени. И то и другое — в виде «запечатанных» данных (Sealed Data).

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

Иногда клиентская реализация биометрического распознавания нуждается в соединении с удалённым сервером для выполнения процедуры аутентификации с использованием облачной базы данных, а не локального хранилища. Сервер может убедиться в том, что он взаимодействует с клиентским ПО, которое было корректно загружено и инициализировано на платформе, поддерживающей Intel SGX, используя механизм аттестации (Attestation). То же самое касается и проверки подлинности биометрических данных. В рамках Intel SGX это — механизм, с помощью которого некая часть системы может удостовериться в том, что в пределах анклава, на поддерживающей подобную функциональность платформе, безопасно выполняется именно тот код, который там должен выполняться.

Для начала, этот модуль создаёт отчёт о подлинности клиентской части системы, который можно проверить, привязанный к конкретной платформе благодаря данным, записанным в CPU на этапе производства. Кроме того, отчёт включает в себя сведения о пользователе, который исполняет сеанс биометрического распознавания. Сервер проверяет отчёт для того, чтобы убедиться в том, что он взаимодействует с устройством, которое поддерживает Intel SGX, и что пользователь имеет право доступа к системе. Клиент и сервер, при первом соединении, проводят сеанс инициализации, в ходе которого клиентской части системы безопасно передаются «запечатанные», секретные данные, с использованием соответствующих возможностей Intel SGX.

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

Схема защиты памяти с помощью Virtual Machine Extensions


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

Слабость традиционного программного механизма защиты от несанкционированного доступа к памяти


Традиционный механизм программной защиты от несанкционированного доступа к памяти недостаточно надёжен. И защищаемый, и вредоносный код выполняются с одним и тем же уровнем привилегий (ring-0 или ring-3). Таким образом, вредоносный код может легко повлиять на защищаемый код для того, чтобы отключить защиту.

65c519806665e02714980b6d7bce5b66.png


Атакующий может повлиять на модуль защиты и получить доступ к буферу с конфиденциальными сведениями

Защита памяти, основанная на Virtual Machine Extensions


Virtual Machine Extensions (VMX) — это набор инструкция, который поддерживает виртуализацию аппаратного обеспечения процессора. Основной принцип его работы заключается в следующем.

  • Игнорирование основных операций CPU, таких, как загрузка/сохранение, команды ветвления, арифметические и логические операции.
  • Мониторинг (захват в ловушку) привилегированных инструкций, таких, как манипуляции с блоком управления памятью, инструкции ввода-вывода или обновление буфера ассоциативной трансляции.
  • Если исполняется привилегированная инструкция, прерывание выполнения и установка процессора в режим root VMX для дальнейшей обработки.


Вот, как выглядят взаимоотношения между аппаратным обеспечением, операционной системой и приложением с включенным и выключенным режимом VMX.

cb95b9de8e977585f7df0449611f6ee2.png


Различные реакции на системные вызовы при включенном и выключенном режиме VMX

Используя функцию ловушки VMX, реализованную на аппаратном уровне, механизм защиты памяти, основанный на аппаратной виртуализации, может обеспечить более быстродействующую и безопасную защиту памяти, чем без его использования. Основная идея здесь заключается в том, чтобы поместить модуль мониторинга памяти, основанный на VMM, между операционной системой и аппаратным обеспечением. При загрузке приложения осуществляется построение таблицы распределения памяти для областей, содержащих доверенный код и данные. После построения таблицы, во время любых операций доступа к памяти, VMM может перехватить эти операции, затем сравнить адрес инструкции доступа к памяти (memory access instruction address, EIP) и адрес памяти в предварительно построенной таблице. Затем модуль защиты памяти может выяснить, допустима ли эта операция и обратиться к соответствующей процедуре.

Многофакторная аутентификация с помощью технологии Intel Identity Protection и одноразовые пароли


Хищение персональных данных — это растущая мировая проблема, которая касается и отдельных людей, и компаний. Здесь требуется простое в использовании, но безопасное решение, так как взломщики постоянно изобретают способы добывания имён пользователей и паролей. И они никогда не останавливались и не остановятся в поиске новых методов кражи этих данных. Если вы — клиент некоей организации и взаимодействуете с ней через Интернет, или обычный пользователь компьютера, технология Intel Identity Protection (Intel IPT) способна дать вам сильные средства, которые помогут избежать угрозы хищения персональных данных. В частности, речь идёт о возможности привязки физического устройства пользователя к учётным записям служб в Интернете, которые задействуют возможности Intel IPT.

По традиции, в рамках двухфакторной аутентификации используются одноразовые пароли (one-time password, OTP). В такой схеме комбинируется то, что пользователь знает (имя пользователя и пароль), и то, что у него есть (как правило — токен, аппаратный ключ безопасности, или брелок, который генерирует шестизначные числа, действительные лишь на коротком промежутке времени и доступные по запросу).

В случае использования Intel IPT в рамках технологии OTP, уникальные шестизначные числа, используемые лишь один раз, генерируются каждые тридцать секунд с помощью встроенного процессора, который защищён от несанкционированного доступа и изолирован от операционной системы. Так как идентификационные данные обрабатываются внутри защищённого физического устройства, их нельзя взломать с помощью вредоносного ПО или удалить.

187df19d43de4a9f70889347719e6bcb.jpg


Применение технологии Intel IPT при взаимодействии клиента и сервера, аутентификация на основе одноразового пароля

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

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

Благодаря применению технологии Intel ITP с поддержкой OTP, Intel предоставляет аппаратный корень доверия, доказательство подлинности конкретного устройства, основанного на процессоре Intel, различным веб-сайтам, финансовым организациям, сетевым службам. Все эти службы получают дополнительную гарантию того, что в учётную запись входит тот, кто имеет на это право, а не вредоносная программа или злоумышленник. Системы, использующие Intel IPT с OTP, предоставляют дополнительную защиту персональных данных и методы верификации транзакций, которые могут быть использованы в решениях, реализующих различные схемы многофакторной аутентификации.

Итоги


Мы рассказали о том, как технологии Intel SGX, VMX и IPT способны повысить уровень защищённости биометрических систем. Но на этом наш рассказ не окончен. В следующий раз читайте об Intel AES-NI, Secure Key и Intel RealSense.

© Habrahabr.ru