Я пытаюсь следовать этому руководству, но использую Ubuntu 21.04:
https://run.tournament.org.il/ubuntu-20-04-and-tpm2-encrypted-system-disk/
Когда я запускаю вторую команду:
судо tpm2_nvdefine -s 64 0x1500016
Я получаю сообщение об ошибке:
ПРЕДУПРЕЖДЕНИЕ:esys:src/tss2-esys/api/Esys_NV_DefineSpace.c:337:Esys_NV_DefineSpace_Finish() Получена ошибка TPM
ОШИБКА:esys:src/tss2-esys/api/Esys_NV_DefineSpace.c:122:Esys_NV_DefineSpace() Esys Finish ErrorCode (0x000009a2)
ОШИБКА: не удалось определить область NV по индексу 0x1500016.
ОШИБКА: Esys_NV_DefineSpace (0x9A2) — tpm:session(1): ошибка авторизации без последствий для DA
ОШИБКА: не удалось создать индекс NV 0x1500016.
ОШИБКА: невозможно запустить tpm2_nvdefine
Я также пробовал:
судо tpm2_clear
что привело к:
ПРЕДУПРЕЖДЕНИЕ:esys:src/tss2-esys/api/Esys_Clear.c:291:Esys_Clear_Finish() Получена ошибка TPM
ОШИБКА:esys:src/tss2-esys/api/Esys_Clear.c:97:Esys_Clear() Esys Finish ErrorCode (0x0000098e)
ОШИБКА: Esys_Clear (0x98E) - tpm:session(1): проверка авторизации HMAC не удалась, и счетчик DA увеличился
ОШИБКА: невозможно запустить tpm2_clear
что заставило меня посмотреть на статус:
$ sudo tpm2_getcap свойства-переменная | egrep 'TPM2_PT_(MAX|БЛОКИРОВКА).*'
TPM2_PT_LOCKOUT_COUNTER: 0x0
TPM2_PT_MAX_AUTH_FAIL: 0xA
TPM2_PT_LOCKOUT_INTERVAL: 0x1C20
TPM2_PT_LOCKOUT_RECOVERY: 0x1C20
Я также пробовал:
sudo tpm2_dictionarylockout --setup-parameters --max-tries=4294967295 --clear-lockout
что также приводит к аналогичной ошибке:
ВНИМАНИЕ:esys:src/tss2-esys/api/Esys_DictionaryAttackLockReset.c:288:Esys_DictionaryAttackLockReset_Finish() Получена ошибка TPM
ОШИБКА:esys:src/tss2-esys/api/Esys_DictionaryAttackLockReset.c:98:Esys_DictionaryAttackLockReset() Esys Finish ErrorCode (0x00000921)
ОШИБКА: Esys_DictionaryAttackLockReset (0x921) — tpm: warn (2.0): авторизация для объектов, подлежащих защите DA, в настоящее время не разрешена, поскольку TPM находится в режиме блокировки DA.
ОШИБКА: невозможно запустить tpm2_dictionarylockout
Я также попробовал первую команду из учебника tpm2-tools по шифрованию диска здесь: https://tpm2-software.github.io/2020/04/13/Disk-Encryption.html
в котором говорится:
sudo tpm2_createprimary -Q -C o -c prim.ctx
и приводит к аналогичной ошибке:
ПРЕДУПРЕЖДЕНИЕ:esys:src/tss2-esys/api/Esys_CreatePrimary.c:393:Esys_CreatePrimary_Finish() Получена ошибка TPM
ОШИБКА:esys:src/tss2-esys/api/Esys_CreatePrimary.c:135:Esys_CreatePrimary() Esys Finish ErrorCode (0x000009a2)
ОШИБКА: Esys_CreatePrimary (0x9A2) – tpm:session(1): ошибка авторизации без последствий для DA
ОШИБКА: невозможно запустить tpm2_createprimary
Я гуглил все эти ошибки, но не нашел понятного объяснения. Там много информации, но от tpm-tools и/или с совершенно неверными параметрами. Кажется, что команды tpm2_* меняются очень быстро!
Означает ли это, что мой TPM отключен или заблокирован?
Я заметил, что tpm2_takeownership больше не входит в пакет Ubuntu (и не в 20.04), поэтому другие решения, которые я нашел в Интернете, не будут работать (если я не установлю его из исходного кода), но я полагаю, что это не ожидается, если его нет в упаковке.
Другие вещи (например, tpm2_pcrread) не выдавали ошибок. Так возможно ли, что мой TPM доступен для чтения, но не для записи? Как я могу сбросить его, или это настройка производителя или что-то, что мне нужно сделать в BIOS, чтобы сделать его доступным для записи?