第九章 系统安全性
第九章 系统安全性
9.1 引言
9.2 数据加密技术
9.3 认证技术
9.4 访问控制技术
9.5 防火墙技术
第九章 系统安全性
9.1 引 言
9.1.1 系统安全性的内容和性质
1,系统安全性的内容
系统安全性包括三个方面的内容, 即物理安全, 逻辑
安全和安全管理 。 物理安全是指系统设备及相关设施受到
物理保护, 使之免遭破坏或丢失;安全管理包括各种安全
管理的政策和机制;而逻辑安全则是指系统中信息资源的
安全,
(1) 保密性 (Secrecy)。
(2) 完整性 (Integrity)。
(3) 可用性 (Availability)。
第九章 系统安全性
2.
系统安全问题涉及面较广, 它不仅与系统中所用的
硬, 软件设备的安全性能有关, 而且与构造系统时所采
用的方法有关, 从而导致了系统安全问题的性质更为复
杂,
(1) 多面性。
(2) 动态性。
(3) 层次性。
(4) 适度性。
第九章 系统安全性
9.1.2
(1) 假冒 (Masquerading)。
(2) 数据截取 (Data Interception)。
(3) 拒绝服务 (Denial of Server)。
(4) 修改 (Modification),
(5) 伪造 (Fabrication)。
(6) 否认 (Repudiation)。
(7) 中断 (Interruption)。
(8) 通信量分析 (Traffic Analysis)。
第九章 系统安全性
9.1.3 对各类资源的威胁
1,对硬件的威胁
(1) 电源掉电。
(2) 设备故障和丢失。
在 Novell公司的 Netware网络 OS中, 提供了三级容错
技术, 此即 SFT-Ⅰ, SFT-Ⅱ 和 SFT-Ⅲ ;在 Windows NT网
络 OS中所采用的是磁盘阵列技术 。 此外, 还必须加强对
计算机系统的管理和日常维护, 以保证硬件的正常运行
和杜绝设备被窃事件的发生 。
第九章 系统安全性
2,对软件的威胁
(1) 删除软件。
(2) 拷贝软件。
(3) 恶意修改。
第九章 系统安全性
3,对数据的威胁
(1) 窃取机密信息。
(2) 破坏数据的可用性。
(3) 破坏数据的完整性。
第九章 系统安全性
4,对远程通信的威胁
(1) 被动攻击方式 。
对于有线信道, 攻击者可以用在通信线路上进行搭接的
方法, 去截获在线路上传输的信息, 以了解其中的内容或数
据的性质 。 这种攻击方式, 一般不会干扰信息在通信线中
的正常传输, 因而也不易被检测出来 。 通常把这种攻击方式
称为被动攻击 。 对付被动攻击的最有效方法, 是对所传输的
数据进行加密, 这样, 攻击者只能获得被加密过的密文, 但
却无法了解密文的含义;对于无线信道, 如微波信道, 卫
星信道, 防范攻击的有效方法也同样是对数据进行加密处理 。
第九章 系统安全性
(2) 主动攻击方式 。
主动攻击方式通常具有更大的破坏性 。 这里, 攻
击者不仅要截获系统中的数据, 而且还可能冒充合法
用户, 对网络中的数据进行删除, 修改, 或者制造虚
假数据 。 主动攻击, 主要是攻击者通过对网络中各类
结点中的软件和数据加以修改来实现的, 这些结点可
以是主机, 路由器或各种交换器 。
第九章 系统安全性
9.1.4
1,CC
对一个安全产品 (系统 )进行评估, 是件十分复杂的
事 。 它对公正性和一致性要求很严 。 因此, 需要有一个
能被广泛接受的评估标准 。 为此, 美国国防部在 80年代
中期制订了一组计算机系统安全需求标准, 共包括 20多
个文件, 每个文件都使用了彼此不同颜色的封面, 统称
为, 彩虹系列, 。 其中最核心的是具有橙色封皮的, 可
信任计算机系统评价标准 (TCSEC)”,简称为, 橙皮书, 。
第九章 系统安全性
该标准中将计算机系统的安全程度划分为 8个等级, 有
D1,C1,C2,B1,B2,B3,A1和 A2。 在橙皮书中, 对每个
评价级别的资源访问控制功能和访问的不可抵赖性, 信任度
及产品制造商应提供的文档, 作了一系列的规定, 其中以 D1
级为安全度最低级, 称为安全保护欠缺级 。 常见的无密码
保护的个人计算机系统便属于 D1级 。 C1级称为自由安全保护
级, 通常具有密码保护的多用户工作站便属于 C1级 。 C2级
称为受控存取控制级, 当前广泛使用的软件, 如 UNIX操作
系统, ORACLE数据库系统等, 都能达到 C2级 。 从 B级开始,
要求具有强制存取控制和形式化模型技术的应用 。 B3,A1级
进一步要求对系统中的内核进行形式化的最高级描述和验证 。
一个网络所能达到的最高安全等级, 不超过网络上其安全性
能最低的设备 (系统 )的安全等级 。
第九章 系统安全性
2,CC的组成
CC由两部分组成, 一部分是信息技术产品的安全功
能需求定义, 这是面向用户的, 用户可以按照安全功能
需求来定义, 产品的保护框架, (PP),CC要求对 PP进行
评价以检查它是否能满足对安全的要求; CC的另一部分
是安全保证需求定义, 这是面向厂商的, 厂商应根据 PP文
件制定产品的, 安全目标文件, (ST),CC同样要求对 ST
进行评价, 然后根据产品规格和 ST去开发产品 。
第九章 系统安全性
安全功能需求部分, 包括一系列的安全功能定义,
它们是按层次式结构组织起来的, 其最高层为类 (Class)。
CC将整个产品 (系统 )的安全问题分为 11类, 每一类侧重于
一个安全主题 。 中间层为帧 (Family),在一类中的若干个
簇都基于相同的安全目标, 但每个簇各侧重于不同的方
面 。 最低层为组件 (Component),这是最小可选择的安全
功能需求 。 安全保证需求部分, 同样是按层次式结构组
织起来的 。
须指出的是, 保障计算机和系统的安全性, 将涉及到
许多方面, 其中有工程问题, 经济问题, 技术问题, 管
理问题, 甚至涉及到国家的立法问题 。 但在此, 我们仅
限于介绍用来保障计算机和系统安全的基本技术, 包括认
证技术, 访问控制技术, 密码技术, 数字签名技术, 防
火墙技术等等 。
第九章 系统安全性
9.2 数据加密技术
9.2.1 数据加密的基本概念
直至进入 20世纪 60年代, 由于电子技术和计算机技术
的迅速发展, 以及结构代数, 可计算性理论学科研究成果
的出现, 才使密码学的研究走出困境而进入了一个新的发
展时期;特别是美国的数据加密标准 DES和公开密钥密码
体制的推出, 又为密码学的广泛应用奠定了坚实的基础 。
1,数据加密技术的发展
第九章 系统安全性
2,数据加密模型
图 9-1数据加密模型
加密
算法
E
Ke
解密
算法
D
Kd
干扰
密 文
干扰
明文 P明文 P
加密钥匙 Ke 解密钥匙 Kd
第九章 系统安全性
(1) 明文 (plain text)。 被加密的文本, 称为明文 P。
(2) 密文 (cipher text)。 加密后的文本, 称为密文 Y。
(3) 加密 (解密 )算法 E(D)。 用于实现从明文 (密文 )
到密文 (明文 )转换的公式, 规则或程序 。
(4) 密钥 K。 密钥是加密和解密算法中的关键参数。
第九章 系统安全性
加密过程可描述为:在发送端利用加密算法 E和加密
密钥 Ke对明文 P进行加密, 得到密文 Y=EKe(P)。 密文 Y被传
送到接收端后应进行解密 。 解密过程可描述为:接收端利
用解密算法 D和解密密钥 Kd对密文 Y进行解密, 将密文恢
复为明文 P=DKd(Y)。
在密码学中, 把设计密码的技术称为密码编码, 把破
译密码的技术称为密码分析 。 密码编码和密码分析合起来
称为密码学 。 在加密系统中, 算法是相对稳定的 。 为了加
密数据的安全性, 应经常改变密钥, 例如, 在每加密一
个新信息时改变密钥, 或每天, 甚至每个小时改变一次密
钥 。
第九章 系统安全性
3.
1)
(1) 对称加密算法 。 在这种方式中, 在加密算法和解密
算法之间, 存在着一定的相依关系, 即加密和解密算法往往
使用相同的密钥;或者在知道了加密密钥 Ke后, 就很容易
推导出解密密钥 Kd。 在该算法中的安全性在于双方能否妥
善地保护密钥 。 因而把这种算法称为保密密钥算法 。
(2) 非对称加密算法 。 这种方式的加密密钥 Ke和解密密
钥 Kd不同, 而且难以从 Ke推导出 Kd来 。 可以将其中的一个
密钥公开而成为公开密钥, 因而把该算法称为公开密钥算法 。
用公开密钥加密后, 能用另一把专用密钥解密;反之亦然 。
第九章 系统安全性
2)
(1) 序列加密算法 。 该算法是把明文 P看作是连续的比
特流或字符流 P1,P2,P3 …,在一个密钥序列 K=K1,K2、
K3…的控制下, 逐个比特 (或字符 )地把明文转换成密文 。 可
EK(P)=EK1(P1)EK2(P2)EK3(P3)…
这种算法可用于对明文进行实时加密 。
(2) 分组加密算法 。 该算法是将明文 P划分成多个固定
长度的比特分组, 然后, 在加密密钥的控制下, 每次变换
一个明文分组 。 最著名的 DES算法便是以 64位为一个分组
进行加密的 。
第九章 系统安全性
4,基本加密方法
1)
易位法是按照一定的规则, 重新安排明文中的比特或
字符的顺序来形成密文, 而字符本身保持不变 。 按易位单
位的不同又可分成比特易位和字符易位两种易位方式 。 前
者的实现方法简单易行, 并可用硬件实现, 主要用于数字
通信中;而后者即字符易位法则是利用密钥对明文进行易
位后形成密文, 具体方法是:假定有一密钥 MEGABUCK,
其长度为 8,则其明文是以 8个字符为一组写在密文的下面,
如图 9 - 2 所示 。
第九章 系统安全性
图 9-2 按字符易位加密算法
第九章 系统安全性
按密钥中字母在英文字母表中的顺序来确定明文排列后
的列号 。 如密钥中的 A所对应的列号为 1,B为 2,C为 3,
E为 4等 。 然后再按照密钥所指示的列号, 先读出第一列
中的字符, 读完第 1列后, 再读出第 2列中的字符, ……,
这样, 即完成了将明文 please transfer ……转换为密文
AFLLSKSOSELAWAIA …… 的加密过程 。
第九章 系统安全性
2)
置换法是按照一定的规则, 用一个字符去置换 (替代 )
另一个字符来形成密文 。 最早由朱叶斯 ·凯撒 (Julius
caeser)提出的算法, 非常简单, 它是将字母 a,b,c,…、
x,y,z循环右移三位后, 形成 d,e,f,…,a,b,c
字符序列, 再利用移位后的序列中的字母去分别置换未
移位序列中对应位置的字母, 即利用 d置换 a,用 e置换 b
等 。 凯撒算法的推广是移动 K位 。 单纯移动 K位的置换算
法很容易被破译, 比较好的置换算法是进行映像 。 例如,
将 26个英文字母映像到另外 26个特定字母中, 见图 9 - 3
所示 。 利用置换法可将 attack加密, 变为 QZZQEA。
第九章 系统安全性
9 –3 26个字母的映像
第九章 系统安全性
9.2.2 对称加密算法与非对称加密算法
1,对称加密算法
现代加密技术所用的基本手段, 仍然是易位法和置换
法, 但它与古典方法的重点不同 。 在古典法中通常采用的
算法较简单, 而密钥则较长;现代加密技术则采用十分复
杂的算法, 将易位法和置换法交替使用多次而形成乘积密
码 。 最有代表性的对称加密算法是数据加密标准 DES(Data
Eneryption Standard)。 该算法原来是 IBM公司于 1971~1972
年研制成功的, 它旨在保护本公司的机密产品, 后被美国
国家标准局选为数据加密标准, 并于 1977年颁布使用 。 ISO
现在已将 DES作为数据加密标准 。 随着 VLSI的发展, 现在
可利用 VLSI芯片来实现 DES算法, 并用它做成数据加密处
理器 DEP。
第九章 系统安全性
在 DES中所使用的密钥长度为 64位, 它由两部分组成,
一部分是实际密钥, 占 56位;另一部分是 8位奇偶校验码 。
DES属于分组加密算法, 它将明文按 64位一组分成若干个
明文组, 每次利用 56位密钥对 64位的二进制明文数据进行
加密, 产生 64位密文数据 。 DES算法的总框图如图 9 - 4(a)
所示 。 整个加密处理过程可分为四个阶段 (共 19步 ),见图 9-
4(b)所示 。
第九章 系统安全性
图 9-4 DES加密标准
初始易位处理
迭代处理 i
左右互换
还原易位
56
位
钥
匙
K
i
i = 1 ~ 16
64 位密文
L
i
- 1 R
i
- 1
L
i
R
i
+ f
( a ) D ES 算法总框图 ( b ) 迭代过程示意图
64 位明文
第九章 系统安全性
第一阶段:先将明文分出 64位的明文段, 然后对 64
位明文段做初始易位处理, 得到 X0,将其左移 32位, 记
为 L0,右移 32位, 记为 R0。
第二阶段:对初始易位结果 X0进行 16次迭代处理 (相
应于第 2~17步 ),每一次使用 56位加密密钥 Ki。 第 2~17步
的迭代过程如图 9-4(b)所示 。 由图可以看出, 输出的左
32位 Li是输入右 32位 Ri-1的拷贝;而输出的右 32位 Ri,则
是在密钥 Ki的控制下, 对输入右 32位 Ri-1做函数 f的变换
后的结果, 再与输入左 32位 Li-1 进行异或运算而形成的,
第九章 系统安全性
11
1
),( ??
?
??
?
iiii
ii
LKRfR
RL
第三阶段:把经过 16次迭代处理的结果 (64位 )的左
32位与右 32位互易位置 。
第四阶段,进行初始易位的逆变换。
第九章 系统安全性
2.
DES加密算法属于对称加密算法 。 加密和解密所使用的
密钥是相同的 。 DES的保密性主要取决于对密钥的保密程度 。
加密者必须用非常安全的方法 (如通过个人信使 )将密钥送给接
收者 (解密者 )。 如果通过计算机网络传送密钥, 则必须先对密
钥本身予以加密后再传送, 通常把这种算法称为对称保密密
钥算法 。
1976年美国的 Diffie和 Hallman提出了一个新的非对称密码
体制 。 其最主要的特点是在对数据进行加密和解密时, 使用
不同的密钥 。 每个用户都保存着一对密钥, 每个人的公开密
钥都对外公开 。 假如某用户要与另一用户通信, 他可用公开
密钥对数据进行加密, 而收信者则用自己的私用密钥进行解
密 。 这样就可以保证信息不会外泄 。
第九章 系统安全性
(1) 设加密算法为 E,加密密钥为 Ke,可利用它们对明
文 P进行加密, 得到 EKe(P)密文 。 设解密算法为 D,解密密
钥为 Kd,可利用它们将密文恢复为明文,
DKd(EKe(P))=P
(2) 要保证从 Ke推出 Kd是极为困难的,或者说,从
Ke推出 Kd
(3) 在计算机上很容易产生成对的 Ke和 Kd。
(4) 加密和解密运算可以对调, 即利用 DKd对明文进行
加密形成密文, 然后用 EKe对密文进行解密, 即
PPDE kdke ?))((
第九章 系统安全性
在此情况下, 解密密钥或加密密钥公开也无妨 。 因而这
种加密方法称为公开密钥法 (Publie Key)。 在公开密钥体制中,
最著名的是 RSA体制, 它已被 ISO推荐为公开密钥数据加密
标准 。
由于对称加密算法和非对称加密算法各有优缺点, 即非
对称加密算法要比对称加密算法处理速度慢, 但密钥管理简
单, 因而在当前新推出的许多新的安全协议中, 都同时应
用了这两种加密技术 。 一种常用的方法是利用公开密钥技术
传递对称密码, 而用对称密钥技术来对实际传输的数据进行
加密和解密, 例如, 由发送者先产生一个随机数, 此即对称
密钥, 用它来对欲传送的数据进行加密;然后再由接收者
的公开密钥对对称密钥进行加密 。 接收者收到数据后, 先用
私用密钥对对称密钥进行解密, 然后再用对称密钥对所收到
的数据进行解密 。
第九章 系统安全性
9.2.3
1.
在金融和商业等系统中, 许多业务都要求在单据上加
以签名或加盖印章, 证实其真实性, 以备日后查验 。 在利
用计算机网络传送报文时, 可将公开密钥法用于电子 (数字 )
签名来代替传统的签名 。 为使数字签名能代替传统的签名,
(1) 接收者能够核实发送者对报文的签名 。
(2) 发送者事后不能抵赖其对报文的签名 。
(3) 接收者无法伪造对报文的签名。
第九章 系统安全性
1)
在这种数字签名方式中, 发送者 A可使用私用密钥 Kda对明
文 P进行加密, 形成 DKda(P)后传送给接收者 B。 B可利用 A的公
开密钥 Kea对 DKda(P)进行解密, 得到 EKea(DKda(P))=P,如图 9 -
5(a)所示 。
图 9 – 5 数字签名示意图
D
P D
K d a
( P ) = Y
E
E
K e a
(D
K d a
( P ) ) = P
K d a K e a
( a )
D
P D
K d a
( P )
E
E
K e b
(D
K d a
( P ) )
K d a K e b
( b )
D
K d b
D
K d a
( P )
E
K e a
P
第九章 系统安全性
我们按照对数字签名的三点基本要求进行分析后可得知:
(1) 接收者能利用 A的公开密钥 Kea对 DKda(P)进行解密, 这
便证实了发送者对报文的签名 。
(2) 由于只有发送者 A才能发送出 DKda(P)密文, 故不容 A
进行抵赖 。
(3) 由于 B没有 A所拥有的私用密钥, 故 B无法伪造对报文
的签名 。
由此可见, 图 9 - 5(a) 所示的简单方法可以实现对传送
的数据进行签名, 但并不能达到保密的目的, 因为任何人都
能接收 DKda(P),且可用 A的公开密钥 Kea对 DKda(P)进行解密 。
为使 A所传送的数据只能为 B所接收, 必须采用保密数字签名 。
第九章 系统安全性
2)
为了实现在发送者 A和接收者 B之间的保密数字签名, 要求
A和 B都具有密钥, 再按照图 9-5(b)所示的方法进行加密和解密 。
(1) 发送者 A可用自己的私用密钥 Kda对明文 P加密, 得到密
文 DKda(P)。
(2) A再用 B的公开密钥 Keb对 DKda(P)进行加密, 得到
EKeb(DKda(P))后送 B。
(3) B 收 到 后, 先 用 私 用 密 钥 Kdb 进 行 解 密, 即
DKdb(EKeb(DKda(P)))=DKda(P)。
(4) B再用 A的公开密钥 Kea对 DKda(P)进行解密, 得到
EKea(DKda(P))=P。
第九章 系统安全性
2,数字证明书 (Certificate)
(1) 用户 A在使用数字证明书之前, 应先向认证机构 CA
申请数字证明书, 此时 A应提供身份证明和希望使用的公开
密钥 A。
(2) CA在收到用户 A发来的申请报告后, 若决定接受其
申请, 便发给 A一份数字证明书, 在证明书中包括公开密
钥 A和 CA发证者的签名等信息, 并对所有这些信息利用 CA
的私用密钥进行加密 (即 CA进行数字签名 )。
(3) 用户 A在向用户 B发送报文信息时, 由 A用私用密钥
对报文加密 (数字签名 ),并连同已加密的数字证明书一起发
送给 B。
第九章 系统安全性
(4) 为了能对所收到的数字证明书进行解密, 用户 B须向
CA机构申请获得 CA的公开密钥 B。 CA收到用户 B的申请后,
可决定将公开密钥 B发送给用户 B。
(5) 用户 B利用 CA的公开密钥 B对数字证明书加以解密,
以确认该数字证明书确系原件, 并从数字证明书中获得公开
密钥 A,并且也确认该公开密钥 A确系用户 A的 。
(6) 用户 B再利用公开密钥 A对用户 A发来的加密报文进
行解密, 得到用户 A发来的报文的真实明文 。
第九章 系统安全性
9.2.4 网络加密技术
1,链路加密 (Link Encryption)
链路加密, 是对在网络相邻结点之间通信线路上传输的数
据进行加密 。 链路加密常采用序列加密算法, 它能有效地防止
搭线窃听所造成的威胁 。 两个数据加密设备分别置于通信线路
的两端, 它们使用相同的数据加密密钥 。
如果在网络中只采用了链路加密, 而未使用端 —端加密, 那
么, 报文从最高层 (应用层 )到数据链路层之间, 都是以明文的形
式出现的, 只是从数据链路层进入物理层时, 才对报文进行了
加密, 并把加密后的数据通过传输线路传送到对方结点上 。 为
了防止攻击者对网络中的信息流进行分析, 在链路加密方式中,
不仅对正文做了加密, 而且对所有各层的控制信息也进行了加
密 。
第九章 系统安全性
接收结点在收到加密报文后, 为了能对报文进行转发,
必须知道报文的目标地址 。 为此, 接收结点上的数据加密设
备应对所接收到的加密报文进行解密, 从中找出目标地址并
进行转发 。 当该报文从数据链路层送入物理层 (转发 )时, 须
再次对报文进行加密 。 由上所述得知, 在链路加密方式中,
在相邻结点间的物理信道上传输的报文是密文, 而在所有中
间结点中的报文则是明文, 这给攻击者造成了可乘之机, 使
其可从中间结点上对传输中的信息进行攻击 。 这就要求能对
所有各中间结点进行有效的保护 。
第九章 系统安全性
此外, 在链路加密方式中, 通常对每一条链路都分别
采用不同的加密密钥 。 图 9-6 示出了链路加密时的情况 。 在
图中, 结点 2的 DEE使用密钥 Kd2将密文 EKe1(P)解密为明文 P
后, 又用密钥 Ke2将 P变换为密文 EKe2(P)。 可见, 对于一个
稍具规模的网络, 将需要非常多的加密硬件, 这是必要的 。
图 9 – 6 链路加密方式
E D E
K e 1 K d 2 K e 2
结点 1 结点 2
E
K e 1
( P ) E
K a 2
( P )
D E
K d 3 K e 3
结点 3
P P E
K e 3
( P )P
第九章 系统安全性
2.端 —端加密 (End-to-End Encryption)
在单纯采用链路加密方式时, 所传送的数据在中间
结点将被恢复为明文, 因此, 链路加密方式尚不能保证
通信的安全性;而端 —端加密方式是在源主机或前端机
FEP中的高层 (从传输层到应用层 )对所传输的数据进行加
密 。 在整个网络的传输过程中, 不论是在物理信道上,
还是在中间结点, 报文的正文始终是密文, 直至信息到
达目标主机后, 才被译成明文, 因而这样可以保证在中
间结点不会出现明文 。
第九章 系统安全性
图 9 – 7 端 —端加密方式
A C C
F E P
K D C
F E P
主机 A
F
F E P F E P
主机 B
1
2
3
4
5
第九章 系统安全性
在端 —端加密方式中, 只要密钥没有泄漏, 数据在
传输过程中就不怕被窃取, 也无须对网络中间结点的操
作人员提出特殊要求 。 但在这种加密方式中, 不能对报
头中的控制信息 (如目标地址, 路由信息等 )进行加密,
否则中间结点将无法得知目标地址和有关的控制信息 。
显然, 报头不能加密, 也将会直接或间接地受到攻击,
比如, 攻击者可能根据报头中的源地址和目标地址, 了
解到某些部门的通信情况, 甚至还可以发起诸如篡改报
文的目标地址和路由信息之类的主动攻击 。
第九章 系统安全性
上述两种加密方式各有优缺点 。 一种比较好的网
络加密方式是, 同时采用链路加密和端 —端加密, 以取
长补短 。 如利用端 —端加密方式来使用户数据以密文形
式穿越各个中间结点, 以保障用户数据的安全;而利用
链路加密方式则可使报头中的控制信息以密文形式在通
信信道中传输, 使之不易受到攻击 。
第九章 系统安全性
9.3 认 证 技 术
9.3.1 基于口令的身份认证技术
1,口令
利用口令来确认用户的身份, 是当前最常用的认证技术 。
通常, 每当用户要上机时, 系统中的登录程序都首先要求用
户输入用户名, 登录程序利用用户输入的名字去查找一张用
户注册表或口令文件 。 在该表中, 每个已注册用户都有一个
表目, 其中记录有用户名和口令等 。 登录程序从中找到匹配
的用户名后, 再要求用户输入口令, 如果用户输入的口令也
与注册表中用户所设置的口令一致, 系统便认为该用户是合
法用户, 于是允许该用户进入系统;否则将拒绝该用户登录 。
第九章 系统安全性
口令是由字母或数字, 或字母和数字混合组成的,
它可由系统产生, 也可由用户自己选定 。 系统所产生
的口令不便于用户记忆, 而用户自己规定的口令则通
常是很容易记忆的字母, 数字, 例如生日, 住址, 电
话号码, 以及某人或宠物的名字等等 。 这种口令虽便
于记忆, 但也很容易被攻击者猜中 。
第九章 系统安全性
2,对口令机制的基本要求
基于用户标识符和口令的用户认证技术, 其最主要
的优点是简单易行, 因此, 在几乎所有需要对数据加以保
密的系统中, 都引入了基于口令的机制 。 但这种机制也
很容易受到别有用心者的攻击, 攻击者可能通过多种方式
来获取用户标识符和口令, 或者猜出用户所使用的口令 。
为了防止攻击者猜出口令, 在这种机制中通常应满足以下
几点要求:
第九章 系统安全性
(1) 口令长度要适中 。
通常的口令是由一串字母和数字组成 。 如果口令太
短, 则很容易被攻击者猜中 。 例如, 一个由四位十进制
数所组成的口令, 其搜索空间仅为 104,在利用一个专门
的程序来破解时, 平均只需 5000次即可猜中口令 。 假如每
猜一次口令需花费 0.1 ms的时间, 则平均每猜中一个口令
仅需 0.5 s。 而如果采用较长的口令, 假如口令由 ASCII码
组成, 则可以显著地增加猜中一个口令的时间 。 例如, 口
令由 7位 ASCII码组成, 其搜索空间变为 957(95是可打印的
ASCII码 ),大约是 7× 1013,此时要猜中口令平均需要几十
年 。
第九章 系统安全性
(2) 自动断开连接 。
为了给攻击者猜中口令增加难度, 在口令机制中还应
引入自动断开连接的功能, 即只允许用户输入有限次数的
不正确口令, 通常规定 3~5次 。 如果用户输入不正确口令
的次数超过规定的次数时, 系统便自动断开该用户所在终
端的连接 。 当然, 此时用户还可能重新拨号请求登录,
但若在重新输入指定次数的不正确口令后, 仍未猜中, 系
统会再次断开连接 。 这种自动断开连接的功能, 无疑又给
攻击者增加了猜中口令的难度 。
第九章 系统安全性
(3) 不回送显示 。
在用户输入口令时, 登录程序不应将该口令回送到屏
幕上显示, 以防止被就近的人发现 。
(4) 记录和报告 。
该功能用于记录所有用户登录进入系统和退出系统的
时间;也用来记录和报告攻击者非法猜测口令的企图及所
发生的与安全性有关的其它不轨行为, 这样便能及时发现
有人在对系统的安全性进行攻击 。
第九章 系统安全性
3,一次性口令 (One time Passward)
为了把由于口令泄露所造成的损失减到最小, 用户应当
经常改变口令 。 例如, 一个月改变一次, 或者一个星期改变
一次 。 一种极端的情况是采用一次性口令机制 。 在利用该机
制时, 用户必须提供记录有一系列口令的一张表, 并将该表
保存在系统中 。 系统为该表设置一指针用于指示下次用户登
录时所应使用的口令 。 这样, 用户在每次登录时, 登录程序
便将用户输入的口令与该指针所指示的口令相比较, 若相同,
便允许用户进入系统, 并将指针指向表中的下一个口令 。 在
采用一次性口令的机制时, 即使攻击者获得了本次用户上机
时所使用的口令, 他也无法进入系统 。 必须注意, 用户所使
用的口令表, 必须妥善保存好 。
第九章 系统安全性
4,口令文件
通常在口令机制中, 都配置有一份口令文件, 用于
保存合法用户的口令和与口令相联系的特权 。 该文件的
安全性至关重要, 一旦攻击者成功地访问了该文件, 攻
击者便可随心所欲地访问他感兴趣的所有资源, 这对整
个计算机系统的资源和网络, 将无安全性可言 。 显然,
如何保证口令文件的安全性, 已成为系统安全性的头等
重要问题 。
第九章 系统安全性
保证口令文件安全性的最有效的方法是, 利用加密技术,
其中一个行之有效的方法是选择一个函数来对口令进行加密,
f(x)具有这样的特性:在给定了 x值后, 很容易算出
f(x); 然而, 如果给定了 f(x)的值, 却不能算出 x的值 。 利用
f(x)函数去编码 (即加密 )所有的口令, 再将加密后的口令存入
口令文件中 。 当某用户输入一个口令时, 系统利用函数 f(x)对
该口令进行编码, 然后将编码 (加密 )后的口令与存储在口令
文件中的已编码的口令进行比较, 如果两者相匹配, 便认为
是合法用户 。 顺便说明一下, 即使攻击者能获取口令文件中
的已编码口令, 他也无法对它们进行译码, 因而不会影响到
系统的安全性 。
第九章 系统安全性
图 9 – 8 对加密口令的验证方法
超过规
定次数?
口令合法?
进入系统
拒绝
进入
否
是
否
口令文件
进行口令
比较
f ( x )
f ( x )
加密函数
存入口令
用户输
入口令
是
第九章 系统安全性
尽管对口令进行加密是一个很好的方法, 但它也不
是绝对的安全可靠 。
(1) 当攻击者已掌握了口令的解密密钥时, 就可用它
来破译口令 。
(2) 利用加密程序来破译口令, 如果运行加密程序的
计算机速度足够快, 则通常只要几个小时便可破译口令 。
因此, 人们还是应该妥善保管好已加密的口令文件,
来防止攻击者轻意地获取该文件 。
第九章 系统安全性
9.3.2 基于物理标志的认证技术
1,基于磁卡的认证技术
根据数据记录原理, 可将当前使用的卡分为磁卡和 IC卡
两种 。 磁卡是基于磁性原理来记录数据的, 目前世界各国使
用的信用卡和银行现金卡等, 都普遍采用磁卡 。 这是一块其
大小和名片大小相仿的塑料卡, 在其上贴有含若干条磁道的
磁条 。 一般在磁条上有三条磁道, 每条磁道都可用来记录不
同标准和不同数量的数据 。 磁道上可有两种记录密度, 一种
是每英寸含有 15比特的低密度磁道;另一种是每英寸含有
210比特的高密度磁道 。 如果在磁条上记录了用户名, 账号
和金额, 这就是金融卡或银行卡;而如果在磁条上记录的是
有关用户的信息, 则该卡便可作为识别用户身份的物理标志 。
第九章 系统安全性
在磁卡上所存储的信息, 可利用磁卡读写器将之读出:
只要将磁卡插入或划过磁卡读写器, 便可将存储在磁卡中
的数据读出, 并传送到相应的计算机中 。 用户识别程序便
利用读出的信息去查找一张用户信息表 (该表中包含有若干
个表目, 每个用户占有一个表目, 表目中记录了有关该用
户的信息 ),若找到匹配的表目, 便认为该用户是合法用户;
否则便认为是非法用户 。 为了保证持卡者是该卡的主人,
通常在基于磁卡认证技术的基础上, 又增设了口令机制,
每当进行用户身份认证时, 都要求用户输入口令 。
第九章 系统安全性
2,基于 IC
IC卡即集成电路卡的英文缩写 。 在外观上 IC卡与磁
卡并无明显差别, 但在 IC卡中可装入 CPU和存储器芯片,
使该卡具有一定的智能, 故又称为智能卡或灵巧卡 。 IC
卡中的 CPU用于对内部数据的访问和与外部数据进行交
换, 还可利用较复杂的加密算法, 对数据进行处理, 这
使 IC卡比磁卡具有更强的防伪性和保密性, 因而 IC卡会
逐步取代磁卡 。 根据在磁卡中所装入芯片的不同可把 IC
卡分为以下三种类型:
第九章 系统安全性
(1) 存储器卡 。 在这种卡中只有一个 E2PROM(可电擦,
可编程只读存储器 )芯片, 而没有微处理器芯片 。 它的智能
主要依赖于终端, 就像 IC电话卡的功能是依赖于电话机一样 。
由于此智能卡不具有安全功能, 故只能用来存储少量金额的
现金与信息 。 常见的智能卡有电话卡, 健康卡, 其只读存
储器的容量一般为 4~20 KB。
(2) 微处理器卡 。 它除具有 E2PROM外, 还增加了一个
微处理器 。 只读存储器的容量一般是数千字节至数万字节;
处理器的字长主要是 8位的 。 在这种智能卡中已具有一定的
加密设施, 增强了 IC卡的安全性 。
第九章 系统安全性
(3) 密码卡 。 在这种卡中又增加了加密运算协处理
器和 RAM。 之所以把这种卡称为密码卡, 是由于它能支
持非对称加密体制 RSA;所支持的密钥长度可长达 1024
位, 因而极大地增强了 IC卡的安全性 。 一种专门用于确
保安全的智能卡, 在卡中存储了一个很长的用户专门密
钥和数字证明书, 完全可以作为一个用户的数字身份证
明 。 当前在 Internet上所开展的电子交易中, 已有不少密
码卡是使用了基于 RSA的密码体制 。
第九章 系统安全性
将 IC卡用于身份识别的方法, 明显地优于使用磁卡 。 这
一方面是因为, 磁卡是将数据存储在磁条上, 比较易于用一
般设备将其中的数据读出, 修改和进行破坏;而 IC卡则是将
数据保存在存储器中, 使用一般设备难于读出, 这使 IC卡具
有更好的安全性 。 另一方面, 在 IC卡中含有微处理器和存储
器, 可进行较复杂的加密处理, 因此, IC卡具有非常好的防
伪性和保密性; 此外, 还因为 IC卡所具有的存储容量比磁卡
的大得多, 通常可大到 100倍以上, 因而可在 IC卡中存储更多
的信息, 从而做到, 一卡多用,, 换言之, 一张 IC卡, 既可
作为数字身份证, 又可作为信用卡, 电话卡及健康卡等等 。
第九章 系统安全性
3,指纹识别技术
(1) 指纹 。
指纹有着, 物证之首, 的美誉 。 尽管目前全球已有近
60亿人口, 但绝对不可能找到两个完全相同的指纹 。 因
而利用指纹来进行身份认证是万无一失的, 而且非常方便 。
又因为它不会像其它一些物理标志那样出现用户忘记携带
或丢失等问题, 而且使用起来也特别方便, 因此, 利用指
纹来进行身份识别是有广阔前景的一种识别技术, 世界上
已有愈来愈多的国家开展了对指纹识别技术的研究 。
第九章 系统安全性
(2) 指纹识别系统 。
早在 80年代, 美国及其它发达国家便开始了对指纹
识别技术的研究, 并取得了一定的进展 。 在所构成的指
纹识别系统中包括:指纹输入, 指纹图像压缩, 指纹自
动比较等 8个子系统 。 但他们的指纹识别系统是建立在
大型计算机系统的基础上的, 而且由于系统的庞大, 价
格的昂贵, 始终使该技术难于普及;直至近几年, 随着
VLSI的迅速发展, 才使指纹识别系统小型化, 使该技
术进入了广泛应用的阶段 。
第九章 系统安全性
9.3.3 基于公开密钥的认证技术
1,申请数字证书
由于 SSL所提供的安全服务, 是基于公开密钥证明书 (数
字证书 )的身份认证, 因此, 凡是要利用 SSL的用户和服务器,
都必须先向认证机构 (CA)申请公开密钥证明书 。
(1) 服务器申请数字证书 。
首先由服务管理器生成一密钥对和申请书, 服务器一方
面将密钥和申请书的备份保存在安全之处;另一方面则向 CA
提交包括密钥对和签名证明书申请 (即 CSR)的加密文件, 通
常以电子邮件方式发送 。 CA接收并检查该申请的合法性后,
将会把数字证书以电子邮件方式寄给服务器 。
第九章 系统安全性
(2) 客户申请数字证书 。
首先由浏览器生成一密钥对, 私有密钥被保存在客
户的私有密钥数据库中, 将公开密钥连同客户提供的其
它信息, 一起发往 CA。 如果该客户符合 CA要求的条件,
CA将会把数字证书以电子邮件方式寄给客户 。
第九章 系统安全性
2,SSL握手协议
(1) 身份认证 。
SSL协议要求通信的双方都利用自己的私用密钥对
所要交换的数据进行数字签名, 并连同数字证书一起发
送给对方, 以便双方相互检验 。 如上节所述, 通过数字
签名和数字证书的验证可以认证对方的身份是否真实 。
第九章 系统安全性
(2) 协商加密算法 。
为了增加加密系统的灵活性, SSL协议允许采用多种加
密算法 。 客户和服务器在通信之前, 应首先协商好所使用的
某一种加密算法 。 通常先由客户提供自己能支持的所有加密
算法清单, 然后由服务器从中选择出一种最有效的加密算法,
并通知客户, 此后, 双方便可利用该算法对所传送的信息进
行加密 。
(3) 协商加密密钥 。
先由客户机随机地产生一组密钥, 再利用服务器的公开
密钥对这组密钥进行加密后, 送往服务器, 由服务器从中选
择 4个密钥, 并通知客户机, 将之用于对所传输的信息进行加
密 。
第九章 系统安全性
3.
(1) 数据加密 。
在客户机和服务器间传送的所有信息, 都应利用协商后
所确定的加密算法和密钥进行加密处理, 以防止被攻击 。
(2) 检查数据的完整性 。
为了保证经过长途传输后所收到的数据是可信任的,
SSL协议还利用某种算法对所传送的数据进行计算, 以产生
能保证数据完整性的数据识别码 (MAC),再把 MAC和业务数
据一起传送给对方;而收方则利用 MAC来检查所收到数据的
完整性 。
第九章 系统安全性
9.4
9.4.1 访问矩阵 (Access Matrix)
1)
为了对系统中的对象加以保护, 应由系统来控制进程对
对象的访问 。 我们把一个进程能对某对象执行操作的权力称
为访问权 (Access right)。 每个访问权可以用一个有序对 (对象
名, 权集 )来表示, 例如, 某进程有对文件 F1执行读和写操
作的权力, 这时, 可 将该进 程的访 问权表 示成 (F1,
{ R/W} )。
第九章 系统安全性
2)
为了对系统中的资源进行保护而引入了保护域的概念,
保护域简称为, 域, 。, 域, 是进程对一组对象访问权的
集合, 进程只能在指定域内执行操作, 这样,, 域, 也
就规定了进程所能访问的对象和能执行的操作 。 在图 9 -
9中示出了三个保护域 。 在域 1中有两个对象, 即文件 F1和
F2,只允许进程对 F1读, 而允许对 F2 读和写;而对象
Printer1同时出现在域 2和域 3中, 这表示在这两个域中运
行的进程都能使用打印机 。
第九章 系统安全性
图 9 – 9 三个保护域
F
1
[ R ]
F
2
[ R W ]
域 1
F
3
[ R ]
F
4
[ R W E ]
域 2
F
5
[ R W ]
F
6
[ R W E ]
P l o t e r 2 [ W ]
P r i n t e r 1 [ W ]
域 3
第九章 系统安全性
3)
在进程和域之间, 可以一一对应, 即一个进程只联系
着一个域 。 这意味着, 在进程的整个生命期中, 其可用资
源是固定的, 我们把这种域称为, 静态域, 。 在这种情况
下, 进程运行的全过程都是受限于同一个域, 这将会使
赋予进程的访问权超过了实际需要 。 例如, 某进程在运
行开始时需要磁带机输入数据;而在进程快结束时, 又需
要用打印机打印数据 。 在一个进程只联系着一个域的情况
下, 则需要在该域中同时设置磁带机和打印机这两个对象,
这将超过进程运行的实际需要 。
第九章 系统安全性
4)
在进程和域之间, 也可以是一对多的关系, 即一个进程
可以联系着多个域 。 在此情况下, 可将进程的运行分为若干
个阶段, 其每个阶段联系着一个域, 这样便可根据运行的实
际需要, 来规定在进程运行的每个阶段中所能访问的对象 。
用上述的同一个例子, 我们可以把进程的运行分成三个阶段:
进程在开始运行的阶段联系着域 D1,其中包括用磁带机输入;
在运行快结束的第三阶段联系着域 D3,其中是用打印机输出;
中间运行阶段联系着域 D2,其中既不含磁带机, 也不含打印
机 。 我们把这种一对多的联系方式称为动态联系方式, 在采
用这种方式的系统中, 应增设保护域切换功能, 以使进程能
在不同的运行阶段, 从一个保护域切换到另一个保护域 。
第九章 系统安全性
2,访问矩阵
我们可以利用一个矩阵来描述系统的访问控制, 并把该矩
阵称为访问矩阵 (Access Matrix)。 访问矩阵中的行代表域, 列
代表对象, 矩阵中的每一项是由一组访问权组成的 。 因为对象
已由列显式地定义, 故可以只写出访问权而不必写出是对哪个
对象的访问权, 每一项访问权 access(i,j)定义了在域 Di中执行的
进程能对对象 Qj所施加的操作集 。
访问矩阵中的访问权, 通常是由资源的拥有者或者管理者
所决定的 。 当用户创建一个新文件时, 创建者便是拥有者, 系
统在访问矩阵中为新文件增加一列, 由用户决定在该列的某个
项中应具有哪些访问权, 而在另一项中又具有哪些访问权 。 当
用户删除此文件时, 系统也要相应地在访问矩阵中将该文件对
应的列撤消 。
第九章 系统安全性
图 9 - 9 的访问矩阵如图 9 - 10 所示 。 它是由三个域和
8个对象所组成的 。 当进程在域 D1中运行时, 它能读文件
F1,读和写文件 F2。 进程在域 D2中运行时, 它能读文件 F3、
F4和 F5,以及写文件 F4,F5和执行文件 F4,此外还可以使
用打印机 1。 只有当进程在域 D3中运行时, 才可使用绘图
仪 2。
第九章 系统安全性
图 9 – 10 一个访问矩阵
第九章 系统安全性
3,具有域切换权的访问矩阵
为了实现在进程和域之间的动态联系, 应能够将进程从
一个保护域切换到另一个保护域 。 为了能对进程进行控制,
同样应将切换作为一种权力, 仅当进程有切换权时, 才能进
行这种切换 。 为此, 在访问矩阵中又增加了几个对象, 分别
把它们作为访问矩阵中的几个域;当且仅当 switch∈ access(i,j)
时, 才允许进程从域 i切换到域 j。 例如, 在图 9 [CD*2] 11 中,
由于域 D1和 D2所对应的项目中, 有一个 S即 Switch,故而允许
在域 D1中的进程切换到域 D2中 。 类似地, 在域 D2和对象 D3所
对应的项中, 也有 Switch,这表示在 D2域中运行的进程, 可
以切换到域 D3中, 但不允许该进程再从域 D3返回到域 D1。
第九章 系统安全性
图 9 – 11 具有切换权的访问控制矩阵
第九章 系统安全性
9.4.2 访问矩阵的修改
1,拷贝权 (Copy Right)
图 9 – 12 具有拷贝权的访问控制矩阵
第九章 系统安全性
在图 9 - 12 中, 凡是在访问权 (access(i,j))上加星号 (*)者,
都表示在 i域中运行的进程能将其对对象 j的访问权, 复制成
在任何域中对同一对象的访问权 。 例如, 图中在域 D2中对文
件 F2的读访问权上加有 *号时, 表示运行在 D2域中的进程可
以将他对文件 F2的读访问权扩展到域 D3中去 。 又如, 在域 D1
中对文件 F3的写访问权上加有 *号时, 可以使运行在域 D1中
的进程, 可以将他对文件 F3的写访问权扩展到域 D3中去, 使
在域 D3中运行的进程, 也具有对文件 F3的写访问权 。
应注意的是, 把带有 *号的拷贝权如 R*,由 access(i,j)拷
贝成 access(k,j)后, 其所建立的访问权只是 R而不是 R*,这使
在域 DK上运行的进程, 不能再将其拷贝权进行扩散, 从而限
制了访问权的进一步扩散 。 这种拷贝方式被称为限制拷贝 。
第九章 系统安全性
2,所有权 (Owner Right)
人们不仅要求能将已有的访问权进行有控制的扩散, 而
且同样需要能增加某种访问权, 或者能删除某种访问权 。 此
时, 可利用所有权 (O)来实现这些操作 。 如果在 access(i,j)中
包含所有访问权, 则在域 Di上运行的进程, 可以增加或删除
其在 j列上任何项中的访问权 。 换言之, 进程可以增加或删除
在任何其它域中运行的进程对对象 j的访问权 。 例如, 在图 9 -
13(a)中, 在域 D1中运行的进程 (用户 )是文件 F1的所有者, 他
能增加或删除在其它域中运行进程对文件 F1的访问权;类似
地, 在域 D2中运行的进程 (用户 )是文件 F2和文件 F3的拥有者,
该进程可以增加或删除在其它域中运行的进程对这两个文件
的访问权 。 在图 9 -13(b)中示出了在域 D1中运行的进程删除
了在域 D3中运行的进程对文件 F1的执行权;在域 D2中运行的
进程增加了在域 D3中运行进程对文件 F2和 F3的写访问权 。
第九章 系统安全性
图 9 – 13 带所有权的访问矩阵
第九章 系统安全性
3,控制权 (Control Right)
拷贝权和所有权都是用于改变矩阵内同一列中的各项
访问权的, 或者说, 是用于改变在不同域中运行的进程对
同一对象的访问权 。 控制权则可用于改变矩阵内同一行中
(域中 )的各项访问权, 亦即, 用于改变在某个域中运行进
程对不同对象的访问权 。 如果在 access(i,j)中包含了控制权,
则在域 Di中运行的进程可以删除在域 Dj中运行进程对各对
象的任何访问权 。 例如在图 9 - 14中, 在 access(D2,D3)中包
括了控制权, 则一个在域 D2中运行的进程能够改变对域 D3
内各项的访问权 。 比较图 9 -11 和图 9 - 14 可以看出, 在 D3
中已无对文件 F6和 Ploter2的写访问权 。
第九章 系统安全性
图 9 – 14 具有控制权的访问矩阵
第九章 系统安全性
9.4.3
1,访问控制表 (Access Control List)
这是指对访问矩阵按列 (对象 )划分, 为每一列建立一张
访问控制表 ACL。 在该表中, 已把矩阵中属于该列的所有空
项删除, 此时的访问控制表是由一有序对 (域, 权集 )所组成 。
由于在大多数情况下, 矩阵中的空项远多于非空项, 因而使
用访问控制表可以显著地减少所占用的存储空间, 并能提高
查找速度 。 在不少系统中, 当对象是文件时, 便把访问控制
表存放在该文件的文件控制表中, 或放在文件的索引结点中,
作为该文件的存取控制信息 。
第九章 系统安全性
域是一个抽象的概念, 可用各种方式实现 。 最常见
的一种情况是每一个用户是一个域, 而对象则是文件 。 此
时, 用户能够访问的文件集和访问权限, 取决于用户的身
份 。 通常, 在一个用户退出而另一个用户进入时, 即用
户发生改变时, 要进行域的切换;另一种情况是, 每个
进程是一个域, 此时, 能够访问的对象集中的各访问权,
取决于进程的身份 。
访问控制表也可用于定义缺省的访问权集, 即在该
表中列出了各个域对某对象的缺省访问权集 。 在系统中配
置了这种表后, 当某用户 (进程 )要访问某资源时, 通常是
首先由系统到缺省的访问控制表中, 去查找该用户 (进程 )
是否具有对指定资源进行访问的权力 。 如果找不到, 再到
相应对象的访问控制表中去查找 。
第九章 系统安全性
2,访问权限 (Capabilities)表
如果把访问矩阵按行 (即域 )划分, 便可由每一行构成一张
访问权限表 。 换言之, 这是由一个域对每一个对象可以执行的
一组操作所构成的表 。 表中的每一项即为该域对某对象的访问
权限 。 当域为用户 (进程 ),对象为文件时, 访问权限表便可用
来描述一个用户 (进程 )对每一个文件所能执行的一组操作 。
图 9 - 15 示出了对应于图 9 - 11 中域 D2的访问权限表 。 在
表中共有三个字段 。 其中类型字段用于说明对象的类型;权
力字段是指域 D2对该对象所拥有的访问权限;对象字段是一个
指向相应对象的指针, 对 UNIX系统来说, 它就是索引结点的
编号 。 由该表可以看出, 域 D2可以访问的对象有 4个, 即文件 3、
4,5和打印机, 对文件 3的访问权限是只读;对文件 4的访问
权限是读, 写和执行等 。
第九章 系统安全性
图 9 – 15 访问权限表
第九章 系统安全性
访问权限表不能允许直接被用户 (进程 )所访问 。 通常, 将
访问权限表存储到系统区内的一个专用区中, 只允许专用于进
行访问合法性检查的程序对该表进行访问, 以实现对访问控制
表的保护 。
目前, 大多数系统都同时采用访问控制表和访问权限表,
在系统中为每个对象配置一张访问控制表 。 当一个进程第一次
试图去访问一个对象时, 必须先检查访问控制表, 检查进程是
否具有对该对象的访问权 。 如果无权访问, 便由系统来拒绝进
程的访问, 并构成一例外 (异常 )事件;否则 (有权访问 ),便允许
进程对该对象进行访问, 并为该进程建立一访问权限, 将之连
接到进程 。 以后, 该进程便可直接利用这一返回的权限去访问
该对象, 这样, 便可快速地验证其访问的合法性 。 当进程不再
需要对该对象进行访问时, 便可撤消该访问权限 。
第九章 系统安全性
9.5 防 火 墙 技 术
(1) 包过滤技术 。 基于该技术所构建的防火墙简单,
价廉 。
(2) 代理服务技术 。 基于该技术所构建的防火墙安全
可靠 。
上述两者之间有很强的互补性, 因而在 Intranet上经
常是同时采用这两种防火墙技术来保障网络的安全 。
第九章 系统安全性
9.5.1 包过滤防火墙
1.
所谓, 包过滤技术, 是指:将一个包过滤防火墙软件
置于 Intranet的适当位置, 通常是在路由器或服务器中, 使
之能对进出 Intranet的所有数据包按照指定的过滤规则进行
检查, 仅对符合指定规则的数据包才准予通行, 否则将之
抛弃 。 图 9 - 16 中示出了基于包过滤技术的防火墙的位置 。
第九章 系统安全性
图 9 – 16 包过滤防火墙
服务器
以太网
I n t r a n e t
WS
IP 数据包 IP 包过滤
防为墙
IP 数据包
至 I n t e r n e t
I n t e r n e t
第九章 系统安全性
包过滤防火墙是工作在网络层 。 在 Internet和 Intranet
中, 由于网络层所传输的是 IP数据包, 所以包过滤器就是
对 IP数据包进行检查并加以过滤 。 包过滤器在收到 IP数据
包后, 先扫描该数据包的包头, 对其中的某些字段进行
检查, 这些字段包括数据包的类型 (TCP或 UDP等 ),源 IP
地址, 目标 IP地址, 目标 TCP/IP端口等 。 然后利用系统中
事先设置好的过滤规则 (或称逻辑 )——通常是访问控制表,
来检查数据包的有关字段, 把凡能满足过滤规律的数据包
都转发到相应的目标地址端口;否则, 便将该数据包从数
据流中摘除掉 。
第九章 系统安全性
假设在某公司的网络 (Intranet)中, 有一个 B类地址为
123.45.0.0,该地址不允许 Internet上的无关网络对它访问 。
但在该公司网中, 有一个地址为 123.45.6.0的子网正在与某
科研机构合作, 这个科研机构网络的 B类地址为 135.79.0.0,
该公司只允许其内部的指定地址为 135.79.30.0,135.79.32.0
及地址为 135.79.36.0的三个子网, 能访问上述的地址为
123.45.6.0 的子网, 但不允许上述三个子网去访问在
123.45.0.0中的其他子网 。 在图 9 - 17 中列出了上述的过滤
规则集, 其中的 0.0.0.0代表任何地址, 规则 E是最后的规则,
仅当没有其它规则可满足时, 才用此规则 。
第九章 系统安全性
图 9 – 17 过滤规则集
第九章 系统安全性
图 9 – 18 利用过滤规则对数据进行检查
第九章 系统安全性
从图 9 - 18 可以看出, 当第一个数据包进入包过滤器时,
由于该包是要访问公司网络中的 1号子网, 根据规则 D而被拒
绝;数据包 2是要访问公司网中的 6号子网, 根据规则 C而被
允许访问;数据包 3同样要访问 6号子网, 根据规则 B也被允
许访问;而数据包 4根据规则 D被拒绝;此外, 第 5个数据包
的报文是来自于 101.60.2.1网络的, 根据规则 E也被拒绝 。 注
意, 在利用过滤规则对数据包进行检查时, 应按先 A,B,C
后 D的次序, 依次用各规则进行检查, 次序颠倒将会出现错
误 。 这是因为规则 D和 E本身是有前提的, 只有在依次用 A、
B,C规则检查之后, 亦即先将 135.79网络中的 30,32,36
号子网排除在外, 再执行规则 D检查 (这时因为第 4包中的源
子网地址 1.1是属于 D规则中的其余子网的, 因而是不被允许
通行的 )才不会出错 。 同样, 也应当在执行 A,B,C,D的检
查之后, 再执行 E规则 。
第九章 系统安全性
2,
(1) 有效灵活。
(2) 简单易行。
防火墙机制本身存在固有的缺陷:
(1) 不能防止假冒。
(2) 只在网络层和传输层实现。
(3) 缺乏可审核性。
(4) 不能防止来自内部人员造成的威胁。
第九章 系统安全性
9.5.2
1,代理服务的基本原理
为了防止在 Internet上的其他用户能直接获得 Intranet中的信息, 在
Intranet中设置了一个代理服务器, 并将外部网 (Internet)与内部网之间的连
接分为两段, 一段是从 Internet上的主机引到代理服务器;另一段是由代理
服务器连到内部网中的某一个主机 (服务器 )。 每当有 Internet的主机请求访
问 Intranet的某个应用服务器时, 该请求总被送到代理服务器, 并在其中通
过安全检查后, 再由代理服务器与内部网中的应用服务器建立链接 。 以后,
所有的 Internet上的主机对内部网中应用服务器的访问, 都被送到代理服务
器, 由后者去代替在 Internet上的相应主机, 对 Intranet的应用服务器进行访
问 。 这样就把 Internet主机对 Intranet应用服务器的访问, 置于代理服务器的
安全控制之下, 从而使访问者无法了解到 Intranet的结构和运行情况 。
第九章 系统安全性
2.
代理服务技术是利用一个应用层网关作为代理服务
器的 。 应用层网关可分三种类型,① 双穴主机网关; ②
屏蔽主机网关; ③ 屏蔽子网网关 。 这三种网关都要求有
一台主机, 通常称为, 桥头堡主机, (Bastion Host),它
起着防火墙的作用, 也起着 Internet与 Intranet之间的隔离
作用 。
第九章 系统安全性
1) 双穴主机网关 (Dual-Homed Gateway)
图 9 - 19(a)示出了双穴主机网关的结构 。 其中, 桥头
堡主机充当应用层网关 。 在主机中需要插入两块网卡, 用
于将主机连接到被保护网和 Internet上 。 在主机上运行防火
墙软件, 被保护网与 Internet间的通信必须通过主机, 因而
可以将被保护网很好地屏蔽起来 。 Intranet可以通过桥头堡
主机获得 Internet提供的服务 。 这种应用层网关能有效地保
护和屏蔽 Intranet,且要求的硬件较少, 因而是目前应用较
多的一种防火墙;但桥头堡主机本身缺乏保护, 容易受到
攻击 。
第九章 系统安全性
图 9 – 19 应用层网关
桥头堡主机I n t r a n e t I n t e r n e t
屏幕路由器
( a )
桥头堡主机
I n t r a n e t
I n t e r n e t
( b )
I n t r a n e t 桥头堡主机 内部路由器
外部路由器
公用信息服务器
I n t e r n e t
( c )
第九章 系统安全性
2) 屏蔽主机网关 (Screened Host Gateway)
为了保护桥头堡主机而将它置入被保护网的范围中,
在被保护网与 Internet之间设置一个屏蔽路由器 (Screened
Router)。 它不允许 Internet对被保护网进行直接访问, 只允
许对桥头堡主机进行访问, 屏蔽路由器也只接收来自桥头
堡主机的数据 。 与前述的双穴主机网关类似, 也在桥头堡
主机上运行防火墙软件 。 图 9 - 19(b)示出了屏蔽主机网关的
结构 。 屏蔽主机网关是一种更为灵活的防火墙软件,
它可以利用屏蔽路由器来做更进一步的安全保护 。 但此时
的路由器又处于易受攻击的地位 。 此外, 网络管理员应该
管理在路由器和桥头堡主机中的访问控制表, 使两者协调
一致, 避免出现矛盾 。
第九章 系统安全性
3) 屏蔽子网网关 (Screened Subnet Gateway)
不少被保护网有这样一种要求, 即它能向 Internet上的
用户提供部分信息 。 这部分存放在公用信息服务器上的信
息, 应允许由 Internet上的用户直接读取 。 针对这种情况,
应当在被保护网与 Internet之间, 建立一个小型的独立子网,
同时再增加一个外部路由器来对该子网进行保护 。 这样,
Internet上的用户要访问公共信息服务器时, 只须通过外部
路由器 。 但若该用户要访问 Intranet中的信息时, 则须通过
外部和内部路由器先去访问桥头堡主机, 然后再通过主机
访问 Intranet。 图 9 - 19(c)示出了屏蔽子网网关的结构 。
第九章 系统安全性
3,代理服务技术的优缺点
(1) 屏蔽被保护网。
(2) 对数据流的监控。
(1) 实现起来比较复杂。
(2) 需要特定的硬件支持。
(3) 增加了服务的延迟。
第九章 系统安全性
9.5.3 规则检查防火墙
1.
包过滤防火墙和应用级网关分别工作在 OSI/RM的不同层次
上, 且采用了不同的方法来保障网络的安全 。 这两种方法各有自
己的优点, 但也都存在某些不足之处 。 而规则检查防火墙
(Stateful Inspection Firewall)则是集这两种防火墙技术的优点所形
成的另一种防火墙 。 它能像包过滤防火墙一样, 在网络层上通过
检查 IP地址等手段, 过滤掉对 Intranet进行访问的非法数据包;它
也能像应用级网关一样, 对服务的类型和服务信息的内容进行检
查, 过滤掉其中的非法访问 。 仅此, 即可见规则检查防火墙已是
一种性能更好的防火墙 。 为了进一步提高防火墙的性能, 在规则
检查防火墙中又增加了用于保障网络安全的新功能 。
第九章 系统安全性
2,规则检查防火墙新增加的功能
(1) 认证 。
在防火墙中增加了三种认证方法:第一种是用户认
证, 用于对用户的访问权限进行认证;第二种是客户认
证, 是对用户客户机 IP地址进行认证;第三种是会晤认
证, 是审查是否允许在访问者和被访问服务器之间建立
直接的连接 。
第九章 系统安全性
(2) 内容安全检查 。
内容安全检查包括:为网络中的每个计算机站点进
行病毒检查, 为电子邮件服务提供安全控制的机制, 该
机制可以隐藏 Intranet的结构和用户的真实身份等;此外,
还可以进行基于 FTP命令的内容安全控制, 以禁止用户使
用这些命令 。
(3) 数据加密。
在防火墙中还提供了多种加密方案,以保障 Intranet
中信息的安全。
第九章 系统安全性
(4) 负载均衡 。
当网络上配置了多个能提供相同服务的服务器时,
负载均衡功能可在多个服务器之间实现负载的均衡, 避
免出现忙闲不均的现象 。
综上所述可知, 规则检查防火墙具有非常强大的安
全保障功能, 使防火墙的性能又上了一个台阶, 从而成
为当今最为流行的防火墙 。
第九章 系统安全性
9.1 引言
9.2 数据加密技术
9.3 认证技术
9.4 访问控制技术
9.5 防火墙技术
第九章 系统安全性
9.1 引 言
9.1.1 系统安全性的内容和性质
1,系统安全性的内容
系统安全性包括三个方面的内容, 即物理安全, 逻辑
安全和安全管理 。 物理安全是指系统设备及相关设施受到
物理保护, 使之免遭破坏或丢失;安全管理包括各种安全
管理的政策和机制;而逻辑安全则是指系统中信息资源的
安全,
(1) 保密性 (Secrecy)。
(2) 完整性 (Integrity)。
(3) 可用性 (Availability)。
第九章 系统安全性
2.
系统安全问题涉及面较广, 它不仅与系统中所用的
硬, 软件设备的安全性能有关, 而且与构造系统时所采
用的方法有关, 从而导致了系统安全问题的性质更为复
杂,
(1) 多面性。
(2) 动态性。
(3) 层次性。
(4) 适度性。
第九章 系统安全性
9.1.2
(1) 假冒 (Masquerading)。
(2) 数据截取 (Data Interception)。
(3) 拒绝服务 (Denial of Server)。
(4) 修改 (Modification),
(5) 伪造 (Fabrication)。
(6) 否认 (Repudiation)。
(7) 中断 (Interruption)。
(8) 通信量分析 (Traffic Analysis)。
第九章 系统安全性
9.1.3 对各类资源的威胁
1,对硬件的威胁
(1) 电源掉电。
(2) 设备故障和丢失。
在 Novell公司的 Netware网络 OS中, 提供了三级容错
技术, 此即 SFT-Ⅰ, SFT-Ⅱ 和 SFT-Ⅲ ;在 Windows NT网
络 OS中所采用的是磁盘阵列技术 。 此外, 还必须加强对
计算机系统的管理和日常维护, 以保证硬件的正常运行
和杜绝设备被窃事件的发生 。
第九章 系统安全性
2,对软件的威胁
(1) 删除软件。
(2) 拷贝软件。
(3) 恶意修改。
第九章 系统安全性
3,对数据的威胁
(1) 窃取机密信息。
(2) 破坏数据的可用性。
(3) 破坏数据的完整性。
第九章 系统安全性
4,对远程通信的威胁
(1) 被动攻击方式 。
对于有线信道, 攻击者可以用在通信线路上进行搭接的
方法, 去截获在线路上传输的信息, 以了解其中的内容或数
据的性质 。 这种攻击方式, 一般不会干扰信息在通信线中
的正常传输, 因而也不易被检测出来 。 通常把这种攻击方式
称为被动攻击 。 对付被动攻击的最有效方法, 是对所传输的
数据进行加密, 这样, 攻击者只能获得被加密过的密文, 但
却无法了解密文的含义;对于无线信道, 如微波信道, 卫
星信道, 防范攻击的有效方法也同样是对数据进行加密处理 。
第九章 系统安全性
(2) 主动攻击方式 。
主动攻击方式通常具有更大的破坏性 。 这里, 攻
击者不仅要截获系统中的数据, 而且还可能冒充合法
用户, 对网络中的数据进行删除, 修改, 或者制造虚
假数据 。 主动攻击, 主要是攻击者通过对网络中各类
结点中的软件和数据加以修改来实现的, 这些结点可
以是主机, 路由器或各种交换器 。
第九章 系统安全性
9.1.4
1,CC
对一个安全产品 (系统 )进行评估, 是件十分复杂的
事 。 它对公正性和一致性要求很严 。 因此, 需要有一个
能被广泛接受的评估标准 。 为此, 美国国防部在 80年代
中期制订了一组计算机系统安全需求标准, 共包括 20多
个文件, 每个文件都使用了彼此不同颜色的封面, 统称
为, 彩虹系列, 。 其中最核心的是具有橙色封皮的, 可
信任计算机系统评价标准 (TCSEC)”,简称为, 橙皮书, 。
第九章 系统安全性
该标准中将计算机系统的安全程度划分为 8个等级, 有
D1,C1,C2,B1,B2,B3,A1和 A2。 在橙皮书中, 对每个
评价级别的资源访问控制功能和访问的不可抵赖性, 信任度
及产品制造商应提供的文档, 作了一系列的规定, 其中以 D1
级为安全度最低级, 称为安全保护欠缺级 。 常见的无密码
保护的个人计算机系统便属于 D1级 。 C1级称为自由安全保护
级, 通常具有密码保护的多用户工作站便属于 C1级 。 C2级
称为受控存取控制级, 当前广泛使用的软件, 如 UNIX操作
系统, ORACLE数据库系统等, 都能达到 C2级 。 从 B级开始,
要求具有强制存取控制和形式化模型技术的应用 。 B3,A1级
进一步要求对系统中的内核进行形式化的最高级描述和验证 。
一个网络所能达到的最高安全等级, 不超过网络上其安全性
能最低的设备 (系统 )的安全等级 。
第九章 系统安全性
2,CC的组成
CC由两部分组成, 一部分是信息技术产品的安全功
能需求定义, 这是面向用户的, 用户可以按照安全功能
需求来定义, 产品的保护框架, (PP),CC要求对 PP进行
评价以检查它是否能满足对安全的要求; CC的另一部分
是安全保证需求定义, 这是面向厂商的, 厂商应根据 PP文
件制定产品的, 安全目标文件, (ST),CC同样要求对 ST
进行评价, 然后根据产品规格和 ST去开发产品 。
第九章 系统安全性
安全功能需求部分, 包括一系列的安全功能定义,
它们是按层次式结构组织起来的, 其最高层为类 (Class)。
CC将整个产品 (系统 )的安全问题分为 11类, 每一类侧重于
一个安全主题 。 中间层为帧 (Family),在一类中的若干个
簇都基于相同的安全目标, 但每个簇各侧重于不同的方
面 。 最低层为组件 (Component),这是最小可选择的安全
功能需求 。 安全保证需求部分, 同样是按层次式结构组
织起来的 。
须指出的是, 保障计算机和系统的安全性, 将涉及到
许多方面, 其中有工程问题, 经济问题, 技术问题, 管
理问题, 甚至涉及到国家的立法问题 。 但在此, 我们仅
限于介绍用来保障计算机和系统安全的基本技术, 包括认
证技术, 访问控制技术, 密码技术, 数字签名技术, 防
火墙技术等等 。
第九章 系统安全性
9.2 数据加密技术
9.2.1 数据加密的基本概念
直至进入 20世纪 60年代, 由于电子技术和计算机技术
的迅速发展, 以及结构代数, 可计算性理论学科研究成果
的出现, 才使密码学的研究走出困境而进入了一个新的发
展时期;特别是美国的数据加密标准 DES和公开密钥密码
体制的推出, 又为密码学的广泛应用奠定了坚实的基础 。
1,数据加密技术的发展
第九章 系统安全性
2,数据加密模型
图 9-1数据加密模型
加密
算法
E
Ke
解密
算法
D
Kd
干扰
密 文
干扰
明文 P明文 P
加密钥匙 Ke 解密钥匙 Kd
第九章 系统安全性
(1) 明文 (plain text)。 被加密的文本, 称为明文 P。
(2) 密文 (cipher text)。 加密后的文本, 称为密文 Y。
(3) 加密 (解密 )算法 E(D)。 用于实现从明文 (密文 )
到密文 (明文 )转换的公式, 规则或程序 。
(4) 密钥 K。 密钥是加密和解密算法中的关键参数。
第九章 系统安全性
加密过程可描述为:在发送端利用加密算法 E和加密
密钥 Ke对明文 P进行加密, 得到密文 Y=EKe(P)。 密文 Y被传
送到接收端后应进行解密 。 解密过程可描述为:接收端利
用解密算法 D和解密密钥 Kd对密文 Y进行解密, 将密文恢
复为明文 P=DKd(Y)。
在密码学中, 把设计密码的技术称为密码编码, 把破
译密码的技术称为密码分析 。 密码编码和密码分析合起来
称为密码学 。 在加密系统中, 算法是相对稳定的 。 为了加
密数据的安全性, 应经常改变密钥, 例如, 在每加密一
个新信息时改变密钥, 或每天, 甚至每个小时改变一次密
钥 。
第九章 系统安全性
3.
1)
(1) 对称加密算法 。 在这种方式中, 在加密算法和解密
算法之间, 存在着一定的相依关系, 即加密和解密算法往往
使用相同的密钥;或者在知道了加密密钥 Ke后, 就很容易
推导出解密密钥 Kd。 在该算法中的安全性在于双方能否妥
善地保护密钥 。 因而把这种算法称为保密密钥算法 。
(2) 非对称加密算法 。 这种方式的加密密钥 Ke和解密密
钥 Kd不同, 而且难以从 Ke推导出 Kd来 。 可以将其中的一个
密钥公开而成为公开密钥, 因而把该算法称为公开密钥算法 。
用公开密钥加密后, 能用另一把专用密钥解密;反之亦然 。
第九章 系统安全性
2)
(1) 序列加密算法 。 该算法是把明文 P看作是连续的比
特流或字符流 P1,P2,P3 …,在一个密钥序列 K=K1,K2、
K3…的控制下, 逐个比特 (或字符 )地把明文转换成密文 。 可
EK(P)=EK1(P1)EK2(P2)EK3(P3)…
这种算法可用于对明文进行实时加密 。
(2) 分组加密算法 。 该算法是将明文 P划分成多个固定
长度的比特分组, 然后, 在加密密钥的控制下, 每次变换
一个明文分组 。 最著名的 DES算法便是以 64位为一个分组
进行加密的 。
第九章 系统安全性
4,基本加密方法
1)
易位法是按照一定的规则, 重新安排明文中的比特或
字符的顺序来形成密文, 而字符本身保持不变 。 按易位单
位的不同又可分成比特易位和字符易位两种易位方式 。 前
者的实现方法简单易行, 并可用硬件实现, 主要用于数字
通信中;而后者即字符易位法则是利用密钥对明文进行易
位后形成密文, 具体方法是:假定有一密钥 MEGABUCK,
其长度为 8,则其明文是以 8个字符为一组写在密文的下面,
如图 9 - 2 所示 。
第九章 系统安全性
图 9-2 按字符易位加密算法
第九章 系统安全性
按密钥中字母在英文字母表中的顺序来确定明文排列后
的列号 。 如密钥中的 A所对应的列号为 1,B为 2,C为 3,
E为 4等 。 然后再按照密钥所指示的列号, 先读出第一列
中的字符, 读完第 1列后, 再读出第 2列中的字符, ……,
这样, 即完成了将明文 please transfer ……转换为密文
AFLLSKSOSELAWAIA …… 的加密过程 。
第九章 系统安全性
2)
置换法是按照一定的规则, 用一个字符去置换 (替代 )
另一个字符来形成密文 。 最早由朱叶斯 ·凯撒 (Julius
caeser)提出的算法, 非常简单, 它是将字母 a,b,c,…、
x,y,z循环右移三位后, 形成 d,e,f,…,a,b,c
字符序列, 再利用移位后的序列中的字母去分别置换未
移位序列中对应位置的字母, 即利用 d置换 a,用 e置换 b
等 。 凯撒算法的推广是移动 K位 。 单纯移动 K位的置换算
法很容易被破译, 比较好的置换算法是进行映像 。 例如,
将 26个英文字母映像到另外 26个特定字母中, 见图 9 - 3
所示 。 利用置换法可将 attack加密, 变为 QZZQEA。
第九章 系统安全性
9 –3 26个字母的映像
第九章 系统安全性
9.2.2 对称加密算法与非对称加密算法
1,对称加密算法
现代加密技术所用的基本手段, 仍然是易位法和置换
法, 但它与古典方法的重点不同 。 在古典法中通常采用的
算法较简单, 而密钥则较长;现代加密技术则采用十分复
杂的算法, 将易位法和置换法交替使用多次而形成乘积密
码 。 最有代表性的对称加密算法是数据加密标准 DES(Data
Eneryption Standard)。 该算法原来是 IBM公司于 1971~1972
年研制成功的, 它旨在保护本公司的机密产品, 后被美国
国家标准局选为数据加密标准, 并于 1977年颁布使用 。 ISO
现在已将 DES作为数据加密标准 。 随着 VLSI的发展, 现在
可利用 VLSI芯片来实现 DES算法, 并用它做成数据加密处
理器 DEP。
第九章 系统安全性
在 DES中所使用的密钥长度为 64位, 它由两部分组成,
一部分是实际密钥, 占 56位;另一部分是 8位奇偶校验码 。
DES属于分组加密算法, 它将明文按 64位一组分成若干个
明文组, 每次利用 56位密钥对 64位的二进制明文数据进行
加密, 产生 64位密文数据 。 DES算法的总框图如图 9 - 4(a)
所示 。 整个加密处理过程可分为四个阶段 (共 19步 ),见图 9-
4(b)所示 。
第九章 系统安全性
图 9-4 DES加密标准
初始易位处理
迭代处理 i
左右互换
还原易位
56
位
钥
匙
K
i
i = 1 ~ 16
64 位密文
L
i
- 1 R
i
- 1
L
i
R
i
+ f
( a ) D ES 算法总框图 ( b ) 迭代过程示意图
64 位明文
第九章 系统安全性
第一阶段:先将明文分出 64位的明文段, 然后对 64
位明文段做初始易位处理, 得到 X0,将其左移 32位, 记
为 L0,右移 32位, 记为 R0。
第二阶段:对初始易位结果 X0进行 16次迭代处理 (相
应于第 2~17步 ),每一次使用 56位加密密钥 Ki。 第 2~17步
的迭代过程如图 9-4(b)所示 。 由图可以看出, 输出的左
32位 Li是输入右 32位 Ri-1的拷贝;而输出的右 32位 Ri,则
是在密钥 Ki的控制下, 对输入右 32位 Ri-1做函数 f的变换
后的结果, 再与输入左 32位 Li-1 进行异或运算而形成的,
第九章 系统安全性
11
1
),( ??
?
??
?
iiii
ii
LKRfR
RL
第三阶段:把经过 16次迭代处理的结果 (64位 )的左
32位与右 32位互易位置 。
第四阶段,进行初始易位的逆变换。
第九章 系统安全性
2.
DES加密算法属于对称加密算法 。 加密和解密所使用的
密钥是相同的 。 DES的保密性主要取决于对密钥的保密程度 。
加密者必须用非常安全的方法 (如通过个人信使 )将密钥送给接
收者 (解密者 )。 如果通过计算机网络传送密钥, 则必须先对密
钥本身予以加密后再传送, 通常把这种算法称为对称保密密
钥算法 。
1976年美国的 Diffie和 Hallman提出了一个新的非对称密码
体制 。 其最主要的特点是在对数据进行加密和解密时, 使用
不同的密钥 。 每个用户都保存着一对密钥, 每个人的公开密
钥都对外公开 。 假如某用户要与另一用户通信, 他可用公开
密钥对数据进行加密, 而收信者则用自己的私用密钥进行解
密 。 这样就可以保证信息不会外泄 。
第九章 系统安全性
(1) 设加密算法为 E,加密密钥为 Ke,可利用它们对明
文 P进行加密, 得到 EKe(P)密文 。 设解密算法为 D,解密密
钥为 Kd,可利用它们将密文恢复为明文,
DKd(EKe(P))=P
(2) 要保证从 Ke推出 Kd是极为困难的,或者说,从
Ke推出 Kd
(3) 在计算机上很容易产生成对的 Ke和 Kd。
(4) 加密和解密运算可以对调, 即利用 DKd对明文进行
加密形成密文, 然后用 EKe对密文进行解密, 即
PPDE kdke ?))((
第九章 系统安全性
在此情况下, 解密密钥或加密密钥公开也无妨 。 因而这
种加密方法称为公开密钥法 (Publie Key)。 在公开密钥体制中,
最著名的是 RSA体制, 它已被 ISO推荐为公开密钥数据加密
标准 。
由于对称加密算法和非对称加密算法各有优缺点, 即非
对称加密算法要比对称加密算法处理速度慢, 但密钥管理简
单, 因而在当前新推出的许多新的安全协议中, 都同时应
用了这两种加密技术 。 一种常用的方法是利用公开密钥技术
传递对称密码, 而用对称密钥技术来对实际传输的数据进行
加密和解密, 例如, 由发送者先产生一个随机数, 此即对称
密钥, 用它来对欲传送的数据进行加密;然后再由接收者
的公开密钥对对称密钥进行加密 。 接收者收到数据后, 先用
私用密钥对对称密钥进行解密, 然后再用对称密钥对所收到
的数据进行解密 。
第九章 系统安全性
9.2.3
1.
在金融和商业等系统中, 许多业务都要求在单据上加
以签名或加盖印章, 证实其真实性, 以备日后查验 。 在利
用计算机网络传送报文时, 可将公开密钥法用于电子 (数字 )
签名来代替传统的签名 。 为使数字签名能代替传统的签名,
(1) 接收者能够核实发送者对报文的签名 。
(2) 发送者事后不能抵赖其对报文的签名 。
(3) 接收者无法伪造对报文的签名。
第九章 系统安全性
1)
在这种数字签名方式中, 发送者 A可使用私用密钥 Kda对明
文 P进行加密, 形成 DKda(P)后传送给接收者 B。 B可利用 A的公
开密钥 Kea对 DKda(P)进行解密, 得到 EKea(DKda(P))=P,如图 9 -
5(a)所示 。
图 9 – 5 数字签名示意图
D
P D
K d a
( P ) = Y
E
E
K e a
(D
K d a
( P ) ) = P
K d a K e a
( a )
D
P D
K d a
( P )
E
E
K e b
(D
K d a
( P ) )
K d a K e b
( b )
D
K d b
D
K d a
( P )
E
K e a
P
第九章 系统安全性
我们按照对数字签名的三点基本要求进行分析后可得知:
(1) 接收者能利用 A的公开密钥 Kea对 DKda(P)进行解密, 这
便证实了发送者对报文的签名 。
(2) 由于只有发送者 A才能发送出 DKda(P)密文, 故不容 A
进行抵赖 。
(3) 由于 B没有 A所拥有的私用密钥, 故 B无法伪造对报文
的签名 。
由此可见, 图 9 - 5(a) 所示的简单方法可以实现对传送
的数据进行签名, 但并不能达到保密的目的, 因为任何人都
能接收 DKda(P),且可用 A的公开密钥 Kea对 DKda(P)进行解密 。
为使 A所传送的数据只能为 B所接收, 必须采用保密数字签名 。
第九章 系统安全性
2)
为了实现在发送者 A和接收者 B之间的保密数字签名, 要求
A和 B都具有密钥, 再按照图 9-5(b)所示的方法进行加密和解密 。
(1) 发送者 A可用自己的私用密钥 Kda对明文 P加密, 得到密
文 DKda(P)。
(2) A再用 B的公开密钥 Keb对 DKda(P)进行加密, 得到
EKeb(DKda(P))后送 B。
(3) B 收 到 后, 先 用 私 用 密 钥 Kdb 进 行 解 密, 即
DKdb(EKeb(DKda(P)))=DKda(P)。
(4) B再用 A的公开密钥 Kea对 DKda(P)进行解密, 得到
EKea(DKda(P))=P。
第九章 系统安全性
2,数字证明书 (Certificate)
(1) 用户 A在使用数字证明书之前, 应先向认证机构 CA
申请数字证明书, 此时 A应提供身份证明和希望使用的公开
密钥 A。
(2) CA在收到用户 A发来的申请报告后, 若决定接受其
申请, 便发给 A一份数字证明书, 在证明书中包括公开密
钥 A和 CA发证者的签名等信息, 并对所有这些信息利用 CA
的私用密钥进行加密 (即 CA进行数字签名 )。
(3) 用户 A在向用户 B发送报文信息时, 由 A用私用密钥
对报文加密 (数字签名 ),并连同已加密的数字证明书一起发
送给 B。
第九章 系统安全性
(4) 为了能对所收到的数字证明书进行解密, 用户 B须向
CA机构申请获得 CA的公开密钥 B。 CA收到用户 B的申请后,
可决定将公开密钥 B发送给用户 B。
(5) 用户 B利用 CA的公开密钥 B对数字证明书加以解密,
以确认该数字证明书确系原件, 并从数字证明书中获得公开
密钥 A,并且也确认该公开密钥 A确系用户 A的 。
(6) 用户 B再利用公开密钥 A对用户 A发来的加密报文进
行解密, 得到用户 A发来的报文的真实明文 。
第九章 系统安全性
9.2.4 网络加密技术
1,链路加密 (Link Encryption)
链路加密, 是对在网络相邻结点之间通信线路上传输的数
据进行加密 。 链路加密常采用序列加密算法, 它能有效地防止
搭线窃听所造成的威胁 。 两个数据加密设备分别置于通信线路
的两端, 它们使用相同的数据加密密钥 。
如果在网络中只采用了链路加密, 而未使用端 —端加密, 那
么, 报文从最高层 (应用层 )到数据链路层之间, 都是以明文的形
式出现的, 只是从数据链路层进入物理层时, 才对报文进行了
加密, 并把加密后的数据通过传输线路传送到对方结点上 。 为
了防止攻击者对网络中的信息流进行分析, 在链路加密方式中,
不仅对正文做了加密, 而且对所有各层的控制信息也进行了加
密 。
第九章 系统安全性
接收结点在收到加密报文后, 为了能对报文进行转发,
必须知道报文的目标地址 。 为此, 接收结点上的数据加密设
备应对所接收到的加密报文进行解密, 从中找出目标地址并
进行转发 。 当该报文从数据链路层送入物理层 (转发 )时, 须
再次对报文进行加密 。 由上所述得知, 在链路加密方式中,
在相邻结点间的物理信道上传输的报文是密文, 而在所有中
间结点中的报文则是明文, 这给攻击者造成了可乘之机, 使
其可从中间结点上对传输中的信息进行攻击 。 这就要求能对
所有各中间结点进行有效的保护 。
第九章 系统安全性
此外, 在链路加密方式中, 通常对每一条链路都分别
采用不同的加密密钥 。 图 9-6 示出了链路加密时的情况 。 在
图中, 结点 2的 DEE使用密钥 Kd2将密文 EKe1(P)解密为明文 P
后, 又用密钥 Ke2将 P变换为密文 EKe2(P)。 可见, 对于一个
稍具规模的网络, 将需要非常多的加密硬件, 这是必要的 。
图 9 – 6 链路加密方式
E D E
K e 1 K d 2 K e 2
结点 1 结点 2
E
K e 1
( P ) E
K a 2
( P )
D E
K d 3 K e 3
结点 3
P P E
K e 3
( P )P
第九章 系统安全性
2.端 —端加密 (End-to-End Encryption)
在单纯采用链路加密方式时, 所传送的数据在中间
结点将被恢复为明文, 因此, 链路加密方式尚不能保证
通信的安全性;而端 —端加密方式是在源主机或前端机
FEP中的高层 (从传输层到应用层 )对所传输的数据进行加
密 。 在整个网络的传输过程中, 不论是在物理信道上,
还是在中间结点, 报文的正文始终是密文, 直至信息到
达目标主机后, 才被译成明文, 因而这样可以保证在中
间结点不会出现明文 。
第九章 系统安全性
图 9 – 7 端 —端加密方式
A C C
F E P
K D C
F E P
主机 A
F
F E P F E P
主机 B
1
2
3
4
5
第九章 系统安全性
在端 —端加密方式中, 只要密钥没有泄漏, 数据在
传输过程中就不怕被窃取, 也无须对网络中间结点的操
作人员提出特殊要求 。 但在这种加密方式中, 不能对报
头中的控制信息 (如目标地址, 路由信息等 )进行加密,
否则中间结点将无法得知目标地址和有关的控制信息 。
显然, 报头不能加密, 也将会直接或间接地受到攻击,
比如, 攻击者可能根据报头中的源地址和目标地址, 了
解到某些部门的通信情况, 甚至还可以发起诸如篡改报
文的目标地址和路由信息之类的主动攻击 。
第九章 系统安全性
上述两种加密方式各有优缺点 。 一种比较好的网
络加密方式是, 同时采用链路加密和端 —端加密, 以取
长补短 。 如利用端 —端加密方式来使用户数据以密文形
式穿越各个中间结点, 以保障用户数据的安全;而利用
链路加密方式则可使报头中的控制信息以密文形式在通
信信道中传输, 使之不易受到攻击 。
第九章 系统安全性
9.3 认 证 技 术
9.3.1 基于口令的身份认证技术
1,口令
利用口令来确认用户的身份, 是当前最常用的认证技术 。
通常, 每当用户要上机时, 系统中的登录程序都首先要求用
户输入用户名, 登录程序利用用户输入的名字去查找一张用
户注册表或口令文件 。 在该表中, 每个已注册用户都有一个
表目, 其中记录有用户名和口令等 。 登录程序从中找到匹配
的用户名后, 再要求用户输入口令, 如果用户输入的口令也
与注册表中用户所设置的口令一致, 系统便认为该用户是合
法用户, 于是允许该用户进入系统;否则将拒绝该用户登录 。
第九章 系统安全性
口令是由字母或数字, 或字母和数字混合组成的,
它可由系统产生, 也可由用户自己选定 。 系统所产生
的口令不便于用户记忆, 而用户自己规定的口令则通
常是很容易记忆的字母, 数字, 例如生日, 住址, 电
话号码, 以及某人或宠物的名字等等 。 这种口令虽便
于记忆, 但也很容易被攻击者猜中 。
第九章 系统安全性
2,对口令机制的基本要求
基于用户标识符和口令的用户认证技术, 其最主要
的优点是简单易行, 因此, 在几乎所有需要对数据加以保
密的系统中, 都引入了基于口令的机制 。 但这种机制也
很容易受到别有用心者的攻击, 攻击者可能通过多种方式
来获取用户标识符和口令, 或者猜出用户所使用的口令 。
为了防止攻击者猜出口令, 在这种机制中通常应满足以下
几点要求:
第九章 系统安全性
(1) 口令长度要适中 。
通常的口令是由一串字母和数字组成 。 如果口令太
短, 则很容易被攻击者猜中 。 例如, 一个由四位十进制
数所组成的口令, 其搜索空间仅为 104,在利用一个专门
的程序来破解时, 平均只需 5000次即可猜中口令 。 假如每
猜一次口令需花费 0.1 ms的时间, 则平均每猜中一个口令
仅需 0.5 s。 而如果采用较长的口令, 假如口令由 ASCII码
组成, 则可以显著地增加猜中一个口令的时间 。 例如, 口
令由 7位 ASCII码组成, 其搜索空间变为 957(95是可打印的
ASCII码 ),大约是 7× 1013,此时要猜中口令平均需要几十
年 。
第九章 系统安全性
(2) 自动断开连接 。
为了给攻击者猜中口令增加难度, 在口令机制中还应
引入自动断开连接的功能, 即只允许用户输入有限次数的
不正确口令, 通常规定 3~5次 。 如果用户输入不正确口令
的次数超过规定的次数时, 系统便自动断开该用户所在终
端的连接 。 当然, 此时用户还可能重新拨号请求登录,
但若在重新输入指定次数的不正确口令后, 仍未猜中, 系
统会再次断开连接 。 这种自动断开连接的功能, 无疑又给
攻击者增加了猜中口令的难度 。
第九章 系统安全性
(3) 不回送显示 。
在用户输入口令时, 登录程序不应将该口令回送到屏
幕上显示, 以防止被就近的人发现 。
(4) 记录和报告 。
该功能用于记录所有用户登录进入系统和退出系统的
时间;也用来记录和报告攻击者非法猜测口令的企图及所
发生的与安全性有关的其它不轨行为, 这样便能及时发现
有人在对系统的安全性进行攻击 。
第九章 系统安全性
3,一次性口令 (One time Passward)
为了把由于口令泄露所造成的损失减到最小, 用户应当
经常改变口令 。 例如, 一个月改变一次, 或者一个星期改变
一次 。 一种极端的情况是采用一次性口令机制 。 在利用该机
制时, 用户必须提供记录有一系列口令的一张表, 并将该表
保存在系统中 。 系统为该表设置一指针用于指示下次用户登
录时所应使用的口令 。 这样, 用户在每次登录时, 登录程序
便将用户输入的口令与该指针所指示的口令相比较, 若相同,
便允许用户进入系统, 并将指针指向表中的下一个口令 。 在
采用一次性口令的机制时, 即使攻击者获得了本次用户上机
时所使用的口令, 他也无法进入系统 。 必须注意, 用户所使
用的口令表, 必须妥善保存好 。
第九章 系统安全性
4,口令文件
通常在口令机制中, 都配置有一份口令文件, 用于
保存合法用户的口令和与口令相联系的特权 。 该文件的
安全性至关重要, 一旦攻击者成功地访问了该文件, 攻
击者便可随心所欲地访问他感兴趣的所有资源, 这对整
个计算机系统的资源和网络, 将无安全性可言 。 显然,
如何保证口令文件的安全性, 已成为系统安全性的头等
重要问题 。
第九章 系统安全性
保证口令文件安全性的最有效的方法是, 利用加密技术,
其中一个行之有效的方法是选择一个函数来对口令进行加密,
f(x)具有这样的特性:在给定了 x值后, 很容易算出
f(x); 然而, 如果给定了 f(x)的值, 却不能算出 x的值 。 利用
f(x)函数去编码 (即加密 )所有的口令, 再将加密后的口令存入
口令文件中 。 当某用户输入一个口令时, 系统利用函数 f(x)对
该口令进行编码, 然后将编码 (加密 )后的口令与存储在口令
文件中的已编码的口令进行比较, 如果两者相匹配, 便认为
是合法用户 。 顺便说明一下, 即使攻击者能获取口令文件中
的已编码口令, 他也无法对它们进行译码, 因而不会影响到
系统的安全性 。
第九章 系统安全性
图 9 – 8 对加密口令的验证方法
超过规
定次数?
口令合法?
进入系统
拒绝
进入
否
是
否
口令文件
进行口令
比较
f ( x )
f ( x )
加密函数
存入口令
用户输
入口令
是
第九章 系统安全性
尽管对口令进行加密是一个很好的方法, 但它也不
是绝对的安全可靠 。
(1) 当攻击者已掌握了口令的解密密钥时, 就可用它
来破译口令 。
(2) 利用加密程序来破译口令, 如果运行加密程序的
计算机速度足够快, 则通常只要几个小时便可破译口令 。
因此, 人们还是应该妥善保管好已加密的口令文件,
来防止攻击者轻意地获取该文件 。
第九章 系统安全性
9.3.2 基于物理标志的认证技术
1,基于磁卡的认证技术
根据数据记录原理, 可将当前使用的卡分为磁卡和 IC卡
两种 。 磁卡是基于磁性原理来记录数据的, 目前世界各国使
用的信用卡和银行现金卡等, 都普遍采用磁卡 。 这是一块其
大小和名片大小相仿的塑料卡, 在其上贴有含若干条磁道的
磁条 。 一般在磁条上有三条磁道, 每条磁道都可用来记录不
同标准和不同数量的数据 。 磁道上可有两种记录密度, 一种
是每英寸含有 15比特的低密度磁道;另一种是每英寸含有
210比特的高密度磁道 。 如果在磁条上记录了用户名, 账号
和金额, 这就是金融卡或银行卡;而如果在磁条上记录的是
有关用户的信息, 则该卡便可作为识别用户身份的物理标志 。
第九章 系统安全性
在磁卡上所存储的信息, 可利用磁卡读写器将之读出:
只要将磁卡插入或划过磁卡读写器, 便可将存储在磁卡中
的数据读出, 并传送到相应的计算机中 。 用户识别程序便
利用读出的信息去查找一张用户信息表 (该表中包含有若干
个表目, 每个用户占有一个表目, 表目中记录了有关该用
户的信息 ),若找到匹配的表目, 便认为该用户是合法用户;
否则便认为是非法用户 。 为了保证持卡者是该卡的主人,
通常在基于磁卡认证技术的基础上, 又增设了口令机制,
每当进行用户身份认证时, 都要求用户输入口令 。
第九章 系统安全性
2,基于 IC
IC卡即集成电路卡的英文缩写 。 在外观上 IC卡与磁
卡并无明显差别, 但在 IC卡中可装入 CPU和存储器芯片,
使该卡具有一定的智能, 故又称为智能卡或灵巧卡 。 IC
卡中的 CPU用于对内部数据的访问和与外部数据进行交
换, 还可利用较复杂的加密算法, 对数据进行处理, 这
使 IC卡比磁卡具有更强的防伪性和保密性, 因而 IC卡会
逐步取代磁卡 。 根据在磁卡中所装入芯片的不同可把 IC
卡分为以下三种类型:
第九章 系统安全性
(1) 存储器卡 。 在这种卡中只有一个 E2PROM(可电擦,
可编程只读存储器 )芯片, 而没有微处理器芯片 。 它的智能
主要依赖于终端, 就像 IC电话卡的功能是依赖于电话机一样 。
由于此智能卡不具有安全功能, 故只能用来存储少量金额的
现金与信息 。 常见的智能卡有电话卡, 健康卡, 其只读存
储器的容量一般为 4~20 KB。
(2) 微处理器卡 。 它除具有 E2PROM外, 还增加了一个
微处理器 。 只读存储器的容量一般是数千字节至数万字节;
处理器的字长主要是 8位的 。 在这种智能卡中已具有一定的
加密设施, 增强了 IC卡的安全性 。
第九章 系统安全性
(3) 密码卡 。 在这种卡中又增加了加密运算协处理
器和 RAM。 之所以把这种卡称为密码卡, 是由于它能支
持非对称加密体制 RSA;所支持的密钥长度可长达 1024
位, 因而极大地增强了 IC卡的安全性 。 一种专门用于确
保安全的智能卡, 在卡中存储了一个很长的用户专门密
钥和数字证明书, 完全可以作为一个用户的数字身份证
明 。 当前在 Internet上所开展的电子交易中, 已有不少密
码卡是使用了基于 RSA的密码体制 。
第九章 系统安全性
将 IC卡用于身份识别的方法, 明显地优于使用磁卡 。 这
一方面是因为, 磁卡是将数据存储在磁条上, 比较易于用一
般设备将其中的数据读出, 修改和进行破坏;而 IC卡则是将
数据保存在存储器中, 使用一般设备难于读出, 这使 IC卡具
有更好的安全性 。 另一方面, 在 IC卡中含有微处理器和存储
器, 可进行较复杂的加密处理, 因此, IC卡具有非常好的防
伪性和保密性; 此外, 还因为 IC卡所具有的存储容量比磁卡
的大得多, 通常可大到 100倍以上, 因而可在 IC卡中存储更多
的信息, 从而做到, 一卡多用,, 换言之, 一张 IC卡, 既可
作为数字身份证, 又可作为信用卡, 电话卡及健康卡等等 。
第九章 系统安全性
3,指纹识别技术
(1) 指纹 。
指纹有着, 物证之首, 的美誉 。 尽管目前全球已有近
60亿人口, 但绝对不可能找到两个完全相同的指纹 。 因
而利用指纹来进行身份认证是万无一失的, 而且非常方便 。
又因为它不会像其它一些物理标志那样出现用户忘记携带
或丢失等问题, 而且使用起来也特别方便, 因此, 利用指
纹来进行身份识别是有广阔前景的一种识别技术, 世界上
已有愈来愈多的国家开展了对指纹识别技术的研究 。
第九章 系统安全性
(2) 指纹识别系统 。
早在 80年代, 美国及其它发达国家便开始了对指纹
识别技术的研究, 并取得了一定的进展 。 在所构成的指
纹识别系统中包括:指纹输入, 指纹图像压缩, 指纹自
动比较等 8个子系统 。 但他们的指纹识别系统是建立在
大型计算机系统的基础上的, 而且由于系统的庞大, 价
格的昂贵, 始终使该技术难于普及;直至近几年, 随着
VLSI的迅速发展, 才使指纹识别系统小型化, 使该技
术进入了广泛应用的阶段 。
第九章 系统安全性
9.3.3 基于公开密钥的认证技术
1,申请数字证书
由于 SSL所提供的安全服务, 是基于公开密钥证明书 (数
字证书 )的身份认证, 因此, 凡是要利用 SSL的用户和服务器,
都必须先向认证机构 (CA)申请公开密钥证明书 。
(1) 服务器申请数字证书 。
首先由服务管理器生成一密钥对和申请书, 服务器一方
面将密钥和申请书的备份保存在安全之处;另一方面则向 CA
提交包括密钥对和签名证明书申请 (即 CSR)的加密文件, 通
常以电子邮件方式发送 。 CA接收并检查该申请的合法性后,
将会把数字证书以电子邮件方式寄给服务器 。
第九章 系统安全性
(2) 客户申请数字证书 。
首先由浏览器生成一密钥对, 私有密钥被保存在客
户的私有密钥数据库中, 将公开密钥连同客户提供的其
它信息, 一起发往 CA。 如果该客户符合 CA要求的条件,
CA将会把数字证书以电子邮件方式寄给客户 。
第九章 系统安全性
2,SSL握手协议
(1) 身份认证 。
SSL协议要求通信的双方都利用自己的私用密钥对
所要交换的数据进行数字签名, 并连同数字证书一起发
送给对方, 以便双方相互检验 。 如上节所述, 通过数字
签名和数字证书的验证可以认证对方的身份是否真实 。
第九章 系统安全性
(2) 协商加密算法 。
为了增加加密系统的灵活性, SSL协议允许采用多种加
密算法 。 客户和服务器在通信之前, 应首先协商好所使用的
某一种加密算法 。 通常先由客户提供自己能支持的所有加密
算法清单, 然后由服务器从中选择出一种最有效的加密算法,
并通知客户, 此后, 双方便可利用该算法对所传送的信息进
行加密 。
(3) 协商加密密钥 。
先由客户机随机地产生一组密钥, 再利用服务器的公开
密钥对这组密钥进行加密后, 送往服务器, 由服务器从中选
择 4个密钥, 并通知客户机, 将之用于对所传输的信息进行加
密 。
第九章 系统安全性
3.
(1) 数据加密 。
在客户机和服务器间传送的所有信息, 都应利用协商后
所确定的加密算法和密钥进行加密处理, 以防止被攻击 。
(2) 检查数据的完整性 。
为了保证经过长途传输后所收到的数据是可信任的,
SSL协议还利用某种算法对所传送的数据进行计算, 以产生
能保证数据完整性的数据识别码 (MAC),再把 MAC和业务数
据一起传送给对方;而收方则利用 MAC来检查所收到数据的
完整性 。
第九章 系统安全性
9.4
9.4.1 访问矩阵 (Access Matrix)
1)
为了对系统中的对象加以保护, 应由系统来控制进程对
对象的访问 。 我们把一个进程能对某对象执行操作的权力称
为访问权 (Access right)。 每个访问权可以用一个有序对 (对象
名, 权集 )来表示, 例如, 某进程有对文件 F1执行读和写操
作的权力, 这时, 可 将该进 程的访 问权表 示成 (F1,
{ R/W} )。
第九章 系统安全性
2)
为了对系统中的资源进行保护而引入了保护域的概念,
保护域简称为, 域, 。, 域, 是进程对一组对象访问权的
集合, 进程只能在指定域内执行操作, 这样,, 域, 也
就规定了进程所能访问的对象和能执行的操作 。 在图 9 -
9中示出了三个保护域 。 在域 1中有两个对象, 即文件 F1和
F2,只允许进程对 F1读, 而允许对 F2 读和写;而对象
Printer1同时出现在域 2和域 3中, 这表示在这两个域中运
行的进程都能使用打印机 。
第九章 系统安全性
图 9 – 9 三个保护域
F
1
[ R ]
F
2
[ R W ]
域 1
F
3
[ R ]
F
4
[ R W E ]
域 2
F
5
[ R W ]
F
6
[ R W E ]
P l o t e r 2 [ W ]
P r i n t e r 1 [ W ]
域 3
第九章 系统安全性
3)
在进程和域之间, 可以一一对应, 即一个进程只联系
着一个域 。 这意味着, 在进程的整个生命期中, 其可用资
源是固定的, 我们把这种域称为, 静态域, 。 在这种情况
下, 进程运行的全过程都是受限于同一个域, 这将会使
赋予进程的访问权超过了实际需要 。 例如, 某进程在运
行开始时需要磁带机输入数据;而在进程快结束时, 又需
要用打印机打印数据 。 在一个进程只联系着一个域的情况
下, 则需要在该域中同时设置磁带机和打印机这两个对象,
这将超过进程运行的实际需要 。
第九章 系统安全性
4)
在进程和域之间, 也可以是一对多的关系, 即一个进程
可以联系着多个域 。 在此情况下, 可将进程的运行分为若干
个阶段, 其每个阶段联系着一个域, 这样便可根据运行的实
际需要, 来规定在进程运行的每个阶段中所能访问的对象 。
用上述的同一个例子, 我们可以把进程的运行分成三个阶段:
进程在开始运行的阶段联系着域 D1,其中包括用磁带机输入;
在运行快结束的第三阶段联系着域 D3,其中是用打印机输出;
中间运行阶段联系着域 D2,其中既不含磁带机, 也不含打印
机 。 我们把这种一对多的联系方式称为动态联系方式, 在采
用这种方式的系统中, 应增设保护域切换功能, 以使进程能
在不同的运行阶段, 从一个保护域切换到另一个保护域 。
第九章 系统安全性
2,访问矩阵
我们可以利用一个矩阵来描述系统的访问控制, 并把该矩
阵称为访问矩阵 (Access Matrix)。 访问矩阵中的行代表域, 列
代表对象, 矩阵中的每一项是由一组访问权组成的 。 因为对象
已由列显式地定义, 故可以只写出访问权而不必写出是对哪个
对象的访问权, 每一项访问权 access(i,j)定义了在域 Di中执行的
进程能对对象 Qj所施加的操作集 。
访问矩阵中的访问权, 通常是由资源的拥有者或者管理者
所决定的 。 当用户创建一个新文件时, 创建者便是拥有者, 系
统在访问矩阵中为新文件增加一列, 由用户决定在该列的某个
项中应具有哪些访问权, 而在另一项中又具有哪些访问权 。 当
用户删除此文件时, 系统也要相应地在访问矩阵中将该文件对
应的列撤消 。
第九章 系统安全性
图 9 - 9 的访问矩阵如图 9 - 10 所示 。 它是由三个域和
8个对象所组成的 。 当进程在域 D1中运行时, 它能读文件
F1,读和写文件 F2。 进程在域 D2中运行时, 它能读文件 F3、
F4和 F5,以及写文件 F4,F5和执行文件 F4,此外还可以使
用打印机 1。 只有当进程在域 D3中运行时, 才可使用绘图
仪 2。
第九章 系统安全性
图 9 – 10 一个访问矩阵
第九章 系统安全性
3,具有域切换权的访问矩阵
为了实现在进程和域之间的动态联系, 应能够将进程从
一个保护域切换到另一个保护域 。 为了能对进程进行控制,
同样应将切换作为一种权力, 仅当进程有切换权时, 才能进
行这种切换 。 为此, 在访问矩阵中又增加了几个对象, 分别
把它们作为访问矩阵中的几个域;当且仅当 switch∈ access(i,j)
时, 才允许进程从域 i切换到域 j。 例如, 在图 9 [CD*2] 11 中,
由于域 D1和 D2所对应的项目中, 有一个 S即 Switch,故而允许
在域 D1中的进程切换到域 D2中 。 类似地, 在域 D2和对象 D3所
对应的项中, 也有 Switch,这表示在 D2域中运行的进程, 可
以切换到域 D3中, 但不允许该进程再从域 D3返回到域 D1。
第九章 系统安全性
图 9 – 11 具有切换权的访问控制矩阵
第九章 系统安全性
9.4.2 访问矩阵的修改
1,拷贝权 (Copy Right)
图 9 – 12 具有拷贝权的访问控制矩阵
第九章 系统安全性
在图 9 - 12 中, 凡是在访问权 (access(i,j))上加星号 (*)者,
都表示在 i域中运行的进程能将其对对象 j的访问权, 复制成
在任何域中对同一对象的访问权 。 例如, 图中在域 D2中对文
件 F2的读访问权上加有 *号时, 表示运行在 D2域中的进程可
以将他对文件 F2的读访问权扩展到域 D3中去 。 又如, 在域 D1
中对文件 F3的写访问权上加有 *号时, 可以使运行在域 D1中
的进程, 可以将他对文件 F3的写访问权扩展到域 D3中去, 使
在域 D3中运行的进程, 也具有对文件 F3的写访问权 。
应注意的是, 把带有 *号的拷贝权如 R*,由 access(i,j)拷
贝成 access(k,j)后, 其所建立的访问权只是 R而不是 R*,这使
在域 DK上运行的进程, 不能再将其拷贝权进行扩散, 从而限
制了访问权的进一步扩散 。 这种拷贝方式被称为限制拷贝 。
第九章 系统安全性
2,所有权 (Owner Right)
人们不仅要求能将已有的访问权进行有控制的扩散, 而
且同样需要能增加某种访问权, 或者能删除某种访问权 。 此
时, 可利用所有权 (O)来实现这些操作 。 如果在 access(i,j)中
包含所有访问权, 则在域 Di上运行的进程, 可以增加或删除
其在 j列上任何项中的访问权 。 换言之, 进程可以增加或删除
在任何其它域中运行的进程对对象 j的访问权 。 例如, 在图 9 -
13(a)中, 在域 D1中运行的进程 (用户 )是文件 F1的所有者, 他
能增加或删除在其它域中运行进程对文件 F1的访问权;类似
地, 在域 D2中运行的进程 (用户 )是文件 F2和文件 F3的拥有者,
该进程可以增加或删除在其它域中运行的进程对这两个文件
的访问权 。 在图 9 -13(b)中示出了在域 D1中运行的进程删除
了在域 D3中运行的进程对文件 F1的执行权;在域 D2中运行的
进程增加了在域 D3中运行进程对文件 F2和 F3的写访问权 。
第九章 系统安全性
图 9 – 13 带所有权的访问矩阵
第九章 系统安全性
3,控制权 (Control Right)
拷贝权和所有权都是用于改变矩阵内同一列中的各项
访问权的, 或者说, 是用于改变在不同域中运行的进程对
同一对象的访问权 。 控制权则可用于改变矩阵内同一行中
(域中 )的各项访问权, 亦即, 用于改变在某个域中运行进
程对不同对象的访问权 。 如果在 access(i,j)中包含了控制权,
则在域 Di中运行的进程可以删除在域 Dj中运行进程对各对
象的任何访问权 。 例如在图 9 - 14中, 在 access(D2,D3)中包
括了控制权, 则一个在域 D2中运行的进程能够改变对域 D3
内各项的访问权 。 比较图 9 -11 和图 9 - 14 可以看出, 在 D3
中已无对文件 F6和 Ploter2的写访问权 。
第九章 系统安全性
图 9 – 14 具有控制权的访问矩阵
第九章 系统安全性
9.4.3
1,访问控制表 (Access Control List)
这是指对访问矩阵按列 (对象 )划分, 为每一列建立一张
访问控制表 ACL。 在该表中, 已把矩阵中属于该列的所有空
项删除, 此时的访问控制表是由一有序对 (域, 权集 )所组成 。
由于在大多数情况下, 矩阵中的空项远多于非空项, 因而使
用访问控制表可以显著地减少所占用的存储空间, 并能提高
查找速度 。 在不少系统中, 当对象是文件时, 便把访问控制
表存放在该文件的文件控制表中, 或放在文件的索引结点中,
作为该文件的存取控制信息 。
第九章 系统安全性
域是一个抽象的概念, 可用各种方式实现 。 最常见
的一种情况是每一个用户是一个域, 而对象则是文件 。 此
时, 用户能够访问的文件集和访问权限, 取决于用户的身
份 。 通常, 在一个用户退出而另一个用户进入时, 即用
户发生改变时, 要进行域的切换;另一种情况是, 每个
进程是一个域, 此时, 能够访问的对象集中的各访问权,
取决于进程的身份 。
访问控制表也可用于定义缺省的访问权集, 即在该
表中列出了各个域对某对象的缺省访问权集 。 在系统中配
置了这种表后, 当某用户 (进程 )要访问某资源时, 通常是
首先由系统到缺省的访问控制表中, 去查找该用户 (进程 )
是否具有对指定资源进行访问的权力 。 如果找不到, 再到
相应对象的访问控制表中去查找 。
第九章 系统安全性
2,访问权限 (Capabilities)表
如果把访问矩阵按行 (即域 )划分, 便可由每一行构成一张
访问权限表 。 换言之, 这是由一个域对每一个对象可以执行的
一组操作所构成的表 。 表中的每一项即为该域对某对象的访问
权限 。 当域为用户 (进程 ),对象为文件时, 访问权限表便可用
来描述一个用户 (进程 )对每一个文件所能执行的一组操作 。
图 9 - 15 示出了对应于图 9 - 11 中域 D2的访问权限表 。 在
表中共有三个字段 。 其中类型字段用于说明对象的类型;权
力字段是指域 D2对该对象所拥有的访问权限;对象字段是一个
指向相应对象的指针, 对 UNIX系统来说, 它就是索引结点的
编号 。 由该表可以看出, 域 D2可以访问的对象有 4个, 即文件 3、
4,5和打印机, 对文件 3的访问权限是只读;对文件 4的访问
权限是读, 写和执行等 。
第九章 系统安全性
图 9 – 15 访问权限表
第九章 系统安全性
访问权限表不能允许直接被用户 (进程 )所访问 。 通常, 将
访问权限表存储到系统区内的一个专用区中, 只允许专用于进
行访问合法性检查的程序对该表进行访问, 以实现对访问控制
表的保护 。
目前, 大多数系统都同时采用访问控制表和访问权限表,
在系统中为每个对象配置一张访问控制表 。 当一个进程第一次
试图去访问一个对象时, 必须先检查访问控制表, 检查进程是
否具有对该对象的访问权 。 如果无权访问, 便由系统来拒绝进
程的访问, 并构成一例外 (异常 )事件;否则 (有权访问 ),便允许
进程对该对象进行访问, 并为该进程建立一访问权限, 将之连
接到进程 。 以后, 该进程便可直接利用这一返回的权限去访问
该对象, 这样, 便可快速地验证其访问的合法性 。 当进程不再
需要对该对象进行访问时, 便可撤消该访问权限 。
第九章 系统安全性
9.5 防 火 墙 技 术
(1) 包过滤技术 。 基于该技术所构建的防火墙简单,
价廉 。
(2) 代理服务技术 。 基于该技术所构建的防火墙安全
可靠 。
上述两者之间有很强的互补性, 因而在 Intranet上经
常是同时采用这两种防火墙技术来保障网络的安全 。
第九章 系统安全性
9.5.1 包过滤防火墙
1.
所谓, 包过滤技术, 是指:将一个包过滤防火墙软件
置于 Intranet的适当位置, 通常是在路由器或服务器中, 使
之能对进出 Intranet的所有数据包按照指定的过滤规则进行
检查, 仅对符合指定规则的数据包才准予通行, 否则将之
抛弃 。 图 9 - 16 中示出了基于包过滤技术的防火墙的位置 。
第九章 系统安全性
图 9 – 16 包过滤防火墙
服务器
以太网
I n t r a n e t
WS
IP 数据包 IP 包过滤
防为墙
IP 数据包
至 I n t e r n e t
I n t e r n e t
第九章 系统安全性
包过滤防火墙是工作在网络层 。 在 Internet和 Intranet
中, 由于网络层所传输的是 IP数据包, 所以包过滤器就是
对 IP数据包进行检查并加以过滤 。 包过滤器在收到 IP数据
包后, 先扫描该数据包的包头, 对其中的某些字段进行
检查, 这些字段包括数据包的类型 (TCP或 UDP等 ),源 IP
地址, 目标 IP地址, 目标 TCP/IP端口等 。 然后利用系统中
事先设置好的过滤规则 (或称逻辑 )——通常是访问控制表,
来检查数据包的有关字段, 把凡能满足过滤规律的数据包
都转发到相应的目标地址端口;否则, 便将该数据包从数
据流中摘除掉 。
第九章 系统安全性
假设在某公司的网络 (Intranet)中, 有一个 B类地址为
123.45.0.0,该地址不允许 Internet上的无关网络对它访问 。
但在该公司网中, 有一个地址为 123.45.6.0的子网正在与某
科研机构合作, 这个科研机构网络的 B类地址为 135.79.0.0,
该公司只允许其内部的指定地址为 135.79.30.0,135.79.32.0
及地址为 135.79.36.0的三个子网, 能访问上述的地址为
123.45.6.0 的子网, 但不允许上述三个子网去访问在
123.45.0.0中的其他子网 。 在图 9 - 17 中列出了上述的过滤
规则集, 其中的 0.0.0.0代表任何地址, 规则 E是最后的规则,
仅当没有其它规则可满足时, 才用此规则 。
第九章 系统安全性
图 9 – 17 过滤规则集
第九章 系统安全性
图 9 – 18 利用过滤规则对数据进行检查
第九章 系统安全性
从图 9 - 18 可以看出, 当第一个数据包进入包过滤器时,
由于该包是要访问公司网络中的 1号子网, 根据规则 D而被拒
绝;数据包 2是要访问公司网中的 6号子网, 根据规则 C而被
允许访问;数据包 3同样要访问 6号子网, 根据规则 B也被允
许访问;而数据包 4根据规则 D被拒绝;此外, 第 5个数据包
的报文是来自于 101.60.2.1网络的, 根据规则 E也被拒绝 。 注
意, 在利用过滤规则对数据包进行检查时, 应按先 A,B,C
后 D的次序, 依次用各规则进行检查, 次序颠倒将会出现错
误 。 这是因为规则 D和 E本身是有前提的, 只有在依次用 A、
B,C规则检查之后, 亦即先将 135.79网络中的 30,32,36
号子网排除在外, 再执行规则 D检查 (这时因为第 4包中的源
子网地址 1.1是属于 D规则中的其余子网的, 因而是不被允许
通行的 )才不会出错 。 同样, 也应当在执行 A,B,C,D的检
查之后, 再执行 E规则 。
第九章 系统安全性
2,
(1) 有效灵活。
(2) 简单易行。
防火墙机制本身存在固有的缺陷:
(1) 不能防止假冒。
(2) 只在网络层和传输层实现。
(3) 缺乏可审核性。
(4) 不能防止来自内部人员造成的威胁。
第九章 系统安全性
9.5.2
1,代理服务的基本原理
为了防止在 Internet上的其他用户能直接获得 Intranet中的信息, 在
Intranet中设置了一个代理服务器, 并将外部网 (Internet)与内部网之间的连
接分为两段, 一段是从 Internet上的主机引到代理服务器;另一段是由代理
服务器连到内部网中的某一个主机 (服务器 )。 每当有 Internet的主机请求访
问 Intranet的某个应用服务器时, 该请求总被送到代理服务器, 并在其中通
过安全检查后, 再由代理服务器与内部网中的应用服务器建立链接 。 以后,
所有的 Internet上的主机对内部网中应用服务器的访问, 都被送到代理服务
器, 由后者去代替在 Internet上的相应主机, 对 Intranet的应用服务器进行访
问 。 这样就把 Internet主机对 Intranet应用服务器的访问, 置于代理服务器的
安全控制之下, 从而使访问者无法了解到 Intranet的结构和运行情况 。
第九章 系统安全性
2.
代理服务技术是利用一个应用层网关作为代理服务
器的 。 应用层网关可分三种类型,① 双穴主机网关; ②
屏蔽主机网关; ③ 屏蔽子网网关 。 这三种网关都要求有
一台主机, 通常称为, 桥头堡主机, (Bastion Host),它
起着防火墙的作用, 也起着 Internet与 Intranet之间的隔离
作用 。
第九章 系统安全性
1) 双穴主机网关 (Dual-Homed Gateway)
图 9 - 19(a)示出了双穴主机网关的结构 。 其中, 桥头
堡主机充当应用层网关 。 在主机中需要插入两块网卡, 用
于将主机连接到被保护网和 Internet上 。 在主机上运行防火
墙软件, 被保护网与 Internet间的通信必须通过主机, 因而
可以将被保护网很好地屏蔽起来 。 Intranet可以通过桥头堡
主机获得 Internet提供的服务 。 这种应用层网关能有效地保
护和屏蔽 Intranet,且要求的硬件较少, 因而是目前应用较
多的一种防火墙;但桥头堡主机本身缺乏保护, 容易受到
攻击 。
第九章 系统安全性
图 9 – 19 应用层网关
桥头堡主机I n t r a n e t I n t e r n e t
屏幕路由器
( a )
桥头堡主机
I n t r a n e t
I n t e r n e t
( b )
I n t r a n e t 桥头堡主机 内部路由器
外部路由器
公用信息服务器
I n t e r n e t
( c )
第九章 系统安全性
2) 屏蔽主机网关 (Screened Host Gateway)
为了保护桥头堡主机而将它置入被保护网的范围中,
在被保护网与 Internet之间设置一个屏蔽路由器 (Screened
Router)。 它不允许 Internet对被保护网进行直接访问, 只允
许对桥头堡主机进行访问, 屏蔽路由器也只接收来自桥头
堡主机的数据 。 与前述的双穴主机网关类似, 也在桥头堡
主机上运行防火墙软件 。 图 9 - 19(b)示出了屏蔽主机网关的
结构 。 屏蔽主机网关是一种更为灵活的防火墙软件,
它可以利用屏蔽路由器来做更进一步的安全保护 。 但此时
的路由器又处于易受攻击的地位 。 此外, 网络管理员应该
管理在路由器和桥头堡主机中的访问控制表, 使两者协调
一致, 避免出现矛盾 。
第九章 系统安全性
3) 屏蔽子网网关 (Screened Subnet Gateway)
不少被保护网有这样一种要求, 即它能向 Internet上的
用户提供部分信息 。 这部分存放在公用信息服务器上的信
息, 应允许由 Internet上的用户直接读取 。 针对这种情况,
应当在被保护网与 Internet之间, 建立一个小型的独立子网,
同时再增加一个外部路由器来对该子网进行保护 。 这样,
Internet上的用户要访问公共信息服务器时, 只须通过外部
路由器 。 但若该用户要访问 Intranet中的信息时, 则须通过
外部和内部路由器先去访问桥头堡主机, 然后再通过主机
访问 Intranet。 图 9 - 19(c)示出了屏蔽子网网关的结构 。
第九章 系统安全性
3,代理服务技术的优缺点
(1) 屏蔽被保护网。
(2) 对数据流的监控。
(1) 实现起来比较复杂。
(2) 需要特定的硬件支持。
(3) 增加了服务的延迟。
第九章 系统安全性
9.5.3 规则检查防火墙
1.
包过滤防火墙和应用级网关分别工作在 OSI/RM的不同层次
上, 且采用了不同的方法来保障网络的安全 。 这两种方法各有自
己的优点, 但也都存在某些不足之处 。 而规则检查防火墙
(Stateful Inspection Firewall)则是集这两种防火墙技术的优点所形
成的另一种防火墙 。 它能像包过滤防火墙一样, 在网络层上通过
检查 IP地址等手段, 过滤掉对 Intranet进行访问的非法数据包;它
也能像应用级网关一样, 对服务的类型和服务信息的内容进行检
查, 过滤掉其中的非法访问 。 仅此, 即可见规则检查防火墙已是
一种性能更好的防火墙 。 为了进一步提高防火墙的性能, 在规则
检查防火墙中又增加了用于保障网络安全的新功能 。
第九章 系统安全性
2,规则检查防火墙新增加的功能
(1) 认证 。
在防火墙中增加了三种认证方法:第一种是用户认
证, 用于对用户的访问权限进行认证;第二种是客户认
证, 是对用户客户机 IP地址进行认证;第三种是会晤认
证, 是审查是否允许在访问者和被访问服务器之间建立
直接的连接 。
第九章 系统安全性
(2) 内容安全检查 。
内容安全检查包括:为网络中的每个计算机站点进
行病毒检查, 为电子邮件服务提供安全控制的机制, 该
机制可以隐藏 Intranet的结构和用户的真实身份等;此外,
还可以进行基于 FTP命令的内容安全控制, 以禁止用户使
用这些命令 。
(3) 数据加密。
在防火墙中还提供了多种加密方案,以保障 Intranet
中信息的安全。
第九章 系统安全性
(4) 负载均衡 。
当网络上配置了多个能提供相同服务的服务器时,
负载均衡功能可在多个服务器之间实现负载的均衡, 避
免出现忙闲不均的现象 。
综上所述可知, 规则检查防火墙具有非常强大的安
全保障功能, 使防火墙的性能又上了一个台阶, 从而成
为当今最为流行的防火墙 。