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

网络原理--HTTPS的加密过程简介

HTTPS是在HTTP的基础上,引入了一个加密层(SSL),而HTTP是明文传输的(不安全)。

当下见到的大部分网页都是HTTPS的,这其实都是拜“运营商劫持”所赐。

关于加密,没有100%安全的加密方式,但是如果解密成本大于了要保护的数据本身的价值,这在很大程度上就是安全的。

密码学中的几个概念:

1.明文:要传输的真实的数据,要表达的实际的意思。

2.密文:针对明文加密后得到的结果,往往是不直观的,不易理解的。

明文==》密文 :加密

密文==》明文: 解密

解密的工具称为“密钥”。

加密的方式

1.对称加密:

加密和解密,使用的是同一个密钥。

2.非对称加密:

加密和解密使用两个密钥,这两个密钥,k1和k2 是成对的。可以使用 k1 来加密,此时就是 k2 来解密,也可以使用 k2 来加密,此时就是 k1 来解密。这两个密钥,一个可以公布出去,称为“公钥”,另一个自己保存好,称为“私钥”。(只要一把密钥,是无法知道另一把的,这里涉及到了密码学的范畴)。

HTTPS工作过程

只要针对HTTPS的数据进行解密就可以得到HTTP格式的数据。

而HTTPS主要针对的就是header和body的加密。

一、引入对称加密

通过对称加密的方式,针对传输的数据进行加密操作。

注意事项:

1.对称加密的时候,客户端和服务器要同时使用一个密钥。

2.不同的客户端,需要使用不同的密钥。(如果所有客户端都使用一个密钥,加密形同虚设,黑客很容易拿到密钥。)

但是密钥在传输过程中很容易被黑客截获,一旦黑客截获了密钥,意味着加密操作就无意义了。

需要考虑,密钥的传输也进行加密。

二、引入非对称加密

使用非对称加密,主要目的是对传输的对称密钥进行加密,确保对称加密的安全性。

不能使用非对称加密对后续的header和body进行加密,而只对对称加密进行加密,这是因为非对称加密的加密和解密成本(消耗的cpu资源)很高,如果大规模使用,成本很大。

这时先让服务器生成公钥k1和私钥k2,然后再将公钥k2告诉给客户端,因为公钥和私钥是较为独立的两个部分(有公钥并不能算出私钥),所以即使公钥k2被黑客截获了也没关系,客户端使用公钥k2对进行对称加密的密钥key进行加密传输,当服务器拿到被公钥k2加密的密钥key并进行解密后,后续传输数据就可以使用密钥key来进行对称传输了。

但是这种情况仍然存在缺陷。

三、中间人攻击问题

服务器可以创建出一对公钥和私钥,黑客也可以按照同样的方式,创建出一对公钥和私钥来冒充自己是服务器。

如何解决上述问题:

首要问题是客户端在拿到公钥后要进行验证,验证这个公钥是不是真的。

所以引入了网络安全证书。

证书中包含了公钥,还包含了其他信息,这里列举几个重要信息:

1.服务器域名。

2.证书的有效时间。

3.服务器的公钥。

4.公证机构信息。

5.证书的签名:颁布证书的公证机构会在发布证书时,给这个证书计算出一个校验和,然后公证机构使用自己的私钥(与服务器的私钥无关)对校验和进行加密,此时就得到了证书的签名。

客户端拿到证书后,主要做这两件事:

1.按照同样的校验和算法,把证书的其他字段都计算一遍,得到校验和1.

2.使用系统中内置的公证机构公钥对证书中的签名进行解密,得到校验和2,对比校验和1和2。(因为市面上的公证机构没多少,所以windows等系统就内置了公证机构公钥)。如果一致,说明是原版证书,如果不一致,说明证书被修改过了。此时浏览器就会弹出警告页面,告诉用户访问的网页有风险!

有个问题,黑客自己的电脑也有公证机构的公钥,他可不可以解密之后进行修改证书呢?

不可以,因为:

1)如果黑客直接修改证书中的服务器公钥,不修改签名,客户端验证校验和时就会发现问题。

2)如果黑客修改证书中的服务器公钥,也尝试修改签名,由于黑客不知道公证机构的私钥,所以无法重新生成加密的签名,如果黑客使用其他私钥进行加密,客户端使用公钥进行解密就会失败,从而检测到问题。

3)黑客可不可以自己也去公证机构申请个证书来进行替换?

不可以,因为证书中还有域名等其他信息,例如域名就是唯一的,替换后客户端很容易发现问题。

4)如果黑客黑入公证机构或服务器来获取私钥呢?可以!但是这两个东西一般安全程度非常高,很难黑入。


http://www.kler.cn/a/572302.html

相关文章:

  • 57、深度学习-自学之路-自己搭建深度学习框架-18、RNN神经网络的简介
  • composer 错误汇总
  • 网络原理 初识[Java EE]
  • 20250301在chrome中安装CRX猫抓
  • HarmonyOS NEXT开发进阶(十一):应用层架构介绍
  • CES Asia 2025:聚焦前沿科技,探索未来无限可能
  • 运营商三要素API:构建安全信任的桥梁
  • 加油站小程序实战教程06地图多站点显示
  • 虚拟化园区网络部署指南
  • 算数操作符、赋值操作符、单目操作符、强制类型转换
  • 全球首创!微软发布医疗AI助手,终结手写病历时代
  • 清理pip和conda缓存
  • 华为OD最新机试真题-计算疫情扩散时间-C++-OD统一考试(E卷)
  • linux 如何查看gpu使用情况
  • 深度学习---卷积神经网络
  • 算法 并查集
  • 神经机器翻译:联合学习对齐和翻译
  • 【wsl/cline/mcp】在cline中初步使用mcp工具(以git为例)
  • 【STM32项目实战系列】基于STM32G474的FDCAN驱动配置
  • 江西省地标-DB36/T 1275-2020 绿色矿山建设标准