1. PKI
PKI(public key infrastructure)的目标是实现不同成员在不见面的情况下进行安全通信,采用的模型是基于证书颁发机构( certification authority或certificate authority, CA)签发
的证书。PKI体系结构如下图所示:
- 订阅人:指那些需要证书来提供安全服务的团体。
- 登记机构:主要是完成一些证书签发的相关管理工作。可以理解为代理机构
- 证书颁发机构:既CA,是指证书的颁发机构,它会在确
认申请用户的身份之后签发证书。同时CA会在线提供其所签发证书的最新吊销信息,这样信赖方就可以验证证书是否仍然有效。 - 信赖方:指那些证书使用者,主要指那些需要通过证书在互联网上进行安全通信的最终用户。信赖方为了能够验证证书,必须收集信任的所有根CA证书。大多数的操作系统都提供一个根证书库,几乎所有的软件开发者都重用了底层操作系统提供的根证书库,唯一的例外是Mozilla,为了保证不同平台的兼容性,它维护了自己的根证书库。
2. 证书
证书是一个包含公钥、订阅人相关信息以及证书颁发者数字签名的数字文件。
2.1 证书的分类
证书分类主要包括下面的类型
-
域名验证型(DV)
- 只验证网站域名所有权
- 仅能加密通信内容,不能向用户证明网站的真实身份
- 适合无身份认证需求的网站,如larave_china等
-
组织验证型(OV)
- 需验证域名所有权和所属单位的真实身份。
- 不仅能加密通信内容,还能向用户证明网站的真实性
- 适应电子商务,企业等网站使用,如亚马逊商城
-
扩展验证型(EV)
- 严格的身份验证,最高安全级别
- 提供通信内容加密与网站身份证明,浏览器状态显示单位名称。
- 适合金融证券,银行等网站使用,比如工商银行
2.2 证书结构
从浏览器以及censys(https://censys.io/certificates) 都可以清洗的看到证书的信息:
浏览器上部分证书内容如下:
在censys上查询baidu的证书,部分内容如下(完整内容可查看:https://censys.io/certificates/ed68c58b63218e1d2aa63394b3f23eca26fe5884c9f2235ac2d4ab6edd2f064e/openssl):
Certificate:
Data:
Version: 3 (0x2)
Serial Number:
2c:ee:19:3c:18:82:78:ea:3e:43:75:73
Signature Algorithm: sha256WithRSAEncryption
Issuer:
commonName = PRINTABLESTRING:GlobalSign Organization Validation CA - SHA256 - G2
organizationName = PRINTABLESTRING:GlobalSign nv-sa
countryName = PRINTABLESTRING:BE
Validity
Not Before: May 9 01:22:02 2019 GMT
Not After