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

计算机网络知识--对称加密、非对称加密和数字证书详解

前言:SSL/TLS 与加密

  • HTTP:明文传输,不安全

  • HTTPS:HTTP + SSL/TLS → 安全传输

1️⃣ SSL/TLS 是什么

  • SSL(Secure Sockets Layer)TLS(Transport Layer Security) 是网络安全协议。

  • 作用:在客户端和服务器之间建立 安全通道,保证:

    1. 数据机密性(别人看不到传输内容)

    2. 数据完整性(防止篡改)

    3. 身份验证(确认服务器真实可信)


2️⃣ 使用的加密技术

技术用途说明
非对称加密(公钥/私钥)握手阶段用服务器公钥加密对称密钥,服务器用私钥解密 → 安全传输对称密钥
对称加密数据传输阶段用协商好的对称密钥加密数据 → 高效传输大量数据
数字证书身份验证服务器提供证书,浏览器验证合法性 → 确保公钥可信、防止冒充

3️⃣ HTTPS 通信流程概览

  1. 浏览器发起 HTTPS 请求 → 请求服务器证书

  2. 服务器返回证书(包含公钥 + 域名 + CA 签名)

  3. 浏览器验证证书合法性

  4. 浏览器生成 对称密钥,用服务器公钥加密发给服务器

  5. 服务器用私钥解密得到对称密钥 → 握手完成

  6. 双方使用对称密钥加密通信内容


4️⃣ 核心理解

  • HTTP:明文传输,不安全

  • HTTPS:HTTP + SSL/TLS → 安全传输

  • SSL/TLS 本身是 协议,不是单一加密算法

  • SSL/TLS 结合了非对称加密、对称加密和证书,形成完整安全方案


💡 记忆小技巧

  • 握手阶段 → 非对称加密 + 证书(安全交换对称密钥)

  • 数据传输 → 对称加密(高速加密)

  • 总体 → HTTPS = HTTP + SSL/TLS(安全可靠)

一、什么是加密

        加密就是把 明文(可读的内容,比如“你好小明”)转换成 密文(一堆人看不懂的字符串)。
只有拥有对应密钥的人才能解密恢复原文。


二、对称加密(解决传输内容问题)

1. 定义

  • 加密和解密用 同一个密钥

  • 你和小明共享一个密钥,谁拿到这个密钥都能加密也能解密。

2. 举例

  • 假设密钥是 12345

    • 你用它把“你好小明”加密 → 得到密文。

    • 小明收到后用同样的 12345 解密 → 得到明文。

3. 优缺点

✅ 优点:加密解密速度快,适合大量数据(如文件、视频)。
❌ 缺点:密钥分发困难。传输密钥时如果被别人截获,所有通信都会被破解。


三、非对称加密(解决传输内容问题)

1. 定义

  • 使用 一对密钥

    • 公钥(public key):可以公开给别人。

    • 私钥(private key):自己保密,不能泄露。

2. 工作方式

  • 公钥加密 → 私钥解密

  • 私钥加密 → 公钥解密(可能混淆,最准确的说法是私钥签名 → 公钥验签)

3. 举例

  • 参与者

    • 小明、程程 两个用户

  • 目标

    1. 小明 给 程程 发送文件,确保 只有 程程 能解密 → 保密性

    2. 程程 能确认文件确实是小明发的 → 身份验证(防止伪造)

1️⃣ 传输前准备
  • 小明 拿到 程程 的 公钥

  • 程程 拿到 小明 的 公钥

  • 小明、程程 各自保管自己的 私钥(绝对不能泄露)


2️⃣ 文件加密与发送(保密 + 签名)

假设 小明 要给 程程 发文件 file.txt

步骤

(1)小明 对文件生成摘要(哈希)
  • 小明 先对 file.txt 计算哈希值(比如 SHA-256),得到一个固定长度的摘要 hashA

  • 哈希值可以唯一代表文件内容,且长度短 → 提高签名效率

(2)小明 用 自己的私钥对摘要签名(这个就是上面的说的私钥签名 → 公钥验签)
  • signature = 私钥(小明).加密(hashA)

  • 这样 程程 拿到签名后可以验证文件确实是 小明 发的

(3)小明 用 程程的公钥加密文件(这个就是上面的说的公钥加密 → 私钥解密)
  • encryptedFile = 公钥(程程 ).加密(file.txt)

  • 这样即使其他人截获文件,也没法解密,因为 只有 程程 的私钥能解密

(4)小明 发送给 程程
  • 发送内容包括:

    • 加密后的文件 encryptedFile

    • 小明 的签名 signature


