第 7 章 计算机网络安全基础...

Post on 19-Jan-2016

150 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

第 7 章 计算机网络安全基础 随着计算机网络的发展,网络中的安全问题日趋严重。它是一个涉及面很广的综合性问题,广义的网络安全所关注的领域包括:  环境安全:涉及到管理体制、用户心理、社会环境、法律法规等因素。  系统安全:涉及系统管理、资源管理、用户管理、防侵犯措施、系统恢复等各种手段。  信息安全:主要涉及信息的存储安全和传送安全。 信息安全只是网络安全的一个方面,本章仅就网络安全的策略、机制和主要技术进行初步的讨论。. 7.1 概述 本节讨论计算机网络面临的安全性威胁、网络安全的目标和一般的数据加密模型。 7.1.1 计算机网络面临的安全性威胁 - PowerPoint PPT Presentation

TRANSCRIPT

第 7章 计算机网络安全基础

随着计算机网络的发展,网络中的安全问题日趋严重。它是一个涉及面很广的综合性问题,广义的网络安全所关注的领域包括:

环境安全:涉及到管理体制、用户心理、社会环境、法律法规等因素。

系统安全:涉及系统管理、资源管理、用户管理、防侵犯措施、系统恢复等各种手段。

信息安全:主要涉及信息的存储安全和传送安全。信息安全只是网络安全的一个方面,本章仅就网络安全的

策略、机制和主要技术进行初步的讨论。

7.1 概述

本节讨论计算机网络面临的安全性威胁、网络安全的目标和一般的数据加密模型。

7.1.1 计算机网络面临的安全性威胁网络安全主要涉及网络自身的安全和网络中信息的安全两方

面的内容。

一、网络自身安全的问题在 Internet 中,对网络的攻击可分为两种类型,即服务攻击

与非服务攻击。

1 、服务攻击的特点服务攻击是指对网络提供某种服务的服务器发起攻击,造

成该网络的“拒绝服务”。例如,黑客利用 TCP/IP 协议缺乏认证、保密措施,通过 TCP 的 23 端口所提供的远端连接,发起对 Telnet 服务器的攻击;又如通过 HTTP 的 80 端口等待客户的浏览请求,对 WWW 服务器进行攻击;还有利用邮件传送的 SMTP 的 25 端口对邮件服务器进行攻击等等。

2 、非服务攻击的特点非服务攻击是指针对低层协议或网络通信设备发起的攻击。

与服务攻击相比,非服务攻击与特定服务无关,它往往利用操作系统或协议漏洞达到攻击的目的,具有更强的隐蔽性。

二、网络中的信息安全问题网络中的信息安全主要面临三个方面的威胁:信息存储安

全与信息传输安全。1 、信息存储安全信息存储安全是指如何防止网络中静态存储的信息被未受

权的网络用户非法使用。信息存储安全一般是由操作系统、数据库管理系统、应用

软件和防火墙来共同保障,常用方法如用户口令加密、用户身份认证、数据及用户访问权限设置、信息加密、结点地址过滤等。攻击者常见的攻击手段如绕开网络安全认证系统、猜测或截取用户口令、伪造和冒充合法用户、使用无须授权的网络服务等。

2 、信息传输安全计算机网络上的通信主要包括以下 3 种安全威胁:( 1)对信息“表征”功能的攻击威胁,主要表现为:• 窃取信息• 篡改信息• 破坏信息• 伪造信息( 2)对信息“控制”功能的攻击威胁通过控制和利用信息的“控制”功能达到攻击的目的。

如未来战争中,信息战主要目的之一就是摧毁、控制或利用对方的指挥、通信、情报、控制、监视、以及侦察系统的控制功能。

( 3)对消息载体的攻击针对信息的存储、处理和传输系统的攻击。如拒绝服务攻

击——通过删除或延迟某一连接上传输的 PDU,使被攻击的服务器始终处于“忙”状态。从而拒绝客户服务请求。例如

保证信息传输安全的主要技术是数据的加密与解密、身份确认、数字签名、第三方确认等。

攻击者

Ping帧

目的地址:广播地址源地址:受害机地址

::

Echo帧

受害机

大的网络

7.1.2 计算机网络安全的目标:1、信息的存储及传输安全,包括:(1) 防止析出报文内容;(2) 防止信息量分析;(3) 检测更改报文流;(4) 检测拒绝报文服务。

2 、实体的身份认证,包括:(1) 口令、密钥的管理及分发;(2) 检测伪造初始化连接。

3.接入控制,主要策略包括:(1) 最小特权策略:即无需共享的信息绝不公开;(2) 最大共享策略:即除需保密的信息外,公开所有可以

共享的信息;(3) 开放系统和封闭系统:开放系统——用户可以访问除

明确禁止以外的任何信息,封闭系统——用户只能访问明确授权的信息;(4) 基于名字的访问控制策略:即按数据的名字(属性)

进行访问控制;(5) 基于内容的访问控制策略:即按数据属性的性质进行

分类并进行访问控制;(6) 基于访问类型的访问控制策略:根据用户对数据的操

作类型(读、写、修改、删除、移动等)实施访问控制。

4、行为审计、抗抵赖、可控性(1) 审计:对实体的行为进行记录,以便事后追查;(2) 抗抵赖:实体不能对已发生的行为进行抵赖;(3) 可控性:能够对实体的行为和内容进行监控。

5 、可用性包括访问控制机制的可用性和信息载体(网络、资源、

存储空间等)的可用性。

对付各类攻击通常采用数据加密技术,或将加密技术与适当的鉴别技术相结合。

7.1.3 一般的数据加密模型密码技术是网络与信息安全的核心技术之一,它包括加密

技术和解密技术两个部分。加密 /解密算法的操作通常是在一组密钥的控制下进行的,算法和密钥构成了密码技术的两个基本要素。加密密钥和解密密钥可以是相同的,称为对称密钥体制,也可以是不相同的,称为非对称密钥体制。

在设计加密系统时,加密算法——作为加密的数学函数,可以是公开的,而密钥——密码算法的可变参数则通常是保密的。一个算法的强度(被破译的难度)除了依赖于算法本身以外,还往往与密钥的长度有关。

一般的数据加密模型如图 7-1所示。

其中,明文 X用加密算法 E和加密密钥K得到密文 Y=EK(X)。到了接收端,利用解密算法 D和解密密钥K,解出明文为:

DK(Y)=DK(EK(X))=X。在这里我们假定加密密钥和解密密钥都是一样的,密钥通

常是由一个密钥源提供。当密钥需要向远地传送时,一定要通过另一个安全信道。

E加密算法E

加密算法D

解密算法D

解密算法

明文 x 明文 x

密文 Y=EK(x)

密钥源密钥源

加密密钥K 解密密钥K

入侵者

安全信道

图 7-1 一般的数据加密模型

窃听 篡改

7.2 对称密钥密码体制常规密钥密码体制是指加密密钥与解密密钥相同的密码体

制,替代密码和置换密码是早期常用的两种常规密钥密码体制。以下仅就对称密钥密码体制中最基本的加 /解密方法进行介绍。

a b c d e f g h i j k l m n o p q r s t u v w x y z

D E F G H I J K L M N O P Q R S T U V W X Y Z A B C

7.2.1 恺撒密码( Caesar cipher ):恺撒密码又称替换密码,是一种将明文平移的替换技术,其原理可用一个例子来说明:从表 7-1可以看出,如果在保持字母序列 a、 b、 c、……、 x、 y、 z 不变的情况下,建立与另一个序列D、 E、F、……、 A、 B、 C 的对应关系(相应位置的字符相差 29个字符)。表 7-1 字母 a、 b、 c、……与 D、 E、 F、……对应

