Доверенный модуль платформы (TPM) на Windows 10 IoT Базовая

Что такое TPM?

Доверенный модуль платформы (TPM) — это криптографический сопроцессор, включая возможности для создания случайных чисел, безопасного создания криптографических ключей и ограничения их использования. Она также включает такие возможности, как удаленная аттестация и запечатаемое хранилище. Техническая спецификация TPM общедоступна, на основе доверенной вычислительной группы (TCG). Последняя версия TPM 2.0 (выпущена за октябрь 2014 г.) — это основной редизайн спецификации, которая добавляет новые функциональные возможности и устраняет недостатки прежнего доверенного платформенного модуля 1.2.

Почему TPM?

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

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

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

Архитектура доверенного платформенного модуля

Разница между TPM 1.2 и TPM 2.0.
Спецификация TPM была разработана дважды. В первый раз она разработала с 1.1b до 1.2, включив новые возможности, запрошенные/определяемые комитетом спецификаций. Эта функция-ползункая форма эволюции сделала окончательную спецификацию TPM 1.2 очень сложной. В конце концов, криптографические недостатки SHA-1 (который был самым сильным коммерческим алгоритмом в TPM 1.2) были выявлены, что вызвало необходимость изменения. Архитектура доверенного платформенного модуля была изменена с нуля, что привело к гораздо более интегрированной и унифицированной архитектуре TPM 2.0.

Изменения и улучшения по сравнению с предыдущим TPM 1.2 включают:

  • Поддержка дополнительных алгоритмов шифрования
  • Улучшения доступности доверенного платформенного модуля для приложений
  • Расширенные механизмы авторизации
  • Упрощенное управление TPM
  • Дополнительные возможности для повышения безопасности служб платформы

Примечание.

Windows IoT Core поддерживает только TPM 2.0 и не поддерживает устаревший TPM 1.2.

Что такое ТБ S?

Компонент базовых служб доверенного платформенного модуля (ТБ S) — это системная служба, которая обеспечивает прозрачный общий доступ к ресурсам доверенного платформенного модуля. Он использует ресурсы доверенного платформенного модуля между несколькими приложениями на одном физическом компьютере с помощью удаленных вызовов процедур (RPC). Он централизованно распределяет доступ TPM между приложениями, используя приоритеты, указанные вызывающими приложениями.

TPM предоставляет криптографические функции, предназначенные для обеспечения доверия к платформе. Так как TPM реализован в оборудовании, он имеет ограниченные ресурсы. TCG определяет Стек программного обеспечения TPM (TSS), который использует эти ресурсы для предоставления доверенных операций для программного обеспечения приложений. Однако для запуска реализации TSS на стороне с программным обеспечением операционной системы, которое также может использовать ресурсы доверенного платформенного модуля, не выполняется. Функция ТБ S решает эту проблему, включив каждый стек программного обеспечения, который взаимодействует с ТБ S для использования ресурсов доверенного платформенного модуля проверка для любых других стеков программного обеспечения, которые могут работать на компьютере.

Решения TPM, доступные в Windows IoT Core

Несколько слов о программном TPM (sTPM), встроенном TPM (fTPM), дискретном TPM (dTPM)...

TPM встроенного ПО (fTPM)

Для доверенного платформенного модуля встроенного ПО (fTPM) требуется специальная поддержка процессора/SoC, которая в настоящее время не реализована в Raspberry Pi 2 или 3. MinnowBoard Max требует встроенного ПО версии 0.80 или более поздней. DragonBoard410c предоставляет возможности fTPM из поля, включенного по умолчанию.

Дискретный TPM (dTPM)

Дискретный TPM (dTPM) считается самым надежным решением всеми средствами.
Существует несколько производителей микросхем dTPM и модулей PCB, поддерживаемых в Windows IoT Core:

Производитель Веб-страница Тип модуля Микросхема доверенного платформенного модуля
Infineon Infineon TPM Evalboard Infineon SLB9670 TPM 2.0
Pi3g Pi3g.com Массовый продукт и evalboard Infineon SLB9670 TPM 2.0

Программный TPM (sTPM)

Программный TPM (sTPM) также называется симулятором TPM. Она является независимой от платформы, поддерживается в Windows IoT Core.

Примечание.

STPM предназначен только для целей разработки и не предоставляет никаких реальных преимуществ безопасности.

Примеры

  • Пример библиотеки Urchin в этом руководстве демонстрирует создание примера приложения C++, которое выполняет функциональные возможности доверенного платформенного модуля с помощью библиотеки Urchin. Urchin — это библиотека, совместимая со спецификацией, производная от эталонной реализации TPM 2.0. Он предоставляет клиенту функциональные возможности для маршалирования и отмены маршалирования всех структур данных, правильного вычисления авторизации, шифрования параметров и выполнения аудита.

Дополнительные ресурсы