3️⃣ 程程 接收文件并处理
(1)程程 用自己的私钥解密文件
  • file.txt = 私钥(程程 ).解密(encryptedFile)

  • 这样确保只有 程程 能看到文件内容 → 保密性实现

(2)程程 验证文件来源(签名验证)
  • 程程 用 小明 的公钥解密签名:

    • hashFromSignature = 公钥(小明).解密(signature)

  • 程程 计算刚解密的文件的哈希 hashB = SHA-256(file.txt)

  • 比较 hashFromSignaturehashB 是否一致

    • 一致 → 文件确实是 小明发的,未被篡改

    • 不一致 → 文件可能被篡改或不是 小明 发的


4️⃣ 流程总结
步骤小明 的操作程程 的操作用到的密钥
文件加密程程 公钥 加密文件程程 私钥 解密文件保密性
签名用 小明 私钥 对摘要签名用 小明公钥 验证签名身份验证
发送文件发送 encryptedFile + signature接收并解密验证同上

4. 优缺点

✅ 优点:解决了密钥分发问题,不用担心公钥被别人拿到。
❌ 缺点:加密解密速度比对称加密慢很多,不适合大量数据。

四、数字证书(解决公钥问题)

1. 为什么需要证书?

  • 有人可能伪造小明的公钥,冒充小明。

  • 为了确认公钥是真的属于小明,就需要一个“权威机构”来担保,这就是 证书

2. 数字证书内容

  • 你在浏览器里访问 https://www.xiaoming.com 时:

    • 小明的服务器会把证书文件发给你(zhe)。

  • 证书由 CA(证书颁发机构) 签发。

  • 里面包含:

    • 网站/用户的公钥

    • 网站/用户的身份信息(域名、公司名)

    • CA 用私钥对这些信息的签名