关系

若明文为小写字母 caesar cipher ,则对应的密文为大写字母 FDHVDU FLSKHU(此时密钥K=29,因为对应的小写字母向左位移了 29个字母的位置),接收方利用密钥做相反的平移操作即可获得原文。恺撒密码由于容易破译而很少单独使用,通常作为复杂

的编码过程中的一个中间步骤,常见的攻击方法有:(1) 穷举法:对密钥空间的所有可能取值逐一测试;(2) 频率试探法:已知英文中使用频率最高的字母依次是

e 、 t 、 o、 a、 n 等,再根据密文中各字母出现的频率进行试探,求出密钥 k。

一种改变字母出现频率和顺序的方法是使用多字母密码(polyalphabetic cipher),它对明文中不同位置的字母采用不同的密文字母进行替换。例如,假设数组 P 和 C 分别代表明文和密文, K为整数密钥,算法描述为:

for (int i=0; i<length of P; i++) C[i]=P[i]+K+(i mod 3);假设选取密钥K=1,则密文的第 0 、 3 、 6……位为明文

对应位的 ASCII码值加 1,而第 1、 4、 7……位为对应位的ASCII码值加 2 ,位置为 2 、 5 、 8……时,字符的值加 3 。

如明文 THEMTHENTHEY 采用密钥 1对其进行多字母密码加密后,密文为 UJHNVKFPWIG\。这种方法可有效减少相同字符反复出现的频率。

7.2.2 置换密码( transposition cipher ):是按照某一规则重新排列消息中的比特或字符的顺序,实现加密目的的方法。与替代密码不同,密文中的各个比特或字符只是进行重排,而没有被替换。

一种方法是将明文采用一个m列的二维矩阵进行存储,然后以某种约定或随机的顺序分别传送各列字符。接收方只要知道列数及列变换方法,即可重构信息。

例如,以 CIPHER这个字作为密钥。在此密钥中的各个字符在英文字母表中出现的顺序依次是: C 为第 1, E为第 2 ,……, R为第 6。于是得出密钥的顺序为 145326。这就表示在形成密文时,首先读取第 1列的字符 (因为密钥中的 1 位位于第 1列),然后读取第 5列(因为密钥中的 2位于第 5列) 、第 4列、第 2列、第 3列和第 6列。明文也以 6个字符为一组写在密钥下。如:假设明文为 attack begings at four ,密钥为CIPHER,则

密钥 C I P H E R顺序 1 4 5 3 2 6 明文 a t t a c k b e g i n s a t f o u r

密钥 C O M P U T E R

列号 1 4 3 5 8 7 2 6

F O L L O W T

H E Y E L L O

W B R I C K

R O A D

按行重构原文为: FOLLOW THE YELLOW BRICK ROAD。这种密码很容易破译,主要用于作为加密过程中的中间步骤。

这样得出密文为 abacnuaiotettgfksr 。接收者按密钥中的字母顺序按列写下,按行读出即得明文。

例如,已知收到的密文为 FHWR LK L BAOE OLYRDTO WLC OEI ,密钥为 COMPUTER,则密文矩阵为

7.2.3 序列密码序列密码体制是将明文 x看成是连续的比特流(或字符

流) x1x2…,并且用密钥序列K=k1k2…中的第 1个元素 k1 对明文中的 x1 进行加密,第 2 个元素 k2 对明文中的 x2 进行加密,……,即

Ek(X)=Ek1(x1)Ek2(x2)… 序列密码又称为密钥流密码。这种体制的保密性完全在于

密钥的随机性。如果密钥是真正的随机数,则这种体制就是理论上不可破的。这也可称为一次一密乱码本体制。图 7-2给出了序列密码的框图。

+ +

发送端 接收端

种子 I0 种子 I0

xi yiki xiki

明文序列 明文序列密文序列

图 7-2 序列密码体制

密钥序列产生器 密钥序列产生器

图中 ki 、 xi 和 yi均为 1bit ,并按模 2 进行异或运算:

在发送端,密文比特 yi= Eki(xi)= xi ki在接收端,明文比特 xi= Dki(yi)= yi ki= (xi ki) ki 从上述算法可以看出,解密过程不像前面介绍过的方法:解密

是加密步骤的逆过程。在序列密码体制中,加密算法、加密密钥和解密算法以及解密密钥完全一样,或者说,解密过程是加密过程的重复。

严格的一次一密乱码本体制所需的密钥量不存在上限,极端情况下,密钥长度与待发送的信息长度一致,由于需要将密钥传给对方,且只使用一次,故很难实用化。目前常使用伪随机序列作为密钥序列。关键是序列的周期要足够长,且序列要有很好的随机性,满足这一要求的算法很难寻找。另一个缺点是一个比特的丢失会影响消息的正确解密。

7.2.4 分组密码另一种密码体制将明文划分成固定的 n 比特的数据组,然后

以组为单位,在密钥的控制下进行一系列的线性或非线性的变化而得到密文,称为分组密码(block cipher)。图 7-3 为分组密码体制的框图。分组密码一次变换一组数据。分组密码算法的一个重要特点就是:当给定一个密钥后,若明文分组相同,那么所变换出密文分组也相同。

图 7-3 分组密码体制加密算法 解密算法密钥密钥

长 明 文

固定长度明文分组

固定长度密文分组

分组加密算法存在如下攻击危险:1. 密文挪用攻击

例如,假设银行前台与结算中心数据库交换数据格式为

帐号名称 取款 / 存款: 0-取款。 1-存款

资金数额

其中每个数据项占用一个分组( 64bit),每次对一个分组进行加密传输。

假设攻击者预先侦听到如下密文:密文分组 c1 c2 c3 c4 c5 c6

明文含义 帐号 A 存入 1000元 帐号 B 取出 2000元

攻击者用自己的帐号 C取出 10000元,其明文及其对应的密文为

帐号 C 取款 10000元 C7 C8 C9

比较各个密文分组可知,密文 C8=C5 ,表示取款, C2 即为存款。攻击者只需以 C2替换 C8 ,解密后的明文为

帐号 C 存款 10000元

攻击者在银行存入 1元钱,将密文分组中对应的存款金额一栏进行任意更改,虽然攻击者在篡改时未必知道其值及含义,但一般而言,解密后的值都将超过 1元。

2. 篡改密文攻击

3. 分组重排攻击

攻击者用帐号 C 存入一笔钱(如 10元),若其收到一个密文序列对应明文 攻击者将密文分组重新排列为

c1 c2 c3 c4 c5 c6 c7 c8 c9

帐号 A 存款 1000 帐号 B 取款 200 帐号 C 存款 10

帐号 C 存款 1000 帐号 B 取款 200 帐号 A 存款 10

避免上述攻击危险的方法是采用密文分组链接技术,以克服各分组独立加密,对某一个分组的攻击可能影响整个报文合法性的问题。其基本思想是将当前要加密的分组与上一个分组加密后得到的密文异或后再进行加密,而解密时得到的结果与上一个密文分组异或即可获得明文。图 7-4显示了这一过程

P1 P2 P3 P4 P5

C1 C2 C3 C4 C5

+ + + + +

E E E E E

IV

图 7- 4 密文分组链接技术的实现过程图中 IV为初始向量(密钥)。上述过程可描述为:

加密: Ci=E(P1⊕IV) i=1

E(Pi⊕Ci - 1) i=2 , 3 ,﹍,n

解密: Pi=D(C1 ) ⊕IV i=1

