HTTPS原理

HTTPS原理

1.HTTP与HTTPS

我们都知道互联网上的web通信协议是http协议,那https是什么呢?简单来说https就是安全的http协议。http是应用层协议,它是基于tcp/ip协议的,tcp/ip是传输层协议,而https就是在应用层和传输层之间加了一个ssl层,保证了网络的安全可靠。

HTTP与HTTPS对比

2.SSL

ssl是一种安全协议,并不是https独有的,其他应用层的协议也可以使用基于ssl的加密,在说明ssl之前先简单介绍下主要的两种加密方式。

  • 对称加密:加密和解密使用同一个密钥

  • 非对称加密:发送密文的一方使用对方的公钥进行加密,对方收到密文后使用私钥进行解密

两种加密方式都有各自的好处,对称加密简单效率高,问题是,一旦密钥被截获,通信内容也将泄露,非对称加密比对称加密安全性更高,因为密钥是成对存在的,即使获取了公钥也无法解密,只能通过私钥才能解密,但是非对称加密的问题在于效率比对称加密低。

基于这几个原因,https采用的是对称加密和非对称加密混合使用的方式对数据进行加密。具体来说就是在建立连接阶段通过非对称加密方式来传输对称加密的密钥,这样在正常传输数据阶段采用对称方式加密,因为共享密钥是通过非对称加密传输的,不存在泄露的风险。这就起到了取长补短的效果。

  • 连接建立阶段,交换共享密钥:非对称方式
  • 传输报文:对称加密

3.证书

上面介绍的https基于混合加密的方式其实是存在问题的,虽然正常建立起来的ssl通道能保证数据加密,不会泄露,但是我们怎么保证在连接建立时,公钥安全的发送到对方不被篡改或替换呢?这就用到了数字证书。

在网络通信时,双方其实都无法保证对方的身份是不是真实的,这就要引入第三方来确保身份的真实性,这个第三方就是CA,也叫数字证书认证机构。下面就说明一下这三方的关系。

  1. 服务端首先产生非对称加密的公钥私钥对,私钥自己保存,公钥发送给CA
  2. CA收到服务器的公钥后,用自己的私钥对服务器发来的公钥进行数字签名,生成数字证书,返回给服务器
  3. 客户端事先已经将CA的公钥植入到浏览器中,服务端会发送经过CA私钥签名的服务器公钥数字签名证书,客户端收到证书后,通过事先植入的CA公钥对服务端发送来的数字签名证书进行验证,验证通过后就保证服务器的真实性
  4. 客户端发送经过服务器公钥加密的数据报文,服务端收到报文后,使用自己的私钥解密

4.HTTPS通信流程

HTTPS通信流程

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值