首页 > 自考资讯 > 自考知识

https工作原理,http:www.acfun.cn/

头条共创 2024-06-27

01 建筑 — 思维 整体介绍

由于HTTPS的持续流行以及使用成本的不断下降,现阶段大多数系统都开始使用HTTPS协议。与HTTP相比,HTTPS更注重安全概念,您可能听说过SSL、非对称加密、CA证书、数据完整性保护等相关知识。本文重点讲解HTTPS的安全原理,并与HTTP进行比较。

02 建筑 — 思维 HTTP和HTTPS的比较

HTTP(正式名称:HyperText Transfer Protocol,超文本传输协议)和HTTPS(正式名称:Hypertext Transfer Protocol Secure,超文本传输安全协议)在很多方面都有很大不同。

225537c96a374b9dae20403714dbef2e~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1720073940&x-signature=o%2BqkyoZt%2BPKdqexfI%2FaOVfDQVHg%3D

2.1 HTTP

HTTP(超文本传输协议)是一种发送和接收HTML 页面的方法,主要用于在Web 浏览器和网站服务器之间传输信息。其主要特点是:

1、基于请求-响应模型:HTTP协议采用客户端/服务器架构模型,客户端向服务器发送请求,服务器返回相应的响应。该模型可以有效分离应用逻辑,提高系统的可维护性和可扩展性。

2、基于文本传输:HTTP协议使用ASCII码作为通信协议,每次请求和响应都是一条文本消息,这使得通信协议更简单、更直观、更容易处理。

3、支持多媒体传输:HTTP协议可以传输HTML、XML、JSON、照片、音频、视频等多种类型的数据。这使得HTTP协议成为适合多种类型应用场景的通用网络传输协议。

4、无连接:HTTP协议使每个请求独立,处理完请求后立即关闭连接。虽然这有助于节省资源,但它也带来了一些缺点,例如必须重新建立连接并重复发送相同的标头信息。

5、无状态:HTTP协议没有用于客户端状态存储或事务处理的“记忆”能力。这意味着您每次访问网站时可能都必须重复登录。

然而,HTTP 协议也有一些缺点。它的安全性较低,因为它以明文形式传输内容并且不提供任何形式的数据加密。如果攻击者拦截网络浏览器和网站服务器之间的通信消息,他们就可以直接读取这些消息中的信息。 因此,HTTP协议不适合传输一些敏感信息,例如信用卡号、密码和其他支付信息。

2.2 HTTPS

与HTTP 相比,HTTPS(安全超文本传输协议)是出于安全目的的HTTP 通道。通过HTTP通信加密和个人认证保证通信过程的安全。 HTTPS 的内容加密、身份验证和数据完整性保护原理主要依赖于SSL/TLS 协议。下面我们来详细了解一下这几个方面的实现原理。

2.2.1 内容加密

HTTPS 使用对称和非对称加密相结合的方式来实现内容加密。

1. 对称加密:密钥交换完成后,客户端和服务器生成共享会话密钥。该会话密钥用于后续的加密和解密操作。双方使用该会话密钥通过对称加密算法(如AES)对传输的数据进行加密和解密,以保证数据在传输过程中的安全。

d3c089ddfbb74093aa63518026411978~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1720073940&x-signature=rjoEflM9L47VgBOr7eScHU%2FgOog%3D

如上图所示,对称加密可确保消息机密性,但由于客户端和服务共享密钥,因此特别容易受到密钥泄露的影响。

2.非对称加密:在HTTPS的握手阶段,服务器将其公钥发送给客户端。该公钥用于后续的加密通信。客户端使用服务器的公钥对随机数进行加密,并将加密后的随机数发送到服务器。服务器使用其私钥解密该随机数,从而允许双方安全地交换密钥。这个过程称为密钥交换。

75ec64f9715545abb8c2ed8b0d2271e4~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1720073940&x-signature=Vhn80HamshH4ijcnbQGNN%2FVH61U%3D

如上图所示,

非对称加密需要接收者的公钥来加密消息,但由于公钥不是秘密的,因此客户端发送的消息可以被拦截和更改以执行攻击。

非对称加密性能至少慢几倍并且增加系统消耗。因此,HTTPS 使用两种加密的组合。

2.2.2 身份验证

HTTPS 使用数字证书来验证服务器的身份。

1、数字证书:数字证书由权威的证书颁发机构(CA)颁发,包含服务器的公钥、服务器的身份信息、CA的签名等信息。当客户端与服务器建立HTTPS连接时,服务器向客户端发送数字证书。

2、验证过程:客户端收到服务器的数字证书后,验证证书的有效性。 首先,客户端检查证书是否由受信任的CA颁发。然后,客户端检查证书是否已过期以及证书中的服务器身份信息是否与其所连接的服务器匹配。最后,客户端使用CA的公钥验证证书的签名,以确保证书在传输过程中没有被篡改。通过证书验证可以让客户端确认服务器的身份是可信的。

fd22cf2858a54fe6903f88d04948449d~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1720073940&x-signature=qAw7IWuRU7pgMLXVMBpKerZlrtM%3D

2.2.3 数据完整性

HTTPS 通过消息验证代码(MAC) 确保数据完整性。

1.消息认证码:HTTPS通信时,发送的每个数据包都附有一个MAC值。该MAC 值是通过将数据包内容与会话密钥一起输入散列函数来计算的。因此,只有持有相同会话密钥的接收者才能计算出正确的MAC值。

2. 完整性检查:当接收方收到数据包时,它使用相同的会话密钥和哈希函数来计算MAC 值,并将其与数据包附带的MAC 值进行比较。如果两个MAC值相同,接收方就可以验证数据包在传输过程中没有被篡改,从而保证数据的完整性和安全性。

470ca1f0917f4c06b38bb931988d8a13~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1720073940&x-signature=3lJZlygPFbIWL%2BoULHVUyJi4Gx0%3D

2.2.4 端口

HTTP 默认使用端口80,而HTTPS 默认使用端口443。

2.2.5 性能

HTTPS 需要加密和解密操作,因此性能可能会比HTTP 稍慢。然而,技术的进步使得这种性能差异几乎可以忽略不计。

03 建筑 — 思维 总结

HTTP 和HTTPS 最大的区别在于安全性。 HTTP是明文传输协议,而HTTPS是加密传输协议。这种加密功能使得HTTPS在传输敏感信息时更具优势。此外,浏览器显示地址的方式也不同。 HTTPS 标有绿色安全锁符号,HTTP 标有不安全网站符号。在协议层面,HTTPS在HTTP的基础上增加了SSL安全认证证书,提供了更高级别的安全保护。在涉及敏感信息传输的场景中,例如网购、银行交易等,主要使用HTTPS协议进行数据传输。

点击“架构与思考”,关注公众号

尽快获取领先互联网公司的核心技术和应用架构。

结尾

推荐阅读 Redis系列:完整的Redis进阶路径

MySQL系列:MySQL核心技术点解析

MQ系列:超高并发时的流控伪影

微服务系列:互联网大规模分布式服务的技术进步

架构设计:开发更好的思维,设计高质量的架构,并分享领先制造商的架构决策。

版权声明:本文由今日头条转载,如有侵犯您的版权,请联系本站编辑删除。

猜你喜欢