问题标签 [trusted-computing]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
tpm - 如何在 TPM 中加载和使用持久对称密钥?
我只是想在 TPM 的 NV 存储中永久存储一个 32 字节长的对称密钥,并在重启后使用它(无需将其从 TPM 中取出)来加密小型数据。
我试图以两种不同的方式做到这一点:
1)
- 使用 TPM 的随机字节生成器创建密钥
- 在 NV 中定义空间并在其中写入密钥
- 问题:我知道如何阅读它,但是如何加载它以便在 TPM 中使用它?
2)
- 使用 TPM2_Create 命令创建 AES 密钥
- 使用 TPM2_EvictControl 命令使其持久化
- 通过相同的电源循环,我有了它的手柄,我可以加载它并使用它
- 问题:与之前类似,如何在下一次电源循环后加载并使用它?
我扫描了TCG 的规格,甚至阅读了这个免费的 TPM2.0 实用指南,但没有找到任何关于我的问题的线索。
我错过了什么?
linux - TPM2_GetCapability TPM_HT_LOADED_SESSION 打算显示什么?
我试图通过选项了解tpm2-tools/tpm2_getcaphandles-loaded-session
的预期输出,描述说:
我了解 tpm2-tools 尽可能执行TPM2_ContextLoad
-> 操作-> TPM2_ContextSave
。因此,tpm2_getcap handles-saved-session
将在 TPM 中显示保存的上下文,检查以下内容:
但是,tpm2_getcap handles-loaded-session
始终不返回任何内容。所以我的问题是在什么情况下tpm2_getcap handles-loaded-session
会显示任何输出?
windows - 如何启用 TPM 测量启动并在 Windows 10 中查看 pcr 值?
如何在 Windows 10 中启用 TPM 测量启动?
我希望在 PCR 值中捕获 TPM 哈希,并且我希望能够看到结果。我知道如何在 Linux 中做到这一点,但我不知道我应该在 Windows 中做什么。
我找到了以下指南,但它们似乎没有我需要的信息:
- 在 Microsoft 网站上有一个指南: https ://docs.microsoft.com/en-us/powershell/module/trustedplatformmodule/get-tpm?view=win10-ps 但它仅用于非常基本的任务并且不解释这。
- 我也看到了这个: Windows 中的 TPM PCR 生成,但这不是我想要的。
任何帮助表示赞赏。
ubuntu - 使用 TPM 测量的每个哈希的文件路径
我在安装在 vmware 工作站中的 ubuntu 中启用了 TPM。然后我使用以下命令安装 tpm2-tools:
然后我使用以下命令解析 /sys/kernel/security/tpm0/binary_bios_measurement 中的 TPM 事件日志:
您可以在以下链接中下载输出 : https ://s16.picofile.com/file/8427251934/output.txt.html ,也可以在以下链接中下载 TPM 事件日志: https://s16.picofile。 com/file/8427252018/binary_bios_measurements.html
我想知道 TPM 为其计算哈希的每个事件属于哪个文件或程序,还想查看该文件或程序的路径。我应该怎么办?TPM 事件日志中是否有此信息,但我安装的 tpm2-tools 不解析它?或者 TPM 事件日志中根本不存在此信息?怎样才能获得这些信息?
sh - 如何根据授权策略数组创建 TPM2 授权策略文件
我在 Linux 下使用 tpm2_tools 在我的 TPM2 中创建了这个索引
我想删除它而不需要保存策略文件,我可以根据这个输入生成策略文件吗?
((CB45C81FF34BCF0AFB9A1A8029FA231C8727303C0922DCCE684BE3DB817542F))
.net - 在 RSASSA-PSS 和 RSASSA-PKCS1-v1_5 之间切换是否应该注意其他参数?
我不确定我是否应该在这里或在 Security Stackexchange 中问这个问题。
无论如何,我最近在使用 TPM 处理 RSA 签名时遇到了一个问题,我将填充方案从 RSASSA-PKCS1-v1_5 切换到 RSASSA-PSS。我认为这应该没什么区别,但我注意到 TSS.MSR(.NET TPM 库)中的一个示例不再起作用。我在https://github.com/microsoft/TSS.MSR/issues/109开始了一个关于它的问题。
但我想检查一下,如果有人可以分享意见,是否需要做或注意一些明显的事情,而不是改变填充方案?
我认为不是,这也隐含在 .NET RSA 库等参数中,例如https://docs.microsoft.com/en-us/dotnet/api/system.security.cryptography.rsasignaturepadding以及如何使用它喜欢
我从https://security.stackexchange.com/questions/183179/what-is-rsa-oaep-rsa-pss-in-simple-terms,https://crypto.stackexchange.com/questions/77881中的问题中看到/are-rsa-pss-parameters-standardized在其他地方,填充的实际发生方式更为复杂。但假设它是库的一个实现细节,并且签名检查似乎不匹配或不起作用,一个结论是可能需要检查此 TSS.NET 库中的各种内部参数,例如填充。所以,因此我想确保自己这个结论是正确的,并且可能没有非常明显的东西。举个例子:不要使用 SHA-256 或明确地将盐大小精确地设置为 nn (好的,这可能是一个通常不应该关心的实现细节)。
附录:
这是在接受Maarten Bodewes的优秀笔记后写的。
将散列从 SHA-256 切换到 SHA-1 并没有消除链接示例中验证签名的失败。不过,正如预期的那样,“nameSize”或摘要更改为 20 个字节。因此,如果在示例或某处的库中没有正确处理一些“挥之不去的默认值”,则仅此一项(可能是部分解决方案)并不是切换到 RSASSA-PSS 填充方案失败的原因。
探索仍在继续。:)
tpm - 对 ESYS_Initialize 的未定义引用
将 TSS 增强 API 用于项目,但无法编译我的程序。以下是我的项目生成文件。
编译器返回以下错误:
c - 对 Tss2_TctiLdr_Initialize 的未定义引用
我正在尝试将可信软件堆栈中的命令传输接口用于 TPM 2.0,但我似乎无法加载此库。任何使用都会给出“未定义的引用”错误。
在使用来自 TSS 的 ESAPI 时也遇到了同样的问题,并在我的 Makefile 中使用以下标志修复了它TPMFLAGS =-L=/usr/local/lib/ -ltss2-esys
:
以下是我当前实现中的 Makefile:
amazon-web-services - 使用 AWS Nitro Enclave 进行加密时,我们能否阻止 EC2 实例访问纯文本数据?
我正在做一个项目,通过 REST API 来自客户的数据应该在发送到数据库之前进行加密。为此,我们需要使用 AWS Nitro Enclave 进行加密。所以 Nitro Enclave 将接收来自父 EC2 的数据,与 KMS 对话以检索加密密钥,加密数据并将其发送回 EC2,然后 EC2 将其发送到数据库。
问题是数据现在以纯文本形式暴露给任何可以访问 EC2 的人,这违背了保护数据的整个目的。我的问题是:无论如何数据会被Enclave本身拦截,换句话说,TLS可以在Enclave中终止吗?我知道 Enclave 没有任何联网功能,但我现在不确定这个 Enclave 如何解决保护个人身份信息的问题。
非常感谢对这一点的任何澄清。
非常感谢!扎克