gpt4 book ai didi

windows - Windows 中关键容器存储文件的 GUID 后缀是什么?

转载 作者:可可西里 更新时间:2023-11-01 10:32:10 25 4
gpt4 key购买 nike

我想知道存储在机器和用户 key 容器存储中的 RSA key 容器文件的 GUID 后缀是什么。我无法通过 CAPI/CNG 将其中一些识别为关键容器,尽管我将使用命令行工具公开我的案例。以下命令适用于提升提示中的 PowerShell。在大多数机器上,所有这些文件名的 GUID 后缀都是相同的,但是在这台机器上有四个不同的 GUID,而 API 只返回一个 key 。 这个 GUID 是什么? 我不喜欢存储在我机器上的随机 secret ,我不知道这是什么; 它们可以安全删除吗?

机器存储目录的内容是:

> ls -n $env:ProgramData\Microsoft\Crypto\Rsa\MachineKeys  | sort { "$_"[-3..-1] }
d1f9044f5d7345da71c0d2efd2e4f59e_e9f96f2e-b8b7-49b2-85a5-840195eca603
d6d986f09a1ee04e24c949879fdb506c_a4dc5a56-574d-4e4b-ba8d-d88984f9a6c5
6de9cb26d2b98c01ec4e9e8b34824aa2_a4dc5a56-574d-4e4b-ba8d-d88984f9a6c5
76944fb33636aeddb9590521c2e8815a_a4dc5a56-574d-4e4b-ba8d-d88984f9a6c5
d6d986f09a1ee04e24c949879fdb506c_f7fe3b04-ef9b-4b27-827f-953c5743e2ec
d1f9044f5d7345da71c0d2efd2e4f59e_f7fe3b04-ef9b-4b27-827f-953c5743e2ec
76944fb33636aeddb9590521c2e8815a_f7fe3b04-ef9b-4b27-827f-953c5743e2ec
6de9cb26d2b98c01ec4e9e8b34824aa2_f7fe3b04-ef9b-4b27-827f-953c5743e2ec
ba8e1b9b5510957b3af7b811f05660de_f7fe3b04-ef9b-4b27-827f-953c5743e2ec
d1f9044f5d7345da71c0d2efd2e4f59e_c6a7fc9d-32a6-41e4-afd5-7dc7b822029e

我按最后三个字符对列表进行了排序,因此很容易一眼看出 key 容器文件有 4 个不同的 GUID 后缀。现在让我们枚举所有已安装的 CSP 报告的 key 。我将使用 Windows 附带的 certutil 工具获取提供商列表,然后获取每个提供商 key 的列表。它的输出需要一些正则表达式魔术来解析,这不是必需的,只是方便:

> certutil -csplist | sls  '^Provider Name: (.*)' | %{ $_.Matches[0].Groups[1].Value }
Microsoft Base Cryptographic Provider v1.0
Microsoft Base DSS and Diffie-Hellman Cryptographic Provider
Microsoft Base DSS Cryptographic Provider
[...snip...]

单个 key 的输出列出了名称、标志和 key 容器 ID,后者与上述目录中的相应文件名相匹配(当然,我们可以看到来自其他 KSP、智能卡、TPM 等的更多 key ) .一个提供商的示例(-q 使某些提供商静默失败,而不是要求用户执行操作,例如插入智能卡):

> certutil -key -q
Microsoft Strong Cryptographic Provider:
iisConfigurationKey
6de9cb26d2b98c01ec4e9e8b34824aa2_f7fe3b04-ef9b-4b27-827f-953c5743e2ec
RSA
AT_KEYEXCHANGE

iisWasKey
76944fb33636aeddb9590521c2e8815a_f7fe3b04-ef9b-4b27-827f-953c5743e2ec
[...snip...]

有些键名也只是 GUID,但如果我们只 grep 出以至少 20 个十六进制数字开头的行,则只会列出 ID。因此,来自所有提供商的所有 key ID 都可以简洁地显示为:

> certutil -csplist | sls '^Provider Name: (.*)' | %{ $_.Matches[0].Groups[1].Value } |
%{ certutil -key -q -csp "$_" } | sls '^\s+[0-9a-f]{20}.+' | sort -u

597367cc37b886d7ee6c493e3befb421_f7fe3b04-ef9b-4b27-827f-953c5743e2ec
6de9cb26d2b98c01ec4e9e8b34824aa2_f7fe3b04-ef9b-4b27-827f-953c5743e2ec
76944fb33636aeddb9590521c2e8815a_f7fe3b04-ef9b-4b27-827f-953c5743e2ec
ba8e1b9b5510957b3af7b811f05660de_f7fe3b04-ef9b-4b27-827f-953c5743e2ec
d6d986f09a1ee04e24c949879fdb506c_f7fe3b04-ef9b-4b27-827f-953c5743e2ec
f0e91f6485ac2d09485e4ec18135601e_f7fe3b04-ef9b-4b27-827f-953c5743e2ec

这里实际上比 MachineKeys 目录中的 key 多 2 个(它们来自 KSP,事实上,certutil -key -csp KSP 显示了它们,如果您想知道的话)。但事实是它们都具有相同的 GUID 后缀 _f7fe3b04-ef9b-4b27-827f-953c5743e2ec

这台机器是由供应商安装的(准确地说是惠普笔记本电脑)。这不像其他机器,我们组装或购买准系统并自行安装和配置。我有时会处理一些敏感数据,所以我确实偏执在允许机器访问敏感数据之前彻底审查软件。

操作系统是 Windows 10,如果这很重要,但相同类型的存储并没有从 Windows 7 改变,据我所知,即使在 8.0(或 8.1?)中引入了新的 CNG API。


以防万一有人发现有用的 PowerShell 代码段可以按提供商可读地列出 key ,我使用了这个命令:

> certutil -csplist | sls  '^Provider Name: (.*)' | %{ $_.Matches[0].Groups[1].Value } |
%{ Write-Host -for Yellow "`n$_"; certutil -key -q -csp "$_" }

最佳答案

在这里找到答案:https://serverfault.com/a/642279/451491

The file naming convention is x_y, where x is a random GUID to uniquely identify the key, and y is the machine GUID found at HKLM\SOFTWARE\Microsoft\Cryptography.

关于windows - Windows 中关键容器存储文件的 GUID 后缀是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50322187/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com