D(Ci ) ⊕Ci - 1 i=2 , 3 ,﹍,n

密文分组链接技术的优点是:

⑴ 相同的明文分组加密后得到的密文分组不一样;

⑵ 任何一个密文分组都与前面的所有分组有联系,对任意一个密文分组的修改都将影响到其后的分组,便于进行攻击检测;

⑶ 无法对任意一个密文分组进行单独解密。

缺点是若有分组丢失,则其后的加密将是无效的。

7.2.5 数据加密标准 DES ( Data Encryption Standard ) 分组密码的一个重要优点是不需要同步,因而在分组交换网中有着广泛的用途。分组密码中最有名的就是由 IBM公司于 1970年作为试验加密系统开发的分组加密算法 DES , 1977年被美国国家标准局制订为国家标准。它被植入 VLSI芯片,在银行转账、自动柜员机、美国司法部、能源部、联邦储备银行等部门均有广泛应用。 DES将信息分解为 64 bit/块,其中每个字节占用 1bit 用于奇偶校验,实际加密信息为 56 bit/块,密钥长度也为 64 bit 。分别对每个块加密,最后得到 64比特的加密数据。基本思想描述如下:

1. DES 的基本操作 :将 64 bit 的数据块分为两半 ,左半即

记为 L, 右半记为 R。首先将 L和密钥K进行 f变换得到 fK(L), 然后用 fK(L)与 R异或,并将其替代 R。如图 7- 5 所示。

图 7- 5 DES基本操作

fK(L)

L R

L R⊕fK(L)

若原始数据块为 M ,密钥为 K,运算过程为 XR,即:

M=(L,R), M’= XRK(M)=(L’,R’) 则 L’= L, R’=R⊕fK(L)

相同的运算也可用于将数据块的右半部分经变换异或到左半部分。如图 7- 6所示,这个过程记为 XLK(M)。

2. DES 的基本结构 DES 算法的基本结构就是经过 16轮 XR和 XL交叉运算,实现

数据的充分混合,达到加密的目的。这一过程描述为:P→XR →XL →XR →XL →XR →XL →XR →XL →XR →XL →XR

→XL →XR →XL →XR →C其中 P 是数据块明文, C 是对应密文。每一步运算使用不同的

密钥,上一步的输出作为下一步的输入。

图 7- 6 XLK(M)操作

fK(R)

L R

L⊕fK(R) R

3. 密钥的产生 64 bit 的密钥除去奇偶校验位,实际长度为 56 bit 。在 16轮 DES基本运算中,每一轮使用不同的子密钥Ki ( i=1,2, …,16 ),通过密钥的循环移动产生新的密钥,每一轮所使用的子密钥是从 56 bit的密钥中挑选其中的 48 bit构成的,挑选过程从略。 4. f函数的运算过程 f函数用于将数据分组的一半( 32 bit)与 48 bit 的子密钥进行异或运算,为此需要将 32 bit 的数据扩展成 48 bit 。扩展的方法是将32 bit 数据首尾相连, 6 位一组,下一组的头两位与上一组的后两位相同,由此产生的 48 bit 数据中有 16 bit 是重复数据。如32 1 2 3 4 5 4 5 6 7 8 9 8 9 10 11 12 13 12 13 14 15 16 17 16 17 18 19 20 21 20 21 22 23 24 25 24 25 26 27 28 29 28 29 30 31 32 1 这一过程称为扩展置换。扩展置换后的数据再与 48 bit 的子密钥异或,然后将异或结果通过 S盒查表压缩成 32 bit 数据作为 f函数的输出结果, S box的实现原理从略。

DES 算法规定:数据在做 16轮运算之前,预先对数据块的左、右部分进行一次置换,称为初始置换( IP 置换),在完成运算输出前再做一次末置换( IP-1 置换)。

数据块的解密过程,即 XR的逆过程 XR-1 就是 XR,因为:若记 M’’=XRK(M’)=(L’’,R ’’),则有 L’’= L’=L R’’=R’⊕fk(L)=R⊕fk(L)⊕fk(L)=R这意味着 XR运算和 XR运算互相抵消。 同理可知 XLK( XLK(M))=M 。 图 7- 7为 DES 算法的加解密过程。

明文

IP 置换

L R

fki

fki+1 16轮

R L

IP-1 置换

密文

密文

IP 置换

L R

Fk17 -i

Fk17-i 16轮

L R

IP-1 置换

明文

图 7- 7 DES 算法的加解密过程

DES 算法的设计技巧主要体现在以下几个方面:

• 多次重复同一算法,使数据与密钥充分混合,且采用“左右互博”的结构,保证了算法的可逆性

• 混淆和扩展原理使输入的每一 bit都将对两个替换操作产生影响,从而使得输出对输入的依赖性更快传播,这种机制称为“雪崩效应”,这是衡量一个密码学替换是否为一个好的替换的重要指标

• 算法设计采用分组链接技术,使得明文和密文之间具有统计独立性(即相同的明文,加密后的密文不相同),以保证攻击者不能通过统计特性破解算法。

DES 算法的设计原理(尤其是 S box )始终未予公开。其主要缺陷是 56 bit 的密钥远远不能满足现实需要,其安全性能不能简单地下一个定性的结论( 256 ≈ 7.2×1016 个可能的密钥)。

1999年美国政府颁布了新的 DES 标准— 3DES ,即 3倍 DES 算法。

3DES 算法的基本原理是使用两个密钥K1 和 K2 ,对数据进行两次加密和一次解密。图 7- 8显示了 3DES 的加密过程。

明文 密文用 K1 加密 用 K2解密 用 K1 加密

图 7- 8 3DES 加密原理

通过这种组合得到的 3DES 算法的密钥长度为 112 bit ,基本能够满足需要

除此之外,还有其他的一些对称密钥算法,最常见的有:

• 国际数据加密算法 IDEA( International Data Encryption Algorithm):类似于DES 加密算法,密钥长度为 128 bit ,分组长度为 64 bit ,通过连续 8轮迭代和一个输出变换实现加密。特点是易于通过硬件或软件实现(而DES难以用软件实现);运算速度是 DES算法的 2倍;无法通过穷举法实施攻击。但因专利问题未能广泛使用。• 高级加密标准算法 AES(Advanced Encryption Sdandar

d) :分组长度为 128 bit ,密钥长度可以是 128 bit 、 192 bit 或 256 bit ,分别称为 AES-128 、 AES-192 和 AES-256。 AES 的数学原理是基于椭圆曲线上的点的运算,是一种高强度的免费加密算法。• RC4算法:属于序列密码算法,通过伪随机数生成器产生长度

为 1 byte至 256 byte 的密钥序列,初始密钥经计算得出,其后生成的随机序列的每一字节的状态均发生变化。在使用 RC4 时通常抛弃随机序列最初的一些字节,以保证算法的安全性。

7.3 非对称密钥密码体制

7.3.1 公开密钥密码体制的特点非对称密码体制又称公钥密码体制或双钥密码体制,其特点是使

用不同的加密密钥与解密密钥,是一种不能由己知加密密钥推导出解密密钥的密码体制,即解密密钥是加密密钥的一个单向陷门函数,这一特点在数学上描述为:

若函数 f是单向陷门,则 f 满足:⑴给定定义域内的任意 x,计算 y=f(x)是容易的;⑵给定 y,计算 x,使 x=f-1(y)在计算上是不可行的;⑶存在某个 δ,当它已知时,对任何给定的 y,若相应的 x存

