Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Certificate 数字证书如何证明设备的身份?_Certificate - Fatal编程技术网

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

Certificate 数字证书如何证明设备的身份?,certificate,Certificate,我理解发行人和主体证书之间的关系如何能够验证主体的真实性。如果我连接到一个联网设备,它向我发送其证书以识别自身,那么我可以验证它是由受信任方颁发的,并且它没有被任何方式篡改。但是,假设我只是将此证书上载到另一个设备上。那么,是什么阻止我使用复制的证书来标识此设备?没有什么阻止您这样做。我一直在工作中看到这一点。唯一能阻止别人拿走你的证书并把它安装到某个地方的就是有一个与证书相关联的密码。因此,您不知道该设备是它所说的真实设备,但您知道知道知道证书密码的人能够将其安装到该设备上。用户ID和密码身份

我理解发行人和主体证书之间的关系如何能够验证主体的真实性。如果我连接到一个联网设备,它向我发送其证书以识别自身,那么我可以验证它是由受信任方颁发的,并且它没有被任何方式篡改。但是,假设我只是将此证书上载到另一个设备上。那么,是什么阻止我使用复制的证书来标识此设备?

没有什么阻止您这样做。我一直在工作中看到这一点。唯一能阻止别人拿走你的证书并把它安装到某个地方的就是有一个与证书相关联的密码。因此,您不知道该设备是它所说的真实设备,但您知道知道知道证书密码的人能够将其安装到该设备上。用户ID和密码身份验证有其优点和缺点,证书也有其优点和缺点。

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

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

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


但是,服务器应仅依靠证书中的公钥来验证客户端签名,如果它信任颁发证书的CA,则证书仍在其有效期内,并且尚未被吊销。

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

证书所能做的只是提供一种公钥/私钥机制,以保护您在两个设备之间传递的信息。这可以防止第三方在数据跨越可能有数百台设备时嗅探数据


它无法保证另一端的设备是什么或是谁拥有它。一些证书颁发者会在颁发证书之前尝试验证证书请求者是谁。但是,即使该过程存在缺陷,也很容易被破坏。

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


它所能达到的最好效果是通过丢弃传递给它的通信来进行拒绝服务攻击。

私钥用于身份验证吗?我以为它只用于创建儿童证书…不,我只是在大脑中进行了身份验证,因为我正在研究这个问题,当我看到你的问题时