浏览器基础原理-安全: HTTPS

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: 浏览器基础原理-安全: HTTPS

HTTP协议的历史:


HTTP协议的目的很单纯, 就是为了传输超文本文件, 所以早期的 HTTP 一直保持着明文传输数据的特征, 但是中间很有可能会被截取或者篡改, 即收到中间人攻击.


解析HTTP协议栈层面:


HTTPS往里面加入了安全层, 它的指责是: 对发起HTTP请求的数据进行加密和对接收到HTTP的内容进行解密操作.

eddba57044484ccb9ebe7ae47f5e38a3.png

图-HTTP VS HTTPS


HTTPS协议:

第一版: 使用对称加密


对称加密: 指加密和解密都使用的是相同的密钥.


下图是使用对称加密改造的 HTTPS 协议:

4dfbf856007949b6b953ae8f7f8c63e3.png

图-非对称加密实现 HTTPS


使用过程:


建立安全连接: HTTPS协商加解密方式, 让服务器与客户端同时决定密钥.


1-浏览器发送加密套件和随机数client-random


2-服务器从加密套件中选取某个, 并生成随机数service-random, 然后返回二者


3-浏览器和服务器分别返回确认消息


这样浏览器端和服务器端都有相同的 client-random 和 service-random 了,然后它们再使用相同的方法将 client-random 和 service-random 混合起来生成一个密钥 master secret,有了密钥 master secret 和加密套件之后,双方就可以进行数据的加密传输了。


问题: 传输两个随机数的过程是明文, 意味着黑客可以拿到两个随机数与加密套件, 由于密钥算法是公开的, 所以黑客可以使用前面的资源合成密钥, 从而破解密码.


第二版: 使用非对称加密


非对称加密: 算法有两把密钥, A密钥用于加密, B则用于解密, 可以返用, A解密, B加密. 在HTTPS中, 服务器会将其中一个密钥通过明文的方式发送给浏览器, 这个密钥称为公钥, 服务器留下的称为私钥.因此, 公钥是公开的, 私钥是只有服务器知道的.


下图是使用非对称加密改造的 HTTPS 协议:

f1a8aa45e08645c38ebcda7f1ea41bbf.png

图-非对称加密实现 HTTPS


使用过程:


1-浏览器发送加密套件给服务器


2-服务器选择一个加密套件并形成私钥, 然后返回加密套件和公钥


3-浏览器和服务器互相返回确认消息


4-浏览器用公钥加密数据, 服务器端用来解密, 中间就算数据和公钥被截取, 黑客也无法解密


问题:


1-非对称加密效率过低, 影响加解密的速度, 从而影响用户打开页面的速度


2-服务器端数据安全无法保证, 因为如果服务器给浏览器发送数据, 服务器用的是私钥加密, 那数据只能用公钥解密, 而公钥在传输的过程中可以被截获, 会造成安全隐患.


第三版:对称加密和非对称加密搭配使用


综合使用对称和非对称加密算法:


传输阶段使用对称加密, 但是对称加密的密钥我们采用非对称加密来传输,


下图是改造后的版本:

9569bc8ab5df4d1392fcbad60b214a23.png

图-混合加密实现 HTTPS


使用过程:


1-浏览器向服务器发送对称加密套件、非对称加密套件和随机数 client-random


2-服务器保存随机数 client-random, 选择对称加密和非对称加密的套件, 然后生成随机数service-random, 向浏览器发送选择的加密套件、service-random和公钥


3-浏览器保存公钥, 并利用 clinet-random 和 service-random 计算出 pre-master, 然后利用公钥对 pre-master 加密, 并向服务器发送加密后的数据


4-服务器拿出自己的私钥, 解密出 pre-master 数据, 并返回确认消息.


需要特别注意的一点,pre-master 是经过公钥加密之后传输的,所以黑客无法获取到pre-master,这样黑客就无法生成密钥,也就保证了黑客无法破解传输过程中的数据了.


第四版:添加数字证书


通过对称和非对称混合方式,我们完美地实现了数据的加密传输。不过这种方式依然存在着问题,比如我要打开极客时间的官网,但是黑客通过 DNS 劫持将极客时间官网的 IP 地址替换成了黑客的 IP 地址,这样我访问的其实是黑客的服务器了,黑客就可以在自己的服务器上实现公钥和私钥,而对浏览器来说,它完全不知道现在访问的是个黑客的站点。


