HTTPS复习

Https

Https其实是两个协议,即HTTP协议和SSL协议,但是由于HTTP协议应用广泛,而且需要为其提供数据隐私保护,所以将HTTP协议与SSL协议结合。HTTP属于应用层,在远古时代,它只需将自己的数据提交给TCP层即可,先在它需要将自己的数据提交给SSL层,而SSL对数据进行加密后提交TCP层。

这里主要介绍SLL协议

需求

CA证书:由可信赖的机构(CA)颁发
SSL协议主要解决数据加密传输的问题
数据加密:加密算法,密钥,所以使用SSL协议时需要协商加密算法,交换密钥
算法可以公开但是密钥要安全交换------DH密钥交换算法(DH密钥交换算法存在中间人攻击,所以需要用证书来进行身份认证)
SSL完成以上的任务才能完成最终的加密操作

内容介绍

SSL协议包括握手协议,记录协议,警报三个子协议

握手协议

第一阶段:客户端发送SSL版本号,一个随机数,自己能支持的加密算法,服务器发送自己的证书,一个随机数
第二阶段:客户端生成一个新的随机数,用服务器证书中公钥进行加密,将其发给服务器。服务器获取随机数。
第三阶段:双方使用上面出现的三个随机数生成会话密钥,后面的数据使用会话密钥进行加密传输

问题

客户端发送支持的加密算法,其实是一个套件(suites),该套件中包含了客户端支持的所有加密算法,服务器会从中选一个,在第一阶段时发送客户端

上面提到用DH进行密钥交换,其实交换的是第三个随机数,默认情况下是用RSA加密进行随机数传输的,如果客户端只支持DH时,可以通过DH交换产生第三个随机数。

posted @ 2017-03-16 23:47  被罚站的树  阅读(205)  评论(0编辑  收藏  举报