https协议原理详解

HTTPS协议详解

1. HTTPS介绍

https可以比喻成是加了一层SSL协议外壳的http协议,并不是一个新的应用层协议,当使用SSL(Secure Socket Layer)协议时,则就会先和SSL进行通信,再由SSL和TCP进行通信。

2. 什么是SSL

2.1 SSL介绍

SSL英文全称Secure Socket Layer,安全套接层,是一种为网络通信提供安全以及数据完整性的安全协议,它在传输层对网络进行加密。它主要是分为两层:

  • SSL记录协议:为高层协议提供安全封装、压缩、加密等基本功能
  • SSL握手协议:用于在数据传输开始前进行通信双方的身份验证、加密算法的协商、交换密钥

其中OpenSSL是SSL的开源实现。

2.2 SSL的加密方式

SSL加密方式分为对称加密非对称加密

其中:

  • 对称加密:快速简单,加密和解密都使用同样的秘钥

  • 非对称加密:安全,使用一对密钥,公钥/私钥。私钥由一方安全保管,公钥可以发给任何请求他的人,发送请求时通过公钥对消息进行加密,只有拥有私钥的人才能对你的消息进行解密,安全性大大提高。其中常见的非对称加密算法有:RSA算法,DH,DSA三种。其中的RSA加密算法,公钥公开,私钥保密,它的加密解密算法是公开的。 RSA的这一对公钥、私钥都可以用来加密和解密,并且一方加密的内容可以由并且只能由对方进行解密。

其中SSL非对称加密过程如下所示:

1.客户端向服务端发送请求

2.服务端返回给客户端公钥

3.客户端使用公钥对信息加密后在想服务端发送请求

4.服务端通过私钥对信息解密

而我们的https则采用了对称加密和非对称加密结合的方式,原因如下:

虽然说非对称加密安全,但是由于和对称加密比较来说,速度较慢(指的是加密和解密的速度而言),故我们https采用了将对称加密和非对称加密结合的方式,即我们将对称加密的秘钥使用非对称加密的公钥进行加密,然后发送出去,接收方使用非对称的私钥进行解密得到对称加密的秘钥,此时双方就可以使用对称加密的秘钥进行通信沟通了,这样既保证了安全性,又增加了通信的速度,即加密和解密的速度。

3. HTTPS发送请求的演变过程

3.1 非对称加密和对称加密结合

在这里插入图片描述

3.2 中间人的攻击

但是我们说客户端并不能识别获得的公钥是否属于服务端,这样就会很容易受到第三方(黑客)的攻击。大概的流程如下所示:

在这里插入图片描述

完整的流程如下所示:

在这里插入图片描述

3.3 数字证书

此时为了解决这种问题的发生,CA机构孕育诞生,即引入第三方的公证人,我们的服务器端需要去购买CA机构颁发的数字证书,其中证书中包括以下内容:

  • 证书的发布机构
  • 证书的有效期
  • 公钥
  • 证书的所有者
  • 签名所使用的算法
  • 指纹以及指纹算法等等

其中数字证书私钥只存放于服务端,整个请求的过程如下所示:

在这里插入图片描述

其中客户端如何验证该数字证书的合法性??

因为正经的CA证书,都是来自某个权威的CA机构。一般来说主流的操作系统(或浏览器)会内置该 CA机构 的**“根证书”**,我们可以使用根证书来验证该数字证书的合法性!

数字证书的出现,使得浏览器可以验证发过来的证书,如果发现其中有诈,则浏览器即会提示CA证书安全警告。但是数字证书的出现只是很大程度上降低了“中间人攻击”的风险。

3.4 数字签名

为了防止数字证书在颁发过程中被人修改,出现了数字签名

CA机构将证书内容使用hash算法生成hash值1,并用CA私钥加密发送给服务端

服务端用CA公钥解密得到hash值1,同时也将证书内容使用相同的hash算法生成hash值2,如果hash字符串1与hash字符串2相同,说明证书没被修改过,否则表示当前的数字证书已经被修改,需要重新向CA机构获取证书

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-B7qNCXVs-1632467257961)(C:\Users\86180\Desktop\笔记\☆计算机网络笔记(总结版)\imgs\数字证书.png)]

4. HTTPS被攻击的方式

4.1 中间人劫持攻击

在这里插入图片描述

这种方式即是我们上面在3.2节中讲到的中间人的攻击,它会截取客户端发送给服务端的请求,然后伪装成客户端与服务端进行通信;将服务端返回给客户端的内容发送给客户端,伪装成服务端与客户端进行通信。但是使用这种中间人攻击,需要一个必要的条件

  • 中间人(攻击者)必须诱导客户端信任它的数字证书,如果客户端不信任它的证书,那也无法发挥作用!!

那么我们如何去预防这种中间人攻击??

首先需要清楚的是造成中间人劫持的原因主要是没有对服务端证书以及其域名进行完善的校验。那么我们一般采取客户端预埋证书的方式锁死证书,只有当客户端证书和服务端的证书完全一致的情况下才允许通信,如一些银行类的app,但这种方式面临一个问题,证书过期的问题,因证书有一定的有效期,当预埋证书过期了,只有通过强制更新或者要求用户下载证书来解决。

5. HTTP和HTTPS的对比

HTTP协议传输的数据都是未加密的,也就是明文的,因此使用HTTP协议传输隐私信息非常不安全,为了保证这些隐私数据能加密传输,于是网景公司设计了SSL(Secure Sockets Layer)协议用于对HTTP协议传输的数据进行加密,从而就诞生了HTTPS。

简单来说,HTTPS协议是由SSL + HTTP协议构建的可进行加密传输、身份认证的网络协议,要比HTTP协议安全

总结两者主要的区别如下所示:

1、https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。

2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议

3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443

一定费用。

2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议

3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443

4、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值