7.1 网络安全和加密原理

1.网络安全

2.加密原理

3.证书


1.网络安全

csharp 复制代码
a.机密性: 只有发送方和预订的接收方能理解传输的报文内容

- 发送方加密报文

- 接收方解密报文

b.认证: 发送方, 接收方需要确认对方的身份

c.报文完整性: 发送方, 接收方需要确认报文在传输的过程中有没有被改变

d.访问控制和服务的可用性: 对于正常的用户提供服务, 对于非正常的用户(比如: 攻击服务器)拒绝访问

2.加密原理

csharp 复制代码
加密分为: 对称加密和非对称加密(公开密钥)

csharp 复制代码
1).对称加密 - 用同一把密钥

a.核心思想: 加密和解密使用同一把密钥

b.比喻: 你打造了一个带锁的盒子(加密算法), 和一把唯一的钥匙(密钥); 你把信放进盒子锁上(加密),然后把盒子寄给朋友

你的朋友必须用同一把钥匙的副本才能打开盒子读信(解密)

c.工作流程

- 你和对方事先约定好使用哪把钥匙(密钥协商)

- 通过加密算法将钥匙和明文变成密文(加密数据)

- 发送密文

- 对方用同样的钥匙打开盒子, 取出明文

d.代表算法: DES, AES

e.优点: 速度快, 效率快, 适合加密大量数据

f.缺点: 钥匙怎么安全地交给对方, 如果钥匙在传递过程中被坏人截获, 整个通信就不再安全

csharp 复制代码
2).非对称加密

a.核心思想: 一个公钥, 一个私钥

b.比喻: 

- 公钥是锁头, 可以公开给全世界

- 私钥是唯一钥匙, 必须自己严格保密

c.加密通信("用公钥加密, 私钥解密")

- 场景: 你的网友bob想给你发秘密消息

- 过程: Bob拿到你公开的公钥, 把消息锁进盒子, 寄给你; 只有私钥才能打开; 即时盒子被截断, 别人也打不开

d.数字签名("用私钥签名, 公钥验证")

- 场景: 你想发布一个公告, 并让大家相信这确实是你发的

- 过程: 你用你的"唯一钥匙"(私钥)对公告内容做一个独特的"魔法印记"(签名), 然后连同公告一起发出; 任何人都可以用

你公开的"锁头"(公钥)来验证这个印记; 如果验证通过, 就证明这条消息一定是你发的, 且中途没有被篡改

e.代表算法: RSA

f.优点: 完美解决了密钥分发问题, 身份验证能力超强

g.缺点: 速度非常慢, 比对称加密慢成百上千倍

3.证书

csharp 复制代码
如果没有证书, 客户端无法确定收到的公钥是否真的来自它想要通信的服务器; 证书的出现就是为了解决这个问题的, 证书是

由受信任的第三方(Certificate Authority, CA)颁发的, 它用CA的私钥对服务器的公钥和一些相关信息进行签名, 从而证明

这个公钥属于这个服务器

csharp 复制代码
1).根证书通常包含以下部分

a.证书持有者的信息

这个证书是属于谁的? (例如, 网站域名www.example.com, 公司名称等)

b.证书颁发者(CA)的信息

这个身份证是哪个"公安局"发的?(例如, DigiCert, Let's Encrypt, Globalsign 等)

c.证书的有效期

身份证的"签发日期"和"过期日期", 过期了就无效了

d.核心部分: 证书持有者的公钥

e.核心部分: 证书颁发者(CA)的数字签名

这是证书防伪的关键, CA机构会用它们自己的私钥, 对整个证书的内容(包括你的公钥、你的信息等)计算一个数字签名, 并

把这个签名也放在证书里

csharp 复制代码
2).证书是如何工作的? (身份认证流程)

当你的浏览器(客户端)访问一个HTTPS网站(如: https://www.example.com)时, 会发生以下事情:

a.服务器发送证书

网站服务器会把它的"数字证书"发送给你的浏览器

b.浏览器验证证书, 你的浏览器会做一系列严格的检查

- 检查颁发者: 颁发这个证书的CA机构是否是我信任的? 浏览器和操作系统内部都预装了一个受信任的根证书列表

- 检查有效期: 证书在有效期内吗

- 检查域名: 证书上写的域名和你正在访问的域名一致吗

- 最关键的一步 "验证签名"

浏览器用CA机构的公钥(这个公钥已经在浏览器预装的信任列表里了)去解密证书里的那个数字签名, 得到一份"摘要A"; 浏览

器自己再用同样的算法, 对证书的明文内容, 包括网站的公钥、信息等计算一次"摘要B", 如果摘要A和摘要B完全一致, 就证

明了两件事:

这个证书的内容是完整的, 没有被篡改过; 这个证书确实是由那个可信的CA机构颁发的, 里面的公钥是真实有效的

c.建立信任: 只有以上所有检查都通过了, 浏览器才会确信: 这个www.example.com不是假冒的, 它给我的这个公钥确实

是它的, 我可以放心地用这个公钥来加密信息了
相关推荐
blackorbird1 小时前
一项网络级代理解决方案的案例研究
网络
weixin_46681 小时前
Ansible Playbook应用
网络·ansible
init_23611 小时前
prefix
网络
jenchoi4131 小时前
【2025-11-28】软件供应链安全日报:最新漏洞预警与投毒预警情报汇总
网络·安全·web安全·网络安全·npm
jenchoi4131 小时前
【2025-11-29】软件供应链安全日报:最新漏洞预警与投毒预警情报汇总
网络·安全·web安全·网络安全·npm
e***58231 小时前
C#数据库操作系列---SqlSugar完结篇
网络·数据库·c#
CodeByV2 小时前
【网络】网络基础概念:从协议分层到Socket基础
网络
CodeByV2 小时前
【网络】HTTP协议深度解析:从请求响应到Cookie/Session
网络·网络协议·http
执笔者5482 小时前
网络编程:socket编程与两个简单的UdpServer练习
linux·服务器·网络·学习