带有存储在 TPM 中的密钥的 DPAPI

问题描述 投票:0回答:0

Windows 上的DPAPI 提供了加密和解密任意数据的函数。 DPAPI提供的函数包括

CryptProtectMemory
CryptUnprotectMemory
CryptProtectData
CryptUnprotectData
。我怀疑来自 ntsecapi.h 的函数
RtlEncryptMemory
RtlDecryptMemory
也使用 DPAPI,尽管它没有在文档中说明。

过去,加密密钥的安全性显然是基于用户的凭据 [1]。 如果 TPM 可用,DPAPI 会使用 它来保护其加密密钥吗?如果是这样,前面列出的哪些功能是正确的?

如果攻击者可以转储整个 RAM(例如通过 DMA),使用 DPAPI 加密的敏感数据是否会受到保护?假设攻击者在这种情况下无法访问 TPM。

[1] https://learn.microsoft.com/en-us/previous-versions/ms995355(v=msdn.10)

我试图通过可用的 Microsoft 文档搜索列出的所有功能、DPAPI 文档和 Windows 如何使用 TPM(CNG 等)的文档。我还探索了像这样逆转 DPAPI 的论文:https://elie.net/static/files/recovering-windows-secrets-and-efs-certificates-offline/recovering-windows-secrets-and-efs-certificates-offline -paper.pdf

不幸的是,这些信息已经过时或不通用。

windows security winapi tpm dpapi
© www.soinside.com 2019 - 2024. All rights reserved.