在,则计算 x,使 y=f(x)是容易的。满足前两项条件的函数 f(x) 称为单向函数,第⑶个条件称为陷门

性, δ称为陷门信息。

当用陷门函数 f作为加密函数时可将 f公开,这相当于公开加密密钥,此时加密密钥称为公钥,记为 PK, δ作为设计者个人使用的解密密钥,称为私钥,记为 SK。由于加密函数和加密密钥是公开的,任何人都可以利用它将明文 x加密成 y=f(x)在网上传输,密文 y只能由持有私钥 SK的设计者容易地解出 x=f-1(y)。

加密模型如图 7- 9所示。

非对称密码体制的产生主要是因为两个方面的原因,一是由于常规密钥密码体制的密钥分配 (distrilbution)问题,另一个是由于对数字签名的需求。

明文 x 明文 xB的公钥 P

KB的私钥 S

K加密算法 E 解密算法 D

y=EPK(x)

图 7- 9 非对称密码体制的加密模型

发送方 A 接收方 B

在对称密码体制中,密钥的产生、管理、更新和分配是安全体系中最薄弱的部分。此外,当多个用户对一个用户进行加密通信时,需要多对不同的密钥,这进一步增加了密钥管理的难度。与之相比,非对称密码具有如下特点:⑴ 它使用单向陷门函数,而不是简单的替代、置换算法,增

加了破解难度;⑵ 它使用相互分离的两个密钥,提高了密钥分配的可靠性;

图 7- 10显示了两种密码体制的密钥分配模型。

明文 x 明文 x 明文 x 明文 xE加密算法

D加密算法

密文 Ek(x)

密钥源

加密密钥K

安全通道

发送端 接收端

E加密算法

D加密算法

y=EPk(x)

密钥对产生源

私钥 SK

公钥 PK

发送端 接收端

图 7- 10 两种密码体制的密钥分配模型

⑶ 在多对一加密传输时,无需增加密钥对;⑷ 适用于数字签名、鉴别、防抵赖等认证系统的应用;认证模

型如图 7- 11所示。

⑸ 加密运算 E ( Encryption)与解密运算 D( Dicryption)可以对调;即: DSK(EPK(x))=EPK(DSK(x))=x⑹加密密钥是公开的,但不能用于解密。即: DPK(EPK))≠x虽然非对称密码体制有很多优点,且具有广泛用途,但从抗击

密码分析的角度来说,它并不比对称密码体制更具优越性,也不能取代后者。

明文 明文密文A加密

B解密

A的私钥

A的公钥

发送方A

接收方B

图 7- 11 认证模型

7.3.2 RSA 公开密钥密码体制RSA公开密钥密码体制是由 Receive 、 Shamir 、 Adelma

n于 1978年提出的一种可逆的非对称密码体制,其算法的数学基础是数论中的费马定理和欧拉定理 ,并建立在数论中关于分解两个大素数的乘积极其困难的结论之上。

在 RSA体制中,每个用户使用两个密钥:加密密钥 PK={e ,n} 和解密密钥 SK= {d, n}。用户把加密密钥 e公开,使得系统中的任何其他用户都可以使用,而对解密密钥中的 d则保密。这里, n 为两个大素数 p和 q的乘积 (素数 p和 q一般为100位以上的十进数 ), e 和 d 满足一定的关系。即便已知 e和 n ,但仍不能求出 d,从而达到加密的目的。1、加密算法假设整数 X 表示明文,用整数 Y 表示密文( X和 Y均小于

n),则加密和解密运算分别为:

加密运算为: Y = Xe mod n ( 7-1 )解密运算为: X = Yd mod n ( 7-2)为什么由( 7- 1 )式产生的密文 Y可通过( 7- 2)式使明

文还原?为此需要证明:Yd mod n=(Xe mod n)d mod n=x ( 7-3)由模运算法则: [(a mod n)×(b mod n)]mod n=(a×b)mod n知: (Xe mod n)d mod n=[(xe)d mod n]mod n=xed mod n设 p、 q均为素数, n=pq,计算 n 的欧拉函数: φ(n)=(p-1)×(q-1) 它表示不超过 n并与 n互素的数的个数,当 ed<φ(n) 时,根据

数论中的有关结论有: xed mod n=x(ed mod φ(n)) mod n由欧拉定理知: ed mod φ(n)=1 ( 7- 4 )∴ xed mod n=x(ed mod φ(n)) mod n=x mod n=x( 7- 3)式得证,即( 7-2)式成立,这正是我们需要的结

论。

2 、密钥的产生现在讨论 RSA算法中每个参数如何选择和计算:① 计算 n :用户秘密地选择两个大素数 p和 q,计算出 n= p

×q② 计算 φ(n): φ(n)=(p-1)×(q-1) ③ 选择 e :用户从 [0 , φ(n)-1]中选择一个与 φ(n)互素的数 e

作为公开的加密指数。④ 计算 d:用户计算出满足( 7- 5)式的 d e×d= 1 mod φ(n) (7-5) ( 7- 5)式称为欧拉公式,它等价于 e×d- 1= 0 mod φ(n) (7-6) ( 7-6 )式意味着 e×d- 1可被 φ(n) 整除, d即为解密指数。⑤ 得出所需要的公开密钥和秘密密钥: 公开密钥 (即加密密钥 ) PK= {e , n} 秘密密钥 (即解密密钥 ) SK= {d, n}

例:设选择了两个素数 p= 7, q= 17 (这里仅就原理进行说明,没有选取大于 100位的素数)。

计算出 n= p×q= 7×17= 119。计算出 φ(n)=(P-1)×(q-1)= 6×16=96。 从 [0 , 95]中选择一个与 96互素的数 e 。我们选 e=

5 。然后根据 (7-6)式,有:5×d-1= 0 mod 96解出 d= 77由此可得:公开密钥 PK={ 5 , 119}秘密密钥 SK={ 77, 119}。

下面对明文进行加密。已知 n=119, e=5 , d=77,首先将明文划分为一个个分组,使得每个明文分组的二进制值不超过 n ,即不超过 119。现在设明文 x= 19。

用公开密钥加密时,先计算 Xe=195=2476099。再计算 Y=Xe mod n ,即以 2476099 除以 119,得出商

为 20807,余数为 66。这就是对应于明文 19的密文 Y的值。在用秘密密钥 SK={77, 119}进行解密时,先计算 Yd=

6677= 1.27…×10140 。再除以 119,得出商为 1.06…×10138 ,余数为 19。此余数即解密后应得出的明文 X。若选p和 q为大于 100位十进制数,则 n 为大于 200位

十进制数或大于 664位二进制数。这样就可一次对 83 个字符(每字符 8 bit编码)进行加密。

7.4 报文鉴别

在信息的安全领域中,对付被动攻击的重要措施是加密,而对付主动攻击中的篡改和伪造则要用报文鉴别 (message authentication)的方法。报文鉴别是使接收方能够验证所收到的报文(包括发送者和报文内容、发送时间、序列等)的真伪的过程。

使用加密可以达到报文鉴别的目的。但在网络的应用中,许多报文并不需要加密。例如,通知网络上所有的用户有关网络的一些情况。对于不需要加密的报文进行加密和解密,会使计算机增加很多不必要的负担。报文鉴别在传送明文时应使接收者能用很简单的方法鉴别报文的真伪。

近年来,广泛使用报文摘要 MD(Message Digest)来进行报文鉴别。发送端将可变长度的报文m经过报文摘要算法运算后得出固定长度的报文摘要 H(m)。然后对 H(m)进行加密,得出 EK(H(m)),井将其追加在报文m后

