数字证书如何证明设备的身份?

Posted

技术标签:

【中文标题】数字证书如何证明设备的身份?【英文标题】:How do digital certificates prove the identity of a device? 【发布时间】:2011-02-11 16:36:36 【问题描述】:

我了解颁发者和主题证书之间的关系如何能够验证主题的真实性。如果我连接到联网设备,它会向我发送证书以识别自己,那么我可以验证它是由受信任的一方颁发的,并且没有以任何方式被篡改。但是,假设我只是将此证书上传到另一台设备上。那么是什么阻止我让这个设备用复制的证书来识别自己呢?

【问题讨论】:

【参考方案1】:

没有什么能阻止你这样做。我一直在工作中看到这一点。唯一阻止某人获取您的证书并将其安装在某个地方的是有一个与证书关联的密码。因此,您不知道设备就是它所说的真实身份,但您知道知道证书密码的人能够将其安装在设备上。 UserID 和 Password 身份验证各有利弊,证书也是如此。

【讨论】:

私钥是否用于认证?我以为它只用于创建子证书... 不,当我看到你的问题时,我只是在大脑上进行了身份验证【参考方案2】:

对于要向远程服务器进行身份验证的客户端设备,客户端需要拥有与证书相关联的私钥,而不仅仅是证书。

例如,在客户端 SSL 身份验证中,客户端使用其私钥签署(加密)一些质询。此私钥对应于其证书中的公钥。与证书中的公钥不同,客户端必须保证其私钥的安全。

服务器然后使用客户端证书中的公钥来验证客户端的签名。

但是,服务器应该只依靠证书中的公钥来验证客户端的签名,如果它信任颁发CA,证书仍然在有效期内,并且没有被撤销。

【讨论】:

【参考方案3】:

在我看来,这是对证书的普遍误解,部分原因是各个营销部门推动的。任何类型的证书都不能保证通信链路另一端的设备就是您认为的那样。

证书真正能做的就是提供一种公钥/私钥机制来保护您在两台设备之间传递的信息。这样可以防止第 3 方在数据通过它们之间可能有数百个设备时嗅探数据。

它不能保证另一端的设备是什么或谁拥有它。一些证书颁发者会在颁发证书之前尝试验证证书请求者是谁。然而,即使这个过程也存在缺陷,而且很容易被颠覆。

【讨论】:

【参考方案4】:

设备可能会尝试假装它是由证书标识的设备。但是,这样做不会有任何好处,只要传递给它的数据是使用证书中提供的公钥加密的,因为不正确的设备不会拥有私钥。

它可以实现的最佳效果是通过丢弃传递给它的通信来进行拒绝服务攻击。

【讨论】:

以上是关于数字证书如何证明设备的身份?的主要内容,如果未能解决你的问题,请参考以下文章

Linux系统搭建私有CA证书服务器

如何在真 iPhone 上运行我的应用程序? (我有我同事的证明)

服务器如何配置ssl证书

什么是域名ssl证书?如何选择合适的证书?

在 Android 设备上生成客户端证书

CDN私钥保护与HTTPS加速如何兼得?