数字证书(CA证书)是可靠的第三方权威(CA中心)向个人或企业用户发放验证身份、数据签名、数据加密等操作。CA证书是整个公钥基础设施(PKI,Public Key Infrastructure)目前,国内系统的核心是国内CA中心由国家密码管理局管理,基本上每个省都有一个CA该中心用于省内签发CA提供证书及相关应用。
数字证书是包含公共密钥所有者信息和公共密钥在证书授权中心数字签名的文件。最简单的证书包括公共密钥、名称和证书授权中心的数字签名。目前,数字证书已被使用X.509国际标准。数字证书的结构包括以下信息。
版本号:书所遵循的X.509标准版。
序列号:证书颁发机构颁发的唯一标识证书和编号。
证书算法标识:具体公钥算法的名称由证书颁发机构签名。
发:证书颁发机构的实际标识。
有效期:数字证书保持有效期,包括起始日期和过期日期。
用户名:数字证书所有者的姓名。
用户公钥信息:与数字证书所有者相关的公钥和与公钥相关的特定公钥算法。
发起人唯一的标识符:可用于识别数字证书发行人的唯一信息。
用户唯一的标识符:可用于识别数字证书所有者的唯一信息。
扩充信息:其他与证书使用和处理有关的信息。
证书颁发机构的数字签名:使用证书算法识别字段中指定的算法和证书颁发机构的私钥进行实际数字签名。
数字证书由公钥和认证机构的数字签名组成。为了验证公钥的数字签名,认证机构本身的合法公钥需要通过某种方式获得。以下是数字签名和散列算法的实际应用例,以解释数字证书的基本用途。
(1)Bob有两把钥匙,一把是公钥,另一把是私钥。
(2)Bob把公钥给他的朋友Craol、Alice每人一把。
(3)Alice要给Bob写一封保密信。她写完后用了。Bob如图1所示,达到保密效果,如图1所示。
图1 Alice信件加密
(4)Bob收信后,用私钥解密,就看到了信件内容。这里要强调的是,只要Bob私钥不泄露,这封信安全,即使落在别人手里,也无法解密,如图2所示。
图2 信件解密
(5)Bob给Alice回复,决定采用“签名”写完后,使用散列函数生成信件摘要(Digest),如图3所示。
图3 生成信件摘要
(6)然后,Bob使用私钥加密这个摘要并生成它“数字签名”(Signature),如图4所示。
图4 生成数字签名
(7)Bob将签名附在信件下,一起发送Susan,如图5所示。
图5 附签名信
(8)Alice 收到信后,取下数字签名,使用 Bob 公钥解密,信件摘要。这证明这封信确实是Bob如图6所示。
图6 公钥解密
(9)Alice然后对信件本身使用散列函数,将结果与上一步的摘要进行比较。如果两者一致,则证明该信未被修改,如图7所示。
图7 修改验证
(10)出现了复杂的情况。Craol想欺骗Alice,他偷偷用了Susan电脑用自己的公钥换了Bob公钥。Alice实际拥有的是Craol公钥,但我以为是Bob公钥。Craol 可冒充 Bob,用自己的私钥 *** “数字签名”写信给 Alice,让 Alice用假的Bob解密公钥。
(11)后来,Alice感觉不对劲,发现自己无法确定公钥是否真的属于Bob。她想出了一个办法,要求Bob去找“证书中心”(CA,Certificate Authority),认证公钥。证书中心使用自己的私钥Bob加密公钥并生成一些相关信息“数字证书”(Digital Certificate),如图8所示。
图8 生成数字证书
(12)Bob拿到数字证书后,就可以放心了。以后再给。Alice写信,只需在签名时附上数字证书,如图9所示。
图9 附证书信
(13)Alice收信后,用CA公钥解开数字证书,即可获得Bob真正的公钥可以证明“数字签名”是否真的是Bob如图10所示。
图10 确认签名
基于数字证书的安全认证如下。
如果认证有问题,认证是安全通信的前提,A不是和A想聊天的人B和一个聊天C(假冒B)聊天时,所有的安全措施都是徒劳的。目前常用的数字证书(Digital Certificate)认证为例。
CA(Certificate Agent)存放A、B数字证书包含在数字证书中RSA公钥和加密算法。
A、B保管好自己的RSA私钥和加密算法,RSA公钥和私钥类似于锁和钥匙的关系,即RSA可以使用私钥加密RSA反过来,公钥解密也是如此。
A与B安全通信认证流程如下。
(1)A向CA请求B数字证书。
(2)CA把B输入参数的数字证书生成散列。
(3)CA用自己的私钥加密散列,生成数字签名(Digital Signature)
(4)CA附上数字签名B数字证书后,即B数字证书 CA发送给数字签名A。
(5)A拥有CA的公钥(预装或离线方式获得),可以解密CA的数字签名(CA私钥加密),散列,接收 B 数字证书在散列运算中也得到一个散列。如果两个散列相等,则认为该证书安全可靠,在传输过程中未被篡改,称此过程为数据完整性(Data Integrity)保护。
(6)A请求认证B,B用你的私钥加密你的身份信息并发送给你A,由于A已经从CA处获得B公钥可以解密B加密报纸。既然公钥和私钥是一对一的,因为只有B以此逻辑推断,自己知道私钥,A通信的对象是真实的B。
(7)B认证A类似的过程。