面发送出去。接收端将 EK(H(m)) 解密还原为 H(m),再将

收到的报文进行报文摘要运算,看得出的是否为此 H(m)。如不一样,则可断定收到的报文不是发送端产生的。报文摘要的优点是:仅对短的定长报文摘要 H(m)进行加密比对整个长报文m进行加密简单,但对鉴别报文m来说,效果是一样的。也就是说,m和 EK(H(m))合在一起是不

可伪造的,是可检验的和不可抵赖的。

要做到不可伪造,报文摘要算法必须满足以下两个条件:(1) 任给一个报文摘要值 x,若想找到一个报文 y使得 H(y)=x,

则在计算上是不可行的。 即不能从一个已知摘要推导出报文。(2) 若想找到任意两个报文 x和 y,使得 H(x)= H(y),则在计

算上是不可行的。即不同的报文不能得到相同的摘要。上述的两个条件表明:若 (m, H(m))是发送者产生的报文和

报文摘要对,则攻击者不可能伪造出另一个报文 y,使得 y与 x具有同样的报文摘要。发送者可以对 H(m)进行数字签名,使报文成为可检验的和不可抵赖的。报文经过散列函数运算可以看成是没有密钥的加密运算。在接

收端不需要(也无法)将报文摘要解密还原为明文报文。满足上述条件的散列函数称为单向散列函数( one-way hash function)或数字指纹、密码校验和等,它是现代密码学的核心。

报文摘要算法的一种改进算法 MD5 具有广泛的应用。它可对任意长的报文进行运算,然后得出 128 bit 的 MD报文摘要代码。MD5 的算法大致的过程如下:(1) 先将任意长的报文按模 264 计算其余数( 64 bit)追加在

报文的后面。即最后得出的 MD代码已包含了报文长度的信息。(2) 在报文和余数之间填充 0—511 bit ,使得填充后的总长度

是 512 的整数倍。填充比特的首位是 1,后面都是 0 。(3) 将追加和填充后的报文分割为一个个 512 bit 的数据块,

512 bit 的报文数据分成 4个 128 bit 的数据块依次送到不同的散列函数进行 4轮计算。每一轮又都按 32 bit 的小数据块进行复杂的运算。一直到最后计算出MD5报文摘要代码。这样得出的 MD5代码中的每一个比特,都与原来报文中的每

一个比特有关。 MD5已在因特网上大量使用。

7.5 数字签名

数字签名是为了解决电文传送者的真实性和可靠性所采用的一种数字技术手段。数字签名必须保证以下三点: ① 接收者能够核实发送者对报文的签名; ② 发送者事后不能抵赖对报文的签名; ③ 接收者不能伪造对报文的签名。 现在已有多种实现各种数字签名的方法。但采用公开密钥算法要比采用常规密钥算法更容易实现。发送者 A用秘密密钥 SKA对报文 X进行签名运算,将结果DSKA(X)传送给接收者 B。 B用已知的 A的公开密钥 PKA进行解密,得出 EPKA(DSKA(X))= X。因为解密密钥 PKA为 A独有,所以除A外没有别人能产生密文DSKA(X),这样, B就相信报文 X是 A签名发送的,如图 7-12 所示。

发送者 A用私钥 SK对明文 X进行加密,称为数字签名,然后将签名后的报文DKS(X)传送给接收者 B, B用已知的 A的公钥PK进行解密运算,使报文还原,称签名核实。若A要抵赖曾发送报文给 B, B可将 X及 DSKA(X) 向第三者出示,第三者利用 PKA可以很容易地证实A确实向B发送过报文 X。反之,若B将 X伪造成 X’,则发送者也可以通过 DSKA(X’)≠X对原文 X进行鉴别。

在实际应用中,经常将报文摘要与数字签名配合使用,这样可以高效实现对传送消息及发送人的认证。其工作原理如图 7-13所示。

DD EEX EPK(DSK(X))=

XDSK(X)

SK用私钥进行签名

PK用公钥核实签名 图 7-12 数字签名的实现

发送者A

接收者B

① 发送方对要发送的信息生成信息摘要; ② 发送方使用秘密密钥对摘要进行数字签名; ③ 发送方将信息连同签名后的摘要一起发送给接收方; ④ 接收方根据收到的信息重构信息摘要; ⑤ 使用公钥对接收到的经过签名的摘要进行解密; ⑥ 将解密后的摘要与重新生成的摘要进行比较,以判断信息在传送过程中是否被篡改。

图 7-13 数字签名工作原理

单向散列函数

生成摘要

发送方私钥

信息摘要 加密过程明文

信息摘要

明文发送方 明文

信息摘要

信息摘要

单向散列函数

生成摘要信息摘要

解密过程

公开密钥

比较身份认证

接收方

上述过程仅对报文进行了签名,对报文 X本身并未加密。若采用图 7-14所示的方法,则可同时实现秘密通信和数字签名。图中 ASK 和 BSK 分别为 A和 B的秘密密钥,而APK 和 BPK

分别为 A和 B的公开密钥。这一过程称为数字信封。

DD EEX XEBPK (DASK

(X))

ASK用 A的私钥签名

BPK用 B的公钥

加密

DD

BSK用 B的私钥解密

EEDSKA(X)

APK用 A的公钥

核实签名

发送者 A 接收者 B

图 7-14 具有保密性的数字签名

DASK

(X)

7.6 密钥分配

由于密码算法是公开的,网络的安全性就完全基于密钥的安全保护上。因此在密码学中出现了一个重要的分支——密钥管理。密钥管理包括:密钥的产生、分配、注入、验证和使用,属于公钥基础设施 PKI( Public Key Infrastructure)应用范畴。本节只讨论密钥的分配。

密钥分配是密钥管理中最大的问题。密钥必须通过最安全的通路进行分配。例如,可以派非常可靠的信使携带密钥分配给互相通信的各用户。这种方法称为网外分配方式。但随着用户的增多和通信量的增大,密钥更换频繁(密钥必须定期更换才能做到可靠),派信使的办法将不再适用。这时应采用网内分配方式,即对密钥自动分配。常见的密钥分配方法有:

一、 Sharmir 密钥共享基本思想是:由 k个人分别持有密钥的一部分,仅当 k

个人均出示各自所持部分时,密钥才能唯一确定。为了实现密钥的安全共享,必须保证即使 k-1个人联合起来也无法破解密钥。为此, Sharmir 提出了一种通过 n维空间中点的表述方法,这是一种基于拉格朗日多项式插值的巧妙方法:假设密钥是 k维空间上的一个点,将这个点在 k个坐标轴上映射的值作为 k个子密钥。根据这 k个子密钥可以计算出坐标点,而缺少任何一个坐标值都无法得到坐标点——密钥。

更一般地, Sharmir 算法把密钥看成是 k维空间的一条曲线,增加了密钥破解的难度。

密钥共享的思想在具体实现方案中,还有基于映射几何、线性代数、孙子定理等多种解决方案。

二、 Diffie-Hellman 密钥交换Diffie-Hellman 密钥交换算法是由 W.Diffie 和 M.Hellma

n于 1976年提出的第一个公钥密码算法,其目的是使不同的用户对之间能够安全地交换密钥,以获得一个共享的会话密钥。算法本身不能用于加、解密。

算法的基本思想是:发送方和接收方各自独立秘密地选择一个数,如 x和 y,并公开确定两个充分大的数,如 g和 n ;利用公开的数和秘密选定的数,分别通过一个函数求出不同的函数值,并相互交换;双方使用交换得到的函数值经再一次计算得出相同的密钥。即使第三方获取了公开的 g、 n以及相互交换的函数值,仍不能求出密钥。算法的安全性正是建立在求离散对数的困难性上。

