198
第 7 第 第第第第

第 7 章 网络安全

Embed Size (px)

DESCRIPTION

第 7 章 网络安全. 本章要点. 网络安全与独立系统安全有何相似与不同 网络应用程序所面临的威胁:拒绝服务、网站被 “ 黑 ” 、恶意移动代码和协议攻击 防止网路攻击的控制措施:物理安全、策略与规程以及大量的控制技术 防火墙的原理、功能和限制 入侵检测系统的 种类、功能与局限 安全电子邮件: PGP 和 S/MIME. - PowerPoint PPT Presentation

Citation preview

Page 1: 第 7 章 网络安全

第 7 章 网络安全

Page 2: 第 7 章 网络安全

本章要点 网络安全与独立系统安全有何相似与不同 网络应用程序所面临的威胁:拒绝服务、

网站被“黑”、恶意移动代码和协议攻击 防止网路攻击的控制措施:物理安全、策

略与规程以及大量的控制技术 防火墙的原理、功能和限制 入侵检测系统的种类、功能与局限 安全电子邮件: PGP和 S/MIME

Page 3: 第 7 章 网络安全

我们每天都在跟网络打交道。网络攻击确实是一个至关重要的问题。本章将描述是什么使得网络安全与前面讲过的应用程序和操作安全既有区别又有相似之处。由于网络的增长和变化速度比计算机科学其他方面的发展速度更快,因此,不可能介绍所有最流行的攻击与防御技术。但新的形式和变化都是建立在一些基础知识之上的。这些知识包括:网络基本概念、网络威胁和网络控制等。

Page 4: 第 7 章 网络安全

7.1 网络的概念 由于网络存在单一故障点 (single point of

failure) ,所以是脆弱的。但是网络具有恢复(resilience) 或容错能力 (fault tolerance) ,所以又是健壮的。一般认为,网络的中间部分很健壮,但其周边却是脆弱的。

在一般用户的眼里,一个网络看起来就像一个设计成两端由中间的一条单线连接起来的东西。这里,我们在描述计算机网络时,着重介绍安全的概念,同时也以简化的方式描述网络本身,而避免让网络的复杂性分散注意力。注意,我们描述的网络是对更复杂的实际网络的抽象。

Page 5: 第 7 章 网络安全

7.1.1 网络 简单网络模型可以设想为两台设备通过硬件

介质连接起来,并用软件实现设备间通信。可能一台计算机是服务器 (server) ,另一台设备提供输入 / 输出是客户 (client) 。

图 7.1 网络的简单示意图

Page 6: 第 7 章 网络安全

7.1.1 网络 (续 ) 但实际网络的状况显然要比这复杂得多。 (1) 执行用户到计算机通信的简单网络设备通常是一

台微型计算机或者工作站,因此,客户端具有相当大的存储容量和计算能力。

(2) 一个网络可以配置为单个客户与服务器相连,但在通常情况下,是多客户与多个服务器交互的。

(3) 网络服务通常是由很多台计算机一起提供的。单个用户会话在客户与服务器之间来回传送消息的过程中,需要经过一些中间计算机。但这些计算机中的部分如果正在实现其他重要的交互服务,则消息可能被暂停传输。

(4) 在终端用户接受服务的过程中,通常不会意识到发生了很多会话和计算工作。

Page 7: 第 7 章 网络安全

7.1.1 网络 (续 ) 通常,网络中的一个单一的计算系统称为一个节点 (node) ,

其任务处理设备 ( 计算机 )称为主机 (host) 。两台主机之间的连接称为链路 (link) ,网络计算由许多用户、通信介质、可见主机和通常对终端用户不可见的系统组成。系统是一个处理器的集合,通常都具有比工作站 (workstation) 更强的处理能力和更大的存储空间。

图 7.2 更复杂但更典型的网络示意图

Page 8: 第 7 章 网络安全

7.1.1 网络 (续 ) 使用环境 网络具有以下几个典型的特征: (1) 匿名性:网络隐藏了通信者绝大多数的特征,如

相貌、声音以及环境,而在通常情况下,我们是以这些特征相互认识的。

(2) 自动性:通信自动完成。 (3) 远程性。 (4) 透明性:用户甚至不清楚当前通信的主机与上一次通信的主机是否相同。

(5) 路由的多样性:为了维护和提高网络的可靠和性能,通信路由通常动态分配。

Page 9: 第 7 章 网络安全

7.1.1 网络 (续 )

外形和尺寸 网络按照节点和连接的形式进行组织的方式,称为网络的拓扑结构 (topology) 。其与安全相关的特性有 :

(1) 边界:边界将一个网络的元素与不属于该网络的元素区分开来。

(2) 拥有关系:要想知道网络中每台主机的拥有者是很困难的。

(3) 控制:如果说拥有关系是不确定的,那么控制也就是不确定的了。

Page 10: 第 7 章 网络安全

7.1.1 网络 (续 )

通信模式 数据的通信要么采用数字 (digital)格式 (传

输的数据以离散的二进制数值表示 ) ,要么采用模拟 (analog)格式 (传输的数据以连接范围的一系列点来表示,使用的介质采用声音或者电压 ) 。转换工作由调制解调器来完成,可以实现数字和模拟信号之间的双向转换。

Page 11: 第 7 章 网络安全

7.1.2 传输介质 通信可以使用几种传输介质: (1) 电缆:可以是双绞线 (twisted pair) 或者无

屏蔽双绞线 (unshielded twisted pair, UTP) 也可以是同轴电缆 (coaxial (coax) cable) 。

(2) 光纤:采用极细的玻璃作为传输介质。传输的是光束而不是电能。光纤介质所产生的串扰非常低、价格和重量相对铜线而言都低得多。铜线逐渐被光纤所取代。

(3) 无线:采用无线电信号传送通信信号。很多符合 802.11 协议的设备都适用于建立办公室或者家庭无线网络。

Page 12: 第 7 章 网络安全

7.1.2 传输介质 (续 )

(4) 微波:微波信道的容量与双绞线相当。微波信号必须在小于相距 49公里的地方进行中继。

(5) 红外:红外线通信传输距离不超过 11.5公里。由于传输直线的要求和距离的限制,红外线一般只在像办公室那样有保护措施的范围内使用。

(6) 卫星:卫星通信链路的质量通常比在地球上铺设的电缆更好。卫星通常在一个很广的范围内传播通信信号。从使用性考虑总是希望信号覆盖很宽的范围,但是覆盖范围越窄,被窃听的危险就越低。

Page 13: 第 7 章 网络安全

7.1.3 协议 通信可以与实际的通信介质相互分开。协议

(protocol) 的定义使得这一独立性的实现成为可能,允许用户以一个较高的、抽象的通信层次看待网络。在通信的两端,通信完成的细节过程通过硬件和软件技术被隐藏了。这些硬件和软件依据协议栈 (protocol stack) 行事。协议栈中的每一层都像是定义了一种语言,使用该语言就可实现在该层中相关信息之间的相互交流。

目前,网络中用得最多的是两种协议栈:开放系统互连协议 (OSI) 体系和传输控制与互连协议(TCP/IP) 体系。

Page 14: 第 7 章 网络安全

7.1.3 协议 (续 ) ISO OSI 参考模型 OSI参考模型包含 7层。我们可以把这些层看成是

在一条装配线,每一层将自己提供的服务添加到整个通信过程中。

层 名称 用途7 应用层 用户级数据6 表示层 标准数据显示,分块,文本压缩5 会话层 一个应用中各部分的会话和逻辑连接;消息排队,恢复4 传输层 流控,端对端错误检测及纠正,优先级服务3 网络层 路由,将消息块分割成统一尺寸的数据包2 数据链路层 保证可靠的数据在物理介质上传输;传输错误恢复,将包分离以组成统一尺寸的帧

1 物理层 通过物理介质进行实际通信,独立的位传输

表 7.1 OSI 协议中的层

Page 15: 第 7 章 网络安全

7.1.3 协议 (续 )

图 7.3 ISO OSI 网络模型

发送和接收方的平行层也称为“对等层” (peers)

Page 16: 第 7 章 网络安全

7.1.3 协议 (续 ) 寻址 在网络层 (3) ,一种称为路由器 (router) 的

设备会将消息准确地从源地址发送到目的地址。网络层所建立的目的地址、源地址和其中的数据一起,合称为一个包 (packet) 。

图 7.4 网络层传输

Page 17: 第 7 章 网络安全

7.1.3 协议 (续 ) 每一台计算机都通过一块网络接口卡 (Network

Interface Card, NIC) 连接到一个网络,在网络接口卡上有一个唯一的物理地址,称为 MAC 地址(MAC为Media Access Control 的缩写 ) 。在数据链路层,另外加上了两个头部,其中一个是计算机上的 NIC地址 (源MAC地址 ) ,另一个是路由器上的 NIC地址 (目的 MAC地址 ) 。包含目的MAC地址、源MAC地址和数据的数据链路层结构称为一个帧 (frame) 。

图 7.5 数据链路层传输

Page 18: 第 7 章 网络安全

7.1.3 协议 (续 )

图 7.6 传输的消息准备过程

分层

Page 19: 第 7 章 网络安全

7.1.3 协议 (续 )

表示层 (6) 将原始消息分割成许多小块。在会话层 (5)添加了一个会话头部,以指明发送者、接收者和一些与顺序相关的信息。传输层 (4) 添加了一些在发送者和接收者之间进行逻辑连接的信息。网络层 (3) 增加了一些路由信息,并把从传输层 (4)传来的一个信息单元进一步分割为多个数据包。数据链路层 (2)添加了一个头部和尾部,以保证这些消息块的正确顺序,并检测和校正传输错误。消息和控制的每一比特都在物理层 (1) 通过物理介质进行传播。

Page 20: 第 7 章 网络安全

7.1.3 协议 (续 ) TCP/IP 一般认为 OSI 模型过于复杂,其中包含了太

多的层次 。因此, TCP/IP 成为了目前应用最广泛的协议栈。 TCP/IP 是为实际因特网设计的,并且是根据协议而不是根据层定义的。但是,仍然可以把它看成 4层结构:应用层、主机到主机 ( 端到端 ) 的传输层、网络层和物理层。其主要由处于底层的 IP传输协议、基于其上用于实现面向连接的通信会话的TCP 协议以及第三方协议——用户数据报协议 (User Datagram Protocol, UDP)组成。

Page 21: 第 7 章 网络安全

7.1.3 协议 (续 ) 传输层从应用层接收长度可变的消息,将它们

分割成一定大小的单元,按包 (packet) 发送出去。网络层以数据报 (datagram) 方式传输这些包,根据数据的目的地 (随数据一起提供的地址 ) 将它们发送至不同的物理连接。物理层实现实际比特流的数据通信。

层 动作 责任应用层 准备来自用户交互的消息 用户交互、寻址传输层 将消息转换成包 排序,可靠性(完整性),纠错网路层 将包转换成数据报 流控,路由物理层 以独立的比特传输数据报 数据通信

表 7.2 因特网通信中的层

Page 22: 第 7 章 网络安全

7.1.3 协议 (续 ) TCP 协议将无序的包按照正确顺序进行排列,请求

重传丢失的包,重新获取一个毁坏包的新副本。对速率或效率要求非常高时,允许数据流中存在少量不准确的数据。

TCP数据包是一个数据结构,其中包含一个序列号、一些标记、源端口 (port) 和目的端口号。每一种服务都使用一个众所周知的端口,比如 80 端口用于HTTP( 网页 ), 23 端口用于 Telnet(远程终端连接 ),25 端口用于 SMTP( 电子邮件 ), 161 端口用于SNMP( 网络管理 ) 。简而言之,每种服务都有一个守护进程,以监视指定的端口号,并且当有任何数据传到该端口时为其提供服务。

UDP 协议不提供 TCP 协议中的错误检测和误码校正功能,不过它是一种更小、更快的传输协议。

Page 23: 第 7 章 网络安全

7.1.3 协议 (续 )表 7.3 因特网提供的服务

层 TCP协议 UDP协议应用层 简单邮件传输协议 (Simple Mail

Transfer Protocol)超文本传输协议 (Hypertext Transfer Protocol)文件传输协议 (File Transfer Protocol)远程登录协议 (Terminal Emulation Protocol)其他协议

简单网络管理协议 (Simple Network Monitoring Protocol)系统审计日志 (System Audit Log)时钟其他协议

传输层 TCP UDP

网路层 IP IP

物理层 数据通信 数据通信

Page 24: 第 7 章 网络安全

7.1.3 协议 (续 ) 寻址方式 地址是网络中一个节点的唯一标识符。广域网必须遵从已经建立的规则,而局域网中寻址方式的限制相对较小。在基于 TCP/IP 协议的广域网上的主机都有一个 32位的地址,称为 IP 地址 (IP address)。 IP地址四个 8 比特一组,通常用十进制表示。网络地址也采用我们熟悉的域名 (domain name)进行区分,比如 ATT.COM 或者 CAM.AC.UK ,由寻址表完成从这些字符串到数字格式的转换。 IP地址按照从右到左的顺序进行解析。最右边的部分,如 .COM、 .EDU、 .ORG 或者 .GOV 以及由两个字符代表的某个国家,如 .UK、 .FR、 .JP 或者 .DE ,称为顶级域名 (top-level domain) ,由一些称为因特网注册部门的小型组织机构进行管理。负责进行注册的组织机构需要发布主机地址,这些地址是包含在其管理的顶级域名下的二级域名表中。

