Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >为什么HTTPS更安全

为什么HTTPS更安全

原创
作者头像
windealli
发布于 2022-11-14 10:48:12
发布于 2022-11-14 10:48:12
3770
举报
文章被收录于专栏:windealliwindealli

“为什么HTTPS更安全”是面试中经常被问到的题目,也是Web开发人员必备的知识。

1. 什么是HTTPS

简单的说,https是在http的基础上增加了**加密、认证、完整性验证**等动作,来保证其安全性。

HTTP+加密+认证+完整性保护=HTTPS

HTTPS并非是应用层的一种新协议。只是HTTP通信接口部分用SSL(SecureSocket Layer)和TLS(Transport Layer Security)协议代替而已。

——《图解HTTP》

2. 为什么需要HTTPS

HTTPS是为了解决HTTP协议的不足而诞生的, 在介绍HTTPS之前我们先了解下HTTP不足

  • 明文通信,通信内容会被窃听
  • 不验证通信方,攻击者可以伪装成通信方
  • 不验证报文完整性,通信内容可能被篡改。

3. HTTPS原理

3.1 数据加密

HTTPS整个通信流程中使用到了两种加密技术

  • 非对称加密(阶段1:密钥协商/连接建立阶段):加密和解密使用同一密钥。
  • 对称加密(阶段2:业务数据通信阶段):加密和解密使用不同的密钥(server端拥有私有,client拥有公钥)

阶段1:通信双方使用非对称加密密钥协商数据传输时的加密算法,并加入随机数生成密钥。

阶段2:通信双方使用阶段1协商的加密算法和密钥对数据进行加密。

为什么要使用两种加密方式?

  • 能不能都使用对称加密? 如果只使用对称加密,每一个server-client对使用的密钥必须不一样,否则密钥就泄漏了。而server端又没有安全渠道将与一个client特有的密钥传递给client?直接传输可能被窃取,然后攻击者有了秘钥就可以伪装通信方。
  • 能不能只使用非对称加密?从安全角度是可以的, 但是非对称加密本身的实现原来就决定他的计算开销要远远大于对称加密。从效率的角度考虑,数据通信阶段使用对称加密更合适。

综合以上两点,在数据通信阶段使用对称加密,在密钥协商阶段使用非对称加密是比较好的方式。

3.2 通信双方的认证

在前面<数据加密>的介绍中,我们提到了整个HTTPS流程使用非对称加密的密钥协商阶段来校验对称密钥。

那么协商阶段,server端是如何把公钥传输给client, 以及client又是如何验证公钥确实是来自目标server?

server的公钥一般是在client(浏览器)发起请求的时候,server端返回给服务器的。(要client在一开始就和世界上所有的server完成对接,然后预先内置公钥是不现实的。如果client要通信的server的数量是机器有限的,那可以在client中直接内置server的公钥)

但是如果只是返回一个公钥,那么client端无法验证公钥是来自于目标server,还是恶意中间人。

如何才能对server端的公钥进行验证呢?HTTPS引入了数字证书(和数字证书认证机构CA)。

client(浏览器)只需要事先内置有限的几家数字认证机构的公钥。 然后server在数字证书认证机构登录自己的公钥,认证机构使用自己的私钥对server的公钥进行数字签名,并颁发数字证书。

数字证书: 服务器的公钥 + 数字认证机构基于服务器公钥的数字签名

数字签名: 认证机构先对服务器的公钥生成摘要,然后用认证机构自己的私钥对摘要进行加密。

client 向 server发起连接时,server会下发数字证书给client。 client利用内置的认证机构的公钥,对server下发的证书进行验证。验证通过,就可以确定证书中的公钥是目标服务器的。

3.3 报文完整性保证

既不能读取报文内容,也不能伪装成通信任何一方,那就不能篡改报文了。因此报文的完整性也可以得到保障。

4. HTTPS的通信流程

初始阶段:

客户主机安装客户端(如浏览器), 客户端内置了CA机构公钥。

服务端向CA机构上传自己的公钥,获取CA机构认证的数字证书。