例如,假设在加密密钥计算过程中, A、 B双方共同使用两个整数 g 和 n 。首先, A选择一个整数 x,计算 gx mod n 发送给对方 B。类似的, B独立地选择一个整数 y,并将 gy mod n 的计算结果发送给 A。 A在收到 B送来的值后求出

k1= (gy mod n)x mod n = gyx mod n同理, B依据 A送来的值计算出 k2= (gX mod n)Y mod n = gxy mod n根据模运算的性质可知, gyx mod n = gxy mod n ,即:k1= k2 = k, A、 B双方以 k作为加密 /解密密钥。当 g 和 n 的选取足够大时(不小于 100 个比特),即使

窃听者知道了 g、 n 、 gy mod n 、 gX mod n 的值,也很难推导出密钥 k。Diffie-hellman 密钥交换过程如图 7-15 所示

Diffie-hellman 密钥算法适用于对称加密过程。这种方法虽然不能轻易破译密钥 k,但易受入侵者密码替换攻击,达到截获信息的目的。

发送 g X mod n

发送 g y mod n

A选择 x 并保密

计算 k= g yx mod n

B选择 y 并保密

计算 k= g xy mod n 第三方即使知道 g、 n 、

g X mod n 、 g y mod n ,仍不能轻易得到 k

?

图 7-15 Diffie-hellman 密钥交换过程

三、密钥托管常用的密钥托管技术是由政府或相关技术部门设立密钥分配中

心 KDC(Key Distribution Center),通过 KDC 来产生和分配密钥。图 7-16为一种对常规密钥进行分配的方法,我们假定用户 A和B都是 KDC 的注册用户,他们分别拥有与 KDC 通信的密钥KA-KDC 和KB-KDC 。

用户 A 用户 B 用户专用主密钥文件

KB-KDCB

KA-KDCA

主密钥用户KA-KDC(A, B)

KA-KDC(R1 , KB-KDC(A, R1))

KB-KDC(A, R1)

A和 B用密钥 R1 进行通信

图 7-16 常规密钥分配协议

KDC

密钥分配可分为三个步骤:⑴ 用户 A向 KDC 发送用自己的密钥 KA-KDC 加密的报文KA-KDC

(A, B),说明想和用户 B通信。⑵ KDC 用随机数产生一个密钥 R1 供 A和 B这次的通信使用,

然后向A发送回答报文,此报文用 A自己的密钥KA-KDC 加密,报文中有密钥 R1 和请 A转给 B的报文KB-KDC ,被转交的报文是用 B自己的密钥加密的,因此A无法知道报文内容。

⑶ 当B收到 A转来的报文KB-KDC(A, R1) 后,就知道A要和他通信,同时也知道应当使用的密钥 R1 。此后, A和 B就可使用密钥 R1 进行这次通信了。

KDC 可在报文中加入时间戳,以防止报文的截取者利用以前已记录下的报文进行重放攻击。密钥 R1 是一次性的,因此保密性较高。而KDC 分配给用户的密钥,如 KA-KDC 和 KB-KDC ,都应定期更换以减少攻击者破译密钥的机会。

7.7 链路加密与端到端加密

从网络传输的角度看,通常有两种不同的加密策略,即链路加密与端到端加密。本节将分别进行讨论。7.7.1 链路加密 在采用链路加密的网络中,每条通信链路上的加密是独立实现的。通常对每条链路使用不同的加密密钥。如图 7-11所示。

明文 X

E1

明文 X

DK

E1(X)

链路1

E2(X)

链路2

En(X)

链路n

用户 A 结点 1 结点 2 用户 B

密文

图 7-11 链路加密

E2D1 E3D2

明文 X 明文 XE3(X)

密文 密文 密文

链路加密通常采用序列密码。由于 PDU中的协议控制信息和数据都被加密,这就掩盖了源结点和目的结点的地址。若在结点间保持连续的密文序列,则 PDU的频度和长度也能得到掩盖,这样就能防止各种形式的通信量分析。由于不需要传送额外的数据,采用这种技术不会减少网络的有效带宽。由于只要求相邻结点之间具有相同的密钥,因而密钥管理易于实现。链路加密的功能是由通信子网提供的,因而对用户来说是透明的。

由于报文是以明文形式在各结点内加密的,所以结点本身必须是安全的。链路加密的最大缺点是在中间结点都暴露了信息的内容。在网络互连的情况下,仅采用链路加密是不能实现通信安全的。此外,链路加密也不适用于广播网络,因为它的通信子网没有明确的链路存在。若将整个 PDU加密将造成无法确定接收者和发送者。由于上述原因,除非采取其他措施,否则在网络环境中链路加密将受到很大的限制,只适用于局部数据的保护。

7.6.2 端到端加密

明文 X

E

明文 X

DE (X)

链路1

E(X)

链路2

E(X)

链路n

结点 0 结点 1 结点 2 结点 n

端到端链路传送的都是密文

图 7-12 端到端加密

端到端加密是在源结点和目的结点中对传送的 PDU进行加密和解密,其过程如图 7-12 所示。可以看出,报文的安全性不会因中间结点的不可靠而受到影响。

端到端加密应在传输层或其以上各层来实现。若选择在传输层进行加密,可以使安全措施对用户来说是透明的。这样可不必为每一个用户提供单独的安全保护,但容易遭受传输层以上的攻击。当选择在应用层实现加密时,用户可根据自己的特殊要求来选择不同的加密算法,而不会影响其他用户。这样,端到端加密更容易适合不同用户的要求。端到端加密不仅适用于互连网环境,而且同样也适用于广播网。

在端到端加密的情况下, PDU的控制信息部分(如源结点地址、目的结点地址、路由信息等)不能被加密,否则中间结点就不能正确选择路由。这就使得这种方法易于受到通信量分析的攻击。

为了获得更好的安全性,可将链路加密与端到端加密结合起来使用。链路加密对 PDU的目的地址进行加密,而端到端加密则提供了对端到端的数据保护。

7.7 防火墙7.7.1 概述防火墙是从内联网( intranet)的角度来解决网络的安

全问题,内联网是一种使用因特网技术建立的企事业内部的因特网。这里所说的因特网基本技术主要是指:采用因特网使用的 TCP/IP 协议和万维网界面。其优点是:建造的费用较低;人机接口界面很好,易于使用;连通性和兼容性好。

内联网通常采用一定的安全措施与企业或机构外部的因特网用户相隔离,这个安全措施就是防火墙( firewall)。

防火墙是一种由软件、硬件构成的系统,用来在两个网络之间实施接入控制策略。这个接入控制策略是由使用防火墙的单位自行制定的。一般将防火墙内的网络称为“可信赖的网络” ,而将外部的因特网称为“不可信赖的网络”。

防火墙技术一般分为下述两类。( 1)网络级防火墙:主要用于防止整个网络出现外来非法的

入侵。属于这类的有分组过滤和授权服务器。前者检查所有流入本网络的信息,然后拒绝不符合事先制定好的一套准则的数据,而后者则是检查用户的登录是否合法。( 2)应用级防火墙:从应用程序来进行接入控制。通常使用

应用网关或代理服务( Proxy server)来区分各种应用。例如,可以只允许通过访问万维网的应用,而阻止 FTP 应用的通过。

好的分组好的分组

坏的分组坏的分组

好的分组好的分组

坏的分组坏的分组丢弃

防火墙

不可信赖网络

可信赖网络

