问题标签 [tpm]

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.

0 投票
1 回答
91 浏览

tpm - 为什么 AIK blob 是 281 字节?

我正在尝试使用以下代码验证 tpm quote 的签名:

但我得到以下异常:

看起来预期长度是根据密钥长度计算的,因为我使用的 AIK 公钥的长度是 281。所以现在的问题是为什么密钥长度是 281 而不是 256(对于 RSA 2048)?我是否必须以某种方式修剪十六进制字符串?

0 投票
3 回答
4074 浏览

powershell - 用于检查 TPM 制造商版本的 Powershell 脚本(IF ELSE)

我正在尝试在几台 HP 笔记本电脑上降级 TPM。我正在尝试创建一个 powershell 脚本,它将获取 TPM 制造商版本号,并根据可能的数字列表检查该数字。一旦它与其中一个数字匹配,就执行程序以降级 TPM 版本。

我首先将输出放入变量中,并尝试根据静态数字检查变量以启动正确的程序。该变量已存储,但当我尝试根据“7.61”检查它时,它似乎并没有真正检查结果。7.61 的结果没有返回“成功”

我意识到 powershell 是不同的,我的 IF ELSE 语句可能已经过时了。任何帮助将不胜感激!

假设 TPM 制造商版本为 7.61

在此处输入图像描述

0 投票
1 回答
520 浏览

tpm - 用裤子将 SRK 存储在 TPM 上

我正在使用 Trousers 与项目的 TPM 交互。我遇到了存储 SRK(存储根密钥)的问题。

我的理解是,SRK 密钥对是在获得 TPM 所有权时生成的,并且存储在 TPM 中。但看起来它的一部分存储在系统持久存储中(由 system_ps_file 配置定义)。如果系统持久存储被删除,则无法再加载 SRK。

创建 SRK 的代码

加载 SRK 的代码

上面的代码正常工作,直到系统持久存储数据文件存在。但是一旦它被删除,我得到:

有没有办法恢复已删除的存储文件?还是避免将其用于 SRK ?

0 投票
1 回答
513 浏览

tpm - 从 Azure IoT Edge 模块加密数据的惯用方式?

我有一对 IoT Edge 模块,一个用于保存数据,一个用于上传数据。我想在设备上静止时加密数据。

有很多方法可以加密这些数据,但我想知道在 Azure IoT Edge 模块中最惯用的方法是什么。

我知道安全守护程序将 TPM 用于一些事情,并且我们所有的设备都有 TPM 2.0 芯片,我们将 TPM 背书密钥与 DPS 一起使用。

我想知道安全守护程序是否有办法使用 TPM 为我们加密通用数据块,或者我们是否应该尝试从容器内部以某种方式与 TPM 通信来做到这一点?

更多信息:这是安全守护进程:https ://github.com/Azure/iotedge/tree/master/edgelet它是一个物联网边缘特定组件,它充当引导程序来启动物联网边缘代理模块,然后启动其他模块。守护进程在 systemd 下运行,所有其他模块都是 docker 容器,如此处所述https://docs.microsoft.com/en-us/azure/iot-edge/about-iot-edge
运行时被描述为“维护 Azure IoT Edge设备上的安全标准。” 所以我想知道是否有某种简单的方法可以给它一些数据进行加密,并对其进行加密。

由于安全守护程序已经与 TPM 连接以进行设备注册等。我想知道是否有某种方法可以要求安全守护程序加密数据,或者是否有其他特定于 iot edge 运行时的惯用解决方案。

0 投票
1 回答
902 浏览

azure - 检索可信平台模块(TPM 2.0)EKPub

我正在尝试将启用 TPM 2.0 的设备添加到 Azure 设备预配服务注册列表。这需要 TPM 的背书密钥 (EKPub)。提取(找出)TPM 的 EKPub(背书密钥)的最佳方法是什么?我感谢您的帮助。

0 投票
1 回答
349 浏览

security - TPM 与 CPU 有什么关系?

我现在对 CPU 与 TPM 的关系感到困惑。