连接通信阶段:

  1. 客户端要发起对服务端的请求。
  2. 服务端下发CA机构认证过的数字证书给客户端。
  3. 客户端利用内置的CA机构的公钥,对数字证书进行验证。并从数字证书中获取服务器公钥。
  4. 客户端使用服务器的公钥与服务器建立加密通信,协商数据通信时的加密算法和对称加密秘钥。
  5. 客户端和服务器使用协商的算法和密钥进行数据通信。

5. 参考资料

  1. 《图解HTTP》

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【Linux|计算机网络】HTTPS工作原理与安全机制详解
HTTP 协议内容都是按照文本的方式明文传输的. 这就导致在传输过程中出现一些被篡改的情况。
用户11316056
2024/11/19
3280
【Linux|计算机网络】HTTPS工作原理与安全机制详解
经得住拷问的HTTPS原理解析
HTTPS 是在 HTTP 和 TCP 之间建立了一个安全层,HTTP 与 TCP 通信的时候,必须先进过一个安全层,对数据包进行加密,然后将加密后的数据包传送给 TCP,相应的 TCP 必须将数据包解密,才能传给上面的 HTTP。
用户4456933
2021/06/01
6400
经得住拷问的HTTPS原理解析
HTTPS详细介绍
HTTP协议因为其轻、小、快、简单,所以在全世界普及开来,各种应用都离不开它。但是随着业务复杂度的提高,HTTP的这些优点逐渐成为了短板。所以就开始各种打补丁,比如因为HTTP是无状态的协议,所以为了管理状态而诞生的Cookie。这篇文章要说的是其中一个为了安全而诞生的超级补丁SSL(HTTPS)。
从入门到进错门
2019/08/14
7890
为什么https要使用证书
什么是https https不是一种新的协议,只是http的通信接口部分使用了ssl和tsl协议替代,加入了加密、证书、完整性保护的功能。
oktokeep
2024/10/09
1720
为什么https要使用证书
20 张图彻底弄懂 HTTPS 的原理!
近年来各大公司对信息安全传输越来越重视,也逐步把网站升级到 HTTPS 了,那么大家知道 HTTPS 的原理是怎样的吗,到底是它是如何确保信息安全传输的?网上挺多介绍 HTTPS,但我发现总是或多或少有些点有些遗漏,没有讲全,今天试图由浅入深地把 HTTPS 讲明白,相信大家看完一定能掌握 HTTPS 的原理,本文大纲如下:
灵魂画师牧码
2020/12/08
1.5K0
20 张图彻底弄懂 HTTPS 的原理!
HTTPS终于搞懂了
近些年来,越来越多的网站使用 HTTPS 协议进行数据传输,原因在于 HTTPS 相较于 HTTP 能够提供更加安全的服务。
捡田螺的小男孩
2023/02/22
9430
HTTPS终于搞懂了
HTTPS的加密过程
HTTPS即加密的HTTP,HTTPS并不是一个新协议,而是HTTP+SSL(TLS)。原本HTTP先和TCP(假定传输层是TCP协议)直接通信,而加了SSL后,就变成HTTP先和SSL通信,再由SSL和TCP通信,相当于SSL被嵌在了HTTP和TCP之间。
林老师带你学编程
2019/05/25
1.3K0
如何用 wireshark 抓包 TLS 封包
此前一篇文章用 wireshark 这个抓包工具调试了一下 HTTP 请求和响应。详细阐述了 TCP 连接和断开的整个过程。这篇文章尝试使用 wireshark 来抓取 TLS 封包,了解一下 HTT
JS菌
2019/04/23
7.7K0
如何用 wireshark 抓包 TLS 封包
前端要知道的HTTPS
HTTPS(HTTP Secure)是一种构建在 SSL 或 TLS 上的HTTP协议。 简单的说,HTTPS 就是 HTTP 的安全版本。SSL(Secure Sockets Layer)以及继任者 TLS(Transport Layer Security)是一种安全协议,为网络通信提供来源认证、数据加密和报文完整性检测,保障通信的保密性和可靠性。HTTPS协议的 URL 都以 “https://”开头,在访问某个 Web 页面时,客户端会打开一条到服务器 443 端口的连接。
张张
2019/12/27
9510
几幅图,拿下 HTTPS
我很早之前写过一篇关于 HTTP 和 HTTPS 的文章,但对于 HTTPS 介绍还不够详细,只讲了比较基础的部分,所以这次我们再来深入一下 HTTPS,用实战抓包的方式,带大家再来窥探一次 HTTPS。
小林coding
2021/01/12
7230
几幅图,拿下  HTTPS
为什么HTTPS比HTTP更安全?
近几年,互联网发生着翻天覆地的变化,尤其是我们一直习以为常的HTTP协议,在逐渐的被HTTPS协议所取代,在浏览器、搜索引擎、CA机构、大型互联网企业的共同促进下,互联网迎来了“HTTPS加密时代”,HTTPS将在未来的几年内全面取代HTTP成为传输协议的主流。
心莱科技雪雁
2019/06/05
4610
为什么HTTPS比HTTP更安全?
HTTPS 是如何保证传输安全的?
HTTPS 是一种基于 SSL/TLS 加密协议的安全传输协议,用于保护在互联网上传输的数据的机密性、完整性和身份验证。HTTPS 可以有效地保护客户端与服务器之间的通信,是现代网络应用程序中广泛使用的一种安全协议。
用户1289394
2023/08/22
9940
HTTPS 是如何保证传输安全的?
理解HTTPS
HTTPS其实是有两部分组成:HTTP + SSL / TLS,也就是在HTTP上又加了一层处理加密信息的模块。也就是说使用HTTPS协议之后在网络上传输的数据是加密的密文,即便进行拦截后没有密钥进行解密的话也就是一串乱码。端口号是443
见得乐
2022/07/20
3120
HTTP与HTTPS的区别,详细介绍[通俗易懂]
超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此,HTTP协议不适合传输一些敏感信息,比如:信用卡号、密码等支付信息。
全栈程序员站长
2022/07/01
4.8K0
HTTP与HTTPS的区别,详细介绍[通俗易懂]
HTTP 和 HTTPS 的区别(面试常考题)「建议收藏」
无论是在校学习还是找工作的时候,老师和面试官都问过同学 HTTP 和 HTTPS 的区别。平时上网的时候也没有关注这个问题,只是知道计算机网络里 HTTP 的概念,所以最近才查资料好好补补这一块。其实这一块的知识延伸很广,如果之前不太了解加密算法和 SSL 协议,可以在学习了这个问题的基础上再做研究。
全栈程序员站长
2022/09/07
5070
一篇读懂HTTPS:加密原理、安全逻辑、数字证书等
HTTPS(全称: Hypertext Transfer Protocol Secure,超文本传输安全协议),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。本文,就来深入介绍下其原理。
JackJiang
2019/04/08
1K0
Android-Https
参考: https://mp.weixin.qq.com/s/E75toyRukUHEtt34-snEgQ https://mp.weixin.qq.com/s/adZC0N5Fd4X9FjxUrdlS1w https://mp.weixin.qq.com/s/7sX3AY7gJomJ2ZEErUqmKA
android_薛之涛
2019/03/04
1.4K0
详解http和https
近几年,互联网发生着翻天覆地的变化,尤其是我们一直习以为常的HTTP协议,在逐渐的被HTTPS协议所取代,在浏览器、搜索引擎、CA机构、大型互联网企业的共同促进下,互联网迎来了“HTTPS加密时代”,HTTPS将在未来的几年内全面取代HTTP成为传输协议的主流。
SmallRoll小卷
2023/02/28
6730
详解http和https
简单聊聊Https的来龙去脉
Http 协议直接和TCP进行通信,而 Https 在 Http 和 Tcp 之间加了一层 SSL 实现加密传输 :
大忽悠爱学习
2023/10/11
4410
简单聊聊Https的来龙去脉
【HTTP】HTTPS TLS 1.2
在个人过去的读书笔记中已经介绍过一次,在这一篇文章中介绍了HTTP1.1的缺点,以及SSL、TLS的历史,之后介绍了有关SSL加密的主要加密方案:公开密钥加密 和 共享密钥加密,最后简单介绍了HTTPS的交互过程,但是书中的过程比较粗,这节我们讲细一点点。
阿东
2022/09/12
1.3K0
相关推荐
【Linux|计算机网络】HTTPS工作原理与安全机制详解
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档