在数字签名部分,我们讲到数字签名可以起到“防抵赖”的作用。然而,在开放的互联网环境中,通信的双方通常是互不相识,数字签名并不能解决身份认证的问题。比如在数字签名中,私钥签名,公钥验证签名。如果有人冒充淘宝给了你公钥,对方持有假冒公钥对应的私钥,这种情况下签名、验签都没问题,但你是在和一个假的淘宝通信。退一步说,你开始拿到的确实是淘宝发布的公钥,如果有人偷偷替换掉了你的机器上的公钥,这样你实际拥有的是李鬼的公钥,但是还以为这是淘宝的公钥。因此,李鬼就可以冒充淘宝,用自己的私钥做成"数字签名",写信给你,而你则使用假的公钥进行解密。
在现实生活中,我们通常使用身份证或者护照来证明自己的身份,而在虚拟的网络世界,则需要使用数字证书。
很多人可能听说过 X.509 证书,它实际上就是一种数字证书。数字证书标准有很多,但使用最广泛的就是 X.509 标准,以至于现在一般将数字证书等同于X.509证书。
X.509标准
PKI(Public Key Infrastructure,称为公钥基础设施)是一个集合体,由一系列的软件、硬件、组织、个体、法律、流程组成,主要目的就是向客户端提供服务器身份认证。
为了规范化运用PKI技术,