【HTTPS】对称加密和非对称加密

简介: 【HTTPS】对称加密和非对称加密

HTTPS 是什么

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

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

运营商劫持

下载⼀个“天天动听“:

  • 未被劫持的效果,点击下载按钮,就会弹出天天动听的下载链接
  • 已被劫持的效果,点击下载按钮,就会弹出 QQ 浏览器的下载链接

即使运营商不劫持,如果被黑客盯上了,也是可能会对你的信息安全造成一些影响的

有些商场、饭店会提供 WiFi

  • 你连他们的 WiFi,你的请求就要经过他的路由器设备
  • 你能连,黑客就也能连,黑客就可能把路由器给黑了
  • 黑客可能用自己的设备伪造一个“商场 WiFi”
    一旦你的数据经过了黑客的设备,并且没有加密,那就非常危险了。尤其是“各种密码”

加密

解决安全问题,最核心的要点,就是“加密”。黑客领域的攻防,都是“相对”的概念,这是一个对抗的过程。但是可以做到,即使数据被黑客拿到了,他也解析不了/无法篡改,也能起到安全的效果

  • 你加密的数据,理论上来说,也可能被黑客破解,但加密的成本很低,但破解的成本很高
  • 只要破解成本超出了要保护的数据价值本身,就是安全的

引入加密,是保证数据安全的有效手段

密码学中的几个重要概念:

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

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

密钥:加密和解密过程中的关键道具

对称加密:加密和解密用的是同一个密钥

非对称加密:加密和解密用的不是同一个密钥,这两个密钥 k1k2是成对的

  • 可以使用 k1 加密,k2 解密
  • 可以使用 k2 加密,k1 解密

两个密钥,可以一个公开出去,称为“公钥”,另一个自己保存,称为“私钥”

手里只有一把的话,是无法知道另一把是什么的(是有一定的数学原理的)

HTTPS 工作过程(面试)

只要针对 HTTPS 的数据进行解密了,就能够得到 HTTP 格式的数据

上述的运营商劫持,无论是修改 referer 还是修改返回的链接(body),本质上都是明文传输惹的祸。需要引入加密,对上述传输的数据进行保护,主要就是要针对 headerbody 进行加密

1. 引入对称加密

通过对称加密的方式,针对传输的数据进行加密操作,这样网络上传输的就是密文了

  1. 对称加密的时候,客户端和服务器需要使用同一个密钥
  2. 不同的客户端需要使用不同的密钥
  • 如果所有的客户端的密钥都一样,加密就形同虚设,黑客就很容易拿到密钥
  • 这就意味着,每个客户端连接到服务器的时候,都需要自己生成一个随机的密钥,并且把这个密钥告知服务器。(也不一定非得是客户端生成,服务器生成也行,但也是要告诉客户端的)

问题的关键: 密钥需要传输给对方,一旦黑客拿到了密钥,意味着加密操作就没意义了

  • 这样即使你传输的是密文,但黑客也能解密

2. 引入非对称加密

使用非对称加密主要的目的是为了加密“对称密钥”,确保对称密钥的安全性

不能使用非对称加密针对后续传输的各种 headerbody 等进行加密,而是只能对对称加密的密钥进行加密

  • 因为非对称加密的加密解密成本(消耗的 CPU 资源)远远高于对称加密
  • 少来少去的用点还可以,但是如果大规模的使用,就难以承担了

  • 此处就让服务器持有私钥(只有服务器知道);客户端持有公钥(黑客也知道)
  • 客户端就可以使用公钥,对生成的对称密钥进行加密
  • 黑客虽然有公钥,但是对密钥加密的密文只有通过私钥才能解密,黑客拿不到私钥,也就无法对这个数据解密,也就拿不到 888888 对称密钥了
  • 只要 888888 安全到达服务器,后续服务器和客户端之间就可以使用 888888 作为对称加密的密钥,此时黑客就无法破解后续的数据了

客户端向服务器要公钥和通过公钥传输对称加密的密钥的两步操作就是 SSL 内部完成的操作。使用 HTTPS 的时候,磁层也是 TCP,先进行 TCP 三次握手,TCP 连接打通之后,就要进行 SSL 的握手了(交换密钥的过程)。后面才是真正的传输业务数据。(完整的 HTTPS 的请求/响应)

