IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 09. 网络安全 · 单向散列函数 · 加密 · 数字签名 · 证书 -> 正文阅读

[网络协议]09. 网络安全 · 单向散列函数 · 加密 · 数字签名 · 证书

网络协议从入门到底层原理


网络安全

网络通信中面临的4种安全威胁

  • 截获:窃听通信内容
  • 中断:中断网络通信
  • 篡改:篡改通信内容
  • 伪造:伪造通信内容

图12

网络层 - ARP欺骗

ARP欺骗 (ARP spoofing),又称ARP毒化 (ARP poisoning)、ARP病毒、ARP攻击

图13

核心步骤举例

图14

防护

  • 静态ARP

  • DHCP Snooping
    网络设备可借由DHCP保留网络上各电脑的MAC地址,在伪造的ARP数据包发出时即可侦测到

  • 利用一些软件监听ARP的不正常变动

DoS、DDoS

图15

防御

防御方式通常为:入侵检测流量过滤多重验证
堵塞网络带宽的流量将被过滤,而正常的流量可正常通过

防火墙

  • 防火墙可以设置规则,例如允许或拒绝特定通讯协议,端口或IP地址
  • 当攻击从少数不正常的IP地址发出时,可以简单的使用拒绝规则阻止一切从攻击源IP发出的通信
  • 复杂攻击难以用简单规则来阻止,例如80端口遭受攻击时不可能拒绝端口所有的通信,因为同时会阻止合法流量
  • 防火墙可能处于网络架构中过后的位置,路由器可能在恶意流量达到防火墙前即被攻击影响

交换机

  • 大多数交换机有一定的速度限制和访问控制能力

路由器

  • 和交换机类似,路由器也有一定的速度限制和访问控制能力

黑洞引导

  • 将所有受攻击计算机的通信全部发送至一个“黑洞”(空接口或不存在的计算机地址)或者有足够能力处理洪流的网络设备商,以避免网络受到较大影响

流量清洗

  • 当流量被送到DDoS防护清洗中心时,通过采用抗DDoS软件处理,将正常流量和恶意流量区分
  • 正常的流量则回注回客户网站

传输层 - SYN洪水攻击(SYN flooding attack)

图16
防护参考:RFC 4987

传输层 - LAND攻击

图17

应用层 - DNS劫持

DNS劫持,又称为域名劫持

  1. 攻击者篡改了某个域名的解析结果,使得指向该域名的IP变成了另一个IP
  2. 导致对相应网址的访问被劫持到另一个不可达的或者假冒的网址
  3. 从而实现非法窃取用户信息或者破坏正常网络服务的目的

为防止DNS劫持,可以考虑使用更靠谱的DNS服务器,比如:114.114.114.114

谷歌:8.8.8.8、8.8.4.4

微软:4.2.2.1、4.2.2.2

百度:180.76.76.76

阿里:223.5.5.5、223.6.6.6

应用层 - HTTP劫持

对HTTP数据包进行拦截处理,比如插入JS代码
比如你访问某些网站时,在右下角多了个莫名其妙的弹窗广告

HTTP协议的安全问题

图18

encrypt:加密
decrypt:解密
plaintext:明文
ciphertext:密文

图19
如何防止被窃听
图20

单向散列函数(One-way hash function)

图21

单向散列函数,也被称为:
消息摘要函数(message digest function)
哈希函数(hash function)

输出的散列值,也被称为:
消息摘要(message digest)
指纹(fingerprint)

特点

图22

常见的几种单向散列函数

图23

检查数据是否被篡改

图24

密码加密

图25

几个网站

MD5加密
https://www.cmd5.com/hash.aspx

MD5解密
https://www.cmd5.com/

其他加密
https://www.sojson.com/encrypt_des.html
https://tool.chinaz.com/tools/md5.aspx

加密

对称加密(对称密码)
对称密码中,加密用的密钥和解密用的密钥是相同的
图01