Page 25: 第 7 章 网络安全

7.1.3 协议 (续 )

当第一次试图将一个完整的域名解析为它所对应的 IP地址时,系统将完成一次从顶级主机开始查找的过程 ( 在随后的解析工作中,系统自身维护一个记录域名的缓存,本地进行域名解析 ) 。最后域名被转换成为一个 32位,四个 8 比特一组的地址,并被包含在所有以该地址为目的地的 IP 包中。

Page 26: 第 7 章 网络安全

7.1.3 协议 (续 )

路由概念 主机需要知道如何根据 IP地址发送一个包。

每台主机都清楚与自己直接相连的其他主机,并且与相邻的主机交换连接信息。主机将它能到达的主机 (地址 ) 及代价 (跳步数 ) 的描述信息广播给它的邻居。每台主机将流量传递给能提供最小代价路径的某个邻居。

Page 27: 第 7 章 网络安全

7.1.4 网络类型 网络是一个通信主机的集合。 局域网 局域网 (Local Area Network, LAN) 的覆盖范围较小,

一般局限于一栋建筑内。 LAN 的主要优点在于它的所有用户可以很方便地共享数据、程序,以及共享对设备的访问,比如打印机。

大多数 LAN 都具有以下特征: (1) 规模小:用户通常不超过 100 个。 (2) 局部控制:都由一个组织统一管理。 (3) 物理保护:外部恶意访问者很难访问内部设备。 (4) 有限范围:仅覆盖一个很小的范围。

Page 28: 第 7 章 网络安全

7.1.4 网络类型 (续 )

广域网 广域网 (Wide Area Network, WAN) 和局域网在规模、距离和控制或拥有关系等方面都有较大的区别,但WAN仍然有一些统一的原则。其他相似网络类型还包括校园网 (CAN) 和城域网 (MAN) 。以下是WAN 的典型特征:

(1) 单一控制:通常,一个广域网应该由一个组织机构负责和控制。

(2) 覆盖范围大:一个 WAN 通常比一个 LAN 的服务范围要大,一般从几公里到整个地球的范围。

(3) 物理上暴露 ( 常常如此,但不全是 ) :大多数广域网使用公共通信介质,因此,相对来说要暴露一些。

Page 29: 第 7 章 网络安全

7.1.4 网络类型 (续 ) 互联网 ( 网际网 ) 由众多网络构成,最典型的互联网是因特网。因特

网由因特网协会进行松散的控制。因特网协会指定了一些公平活动的基本规则,以保证所有用户都能接受公平的服务,并且它支持标准协议,以实现用户之间的通信。以下是因特网的一些特征:

(1) 联合:对于因特网的用户甚至是网络服务提供商,我们几乎都不可能给出一个适当描述。

(2) 巨大:没有谁真正知道因特网到底有多大。 (3) 异构:可能每一款商业硬件和软件中,至少有一

个产品连接到了因特网上。 (4) 物理上和逻辑上暴露:由于没有统一的访问控制,

实际上任何攻击者都可以访问因特网,而且由于连接设备的复杂性,他们可以获取网上的任何资源。

Page 30: 第 7 章 网络安全

7.2 网络面临的威胁7.2.1 导致网络脆弱的因素

(1) 匿名性:攻击者可以远隔千里实施攻击,而无需与被攻击者的系统、该系统的管理员或者任何用户进行直接接触。因此,隐藏在电子屏障之后的潜在攻击者处于比较安全的地位。攻击者可能利用很多其他主机来实施攻击,这样就可以隐藏攻击的源头。

(2) 攻击点多——既指攻击的目标,也指发动攻击的地点:攻击者可能来自任何主机,也可能针对任何主机。因此,在一个大型网络中,容易受到攻击的点是很多的。

(3) 共享性:由于网络允许共享资源和分担负载,所以潜在的访问联网系统的用户比单机系统用户多。

Page 31: 第 7 章 网络安全

7.2.1 导致网络脆弱的因素 (续 )

(4) 系统的复杂性:一个网络操作 / 控制系统很可能比一个为独立计算设计的操作系统要复杂得多。攻击者也可以利用攻击目标强大的计算能力,将部分计算机工作交给攻击目标完成,从而能够大大提高攻击能力。

(5) 未知边界:网络的可扩展性也意味着网络的边界是不确定的。可能怀有恶意的未知或者不受控制的用户团体是网络安全的不利因素。

Page 32: 第 7 章 网络安全

7.2.1 导致网络脆弱的因素 (续 )

图 7.7 无清晰的网络边界

Page 33: 第 7 章 网络安全

7.2.1 导致网络脆弱的因素 (续 ) (6) 未知路径:从一台主机到另一台主机可能存在

着多条路径。

图 7.8 网络中某种消息的路由过程

Page 34: 第 7 章 网络安全

7.2.2 谁在攻击网络 关注动机有助于我们了解谁可能攻击互联网的主机和用户。网络挑战、名声、金钱以及意识形态是 4 个重要的动机。

(1) 挑战:对网络攻击者而言,一个最重要的动机就是对智力的挑战。击败看似无懈可击的事物是一些攻击者喜欢的智力刺激。有些攻击者只是希望看看这种不受欢迎的活动深入到什么地步。

(2) 名声:一些攻击者希望通过攻击活动得到认可 。也就是说,一方面是出于迎接挑战的考虑,另一方面是为了由此而获得声望。

Page 35: 第 7 章 网络安全

7.2.2 谁在攻击网络(续 )

(3) 金钱与间谍、有组织犯罪 :经济回报也是攻击者实施攻击的一个动机。一些组织的行为看似很奇怪,但实际上,工业间谍应该为此负责。工业间谍是非法的,但却经常出现,部分原因是其潜在的高收益。更精心策划的攻击需要不止一个人,所以,出现了有组织的犯罪。到处都有证据表明,有组织的犯罪集团正在利用 Internet 提供的新机会。

(4) 意识形态: Denning曾经把攻击行为分为黑客主义与计算机恐怖主义。黑客主义 (hactivism) 是指“使用黑客技术针对一个目标的一系列活动,目的是干扰其正常运转,但不会造成严重破坏”。计算机恐怖主义 (cyberterrorism) 是“一种具有潜在动机的黑客活动,目的是造成严重损坏,比如造成死亡或者严重的经济损失”。

Page 36: 第 7 章 网络安全

7.2.3 攻击前侦察 攻击者在采取攻击行动之前,首先要进行充分的调查

和计划活动。网络攻击者开始攻击之前需要了解有关攻击目标的大量信息。研究这些攻击的前期工作的目的是:一旦发现了某些特征行为,就可能在攻击真正发生之前采取措施加以阻止。

端口扫描 收集信息的一种简单方法是采用端口扫描 (port scan) 。针对一个特定的 IP地址,扫描程序报告该地址的哪些端口会响应消息,以及目前存在着有哪些已知的弱点。通过端口扫描可以知道三件事情:目标系统上有哪些标准端口或者服务正在运行并响应请求;目标系统上安装了哪些操作系统;目前都有哪些应用程序在提供服务及其版本是什么。可以通过合法的渠道获得端口扫描工具。

Page 37: 第 7 章 网络安全

7.2.3 攻击前侦察 (续 ) 社会工程学 社会工程学涉及:使用社会技巧和人际关系,使某人透露一些与安全相关的信息,甚至直接为攻击做一些事情。社会工程学不会有多大损失,最多是引起了可能攻击目标的警觉,对不涉及安全管理的人,社会工程学就很容易成功。

情报收集 情报收集 (Intelligence) 是收集细节信息的常用手段。

在信息安全领域,通常是指通过不同渠道收集不连续的信息比特,而后就像做拼图游戏一样将它们组合到一起。大多数情报收集技术都只需经过很少的训练和最少的时间投入。

Page 38: 第 7 章 网络安全

7.2.3 攻击前侦察 (续 ) 操作系统与应用程序特征 如果掌握了操作系统和应用程序的种类版本,攻击者

就可以查找一张记录了某种软件已知漏洞的表,从而决定利用哪个特殊的漏洞实施攻击。所有与特定类型及版本相关的特性称为操作系统或者应用程序的指纹(fingerprint) ,可用于标识其开发商和版本。通过与操作系统或者应用程序的简单交互可以确定这些。有时,应用程序会自报身份。如,

Server: Netscape-Commerce/1.12 Your browser sent a non-HTTP compliant message.

或 Microsoft ESMTP MAIL Service, Version: 5.0.2195.3779

Page 39: 第 7 章 网络安全

7.2.3 攻击前侦察 (续 )

公告牌与聊天室 有大量秘密公告牌与聊天室支持信息交换。

攻击者可以发现最新漏洞和利用技术,永远不会知道谁正在从因特网上读取信息。

文档的可用性 开发商自身有时也会发布一些对攻击者有

用的信息。

Page 40: 第 7 章 网络安全

7.2.3 攻击前侦察 (续 )

侦察:结束语 一个计算机站点可能注意到,在短时间内,侦测数量出现异常。但是,一名聪明的攻击者,会采取一种游击战术,即收集一些信息,然后潜伏一段时间,而后再出来收集更多的信息。

防御侦察的最好办法是保持沉默。尽可能少地发布与自己站点相关的信息,不管是人为的,还是通过机器自动发布的。

Page 41: 第 7 章 网络安全

7.2.4 传输中的威胁:偷听与窃听 实施攻击最简单的方法是偷听。偷听

(eavesdrop) 这个词语暗示着无须额外努力就能听到。窃听 (wiretap)需通过一些努力窃取通信信息。被动窃听 (passive wiretapping)只是“听”,与偷听非常相近。而主动窃听 (active wiretapping)则意味着还要在通信信息中注入某些东西。窃听是否成功与通信媒介有关。

Page 42: 第 7 章 网络安全

7.2.4 传输中的威胁:偷听与窃听 (续 ) 电缆 (1) 嗅包器 (packet snifter) 软件可以获取一个 LAN 上的所有数据包。

(2) 可以对一个网卡重新编程,使它与 LAN上另一块已经存在的网卡具有相同的地址。

(3) 电缆线会发射无线电波。通过自感应(inductance) 过程,入侵者可以从电缆线上读取辐射出的信号,而无须与电缆进行物理接触。

(4) 切断或部分切断电缆,进行分接。

Page 43: 第 7 章 网络安全

7.2.4 传输中的威胁:偷听与窃听(续 )

网络中传输的信号是多路复用(multiplexed) 的,意味着在某个特定的时刻不只一个信号在传输。 LAN传输的常常是截然不同的包,但是在 WAN 上传输的数据,却在离开发送它们的主机以后,经过了复杂的多路复用处理。这样,在 WAN 上的窃听者不仅需要截取自己想要的通信信号,而且需要将这些信号,从同时经过多路复用处理的信号中区分开来。

Page 44: 第 7 章 网络安全

7.2.4 传输中的威胁:偷听与窃听 (续 ) 微波 由于通过空气传播,使得微波信号更容易被局外人接触到。微波链路可携带巨大流量,因此,几乎不可能将特定信号,从进行了多路复用处理的其他传输信号分离出来。专用微波链路,不能很好地获得因容量大而产生的保护。

图 7.9 微波信号的路径

Page 45: 第 7 章 网络安全

7.2.4 传输中的威胁:偷听与窃听 (续 )

卫星通信 由于在一个几百公里宽上千公里长的区域内都可

以截取卫星信号,因此潜在被截取的可能性比微波信号更大。复杂的多路复用处理可以提供信号保护。

光纤 光纤具有两个安全优势:第一,在每次进行一个

新的连接时,都必须对整个光纤网络进行仔细调整;第二,光纤中传输的是光能,而不是电能。但是,通信线路中的诸如中继器、连接器和分接器等设备,可能是渗透点。

Page 46: 第 7 章 网络安全

7.2.4 传输中的威胁:偷听与窃听 (续 ) 无线通信 在防范入侵和骗取连接服务方面无线通信遇到了困难。无线通信主要的威胁不是干扰,而是截取。由于开放性,很容易对一个无线网络连接采用主动或者被动窃听技术。加上无线通信中通常不使用或使用很弱的加密技术,以及一些软件的缺陷,实施截取比想象中的要容易。另一个问题是:无线网络有骗取网络连接的可能性。很多主机都运行了动态主机配置协议 (Dynamic Host Configuration Protocol, DHCP) ,通过该协议,一名客户可以从一个主机获得一个临时 IP地址和连接。这个分配机制在用户鉴别方面存在大问题。此外,对这类问题的政策法规也不一致。

Page 47: 第 7 章 网络安全