为了防止内网信息泄露,防火墙的访问控制策略有两种方式:阻止和允许。“阻止”就是阻止某种类型的通信量通过防火墙(从外部网络到内部网络,或反之)。“允许”的功能与“阻止”恰好相反, “阻止”和“允许” 是通过防火墙的分组过滤(packet filtering )功能实现的。

例如,下面是某系统制定的 “允许”穿越防火墙的部分策略:

允许任何目的端口号为 23 的 TCP 分组流入。即允许任何用户使用 Telnet 远程登录本系统。

允许目的地址在防火墙允许列表中的分组通过 23号端口访问本系统。即允许任何用户对本系统的特定主机远程访问。

允许源地址在防火墙允许列表中的分组通过 23号端口访问本系统。即允许特定用户对本系统的任意主机远程访问。

允许目的地址在防火墙允许列表中的分组流出。即允许本系统任何用户访问系统外的特定主机。

下面为某系统制定的“阻止”分组穿越防火墙的部分策略:

阻止所有目的端口号为 23 的 TCP 分组流入。即禁止任何用户使用 Telnet 访问本系统。

阻止所有源地址在防火墙列表中的分组流入。这样的配置主要用于防止“不良站点”的入侵。

阻止所有目的地址在防火墙列表中的分组流入。这是为了防止系统内的一些重要站点被入侵。

阻止任何源地址、目的地址在防火墙列表中的分组流入及流出。这样配置的网络具有严格的封闭性。

防火墙的“分组过滤”功能主要工作在第三层(网络层),通过路由器的配置实现。它通过“地址 / 端口 / 协议类型 /序列号”等内容的筛选实现低层的防护策略。

分组过滤对于用户来说具有如下优点: 保护整个网络,减少暴露的风险;对用户完全透明,不需要对客户端作任何改动; 不需要对用户作任何培训;很多路由器可以作为包过滤器,不需要专门添加设备。

分组过滤的主要缺点表现在:配置分组过滤规则比较困难;对过滤规则配置的测试很麻烦;分组过滤规则具有局限性;只能对包头中的有限信息进行过滤。图 7-13给出了分组过滤的基本原理。

应用层应用层

网络层网络层

数据链路层数据链路层

物理层物理层

……

应用层应用层

网络层网络层

数据链路层数据链路层

物理层物理层

……应用层应用层

网络层网络层

数据链路层数据链路层

物理层物理层

……

决定哪个分组通过

决定哪个分组通过

图 7- 13 分组过滤器的工作原理

分组过滤对于某些特定的应用不提供灵活性。例如,在网络中文件存储管理的站点经常性的一种服务是:通过文件传输协议 FTP( 21号端口)来下载文件,但考虑到网络的安全性,必须禁止内部用户使用 FTP上传文件。分组过滤只能简单地“允许”或者“拒绝”所有的 FTP 请求。解决的办法是通过具有更强逻辑性的高层应用来处理,这种防火墙称为应用网关(又称代理服务器),其工作原理如图 7-14所示。

应用层应用层

网络层网络层数据链路层数据链路层物理层物理层

……

应用层应用层

网络层网络层数据链路层数据链路层物理层物理层

……应用层应用层

网络层网络层数据链路层数据链路层物理层物理层

……连接 连接

决定哪个应用程序通过

决定哪个应用程序通过

图 7-14 应用网关原理

应用网关通过专用服务器运行特殊的应用程序来实现,这个专用服务器又被称为堡垒机。

应用网关采用 C/S工作模式,它将客户端与服务器的连接分为两个不同的连接:当防火墙与客户端通信时,应用网关扮演服务器的角色;而与服务器通信时又作为客户端。

应用网关监测所有流入 /流出的应用请求,对截获的传输请求进行分析,并依据防火墙策略放行或拒绝它们。

例如,对于前述相同的 FTP 请求,可以采用这样的网关策略:首先对截获的客户请求进行分析,如果客户发送 get 请求(即下载请求),则允许该请求帧通过防火墙;而如果客户请求为 put(即上传请求),则拒绝该请求帧穿越防火墙。

应用层网关的主要优点是:支持可靠的用户认证并提供详细的注册信息;用于应用层的过滤规则比分组过滤规则更容易配置和测试;过滤策略具有更大的灵活性;隐藏内部拓扑结构细节及 IP 地址;通过对互联网的代理服务可以解决 IP 地址不足的矛盾;内部不合法的 IP 通过代理可以访问互联网。

应用网关的缺点也是比较明显的:由于代理服务器一般只具有解释应用层命令的功能,即只能提供某一种服务的有限的连接,所以其能够提供的服务和可伸缩性有限;应用网关防火墙会造成明显的网络性能下降;每个应用程序都必须有一个代理服务程序来进行安全控制,当应用升级或改变时,一般代理服务程序也须随之改变;此外,代理不能有效检查底层的信息,传统的代理也很少是透明的。

结合分组过滤和应用网关的优缺点,现在常见的防火墙一般都将二者配合搭建。

7.7.2 防火墙的主要优缺点1. 主要优点:( 1)通过过滤不安全的服务来降低风险,如禁止利用联机

访问的网络文件系统 NFS 协议进出内网;同时可以保护网络免受基于路由的攻击,如 IP选项中的源路由攻击等。( 2)控制对主机系统的访问。例如通过对防火墙的配置,

实现外网只能有选择地对内网的部分主机或服务器的有限访问。( 3)监控和审计网络访问。防火墙通过日志记录下所有经

由防火墙的访问信息,并提供统计、报警服务。( 4)防止内部信息外泄。通过利用防火墙对内网的划分,

实现内网重点网段的隔离;限制重点及敏感网络对外部网络的暴露程度;隐蔽可能泄漏内部细节的服务。( 5)部署 NAT 机制。利用防火墙的网络地址翻译NAT(Net

work Address Translation)技术,隐藏内网拓扑结构;拒绝非法数据包对内网的访问,并可节约 IP 资源。

2. 主要弱点:( 1)不能防范来自内部网络的攻击。( 2)不能防范不经由防火墙的攻击。( 3)不能防范感染了病毒的软件或文件的传输。( 4)不能防范数据驱动式攻击。( 5)不能防范利用标准网络协议中的漏洞进行攻击。( 6)不能防范新的侵袭手段的攻击。( 7)限制了网络服务。

7.7.3 防火墙的基本结构1. 屏蔽路由器防火墙 屏蔽路由器是防火墙最基本的构件,它可以由专门的路由器实

现,也可以用主机实现。路由器上安装基于 IP 层的报文过滤软件,实现报文过滤功能。

Internet

内部网络

屏蔽路由器依据策略决定转发 /阻止数据包

图 7-17 屏蔽路由器

单纯由屏蔽路由器构成的防火墙的主要缺点是:不能对高层攻击进行隔离;不具有日志维护能力;难于发现被控制的路由器。

2. 双宿主机防火墙以一台装有两块网卡的堡垒主机做防火墙,两块网卡分别与

受保护网和外部网相连,堡垒主机上运行防火墙软件。如图 7-18所示。

Internet

内部网络

双宿主机图 7-18 双宿主机结构

双宿主机防火墙支持系统日志、日志备份、远程日志等功能,具有高层攻击的防御能力;但如果堡垒机被攻击,使其只具有路由功能,则内网可以被自由访问。

3. 屏蔽主机防火墙屏蔽主机防火墙以易于实现、安全性高、造价低而被广泛

应用。它由一个与外网连接的分组过滤路由器和一个安装在内网上的堡垒主机构成防火墙。路由器上设立过滤规则,并使堡垒机成为外网唯一可以直达的主机,以确保内网不被未授权的外部用户访问。图 7-19给出了屏蔽主机防火墙的逻辑构成。

