1.7.3 数字证书
(1)什么是数字证书
数字证书是一种电子文件或电子密码,由权威的第三方颁发,用于在数字领域证实用户身份。数字证书身份验证可以帮助组织确保只有受信任的设备和用户才能连接其网络。数字证书必须具有唯一性和可靠性。
(2)为什么需要数字证书
数字证书的出现,主要是为了解决互联网世界中身份未知或仿冒的问题。没有数字证书,通信的双方无法互相信任,这会导致很多业务无法开展,例如签订合同、金融交易甚至投票。数字证书将公钥的所有权与其所有者联系起来,以确保发送方的数据不会丢失、泄露或被盗,并保护已发送的信息不会被篡改。
(3)证书颁发机构
数字证书可以通过工具产生,而攻击者也能够使用工具生成证书,并声明其证书的合法性。这就好像不法分子伪造了一张普通人的身份证,并使用该身份证四处行骗一样。要解决这样的问题,必须由权威机构来颁发数字证书,这样的权威机构称为证书颁发机构(CA)。
(4)数字证书有哪些内容
数字证书通过使用密码学和PKI来证明设备、服务器或用户的真实性。数字证书包含可识别信息,例如用户名、公司或部门以及设备的IP地址或序列号。数字证书包含证书持有者的公钥副本,需要将其与相应的私钥进行匹配以验证其真实性。公钥证书由CA颁发,CA签署证书以验证请求设备或用户的身份。
(5)数字证书种类
根据应用场景的不同,数字证书可以分成多种类型,如表1-2所示。
表1-2 数字证书种类及应用场景
(续)
(6)证书获取过程
证书获取过程如图1-11所示,可以概括为以下4个步骤:
1)服务器生成一对密钥,自己保留私钥;
2)将公钥和申请人信息结合,生成CSR文件提交给CA;
3)CA进行审核,并用自己的私钥对服务器提供的公钥进行签名;
4)生成证书文件,下发给服务器。
图1-11 证书获取过程示意
(7)证书是如何工作的
仍然以客户端访问Web服务、建立HTTPS连接为例。在这一过程中,服务器端与客户端互换数字证书,双方都会验证对方的身份。客户端验证服务器证书的过程如下:
1)客户端浏览器向Web服务器发送访问请求,服务器向客户端浏览器发送自身的数字证书。
2)客户端浏览器用CA的公钥对服务器的证书进行验证:如果摘要比对一致,说明该服务器证书中的公钥真实可用;如果摘要比对不一致,则说明获得的服务器证书存在伪造的可能。
3)客户端浏览器使用服务器公钥与服务器进行加密通信。