7.2.5 窃听技术总结 从安全的角度来看,我们应该假设在网络节点之间所

有的通信链路都有被突破的可能。采用加强物理上和管理上的安全保护措施,对于本地连接十分必要。

图 7.10 网络在窃听技术中暴露的弱点

Page 48: 第 7 章 网络安全

7.2.6 协议的缺陷 互联网联盟为方便详查所有因特网协议,而

将它们公开张贴出来。每一种被接受的协议被分配了一个 Internet (Request for Comment, RFC)标准 (草案 )编号。许多协议中存在的问题,被那些敏锐的检查者发现并得到了纠正。但协议本身可能还存在缺陷。

Page 49: 第 7 章 网络安全

7.2.7 假冒 比采用窃听技术获取网络信息更简单的方法,

是冒充另一个用户或另一个进程。在广域网中采用假冒技术比局域网中具有更大威胁。但局域网有时会在未经安全考虑的情况下,就被连接到一个更大的网络中去,这方面的问题也不容忽视。下面讨论一些常见的假冒方式:

通过猜测突破鉴别 方法有:通过简单猜测获取口令、猜测口令

为默认口令、休眠账户结合社会工程学获取口令。

Page 50: 第 7 章 网络安全

7.2.7 假冒 (续 ) 以偷听或者窃听突破鉴别 鉴别的细节在网络上传输时,它们就暴露在网络上任

何一个在监视通信的人面前。这样同样的鉴别细节可以被一个假冒者反复使用,直到它们被改变为止。

避开鉴别 对于一个有弱点或者缺陷的鉴别机制来说,攻击者

可以绕开鉴别访问系统。在一个典型的操作系统缺陷中,用于接收输入口令的缓冲区大小是固定的,并对所有输入的字符进行计数,包括用于改错的退格符。如果用于输入的字符数量超过了缓冲区的容纳能力,就会出现溢出,从而导致操作系统省略对口令的比较,并把它当做经过了正确鉴别的口令一样对待。

Page 51: 第 7 章 网络安全

7.2.7 假冒 (续 )

不存在的鉴别 攻击者可能知道一个系统有一些身份不需要经

过鉴别。如, guest或 anonymous帐户。 在 UNIX 系统中, .rhosts 文件列出了所有可

信主机, .rlogin文件列出了所有可信任用户,他们都被允许不经鉴别可以访问系统。这些“可信任主机”也可以被局外人所利用:他们可以通过一个鉴别弱点 ( 比如猜测出来的口令 )获取对一个系统的访问,然后就可以实现对另外一个系统的访问,只要这个系统接受来自其可信任列表中的真实用户。

Page 52: 第 7 章 网络安全

7.2.7 假冒 (续 ) 众所周知的鉴别 采用方便的鉴别数据和众所周知的鉴别方法,有时会

使得保护形同虚设。系统网络管理协议 SNMP 使用了一个公用字符串 (community string) ,这是一个重要的口令,用于公用设备彼此之间的交互。然而,网络设备被设计成可以进行带有最小配置的快速安装,并且很多管理员并不改变这个安装在一个路由器或者交换机中的默认的公共字符串。

可信任鉴别 当身份识别被委托给其他可信任源时,鉴别会成为一

个问题。像 UNXI 系统中的 .rhost, .rlogin和 /etc/hosts/equiv 中的文件,都可能成为潜在漏洞。通过这些漏洞,一名远程用户或者一名远程攻击者可以获取对系统的访问。

Page 53: 第 7 章 网络安全

7.2.7 假冒 (续 ) 欺骗 欺骗 (spoofing) ,是指一名攻击者在网络的

另一端以不真实的身份与目标进行交互。欺骗方式包括:伪装、会话劫持和中间人攻击。

伪装 伪装 (masquerade) 是指一台主机假装成另一

台主机。从攻击者的观点看来,在面具被揭开之前,伪装会带来乐趣。典型的形式有“钓鱼欺诈” (phishing) 。在另一种伪装方法中,攻击者利用了受害者网页服务器的缺陷,从而覆盖受害者主页。

Page 54: 第 7 章 网络安全

7.2.7 假冒 (续 ) 会话劫持 会话劫持 (session hijacking) 是指截取并维持一个

由其他实体开始的会话。假设有两个实体已经进入了一个会话,然后第三个实体截取了他们的通信并以其中某一方的名义与另一方进行会话。

中间人攻击 中间人攻击 (man-in-the-middle) 是一种与会话劫持相似的攻击形式,也要求有一个实体侵入两个会话实体之间。它们之间的区别在于,中间人攻击通常在会话的开始就参与进来了,而会话劫持发生在一个会话建立之后。

Page 55: 第 7 章 网络安全

7.2.7 假冒 (续 )

图 7.11 中间人攻击中的密钥截取

Page 56: 第 7 章 网络安全

7.2.8 消息机密性面临的威胁 误传 因为网络硬件或者软件中存在一些缺陷,可能会导致消息被误传。与网络缺陷相比,人为的错误出现得更为频繁。

暴露 消息的内容将暴露在临时缓冲区中;遍及整个网络的

交换器、路由器、网关和中间主机中;以及在建立、格式化和表示消息的进程工作区中。攻击者可以利用任意环节暴露消息。

流量分析 不仅消息自身是需要保密的,就连存在这条消息这个事实都是需要保密的。这种情况下,我们既需要保护消息的内容,也需要保护标识发送者和接收者的报头消息。

Page 57: 第 7 章 网络安全

7.2.9 消息完整性面临的威胁 篡改消息 攻击者可能会利用我们对消息的信任来误导

我们。特别是,攻击者们可能会: (1) 改变部分甚至全部消息内容。 (2) 完整地替换一条消息,包括其中的日期

和发送者、接收者的身份。 (3) 重用一条以前的旧消息。 (4) 摘录不同的消息片段,组合成一条消息。 (5) 改变消息的来源。 (6) 改变消息的目标。 (7) 毁坏或者删除消息。

Page 58: 第 7 章 网络安全

7.2.9 消息完整性面临的威胁 (续 )

可能采取以下我们已经讨论过的方法实施以上攻击:主机窃听、特洛伊木马、假冒、抢占主机、抢占工作站。

噪声 在通信介质上传输的信号会遭到干扰,干扰源可能是相同介质上传输的其他通信和自然干扰源 ( 比如雷电、电机和某些动物 ) 。这些无意干扰通常称为噪声 (noise) 。通信协议的设计考虑到了这些问题,可以克服噪声的影响。

Page 59: 第 7 章 网络安全

7.2.10 格式失效 网络通过协议建立起来,攻击者可能寻找协议标准

中没有定义的漏洞,破坏这些协议。 异常包 包与其他数据项有特定的格式。域的大小、信号延续位和有特定意义的其他标志,以及为网络服务应用正确处理的标志统称为协议句柄。协议句柄不必检查错误。攻击者可能修改协议句柄,尝试各种错误的组合。当然,大多数情况下,协议处理器可以检查出异常而只影响攻击者。但当错误影响协议器失效,其结果可能导致拒绝服务、整个系统失效或其他严重后果。

Page 60: 第 7 章 网络安全

7.2.10 格式失效 (续 )

协议失效和实现缺陷 (1) 某些网络协议的实现,是很多安全缺陷

的源头。不同开发商会编写实现他们自己的服务代码,但他们常常基于通用 ( 有缺陷 ) 的原型。

(2) 协议本身可能是不完整的,没有指定针对特殊情况应该采取什么措施,所以不同的开发商可能产生不同的结果。

(3) 协议可能存在不知道的安全缺陷。

Page 61: 第 7 章 网络安全

7.2.11 网站漏洞 因为网络几乎完全暴露在用户面前,所以非常脆弱。攻击者在挑战控制权方面具有优势。

网站被“黑” 一种最广为人知的攻击方式是网站被“黑” 。

由于网络的设计使得代码可以下载,这就允许攻击者能够获得全部超文本文档和在加载进程中与客户相关的所有程序。网站给攻击者提供了太多弱点,使得网站被“黑”的吸引力大大增加。

Page 62: 第 7 章 网络安全

7.2.11 网站漏洞 (续 ) 缓冲区溢出 网页也存在缓冲区溢出问题。最知名的网页服务器缓冲区溢出,也许就是称为 iishack 的文件名问题。一些网页服务器对极长的参数字段也很容易发生缓冲区溢出。

“../”问题 网页服务器代码应该一直运行在一个受限的环境中。

在理想情况下,网页服务器上应该没有编辑器、 xterm和 Telnet 程序,甚至连绝大多数系统应用程序都不应该安装。 但事实常常不是如此。另种阻止攻击的方法是创建一个界地址来限制网页服务器应用程序的执行区域。 但在 UNIX和Windows系统中“ ../”都代表某一个目录的父目录。

Page 63: 第 7 章 网络安全

7.2.11 网站漏洞(续 )

应用代码错误 网页服务器为了使自己的工作更轻松一些,向用

户传递上下文字符串,而要求用户浏览器用全部上下文进行应答。一旦用户可以修改这种上下文内容,就会出现问题。

服务器端包含 服务器端包含 (sever-side include) 问题利用了网页

中可以自动调用一个特定的函数的事实。其中一种服务器端包含命令称为 exec ,用于执行任意一个存放于服务器上的文件。例如,服务器端包含命令: <!#exec cmd=“/usr/bin/telnet &”> 会以服务器的名义打开一个 Telnet会话。

Page 64: 第 7 章 网络安全

7.2.12 拒绝服务 可用性攻击,有时称为拒绝访问攻击或者 DOS 攻

击,在网络中比在其他的环境中更加值得重视。 传输故障 在一个主干网络 ( 包括因特网 ) 中,其中的许多通

信故障问题都是临时出现或者能够自动恢复 ( 通过绕道的方式 ) 的。

连接洪泛 如果攻击者发送了太多数据,以至于通信系统疲于

应付,就没空接受其他数据了。因特网协议中有一类协议,称为网间控制报文协议 (Internet Control Message Protocol, ICMP) ,通常用于子系统诊断。

Page 65: 第 7 章 网络安全

7.2.12 拒绝服务 (续 ) ICMP 协议与用户应用软件没有联系。 ICMP 协议

包括: (1) ping :用于要求某个目标返回一个应答,目的

是看目标系统是否可以达到以及是否运转正常。 (2) echo :用于请求一个目标将发送给它的数据发送回来,目的是看连接链路是否可靠 (ping 实际上是echo 的一个版本 ) 。

(3) destination unreachable :用于指出一个目标地址不能被访问。

(4) source quench :意味着目标即将达到处理极限,数据包的发送端应该在一段时间内暂停发送数据包。

# 由于这些协议都是在网络堆栈中进行处理的,因此在接收端检测或阻塞这些功能很困难。

Page 66: 第 7 章 网络安全

7.2.12 拒绝服务 (续 ) Echo-Chargen chargen 是一个产生一串数据包的协议,常用于

测试网络的容量。攻击者在主机 A 上建立一个chargen进程产生一串包要求主机 B返回,这样形成一个无限循环状态。更有甚者,攻击者将第一个包的目的与源地址都设定为主机 B 的地址,主机 B陷入一个循环中,不断地对它自己发出的消息做出应答。

死亡之 ping ping 要求接收者对 ping请求做出响应,故攻击者需要做的事情就是不断向攻击目标发送大量的 ping 。

Page 67: 第 7 章 网络安全

7.2.12 拒绝服务 (续 ) smurf

smurf 攻击是 ping 攻击的一个变体。首先,攻击者需要选择不知情的受害者所在的网络。假造受害者的主机地址作为 ping 包中的源地址,以使 ping 包看起来像是从受害者主机发出。然后,向整个网络广播发送这个请求。

Page 68: 第 7 章 网络安全

7.2.12 拒绝服务 (续 )

图 7.12 smurf 攻击

Page 69: 第 7 章 网络安全

7.2.12 拒绝服务 (续 ) 同步洪泛 同步洪泛 (syn flood) 是另一种流行的拒绝服务攻击。攻击利用了 TCP 协议组,使用这些面向会话的协议来实施攻击。对于一个协议 ( 比如 Telnet) ,在协议的对等层次之间将建立一个虚拟连接,称为一个会话 (session) 。

图 7.13 三次连接握手

Page 70: 第 7 章 网络安全

7.2.12 拒绝服务 (续 )

包在传输过程中偶尔会出现丢失或者损坏的情况。因此,在接收端维持着一个称为SYN_RECV 连接的队列。攻击者可以通过发送很多 SYN请求而不以 ACK响应填满该队列。

这种攻击通常使用不存在的返回地址,有两个原因:第一,攻击者不希望泄露真实的源地址,以免被通过检查 SYN_RECV 对列中的包而试图识别攻击者的来源。第二,攻击者想要使得这些伪造的 SYN 包与用于建立真实连接的合法 SYN 包没有区别。每一个包有一个不同的地址。

Page 71: 第 7 章 网络安全