当我尝试了解 Apple 的 Enclave (TPM) 时,我观看的视频让 TPM 看起来像是一个连接到 CPU 的独立处理单元。与 TPM 本身一样,它是一个连接到主处理单元的微处理器。

但是,当我尝试了解 ARM TrustZone TPM(在基于 Android 的设备中找到)时,我正在阅读的文章使 TPM 看起来像是在 CPU 内,而不是单独的。文章特别指出“ARM TrustZone 技术是一种嵌入在 ARM 处理器内核中的基于硬件的解决方案,它允许内核运行两个执行环境”。

我很难在网上找到答案。我只想了解数据流,以便更好地了解应用程序的基于移动的安全选项。

0 投票
0 回答
180 浏览

uwp - 使用 uwp 进行 tpm 密钥认证 csr

我正在尝试生成任何形式的 tpm 证明数据,以配合我使用uwp api生成的 CSR 。

这个 api 有AttestationCredentialCertificate可能用于它,但是我所能做的就是生成标准的 CSR,但不清楚要为这个字段设置什么。

我知道密钥是在 TPM 支持的虚拟智能卡上创建的,它工作正常等,但我想生成一个可用于远程验证密钥是在 tpm 上生成的证明。我不想使用 Windows Server CA 或域,将根据已知 TPM 制造商的 EKcert 信任根来完成验证,但我不知道该怎么做。使用 cng 或 bcrypt 这样做的任何示例也将很有用。

0 投票
0 回答
821 浏览

security - 备份 TPM(可信平台模块)

如何备份 TPM 数据?你好。对计算机管理非常缺乏经验。为了完成安全更新,我被指示清除我的 TPM。在我清除它之前,建议我执行 TPM 数据的备份。我不知道怎么做这个任务。我已经做了一些谷歌搜索,但似乎可以找到答案。有人可以指导我完成这个吗?我已设法通过设备管理导航到 TPM 管理器。如果需要,我确实有屏幕截图。

HP ProBook 640 G1/Windows 10 build 17134.165/TPM 版本 1.2

0 投票
1 回答
382 浏览

certificate - 使用证明创建虚拟智能卡

在过去几周的某个时间点,在 Surface Pro 设备上创建虚拟智能卡时,以下命令开始失败:

请求失败,出现(0x80190190) Bad Request (400)

可以创建没有 /attestation 标志的虚拟智能卡(这是我过去通常所做的)。但是,以这种方式创建的虚拟智能卡在尝试生成包含证明的证书请求时会失败。具体来说,尝试使用带有AttestationCredentialCertificate字段集的CertificateRequestProperties结构生成证书请求失败,并显示 0x80100022 - This smart card does not support the requested feature

这些错误发生在以前工作的设备上。任何想法为什么行为已经改变或者它是否是暂时的?

0 投票
2 回答
180 浏览

tpm - SGX 能否证明两个飞地位于不同的计算机上?

想象一个云提供商向客户租用两台虚拟机。假设客户想要检查两个 VM 是否在不同的物理计算机上运行,​​尽管云提供商可能试图欺骗客户。

两台机器都提供 SGX 并启用了 TPM。

我的第一个想法是使用远程认证并比较使用的密钥,因为每台物理机器都会在工厂安装一个唯一的背书密钥。但是,新交所文档明确指出,远程证明使用组密钥来保护隐私,因此客户无法判断这两个远程证明是否由不同的硬件签名。

假设我已经在每台机器上建立了一个安全飞地。

是否可以从 enclave 中读取 EK 公钥(或其哈希),将其放入报价的数据部分,然后发送远程证明?然后远程证明将证明目标机器按照给定的方式运行代码,并且由于代码读取并返回 EK,我们也将拥有 EK。

这个相关问题表明,仅使用 TPM 是行不通的(实际上是行不通的),但让我想知道我们是否可以使用 SGX 来完成这项工作。

所以我的问题是:

1)以上真的有用吗?

2)如果是,你能帮我找到令人信服的文件来证实这是可能的吗?

3)如果没有,我还能做些什么吗?