非对称加密(公钥密码)
公钥密码中,加密用的密钥和解密用的密钥是不同的
图02

对称加密(Symmetric Cryptography)

图03

DES(Data Encryption Standard)

图04

3DES(Triple Data Encryption Algorithm)

图05

加解密过程
图06
3个密钥都是不同的,也称为 DES-EDE3
如果密钥1、密钥3相同,密钥2不同,称为 DES-EDE2

如果所有密钥都使用同一个,则结果与普通的 DES 是等价的

AES(Advanced Encryption Standard)

图07

密钥配送问题

在使用对称加密时,一定会遇到密钥配送问题

如果 Alice 将使用对称加密过的消息发给了 Bob,只有将密钥发送给 Bob,Bob 才能完成解密。
在发送密钥过程中,可能会被 Eve窃取密钥,最后 Eve 也能完成解密。

解决方法
图08

非对称加密(Asymmetric Cryptography)

图09

公钥、私钥

公钥和私钥是一一对应的,不能单独生成
一对公钥和私钥统称为密钥对(key pair)

由公钥加密的密文,必须使用与该公钥对应的私钥才能解密
由私钥加密的密文,必须使用与该私钥对应的公钥才能解密

非对称加密密钥配送

  1. 由消息的接收者,生成一对公钥、私钥
  2. 将公钥发给消息的发送者
  3. 消息的发送者使用公钥加密消息

非对称加密的加密解密速度比对称加密要慢

目前使用最广泛的非对称加密算法是 RSA

RSA 的名字由它的 3 位开发者,Ron Rivest、Adi Shamir、Leonard Adleman 的姓氏首字母组成

混合密码系统(Hybrid Cryptosystem)

对称加密的缺点
不能很好地解决密钥配送问题(密钥会被窃听)

非对称加密的缺点
加密解密速度比较慢

混合密码系统:是将对称加密和非对称加密的优势相结合的方法
解决了非对称加密速度慢的问题,并通过非对称加密解决了对称加密的密钥配送问题

网络上的密码通信所用的 SSL/TLS 都运用了混合密码系统

加密

会话密钥 (session key)
为本次通信随机生成的临时密钥
作为对称加密的密钥,用于加密消息,提高速度

加密步骤(发送消息)

  1. 首先,消息发送者要拥有消息接收者的公钥
  2. 生成会话密钥,作为对称加密的密钥,加密消息
  3. 用消息接收者的公钥,加密会话密钥
  4. 将前 步生成的加密结果,一并发给消息接收者

发送出去的内容包括
会话密钥加密的消息(加密方法:对称加密)
公钥加密的会话密钥(加密方法:非对称加密)

解密

解密步骤(收到消息)

  1. 消息接收者用自己的私钥解密出会话密钥
  2. 再用第①步解密出来的会话密钥,解密消息

加解密流程

图10

思考

图11

数字签名

在数字签名技术中,有以下 2 种行为:

生成签名
由消息的发送者完成,通过“签名密钥”生成

验证签名
由消息的接收者完成,通过“验证密钥”验证

如何能保证这个签名是消息发送者自己签的?
用消息发送者的私钥进行签名

过程

图12

过程改进

图13

思考

  1. 如果有人篡改了消息内容或签名内容,会是什么结果?
    签名验证失败,证明内容被篡改了

  2. 数字签名不能保证机密性?
    数字签名的作用不是为了保证机密性,仅仅是为了能够识别内容有没有被篡改

  3. 数字签名的作用?
    确认消息的完整性
    识别消息是否被篡改
    防止消息发送人否认

公钥、私钥再总结

图14
图15

公钥的合法性

如果遭遇了中间人攻击,那么公钥将可能是伪造的
图16
如何验证公钥的合法性?
证书

证书(Certificate)

图17

使用

图18
各大CA的公钥,默认已经内置在浏览器操作系统

注册和下载

图19

查看 Windows 已经信任的证书

图20

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-09-13 11:52:32  更:2022-09-13 11:55:24 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 21:39:30-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码