7.2.12 拒绝服务 (续 ) teardrop teardrop 攻击滥用了设计来改善网路通信的特性。一个网络 IP数据报是一个变长的对象。数据报协议允许单个数据单元分片,分别发送。在 teardrop 攻击中,攻击者发送一系列数据报分片,这些数据报分片不能被正确组装。这些在极端情况下,操作系统将把不能重组的数据单元部分锁住,而导致拒绝服务。

Page 72: 第 7 章 网络安全

7.2.12 拒绝服务 (续 ) 流量重定向 路由器使用复杂的算法决定如何进行路径

的选择。路由器一般是一台带有两块或更多网卡的计算机。假设一台路由器向它的所有邻居路由器报告:它到整个网络的每个其他地址都有最好路径。这台路由器很快就会被大量通信流量所淹没,或者只能将大多数通信一丢了之。

Page 73: 第 7 章 网络安全

7.2.12 拒绝服务 (续 )

DNS 攻击 还有一种拒绝服务攻击,事实上是一类基于

域名服务器 (Domain Name Server, DNS) 的攻击。通过接管一个域名服务器或者使其存储一些伪造的表项,称为 DNS缓存中毒(DNS cache poisoning) ,攻击者可以对任何通信进行重定向,这种方式带有明显拒绝服务的含义。

Page 74: 第 7 章 网络安全

7.2.13 分布式拒绝服务 要实施分布式拒绝服务 (distributed denial-of-

service, DDoS) 攻击,攻击者需要先后做两件事情。第一件事情,攻击者使用任何一种方便的攻击在目标计算机上植入特洛伊木马,并不要引起任何注意。这样,每个目标系统就成为了一个 zombie 。第二件事情,选择了某个攻击目标,就从某个位置发送一个信号给所有的 zombie ,让它们发动攻击,攻击的方式可以多种多样。常见的 DDoS工具有TFN (Tribal Flood Network) , Trin00和TFN2K (Tribal Flood Network, year 2000 edition) 。

Page 75: 第 7 章 网络安全

7.2.13 分布式拒绝服务 (续 )

图 7.14 分布式拒绝服务攻击

Page 76: 第 7 章 网络安全

7.2.14 来自活动或者移动代码的威胁 活动代码 (active code) 或移动代码 (mobile

code) 是对被“推入”到客户端执行的代码的统称。

cookie 严格来说, cookie 不是活动代码,而是一些数据文件,远程服务器能够存入或读取cookie。 cookie 是一个对象,可以存放在内存中,也可以为将来使用而存储在磁盘上。在服务器的控制命令下,浏览器将 cookie 的内容发送给服务器。一些 cookie 的内容,使用来自服务器的密钥进行加密。 cookie 的哲学是“相信我,这对你有好处”。

Page 77: 第 7 章 网络安全

7.2.14 来自活动或者移动代码的威胁 (续 )

脚本 客户可以通过执行服务器上的脚本来请求服务。一

些怀有恶意的用户可能会监视浏览器与服务器之间的通信,从而操纵服务器的活动。一种很熟悉的针对网页服务器的攻击方式是 escape 字符 (escape-character) 攻击。网页服务器的脚本语言公共网关接口 (Common Gateway Interface, CGI) 定义了一种不依赖于具体机器的方法来对通信数据编码。 CGI脚本也可以直接在服务器上启动一个动作。如,

<!-#action arg1=value arg2=value ->

攻击者可以用以下命令替代, <!--#exec cmd="rm *" ->

Page 78: 第 7 章 网络安全

7.2.14 来自活动或者移动代码的威胁 (续 ) 微软的动态服务器页面 (Active Server Page, ASP) 也

具有相似脚本的能力。从这里可以看出,服务器永远不要相信来自客户端的任何东西。

活动代码 为了充分利用处理器的能力,服务器可以下载一些

代码到客户端去执行。两种主要的活动代码是 Java代码 (Java code)和 ActiveX 控件 (ActiveX control) 。

Java 代码 由 Java字节码组成的 Java 程序在一个 Java虚拟机

(Java virtual machine, JVM ) 上执行。

Page 79: 第 7 章 网络安全

7.2.14 来自活动或者移动代码的威胁 (续 )

Java 程序运行在一个“沙漏” (sadbox) ,即一个限制了资源的区域,以使程序不能跳出该区域。 Java 最早的规范称为 Java1.1 ,是相当可靠而又严格的,因而很少使用。 Java1.2 规范开放了更多资源,特别是在存储磁盘文件和可执行进程方面,但也开启了发现更为严重弱点 之门。 Java1.2 规范的设计是正确的,而实现人员却不能支持由设计者提出的高度安全标准。

Page 80: 第 7 章 网络安全

7.2.14 来自活动或者移动代码的威胁 (续 ) 敌意的 applet(hostile applet) 是一种可以下载的 Java

代码,会对客户系统造成损害。 Dean 等列举了安全执行 applet 的几种必要条件:

(1) 系统必须控制 applet 对重要系统资源的访问,比如文件系统、处理器、网络、用户显示和内部状态变量等。

(2) 编程语言必须通过阻止伪造内存指针和数组 (缓冲区 )溢出来保护内存。

(3) 在创建新对象的时候,系统必须通过清除内存内容来阻止对象的重用;在不再使用某些变量的时候,系统应该使用垃圾回收机制来收回所占用的内存。

(4) 系统必须控制 applet 之间的通信,以及控制 applet通过系统调用对 Java 系统外的环境产生的影响。

Page 81: 第 7 章 网络安全

7.2.14 来自活动或者移动代码的威胁 (续 )

ActiveX 控件 微软应对 Java 技术的措施是 ActiveX 系列。

使用 ActiveX 控件以后,任何类型的对象都可以下载到客户端。为了阻止任意下载文件,微软使用了一种鉴别方案,鉴别验证的仅仅是源代来源,而不是其的正确性与安全性。不论代码来自何处,都不能假设它到底有多好或者有多安全。况且,有些弱点还可以允许 ActiveX绕过这种鉴别。

Page 82: 第 7 章 网络安全

7.2.14 来自活动或者移动代码的威胁 (续 )

根据类型自动执行 在许多系统中,当一个具有某种扩展名的文

件到达时,操作系统会自动调用相应程序来处理它。攻击者常常使用没有明显文件类型的方法来隐藏一个怀有恶意的活动文件。

蠕虫 (Bot)

蠕虫 (Bot) 是黑客机器人,是远程控制的一段有恶意的代码。由蠕虫构成的网络称为botnet。 botnet常用于分布式拒绝访问攻击。

Page 83: 第 7 章 网络安全

7.2.15 综合攻击 脚本小子 如今地下组织已经将很多流行的攻击方式写成了脚本。只要有了一个脚本,攻击者不需要理解攻击原理,甚至不需要知道网络的概念。黑客团体正在积极参与对一些已知的弱点的脚本创建工作。下载并运行攻击脚本的人被称为脚本小子 (script kiddie) 。

积木 一名专注于某个攻击目标的攻击者可能同时使用几种

攻击方式来配合实施破坏。通常,这些攻击是连续进行的,以便每一个攻击部分都建立在以前攻击中收集的信息基础之上。不同的攻击方式组合在一起,就像搭积木一样,可以扩展攻击目标的数量并增加破坏的程度。

Page 84: 第 7 章 网络安全

7.2.16 网络漏洞总结表 7.4 网络的弱点目标 弱点攻击前的准备 端口扫描

社会工程学侦察OS与应用软件的特征

鉴别失效 假冒猜测窃听欺骗会话劫持中间人攻击

编程缺陷 缓冲区溢出寻址错误参数修改,检查时刻到使用时刻错误服务器端包含cookie恶意活动代码: Java, ActiveX恶意代码:病毒、蠕虫、特洛伊木马恶意输入代码

Page 85: 第 7 章 网络安全

7.2.16 网络漏洞总结 (续 )表 7.4 网络的弱点 (续 )

目标 弱点机密性 协议缺陷

偷听被动窃听

误传 网络内暴露

流量分析cookie

完整性 协议缺陷主动窃听假冒伪造消息噪声网络被“黑”DNS攻击

可用性 协议缺陷 传输或组件故障

连接洪泛,例如响应索取,死亡之 ping, smurf,同步洪泛DNS 攻击

流量重定向分布式拒绝服务

Page 86: 第 7 章 网络安全

7.3 网络安全控制7.3.1 安全威胁分析

对网络的安全分析可以采取三个步骤。首先,需要仔细观察一个系统的所有部分,以便我们知道每一个部分都做些什么事情,以及它们之间是如何进行交互的。接下来,需要考虑可能对机密性、完整性和可用性造成什么样的破坏。最后,推测会造成这种破坏的所有可能使用的攻击方式。

Page 87: 第 7 章 网络安全

7.3.1 安全威胁分析(续 )

假定恶意代理 Hector 想要攻击两个用户 Andy和Bo 之间的连网通信,可以做如下事情:

(1) 阅读通信内容。 (2) 修改从 Andy到 Bo 的通信内容。 (3) 伪造所谓的从 Andy到 Bo 的通信。 (4) 禁止从 Andy到 Bo 的通信。 (5) 禁止所有通信经过某点。 (6) 在 Andy与 Bo 之间的某台机器 C 上读取数据。 (7) 修改或者破坏 C 上的数据。

Page 88: 第 7 章 网络安全

7.3.1 安全威胁分析 (续 ) 这些威胁可以总结如下: (1) 在通信中窃听数据; (2) 访问在远程主机上的程序或者数据; (3) 修改在远程主机上的程序或者数据; (4) 修改正在传输的数据; (5) 插入通信; (6) 假冒一个用户; (7) 插入一个重复的或者以前的通信; (8) 阻塞选定的通信; (9) 阻塞所有的通信; (10) 在一个远程主机上运行一个程序。 # 具体的攻击发生,与网络的规模、匿名性、复杂

性及对网络的无知、误解连同编程都有关系。

Page 89: 第 7 章 网络安全

7.3.2 设计与实现 之前讨论过的软件设计与可信操作系统的

设计方法,同样适用于开放的 Web 应用。

Page 90: 第 7 章 网络安全

7.3.3 架构 网络的架构或设计可能对它的安全有重大影响。

可以考虑一下它们的整体架构并计划将安全作为一个主要结构内置进去。

分段 分段从两个方面减少了对网络的危害:分段减少

威胁的数量;限制了由于单个弱点而导致的损失的数量。

假设网络面向因特网用户开放了电子商务服务,该网络的基础部分可能是:

(1) 一个网页服务器,用于处理用户的 HTTP会话。 (2) 应用软件代码,展示商品和购买服务。 (3) 一个商品数据库,也许还同时提供了一个用于随时对数据库进行统计和供货商推销产品的清单。(4) 一个存放已经获取的订单数据库 。

Page 91: 第 7 章 网络安全

7.3.3 架构 (续 )

将这些活动放在同一台机器上,如果机器出现问题会导致整个运营能力被摧毁。对此应考虑分段。当然分段的方式既可以是物理的也可以是逻辑的。

图 7.15 分段结构

Page 92: 第 7 章 网络安全

7.3.3 架构 (续 ) 冗余 冗余是允许在两个或者更多节点上完成同一种

功能。冗余常常使用一种所谓的失效修复模式(failover mode) 。多台服务器协同完成一项任务,故障服务器的任务会由其他服务器自动接管。

单一故障点 评价网络体系结构容错能力的一种方法是寻找

单一故障点 (single points of failure) ,也就是说,我们会问:网络中是否存在这样的点——一旦它发生故障,将不能访问网络的所有部分或者某个重要部分?消除单一故障点的方法常常需要大量额外开销。

Page 93: 第 7 章 网络安全

7.3.3 架构 (续 )

移动代理 移动代码和恶意代理是一个潜在的攻击方法。但也存在好的代理,可以寻找不安全的无线访问点、软件漏洞或嵌入式恶意代码。 Schneider和 Zhou 提出了一个设计方案:没有一个代理对整体成功来说是关键的,但整个组是可信的。

Page 94: 第 7 章 网络安全

7.3.4 加密 在我们开始研究加密应用来解决网络安全

威胁前,先说明如下几点:首先,请记住加密不是灵丹妙药。其次,请注意加密只是保护被加密的内容 ( 这似乎是显然的,其实并不尽然 ) 。最后,加密带来的安全性不会超过密钥管理的安全性。

Page 95: 第 7 章 网络安全

7.3.4 加密 (续 )

加密可以应用于两台主机之间 (称为链路加密 ),也可以应用于两个应用软件之间 (称为端到端加密 ) 。不管哪种加密形式,密钥分发都是重要问题。

链路加密 在链路加密技术中,系统在将数据放入物理通信链

路之前对其加密。加密发生在 OSI 模型中的第 1层( 物理层 ) 或第 2层 (数据链路层 ) 。应该注意到,在消息经过的路径上的所有中间主机,消息在协议的上层是暴露的。暴露之所以发生,是由于路由和寻址信息不是由低层读取的,而是在更高层上进行的。

Page 96: 第 7 章 网络安全

7.3.4 加密 (续 )

图 7.16 链路加密

Page 97: 第 7 章 网络安全

