SSL协议理解

这一篇文章是对《基于SSL的select模式编程》的补充,因为在编程的时候涉及到很多的名词理解以及对与协议的理解有些难懂,我自己搜寻了多篇文章争取对SSL协议自己理解一下然后写出一个能速读的文章方便我后期忘记这个协议的详细内容也能再次快速掌握。
https://www.cnblogs.com/hjbf/p/10248388.html
(这篇文章对SSL协议过程描述的非常详细,很值得一看)

但是针对认证过程,我认为以下的理解方式更清楚详细一些,对应的是以上文章的【1.2 服务器鉴别与密钥交换】也就是SSL单向认证过程
服务器:server证书,ca证书(Certificate Authority颁发的证书,有权威性),

【图片上的颜色与下文中相同颜色的是有关联的】

(1)Server端向CA部门交钱申请一个ca证书,Server得到之后配置好,然后用ca证书的私钥生成签名【1】。
(2)Client会维护一个CA列表,这个列表里面最重要的是对应的CA公钥(这个是可以根据Server的证书查询到的)。
(3)Client向Server发送一个http连接请求得到Server证书。
(4)Client得到Server证书之后,可以根据上面CA证书相关信息在本地找到对应的CA公钥。
(5)Client鉴别【2】得到的Server数字签名的真伪,如果是假的,无法建立连接,如果是真的,表示Client对 Server的验证通过,Client认为Server确实是它要连接的对象,然后建立非对称连接。
(6)在非对称连接的基础上,Client和Server商议出一个对称加密的的连接,一般方法有(AES,DES,3DES)。
(7)在对称加密连接上进行http报文的传输。

【1】 使用CA证书私钥生成Server的数字签名过程:
比如某Server域名是 ycy.com

【2】Client鉴别Server数字签名的过程
当两种方式计算出来的abstract是一样的时候,可以认为通过了校验,可以建立非对称连接。

这篇文章主要是对证书校验过程的理解
以上

猜你喜欢

转载自www.cnblogs.com/y-c-y/p/12124685.html