描述:实现对TPM所有权访问认证设置。
tpm2_changeauth -c owner newpass
tpm2_changeauth -c endorsement newpass
tpm2_changeauth -c lockout newpass
tpm2_changeauth -c o -p newpass newerpass
tpm2_changeauth -c e -p newpass newerpass
tpm2_changeauth -c l -p newpass newerpass
tpm2_changeauth -c o -p oldpass
tpm2_clear lockoutpasswd
tpm2_clear -c p
描述:创建主对象
参数选项:
o
所有者密钥 (默认值)p
平台密钥e
认可密钥n
空与 -C指定的层次结构的授权值。
可选
可选
rsa2048:null:aes128cfb(默认)
保存生成的主对象的对象上下文的文件路径
可选
文件输入,包含用于对象的基于策略的授权的策略摘要
可选
默认值:TPMA_OBJECT_RESTRICTED|TPMA_OBJECT_DECRYPT|TPMA_OBJECT_FIXEDTPM | TPMA_OBJECT_FIXED‐PARENT|TPMA_OBJECT_SENSITIVEDATAORIGIN| TPMA_OBJECT_USERWITHAUTH
可选
可选的文件输出,用于保存创建票证以进行认证
可选文件输出,用于保存创建哈希以供认证
可选文件或十六进制字符串,用于将唯一数据添加到创建数据。请注意,它对创建统计上唯一的对象没有帮助。
PCR库的列表和每个库的选定PCR的ID将包含在用于证书的创建数据中。
tpm2_createprimary -C o -g sha256 -G ecc -c context.out
–key-context=FILE:
包含键上下文(可选)的输出文件。关键上下文类似于tpm2_load(1)生成的上下文文件,但是是通过tpm2_createloaded(1)命令生成的。此选项可用于避免正常的tpm2_create(1)和tpm2_load(1)命令序列,并在一个命令中自动完成所有操作。
–creation-data=FILE:
可选的文件输出,用于保存创建数据以供认证
–template-data=FILE:
可选文件输出,用于保存要在tpm2_policytemplate中使用的密钥模板数据(TPM2B_PUBLIC)。
可选的文件输出,用于保存创建票证以进行认证。
可选的文件输出,用于保存创建哈希以供认证
可选的十六进制字符串或路径,用于将唯一数据添加到创建数据。请注意,它对创建统计上唯一的对象没有帮助。
PCR库的列表和每个库的选定PCR的ID将包含在用于证书的创建数据中。
tpm2_createprimary -c primary.ctx
tpm2_create -C primary.ctx -u obj.pub -r obj.priv
echo "my sealed data" > seal.dat
tpm2_create -C primary.ctx -i seal.dat -u obj.pub -r obj.priv
tpm2_create -C primary.ctx -G ecc -u obj.pub -r obj.priv -c ecc.ctx
描述:将对象的私有和公有部分都加载到TPM中
该工具以YAML字典格式输出已加载对象的名称,并带有键名称,其中该键的值是十六进制格式的对象名称,例如:name:000bac25cb8743111c8e1f52f2ee7279d05d3902a18dd1af694db5d1afa7adf1c8b3
它还会保存一个上下文文件,以备将来与该对象进行交互。
注意:必须指定tpm密钥的私有和公有部分
tpm2_createprimary -c primary.ctx
tpm2_create -C primary.ctx -u key.pub -r key.priv
tpm2_load -C primary.ctx -u key.pub -r key.priv -c key.ctx
指向用于加密的RSA密钥的公共部分的上下文对象
可选的输出文件路径,用于记录加密数据。默认设置是将二进制加密数据打印到stdout。
可选,设置填充方案(默认为rsaes)。
null - TPM_ALG_NULL uses the key’s scheme if set.
rsaes - TPM_ALG_RSAES which is RSAES_PKCSV1.5.
oaep - TPM_ALG_OAEP which is RSAES_OAEP.
可选,设置标签数据。可以是字符串或文件路径。 TPM要求标签的最后一个字节为零,这在工具内部处理。没有其他嵌入的0字节可以存在,否则TPM将截断您的标签。
tpm2_createprimary -c primary.ctx
tpm2_create -C primary.ctx -Grsa2048 -u key.pub -r key.priv
tpm2_load -C primary.ctx -u key.pub -r key.priv -c key.ctx
echo "my message" > msg.dat
tpm2_rsaencrypt -c key.ctx -o msg.enc msg.dat
tpm2_rsadecrypt -c key.ctx -o msg.ptext msg.enc
cat msg.ptext
可选的输出文件路径,用于记录解密后的数据。默认设置是将二进制加密数据打印到STDOUT。
可选,设置标签数据。TPM要求标签的最后一个字节为零,这在工具内部处理。没有其他嵌入的0字节可以存在,否则TPM将截断您的标签。
描述:使用指定的对称或非对称签名密钥生成指定消息或消息摘要的签名。
对消息签名时,tpm2_sign实用程序首先计算消息的摘要,类似于tpm2_hash命令。它还分别在TPM2_RH_NULL或TPM2_RH_OWNER层次结构下为非受限或受限签名密钥生成验证凭单。
虽然在此工具中提供了对消息进行签名的建议,但建议首先使用tpm2_hash工具并传递摘要和验证凭单。
注意:如果签名密钥是受限制的签名密钥,则必须通过-t输入提供验证和摘要。票证指示TPM执行了消息的哈希。
指向用于签名的密钥的上下文对象。
使用-c指定的密钥的可选授权值。
用于摘要消息的哈希算法。
用于签名消息的签名方案。可选。签名方案应遵循“格式标准”,请参阅“算法说明符”部分。如果指定,则签名方案必须与密钥类型匹配。如果未指定,将使用密钥类型的默认签名方案。
表示FILE是包含消息摘要的文件。指定此选项和-t时,将生成警告,并且忽略验证票证(-t)。您不能使用此选项对受限签名密钥进行摘要签名。
票证文件,包含验证结构,是可选的。
签名文件,记录签名结构。
签名输出文件的格式选择。
tpm2_createprimary -C e -c primary.ctx
tpm2_create -G rsa -u rsa.pub -r rsa.priv -C primary.ctx
tpm2_load -C primary.ctx -u rsa.pub -r rsa.priv -c rsa.ctx
echo "my message" > message.dat
tpm2_sign -c rsa.ctx -g sha256 -o sig.rssa message.dat
tpm2_verifysignature -c rsa.ctx -g sha256 -s sig.rssa -m message.dat
使用TPM签名并使用OSSL进行验证
openssl ecparam -name prime256v1 -genkey -noout -out private.ecc.pem
openssl ec -in private.ecc.pem -out public.ecc.pem -pubout
# Generate a hash to sign
echo "data to sign" > data.in.raw
sha256sum data.in.raw | awk '{ print "000000 " $1 }' | \
xxd -r -c 32 > data.in.digest
# Load the private key for signing
tpm2_loadexternal -Q -G ecc -r private.ecc.pem -c key.ctx
# Sign in the TPM and verify with OSSL
tpm2_sign -Q -c key.ctx -g sha256 -d -f plain -o data.out.signed data.in.digest
openssl dgst -verify public.ecc.pem -keyform pem -sha256 \
-signature data.out.signed data.in.raw
用于操作的关键上下文的上下文对象。
用于摘要消息的哈希算法。
消息文件,包含要摘要的内容。
输入哈希文件,包含消息的哈希。如果选择此选项,则无需指定消息(-m)和算法(-g)选项
要验证的签名的输入签名文件
用于签名消息的签名方案。仅当签名来自非tss标准(例如openssl)时,才应指定此选项。有关更多详细信息,请参见“签名格式说明符”。 tss格式包含理解其签名方案所需的签名元数据。签名方案应遵循“格式标准”,请参阅“算法说明符”部分。
不推荐使用。与–scheme相同。