数字证书简介

证书包含的信息

 

证书主要包含如下信息:

 

证书版本:123

证书序列号:颁发者分配的唯一整数

证书的颁发者:颁发者的可识别名

证书的有效期:起止日期

证书的所有者:持有者的可识别名

证书的公钥及对应算法

(*)证书的颁发者唯一标识符

(*)证书的所有者唯一标识符

(*)证书的密钥标识符用来区分该所有者的多对密钥

(*)密钥使用范围

(*)私钥有效期

(*)CRL分布点:用于访问证书吊销列表

(*)证书策略:证书的在不同应用中的安全性

(*)策略映射:该证书的策略对应的其他CA的策略

(*)所有者别名

(*)颁发者别名

(*)所有者目录属性

证书的签名及对应算法

 

标注星号的表示可选信息。这其中,比较重要的是签名和公钥。

 

公钥和对应算法属性,描述了该证书使用的不对称加密算法以及公钥。

 

签名和对应算法属性,描述了指纹算法、签名算法、签名。

 

签名是使用指纹算法对证书其它信息生成指纹,之后使用不对称签名算法和颁发者的私钥对指纹加密获得的。

 

如何验证证书

 

一个机构首先向第三方(CA)申请一个证书,第三方提供给该机构一个证书以及对应的私钥,并且用自己的私钥对证书进行了签名,CA在提供证书前会先验证该机构的合法性,并且会对证书的真实性做担保(自然,是收钱滴)。

 

当该机构想和某P加密联系时,就先向P提供他的证书。注意,P事先已经持有了CA的证书(比如微软和Linux在安装之初就已经有安装了很多证书了,你也可以自己安装本地证书)。因此,P就根据证书的颁发者信息查找到它的证书,取出公钥。根据证书中提供的指纹算法,P计算出证书的指纹;根据证书提供的签名算法,P使用CA的公钥解密签名也得到一个指纹;如果两个指纹一致,就可以认为证书没有被篡改。

 

P还会验证证书是否在有效期内,并且如果需要会通过CRL分布点信息访问证书吊销列表。

 

既然知道证书没有被篡改且仍然有效,P就可以使用证书中提供的公钥和加密算法和该机构进行加密通信了。因为可以确信证书提供的公钥就是该机构的公钥,而用于解密的私钥只有该机构持有。

 

实际应用中,因为不对称加密算法效率比较低,通常,通信双方会使用该加密算法沟通,交换一个随机生成的对称加密算法的密钥,在之后的通信中,都使用效率更快的对称加密算法进行。


你可能感兴趣的:(ssl,https,证书,数字证书)