此处公钥和私钥可以这样理解

  • 有些老的楼里带有信箱
  • 你的手里有信箱钥匙(私钥),邮递员手里有锁头(公钥

可以让服务器生成公钥私钥。私钥就只有服务器自己知道,公钥可以告诉任何人

  • 客户端要传输数据的时候,就向服务器要公钥

上述操作,其实仍然存在严重的漏洞,黑客仍然有办法破解掉其中的加密操作


相关文章
|
24天前
|
弹性计算 人工智能 架构师
阿里云携手Altair共拓云上工业仿真新机遇
2024年9月12日,「2024 Altair 技术大会杭州站」成功召开,阿里云弹性计算产品运营与生态负责人何川,与Altair中国技术总监赵阳在会上联合发布了最新的“云上CAE一体机”。
阿里云携手Altair共拓云上工业仿真新机遇
|
16天前
|
存储 关系型数据库 分布式数据库
GraphRAG:基于PolarDB+通义千问+LangChain的知识图谱+大模型最佳实践
本文介绍了如何使用PolarDB、通义千问和LangChain搭建GraphRAG系统,结合知识图谱和向量检索提升问答质量。通过实例展示了单独使用向量检索和图检索的局限性,并通过图+向量联合搜索增强了问答准确性。PolarDB支持AGE图引擎和pgvector插件,实现图数据和向量数据的统一存储与检索,提升了RAG系统的性能和效果。
|
20天前
|
机器学习/深度学习 算法 大数据
【BetterBench博士】2024 “华为杯”第二十一届中国研究生数学建模竞赛 选题分析
2024“华为杯”数学建模竞赛,对ABCDEF每个题进行详细的分析,涵盖风电场功率优化、WLAN网络吞吐量、磁性元件损耗建模、地理环境问题、高速公路应急车道启用和X射线脉冲星建模等多领域问题,解析了问题类型、专业和技能的需要。
2577 22
【BetterBench博士】2024 “华为杯”第二十一届中国研究生数学建模竞赛 选题分析
|
18天前
|
人工智能 IDE 程序员
期盼已久!通义灵码 AI 程序员开启邀测,全流程开发仅用几分钟
在云栖大会上,阿里云云原生应用平台负责人丁宇宣布,「通义灵码」完成全面升级,并正式发布 AI 程序员。
|
3天前
|
JSON 自然语言处理 数据管理
阿里云百炼产品月刊【2024年9月】
阿里云百炼产品月刊【2024年9月】,涵盖本月产品和功能发布、活动,应用实践等内容,帮助您快速了解阿里云百炼产品的最新动态。
阿里云百炼产品月刊【2024年9月】
|
2天前
|
存储 人工智能 搜索推荐
数据治理,是时候打破刻板印象了
瓴羊智能数据建设与治理产品Datapin全面升级,可演进扩展的数据架构体系为企业数据治理预留发展空间,推出敏捷版用以解决企业数据量不大但需构建数据的场景问题,基于大模型打造的DataAgent更是为企业用好数据资产提供了便利。
163 2
|
20天前
|
机器学习/深度学习 算法 数据可视化
【BetterBench博士】2024年中国研究生数学建模竞赛 C题:数据驱动下磁性元件的磁芯损耗建模 问题分析、数学模型、python 代码
2024年中国研究生数学建模竞赛C题聚焦磁性元件磁芯损耗建模。题目背景介绍了电能变换技术的发展与应用,强调磁性元件在功率变换器中的重要性。磁芯损耗受多种因素影响,现有模型难以精确预测。题目要求通过数据分析建立高精度磁芯损耗模型。具体任务包括励磁波形分类、修正斯坦麦茨方程、分析影响因素、构建预测模型及优化设计条件。涉及数据预处理、特征提取、机器学习及优化算法等技术。适合电气、材料、计算机等多个专业学生参与。
1576 16
【BetterBench博士】2024年中国研究生数学建模竞赛 C题:数据驱动下磁性元件的磁芯损耗建模 问题分析、数学模型、python 代码
|
22天前
|
编解码 JSON 自然语言处理
通义千问重磅开源Qwen2.5,性能超越Llama
击败Meta,阿里Qwen2.5再登全球开源大模型王座
977 14
|
4天前
|
Linux 虚拟化 开发者
一键将CentOs的yum源更换为国内阿里yum源
一键将CentOs的yum源更换为国内阿里yum源
221 2
|
17天前
|
人工智能 开发框架 Java
重磅发布!AI 驱动的 Java 开发框架:Spring AI Alibaba
随着生成式 AI 的快速发展,基于 AI 开发框架构建 AI 应用的诉求迅速增长,涌现出了包括 LangChain、LlamaIndex 等开发框架,但大部分框架只提供了 Python 语言的实现。但这些开发框架对于国内习惯了 Spring 开发范式的 Java 开发者而言,并非十分友好和丝滑。因此,我们基于 Spring AI 发布并快速演进 Spring AI Alibaba,通过提供一种方便的 API 抽象,帮助 Java 开发者简化 AI 应用的开发。同时,提供了完整的开源配套,包括可观测、网关、消息队列、配置中心等。
734 9