7.3.4 加密 (续 )

链路加密对用户是透明的。加密实际上变成了由低层网络协议层完成的传输服务,就像消息寻址或者传输错误检测一样。当传输线路是整个网络最大的弱点时,链路加密就特别适用。如果网络上的所有主机都相当安全,而通信介质是与其他用户共享或者不够安全的,则链路加密就是一种简便易用的方法。

图 7.17 链路加密后的消息

Page 98: 第 7 章 网络安全

7.3.4 加密 (续 )

端到端加密 加密可由软件或硬件实现。在这两种情况下,加密都是在 OSI 模型的高层 (第 7层,即应用层;也可能是第 6层,即表示层 ) 上完成的。这种加密方式可以克服在传输模型的较低层上存在的潜在弱点,即使一个较低层不能保证安全,将它收到的消息泄密了,数据的机密性也不会受到威胁。

Page 99: 第 7 章 网络安全

7.3.4 加密 (续 )

图 7.18 端到端加密

Page 100: 第 7 章 网络安全

7.3.4 加密 (续 )

图 7.19 端到端加密的消息

Page 101: 第 7 章 网络安全

7.3.4 加密 (续 )

即使消息必须经过 A和 B 之间的路径上潜在的不安全节点传递 ( 比如 C到 G) ,也能够防范在传输中消息泄密。

图 7.20 通过主机传递的加密消息

Page 102: 第 7 章 网络安全

7.3.4 加密 (续 )

链路加密与端到端加密的比较 对消息进行简单加密不能绝对保证在传输

过程中或者在传输之后它不会被泄密。因为安全包含很多方面的内容,所以我们必须在攻击的可能性与保护措施上求得均衡,而不必强调绝对安全保证。在链路加密方式中,如果一个网络最终决定采用链路加密,通常是对网络中的所有链路都进行加密处理。

Page 103: 第 7 章 网络安全

7.3.4 加密 (续 )

端到端加密则应用于“逻辑链路”。加密仅仅用于需要进行加密处理的消息和应用软件。我们可以有选择地进行加密,有时对一个应用进行加密,有时甚至可以对一个特定应用中的某一条消息进行加密。当考虑加密密钥时,端到端加密的可选择性优点却变成了一个缺点。在某些情况下,两种加密方式可以混合使用。

Page 104: 第 7 章 网络安全

7.3.4 加密 (续 )表 7.5 链路加密与端到端加密的比较

链路加密 端到端加密主机内部安全

数据在发送主机上是暴露的数据在中间点上是暴露的

数据在发送主机上是加密的数据在中间点上是加密的

用户的任务由发送主机使用对用户不可见由主机维护加密一套设施提供给所有用户使用加密通常采用硬件完成数据要么都加密,要么都不加密

由发送进程使用用户使用加密用户必须寻找相应算法用户选择加密软、硬件实现均可用户可以选择是否加密,选择可以针对每个数据项

实现时考虑的问题要求每一对主机一个密钥提供节点鉴别

要求每一对用户一个密钥提供用户鉴别

Page 105: 第 7 章 网络安全

7.3.4 加密 (续 )

虚拟专有网络 链路加密可以为网络用户提供一种环境,在

这种环境中,使他们感觉仿佛处在一个专有网络中,甚至这只是公共网络的一部分也是如此。由于这个原因,这种方法被称为虚拟专有网络 (Virtual Private Network, VPN) 。

防火墙是一种访问控制设备,常常安置在两个网络或者两个网络段之间。它过滤了在受保护的 (即“内部” ) 网路与不可信的 (即“外部” ) 网路或网络段之间的所有流量。

Page 106: 第 7 章 网络安全

7.3.4 加密 (续 ) 许多防火墙都可用于实现 VPN 。当用户第一次与

防火墙建立一个通信时,用户可以向防火墙请求一个 VPN会话。用户的客户机与防火墙通过协商获得一个会话加密密钥,随后防火墙和客户机使用该密钥对它们之间的所有通信进行加密。这样,我们说通信经过了一个加密隧道或者隧道。

图 7.21 建立虚拟专有网络的过程

Page 107: 第 7 章 网络安全

7.3.4 加密 (续 ) 在防火墙与网络周界内的鉴别服务器交互时,建

立虚拟专有网络。防火墙会将用户鉴别数据传递给鉴别服务器,在确认了用户的鉴别身份以后,防火墙将给用户提供适当的安全特权。 防火墙在VPN 的基础上实现了访问控制。

图 7.22 VPN允许特权访问

Page 108: 第 7 章 网络安全

7.3.4 加密 (续 )

PKI 与证书 公钥基础设施 (Public Key Infrastructure, PKI) 是一个为

实现公钥加密而建立的系统,常常用于一些大型 ( 和分布式 ) 应用环境中。 PKI 为每一个用户提供了一套与身份鉴别和访问控制相关的服务,包括:

(1) 使用 (公开的 )加密密钥建立与用户身份相关的证书。

(2) 从数据库中分发证书。 (3) 对证书签名,以增加证书真实性的可信度。 (4) 确认 ( 或者否认 ) 一个证书是有效的。 (5) 无效证书意味着持有该证书的用户不再被允许访

问,或者他们的私钥已经泄密。

Page 109: 第 7 章 网络安全

7.3.4 加密 (续 ) PKI常常被当作一种标准,但事实上它定义了一套

策略、产品和规程的框架。 PKI 建立的一些实体,称为证书管理中心 (certificate authority) ,实现了PKI证书管理规则。通常,我们都认为证书管理中心是可信赖的。可将证书管理中心的活动概括如下:

(1) 对公钥证书的整个生命周期进行管理。 (2) 通过将一个用户或者系统的身份绑定到一个带有数字签名的公钥来发放证书。

(3) 为证书安排终止日期。 (4) 通过发布证书撤销列表来确保证书在需要的时候

被撤销。

Page 110: 第 7 章 网络安全

7.3.4 加密 (续 ) PKI还包含一个注册管理中心 (registration authority) ,充当用户和证书管理中心之间的接口。注册管理中心获取并鉴别用户的身份,然后向相应的证书管理中心提交一个证书请求。注册管理中心的性质决定了所发放证书的信任级别。

许多国家正在为实现 PKI 而努力,目的是允许公司和政府代理实现 PKI 和互操作。主流 PKI解决方案开发商包括 Baltimore Technologies、 Northern Telecom/Entrust 以及 Identrus 。

绝大多数 PKI进程使用证书来将身份与一个密钥绑定在一起。但是,目前正在研究将证书的概念扩展为一些更广的信任特征。简单分布式安全基础设施 (Simple Distributed Security Infrastructure, SDSI) 包含身份证书、组成员关系证书和名称绑定证书。

Page 111: 第 7 章 网络安全

7.3.4 加密 (续 )

PKI还是一个不成熟的处理方案,仍有很多问题有待解决,尤其是 PKI还没有在大规模的应用环境中实现。首先,证书管理中心应该经过独立实体的批准和验证。其次,证书管理中心和注册管理中心的访问应该进行严密控制,通过一些强用户鉴别方式 ( 比如智能卡 ) 可加以实现。

在对证书进行保护时涉及到的安全问题还包括管理过程。 还应该设置一些控制措施来检测黑客并阻止他们发布伪造的证书请求。还必须进行安全审计跟踪,以便在系统出现故障时能够重建证书信息,以及在攻击真正破坏了鉴别过程时能够恢复。

Page 112: 第 7 章 网络安全

7.3.4 加密 (续 ) SSH加密 安全壳协议 (Secure Shell Protocol, SSH) ,是

一组协议,为 shell 或者操作系统命令行解释器提供了一个鉴别和加密的通道。为实现远程访问, SSH 的两个版本实际都取代了 UNIX 的系统工具,比如 Telnet, rlogin和 rsh 等。 SSH能有效防止欺骗攻击和修改通信数据。

SSH 协议还包括在本地与远程站点之间协商加密算法 ( 比如, DES, IDEA和 AES 算法 ) 以及鉴别 ( 包括:公钥和 Kerberos) 。

Page 113: 第 7 章 网络安全

7.3.4 加密 (续 ) SSL加密 安全套接层 (Secure Sockets Layer, SSL) 协

议最初是由 Netscape公司设计来保护浏览器与服务器之间的通信,也称传输层安全(Transport Layer Security, TLS)。 SSL 实现了应用软件与 TCP/IP 协议之间的接口,在客户与服务器之间提供服务器鉴别、可选客户鉴别和加密通信通道。

SSL只保护从客户端浏览器到服务器解密点这一段。从用户键盘到浏览器,以及接收者的网络,数据都将被泄漏。 Blue Gem Security公司设计的 LocalSSL 可以提供从键盘到浏览器的保护。

Page 114: 第 7 章 网络安全

7.3.4 加密 (续 )

IPSec

IPv6(IP 协议组的第 6 个版本 ) 的新结构解决了寻址问题。这次重构地址,也为因特网工程任务组(Internet Engineering Task Force, IETF )解决已知严重的安全问题,提供了一个非常好的机会。 IETF采用了 IP安全协议组 (IP Security Protocol Suite, IPSec) 。 IPSec 协议是在 IP层上实现的,所以它会影响到上面各层,特别是 TCP和 UDP。 IPSec被设计成与具体的加密协议无关,并允许通信双方就一套互相支持的协议达成一致。 IPSec 的基础是所谓的安全关联 (security association) ,本质上是为一个安全通信信道提供的一套安全参数。

Page 115: 第 7 章 网络安全

7.3.4 加密 (续 ) 安全关联包括: (1) 加密算法与模式 (例如, CBC 模式的

DES 算法 ) 。 (2) 加密密钥。 (3) 加密参数,比如初始化向量。 (4) 鉴别协议和密钥。 (5) 关联的生命周期,在长时间进行会话时,允许尽可能频繁地选择新的加密密钥。

(6) 关联对应端的地址。 (7) 受保护数据的敏感级别 ( 可用于数据分类 ) 。

Page 116: 第 7 章 网络安全

7.3.4 加密 (续 ) 安全关联是由一个安全参数索引 (Security Parameter

Index, SPI) 来选择的,这是一个数据元素,实际上是一个指向一张安全关联表的指针。

IPSec 的基本数据结构是鉴别头部 (Authentication Header, AH) 和封装的安全负载 (Encapsulated Security Payload, ESP)。 ESP取代 ( 包含 )了一个包的传统TCP头部和数据部分,物理头部和尾部依赖数据链路层和物理层通信介质。

图 7.23 包 : (a)传统的包; (b) IPSec 包

Page 117: 第 7 章 网络安全

7.3.4 加密 (续 ) ESP 包含了鉴别部分和加密部分。每当一个使用相同 SPI 的

包传送到同一个地址时,序列号加 1 ,以排除包重放攻击。负载数据是包的实际数据。使用固定大小的块,所以使用了填充因子和填充长度字段,指明填充的数据和数量,使得负载数据保持一个合适的长度。下一个头部指出了负载数据的类型。鉴别字段负责对整个对象的鉴别。

图 7.24 封装的安全包

Page 118: 第 7 章 网络安全

7.3.4 加密 (续 )

IPSec针对密钥管理需要使用了因特网安全关联密钥管理协议 (Internet Security Association Key Management Protocol, ISAKMP)。 ISAKMP 要求为每一个安全关联生成一个唯一的密钥。在 IPSec中,通过 ISAKMP密钥交换 (IKE, ISAKMP Key Exchange) 方式来实现, IKE 提供了一种方法来协商并管理协议、算法和密钥。 IKE 使用 Diffie-Hellman 方案建立密钥、也可进行鉴别或更新密钥。

IPSec 可以用于多种目的下的加密会话,包括 VPN 、应用软件和低层网络管理 ( 比如寻址 ) 。

Page 119: 第 7 章 网络安全

7.3.4 加密 (续 )

签名代码 活动代码将使用下载它的用户的特权运行,

这样,将会造成很严重的破坏,从删除文件、发送电子邮件消息,到使用特洛伊木马造成轻微而难以察觉的损害等。签名代码 (signed code) 是减少这种危险的一种方法。PKI 可以实现签名,然而,谁可以担当可信第三方仍然是一个问题。

Page 120: 第 7 章 网络安全

7.3.4 加密 (续 )

加密的 E-mail

一个电子邮件消息很像一张明信片的背面。经手明信片传递的任何人都可以阅读其中的地址和消息。我们可以使用加密来保护消息的机密性及其完整性。其中的密钥管理是困难的问题。密钥管理方法有两种:分别是使用层次的、基于证书的 PKI 方案来交换密钥以及使用单一的、个人对个人的交换方式。分层方法有 S/MIME ,个人方法有 PGP 。

Page 121: 第 7 章 网络安全

7.3.5 内容完整性 我们需要考虑三种潜在的内容完整性威胁: (1) 以一种有意义的方式改变内容的恶意的修改。

(2) 以一种不一定有意义的方式改变内容的恶意或无恶意的修改。

(3) 以一种不能被检测的方式改变内容的无恶意的修改。

Page 122: 第 7 章 网络安全

