[Перевод] Аппаратные технологии безопасности Intel: новое слово в защите биометрических приложений. Часть 2
В первой части мы обсудили проблемы современных биометрических приложений распознавания пользователей и рассказали о том, как Intel SGX, Intel VMX и Intel IPT способны повысить уровень их защиты. Сегодня продолжим разговор о безопасности биометрии, рассмотрим технологии Intel AES-NI, Intel Secure Key и Intel RealSense.
Для того, чтобы защитить важные данные или программный код во время исполнения, широко используются криптографические алгоритмы и рандомизация адресного пространства (Address Space Layout Randomization, ASLR). Подобные технологии применяются как на уровне обычных приложений, так и на уровне операционной системы. Важной их частью являются случайные числа.
Intel Secure Key
Если нужно сгенерировать ключевую пару или создать случайное адресное пространство, генератор настоящих случайных чисел лучше, чем генератор псевдослучайных чисел. Технология Intel Secure Key предоставляет x86-инструкцию RDRAND, которую можно использовать для создания высококачественного генератора случайных чисел.
Инструкция RDRAND воплощает инновационный подход к созданию высококачественного, высокопроизводительного генератора случайных чисел, основанного на аппаратном источнике энтропии. Генератор построен по каскадной модели, он задействует встроенный в процессор источник энтропии для периодической инициализации аппаратного криптографически безопасного генератора псевдослучайных чисел. В результате инструкция RDRAND может генерировать случайные числа, соответствующие стандарту NIST SP 800–90A. Для наиболее распространённых вариантов использования её можно считать генератором подлинно случайных чисел.
Инструкция RDRAND получает данные из внутреннего аппаратного генератора случайных чисел
Существует много способов использования RDRAND.
1. Вызов RDRAND напрямую в коде на ассемблере или на встроенном ассемблере в C++.
– rdrand %edx
– unsigned long therand, err;
asm volatile("rdrand %0 ; setc %1"
: "=r" (*therand), "=qm" (err));
//therand
-> сохранить результат
//err
-> возврат статуса операции, 1 при успехе, 0 при незаполнении буфера
2. Использование библиотеки от Intel (librdrand). Она написана на C/C++. Существуют версии для Windows, и для Linux и OS X.
3. Использование библиотек сторонних поставщиков.
Intel AES-NI
Intel Advanced Encryption Standard New Instructions (Intel AES-NI) — это набор инструкций, разработанный для ускорения приложений, использующих один из самых популярных симметричных алгоритмов шифрования AES. AES широко используют для шифрования данных, хранящихся в оперативной памяти и на жёстких дисках, для защиты информации, передаваемой по сети. Делается это для того, чтобы защитить конфиденциальные данные даже в том случае, если злоумышленнику удастся их скопировать с некоего носителя или перехватить при передаче.
Шифрование канала передачи данных с использованием AES
Для того, чтобы повысить запас надёжности, рекомендуется выполнять шифрование с использованием нескольких раундов AES, что эквивалентно увеличению длины криптографического ключа. В 2010 году Intel представила новый набор инструкций (Intel AES-NI), который предлагает полную аппаратную поддержку шифрования и дешифровки AES. Это позволяет увеличить производительность и снизить потребление памяти. В наши дни практически все настольные и мобильные процессоры Intel поддерживают AES-NI. Вот, какого прироста производительности удаётся достичь при использовании AES-NI в сравнении с полностью программной реализацией алгоритма, не использующей эти команды.
Тестируемое устройство построено на базе Intel Atom Z3770 (Bay Trail) FFRD8 PR1, оно работало под управлением Android 4.4, использовалось OpenSSL native C API.
Режим (CBC/256) | Размер файла, Мб. | С AES-NI, сек. | Без AES-NI, сек. |
Шифрование | 351 | 2,89 | 14,59 |
56 | 0,48 | 2,63 | |
Дешифровка | 351 | 1,76 | 19,78 |
56 | 0,48 | 2,63 |
Как видно из данных, приведённых в таблице, при шифровании использование инструкций Intel AES-NI дало 5-кратный рост производительности. При дешифровке — 11-кратный рост. Нужно отметить, что использование AES-NI позволяет снизить энергопотребление примерно на 40%.
В настоящее время большинство популярных операционных систем содержат встроенную поддержку Intel AES-NI. Когда некое приложение обращается к криптографическому API, которое предоставляет система, например, к Windows CNG API или к классу Javax.crypto в Android, низкоуровневый драйвер автоматически задействует инструкции AES-NI для повышения производительности. Кроме того, многие библиотеки, например, OpenSSL 1.0.1, Intel Integrated Performance Primitives, Crypto++, оптимизированы с целью максимально эффективного использования AES-NI.
Испытания на живучесть и датчик глубины камеры Intel RealSense
Биометрическое распознавание пользователя, основанное на анализе лица, широко используется в повседневной жизни многих людей. Например — для разблокировки Android-устройств и персональных компьютеров. Так как для распознавания лица используется традиционная оптическая камера, умеющая захватывать плоские изображения, система не может отличить реального человека от фотографии. В результате взломщик может пройти процедуру авторизации, воспользовавшись распечатанным фотоснимком лица пользователя.
Камера Intel RealSense умеет захватывать информацию о глубине пространства. Это открывает очень интересные перспективы. Одна из её функций заключается в построении трёхмерных моделей людей и объектов, попадающих в объектив. Данная возможность позволяет задействовать Intel RealSense как инструмент испытания на живучесть в некоторых сценариях захвата биометрических данных, и, как результат, повысить безопасность биометрических систем. Обычная камера, входящая в состав RealSense, фотографирует лицо пользователя, а модуль трёхмерного сканирования пространства одновременно строит объёмную картину того, что находится перед камерой. Сведения о пространственных характеристиках лицевой области легко могут быть использованы для того, чтобы определить, человек ли смотрит в камеру, или, там, где должно находиться объёмное лицо, размещён плоский лист бумаги.
Трёхмерная модель лица с камеры глубины Intel RealSense F200. Очевидно, перед камерой настоящий человек.
Лист бумаги, пусть и с напечатанным фото пользователя, остаётся плоским для камеры глубины Intel RealSense F200. Очевидно, что это — подделка.
Обзор технологий
Вот краткий обзор технологий Intel, которые могут поднять безопасность биометрических систем на новый уровень.
Жёлтыми значками показаны области применения технологий Intel для повышения безопасности биометрических приложений.
- Intel SGX
- Защита кода и данных во время выполнения приложений.
- Организация защищённого локального хранения информации.
- Организация безопасного обмена важными данными по сети.
- Intel VMM
- Защита памяти приложений, работающих с уровнем привилегий Ring-3
- Защита памяти драйверов, работающих с уровнем привилегий Ring-0
- Intel AES-NI
- Защита данных, хранимых на различных носителях информации, в оперативной памяти, передаваемых по сети.
- Значительное ускорение процедур шифрования и дешифрования
- Intel IPT
- Организация многофакторной аутентификации
- Защита информации, выводимой на дисплей, и данных, которые вводит пользователь
- Intel RealSense
- Организация испытаний на живучесть.
Итоги
Биометрическая идентификация пользователей отличается от традиционной схемы, использующей имя и пароль. Биометрические данные человека практически невозможно изменить. Как результат, этот подход к аутентификации требует повышенного уровня безопасности систем.
Intel предлагает различные аппаратные технологии, доступные как в настольных компьютерах, оснащённых процессорами Intel, так и на мобильных устройствах. Эти технологии могут помочь разработчикам биометрических решений в создании более защищённых систем аутентификации без необходимости задействовать дополнительное аппаратное обеспечение.