客户端身份验证与客户端设备上存在 TPM 的密码身份验证

时间:2021-03-11 20:43:38

标签: authentication passwords x509certificate client-certificates tpm

为了更好地了解使用基于证书的客户端身份验证与基于密码的身份验证的优缺点,我在这里搜索了以前的帖子并阅读了 this one

然而,我想考虑一个特定的场景,其中 1) 客户端是部署在设备上的应用程序并使用不可猜测的密码(如果被攻击者接管,则在客户端设备上仍然可用); 2) 证书由部署服务器和客户端应用程序的组织拥有的私有 CA 签署; 3) 客户端不(需要)执行注销; 4) TPM 在设备上可用,5) 攻击者可以物理访问持有证书/密码的设备。

按照我的理解,客户端证书的密钥可以在客户端 TPM 上进行硬件保护,从而无法在不同的设备中重复使用相同的证书。 尽管如此,我仍不清楚对设备具有物理访问权限的攻击者是否有机会读取由 TPM 移交给应用程序的机密。

想知道是否同样适用于密码。

在我的上下文中我没有考虑撤销,因为如果需要,服务器可以很容易地撤销密码,而无需设置 PKI。

TPM 的存在是否会使一种选择优于另一种选择?是否还有其他方面让一个人更喜欢另一个?

1 个答案:

答案 0 :(得分:0)

<块引用>

不过,我还不清楚对设备具有物理访问权限的攻击者是否有机会读取由 TPM 移交给应用程序的机密。

TPM(如智能卡、HSM)的关键点是关键隐私。它永远不会暴露给应用程序。相反,TPM 公开接口以使用密钥执行加密操作,但不公开对密钥材料的访问。您不是获取密钥并执行某些操作(签名或加密数据)并因此访问密钥材料,而是要求 TPM 执行请求的操作(签名或加密数据)并获得结果,但永远不要接触密钥材料。

此外,密码通常由应用程序缓存在内存中的某处(例如,由于未释放的句柄或活动引用),TPM 在芯片内部执行加密操作并且永远不会离开它。

这就是 TPM 击败密码的地方。如果你有 TPM,那就去吧。