第8章 网络安全
网络安全服务
- 认证:提供某个实体的身份保护。
- 访问控制:保护资源,防止对它的非法使用和操纵。
- 数据加密:保护信息不被泄露。
- 数据完整性:保护信息以防止非法篡改。
- 不可否认性:防止参与通信的一方事后否认。
密码
密钥:参与明文密文变换的参数。
按加密模式分类: -
序列密码:位或字节加密(流密码)。
-
分组密码:将明文分成固定长度的组,用同一密钥对每一块加密,输出固定长度的密文。
按发展进程/体制分: -
古典密码:基于字符替换的密码。
- 代替密码:简单代替,多表代替,多字母或多码代替 -
换位密码:凯撒密码
- 对称密钥体制:加密密钥和解密密钥相同,也叫单钥密码体制。
- DES(数据加密标准)
- AES(高级加密标准)
- IDEA(国际数据加密算法)
- 非对称密钥体制:加密密钥和解密密钥不同,也叫公钥密码体制。
- RSA
- 背包密码
- 椭圆曲线
- EIGamal
- D_H
对称密码
加密速度快,但密钥空间大。
DES
在一个初始置换后,明文组被分成左半部分和右半部分,每部分 32 位。
初始置换和初始逆置换再密码意义上作用不大,他们的作用在于打乱原来输入的 ASCII 码字划分关系,并将原来明文的校验位变成置换输出的一个字节。16 轮迭代的乘积变换,称为函数 f,将数据和密钥结合起来。
密钥有 56 位。16 轮之后,左右两部分进行一次交换,再经过一个初始逆置换,算法结束。
三重 DES
使用三(或两)个不同的密钥对数据块进行三次(或两次)加密。
三重 DES 的强度大约和 112 位的密钥相当。
有四种模型: - DES-EEE3:使用三个不同密钥顺序进行三次加密变换。 - DES-EDE3:使用三个不同密钥一次进行加密-解密-加密变换。 - DES-EEE2:密钥 K1=K3,顺序进行三次加密变换。 - DES-EDE2:密钥 K1=K3,依次进行加密-解密-加密变换。
IDEA
64 位大小的分组加密算法,密钥长度为 128 位,加密成 64 位密文。
加密密钥和解密密钥不同,但是从一个主密钥派生出来,因此仍是对称的加密体制。
对称密码的性能
- 安全性能
- 密钥长度:对 n 位的密钥,若密码系统是对称的,则需要计算 \(2^{n-1}\) 次。
- 分组长度
- 轮数
- 密钥编排函数
- 实现性能
- 计算
- 内存利用
非对称密码(公私钥密码)
密钥分发简单,需要保存的密钥减少,但加密速度慢。
可用于数字签名和密钥分发。
RSA
计算过程: - 密钥的生成 - 选择 p、q(p、q 为互异素数)
计算 \(n = p \cdot q,\ m = (p-1)(q-1)\)
- 选择整数 e 与 m 互素,即 \(gcd(m, e) = 1, 1
< e < m\)
gcd 表示最大公约数。 - 计算 d,使 \((e \cdot
d) \mod m = 1\)
公钥 Pk = {e, n},私钥 Sk = {d, n}
- 加密(使用 Pk)
- 明文是以分组方式加密的,每一个分组的比特数应小于 n 的二进制表示,即每一个分组的长度应小于 \(\log_2 n\)
- 明文 M < n,密文 \(C = M^e \mod n\)
- 解密(使用 Sk)
- 密文 C,明文 \(M = C^d \mod n\)
eg.
p = 3, q = 11
\(n = 3 \times 11 = 33,\ m = 2 \times 10 =
20\)
选 e = 3,则 \(3d \mod 20 = 1\),解得
\(d = 7\)。
对明文 M = 2,得到密文 \(C = 2^3 \mod 33 =
8\)
对密文解密可得明文 \(M = 8^7 \mod 33 =
2\)
安全分析:
选取的素数 p、q 要足够大,则分解给定乘积 n 再计算上是不可行的。
基于短期安全性考虑,n 的长度至少应为 1024 比特;而长期安全性要求 n
的长度这至少为 2048 比特。
数字签名与认证
数字签名
利用私钥生成签名,用公钥验证签名。
一个数字签名方案是由签名算法和验证算法组成。
签名算法利用私钥生成签名。
称消息 m 的签名为 sig(m),然后将 (m, sig(m)) 发给接收方。由于无法识别数字签名与其拷贝之间的差异,所有在数字签名前应加上时间戳。
验证算法利用签名者的公钥对 sig(m) 进行解密,如果解密输出与 m 一致,则为合法数据。
数字签名的目标: - 接收方可以验证发送方声称的身份。 - 发送方不能否认该消息的内容。 - 接收方不可能自己编造这样的信息。
数据的完整性认证
可用于做认证的函数: - 加密函数 -
用对称密钥加密,信息的完整作为对信息的认证; -
用公钥密码中的私钥加密(即签名),但加密速度太慢。 -
消息认证码 (MAC)
对信源消息的一个编码函数。 - 散列函数
将任意长的信息映射成一个固定长度的信息。
MAC
利用函数 f 和密钥 k,将要发送的明文 x 或密文 y 变换成 r bit 的消息认证码 f(k, x)(或 f(k, y))。
将其称为认证符附加在 x(或 y)之后发出。
接收者收到发送的消息序列后,按发送方同样的方法对接收的数据(或解密后)进行计算,得到相应的 r bit 数据。
散列函数
单向散列函数 (hash) 是 MAC 的一种变形,从一段很长的报文中计算出一个固定长度的比特串,用于消息的完整性验证。
单向散列函数有以下特征: - 给定任意长度的 P,易于计算处固定长度的 H(p)。 - 只给出 H(p),几乎无法找出 P。 - 对于任意给定的 X,找到满足 H(Y) = H(X) 的 Y(\(\neq x\)) 在计算上是不可行的(抗弱碰撞)。 - 找到满足 H(Y) = H(X) 的任意一对 (X, Y) 在计算上是不可行的(抗强碰撞)。
认证方法: - 消息:X,任意比特 - 消息摘要:Z = H(X),160 比特 - 签名摘要:\(Y = sig_k (Z)\)
标准:MD5(128比特),SHA-1(160比特)等。
典型的网络安全威胁
主动攻击与被动攻击
主动攻击更改数据流,或伪造假的数据流。
有以下四种形式: -
伪装:即冒名顶替。一般而言,伪装攻击的同时往往还伴随着其他形式的主动攻击。
- 重放:先被动地窃取通信数据,然后再有目的地重新发送。 -
篡改:即修改报文的内容。或者对截获的报文延迟、重新排序。 -
拒绝服务:阻止或占据对通信设是的正常使用或管理。针对特定目标或某个网络区域。
被动攻击对传输进行偷听与监视,获得传输信息。
有以下两种形式: - 报文分析:窃听和分析所传输的报文内容。 -
流量分析:分析通信主机的位置、通信的频繁程度、报文长度等信息。
常见攻击分类
- 社会工程:攻击者可通过各种社交渠道获得有关目标的结构、使用情况、安全防范措施等有用信息从而提高攻击成功率。
- 口令破解:攻击者可通过获取口令文件,然后运用口令破解工具获得口令,也可通过猜测或窃听等方式获取口令。
- 连接盗用:在合法的通信连接建立后,攻击者可通过阻塞或摧毁通信的一方来接管已经过认证建立起来的连接,从而 假冒被接管方与对方通信。
- 网络窃听:网络的开放性使攻击者可通过直接或间接窃听获取所需信息。
- 数据篡改:攻击者可通过截获并修改数据或重放数据等方式破坏数据的完整性。
- 地址欺骗:攻击者可通过伪装成被信任的IP 地址等方式来骗取目标的信任。
- 恶意扫描:攻击者可编制或使用现有扫描工具发现目标的漏洞,进而发起攻击。
- 基础设置破坏:攻击者可通过破坏 DNS 或路由信息等基础设施,使目标陷于孤立。
- 数据驱动攻击:攻击者可通过施放病毒、特洛伊木马、数据炸弹等方式破坏或遥控目标。
- 服务拒绝:攻击者可直接发动攻击,也可通过控制其它主机发起攻击,使目标瘫痪。如发送大量的数据洪流阻塞目标。
网络安全协议
不同层次的安全协议
- 链路层:链路隧道协议、加密技术
- 网络层:IPSec 协议
- 传输层:SSL 协议
在 TCP 协议之上为两个端实体之间提供安全通道的协议。 - 应用层:SHTTP、PGP、S/MIME
IPSec
- 传输模式:用来保护某个 IP 净荷的上层协议。
- 隧道模式:在两个网关之间保护整个 IP 分组。
会更换新的 IP 头标 (?)
认证 (AH) 头标
提供数据完整性保护,抗重播攻击。
安全组合 (SA):为使通信双方的认证/加密算法一致,相互间建立的联系。
IP 头标 + AH 头标 + TCP/UDP 头标 + 用户数据
认证范围包括上述全部。
AH 头标包含: - 下一个头:8 bit - 净荷长度:8 bit
- 保留:16 bit - 安全参数索引 (SPI):32 bit
将目的 IP 地址和 SPI 组合即可确定 SA。 - 序列号:
利用该域抵抗重播攻击。 - 认证数据:长度可变,为 32 bit 的整数倍
具体格式因认证算法而异。
加密 (ESP) 头标
提供数据机密性、完整性保护,抗重播攻击。
IP 头标 + ESP 头标 + TCP/UDP 头标 + 用户数据 + ESP 尾标 + ESP(认证数据)
- 认证范围:ESP 头标到 ESP 尾标。
- 加密范围:TCP/UDP 头标到 ESP 尾标。
- ESP 净荷:TCP/UDP 头标 + 用户数据
防火墙
防火墙是在两个网络之间强制实行访问控制策略的由软硬件构成的系统。
功能: - 过滤不安全的服务和禁止非法访问。 - 控制对特殊站点的访问,可以允许受保护网络的一部分主机被外部访问,而其它部分则禁止。 - 提供访问记录和审计等功能。
分类: -
包过滤防火墙:仅根据分组中的信息(地址、端口号、协议)执行相应的过滤规则,每个分组的处理都是独立的。
-
状态检测防火墙:不仅根据分组中的信息,而且还根据记录的连接状态、分组传出请求等来进行过滤。
TCP:为建立连接的SYN分组建立状态,只允许对该SYN的应答分组进入。连接建立后,允许该连接的分组进入。
-
代理型防火墙:通过对网络服务的代理,检查进出网络的各种服务。