7.3.5 内容完整性 (续 ) 纠错码 可以使用错误发现码 (error detection) 和纠错码

(error correction codes ) 来发现对数据进行的修改。最简单的检错码是奇偶检测 (parity check) 。奇偶校验的两种方式分别称为偶校验和奇校验。在偶校验(even parity) 方式中,如果所有数据位的和是偶数,则校验位为 0;如果和是奇数,则校验位为 1 ,也就是保证总和始终为偶数。奇校验 (odd parity) 是保证总和始终为奇数。

还有一些其它类型的错误检测码,比如哈希编码(hash code) 和哈夫曼编码 (Huffman code) 。一些更复杂的编码可以检查出多位错误而且可以纠正错误。这些方法常常用于无恶意的数据修改。

Page 123: 第 7 章 网络安全

7.3.5 内容完整性 (续 )

密码校验和 密码校验和 (cryptographic checksum)[ 有时

也称消息摘要 (message digest)] 是一个加密函数,可以产生一个校验和。这种加密方式使得攻击者修改数据块 (明文 ) 就会相应地修改与之匹配的校验和的值 (密码 ) ,从而能够检测出数据被修改,达到阻止攻击的目的。代码防篡改保护和传输中消息完整性保护是密码校验和的主要功能。

Page 124: 第 7 章 网络安全

7.3.6 强鉴别 对网络环境也需要加以鉴别。然而,在网

络中,安全地实现鉴别可能会更加困难,因为网络环境中可能出现窃听和偷听,而这在未连网的环境中几乎是不会发生的。存在于自治的分布式系统中的鉴别问题是,怎样提高对网络实体的信任,而这些实体之间没有任何关系。

Page 125: 第 7 章 网络安全

7.3.6 强鉴别 (续 ) 一次性口令 一次性口令 (one-time password)只能使用一次。为了解决维护口令列表的麻烦,可以使用一个口令令牌 (password token) ,这是一种专门的设备,用于产生一个不能预测但可以在接收端通过验证的口令。

这种方法的主要优缺点是:首先,优点是它容易使用,因为杜绝了通过偷听重用口令的可能性。由于它采用了一种强口令生成算法,所以也能避免被欺骗。然而,主要缺点是如果丢失了口令生成器,或者遇到更糟糕的情况,口令生成器落入一名攻击者的手中,系统就会面临危险。

Page 126: 第 7 章 网络安全

7.3.6 强鉴别 (续 ) 挑战 -响应系统 通过一些鉴别消息的交互实现鉴别,但是,仍然

存在鉴别信息的存储问题。 Digital 分布式鉴别 需要在一个计算系统中鉴别除人之外的其他实体。

为此, Digital Equipment Corporation 建立了一种简单的结构,能有效防范以下威胁:

(1) 一个无赖进程假冒其中一台服务器,因为两台服务器都涉及到鉴别。

(2) 窃听或者修改服务器之间交换的数据。 (3) 重放一个以前的鉴别。

Page 127: 第 7 章 网络安全

7.3.6 强鉴别 (续 )

系统使用实体的公钥进行鉴别,并且只要服务器 A 和服务器 B 的任何一方选择一个加密密钥,并在鉴别消息中将密钥发送给对方,就可以由此建立起一个私有信道。这种鉴别机制在实现的时候仍然需要解决两个难题:怎样才能发布大量的公钥?这些公钥怎样发布才能确保安全地将一个进程与该密钥进行绑定?

Page 128: 第 7 章 网络安全

7.3.6 强鉴别 (续 ) Kerberos

Kerberos 是一个系统,支持在分布式环境中实现鉴别。在最初设计时,采用的是对称密钥加密的工作方式。在最近的版本中,使用公钥技术支持密钥交换。 Kerberos 用于智能进程之间的鉴别。

Kerberos 的思想基础是:中心服务器提供一种称为票据 (ticket) 的鉴别令牌,向应用软件提出请求。其中,票据是一种不能伪造、不能重放和鉴别的对象。也就是说,票据是指定用户和服务的加密数据结构,用于确定用户可以获得的服务,其中包含一个时间值和一些控制信息。

Page 129: 第 7 章 网络安全

7.3.6 强鉴别 (续 )

图 7.25 启动一个 Kerberos会话

口令存放在 Kerberos 服务器上,而不是在工作站上,而且用户的口令不需要以任何直接形式通过网络传递。将口令集中管理而不通过网络直接传递是一个安全性方面的优点。

Page 130: 第 7 章 网络安全

7.3.6 强鉴别(续 )

图 7.26 获取访问文件的票据

Page 131: 第 7 章 网络安全

7.3.6 强鉴别 (续 ) Kerberos 通过谨慎地设计来抵御分布式环境中的各种

攻击: (1) 网络中无直接口令通信:我们已经介绍过,用户

的口令只存放在 Kerberos 服务器上。 (2) 加密保护可以防止欺骗:每一次访问请求都要经

过票据授权服务器的鉴别,而授权服务器知道请求者的身份,判断的依据是 Kerberos 服务器开始时完成的鉴别。

(3) 有限的有效期:每一个票据在分配的时候都预先规定了一个有限的时间段。

(4) 时间戳阻止重放攻击: Kerberos 要求可靠地访问统一的时钟。每一个用户对服务器的请求都以请求时刻作为标记。

(5) 双向鉴别:使用服务的用户通过请求一个来自服务器的鉴别响应,可以确定任何服务器的真实性。

Page 132: 第 7 章 网络安全

7.3.6 强鉴别 (续 ) Kerberos 不是解决分布式系统安全问题的完美答案,

而且存在着以下问题: (1) Kerberos要求一台可信任的票据授权服务器连续

可用:无论是可靠性 ( 硬件或者软件故障 ) 问题还是性能 (容量和速度 ) 问题都必须给予妥善解决。

(2) 服务器的真实性要求在票据授权服务器与每一台服务器之间保持一种信任关系:票据授权服务器与每一台“值得信赖的”服务器之间都必须共享一个唯一的加密密钥。

(3) Kerberos要求实时传输:希望将票据的有效期设计得恰到好处也是相当困难的;如果设计得太长,就会让重放攻击者有可乘之机;但如果设计得太短,又会要求频繁地提示用户进行响应。

Page 133: 第 7 章 网络安全

7.3.6 强鉴别 (续 ) (4) 一个被暗中破坏的工作站可以存储用户口令并在稍后重放该口令。

(5) 口令猜测仍能奏效:返回给用户的原始票据是使用用户的口令加密的。

(6) Kerberos 不具有可伸缩性:假如为了提高系统的性能和可靠性,我们增加了第二台票据授权服务器,这就会要求对所有的服务器复制密钥或者使用另外一套新密钥。

(7) Kerberos 是一整套解决方案,不能与其他方案结合使用:所有的应用软件都必须使用 Kerberos鉴别和访问控制。

Page 134: 第 7 章 网络安全

7.3.6 强鉴别 (续 )

图 7.27 在 Kerberos 中对服务器和服务的访问

Page 135: 第 7 章 网络安全

7.3.7 访问控制 访问控制解决安全策略中如何实施访问及允许访问

什么内容的问题。 路由器上的 ACL

路由器的主要任务是定向网络流量,它们将流量发送到自己所控制的子网,或者发送给其他路由器,以便随后传递到其他子网。路由器将外部 IP地址转换成本地子网中对应主机的内部 MAC地址。

假设有一台主机被一台恶意的无赖主机发送来的数据包塞满了 ( 被淹没了 ) ,可以配置路由的访问控制列表 (Access Control List, ACL) ,使其拒绝某些特定主机对另一些特定主机的访问。

Page 136: 第 7 章 网络安全

7.3.7 访问控制 (续 )

这种方法存在几个问题: (1) 增加一个 ACL 就会降低路由器的性能;增加的 ACL太多,就会使路由器的性能变得使人不能接受。

(2) 第二个问题也是一个效率问题:因为路由器要做大量工作,所以被设计为仅提供一些必要的操作。日志记录工作通常不会在路由器上进行处理,然而,对 ACL 而言,日志却是很有用的。由于路由器不提供日志记录服务,所以我们不可能知道一个 ACL 是否被使用了。

Page 137: 第 7 章 网络安全

7.3.7 访问控制 (续 )

(3) 在路由器上设置 ACL 的最后一个限制是出于对攻击本身的考虑。攻击者通常不会暴露实际的源地址。所以路由器的 ACL仅仅是在攻击者发送很多使用相同的伪造源地址的数据报时才会有用。

# 路由器是一个出色的访问控制点,因为它处理了子网中每一个流入和流出的包。 但通常只在限制特定的通信流时考虑使用路由器的 ACL 。

Page 138: 第 7 章 网络安全

7.3.7 访问控制 (续 )

防火墙 防火墙被设计来完成不适合路由器做的过滤工作。这样,路由器的主要功能是寻址,而防火墙的主要功能是过滤。防火墙甚至可以检查一个包的全部内容,包括数据部分。

Page 139: 第 7 章 网络安全

7.3.8 无线安全 无线安全需要分段保护,指发现无线访问点、鉴别连到访问点的远程计算机以及保护通信流。

SSID

服务区标识符 (Service Set Identifier, SSID)是无线访问的识别标志,是 32 个字符的字符串。显然, SSID 在给定区域内应该是唯一的,以区别不同的无线网络。现在大多数出厂的默认值是与设备相关的唯一序列号。

Page 140: 第 7 章 网络安全

7.3.8 无线安全 (续 )

客户端和无线访问点通过握手来彼此定位,这是第一步。在“开放模式”下,无线访问点可以连续广播它的请求,表明它是开放的。协议中的“关闭”或“隐身模式” (stealth mode)的顺序相反:在无线访问点对一个邀请连接的查询做出响应之前,客户端先发送寻找特定无线访问点 SSID 的信号。

Page 141: 第 7 章 网络安全

7.3.8 无线安全 (续 ) WEP 无线通信安全的第二步涉及加密。 802.11无线标准依赖的加密协议称为有线等效保密 (Wired Equivalent Privacy, WEP) 协议。 WEP 提供的用户保密性等效于有线专用线路的保密性,可防止偷听和假冒攻击。 WEP 在客户端与无线访问点间使用共享密钥。

WEP标准使用 64或 128位密钥。用户可以使用任何方式输入密钥。除开密钥选择的可能脆弱性,在算法中的使用方式决定了密钥的有效长度只有 40位或 104位。以 WEPCrack和 AirSnort开始,有几个工具帮助攻击者通常能在几分钟内破解WEP加密。遗憾的是,一些在市场流行的无线设备仍在使用WEP 的假安全。

Page 142: 第 7 章 网络安全

7.3.8 无线安全 (续 ) WPA和WPA2 替代 WEP 的一项安全技术是 2003年通过的 WiFi保护访问 (WiFi Protected Access, WPA)。 2004年通过了WPA2 ,它是 IEEE标准 802.11i ,是WPA 的扩展版。 WPA做了如下改进:

(1) WPA 有一种密钥改变方法,称为临时密钥完整程序 (Temporal Key Integrity Program, TKIP) ,使用 TKIP 可针对每个包自动改变密钥。

(2) WPA 使用可扩展认证协议 (Extensible Authentication Protocol, EAP) ,在这种协议中,口令、令牌、数字证书或其他机制均可用于鉴别。

(3) WPA2 增加 AES 作为可能使用的加密算法和64位加密的完整性检查。

Page 143: 第 7 章 网络安全

7.3.8 无线安全 (续 )

WPA和WPA2 建立的协议比 WEP 的更健壮。对于 WPA 建立涉及三个协议步骤:鉴别、 4回合握手 ( 确保在通信的两端,为加密与完整性生成并安装密钥 ) 和可选的组密钥握手 (针对组播通信 ) 。但无线设备的处理器能力有限,成了使用计算量大的公钥加密的一个限制因素。

Page 144: 第 7 章 网络安全

7.3.9 警报与警戒 入侵检测系统 (intrusion detection system) 是一种

安置在受保护网络内部的设备,用来监视网络中发生了什么事情。如果攻击者能够穿过路由器和防火墙,入侵检测系统提供了一个检测攻击的机会,可以在攻击的开始、进行过程中或者攻击发生以后对攻击进行检测。

图 7.28 网络分层保护

Page 145: 第 7 章 网络安全

7.3.10 蜜罐 蜜罐 (honeypot) 是一个向攻击者们敞开的计算机系统。

出于以下几个原因可能会使用蜜罐: (1) 观察攻击者在干什么,目的是学习一些新的攻击

技术 (从而可以加强防御来阻止这些新的攻击方式 ) 。 (2) 引诱一名攻击者到某个地方去,在那里你可以了解到更多与攻击者有关的东西,从而识别并阻止他。

(3) 为攻击者提供一个吸引力但却是用于转移注意力的场所,希望以此来让他们远离真正的系统。

蜜罐没有特殊的特征。它只是一个计算机系统或者一个网段,其上有一些服务器、一些服务以及一些数据。蜜罐有两个难点:建立让人信任的、有吸引力的假环境;暗中限制和监视攻击者。

