https原理

https简介

HTTPS是身披SSL外壳的HTTP。HTTPS是一种通过计算机网络进行安全通信的传输协议,经由HTTP进行通信,利用SSL/TLS建立全信道,加密数据包。HTTPS使用的主要目的是提供对网站服务器的身份认证,同时保护交换数据的隐私与完整性。
PS:TLS是传输层加密协议,前身是SSL协议,由网景公司1995年发布,有时候两者不区分。
我们知道http是直接通过tcp进行传输的,应用层直接调用socket,将数据发送网络中,此时的数据没有经过任何处理,是明文传输,是不安全的。
而https是在http和tcp之间添加了一个中间层SSL,在传输数据时,先将数据发送给SSL,经过加密后,将数据发送给tcp,再经过网络传输。即使发送的数据被截获,也是经过加密的。
在这里插入图片描述

加密

数据在网路中明文传输是不安全的,此时就需要对数据进行加密。但是接收方需要对接受到的数据进行解密,才能得到原始数据。

对称密钥:发送方和接受方的密钥相同
非对称密钥:发送方使用接受方的公钥进行加密,接受方使用自己的私钥进行解密(公钥是公开的,全世界都知道,私钥只有自己才知道)

如果使用对称加密方式,需要让对方知道解密的密钥,此时就需要通信,那么在第一次通信传送密钥时,因为没有对密钥加密,所以是不安全的。

如果使用非对称加密方式,首先A会把公钥发送给B,B会用这个公钥对数据进行加密,加密后的数据只有A才能解密(因为只有A才有私钥),这样就可以保证数据从B到A方向上的安全,但不能保证A到B方向上的安全,如果A到B采用同样的方式,就能保证双方在通信上的安全。但非对称加密特别浪费时间!

事实上,在通信时,结合使用对称加密和非对称加密。
首先A会把公钥发送给B,B会用这个公钥对自己形成的对称密钥进行加密,然后才发送给A,A对数据后进行解密,就可以拿到B形成的对称密钥,在后面发送数据时,就用这个对称密钥加密,解密。发送对称密钥的过程我们称之为密钥协商阶段。

虽然看似可行的方案,还是有被"中间人"攻击的风险。

数字签名

书信或文件是根据亲笔签名或印章来证明其真实性。但在计算机网络中传送的文电又如何盖章呢?这就要使用数字签名。数字签名必须保证能够实现以下三点功能:
(1)接收者能够核实发送者对报文的签名。也就是说,接收者能够确信该报文的确是发送者发送的。其他人无法伪造对报文的签名。这就叫做报文鉴别。
(2)接收者确信所收到的数据和发送者发送的完全一样而没有被篡改过。这就叫做报文的完整性。
(3)发送者事后不能抵赖对报文的签名。这就叫做不可否认。
现在已有多种实现数字签名的方法。但采用公钥算法要比采用对称密钥算法更容易实现。下面就来介绍这种数字签名。

数字签名技术是将摘要信息用发送者的私钥加密,与原文一起传送给接收者。接收者只有用发送者的公钥才能解密被加密的摘要信息,然后用HASH函数对收到的原文产生一个摘要信息,与解密的摘要信息对比。如果相同,则说明收到的信息是完整的,在传输过程中没有被修改,否则说明信息被修改过。因此数字签名能够验证信息的完整性。

证书

HTTP 协议被认为不安全是因为传输过程容易被监听者勾线监听、伪造服务器,而 HTTPS 协议主要解决的便是网络传输的安全性问题。

首先我们假设不存在认证机构,任何人都可以制作证书,这带来的安全风险便是经典的“中间人攻击”问题。
在这里插入图片描述
过程原理:

1.本地请求被劫持(如DNS劫持等),所有请求均发送到中间人的服务器

2.中间人服务器返回中间人自己的证书

3.客户端创建随机数,通过中间人证书的公钥对随机数加密后传送给中间人,然后凭随机数构造对称加密对传输内容进行加密传输

4.中间人因为拥有客户端的随机数,可以通过对称加密算法进行内容解密

5.中间人以客户端的请求内容再向正规网站发起请求

6.因为中间人与服务器的通信过程是合法的,正规网站通过建立的安全通道返回加密后的数据

7.中间人凭借与正规网站建立的对称加密算法对内容进行解密

8.中间人通过与客户端建立的对称加密算法对正规内容返回的数据进行加密传输

9.客户端通过与中间人建立的对称加密算法对返回结果数据进行解密

由于缺少对证书的验证,所以客户端虽然发起的是 HTTPS 请求,但客户端完全不知道自己的网络已被拦截,传输内容被中间人全部窃取。
所以就有CA机构专门颁发证书确保可靠性。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值