HTTPS 的传输过程

简介: HTTPS 的传输过程

前言


HTTPS 也是一个应用层协议 . 是在 HTTP 协议的基础上引入了一个加密层。

因为HTTP 协议内容都是按照文本的方式明文传输的,这就导致在传输过程中出现一些被篡改的情况。比如:“运营商劫持”。

1667912924841.jpg

不止运营商可以劫持 , 其他的 黑客 也可以用类似的手段进行劫持 , 来窃取用户隐私信息 , 或者篡改内容。所以在互联网上明文传输是比较危险的事情!!!那么 HTTPS 就是在 HTTP 的基础上进行了加密 , 进一步的来保证用户的信息安全。

1667912936590.jpg

这种前面带了锁头图标的就是https。如果前面显示“不安全”字样就代表是http。


一、对称加密


对称加密其实就是通过同一个 "密钥 " , 把明文加密成密文 , 并且也能把密文解密成明文。

对称加密里面最关键的就是这个秘钥,客户端和服务器需要先约定好这个秘钥具体是啥。如果是客服端生成了秘钥,那么就需要通过网络去告知服务器这个秘钥是什么。那么就会引入一个问题,因为秘钥本身是在网络上进行明文传输的,那么就容易被黑客获取,一旦被黑客获取了,那么后续的加密也就失去了意义。

其实对于这个问题也是有解决办法的,在很久之前的时候,可以让客户端和服务器同时生成一样的秘钥,比如很久之前去银行开通网银账户的时候,就会送你一个U盾。

但是在今天,这种方式显然已经过时了,那么正确的手段就是对这个对称秘钥也进行加密。接下来就会引入非对称加密对对称秘钥进行加密。


二、非对称加密


非对称加密要用到两个密钥 , 一个叫做 " 公钥 ", 一个叫做 " 私钥 "。一个网站,生成一对公钥和私钥,把公钥给公开出去,自己只保留私钥。

客户端在本地生成对称密钥 , 通过公钥加密 , 发送给服务器。由于中间的网络设备没有私钥, 即使截获了数据 , 也无法还原出内部的原文 , 也就无法获取到对称密钥。服务器通过私钥解密, 还原出客户端发送的对称密钥 . 并且使用这个对称密钥加密给客户端返回的响应数据。后续客户端和服务器的通信都只用对称加密即可。

1667912965523.jpg

那么就会有两个问题:


一:既然都有非对称加密了,为什么还需要使用对称加密?为什么不直接用非对称秘钥进行加密就可以了?

其实使用对称加密,成本是比较低的,因为机器的资源消耗比较少,速度就很快。非对称加密,成本比对称加密高很多,机器资源消耗比较多,速度也就慢了很多。所以对于明文就用对称加密,对对称秘钥再使用非对称加密,这样就高效了很多。

二:如何保证客户端获取的公钥是真实可靠的?而不是黑客伪造的?

其实任何人都可以生成一对公钥和私钥,网站服务器能够生成,当然黑客一样能够生成,其实黑客就可以利用这一点,来一招“狸猫换太子”,这也叫“ 中间人攻击”!

1667912978440.jpg

针对这一问题,肯定有反制的办法。通过引入证书,就可以反制黑客伪造公钥这件事了。


客户端和服务器在连接的时候,客户端就不是简单的去索要公钥了,而是直接索要一个“证书”,公钥就包含在这个证书里面。这个证书不是服务器自己生成的,而是第三方机构颁发的,客户端在拿到证书之后,就可以根据证书中所提供的信息,去第三方机构进行认证,来校验证书是否合法!如果证书合法,就可以信任其中的公钥。(服务器开发者在搭建服务器的时候,要去第三方机构进行认证,来申请证书)


三、引入证书


在客户端和服务器刚一建立连接的时候 , 服务器给客户端返回一个 证书。这个证书包含了刚才的公钥, 也包含了网站的身份信息。

当客户端获取到这个证书之后 , 会对证书进行校验 ( 防止证书是伪造的 )。

完整流程:

1667912993850.jpg


总结HTTPS的传输过程


HTTPS 工作过程中涉及到的密钥有三组:

第一组 ( 非对称加密 ) : 用于校验证书是否被篡改。

第二组 ( 非对称加密 ): 用于协商生成对称加密的密钥。

第三组 ( 对称加密 ): 客户端和服务器后续传输的数据都通过这个对称密钥加密解密。

