网络协议存在的安全缺陷
信息泄露
- 嗅探:
- 共享式网络架构:所有数据以广播方式发送,将网卡工作模式设置为“混杂”就可以嗅探网段内所有通信数据。
- 交换式网络架构:交换机具有“记忆”功能,通过将每个端口id与该端口的“物理地址”进行绑定,并依据帧头部的“目标地址”将数据直接发送到目标端口。
- ARP欺骗是攻击者在交换式网络环境下实施嗅探的基础。
信息篡改
- 在截获的数据中插入恶意代码,以实现木马植入和病毒传播的目的。
- 超文本标记语言(HTML)源文件放在HTTP报文的数据区,这种攻击的实质是报文在传递过程中被恶意更改。
身份伪装
- ARP欺骗:网络接口层
- IP欺骗:IP层
- 域名服务器(DNS):应用层
- 路由信息协议(RIP):网络层
行为否认
- 数据发送方否认自己已发送数据,或者接收方否认自己已收到数据
举例
- IP协议、用户数据报协议(User Datagram Protocol,UDP)、TCP、
HTTP等常用的协议都没有提供防止行为否认的功能。 - 日志审计:源IP、目标IP、源端口和目的端口此类协议特征信息
网络安全协议的定义
定义:基于密码学的通信协议
- 网络安全协议以密码学为基础:
- 网络安全协议也是通信协议:
- 语法规定协议报文的格式
- 语义规定对报文的处理方法
- 时序则规定通信双方交换报文的顺序
设计理念
网络安全协议组件
加密与解密
- 将数据在密钥的作用下转换为密文,是增加“数据不规则性”的过程。
- 在未知密钥的情况下,攻击者可以对密文进行“穷举攻击”破解以还原明文。当密钥的范围足够大时,便无法完全遍历所有可能的密钥。
- 对称密码算法:AES、3DES、SM4等
- 公钥密码算法:RSA、DSA、ECC、SM2等
消息摘要
- 一段数据的摘要(Digest)是表征该数据特征的字符串,获取数据摘要的功能通常由散列(Hash)函数完成,例如MD5、SHA-1/2/256/512。
- 散列函数是一种“压缩映射”过程,实现将任意长度的数据,转化为固定长度的散列值,数学表达式为:
h
=
H
(
M
)
h = H(M)
h=H(M)
例如,TCP/IP协议族中的报文包含“校验和”,将任意报文长度转化为2B - 摘要是验证数据完整性的基础
- 映射分布均匀性和差分分布均匀性
- 雪崩效应:输入中一个比特的变化,散列结果中将有一半以上的比特改变
- 单向性:M=H-1(h)不可行
- 抗冲突性:H(M)≠ H(M’)
单向性和抗冲突性似乎形成了一对矛盾
任何抵御冲突发生的消息摘要的强度只有摘要值长度的一半
消息验证码
- Message Authentication Code(MAC):密钥+Hash函数。
- 与完整性校验值(Integrate Check Value,ICV)的含义相同,是基于密钥和消息摘要所获得的一个值,可用于数据源认证和完整性校验。
数字签名
- 通常用于确保不可否认性,原理与消息验证码类似,具备认证功能。
- 基于消息摘要,数字签名使用发送方的私钥加密摘要;
- 接收方在验证数字签名时,利用发送方的公钥进行解密。
密钥管理
- 密钥是密码系统的核心,涉及密钥生成、分配、传递、保存、备份和销毁等
建立共享密钥
- 基于可信第三方方式:密钥分发中心(Key Distribution Center,KDC)
- 密钥协商方式
- 通信双方交换生成密钥的素材,并各自利用这些素材在本地生成共享密钥。密钥协商算法被设计为即便攻击者获得了这些素材,也无法生成密钥。
- Diffie–Hellman(D-H)密钥协商:通信双方共享模数p(大质数),发生器g
对于任意Z<p,存在W,使得gW mod p=Z
假设X<p,计算:Y=gx mod p,最终X被作为私钥,Y被作为公钥
- 密钥传输的核心思想是由通信一方生成共享密钥,并通过某种途径将该密钥传递到通信对等端,保证传输过程的安全。
- 公钥密码体制保护共享密钥
- 通信一方生成共享密钥后,用对方的公钥进行加密并传递。
- 对方利用其私钥解密该数据,从而实现密钥的共享。
公钥管理可能面临“中间人攻击”
公钥管理
- 证书授权中心(Certificate Authority,CA)
- 数字证书:
- 公钥:证书所有者的公钥
- 签名:颁发该证书的CA用自己私钥对证书所做的签名
- 国际标准:X.509标准
- 版本、序列号(唯一标识符)、签名算法、颁发者名称、主体名称、有效期等
- 证书撤销列表(Certificate Revocation List,CRL)
网络安全协议的安全需求
信息保障技术框架(IATF)定义网络安全需求:
- 机密性:不被泄露
- 完整性:不被篡改
- 可用性
- 可控性
- 不可否认性
基于“密码学”的安全机制具有通用性,兼顾安全性和高效性
- HTTPS(Hyper Text Transfer Protocol Secure)
- 安全套接层:Secure Sockets Layer,SSL
- 传输层安全:Transport Layer Security,TLS
H
T
T
P
S
=
H
T
T
P
+
T
L
S
/
S
S
L
HTTPS = HTTP + TLS/SSL
HTTPS=HTTP+TLS/SSL
- HTTPS需要到CA申请证书
- HTTP是明文传输; HTTPS基于SSL加密传输协议
- HTTP端口80,HTTPS端口443