https原理介绍

 

我们都知道HTTP并非是安全传输,而HTTPS是相对安全的,在传输数据之前,需要客户端和服务进行一次握手,在握手过程中确立双方加密传输数据的密码信息,然后在后续通信过程中就使用协商密钥进行对称加密通信。具体过程见下图:

1)客户端发起HTTPS请求

即用户在浏览器里输入一个https网址连接到服务器端口。

2)服务端初步响应

采用HTTPS协议的服务器必须要有一套数字证书,这套证书其实就是一对公钥和私钥,可以想象成一把钥匙和一个锁头,只有你一个人有这把钥匙,你可以把锁头给别人,别人可以用这个锁把重要的东西锁起来,然后发给你,因为只有你一个人有这把钥匙,所以只有你才能看到被这把锁锁起来的东西。将证书发回给浏览器,证书包含证书的颁发机构、过期时间等。

3)客户端解析证书

客户端首先会验证证书是否有效,比如颁发证书的机构是否合法,证书中包含的网站地址是否与正在访问的地址一致、过期时间等,如果发现异常,则提示证书存在问题,如果证书没有问题,那么客户端就生成一个随机值,然后用证书对该随机值进行加密。

4)客户端发送加密信息

客户端发送的是用证书加密后的随机值。

5) 服务器解密信息

服务端用私钥解密后,得到了客户端传过来的随机值,然后把内容通过该值进行对称加密(所谓对称加密就是将信息和私钥通过某种算法混合在一起)。

6)服务器发送加密后的信息

服务器发送的是服务端用随机值进行对称加密后的信息。

7) 客户端解密信息

客户端用之前生成的随机值解密服务端传过来的信息,客户端就获取了解密后的内容。

 

posted @ 2017-06-22 15:41  ATJAVA  阅读(238)  评论(0编辑  收藏  举报