Page 146: 第 7 章 网络安全

7.3.11 通信流安全 如果攻击者检测到两点之间出现了异常数

量的通信,他就能够推测出即将发生的事件的位置。针对通信流威胁的对策是对通信流进行伪装。一种伪装通信流的方法是在通信的两点之间保持一个稳定数量的通信流。这种方法虽然要花费较大的代价而且显得很原始,但却相当奏效。

一种更复杂的保证通信流安全的方法称为洋葱型路由 (onion routing) 。每一次包装都使用了与中间接收者对应的密钥进行加密。

Page 147: 第 7 章 网络安全

7.3.11 通信流安全 (续 )

在这种方案中,任何中间接收者 ( 不是最初发送者和最终接收者的中间传递者 ) 既不知道包起源于哪里,也不知道结束于何处。这种方案为消息的内容、源地址、目的地址以及路由信息提供了机密性保证。

图 7.29 洋葱型路由算法(AB)

Page 148: 第 7 章 网络安全

7.3.12 控制措施总结 网络安全设计人员有很多工具供他们选择。

其中一些工具,比如加密、访问控制与鉴别、编程控制,与我们在前面几章中讨论过的相关内容相似。但是,其中有三种工具是网络环境中所特有的,防火墙、入侵检测系统和加密电子邮件。防火墙用于控制进出被保护网段的通信流;入侵检测系统用于监视网络内的通信量,以发现正在实施或者即将发生的潜在攻击;而加密电子邮件使用加密来提高电子消息的机密性或者真实性。

Page 149: 第 7 章 网络安全

7.4 防火墙7.4.1 什么是防火墙

防火墙是在受保护的 (或“内部” )网与不太可信的 (或“外部” )网之间对所有通信量进行过滤的设备。防火墙通常运行在专有设备上。一方面,因为它是信息流必须通过的地点,性能是最重要的,这意味着不属于防火墙的功能就不应该在这台机器上运行。另一方面,因为防火墙本身是可执行代码的,如果在同一台机器安装了其他工具,就会使得攻击者可能会损害这些代码的安全,并从运行防火墙的机器上执行代码。因此,防火墙代码通常运行在私有或经过精心裁减的操作系统上。

Page 150: 第 7 章 网络安全

7.4.1 什么是防火墙(续 )

用防火墙保护网络的部分困难,在于采取何种安全策略能够满足安装需要。尤其是对防火墙的默认行为。对此有两种学术思想,一种认为未明确禁止的就是允许的 (默认允许 ) ,另一种认为未明确允许的就是禁止的(默认拒绝 ) 。用户通常支持前者,而安全专家通常支持后者。

Page 151: 第 7 章 网络安全

7.4.2 防火墙设计 防火墙是引用监视器的特殊形式。仔细定位防火墙在网络中的位置,可以保证我们想控制的网络访问必须穿过防火墙。防火墙通常进行了很好的隔离,这就使得其不易被修改。防火墙设计者还强烈推荐保持防火墙功能简单化。

Page 152: 第 7 章 网络安全

7.4.3 防火墙的类型 防火墙类型包括:包过滤网关或屏蔽路由器、状态审查防火墙、应用代理、门卫、个人防火墙。

一般来讲,屏蔽路由器往往实现相当简化的安全策略,而门卫和代理网关有更丰富的安全策略可供选择。在选择防火墙时,要问的重要的问题是:我们安装防火墙究竟为了解决什么问题。

因为防火墙是一种主机类型,常常和高质量的工作站一样是可编程的。但是,防火墙的开发者要求防火墙功能最少。需要最少化约束的最好理由是:给攻击者尽可能小的帮助。这样,防火墙一般不设置用户账户。所以,没有口令文件需要被隐藏。

Page 153: 第 7 章 网络安全

7.4.3 防火墙的类型 (续 )

包过滤网关 包过滤网关根据包地址 (源或目的 ) 或特定传输协议类型 (如基于 HTTP 协议的 Web通信 ) 来控制包访问内部网络。位于路由器后面 (靠近本地网络一侧 ) 的隔离防火墙会在信息流到达受保护网络之前对其进行过滤,从而不损失路由器的性能。

Page 154: 第 7 章 网络安全

7.4.3 防火墙的类型 (续 )

7.30 包过滤器阻止某些地址和协议示意图

Page 155: 第 7 章 网络安全

7.4.3 防火墙的类型 (续 )

图 7.31 三个连接的 LAN

Page 156: 第 7 章 网络安全

7.4.3 防火墙的类型 (续 )

包过滤器看不见包的内容,仅仅根据 IP地址和端口来决定拒绝或者接收包。因此,包数据部分的细节超出了包过滤器的处理能力。

包过滤器能实现一个很重要的服务:保证内部地址的有效性。包的源地址是可以伪造的,包过滤器位于内部网络和外部网络之间,所以能知道外部包是否在伪造内部地址。屏蔽包过滤器可通过配置来拒绝所有来自外部的包,即使它们声称的源地址是内部地址。

Page 157: 第 7 章 网络安全

7.4.3 防火墙的类型 (续 )

包屏蔽路由器的主要缺点在于它是简单性和复杂性的结合物。路由器的检查相对简单;而要实现复杂的过滤,过滤规则集要求相当详细。详细的规则集会很复杂,因此容易出错。

图 7.32 过滤屏蔽外部地址

Page 158: 第 7 章 网络安全

7.4.3 防火墙的类型 (续 )

状态审查防火墙 状态审查防火墙 (stateful inspection firewall)

用于在输入流中从一个包到另一个包的过渡时维护状态信息。攻击者可能将一个攻击包分割成多个包,使得每个包具有很短的长度。这样,防火墙就检查不到分布在多个包中的攻击信号。状态审查防火墙通过跟踪包序列和从一个包到另一个包的状况来防止这种攻击。

Page 159: 第 7 章 网络安全

7.4.3 防火墙的类型 (续 ) 应用代理 应用代理网关 (application proxy gateway) (亦称堡垒主机, bastion host) 是一种防火墙,能模拟应用软件的 (正常 )效果,使应用软件仅接受正常的活动请求。也就是,对内部,看起来好像是外部 (目的 ) 连接;对外部,按内部的响应方式进行响应。

应用代理运行伪应用软件。比如,发送邮件,代理网关在中间介入了协议交换,使整个系统看起来就像目的方在与位于防火墙外部的发送方通信,而发送方在与内部真正的目的方通信一样。这样,处于中间的代理就有机会过滤邮件传输,以保证只有可接受的邮件协议命令送达目的地。

Page 160: 第 7 章 网络安全

7.4.3 防火墙的类型 (续 )

可对防火墙上的代理进行裁减以适应特殊要求 ( 比如要求记录访问细节 ) ,甚至能把与内部功能相异的部分呈现给普通的用户接口。假设内部网络有多种类型的操作系统,每种操作系统均不能通过挑战 -响应支持强鉴别。代理可以要求强鉴别 (姓名、口令和挑战 -响应 ) ,并执行挑战 -响应协议,然后以特定内部主机操作系统要求的格式传递简单的姓名和口令等鉴别细节。

代理与屏蔽路由器的区别在于:代理面向应用软件解析协议流,根据协议内部可见的内容而不是仅仅根据头部数据来控制穿越防火墙的行为。

Page 161: 第 7 章 网络安全

7.4.3 防火墙的类型 (续 )

7.33 防火墙代理的动作

Page 162: 第 7 章 网络安全

7.4.3 防火墙的类型 (续 )

门卫 像代理防火墙一样,它接收协议数据单元

并解析它们,然后使用相同或不同的协议数据单元传递相同的或经过修改的数据。门卫能提供的控制程度仅限于一些可计算的内容。门卫和代理防火墙极为相似,二者的区别有时很模糊。

Page 163: 第 7 章 网络安全

7.4.3 防火墙的类型 (续 ) 门卫的活动是相当精密复杂的,看过以下示例就能明白:

(1) 某大学想要限制学生使用电子邮件,要求在最近若干天中的消息数或电子邮件字符数不能超过某个上限。

(2) 某学校想让学生能够访问万维网,但由于其连接速度慢,故只允许他们在下载图像时仅能下载有限的种类。

(3) 某图书馆想使某些文献可以被访问,但考虑到支持合理使用版权的问题,仅允许用户检索文献中开始的部分内容,超出的部分要求用户付费,并将费用转交给作者。

(4) 某公司想允许员工以 FTP 方式获取文件。但为防止病毒入侵,需要对所有传入的文件进行病毒扫描。

# 由于门卫实现的安全策略比代理复杂,所以门卫的代码相应更复杂,因此更容易出错。

Page 164: 第 7 章 网络安全

7.4.4 个人防火墙 个人防火墙 (personal firewall) 是一种应用程序,运行在工作站上,用来隔离不希望的、来自网络的通信量。个人防火墙是常规防火墙功能的补充,可以针对单个主机设置可接受的数据类型,或者在用数字用户专线 (Digital Subscriber Line) 或线缆调制解调器连接因特网时,用来弥补常规防火墙中缺少的过滤规则。个人防火墙过滤单个工作站的通信量。

已有商业个人防火墙,如 Symantec公司的Norton 个人防火墙、 McAfee 个人防火墙和 Zone实验室的 Zone Alarm( 现所属为 Check Point) 。

Page 165: 第 7 章 网络安全

7.4.4 个人防火墙 (续 )

个人防火墙经过配置后可以实施一些安全策略,也产生访问日志。把病毒扫描器和个人防火墙结合在一起使用不但有效,而且效率高。例如,个人防火墙会将所有进入的电子邮件定位到病毒扫描器,在那里可以对每个已经到达了目的主机但未打开的附件进行检查。

个人防火墙运行在它所要保护的计算机上,能对不在网络防火墙保护范围内的客户提供合理的保护。

Page 166: 第 7 章 网络安全

7.4.5 几种类型防火墙的比较表 7.6 几种类型防火墙比较包过滤器 状态审查 应用代理 门卫 个人防火墙

最简单 较复杂 更复杂 最复杂 与包过滤器相似只看见地址和服务协议类型

能看见地址和数据

看见包的全部数据部分

看见通信的全部文本

看见包的全部数据部分

审计困难 可能审计 能审计 能审计 能审计,并通常实现了审计活动

基于接连规则的过滤

基于通过包的信息过滤——头部或数据段

基于代理的行为过滤

基于信息内容的解释过滤

基于单个包中的信息 (使用头部或数据 )过滤

复杂的寻址规则使得配置困难

通常预先配置以检测攻击信号

简单的代理可以代替复杂的寻址规则

门卫的复杂功能会限制保证

“通常以 拒绝所”有入站 模式开

始,不断添加信任地址

Page 167: 第 7 章 网络安全

7.4.6 防火墙配置举例

图 7.34 带有屏蔽路由器的防火墙

图 7.35 在分离 LAN 中的防火墙

Page 168: 第 7 章 网络安全

7.4.6 防火墙配置举例 (续 ) 屏蔽路由器和代理防火墙双配置。代理防火墙根据其

代理规则过滤通信量。如果屏蔽路由器遭到破坏,也只有到代理防火墙的通信量是可见的,而受保护的内部 LAN 上的敏感信息仍然不可见。

图 7.36 具有代理和屏蔽路由器的防火墙

Page 169: 第 7 章 网络安全

7.4.7 防火墙能阻止什么,不能阻止什么 防火墙只能保护其环境的周界,以防止在保护环境内

的机器上执行代码或访问数据的外来者实施的攻击。关于防火墙,请牢记以下几点:

(1) 仅当防火墙控制了全部周界才能保护其环境。即使只有一台内部主机直接连接 (如用调制解调器 )到一个外部地址,整个内部网络都容易受到攻击。

(2) 防火墙不能保护周界以外的数据,穿越防火墙出去 ( 出站 ) 的数据将失去防火墙的保护。

(3) 对外部而言,防火墙是整个结构中可见部分最多的设备,采取几个不同的层次进行保护 [称为“纵深防御” (defense in depth)] 的措施比仅依赖单个防火墙的能力要好。

Page 170: 第 7 章 网络安全

7.4.7 防火墙能阻止什么,不能阻止什么(续 )

(4) 防火墙必须进行正确配置,配置必须能随着内部和外部环境的改变而更新,对防火墙的活动报告必须进行定期检查以搜集企图入侵或者成功入侵的证据。

(5) 防火墙是入侵者的目标。然而,设计来抵御攻击的防火墙并不是牢不可破的。

(6) 防火墙对运行进入内部的内容只能进行很少的控制,这意味着对不正确的数据或恶意代码必须由周界内的其他方式进行控制。

Page 171: 第 7 章 网络安全

7.5 入侵检测系统 控制大多数采取的是预防性措施,阻止一些已知的糟糕事情发生。大多数计算机安全事故都是由内部人员造成的,因为内部人员的活动不受防火墙的控制。预防固然重要,但当不能进行完全的计算机安全控制时,事故发生期间的检测,能处理预先不能阻止的伤害。

