HTTPS

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: HTTPS

一:HTTPS含义

https:对于http的超文本传输协议的一层加密.


二:"加密"是什么?

2.1:明文:真正要传输的数据.

2.2:密文:对真正要传输的数据进行加密.

2.3:密钥:对密文进行解密,解密成明文.

2.4:加密和解密

  在解密和加密的过程中.明文+密钥===>密文,密文+密钥===>明文,在解密和加密过程中,会生成一对密钥,分别为"公钥"和"私钥",可以用公钥来进行加密,私钥来进行解密,两个密钥反过来也可以。


三:HTTPS的工作过程

3.1https的工作流程:

 最简单的保证安全的做法,引入对称密钥,针对传输的数据(http 的header 和 body)进行加密.

每个客户端,都需要一把自己的对称密钥(不同的客户端密钥也要不同),如果客户端生成了一个密钥,那么,密钥就需要传递给服务器,让服务器根据传进来的密文利用密钥进行解密)

 如果客户端给服务器传递密钥的过程中,被黑客截获了,黑客就会根据密文和密钥进行解密,存在一定的风险.那么,怎么进行安全的传输? ===>对对称密钥进行加密===>还是不行!!!===>使用非对称加密对对称密钥进行加密!!!

服务器生成一对公钥和私钥,私钥给服务器自己留着,公钥会发给客户端.此时,客户端就会利用公钥对对称密钥进行加密!!!使用公钥加密,使用私钥进行解密.非对称加密针对对称密钥进行加密.后续数据的加密还是使用对称加密.

3.2中间人攻击:

根据3.1的https的工作流程,仍存在一个严重的问题,黑客可以根据中间人根据来获取对称密钥.

a):服务器生成非对称密钥,公钥:pub1  私钥:pri1

b):服务器本来要将从pub1传递给客户端,被黑客截获了.

c):此时,黑客便根据截获的pub1,生成新的公钥 pub2 和 私钥 pri2

d):黑客将公钥pub2传递给客户端

e):客户端便根据传进来的公钥pub2对对称密钥(888888)进行进一步加密.

f):客户端便将非对称密钥和对称密钥一起传递给黑客,黑客便利用私钥pri2进行解密,得到对称密钥.

g):黑客便使用从服务器之前传过来的pub1和从客户端传进来的密文进行加密,传递给服务器

h):服务器便利用自身的私钥pri1进行解密

整个过程中,服务器和客户端不知道有中间人的存在.

3.3解决中间人攻击 :

解决中间人攻击的关键,需要让客户端能够确认当前收到的公钥,确认是服务器的,而不是中间人的.====>引入了证书机制===>通过第三方机构作保,来判断是不是当前的公钥是不是来自于服务器的.

3.3.1证书验证阶段

     1.浏览器发起Https请求,(浏览器会内置第三方CA的公钥);

     2.服务器端返回Https证书(包含公钥),使用第三方CA的私钥加密公钥、以及机构信息、域名等,然后返回CA证书

     3.客户端验证证书是否合法,可以对证书内容解密,然后通过证书中的域名、机构等信息验证证书是否合法,如果不合法则提示告警.

3.3.2数据传输阶段

    4.当证书验证合法后,在客户端本地生成随机数;

    5.通过公钥加密随机数,并将其传输到服务端;

    6.服务端通过私钥对接收到的加密随机数进行解密操作;

    7.服务端通过客户端传入的随机数构造对称加密算法,对返回结果内容进行加密操作

          后再 进行内容传输。

3.3.3为什么数据传输是用对称加密?

      首先,非对称加密的加密效率低的,而http的应用场景通常存在着端与端之间的

                大量数据交互,从效率来说是无法接受的;

       其次,在Https场景中只有服务端保存了私钥,而一对公私钥只能实现单向的加解密(即   服务端无法使用私钥对传回浏览器客户端的数据进行加密,只能用于解密),所以         Https中内容传输加密采取的是对称加密,(此处随机数则是对称加密的介体,

  即客户端和服务器端所拥有的随机数都是一致的,能够进行双向加解密)

3.3.4浏览器如何确保CA证书的合法性

   1.证书包含的主要信息:

           颁发机构信息,公钥,公司信息,域名,有效期,指纹,等等

  2.证书的合法性依据

        首先,权威机构是需要通过认证的。其次证书的可信性基于信任制,CA认证

          机构需要  对其颁发的证书进行信用担保,只要是CA认证机构颁发的证书,

          我们就认为是合法的。CA认证机构会对证书申请人的信息进行审核的。

相关文章
|
安全 算法 网络协议
HTTPS在什么场景是不安全的?
HTTPS在什么场景是不安全的?
170 1
|
6月前
|
安全 Java 网络安全
https:邮递员
https:邮递员
31 3
|
数据安全/隐私保护 算法 安全
你了解https吗
你了解https吗
你了解https吗
|
安全 网络协议 网络安全
HTTPS中的S是什么?
使用浏览器输入网址的时候,我们通常都会输入“http://”或者“https://”这样的开头(当然,更多情况下可能大家会输入www),然后才输入对应的域名地址,那这里肯定就会有不少的网友疑惑,为什么有些地址会在前面加多一个“s”呢?那么多出的“s”是什么呢?
495 0
HTTPS中的S是什么?
|
安全 算法 网络协议
|
Web App开发 安全 算法
Why | Https 为什么是安全的?(上)
Why | Https 为什么是安全的?(上)
Why | Https 为什么是安全的?(上)
|
算法 安全 网络协议
浅谈HTTPS🔐
浅谈HTTPS🔐
253 0
浅谈HTTPS🔐
|
Web App开发 缓存 算法
WHY |HTTPS 为什么是安全的 ? (下)
WHY |HTTPS 为什么是安全的 ? (下)
WHY |HTTPS 为什么是安全的 ? (下)
|
存储 开发框架 安全
2020年了,再不会Https就老了
合格的web后端程序员,除搬砖技能,还必须会给各种web服务器启用Https,本文结合ASP.NET Core部署模型聊一聊启用Https的方式。
2020年了,再不会Https就老了
|
算法 安全 网络协议
HTTPS介绍
HTTPS (全称:Hyper Text Transfer Protocol over SecureSocket Layer),是以安全为目标的 HTTP 通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性 。HTTPS 在HTTP 的基础下加入SSL,HTTPS 的安全基础是 SSL,因此加密的详细内容就需要 SSL。 HTTPS 存在不同于 HTTP 的默认端口及一个加密/身份验证层(在 HTTP与 TCP 之间)。这个系统提供了身份验证与加密通讯方法。它被广泛用于万维网上安全敏感的通讯。
HTTPS介绍