公钥加密解决了密钥配送问题,但是没法抵御中间人攻击,即无法确保将正确的公钥交给了需要加密的人;公钥加密反过来使用即“私钥加密公钥解密”就得到了数字签名技术,但是数字签名技术要求公钥得到可靠交付,要想公钥可靠交付又必须使用数字签名,于是陷入了无限套娃逻辑。人们引入数字证书解决公钥加密与数字签名技术的痛点。
数字证书也叫公钥证书,理解证书非常重要,因为证书涉及了很多密码学知识,同时学习TLS/SSL协议(HTTPS=HTTP+TLS/SSL)也需要对证书的理解。
数字证书,类似于生活中的身份证,用于标识网络中的用户(计算机)身份。由数字证书颁发认证机构(Certificate Authority,CA)签发,只有经过CA签发的证书在网络中才具备可认证性。
在讨论数字签名时,我们发现仅仅依靠数字签名技术本身没法做到逻辑闭环,因为数字签名要求公钥可靠,而公钥可靠又依赖于数字签名,于是陷入了无限套娃逻辑。解决办法就是引入权威的第三方机构(CA)来对公钥签名。