Ранняя компьютерная безопасность в основном опиралась на антивирусное программное обеспечение. Однако эта чисто программная защита имела очевидные недостатки. Как только вредоносная программа получит те же разрешения, что и антивирус, она сможет легко отключить программу защиты и незаметно скрыться. Более того, как только вредоносное ПО начинает атаки на встроенное ПО и загрузчики, антивирусному программному обеспечению становится сложнее их обнаружить и уничтожить. В ответ на эти проблемы появился модуль Trusted Platform Module (TPM).
TPM — это международный стандарт безопасных криптографических процессоров, предназначенный для обработки ключей шифрования в устройстве через специальный микроконтроллер, встроенный в устройство (т. е. защищенное оборудование). Этот стандарт был стандартизирован как ISO/IEC 11889 Международной организацией по стандартизации (ISO) и Международной электротехнической комиссией (IEC) в 2009 году.
Разработка TPM прошла несколько этапов, начиная с первоначального крупномасштабного развертывания TPM1.1b и заканчивая версиями TPM1.2 и TPM2.0. В TPM1.2 добавлены и интегрированы функции на основе TPM1.1b. С одной стороны, это компенсирует недостатки предыдущей версии, но также значительно усложняет спецификацию. Позже TPM2.0 воспользовался возможностью устранить недостатки алгоритма SHA-1 и перепроектировал более интегрированную и унифицированную архитектуру, сделав поддержку алгоритма более гибкой.
2. Введение в TPM
2.1
композиция
Стандартный модуль доверенной платформы показан на рисунке 1 и обычно состоит из следующих частей:
Ввод и вывод (I/O): управляет передачей потока данных между различными компонентами внутри TPM и служит интерфейсом для взаимодействия TPM с внешней шиной.
Энергонезависимое хранилище: используется для хранения ключевых данных, в основном включая ключи (ключ подтверждения EK и корневой ключ хранилища SRK) и данные авторизации владельца.
Ключ аутентификации удостоверения платформы (AIK). Будучи специальным ключом RSA в TPM, он математически связан с EK и используется для аутентификации подписи платформы.
Регистр конфигурации платформы (PCR): обеспечивает криптографический способ записи состояния программного обеспечения и используется для хранения измерений состояния системы во время запуска системы.
Программный код: используется для инициализации прошивки устройства.
Механизм выполнения: отвечает за выполнение программного кода.
Криптозоологический ускоритель: используется для выполнения высокоскоростных криптографических операций, включая симметричные, асимметричные и хэш-алгоритмы.
Генератор случайных чисел: генерирует качественные случайные числа, необходимые для ключей, соответствующие требованиям стандарта TPM.
Генератор ключей: генерируйте корневые ключи с помощью механизма ускорения криптографии и генератора случайных чисел.
Рисунок 1. Структура композиции TPM
2.2
Функция
2.2.1
Аутентификация личности
Важная возможность чипа TPM — безопасное хранение ключей. Путем имплантации закрытого ключа устройства в чип устройству можно присвоить уникальный идентификатор, чтобы облегчить организацию управление активами устройства. Конечно, закрытый ключ пользователя также может быть сохранен для идентификации личности пользователя. Некоторые типичные примеры включают в себя:
(1) Идентификация аутентификации VPN: устройство подписывает сообщение с помощью закрытого ключа в TPM, а открытый ключ используется в фоновом режиме для проверки подписи, тем самым гарантируя, что только определенные устройства и пользователи могут получить доступ к внутренним сетевым ресурсам;
(2) Подтверждение личности при обмене информацией: используйте закрытый ключ, хранящийся в TPM, для подписи данных, чтобы обеспечить надежность источника сообщения.
2.2.2
Шифрование и дешифрование
TPM можно использовать для шифрования ключей, а зашифрованные ключи можно использовать для шифрования файлов или расшифровки входящих файлов. На основе этой возможности можно:
(1) Шифрование файлов и папок;
(2) Шифрование диска;
(3) Зашифруйте удаленно хранящиеся файлы.
2.2.3
Хранение ключей
TPM может использовать собственный внутренний асимметричный ключ, шифровать ключ, который необходимо защитить открытым ключом, и хранить его снаружи, а затем при необходимости использовать закрытый ключ для его расшифровки. Теоретически любое количество ключей можно безопасно хранить. , что позволяет TPM использовать неограниченное количество ключей. Некоторые из преимуществ, которые это дает, включают в себя:
(1) Большее количество ключей означает, что для шифрования разных данных можно использовать разные ключи. В сценариях защиты конфиденциальности различная информация шифруется с использованием разных ключей для повышения детализации защиты конфиденциальности и повышения безопасности;
(2) Используйте разные ключи для данных с разными уровнями безопасности;
(3) Зашифрованный ключ можно хранить на сервере и получать с него при необходимости, что делает его более гибким в использовании.
2.2.4
Генерация случайных чисел
Случайные числа являются важной частью криптографических приложений. Генерация высокого качества случайных Инструмент чисел может снизить вероятность взлома протокола безопасности. TPM требует качественной Генерации случайных число программ можно считать меньшим, чем программное обеспечение обеспечение более надежное случайных Номер источник,Поколение случайных Инструменты чисел обычно используются для:
(1) Предоставьте начальные числа случайных чисел для операционной системы.
(2) Укажите nonce (случайное число) для протокола безопасности.
(3) Создать ключ
2.2.5
авторитет
Когда TPM запускает систему, программное обеспечение рассчитает серию хэш-значений на основе состояния системы и сохранит их в регистре конфигурации платформы (PCR). Впоследствии эту серию измеренных значений можно подписать с помощью определенного идентификатора. закрытый ключ, а затем сообщается наружу. PCR основан на функции хранения отдельных элементов, чтобы гарантировать, что контент не будет подделан, поэтому, если значения в PCR совпадают с ожидаемыми значениями, эти значения считаются достоверными. Этот процесс измерения можно использовать для проверки целостности и безопасности системы и предотвращения ее заражения вредоносным ПО.
3. Программный стек TPM2.
Программный стек TPM2 (Trusted Platform Module 2.0 Software Stack, TPM2-TSS) — это серия программного обеспечения, предназначенная для облегчения взаимодействия приложений с устройствами TPM2.0. Этот программный стек реализует спецификацию TPM2.0 и предоставляет ряд инструментов и библиотек для облегчения доступа разработчиков.
Основные возможности:
(1) Кроссплатформенность. Общий дизайн не зависит от операционной системы и может использоваться в различных операционных системах и средах с хорошей переносимостью.
(2) Полностью открытый исходный код. Будучи проектом с открытым исходным кодом, он опирается на сообщество открытого исходного кода и постоянно оптимизируется с помощью разработчиков. Кроме того, поскольку это проект с открытым исходным кодом, разработчики и предприятия могут настраивать и расширять его в соответствии со своими потребностями, адаптируя его к конкретным сценариям приложений и потребностям безопасности.
(3) Стандартизация. Проект соответствует спецификации TPM 2.0 и предоставляет набор стандартных API-интерфейсов, позволяющих разработчикам программного обеспечения и системным интеграторам взаимодействовать с устройствами TPM 2.0 стандартизированным образом.
TPM2-TSS предоставляет следующие различные уровни инфраструктур:
(1)TPM Command Transmission Interface
(TCTI): стандартный API для передачи/получения команд и результатов TPM. Он определяет способ взаимодействия с оборудованием TPM и является самым низким интерфейсом в TPM2-TSS.
(2) Маршалинг/демаршалинг (MU): библиотека функций для кодирования и декодирования структур данных TPM.
(3) Системный API (SAPI, иногда SYS): взаимно однозначное сопоставление команд TPM2, которое представляет собой интерфейс нижнего уровня. Использование SAPI требует от разработчиков глубокого понимания команд TPM, включая параметры команд, статус, обработку ошибок и т. д.
(4)Enhanced System API (ESAPI, sometimes ESYS): в системе Он инкапсулирован на основе API для уменьшения сложности программирования и упрощения расчета HMAC, а шифрование параметров реализовано с использованием контекста Безопасности. и дешифрование, проверка команд TPM и т.д. Хотя это проще, чем SAPI,Однако при его использовании вам все равно необходимо иметь глубокое понимание определения интерфейса TPM2.0.,Поэтому официально рекомендуется к использованию только профессионалами в профессиональных приложениях. Для общего применения,Рекомендуется использовать интерфейс более высокого уровня (FAPI).
(5) Feature API (FPAI): более высокий уровень абстракции, более простой и удобный в использовании, чем SAPI и ESAPI. Он предназначен для того, чтобы позволить разработчикам, не понимающим TPM, использовать возможности безопасности TPM. При обеспечении безопасности сокращается объем кода, который необходимо писать и поддерживать. Разработчикам не нужно беспокоиться о сложных спецификациях TPM2.0, что повышает эффективность разработки и снижает порог внедрения решений безопасности.
Рисунок 2. Программный стек TPM2
4. Резюме
Будучи независимым аппаратным обеспечением, TPM может повысить безопасность компьютерных систем и эффективно предотвратить проникновение вредоносных программ и утечку данных. Это также одна из основных технологий доверенных вычислений, обеспечивающая базовые механизмы проверки и защиту безопасности для доверенных вычислительных платформ. Благодаря энергичному развитию доверенных вычислений функции и производительность TPM продолжают улучшаться и улучшаться.
Ссылки
https://en.wikipedia.org/wiki/Trusted_Platform_Module
Will, Arthur and Challener, David and Goldman, Kenneth (1015). A Practical Guide to TPM 2.0. Apress Open, Springer New York, 2015
Tomlinson, Allan. "Introduction to the TPM." Smart Cards, Tokens, Security and Applications (2017): 173-191.
https://tpm2-software.github.io/
Редактор контента: Институт инновационных исследований Ян Боцзе Ответственный редактор: Чэнь Фочжун, Институт инновационных исследований
Исходная статья в этом общедоступном аккаунте отражает только точку зрения автора и не отражает позицию NSFOCUS Technology. Авторские права на весь оригинальный контент принадлежат NSFOCUS Technology Research Communications. Без разрешения любым СМИ или официальным аккаунтам WeChat строго запрещено копировать, перепечатывать, извлекать или иным образом использовать эту информацию. Перепечатки должны быть указаны как исходящие от NSFOCUS Technology Research Communications и включать ссылку на эту статью.