证明方式:


通过使用CA颁发的数字证书来证明自己的信息


证书作用:


一个是通过数字证书向浏览器证明服务器的身份,另一个是数字证书里面包含了服务器公钥。


含有数字证书的HTTPS的请求流程, 参考下图

140cc057c1f04c42b381625152328e63.png

图-完整的 HTTPS 请求流程


相较于第三版的 HTTPS 协议,这里主要有两点改变:


1.服务器没有直接返回公钥给浏览器,而是返回了数字证书,而公钥正是包含在数字证书中的;


2.在浏览器端多了一个证书验证的操作,验证了证书之后,才继续后续流程。


通过引入数字证书,我们就实现了服务器的身份认证功能,这样即便黑客伪造了服务器,但是由于证书是没有办法伪造的,所以依然无法欺骗用户.


参考: 极客时间-浏览器工作原理与实践


相关文章
|
4天前
|
安全 算法 网络安全
一张图就把HTTPS工作原理讲明白了!
【10月更文挑战第31天】
11 1
一张图就把HTTPS工作原理讲明白了!
|
1月前
|
存储 缓存 安全
https访问提示不安全,证书密钥验证上如何解决
【10月更文挑战第4天】访问提示不安全,证书密钥验证上如何解决
205 2
|
1月前
|
前端开发 JavaScript 异构计算
简述浏览器的渲染原理
浏览器渲染原理主要包括以下步骤:1)解析HTML文档生成DOM树;2)解析CSS生成CSSOM树;3)结合DOM与CSSOM生成渲染树;4)布局计算(回流)确定元素大小和位置;5)绘制(Paint)将节点转为图形内容;6)合成(Composite)多层图像。整个过程从文档解析到最终输出完整网页,并通过优化技术提升性能。
|
2月前
|
安全 网络协议 网络安全
在实现HTTPS时,有哪些常见的安全协议
在实现HTTPS时,有哪些常见的安全协议
|
1月前
|
编解码 JSON 安全
使用search-guard加固安全为https访问
使用search-guard加固安全为https访问
|
2月前
|
安全 网络安全 数据安全/隐私保护
https的原理
https的原理
48 2
|
2月前
|
Web App开发 缓存 安全
解决Edge浏览器提示“此网站已被人举报不安全”
【9月更文挑战第1天】当 Edge 浏览器提示“此网站被举报为不安全”时,可尝试:关闭 Microsoft Defender SmartScreen;检查网站安全性;清除缓存和 Cookie;更新 Edge 至最新版;或使用其他浏览器。若问题依旧,联系网站管理员和技术支持。同时,避免在不可信网站输入敏感信息,保护网络安全与隐私。
396 7
|
3月前
|
存储 缓存 安全
解决Edge浏览器提示“此网站已被人举报不安全”
【8月更文挑战第19天】如果Edge浏览器提示“此网站已被人举报不安全”,首先确认网站可信度及安全证书有效性,避免访问可疑网站。检查浏览器是否需要更新,并确保自动更新功能已开启。可暂时关闭Microsoft Defender SmartScreen(不建议长期关闭),清除缓存和Cookies,或检查第三方安全软件设置。若问题持续,考虑重置Edge浏览器设置,保留重要数据。如仍无法解决,联系网站管理员或微软支持。
350 7
|
3月前
|
Web App开发
Chrome浏览器导出HTTPS证书
Chrome浏览器导出HTTPS证书
52 0
Chrome浏览器导出HTTPS证书
|
3月前
|
安全 Nacos 数据安全/隐私保护
【技术干货】破解Nacos安全隐患:连接用户名与密码明文传输!掌握HTTPS、JWT与OAuth2.0加密秘籍,打造坚不可摧的微服务注册与配置中心!从原理到实践,全方位解析如何构建安全防护体系,让您从此告别数据泄露风险!
【8月更文挑战第15天】Nacos是一款广受好评的微服务注册与配置中心,但其连接用户名和密码的明文传输成为安全隐患。本文探讨加密策略提升安全性。首先介绍明文传输风险,随后对比三种加密方案:HTTPS简化数据保护;JWT令牌减少凭证传输,适配分布式环境;OAuth2.0增强安全,支持多授权模式。每种方案各有千秋,开发者需根据具体需求选择最佳实践,确保服务安全稳定运行。
290 0