入侵检测系统作为防御的下一道防线弥补了这些预防控制措施的不足。入侵检测系统(Intrusion Detection System, IDS) 是一种设备,通常是一台独立的计算机,通过监视内部的活动来识别恶意的可疑的事件。

Page 172: 第 7 章 网络安全

7.5 入侵检测系统 (续 ) IDS 能实现多种功能: (1) 监视用户和系统活动。 (2) 审计系统配置中存在的弱点和错误配置。 (3) 评估关键系统和数据文件的完整性。 (4) 识别系统活动中存在的已知攻击模式。 (5) 通过统计分析识别不正常活动。 (6) 管理审计跟踪,当用户违反策略或正常活动时,给出警示。

(7) 纠正系统配置错误。 (8) 安装、运行陷阱以记录入侵者的相关信息。

Page 173: 第 7 章 网络安全

7.5.1 IDS 的种类 两种常用的入侵检测系统是基于标记的 IDS

和启发式的 IDS 。基于标记 (Signature-based)的入侵检测系统实现简单的模式匹配,并报告与已知攻击类型的模式匹配情况。启发式(Heuristic) 的入侵检测系统 ( 又称基于异常的入侵检测系统 ) 建立了一个可接受行为模型,并对该模型的出错情况加以标记,在以后使用时,管理员可以将带标记的行为作为可接受的行为,以便启发式 IDS把以前未分类的行为作为可接受的行为进行处理。

Page 174: 第 7 章 网络安全

7.5.1 IDS 的种类 (续 )

入侵检测设备可以是基于网络 (network-based)的 IDS 是附加在网络上的一台单独的设备,监视经过该网络的通信量;也可以是基于主机(host-based)的 IDS运行在单个工作站、客户端或主机上,用于保护该主机。

如今的入侵检测系统采用实时 ( 或近似实时 )运行方式,监视活动并及时向管理员报警,以便采取保护措施。

Page 175: 第 7 章 网络安全

7.5.1 IDS 的种类 (续 )

基于标记的入侵检测 一些典型的攻击会出现如下情况,一系列的 TCP SYN 包被连续发往许多不同的端口,而且有时彼此很接近。这是端口扫描时会发生的情况。同样,如果收到数据长度为65 535字节的 ICMP 包,表明某些协议栈的实现出现了故障,这样的包就是一种需要观察的模式。

Page 176: 第 7 章 网络安全

7.5.1 IDS 的种类 (续 ) 基于标记的检测中存在的问题就是标记本身。攻击者会对一种基本的攻击方式加以修改,使之与这种攻击的已知标记不匹配。攻击者也可能插入一些 IDS会看到的、格式错误的包,故意引起模式不匹配,协议处理栈会因为其格式不对而丢弃这些包。这些变化都可以被 IDS 检测到,只是更多的标记要求 IDS做更多的附加工作,这会降低系统的性能。

当然,基于标记的 IDS会因为标记还没有安装在数据库而不能检测一种新的攻击。

目前基于标记的 IDS趋向于使用统计分析方法。理想的标记应该匹配每一种攻击实例,可以匹配攻击的微妙变化,而不会匹配不是攻击部分的通信量。

Page 177: 第 7 章 网络安全

7.5.1 IDS 的种类 (续 ) 启发式入侵检测 启发式入侵检测寻找的是异常的举动,而不是寻求匹配。这个领域的初期工作关注个人行为,试图发现有助于理解正常和异常行为的个人特征。

推理引擎有两种工作方式:一种是称为基于状态的入侵检测系统,它审查所有被修改的系统状态或配置。设法发现系统转向不安全模式的时间点。其他时候,则尝试将当前的活动与不可接受活动的模式进行比较,当两者相似时,则发出警告。另一种称为基于模式的入侵检测系统,它寻求建立一种行为的动态模型,能够随着时间的推移容纳个人行为的变化和演变。这种技术把实际活动与已知正常活动进行比较。

Page 178: 第 7 章 网络安全

7.5.1 IDS 的种类 (续 )

另一种入侵检测方法是,根据已知不良活动模型开始工作。这种形式的入侵检测称为误用入侵检测 (misuse intrusion detection) 。

所有启发式的入侵检测都将行为归纳为:好的 /良好的、可疑的和未知的。随着时间的推移, IDS会逐步学习某种行为是否可接受。根据学习的结果,特定的行为可以从一种类型转换成另一种类型。

启发式入侵检测的难点在于:当系统所能见到的信息量非常大时,如何将行为正确归类;当前行为与某一类型的匹配程度如何。

Page 179: 第 7 章 网络安全

7.5.1 IDS 的种类 (续 )

秘密模式 IDS 是一种网络设备,面对网络攻击,任

何一种网络设备都有其潜在的弱点。为解决这个问题,大多数 IDS 都运行在秘密模式 (stealth mode)下。所以, IDS 有两个网络接口:一个用于正在被监视的网络或网段,另一个用于产生报警和其他可能的管理需求。

Page 180: 第 7 章 网络安全

7.5.1 IDS 的种类 (续 )

7.37 与两个网络相连的秘密模式 IDS

Page 181: 第 7 章 网络安全

7.5.1 IDS 的种类 (续 ) 其他 IDS类型 (1) 一些安全工程师也在考虑使用其他设备

作为 IDS 。例如,要检测不可接受的修改代码的行为,通过程序来比较软件代码的活动版本和代码摘要的存储版本就能够实现。

(2) 系统弱点扫描器能够针对网络运行,检测已知的弱点并报告所发现的缺陷。

(3) 蜜罐是一种故意诱惑攻击者的人为环境。它可以记录入侵者的行为,蜜罐可以看做是一种 IDS 。

Page 182: 第 7 章 网络安全

7.5.2 入侵检测系统的目标 一个 IDS 中可能会使用下面所列的部分或

全部设计方法: (1) 在包头上进行过滤。 (2) 在包内容上进行过滤。 (3) 维护连接状态。 (4) 使用复杂的多包标记。 (5) 使用最少的标记产生最大的效果。 (6) 实时、在线过滤。 (7) 隐藏自己。 (8) 使用优化的滑动时间窗口来匹配标记。

Page 183: 第 7 章 网络安全

7.5.2 入侵检测系统的目标 (续 )

警报响应 不论哪种入侵检测系统都应在发现匹配时报警。报警的范围包含从普通到重大的所有事件。响应范围是无限的,可以是管理员 ( 和程序 ) 能想到的任何事情。一般情况下,响应主要分为三类:

(1) 监视器,收集数据,可能会在必要时增加收集数据的数量。

(2) 保护和采取行动减少暴露。 (3) 叫人。

Page 184: 第 7 章 网络安全

7.5.2 入侵检测系统的目标 (续 )

对具有一般 ( 最初的 )影响的攻击,采用监视器比较恰当。保护意味着增加访问控制措施,甚至使得一个资源不可用。叫人类型的入侵检测系统允许个人进行辨别,做出判断。

Page 185: 第 7 章 网络安全

7.5.2 入侵检测系统的目标 (续 )

错误结果 入侵检测系统不是完美无缺的,其最大的

问题是出现错误。一种是对非真正攻击报警 (称为误报,在统计学上称为Ⅰ类错误 ) ,另一种是对真正的攻击不报警 (漏报或Ⅱ类错误 ) 。误报和漏报的程度代表了系统的敏感程度,需要在两者之间平衡。

Page 186: 第 7 章 网络安全

7.5.3 IDS 的能力和局限 (1) IDS 检测到的严重问题的数量不断增加。这样,随着时间的推移, IDS逐步得到了提高。与此同时,IDS 的价格却越来越低,并越容易管理。

(2) 避开 IDS 是高明的攻击者优先考虑的事情。了解怎样躲避特定模式的 IDS 是攻击群体内传递的重要情报。当然,一旦生产商认识到了其产品中存在的缺陷,就会努力修复这些缺陷。

(3) IDS 的一个局限性是其敏感性难以测量和调节。 (4) IDS 的另一个局限性不在于 IDS 本身,而在于

IDS 的使用。管理员在 IDS 成功应用中发挥重要作用。

# 防火墙必须允许一些通信量进入一个受保护区域。监视通信量在受保护区域内的真实活动是 IDS 的工作。总的来说, IDS 是对网络安全极好的补充。

Page 187: 第 7 章 网络安全

7.6 安全电子邮件7.6.1 电子邮件安全

电子邮件是非常公开的,在从发送者的工作站到接收者的显示屏之间的每一点上都是暴露的。

电子邮件面临的威胁 电子邮件面临着的威胁包括:消息截取 ( 机密性、阻止提交 ) 、消息截取并随后重放、修改消息内容、修改消息源、外来者伪造消息内容、外来者伪造消息源、接收者伪造消息内容、接收者伪造消息源、拒绝传输消息。

# 通常采用加密的方法来解决机密性和内容伪造。

Page 188: 第 7 章 网络安全

7.6.2 需求和解决方案 如果对实现安全的电子邮件列出一份需求清单,我们希望该清单中包括下列保护措施:

(1) 消息的机密性 (消息在到达接收方的途中不暴露 ) 。

(2) 消息的完整性 ( 接收方所见即发送方所发 ) 。

(3) 发送方的真实性 ( 接收方确信发送方是其本人 ) 。

(4) 不可否认 ( 发送方不能抵赖他发送过的消息 ) 。

Page 189: 第 7 章 网络安全

7.6.3 设计 加密电子邮件标准是由互联网联盟通过其体

系结构委员会 (IAB) 、互联网研究任务组(Internet Research Task Fore, IRTF) 和互联网工程任务组 (Internet Engineering Task Force, IETF)负责开发的。加密电子邮件的一个设计目标是:允许将已增强安全性的消息被当做普通消息,通过现有的因特网电子邮件系统进行传送。因此,所有保护措施都在现有主体上实现。

Page 190: 第 7 章 网络安全

7.6.3 设计 (续 )

机密性

图 7.38 加密 E-mail 处理过程图

Page 191: 第 7 章 网络安全

7.6.3 设计 (续 ) 网络电子邮件处理软件使用不可打印字符作为消息流中的控制信号。为此加密电子邮件把密文消息转化为可打印字符。

图 7.39 已加密的安全的 E-mail消息

Page 192: 第 7 章 网络安全

7.6.3 设计 (续 )

加密电子邮件标准还为实现对称加密进行了定义。协议能支持多种加密算法,常用的一些流行算法包括 DES ,用于信息机密性的 AES和 RSA ,以及用于密钥交换的 Diffie-Hellman 协议等。

其他安全特征 加密电子邮件消息总是要携带一个数字签名,以便能确认发送者的真实性。由于数字签名中包含一个哈希函数 [称为消息完整性检查 (Message Integrity Check, MIC)] ,所以完整性也能得到保证。

加密电子邮件的处理可与普通电子邮件结合起来,所以一个人可以发送加密或非加密的消息。

Page 193: 第 7 章 网络安全

7.6.3 设计 (续 )

图 7.40 已加密 E-mail 在消息处理中的过程

Page 194: 第 7 章 网络安全

7.6.3 设计 (续 )

加密安全电子邮件 使用证书的难处在于建立等级。加密电子

邮件的窘境在于从单一结构的组织移到了互有关联的、等级结构的组织上。电子邮件系统的脆弱点可能在一些照顾不到的端点。攻击者可能修改处理加密的代码,获取加密密钥等。

Page 195: 第 7 章 网络安全

7.6.4 安全电子邮件系统示例 PGP

PGP(Pretty Good Privacy) 是在 1991年由 Phil Zimmerman 发明的。 PGP 采用“信任环”或用户“密钥环”的技术解决了密钥分配问题。 PGP 并不建立统一的信任策略,而是将决定权交给每一个用户,由用户自行决定所收到的密钥的可信度。 PGP 可以实现机密性、完整性、真实性和不可否认性的组合。

Page 196: 第 7 章 网络安全

7.6.4 安全电子邮件系统示例 (续 ) S/MIME 通用 MIME 规范定义了电子邮件附件的格

式和处理过程。 S/MIME( 安全多用途网际邮件扩充协议 ) 被视为安全电子邮件附件制定的因特网标准。 S/MIME 分等级地使用经过确认的证书,这些证书通常以 X.509 的格式出现。因此,使用 S/MIME ,发送者和接收者只要有他们都信任的共同的证书权威就不需要提前交换密钥。 S/MIME采用了大量加密算法,如 DES、 AES和 RC2。 S/MIME还能处理所有类型的附件。

Page 197: 第 7 章 网络安全

7.7 本章总结 在网络中,任何计算机都可能成为随机攻

击的牺牲品。最强壮的网络控制措施是将鉴别、访问控制和加密结合起来。在某种意义上,网络安全是我们知道的所有安全的结合物和最高形式。一个网络的安全取决于我们使用的所有加密工具、良好的程序开发过程、操作系统控制、信任和评价与保证方法,以及推断和综合控制措施。三种控制措施是专门针对网络的:防火墙、入侵检测系统和安全电子邮件。

Page 198: 第 7 章 网络安全

谢谢!