HTTPS通信

HTTPS概念

HTTPS是在TCP和HTTP的协议中间添加了一层SSL/TLS协议的协议。SSL/TLS协议的目的就是为了保证数据的准确性和可靠性。
可将HTTPS协议理解成是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全

HTTPS建立连接过程

客户端与服务器端建立通信的过程如下:
在这里插入图片描述
建立连接的注意事项:
1.保证公钥不被改动:通过将公钥放在数字证书中来保证公钥是准确的,即不会被篡改。只要证书是可信的,公钥就是可信的。
2.减少计算量:每一次对话(session),客户端和服务器端都生成一个"对话密钥"(session key),用它来加密信息。由于"对话密钥"是对称加密,所以运算速度非常快,而服务器公钥只用于加密"对话密钥"本身,这样就减少了加密运算的消耗时间。

因为所有证书都是公开的,因此在获取证书之前采用明文传输没有问题。即使中间人知道了双方采用的算法等信息,因为没有相应的密钥,因此也没有用途

SSL协议握手过程

这里以RSA算法为例子:
第一步,客户端发送支持的协议版本号、客户端生成的随机数,以及客户端支持的加密方法给服务器端

第二步,服务器端确认双方使用的加密方法,并给出数字证书(里面包含服务器的公钥)、以及服务器生成的随机数。

第三步,客户端向CA等信任的机构确认数字证书是否有效,然后生成一个新的随机数,并使用数字证书中的公钥,加密这个随机数,发给服务器端。

第四步,服务器端使用私钥,获取客户端发来的随机数。

第五步,客户端和服务器端根据约定的加密方法,使用前面的三个随机数,生成"对话密钥",用来加密接下来的整个对话过程。

握手完成之后就可以传输数据,由于非对称效率较低,因此往往是采用对称和非对称相结合的手段,即先采用非对称加密在客户端和服务器端生成对话密钥,传输数据都是在对话密钥中传输,因此可以大大提高数据的传输速率和可靠性。
握手过程注意:
(1)生成对话密钥一共需要三个随机数。
(2)握手之后的对话使用"对话密钥"加密(对称加密),服务器的公钥和私钥只用于加密和解密"对话密钥"(非对称加密)
(3)服务器公钥放在服务器的数字证书之中。

DH算法

由于整个握手阶段都不加密。因此,如果有人窃听通信,则可以知道双方选择的加密方法,以及三个随机数中的两个随机数。整个通话的安全,只取决于第三个随机数(Premaster secret)能不能被破解
因此,出现了DH算法,DH算法是在该过程的基础上,不再采用加密的方式传输第三个随机数,而是采用双方交换参数的方式,从而共同计算出第三个随机数,从而提高安全性

对话密钥的恢复

由于某些原因,会话中断,则需要重新握手来建立连接,为了减少资源的消耗以及提高效率,因此,可以通过验证session ID和session ticket的方式去恢复session会话。
session ID:在下次重连的时候,将session ID传送给服务器端,在服务器端进行检验,若服务器端有该编号,则可以继续通信,即会话恢复成功。session ID是目前所有浏览器都支持的方法,但是它的缺点在于session ID往往只保留在一台服务器上,所以,如果客户端的请求发到另一台服务器,就无法恢复对话
session ticket:通过发送一个服务器在上一次对话中发送过来的session ticket。这个session ticket是加密的,只有服务器才能解密,其中包括本次对话的主要信息。当服务器收到session ticket以后,解密后就可以恢复对话密钥。目前只有Firefox和Chrome浏览器支持
SSL/TLS详解
SSL/TLS协议的工作原理

采用HTTPS传输数据的过程

其传输数据的过程:
在这里插入图片描述
对数字信息进行哈希运算得到一个信息摘要的目的是为了提供后面验证数据是否被篡改的依据
私用私钥对信息摘要进行加密,是为了防止信息摘要在传输的过程被篡改

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值