TPM2 - Создайте постоянный первичный ключ под Windows с помощью Tbsip_Submit_Command

Игра с моим чипом TPM с помощью Tbsip_Submit_Command Я вижу, что Windows анализирует фреймы, которые я ей отправляю.

Чтобы упростить эту задачу, я использую команду выключения.

Например, я попытался отправить TPM_CC_Shutdown с аргументом TPM_SU_CLEAR. Итак, кадр => 80 01 00 00 00 0C 00 00 01 45 00 00

Чтобы сделать его более подробным и объясненным:

80 01         is TPM_ST_NO_SESSIONS
00 00 00 0C   size of the frame
00 00 01 45   TPM_CC_Shutdown
00 00         is TPM_SU_CLEAR

Windows отвечает мне => 80 01 00 00 00 0A 80 28 04 00
Еще раз, чтобы сделать это более подробно:

80 01         is TPM_ST_NO_SESSIONS
00 00 00 0A   size of the command
80 28 04 00   error code 0x80280400 => TPM_E_COMMAND_BLOCKED

Я нашел этот код ошибки здесь < / а>. Итак, очевидно, что Windows прерывает меня и отказывается от моей команды. Я понимаю, что он не хочет, чтобы TPM был выключен, но я получаю тот же результат для команды, в которой я хочу создать первичный ключ и сохранить его внутри чипа.

Итак, у меня есть чип, но если я хочу использовать его напрямую, я не могу, я вынужден использовать Cryptography API: Next Generation, но в моем случае я не могу.

Кто-нибудь может мне чем-нибудь помочь? Может быть, я могу напрямую общаться с чипом, кодирующим драйвер, и обходить слои Windows (если кто-нибудь знает, как это сделать)? Или, может быть, можно настроить значение в реестре, чтобы окна позволяли мне делать то, что я хочу, с моей микросхемой TPM?


person b3nj1    schedule 19.02.2018    source источник


Ответы (2)


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

person b3nj1    schedule 22.02.2018
comment
Привет, b3nj1, у меня здесь такая же проблема. Вы нашли для этого какое-нибудь решение? - person Moshe Kravchik; 12.03.2018

Согласно книге "Практическое руководство по TPM 2.0 "в главе 10" Ключи "(стр. 126), говорится:

Спецификация библиотеки TPM включает симметричные ключи шифрования, которые можно использовать для шифрования общего назначения, такого как AES. Неизвестно, будут ли поставщики TPM включать эти функции из-за потенциальных экспортных ограничений. Команды необязательны в спецификации платформы PC Client. Исторически сложилось так, что поставщики TPM не реализовывали дополнительные функции TPM.

Вы можете использовать команду TPM2_GetCapability с параметром TPM_CAP_COMMANDS, чтобы получить список реализованных команд. Если команды, которую вы хотите использовать, нет в списке, возможно, она не реализована поставщиком TPM.

См. В https://docs.microsoft.com/en-us/windows-hardware/test/hlk/testref/tpm-v20-command-and-signal-profile для списка Включенных и Необязательные команды с точки зрения Windows.

person awaitzbe    schedule 14.03.2018
comment
Спасибо за ваш ответ, но команды заблокированы Windows, поэтому не имеет значения, поддерживается ли команда tpm или нет. - person b3nj1; 15.03.2018
comment
Я отредактировал и добавил профиль Windows. Но в конце драйвер TPM Windows вызовет TPM2_GetCapability и увидит, поддерживает ли TPM команду или нет, поэтому они подключены. - person awaitzbe; 20.03.2018
comment
Интересно, проверю, когда будет время! Спасибо! - person b3nj1; 20.03.2018