其实一切的关键都是围绕这个对称加密的密钥。 其他的机制都是辅助这个密钥工作的。

第二组非对称加密的密钥是为了让客户端把这个对称密钥传给服务器。

第一组非对称加密的密钥是为了让客户端拿到第二组非对称加密的公钥。

HTTPS传输过程总结:

1.客户端先从服务器获取到证书,证书中包含了公钥。

2.客户端对证书进行校验。

3.客户端生成一个对称秘钥,使用公钥对对称秘钥加密并发送给服务器。

4.服务器收到这个请求之后,使用私钥解密,得到对称秘钥。

5.客户端发出后续请求,后续请求都是用对称秘钥加密。

6.服务器收到的数据也是用对称秘钥进行解密。


HTTPS传输就一定能够保证安全吗?


黑客在进行中间人攻击的时候,是可以伪造一个证书的,那么浏览器就会对拿到的证书进行校验,如果校验不通过,浏览器会有错误提示:类似“该网站证书非法,继续访问存在安全风险!”的提示字样。同时浏览器上面还会有一个点击按钮“继续访问”,如果点击了“继续访问”,进入了链接,那么用户的安全就不能得到保证了!

相关文章
|
10月前
|
安全 搜索推荐 网络安全
HTTPS协议是**一种通过计算机网络进行安全通信的传输协议
HTTPS协议是**一种通过计算机网络进行安全通信的传输协议
253 11
|
安全 Nacos 数据安全/隐私保护
【技术干货】破解Nacos安全隐患:连接用户名与密码明文传输!掌握HTTPS、JWT与OAuth2.0加密秘籍,打造坚不可摧的微服务注册与配置中心!从原理到实践,全方位解析如何构建安全防护体系,让您从此告别数据泄露风险!
【8月更文挑战第15天】Nacos是一款广受好评的微服务注册与配置中心,但其连接用户名和密码的明文传输成为安全隐患。本文探讨加密策略提升安全性。首先介绍明文传输风险,随后对比三种加密方案:HTTPS简化数据保护;JWT令牌减少凭证传输,适配分布式环境;OAuth2.0增强安全,支持多授权模式。每种方案各有千秋,开发者需根据具体需求选择最佳实践,确保服务安全稳定运行。
1210 0
|
安全 网络协议 应用服务中间件
一文读懂HTTPS⭐揭秘加密传输背后的原理与Nginx配置攻略
一文读懂HTTPS⭐揭秘加密传输背后的原理与Nginx配置攻略
|
安全 网络协议 算法
【计算机网络】http协议的原理与应用,https是如何保证安全传输的
【计算机网络】http协议的原理与应用,https是如何保证安全传输的
357 0
|
缓存 前端开发 应用服务中间件
直播程式源码平台细讲HTTP协议:超文本传输—山东布谷科技魏创作
在直播程式源码平台中,HTTP协议扮演着数据传输的重要角色,HTTP协议能够让直播程式源码平台获取和发送数据、让用户的操作能够建立客户端与用户端的通信连接与缓存和代理支持,这些都能让用户在直播程式源码平台获得稳定、流畅的直播体验,满足用户对高质量内容的需求,是直播程式源码平台不可或缺的优质协议之一。
直播程式源码平台细讲HTTP协议:超文本传输—山东布谷科技魏创作
|
算法 安全 网络协议
传输安全HTTPS
通过阅读本篇文章你可以了解到: 1、为什么要有HTTPS; 2、TLS1.2 握手的过程。
390 1
传输安全HTTPS
|
Linux 网络安全 PHP
命令行快速启动HTTP与匿名传输
命令行快速启动HTTP与匿名传输
208 0
|
应用服务中间件 网络安全 nginx
手把手教你Nginx 配置 HTTPS 完整过程
手把手教你Nginx 配置 HTTPS 完整过程
1708 0
手把手教你Nginx 配置 HTTPS 完整过程
|
安全 网络安全 数据安全/隐私保护
理解HTTPS加密安全传输流程
理解HTTPS加密安全传输流程
197 0
|
JavaScript 前端开发 Java
Java http Post下载Excel文件 xxx.xlsx 失败解决,及传输文件类型ContentType对应关系
查询数据库生成Excel下载功能。本来很简单的功能却搞了挺久的,主要因为下载的文件打不开,且此功能已是基本功能。这里记录下来方便后面查阅。 ContentType对应的文件关系查看下面连接 https://www.runoob.com/http/mime-types.html
505 0