当前位置: 首页 > article >正文

6 个问题搞懂 HTTPS 加密通信的原理与 HTTPS 通信安全协议

📌HTTPS 通信原理

HTTPS(HyperText Transfer Protocol Secure)是一种在HTTP基础上加入了加密传输层(TLS或SSL)的安全通信协议,用来确保在互联网上传输的数据能够得到加密和安全保护。HTTPS通信的原理可以简单分为以下几个步骤:

  1. 客户端发起连接:客户端(如浏览器)向服务器发起连接请求,请求建立一个安全的连接。
  2. 服务器端返回证书:服务器将自己的数字证书发送给客户端。数字证书包含了服务器的公钥以及一些其他信息。
  3. 客户端验证证书:客户端接收到服务器的证书后,会验证证书的合法性。这包括验证证书是否由可信的证书机构颁发,证书是否在有效期内等。
  4. 协商加密算法:如果证书验证通过,客户端会使用服务器的公钥来协商对称密钥,并将其加密后发送给服务器。
  5. 建立加密通道:服务器使用自己的私钥解密客户端发来的对称密钥,然后客户端和服务器使用这个对称密钥来加密和解密通信数据。
  6. 安全通信:一旦加密通道建立起来,客户端和服务器之间的通信就会通过这个加密通道进行,保护数据在传输过程中的安全性。

通过这些步骤,HTTPS可以确保在互联网上传输的数据能够得到加密和安全保护,防止数据被窃听、篡改或伪造。

📌TLS 与 SSL

TLS(Transport Layer Security)与SSL(Secure Sockets Layer)是两种加密通信协议,它们的目的都是为了保护在网络上传输的数据安全。
TLS和SSL有很大的相似性,但在技术上存在一些差异。SSL是早期被广泛使用的加密协议,TLS协议是SSL协议的升级版本,它修复了SSL的一些安全漏洞,并增加了新的加密算法和协议版本。TLS的设计目标是确保通信的安全性、完整性和验证性,同时提供更好的性能和灵活性。

📌SSL 与 TLS 的各个版本

SSL 2.0:存在严重的安全漏洞,已经被废弃。
SSL 3.0:使用的加密算法包括MD5和SHA-1等,这些算法都已经被证明不够安全,存在被攻击的风险。
TLS 1.0:使用的加密算法包括MD5和SHA-1等,这些算法也存在安全隐患,已经被证明不足以应对现代的攻击手段,不建议使用。
TLS 1.1:加入了更安全的加密算法,包括SHA-256等,增强数据完整性和安全性,提高了安全性,但依然包含了如 MD5、SHA-1 等一些不安全加密算法,所以也不建议使用。
TLS 1.2:进一步增强了安全性,支持更多的加密算法,包括AES和GCM等,去除了一些不安全加密算法,提供更强的安全保护,推荐使用。
TLS 1.3:引入了更多安全性和性能优化,去除了一些不安全的加密算法,提供更快的握手速度和更好的加密性能,推荐使用。

📌客户端和服务端是如何协商加密算法的?

客户端和服务器协商选择加密算法的依据主要包括以下几个方面:

  1. 支持的算法:客户端和服务器都会在握手过程中发送自己所支持的加密算法列表。基于这个列表,双方会选择一个双方都支持的算法。
  2. 安全性:双方会选择一个安全性较高的加密算法,以确保通信数据的保密性和完整性。但是随着安全漏洞的暴露,部分加密算法已经不再被认为是安全的,从而被移除,比如TLS 1.0 中的 MD5和SHA-1 在 TLS 1.1 中已经被移除。
  3. 性能:客户端和服务器也会考虑选择一个性能较好的加密算法,以确保通信的效率。

基于以上的因素,客户端和服务器会协商共同选择一个都支持且安全,并且性能较好的算法,用于后续通信数据的加密和解密。这样可以确保通信的安全性和保密性。

📌当同时支持多个版本时,客户端和服务端是如何协商使用 TLS 哪个版本的?

如果客户端和服务端都支持多个版本,它们会选择双方都支持的最高版本来进行通信。
比如客户端和服务端都支持 TLS 1.0、TLS 1.1、TLS 1.2,但是服务端支持 TLS 1.3,客户端不支持 TLS 1.3,此时就会选择双方都支持的最高版本 TLS 1.2。

📌MD5 和 SHA-1 为什么被认为不安全的算法?

MD5(Message Digest Algorithm 5)和SHA-1(Secure Hash Algorithm 1)是两种常见的摘要算法,被广泛用于数据完整性验证和唯一性标识。
MD5 的结果是 128 位 2 进制,通常展示为 32 位 16 进制,也有少部分会截取中间 16 位;
SHA-1 的结果是 160 位 2 进制,通常展示位 40 位 16 进制;

它们已经被认为不安全的主要原因如下:

  1. 强力碰撞攻击:对于MD5和SHA-1,已经出现了强力碰撞攻击的方法,即可以通过计算找到两个不同的输入数据,但它们产生相同的散列值。这意味着攻击者可以伪造数据并通过验证,这对于数据完整性是一个严重的威胁。
  2. 安全性漏洞:MD5和SHA-1算法的设计在现代密码学标准中已经被证明存在一些安全性漏洞,这些漏洞使得这些算法容易受到各种攻击,如碰撞攻击和预像攻击。
  3. 算法强度:随着计算机技术和计算能力的不断提高,MD5和SHA-1的算法强度已经无法满足当今的安全需求,这使得它们容易受到暴力破解和计算攻击。

http://www.kler.cn/news/134456.html

相关文章:

  • JPA整合Sqlite解决Dialect报错问题, 最新版Hibernate6
  • Spring cloud负载均衡@LoadBalanced LoadBalancerClient
  • “我们把最扎心的话,说给了自己最亲近的人” 何解?| IDCF
  • 多标签页之间的通信
  • GoLong的学习之路,进阶,标准库之并发(context)补充并发三部曲,你真的明白context吗?
  • 【深度学习】吴恩达课程笔记(五)——超参数调试、batch norm、Softmax 回归
  • 基于C#实现字符串相似度
  • 【PostgreSQL】日期操作
  • 邦芒支招:求职自荐的五条技巧
  • 如何为视频添加旁白,有哪些操作技巧?
  • [Android]创建TabBar
  • IOS 关于CoreText的笔记
  • idea中误删.iml和.idea文件,如何处理
  • flink 查看写入starrocks的数据量 总行数
  • VivadoAndTcl: synth_ip
  • ASUS华硕ROG幻13笔记本电脑GV301QE原厂Windows10系统
  • 区别Vue 2.0 和 Vue 3.0
  • (六)什么是Vite——热更新时vite、webpack做了什么
  • 让资产权利归于建设者:Kiosk使过程变得更简单
  • BSN专网项目介绍:宁波市区块链新型基础设施“甬链”
  • JS实现拖拽效果(内含源码)
  • 统信UOS通过源码安装软件提示“configure: error: cannot run C compiled programs.”错误
  • Vue2基础-Vue对象进阶介绍1
  • 数字化未来:实时云渲染在智慧城市中的创新应用
  • 新生儿奶藓:原因、科普和注意事项
  • 安顿APP3.0全新升级,引领智能穿戴健康革新,专注预警疾病风险
  • 苹果怎么互传照片?简单方法总结好了!
  • LangChain 2模块化prompt template并用streamlit生成网站 实现给动物取名字
  • GO抽象工厂模式
  • linux网络——HTTPS加密原理