Internet

内部网络

包过滤路由器

图 7-19 屏蔽主机防火墙的逻辑结构

堡垒主机(应用网关)

这种结构的防火墙可以在协议高层和低层提供对内网的保护。重点是防止攻击者登录到堡垒机上。

4. 屏蔽子网防火墙这种结构是在内网与外网之间建立一个被隔离的子网,用两个

分组过滤路由器将其与内、外网分开,子网称为屏蔽子网或非军事区(DMZ)。逻辑结构如图 7-20 所示。

这种结构包括两个分组过滤路由器和一个应用网关。这两个路由器中的一个专门检查进入内联网的分组,而另一个则检查出去的。使用两个局域网的原因就是使穿过防火墙的各种分组必须经过分组过滤路由器和应用网关的检查。

内部路由器

外部路由器DMZ

内部网络

图 7-20 屏蔽子网防火墙结构

堡垒主机(应用网关)

Internet

5. 其他防火墙结构( 1)一个堡垒机和一个非军事区结构堡垒机采用双宿主机技术,分别与内网和 DMZ连接。入侵

者只有穿越分组过滤路由器和堡垒机才能进入内网。

非军事区上不连接其他站点,可以通过点到点连接代替。采用两个子网的目的在于增加企图通过地址分析来获取连接的难度,提高防火墙的安全性。当然,这也增加了内外网间合法传输的时延。

Internet

内部网络双宿主机

图 7-21 一个双宿主机和一个非军事区结构

DMZ

外部路由器

( 2 )两个堡垒机和两个非军事区这种结构使用两台双宿主堡垒机,将网络划分成 4个部分:内

部网络、外部网络、内部非军事区和外部非军事区。如图 7-22 所示。

过滤路由器和外部堡垒机是外部DMZ上仅有的网络接口。主要承担外部入侵的分组过滤和高层网关的检测,隐藏内部网络的细节;内部堡垒机作为内部网关的主要任务则是防止内网敏感部位的暴露和信息外泄。

Internet

内部网络

外部堡垒机

图 7-22 两堡垒机和两个非军事区结构

外部DMZ

外部路由器

内部DMZ

内部堡垒机

( 3 )两个堡垒机和一个非军事区使用两台具有单一网络接口的堡垒机,加上一个内部过滤路由

器作为阻塞器,内部路由器位于DMZ和内网之间。如图 7-23 所示。

这种结构的安全防护原理与屏蔽主机结构类似,但因采用双重保护措施,所以内部网络的安全性更高。

Internet

内部网络

图 7-23 两个堡垒主机和一个非军事区结构

DMZ

外部路由器

内部路由器

外部堡垒主机

内部堡垒主机

7.7.4 攻击防火墙的主要手段

1. IP 地址欺骗突破防火墙系统最常用的方法是 IP 地址欺骗,它同时也是

其他一系列攻击方法的基础。入侵者利用伪造的 IP 发送地址产生虚假的数据包,伪装成来自内部站分组。这种类型的攻击是非常危险的。只要系统发现发送地址在合法的范围之内,则它就把该分组按内部通信对待并让其通过。

2. TCP 序号攻击TCP序号攻击是绕过基于分组过滤方法的防火墙系统的最有

效但最危险的方法之一。利用互联网协议中的这种安全漏洞,可以使那些访问管理依赖于分析 IP 地址的安全系统上当。这种攻击基于在建立 TCP 连接时使用的三次握手序列号( three-step handshake seqence)实现对安全系统的入侵。

3. IP 分段攻击通常采用将数据分组分段的办法来支持网络给定的最大 IP

分组长度。因为只有第一个分段标有 TCP 端口号和分段顺序信息,而没有 TCP 端口号的分段是不能被滤除的。除了 IP头之外,每个分组包含一个 ID号和分组偏移量,用来清楚地识别各分段及其顺序。利用这一点,攻击者把它们的路由判决建立在 TCP端口号的基础上,如果第一个分组没有分段顺序,则目标站抛弃到达的任何另外的分组分段,黑客通过修改 TCP 来绕过防火墙系统。

4. 基于附加信息的改击基于附加信息的攻击是一种较先进的攻击方法,它使用端口

80( HTTP 端口)传送内部信息给攻击者,这种攻击完全可以通过防火墙,因为防火墙允许 HTTP 通过且又没有一套完整的安全办法确定 HTTP报文和非 HTTP报文之间的差异。目前已有黑客利用这种攻击对付防火墙技术,但还不是很广泛。

5. 基于堡垒主机 Web 服务器的攻击黑客利用堡垒主机 Web服务器,通过 URL和超文本链接

技术,避开防火墙内外部路由器的作用。它也可用于发动针对下一层保护的攻击,观察或破坏防火墙网络内的网络通信量,或者在防火墙只有一个路由器的情况下完全绕过防火墙。这种攻击防火墙的技术已被广泛应用并证明有效。

6. IP 隧道攻击IP隧道攻击即在端口 80( HTTP)发送能产生穿过防火墙

的 IP隧道的程序。如果人们利用互联网加载程序(例如经过互联网加载实时音频网关),则可能引入产生 IP隧道的特洛伊木马,造成在互联网和内部网之间的无限制的 IP 访问。 IP隧道攻击是黑客在实际攻击中已经实现的一种防火墙攻击技术。

7. 计算机病毒攻击计算机病毒是一种把自身复制为更大的程序并加以改变的代

码段。它只是在程序开始运行时执行,然后复制其自身,并在复制中影响其他程序。病毒可以通过防火墙,它们可以隐蔽在传送给网络内部主机的 E-mail 内。

8. 特洛伊木马攻击特洛伊木马是藏匿在某一合法程序内完成伪装预定功能的代

码段。它可作为藏匿计算机病毒、蠕虫或其他恶意程序的方式,但多数时间被用于绕过诸如防火墙这样的安全屏障。

9. 前缀扫描攻击黑客和攻击者可以利用军用拨号器( war-dialer)扫描调

制调解器线路,这些调制解调器线路绕过网络防火墙,可以作为闯入系统的后门。

10. 数据驱动攻击黑客或攻击者把一些具有破坏性的数据藏匿在普通数据中

传送到因特网主机上,当这些数据被激活时就会发生数据驱动攻击。例如修改主机中与安全有关的文件,留下下次更容易进入该系统的后门。

11. 报文攻击黑客或攻击者利用网际控制报文协议 ICMP 中差错控制报

文的重定向功能进行攻击。重定向报文可改变路由器,路由器根据这些报文建议走另一条“更好”的路径。黑客或攻击者利用重定向报文把连接转向一个黑客或攻击者控制的主机,或使所有报文通过他们控制的主机来转发。

12. 电污染攻击据有关资料显示,有九成计算机出现的误码、死机、芯片

损坏等现象来自“电污染”。究其原因是: (1)电流在传导过程中会受到诸如电磁、无线电等因素的干扰,形成电子噪声,导致可执行文件或数据文件出错; (2)有时由于电流突然回流,造成短时间内电压急剧升高,出现了电涌现象,这种电浪涌不断冲击会导致设备元件出现故障,所以恶意攻击者可以利用“电污染”手段损坏或摧毁防火墙。

13. 社会工程攻击社会工程攻击有时又叫系统管理员失误攻击。黑客或攻击

者通过向公司内部人员套取有用信息,或系统管理人员因失误扩大了普通用户的权限,给黑客或攻击者以可趁之机。

top related