3. 工作原理

  • 你访问一个网站(比如 https://www.bank.com)。

  • 网站会把证书发给你。

  • 你的浏览器会检查:

    • 证书是不是由可信的 CA 签发?

    • 证书中的公钥是否匹配网站?

  • 验证通过 → 说明公钥可靠,可以安全通信。


五、CA(Certificate Authority,证书颁发机构)(解决公钥问题)

1、CA 是什么

  • CA(Certificate Authority,证书颁发机构)
    它就像是网络世界里的“权威公证处”,专门负责发放和验证“身份证”(数字证书)。

  • 有了 CA 签发的证书,大家才能确信你拿到的某个人的 公钥是真的属于那个人的,而不是冒充的


2、CA 也有公钥和私钥

  • CA 私钥:非常非常机密,只能 CA 自己保存。它用来给数字证书“盖章签名”。

    • 保存在 CA 机构内部,严格保密,CA机构通过私钥来给别人签名产生证书

  • CA 公钥:是公开的,全世界的操作系统、浏览器都会内置这份公钥(就像内置了很多权威机构的印章)。

    • 内置在全世界的操作系统、浏览器中,我们通过CA公钥来验签这个证书是否由CA机构发布

这样,任何人都可以用 CA 的公钥去验证证书上的签名,确保它是真的 CA 签发的,而不是别人伪造的。


3、数字证书是什么

证书是明文传输,不加密

数字证书其实就是一个“文件”,它包含了:

  1. 网站/个人的公钥(比如小明的公钥)

  2. 网站/个人的信息(域名、组织名等)

  3. CA 对这些内容的签名(用 CA 私钥签的)

所以证书就像一张带公章的身份证:

  • 公钥 = 身份证号码

  • 网站信息 = 姓名、住址

  • CA 签名 = 公安局的盖章


4、为什么有 CA 就能保证小明的公钥正确?

举个例子:

👉 没有 CA 的情况
  • 小明说:“这是我的公钥。”

  • 你收到以后,根本不知道是不是黑客伪造的。

👉 有 CA 的情况(重点!!!!!!!!!!!!)
  1. 小明去找 CA,说:“帮我证明一下,这个公钥是我的。”

  2. CA 审核小明身份(比如验证域名所有权、公司注册信息)。

  3. CA 用 自己的私钥 对小明的公钥和信息做签名,生成一份 数字证书

  4. 小明把这个证书发给你。

  5. 你用自己电脑里内置的 CA 公钥 验证这个证书的签名。

    • 如果验证成功:说明证书确实是 CA 签发的,公钥就是小明的。

    • 如果验证失败:说明证书是伪造的,不能信任。

所以:CA = 值得信任的第三方,帮你确认公钥确实属于小明。

六、对称加密 + 非对称加密的结合

实际应用中(比如 HTTPS 网站访问):

  1. 双方先用 非对称加密 传输对称密钥(解决安全传输问题)。

  2. 然后再用 对称加密 进行数据传输(保证效率)。

👉 这样既安全又高效。

1、为什么要结合?

  1. 非对称加密:安全,但速度慢(比如 RSA 加密一个 1MB 的文件就要很久)。

  2. 对称加密:速度快,但密钥不好传(得先安全地把密钥送过去)。

👉 所以 HTTPS 里就用 非对称加密来传密钥,再用 对称加密来传数据


2、实际例子:小明和小红通信

假设小明是服务器(网站),小红是用户(浏览器)。

①. 小红访问小明的网站

  • 小红输入网址,比如 https://xiaoming.com

  • 浏览器会先去拿到小明网站的 数字证书(里面有小明的 公钥,并且证书是由 CA 签过名的,所以能确认公钥是真的小明的)。

②. 小红生成“对称密钥”

  • 小红浏览器随机生成一个临时的 对称密钥(比如 AES 密钥,随机字符串)。

  • 这个密钥将用来加密之后的所有数据传输。

③. 用小明的公钥加密对称密钥

  • 小红拿到小明的 公钥(在证书里),

  • 用这个公钥把刚生成的“对称密钥”加密,发给小明。

④. 小明用自己的私钥解密

  • 小明收到加密过的“对称密钥”,

  • 用自己的 私钥 解密,得到真实的“对称密钥”。

⑤. 后续通信:对称加密

  • 现在,小明和小红都知道这个“对称密钥”了(别人不知道)。

  • 接下来,小明和小红之间的所有数据通信(网页内容、登录信息、图片等等),都用 对称加密(AES 之类的) 来处理。


3、具体流程总结

  • 浏览器访问网站,拿到网站的证书(里面有公钥,且经 CA 认证是真的)。

  • 浏览器生成随机对称密钥。

  • 浏览器用网站公钥加密对称密钥 → 发送给服务器。

  • 服务器用私钥解密 → 得到对称密钥。

  • 之后双方都用这个对称密钥进行数据加密解密 → 安全又高效。

七、关系总结

  1. 对称加密:快,但要解决密钥传输问题。

  2. 非对称加密:解决了密钥传输问题,但速度慢。

  3. 数字证书:保证“公钥的真实性”,防止中间人冒充。

  4. 综合应用(比如 HTTPS):

    • 用证书确认网站身份 + 获取公钥;

    • 用非对称加密安全传输对称密钥;

    • 最终用对称加密进行大规模数据传输。


📌 一句话总结

  • 对称加密 → “同一把钥匙,快但不安全”

  • 非对称加密 → “两把钥匙,安全但慢”

  • 证书 → “公钥身份证,防伪造”

  • HTTPS → 三者结合,既安全又高效。

http://www.xdnf.cn/news/19145.html

相关文章:

  • “上门做饭”平台的核心技术栈与运营壁垒是什么?
  • OpenCV之霍夫变换
  • Linux系统部署:Certbot 实现 Nginx 自动续期部署 Let‘s Encrypt 免费 SSL 证书
  • css三角形
  • 万字解析RAG(检索增强生成)系统的构建与优化,从基础架构逐步深入到高级技术
  • 深度学习入门Day10:深度强化学习原理与实战全解析
  • 虚拟机快照对内存与磁盘空间的影响
  • Git 合并冲突
  • C++ 编译和运行 LibCurl 动态库和静态库
  • 32.String str=aaa与 String str=new String(aaa)一样吗?new String(“aaa”);创建了几个字符串对象
  • Linux按键驱动开发
  • 明远智睿 RK3568 核心板:以硬核性能解锁多领域应用新可能
  • 手写一个Spring框架
  • 【活动回顾】“智驱未来,智领安全” AI+汽车质量与安全论坛
  • Labview邪修01:贪吃蛇
  • 数据结构:归并排序 (Iterative Merge Sort)
  • 非支配排序遗传算法进化多目标优化算法
  • 【混合开发】Android+webview模拟crash崩溃补充说明
  • 【LeetCode每日一题】141. 环形链表 142.环形链表 II
  • Rspack
  • Kafka入门指南:从安装到集群部署
  • Mock 在 API 研发中的痛点、价值与进化及Apipost解决方案最佳实践
  • 【Docker/Redis】服务端高并发分布式结构演进之路
  • RS485、RS232、RS422协议
  • 若依微服务一键部署(RuoYi-Cloud):Nacos/Redis/MySQL + Gateway + Robot 接入(踩坑与修复全记录)
  • 云手机的安全性如何?
  • LeetCode Hot 100 第8天
  • 群组分析 (Cohort Analysis)——哪批用户最优质?
  • 【Spring底层分析】Spring AOP补充以及@Transactional注解的底层原理分析
  • 12大主流本地文档管理系统功能与价格对比分析