我们都知道,SmartCards比任何基于软件的解决方案都更好地保护私钥。但是,当涉及到要与SmartCards进行比较的Windows存储时:攻击者从该Windows存储库提取证书包的私钥有多困难?
在提出这一问题时,我很清楚概念上的挑战。
所以不同的要求:
或者:有人能和我分享一份关于windows证书商店的深度风险评估吗?
发布于 2021-09-30 00:10:03
证书本身并不包含私钥,但由于您是在讨论智能卡,我猜想您是在将PKCS#11与客户端证书身份验证进行比较,其中客户端证书及其伴随的密钥存储在中。
如果您只是安装证书而没有将其标记为不可导出,那么用户所要做的就是在certmgr中右键单击它来提取它。然而,通常情况下,客户端证书及其相关私钥通常被标记为不可出口.Windows将不允许您通过正常方式提取它们。
不幸的是,这并不意味着你不能在实践中提取它们。加密秘密(如私钥)通过CAPI(也称为CAPI)或较新的CAPI进行管理。这些API提供到证书存储和密钥存储的接口。这些存储主要由本地安全管理局(LSA)管理,LSA作为系统运行,通常是系统上最受保护的用户模式进程之一。LSA的秘密在内存中被加密,只有在需要时才能解密。但是,由于作为系统运行的进程能够有效地控制所有进程,包括能够打开LSA的句柄,而且LSA本身必须具有对用于加密它们的秘密和密钥的访问权限,因此可以对LSA进行修补以提取它们。
Mimikatz支持这样做。它可以同时修补CSP和CNG,以便所有证书都可以导出,即使它们被标记为不可导出。
从功能上讲,从本地管理到域管理的任何人都可以这样做,因为他们都能够在主机上作为系统运行命令。正常用户不应获得所需的权限,但这意味着系统、操作系统本身或已安装的任何软件包中都不存在权限提升漏洞,而且这通常不是事实。
使用LSA分离使这种攻击变得更加困难,它将LSA的核心移动到操作系统本身无法访问的受保护的飞地中。但是,将代码作为系统运行的攻击者仍有可能安装安全支持提供程序(SSP),该提供程序在使用时提取证书。风险的确切水平取决于具体的配置,但是启用虚拟安全模式,使LSA能够从IUM中受益是一项重要的安全保护。
https://security.stackexchange.com/questions/255666
复制相似问题