https原理详解

1.https作用

Secure Hypertext Transfer Protocol(安全超文本传输协议),是在http协议基础上增加了使用SSL加密传送信息的协议,从而保证信息传输的安全性。

2.https原理

主要采用了SSL的握手获取对称秘钥,从而服务器和客户端通过该秘钥对数据进行加密和解密。由于客户端和服务端是通过对称秘钥加解密,也保证了加解密的效率。

3.SSL握手过程

在这里插入图片描述

3.1.客户端发送请求

  1. 发送一个随机数n1
  2. 发送支持的加密方式
  3. 支持的协议版本,如TSL1.0版本

3.2.服务端回应

  1. RSA方式:生成RSA公钥和私钥,发送RSA的公钥;DH加密方式:生成DH公钥和私钥,发送DH的公钥
  2. 发送一个随机数n2
  3. 发送确认的加密方式和确认的协议

3.3.客户端回应

  1. RSA加密方式:根据服务器RSA公钥生成随机数n3;DH加密方式:根据服务器DH公钥生成本地公钥和私钥,通过服务器DH公钥和客户端生成的私钥生成随机数n3
  2. RSA加密方式:发送随机数n3;DH加密方式:发送客户端生成的公钥
  3. RSA加密方式:n3加密前的值+n1+n2生成对称加密秘钥;DH加密方式:n3+n1+n2生成对称加密秘钥
  4. 发送结束通知和客户端握手结束通知,后续使用双方协商的加密方式加密

3.4.服务端回应

  1. RSA加密方式:根据本地私钥解密随机数n3,n3解密后的值+n1+n2生成对称加密秘钥;DH加密方式:通过客户端的公钥和本地私钥生成随机数n3,n3+n2+n1生成对称加密秘钥
  2. 向客户端发送确认加密结束握手的通知,并表示随后都是用双方协商的加密方式加密

4.SSL过程中如何保证公钥不被篡改

将公钥放在数字证书中,只要证书可信,公钥就是可信的。而证书中的公钥通过操作系统内置的CA公钥解密数字证书,解密后的数据中的域名是否和请求的域名相等,就可知道是否被篡改。由于中间人攻击无法获得CA的私钥,所以无法将自己的公钥加密到数字证书中。

5.数字证书和数字签名

  • 数字签名:
    • 服务器端是对传输的数据,通过私钥加密后的数据就是签名
    • 客户端比较数据和通过公钥解密签名的数据是否一致,就防止了数据被篡改
  • 数字证书:由证书机构进行数字签名
    • 服务端通过证书机构,对传输的数据进行私钥加密,然后将数据和证书传输给客户端
    • 客户端通过证书机构的公钥进行解密操作,确认数据与传输的数据一致

参考

SSL/TLS协议运行机制的概述
HTTPS握手
数字签名是什么?
图解SSL/TLS协议

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值