问题标签 [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 回答
238 浏览

cryptography - 获取 TPM 的公共 EK:前导/尾随位的含义

我一直在尝试使用两种方法获取 TPM 的 EK 公钥:使用 Hyper-VGet-PlatformIdentifier我得到以下结果:

使用 Urchin 的 C 库:

谁能解释一下是什么3082010a0282010100意思0203010001/编码?

0 投票
2 回答
7152 浏览

powershell - 获得 TPM 的所有权

我正在开发一个 Powershell 脚本,我可以使用它在已禁用 TPM 的用户计算机上启用、激活和获取 TPM 的所有权。对于那些不知道的人,TPM 是允许 Bitlocker 正常工作的板载部件。我有几个关于我目前所拥有的以及如何完成我的脚本的问题。我对 Powershell 非常陌生,所以如果我的要求是基本的,我提前道歉。我四处搜索并找到了所有方面的帮助,直到我在脚本中的位置。我发现的大部分内容都指向必须将密码设置为脚本的一部分,但由于我们的域控制器正在处理该部分,因此我试图避免这种情况。我可以走得更远,我也需要。

这是我到目前为止所拥有的:

我的问题是:

  1. 语法对于我必须工作的内容是否正确?

  2. 由于 Bitlocker 是由域 MBAM MDOP 实例运行的,因此启用 TPM 后是否需要进一步操作?如果是这种情况,请忽略我的其余问题。

  3. 我可以编写一个这样的 Powershell 脚本,让它像批处理文件一样执行这些多个功能吗?

  4. 如果一切都正确,既然我处于清晰阶段并且我需要拥有 TPM 的所有权,我该如何在不需要输入密码的情况下执行此操作,因为我们的域控制器将持有所有密钥和密码字符串?我们不希望允许用户为 Bitlocker 编写自己的密码。

0 投票
1 回答
599 浏览

tpm - 如果 pc 被盗,硬件 bitlocker 会有所帮助吗?

所以我注意到使用硬件 TPM 你不需要密码(你只需将私钥保存到外部 USB)。现在,想象一下有人偷了我的电脑(上面有 TPM 硬件),他们难道不能在新硬盘驱动器中安装 Windows 10 的新副本,连接受 bitcopy 保护的旧驱动器作为辅助驱动器,然后访问我所有的数据?

因为 TPM 硬件模块仍在同一主板上。请记住,他们不仅窃取了 HDD,还窃取了整个 PC。

谢谢阅读,

肖恩

0 投票
0 回答
321 浏览

tpm - TPM:自检失败,TPM 已关闭

当我尝试更新 TPM 固件时,更新失败。它打印错误消息“自检失败并且 TPM 已关闭”。

我尝试使用 tpmc 命令重新激活 tpm 但它不起作用。

有没有人遇到过这个问题并解决它?

谢谢

0 投票
0 回答
218 浏览

windows - 使用 TPM 在 Windows 上签名而不取得所有权

我有一个关于这个问题的后续问题:How to encrypt bytes using the TPM (Trusted Platform Module)

我将 Windows 10 用于嵌入式解决方案。我想使用 TPM 来存储签名密钥并执行签名。但是,我不想中断 Windows 使用 TPM 进行安全启动的能力……因此,我对获得 TPM 的所有权犹豫不决。我玩过 TSS.NET 代码示例,并让 TPM 使用空白 AuthValue 对数据进行签名(使用真正的 TPM,而不是模拟器)。但我不确定这里有什么限制。TSS.NET 示例代码有注释:

如果在 Windows 提供的真实 TPM 上运行,则此值将不同。管理员可以从注册表中检索所有者授权值。

所以我的问题分为两部分:

  • 配置时,我是否更正不建议更改 TPM 所有者密码?
  • 是否可以在代码中获取密码?
  • 如果我在部署设备时没有所有者授权,我可以安装签名密钥吗?
  • 如果在运行时没有所有者授权,我可以使用 TPM 进行签名吗?
0 投票
2 回答
2749 浏览

encryption - Windows 10 和 Linux 的 TPM 所有者密码和锁定密码

我已经设置了双启动,所以我有 Windows 10 和 ubuntu。

按照此页面上的步骤,我可以在 Windows 10 注册表中检索我的 TPM 的锁定密码和所有者密码。结果如下所示:

OwnerAuthFull 和 LockoutHash 都是 base64 编码,因此我可以使用此链接对它们进行解码(例如,它以 hexa 形式提供 893716F2DD41FAD20A98FFEEC573CBF78405D89C 作为所有者密码)。

在 ubuntu 上启动之后,我尝试使用这些密码与 TPM 交互。我正在使用tpm2-tools与 ubuntu 下的 TPM 进行交互。当 linux 控制 TPM 并设置这些密码时,tpm2-tools 工作得很好。但是在这里我试图让 Windows 控制 TPM 并且仍然能够在 Ubuntu 下与它通信。例如,当我运行这些命令时(在 ubuntu 控制 TPM 时有效)。

我明白了

有谁知道我为什么会收到这个错误/为什么这个密码不起作用?我在哪里可以获得正确的密码?那么任何关于如何解决这个问题的指针都值得赞赏!谢谢!

0 投票
1 回答
156 浏览

windows - TPM Windows 密钥创建

一旦 Windows 获得了我计算机中的 TPM 芯片的所有权,是否仍然可以在其中创建持久密钥?(鉴于我没有所有者密码,因为 Windows 在初始化 TPM 后将其丢弃)。

由 Windows 在 TPM 中创建的存储根密钥 (SRK) 是否使用 PIN 码进行保护以执行密码操作?如果是该密码存储在 Windows 中的哪个位置?

谢谢!

0 投票
2 回答
770 浏览

windows - TPM2 - 在 Windows 下使用 Tbsip_Submit_Command 创建持久主键

使用Tbsip_Submit_Command玩我的 TPM 芯片,我可以看到 Windows 分析了我发送给它的帧。

为了简单起见,我使用了 shutdown 命令。

例如,我尝试在参数中发送带有 TPM_SU_CLEAR 的 TPM_CC_Shutdown。所以帧是=> 80 01 00 00 00 0C 00 00 01 45 00 00

为了使其更详细和解释:

Windows 回复我 => 80 01 00 00 00 0A 80 28 04 00
再次使其更详细:

我在这里找到了那个错误代码。如此明显的 Windows 打断了我并放弃了我的命令。我可以理解它不希望关闭 TPM 电源,但是对于要创建主键并将其保存在芯片内的命令,我得到了相同的结果。

所以我有一个芯片,但如果我想直接使用它我不能,我不得不使用 Cryptography API: Next Generation 但在我的情况下我不能。

有人有什么可以帮助我的吗?也许我可以直接与编码驱动程序的芯片通信并绕过 Windows 层(如果有人知道如何做到这一点)?或者是否可以在注册表中配置一个值,让 Windows 让我用我的 TPM 芯片做我想做的事?

0 投票
0 回答
193 浏览

windows - 如何获取 TPM 支持的算法列表

在 linux 上,我可以使用 tpm2_getcap 工具来获取加密算法列表,如下所示:

tpm2_getcap --capability="算法"

Windows上有类似的东西吗?我只在 powershell 中找到了“Get-TpmSupportedFeature”,但这不是我想要的。

0 投票
1 回答
3606 浏览

.net - 如何在 TPM 中创建私钥、创建 CSR 并锁定 TPM?

我们的应用程序(C#、Win10、WPF)需要存储一个私钥,用于对发送到硬件设备的消息进行签名。该设备信任我们的 CA,因此我希望 CA 为我们签署证书。

我一直在研究 Windows 上的 TPM API,但我无法弄清楚如何创建私钥,将其存储在 TPM 中,创建 CSR,然后锁定 TPM,因此任何进程都无法读取或修改私钥。理想情况下,我想限制 TPM 访问,以便只有某些进程可以使用该密钥对数据进行签名。

有谁知道如何在 Windows 10 中执行此操作以及要使用哪些 API?