定义
数字证书可以理解为一个数字世界的身份证,它将现实世界中对人的信任映射到数字领域。其中涉及到一个概念就是CA,即证书的颁发机构,这个可以理解为现实世界给你发身份证的机构,而这个机构一定是具有权威性的第三方,大家都信任它,因此拥有的这个身份证,你就可以证明你是你自己,具有合法身份。
证书的产生,对于企业内部,要么由服务器自签产生,要么由内部证书服务器(CA)签发。而对于面向互联网外部的应用,则由权威的证书颁发机构(CA)签发。数字证书主要包含公钥、持有者信息、CA签名及有效期等关键数据。
作用
那么证书有什么用途呢?其实上面也说了,主要就是做身份验证,证明身份的合法和真实。比如:一个应用服务器向权威的CA申请了证书,那么当全球的用户通过浏览器来访问这个应用时,就会自动从服务器获取其证书,根据证书信任链,就证明了正在访问的服务器是真实合法的。
因此作用主要有:
- 身份验证:解决网络通信中的身份冒充问题,例如,访问HTTPS网站时,浏览器会检查服务器证书是否由受信任的CA签发,防止用户连接到钓鱼网站。证书中的公钥与私钥配对,确保只有合法持有者能完成加密交互。
- 保障完整性和加密:证书绑定的公钥用于加密传输数据,且只有私钥持有者能解密。数字证书本身包含CA的签名,可以验证证书的合法性,另外,证书持有者也可用私钥对数据进行签名,接收方通过证书中的公钥验证签名真实性,从而保证不可抵赖性。所以证书中所使用的数字签名技术可验证数据在传输中未被篡改,保障完整性不被破坏。
信任链
有权威CA签发的数字证书,依赖一种层级化的信任结构,也被称为公钥基础设施PKI体系。就是从根证书→中间证书→终端证书,根证书一般都是预先内置在操作系统的证书管理器或浏览器的信任库中,比如DigiCert, GlobalSign这些公认的,处于信任链的顶端。而中间CA层级,根CA会授权给次级CA(Intermediate CA)签发证书,形成多级验证体系。
当客户端访问HTTPS网站时,从网站获取证书后,是这样验证的:
- 检查证书是否由受信CA签发
- 验证证书链完整性(包含中间证书)
- 核对证书中的域名匹配情况
- 确认证书有效期
应用场景
- SSL/TLS证书:实现网站的HTTPS加密
- 邮件加密:S/MIME证书保护邮件内容和发件人真实性
- 物联网设备:设备证书确保固件更新来源可信
- 代码签名:开发者证书确保软件未被篡改
- 电子签名:符合eIDAS法规的合格证书
让我们不断学习,保持好奇和兴趣!
Iain