翻译:中国科学技术大学信息安全专业老师 第13章网络安全 部署网络是为了使计算机对外部世界来说更容易使用。使计算机对外部更容易使用是好 坏掺半之事。可能的相互作用越多,不受欢迎的相互作用也越多。因此,你可能希望控制自 己系统上的用户怎样能够访问网络,网络上的用户怎样能访问你的系统,以及当你的数据在 网络上传输时,怎样保护传输的数据等。因此,网络安全不仅是关于密码,而且对访问控制 提出了新的要求。 目标 ·获得针对网络的安全挑战的概观,理解网络安全怎样影响和依赖计算机安全。 使用基本的 Internet安全协议 IPSEC和 SSL/TLS作为范例,介绍网络安全协议的设 ·了解网络边界可以怎样用作安全周界 理解各种防火墙技术的原理,它们能提供的服务,以及它们固有的限制 13.1简介 我们在前面对安全协议的讨论保持在相当抽象的层次上。当数据(消息报文)在实体间 传输时,我们完全没有关心数据交换的精确的性质。安全协议的一些特征能够在这样的模型 中得到检验,但是一旦你开始实现安全协议的时候,你必须更密切注意你的计算机网络的技 术细节 计算机网络是分布式系统中结点之间传输数据的通信基础设施。一个结点上某个应用程 序要发送的数据必须事先准备好,用一个序列的电信号或光信号来传输:接收端进行重组, 并且传送给某个应用程序。网络协议必须找到一条从发送者到接收者的路径,它们必须处理 数据的丢失和损坏,而且还要处理失去的连接,例如施工人员刺穿了电话线缆。一个好的工 程实践是一次一个地解决这些令人关注的问题并使用一个应用层协议在顶端、物理地传输信 息比特流的协议位于底端的分层体系结构。网络安全的主要任务之一就是为特殊的安全服务 寻找一个最合适的网络层次 网络管理协议提供了所需要的支持,使得由其他协议生成的数据可以有效地传送到指定 的接收者。例如,管理协议可以检查在发送者和接收者之间的中间结点的可用性,找到最佳 的连接,或者解决逻辑网络地址到物理地址的转换。其他协议用来远程地配置网络结点,在 这些结点上运行的软件正在变得越来越复杂。因此,网络安全越来越依赖于网络管理协议的 安全和网络中结点的安全。把网络结点安排在保护的场地内的做法已不再是对安全的保证。 13.1.1分层模型 开放系统互联(OSⅠ)体系结构的七层模型,如图131所示,是分层网络协议的公共框 架结构。在这本书里,我们不关心每一层的精确意义。相反,我们只对它的分层模型感兴趣, 因为它们对讨论网络安全提供了相当有用的抽象。分层模型也让我们回到了在142节中的 熟悉的主题 在顶部的安全服务可以用来满足某种特定应用的要求。然而,不同的应用每个都需要 第1页共12页 创建时间:2003-11
翻译:中国科学技术大学信息安全专业老师 第 1 页 共 12 页 创建时间:2003-11 第 13 章 网络安全 部署网络是为了使计算机对外部世界来说更容易使用。使计算机对外部更容易使用是好 坏掺半之事。可能的相互作用越多,不受欢迎的相互作用也越多。因此,你可能希望控制自 己系统上的用户怎样能够访问网络,网络上的用户怎样能访问你的系统,以及当你的数据在 网络上传输时,怎样保护传输的数据等。因此,网络安全不仅是关于密码,而且对访问控制 提出了新的要求。 目标 ·获得针对网络的安全挑战的概观,理解网络安全怎样影响和依赖计算机安全。 ·使用基本的 Internet 安全协议 IPSEC 和 SSL/TLS 作为范例,介绍网络安全协议的设 计。 ·了解网络边界可以怎样用作安全周界。 ·理解各种防火墙技术的原理,它们能提供的服务,以及它们固有的限制。 13.1 简介 我们在前面对安全协议的讨论保持在相当抽象的层次上。当数据(消息报文)在实体间 传输时,我们完全没有关心数据交换的精确的性质。安全协议的一些特征能够在这样的模型 中得到检验,但是一旦你开始实现安全协议的时候,你必须更密切注意你的计算机网络的技 术细节。 计算机网络是分布式系统中结点之间传输数据的通信基础设施。一个结点上某个应用程 序要发送的数据必须事先准备好,用一个序列的电信号或光信号来传输;接收端进行重组, 并且传送给某个应用程序。网络协议必须找到一条从发送者到接收者的路径,它们必须处理 数据的丢失和损坏,而且还要处理失去的连接,例如施工人员刺穿了电话线缆。一个好的工 程实践是一次一个地解决这些令人关注的问题并使用一个应用层协议在顶端、物理地传输信 息比特流的协议位于底端的分层体系结构。网络安全的主要任务之一就是为特殊的安全服务 寻找一个最合适的网络层次。 网络管理协议提供了所需要的支持,使得由其他协议生成的数据可以有效地传送到指定 的接收者。例如,管理协议可以检查在发送者和接收者之间的中间结点的可用性,找到最佳 的连接,或者解决逻辑网络地址到物理地址的转换。其他协议用来远程地配置网络结点,在 这些结点上运行的软件正在变得越来越复杂。因此,网络安全越来越依赖于网络管理协议的 安全和网络中结点的安全。把网络结点安排在保护的场地内的做法已不再是对安全的保证。 13.1.1 分层模型 开放系统互联(OSI)体系结构的七层模型,如图 13.1 所示,是分层网络协议的公共框 架结构。在这本书里,我们不关心每一层的精确意义。相反,我们只对它的分层模型感兴趣, 因为它们对讨论网络安全提供了相当有用的抽象。分层模型也让我们回到了在 1.4.2 节中的 熟悉的主题。 ·在顶部的安全服务可以用来满足某种特定应用的要求。然而,不同的应用每个都需要
翻译:中国科学技术大学信息安全专业老师 它们自身的安全协议 在底部的安全服务可以保护来自所有高层的通信( traffic),减轻了应用层协议设计者 对安全的关心。然而,一些应用可能发现这种保护不能很好地满足它们的要求 在一个分层模型中,N层的对等实体使用N层协议。N+1层的协议看到的是在N层上 的一个虚拟连接,并且不必考虑任何底层的情况,如图132所示。 图13.1 ISO/OSI七层模型 图132在N层的虚连接 自然,在实际的现实中,N层协议是建立在底层协议之上的。这里有一个用于传输数据 到底层的通用模式。N层协议的消息( message)称为N层协议数据单元((N)-PDU)。N 层协议通过调用N-1层的设施( facilities)来传输一个N层协议数据单元。在这个阶段,N 层协议数据单元可能被分段或者经过其他的处理,结果经过头标和尾部包装,成为N-1层 协议数据单元。这些N-1层协议数据单元的接收者使用头标和尾部中的信息来重组N层协 议数据单元。图13.3给出了这个过程的一个简化视图。 现在我们可以简要地描绘安全服务能在这种分层模型中实现,使得对其他服务的影响保 持最小。如果N层的协议要调用N-1层的安全服务,你可以重写一些已经存在的功能或者 添加一些新的安全功能。在第一种情况下,N层协议根本不必改变。在第二种情况下,它必 须改变调用,以便引用安全功能。在这两种情况下,N-1层协议数据单元的头标是存放与安 全有关的数据的合适位置。 图13.3处理一个(N)-PDU 13.12嗅探( Sniffing)和欺騙( Spoofing) 网络安全的一部分和对消息传输特有的威胁有关。有些威胁,如数据的非授权泄露和修 改,在前面的章节中已经详细讨论过。在计算机网络中搭线窃听并不困难,发送者和接收者 之间的一个直接链路只是一种抽象而已,如图134所示。实际上,你应该料想到有任意多 的中间结点在发送者和接收者之间转发了消息,如图13.5所示。根据它们的功能划分,这 些中间结点称为网桥、网关、路由器等。每一个这样的设备读取输入的消息,然后决定下 步动作,例如,往哪里转发输入的消息。这些设备大多都包括软件组件。这样为运行功能强 大的嗅探( sniffer)软件创造了机会, sniffer读入通信流,把敏感信息转发给攻击者 图13.4计算机网络通信的抽象视图 敏感信息包括管理数据,比如网络地址或者在一个结点上准备运行的协议指示。即使你 通过加密来慎重保护你的应用数据,一个潜在的攻击者可以知道关于你的网络的内部结构, 而且使用这些信息来发起攻击。类似的,从收集关于负荷和结点的可用性的网络管理协议中 拣拾来的信息也可认为是敏感信息。同时,为了有效地使用网络,这些协议是需要的。如果 保护太过严实,又可能很容易地降低网络提供的服务质量 网络安全的其他威胁来自于伪装的源地址欺骗,来自于一些实体后来否认卷入它们曾经 参与过的事务,或来自通信流量分析,其中攻击者仅仅从两个实体正在交换消息的事实获取 信息 第2页共12页 创建时间:2003-11
翻译:中国科学技术大学信息安全专业老师 第 2 页 共 12 页 创建时间:2003-11 它们自身的安全协议。 ·在底部的安全服务可以保护来自所有高层的通信(traffic),减轻了应用层协议设计者 对安全的关心。然而,一些应用可能发现这种保护不能很好地满足它们的要求。 在一个分层模型中,N 层的对等实体使用 N 层协议。N+1 层的协议看到的是在 N 层上 的一个虚拟连接,并且不必考虑任何底层的情况,如图 13.2 所示。 图 13.1 ISO/OSI 七层模型 图 13.2 在 N 层的虚连接 自然,在实际的现实中,N 层协议是建立在底层协议之上的。这里有一个用于传输数据 到底层的通用模式。N 层协议的消息(message)称为 N 层协议数据单元((N)-PDU)。N 层协议通过调用 N-1 层的设施(facilities)来传输一个 N 层协议数据单元。在这个阶段,N 层协议数据单元可能被分段或者经过其他的处理,结果经过头标和尾部包装,成为 N-1 层 协议数据单元。这些 N-1 层协议数据单元的接收者使用头标和尾部中的信息来重组 N 层协 议数据单元。图 13.3 给出了这个过程的一个简化视图。 现在我们可以简要地描绘安全服务能在这种分层模型中实现,使得对其他服务的影响保 持最小。如果 N 层的协议要调用 N-1 层的安全服务,你可以重写一些已经存在的功能或者 添加一些新的安全功能。在第一种情况下,N 层协议根本不必改变。在第二种情况下,它必 须改变调用,以便引用安全功能。在这两种情况下,N-1 层协议数据单元的头标是存放与安 全有关的数据的合适位置。 图 13.3 处理一个(N)-PDU 13.1.2 嗅探(Sniffing)和欺骗(Spoofing) 网络安全的一部分和对消息传输特有的威胁有关。有些威胁,如数据的非授权泄露和修 改,在前面的章节中已经详细讨论过。在计算机网络中搭线窃听并不困难,发送者和接收者 之间的一个直接链路只是一种抽象而已,如图 13.4 所示。实际上,你应该料想到有任意多 的中间结点在发送者和接收者之间转发了消息,如图 13.5 所示。根据它们的功能划分,这 些中间结点称为网桥、网关、路由器等。每一个这样的设备读取输入的消息,然后决定下一 步动作,例如,往哪里转发输入的消息。这些设备大多都包括软件组件。这样为运行功能强 大的嗅探(sniffer)软件创造了机会,sniffer 读入通信流,把敏感信息转发给攻击者。 图 13.4 计算机网络通信的抽象视图 敏感信息包括管理数据,比如网络地址或者在一个结点上准备运行的协议指示。即使你 通过加密来慎重保护你的应用数据,一个潜在的攻击者可以知道关于你的网络的内部结构, 而且使用这些信息来发起攻击。类似的,从收集关于负荷和结点的可用性的网络管理协议中 拣拾来的信息也可认为是敏感信息。同时,为了有效地使用网络,这些协议是需要的。如果 保护太过严实,又可能很容易地降低网络提供的服务质量。 网络安全的其他威胁来自于伪装的源地址欺骗,来自于一些实体后来否认卷入它们曾经 参与过的事务,或来自通信流量分析,其中攻击者仅仅从两个实体正在交换消息的事实获取 信息
翻译:中国科学技术大学信息安全专业老师 13.1.3 ISO/OSI安全体系结构 ISO/OSⅠ安全体系结构5l定义了抗击上面列出的威胁的安全服务。这个安全体系结构频 繁地被引证引用,也被批评引用。反对它的争论以及为什么实际上没有任何实现的原因属于 关于网络安全方面的书中的内容。然而,你完全可能在某些形式或者其他形式上遇到这种体 系结构,因此这里有一个服务列表: 数据机密性( confidentiality):保护数据以免非授权泄露,包括通过通信流分析的信 息泄露 数据完整性( Integrity):保护数据以免非授权修改或者破坏。 数据源认证( authentication):证实数据来源。 对等实体认证( peer-entity authentication):验证对等实体(在同一协议层的实体)的 身份:对等实体认证常常发生在一个连接建立的时候,包括关于密钥的协商,然后密钥在会 话期间用来进行数据源认证。 ·不可否认(Non- repudiation):创建数据被发送或者接收的证据,因此发送者(或者 接收者)后来不能否认这个事实。ISO7498-2使用了术语初始源证据( proof of origin)和 递送证据( proof of delivery)。在其他文献中,你也可能发现提交证据( proof of submission) 和接收证据( proof of receipt)。这些术语的意义有时会有交叠。 为提供这些服务使用的机制大多来自密码术,即加密、数字签名、完整性检査功能等。 密码保护有一个好的特性。当N层安全协议在其下层不安全协议的上面运行时,N层的安 全协议不会受到危害。对这种规则有一个例外。当你的目标是匿名,而且你采取预防措施来 隐藏在一层的参与者的身份时,则由较低层的协议添加的一些数据仍然可能泄露关于消息的 来源和目的地的信息 图13.5在计算机网络中的消息传输 132TcPP安全 为了用实例说明网络安全在实际中如何工作,我们现在研究在 Internet协议套范围内的 安全,如图136所示。在 Internet模型中,ISO/OSI模型协议已经瓦解了,只留下了四层。 在应用层的协议有 Telnet,FTP,HITP,SMIP( Simple Mail Transfer Protocol,简单 邮件传送协议),或者SET( Secure Electronic Transaction,安全电子事务处理) 在传输层的协议是TCP( Transmission Control Protocol)和UDP( User Datagram Protocol)。TCP和UDP根据端口号标识PDU(协议数据单元)所属的应用协议。公共端口 号有21(FTP),23( Telnet),25(SMIP)和80(HTIP)等。 在网络层,有IP协议( Internet Protocol,网际互连协议)。 接口层的协议与具体的网络技术有关。 TCP和IP,连同UDP和管理协议ICMP一起,形成 Internet的核心。最初,这些协议 是为通过不可靠网络连接的友好和协同工作的用户设计的,因此根本就没有考虑安全问题。 现在,TCPP被广泛地使用,便出现了对安全服务的强烈要求。 Internet工程任务组(IETF) 已经在网际互连层和传输层对安全协议提出了建议。这些协议将是后面两节讨论的主题。我 们必须利用这个事实,这些提议中的许多至今还是草案,还没有深深的进入技术细节。在这 一章结束的参考文献中指出了现行技术文档的出处。 图136 Internet分层结构 第3页共12页 创建时间:2003-11
翻译:中国科学技术大学信息安全专业老师 第 3 页 共 12 页 创建时间:2003-11 13.1.3 ISO/OSI 安全体系结构 ISO/OSI 安全体系结构[51]定义了抗击上面列出的威胁的安全服务。这个安全体系结构频 繁地被引证引用,也被批评引用。反对它的争论以及为什么实际上没有任何实现的原因属于 关于网络安全方面的书中的内容。然而,你完全可能在某些形式或者其他形式上遇到这种体 系结构,因此这里有一个服务列表: ·数据机密性(confidentiality):保护数据以免非授权泄露,包括通过通信流分析的信 息泄露。 ·数据完整性(integrity):保护数据以免非授权修改或者破坏。 ·数据源认证(authentication):证实数据来源。 ·对等实体认证(peer-entity authentication):验证对等实体(在同一协议层的实体)的 身份;对等实体认证常常发生在一个连接建立的时候,包括关于密钥的协商,然后密钥在会 话期间用来进行数据源认证。 ·不可否认(Non-repudiation):创建数据被发送或者接收的证据,因此发送者(或者 接收者)后来不能否认这个事实。ISO 7498-2 使用了术语初始源证据(proof of origin)和 递送证据(proof of delivery)。在其他文献中,你也可能发现提交证据(proof of submission) 和接收证据(proof of receipt)。这些术语的意义有时会有交叠。 为提供这些服务使用的机制大多来自密码术,即加密、数字签名、完整性检查功能等。 密码保护有一个好的特性。当 N 层安全协议在其下层不安全协议的上面运行时,N 层的安 全协议不会受到危害。对这种规则有一个例外。当你的目标是匿名,而且你采取预防措施来 隐藏在一层的参与者的身份时,则由较低层的协议添加的一些数据仍然可能泄露关于消息的 来源和目的地的信息。 图 13.5 在计算机网络中的消息传输 13.2 TCP/IP 安全 为了用实例说明网络安全在实际中如何工作,我们现在研究在 Internet 协议套范围内的 安全,如图 13.6 所示。在 Internet 模型中,ISO/OSI 模型协议已经瓦解了,只留下了四层。 ·在应用层的协议有 Telnet,FTP,HTTP,SMTP(Simple Mail Transfer Protocol,简单 邮件传送协议),或者 SET(Secure Electronic Transaction,安全电子事务处理)。 ·在传输层的协议是 TCP(Transmission Control Protocol)和 UDP(User Datagram Protocol)。TCP 和 UDP 根据端口号标识 PDU(协议数据单元)所属的应用协议。公共端口 号有 21(FTP),23(Telnet),25(SMTP)和 80(HTTP)等。 ·在网络层,有 IP 协议(Internet Protocol,网际互连协议)。 ·接口层的协议与具体的网络技术有关。 TCP 和 IP,连同 UDP 和管理协议 ICMP 一起,形成 Internet 的核心。最初,这些协议 是为通过不可靠网络连接的友好和协同工作的用户设计的,因此根本就没有考虑安全问题。 现在,TCP/IP 被广泛地使用,便出现了对安全服务的强烈要求。Internet 工程任务组(IETF) 已经在网际互连层和传输层对安全协议提出了建议。这些协议将是后面两节讨论的主题。我 们必须利用这个事实,这些提议中的许多至今还是草案,还没有深深的进入技术细节。在这 一章结束的参考文献中指出了现行技术文档的出处。 图 13.6 Internet 分层结构
翻译:中国科学技术大学信息安全专业老师 13.2.1 IPSEC 网际互连协议(IP)是无连接无状态的协议,它负责传输IP数据报,即网际互连层的 PDU(协议数据单元)。因为IP协议是无连接无状态的,所以每一个数据报都作为独立的实 体进行处理,与任何其他的数据报没有联系,而且不保证数据报的传递。P的第四版本IPv4 在1981年作为RFC791发布。从那时起, Internet开始持续增长,因此,IP必须适应和满 足新的要求。IP的第六版本IP√6在草案RFC1883中说明,现在已相当成熟,在讨论I的 安全机制时,我们将参考这个版本。 IP数据报的头标包含了很多的域,其中包括源IP地址和校验和,通过校验和接收者可 以检査数据报在传输过程中是否被损坏。然而,这个校验和只是循环冗余检验(CRC),不 能提供对数据报的有意修改的防御。更糟的是,接收者不能真正知道数据报是从哪儿来的。 在IP头标中的源地址并不一定是发送数据报的IP地址。这就像在8.7.1节中提到的,源路 由攻击利用了这个事实。总之,IP协议没有对端到端数据的可靠性、数据报的排序、或者 安全的特定机制。这样的安全机制在RFC1825中进行介绍,即IP协议的安全体系结构 ( IPSEC)。 IPSEC包括两个主要的安全机制: ·IP认证头标(AH),包含在RFC1826中 IP封装安全有效载荷(ESP),包含在RFC1827中 IP安全体系结构并不包括阻止流量分析的机制。 IP认证头标保护IP数据报的完整性和认证,但是不保护机密性。顾名思义,认证数据 被放在数据报内的头标中。图13.7显示了头标的语法和它在IPV6数据报中的位置。(目的 选项也可以出现在认证头标的前面。)在认证头标中的每一行表示一个32位(bit)的字 图137认证头标的位置和格式 下一个头标( Next Header):一个8位域,标识在认证头标后面的有效载荷的类型, ·有效载荷长度( Payload length):一个8位域,以32位字为单位,表示认证头标的长 度减2。例如,对于一个%6位的认证值,认证头标的实际长度是6,但是有效载荷长度是4 值2表示采用了IPV6中的空(nu)认证算法 保留:一个16位域,保留给将来使用。 ·序列号域( Sequence number field):包含一个计数值,这个值必须被发送者计入,而 由接收者作判断处理。 安全参数索引(SPI):一个32位域,它标识对数据报的安全关联。值0表示不存在 任何安全关联。 认证数据:以32位字为单位,长度可变,它包含了认证数据,例如MAC码(消息 认证码)或者数字签名。 为了认证一个数据报,发送者首先必须确定一个安全关联( association),明确说明像完 整性检验算法、密码密钥和认证数据的长度等参数。通常,用户身份、目的地址和SP决定 了使用哪种安全关联。 通常,一种MAC算法用于认证。采用MD5的HMAC和采用SHA-1的HMAC是缺省 选项,所有的 IPSEC实现都必须对其提供支持。然而,其他的完整性检验函数也可以使用 认证数据的计算认为在数据报中的域都能够出现在接收者一方。在传输期间,有的域会发生 改变,像在IP√6头标中的中继限制( hop limit)。而有的域还是不知道的,像在认证头标中 的认证数据。在计算MAC时,这些域用零值来填充。MAC然后被放在认证头标的认证数 据域中。 第4页共12页 创建时间:2003-11
翻译:中国科学技术大学信息安全专业老师 第 4 页 共 12 页 创建时间:2003-11 13.2.1 IPSEC 网际互连协议(IP)是无连接无状态的协议,它负责传输 IP 数据报,即网际互连层的 PDU(协议数据单元)。因为 IP 协议是无连接无状态的,所以每一个数据报都作为独立的实 体进行处理,与任何其他的数据报没有联系,而且不保证数据报的传递。IP 的第四版本 IPv4 在 1981 年作为 RFC 791 发布。从那时起,Internet 开始持续增长,因此,IP 必须适应和满 足新的要求。IP 的第六版本 IPv6 在草案 RFC 1883 中说明,现在已相当成熟,在讨论 IP 的 安全机制时,我们将参考这个版本。 IP 数据报的头标包含了很多的域,其中包括源 IP 地址和校验和,通过校验和接收者可 以检查数据报在传输过程中是否被损坏。然而,这个校验和只是循环冗余检验(CRC),不 能提供对数据报的有意修改的防御。更糟的是,接收者不能真正知道数据报是从哪儿来的。 在 IP 头标中的源地址并不一定是发送数据报的 IP 地址。这就像在 8.7.1 节中提到的,源路 由攻击利用了这个事实。总之,IP 协议没有对端到端数据的可靠性、数据报的排序、或者 安全的特定机制。这样的安全机制在 RFC 1825 中进行介绍,即 IP 协议的安全体系结构 (IPSEC)。IPSEC 包括两个主要的安全机制: ·IP 认证头标(AH),包含在 RFC 1826 中。 ·IP 封装安全有效载荷(ESP),包含在 RFC 1827 中。 IP 安全体系结构并不包括阻止流量分析的机制。 IP 认证头标保护 IP 数据报的完整性和认证,但是不保护机密性。顾名思义,认证数据 被放在数据报内的头标中。图 13.7 显示了头标的语法和它在 IPv6 数据报中的位置。(目的 选项也可以出现在认证头标的前面。)在认证头标中的每一行表示一个 32 位(bit)的字。 图 13.7 认证头标的位置和格式 ·下一个头标(Next Header):一个 8 位域,标识在认证头标后面的有效载荷的类型。 ·有效载荷长度(Payload length):一个 8 位域,以 32 位字为单位,表示认证头标的长 度减 2。例如,对于一个 96 位的认证值,认证头标的实际长度是 6,但是有效载荷长度是 4。 值 2 表示采用了 IPv6 中的空(null)认证算法。 ·保留:一个 16 位域,保留给将来使用。 ·序列号域(Sequence number field):包含一个计数值,这个值必须被发送者计入,而 由接收者作判断处理。 ·安全参数索引(SPI):一个 32 位域,它标识对数据报的安全关联。值 0 表示不存在 任何安全关联。 ·认证数据:以 32 位字为单位,长度可变,它包含了认证数据,例如 MAC 码(消息 认证码)或者数字签名。 为了认证一个数据报,发送者首先必须确定一个安全关联(association),明确说明像完 整性检验算法、密码密钥和认证数据的长度等参数。通常,用户身份、目的地址和 SPI 决定 了使用哪种安全关联。 通常,一种 MAC 算法用于认证。采用 MD5 的 HMAC 和采用 SHA-1 的 HMAC 是缺省 选项,所有的 IPSEC 实现都必须对其提供支持。然而,其他的完整性检验函数也可以使用。 认证数据的计算认为在数据报中的域都能够出现在接收者一方。在传输期间,有的域会发生 改变,像在 IPv6 头标中的中继限制(hop limit)。而有的域还是不知道的,像在认证头标中 的认证数据。在计算 MAC 时,这些域用零值来填充。MAC 然后被放在认证头标的认证数 据域中
翻译:中国科学技术大学信息安全专业老师 数据报的接收者借助SPⅠ和目的地址来确定相关的安全关联和验证认证数据。如果认证 失败,故障必须被记录下来且数据报必须丢弃。 在这个算法中,IP头标中的某些域没有包括在保护机制中。对于进一步的保护,隧道 模式增加了一个外部的( outer)P头,外部P头标包含了一些其他的PP地址,典型的是安 全网关的地址。内部IP头标包含了初始的源地址和目的地址,并且完全被认证头标保护起 来,如图13.8所示 IP封装安全有效载荷保护了数据的机密性。依靠所使用的加密算法,它们也保护了完 整性和认证。ESP头标通常放在加密数据的前面,如图139所示。ESP头标包含了SP。不 透明转换数据是一个保护域,它包含了对于加密算法处理有关的更多的参数 在加密一个数据报以前,发送者又一次确定一个安全关联,以决定使用哪种加密算法和 使用的密钥。(这里提到的安全关联不同于在认证头标中使用的安全关联。)发送者然后在两 种ESP模式中选择一种模式 在传输模式( transport mode)中,一个上层协议帧,例如,来自TCP或者UDP的帧,被 封装在ESP中,而IP头标并不被加密。传输模式提供在两个结点间交换的数据报的端到 端的保护 ·在隧道模式( tunnel mode)中,一个完全的IP数据报被封装在ESP中。这个ESP在另外 个P数据报中传输,该数据报的头标是以明文形式出现的。IP隧道因此可以描述为在 IP中的IP。隧道模式可以用在网关机器(防火墙)之间来创建一个虚拟专用网(VPN), VPN在13.3节中描述 数据报的接收者确定相关的安全关联,对加过密的有效载荷解密。如果解密失败,故障 必须被记录下来,并且必须丢弃数据报 到现在为止,我们已经适当地解释了在 IPSEC中的密钥管理问题。安全关联放在我们 需要提到它的地方。确实, IPSEC规定了独立于密钥管理协议的认证和加密服务,密钥管理 协议用来建立安全关联和会话密钥。这样, IPSEC安全服务没有与任何特殊的密钥管理协议 捆绑在一起。如果发现使用的密钥管理协议有缺陷,那么该协议可以被替换,不会更进一步 地影响到 IPSEC的实现。 图13.8隧道模式认证头标 小结 IPSEC为使用P的每一个人提供了安全,它没有改变IP的接口,如图13.10所示。为 了实现安全,上层协议不需要改变,甚至不需要知道在IP层保护它们的通信。然而,没有 太多的范围来调整应用层要求的保护级别。我们需要关心的是IP作为通信协议的性能,不 能在检查应用特定的数据方面花费太多的时间来选择一种安全关联。 图139ESP头的位置和格式 图13.10IP安全 由于发送者和接收者执行密码操作, IPSEC增加了协议处理开销和通信延迟时间 IPSEC可以为所有的上层协议提供安全,但是它也为此增加了系统开销。 IPSEC没有规定特殊的密钥管理协议。这样允许不同的结点选择它们最喜爱的方案,但 是在不同的结点使用 IPSEC来保护在它们之间的通信之前,它们必须就使用某种密钥管理 方案达成一致。 第5页共12页 创建时间:2003-11
翻译:中国科学技术大学信息安全专业老师 第 5 页 共 12 页 创建时间:2003-11 数据报的接收者借助 SPI 和目的地址来确定相关的安全关联和验证认证数据。如果认证 失败,故障必须被记录下来且数据报必须丢弃。 在这个算法中,IP 头标中的某些域没有包括在保护机制中。对于进一步的保护,隧道 模式增加了一个外部的(outer)IP 头,外部 IP 头标包含了一些其他的 IP 地址,典型的是安 全网关的地址。内部 IP 头标包含了初始的源地址和目的地址,并且完全被认证头标保护起 来,如图 13.8 所示。 IP 封装安全有效载荷保护了数据的机密性。依靠所使用的加密算法,它们也保护了完 整性和认证。ESP 头标通常放在加密数据的前面,如图 13.9 所示。ESP 头标包含了 SPI。不 透明转换数据是一个保护域,它包含了对于加密算法处理有关的更多的参数。 在加密一个数据报以前,发送者又一次确定一个安全关联,以决定使用哪种加密算法和 使用的密钥。(这里提到的安全关联不同于在认证头标中使用的安全关联。)发送者然后在两 种 ESP 模式中选择一种模式。 ·在传输模式(transport mode)中,一个上层协议帧,例如,来自 TCP 或者 UDP 的帧,被 封装在 ESP 中,而 IP 头标并不被加密。传输模式提供在两个结点间交换的数据报的端到 端的保护。 ·在隧道模式(tunnel mode)中,一个完全的 IP 数据报被封装在 ESP 中。这个 ESP 在另外 一个 IP 数据报中传输,该数据报的头标是以明文形式出现的。IP 隧道因此可以描述为在 IP 中的 IP。隧道模式可以用在网关机器(防火墙)之间来创建一个虚拟专用网(VPN), VPN 在 13.3 节中描述。 数据报的接收者确定相关的安全关联,对加过密的有效载荷解密。如果解密失败,故障 必须被记录下来,并且必须丢弃数据报。 到现在为止,我们已经适当地解释了在 IPSEC 中的密钥管理问题。安全关联放在我们 需要提到它的地方。确实,IPSEC 规定了独立于密钥管理协议的认证和加密服务,密钥管理 协议用来建立安全关联和会话密钥。这样,IPSEC 安全服务没有与任何特殊的密钥管理协议 捆绑在一起。如果发现使用的密钥管理协议有缺陷,那么该协议可以被替换,不会更进一步 地影响到 IPSEC 的实现。 图 13.8 隧道模式认证头标 小结 IPSEC 为使用 IP 的每一个人提供了安全,它没有改变 IP 的接口,如图 13.10 所示。为 了实现安全,上层协议不需要改变,甚至不需要知道在 IP 层保护它们的通信。然而,没有 太多的范围来调整应用层要求的保护级别。我们需要关心的是 IP 作为通信协议的性能,不 能在检查应用特定的数据方面花费太多的时间来选择一种安全关联。 图 13.9 ESP 头的位置和格式 图 13.10 IP 安全 由于发送者和接收者执行密码操作,IPSEC 增加了协议处理开销和通信延迟时间。 IPSEC 可以为所有的上层协议提供安全,但是它也为此增加了系统开销。 IPSEC 没有规定特殊的密钥管理协议。这样允许不同的结点选择它们最喜爱的方案,但 是在不同的结点使用 IPSEC 来保护在它们之间的通信之前,它们必须就使用某种密钥管理 方案达成一致
翻译:中国科学技术大学信息安全专业老师 13.2.2 SSL/TLS TCP协议提供了在两个结点之间的可靠的字节流通信。TCP是一种有状态的面向连接 的协议,它检测什么时候报文分组丢失和什么时候报文分组次序颠倒地到达,并且丢弃重复 的数据。TCP在建立两个结点间的会话时,甚至实现基于地址的实体认证:但是,正如在 8.7.1节中强调的,这是TCP协议的相当脆弱的实现。TCP缺乏强有力的密码实体认证、数 据完整性和机密性。这些服务是在安全套接字层(SSL)协议中引入的,它由 Netscape(网 景公司)开发,主要保护wwW通信。关于传输层安全(LS)的正TF草案,它基本上与 SSL的第三版本一样,于是这个协议就变成了众所周知的 SSL/TLS 在 Internet协议栈中,SSL位于应用层协议和TCP协议之间。因此,SsL能够依赖由 TCP保证的性质,例如它自己就不必关心数据的可靠传递。像TCP一样,SSL也是有状态 的和面向连接的。SSL会话状态包括为执行密码算法所要求的信息,例如,会话标识符、密 码程序组的说明、共享的秘密密钥、证书、由协议(如 Diffie- Hellan协议,见12.3.1节)使 用的随机数等等。为了抑制由密钥管理引起的系统开销,一个SSL会话可以包括多个连接。 有特色的实例是在客户和服务器之间的HTTP会话,其中为传输复合文档的每一个部分都要 建立一个新的连接。对每一个连接,仅仅是状态信息中的一个子集发生变化。SSL由两部分 组成,如图13.11所示: SSL记录层( SSL record layer),和 SSL握手层( SSLhandshake layer) SSL记录层从上层协议获得数据块,将这些数据块分段为SSL明文记录,然后应用在 现行会话状态中的密码说明定义的密码变换。从本质上来说,SSL记录层提供一种类似于 IPSEC的服务,在 IPSEC安全关联和SSL状态之间的相似绝不是偶然的。 SSL握手协议建立会话状态的密码参数。在图13.12中,你可以发现在客户和服务器之 间的消息交换,括号中的组件是可选的。为了举例说明这个协议,我们现在单步调试客户认 证服务器的运行过程 客户用 Clienthello消息开始协议的运行,该消息包含一个随机数、一张建议的密码表 (它是根据客户的偏爱定制的)和一个建议的压缩算法 MI: ClientHello: ClientRandom[28 建议的密码程序组( suite): TLS RSA WITH IDEA CBC SHA TLS RSA WITH DES CBC SHA TLS RSA EXPORT WITH DES40 CBC SHA 建议的压缩算法:无 服务器从建议的程序组中选择 ILS RSA WITH DES_ CBC SHA。RSA将用于密钥交 换, DES CBC用作加密算法,SHA用作hash函数。服务器将用一个 Server hello消息和 一个证书链来响应: 图13.11SSL层 图13.12SSL握手协议 M2: Server Hello: Server Random[28] 使用密码程序组: TLS RSA WITH DES CBC SHA 会话ID:0xa00372d4XS 第6页共12页 创建时间:2003-11
翻译:中国科学技术大学信息安全专业老师 第 6 页 共 12 页 创建时间:2003-11 13.2.2 SSL/TLS TCP 协议提供了在两个结点之间的可靠的字节流通信。TCP 是一种有状态的面向连接 的协议,它检测什么时候报文分组丢失和什么时候报文分组次序颠倒地到达,并且丢弃重复 的数据。TCP 在建立两个结点间的会话时,甚至实现基于地址的实体认证;但是,正如在 8.7.1 节中强调的,这是 TCP 协议的相当脆弱的实现。TCP 缺乏强有力的密码实体认证、数 据完整性和机密性。这些服务是在安全套接字层(SSL)协议中引入的,它由 Netscape(网 景公司)开发,主要保护 WWW 通信。关于传输层安全(TLS)的 IETF 草案,它基本上与 SSL 的第三版本一样,于是这个协议就变成了众所周知的 SSL/TLS。 在 Internet 协议栈中,SSL 位于应用层协议和 TCP 协议之间。因此,SSL 能够依赖由 TCP 保证的性质,例如它自己就不必关心数据的可靠传递。像 TCP 一样,SSL 也是有状态 的和面向连接的。SSL 会话状态包括为执行密码算法所要求的信息,例如,会话标识符、密 码程序组的说明、共享的秘密密钥、证书、由协议(如 Diffie-Hellan 协议,见 12.3.1 节)使 用的随机数等等。为了抑制由密钥管理引起的系统开销,一个 SSL 会话可以包括多个连接。 有特色的实例是在客户和服务器之间的 HTTP 会话,其中为传输复合文档的每一个部分都要 建立一个新的连接。对每一个连接,仅仅是状态信息中的一个子集发生变化。SSL 由两部分 组成,如图 13.11 所示: ·SSL 记录层(SSL record layer),和 ·SSL 握手层(SSL handshake layer)。 SSL 记录层从上层协议获得数据块,将这些数据块分段为 SSL 明文记录,然后应用在 现行会话状态中的密码说明定义的密码变换。从本质上来说,SSL 记录层提供一种类似于 IPSEC 的服务,在 IPSEC 安全关联和 SSL 状态之间的相似绝不是偶然的。 SSL 握手协议建立会话状态的密码参数。在图 13.12 中,你可以发现在客户和服务器之 间的消息交换,括号中的组件是可选的。为了举例说明这个协议,我们现在单步调试客户认 证服务器的运行过程。 客户用 ClientHello 消息开始协议的运行,该消息包含一个随机数、一张建议的密码表 (它是根据客户的偏爱定制的)和一个建议的压缩算法: M1:ClientHello:ClientRandom[28] 建议的密码程序组(suite): TLS_RSA_WITH_IDEA_CBC_SHA TLS_RSA_WITH_DES_CBC_SHA TLS_RSA_EXPORT_WITH_DES40_CBC_SHA 建议的压缩算法:无 服务器从建议的程序组中选择 TLS_RSA_WITH_DES_CBC_SHA。RSA 将用于密钥交 换,DES_CBC 用作加密算法,SHA 用作 hash 函数。服务器将用一个 Server_Hello 消息和 一个证书链来响应: 图 13.11 SSL 层 图 13.12 SSL 握手协议 M2:ServerHello:ServerRandom[28] 使用密码程序组: TLS_RSA_WITH_DES_CBC_SHA 会话 ID:0xa00372d4XS
翻译:中国科学技术大学信息安全专业老师 证书 Subject: DN=Super Store VirtualOutlet PublicKey: 0x521aa593 Issuer: Super StoreHQ PublicKey: 0x9f400682 Issuer: verisign Server done: none 在我们的例子中,没有要求来自客户的证书。客户验证证书链,然后本地生成一个48 字节的 PreMaster Secret. Master Secret是下面的前48字节 PRF(PreMaster Secret,'master secret, ClientRandom ll Server Random) 这里的PRF是一个基于MD5( Message digest5)和SHA( Secure Hash Algorithm)的复杂 函数的简写形式。 Master Secret用作构造如下形式的密钥块的输入: PRF(Maser Secret, 'key expansion, ClientRandom Server Random (符号“‖”表示级联)。对于客户和服务器需要的所有的MAC和加密密钥都是从密钥块中 得到的。保护从客户到服务器通信的密钥与保护从服务器到客户的通信的密钥是不同的。这 样,参与者可以很容易的区分他们发送的消息和接收的消息,并且他们也不受反射( reflection attacks)攻击的影响,反射攻击就是将消息重新发送到它的发送方。 客户现在发送 PreMaster Secret到服务器,它使用在选择的密码程序组中规定的密钥管 理算法和服务器的认证公开密钥(客户然后应该立即销毁 PreMaster Select)。在我们的例子 中,算法是RSA,公开密钥是0x521a593…。客户通过不请求改变来指示它接收了选择的 密码程序组,并且通过用MD5和SHA构造的散列值来捆绑第三个消息到前两个消息 M3: A: ClientKey Exchang: RSA Encrypt( Server PublicKey, PreMaster Secret B: Change CipherSpec: NONE MD5(Ml‖M2‖MA) SHA(Ml‖M‖M3A) 服务器解密 PreMaster Select,然后从它计算出 Master Select、密钥块和对于与客户的这 次会话有效的所有衍生出来的秘密密钥。服务器验证附加到客户消息上的散列值,通过不请 求改变来表明它接受所选择的密码程序组,而且用下面的消息回答 M4: A: Chang Cipher Spec: NONE B: Finished MD5(Ml‖M2‖MA‖M3C) SHA(Ml‖M2‖M3A|M3C) 客户验证在服务器消息中的散列值。现在,参与者双方都建立了他们用来保护应用通信 的共享秘密密钥 小结 目前,SSL是最广泛使用的 Internet安全协议,且由所有重要的Web浏览器支持。SSL 在应用协议和TCP之间加了一个安全层,所以应用层必须明确地要求安全。这样,应用层 的代码必须修改,但是要求的改变并不是很多,例如,在使用套接字的TCP连接中,用 密码状态参数,然后再作原来的 TCP connect ilie Connect调用。 SSL-connect调用会初始化 SSL- connect调用代替在SSL以前的应用中的TCP 不同于 IPSEC,SSL规范定义了一个握手协议,客户和服务器利用它来商定密码程序组, 确立必需的键控资料,进行相互认证。和 IPSEC不同,SSL至今没有规定在符合SSL标准 的所有实现中必须包含的密码算法的程序组。这一点目前是在使 SSL/TLS成为 Internet标准 的途中的绊脚石。 第7页共12页 创建时间:2003-11
翻译:中国科学技术大学信息安全专业老师 第 7 页 共 12 页 创建时间:2003-11 证书: Subject:DN=SuperStoreVirtualOutlet PublicKey:0x521aa593… Issuer:SuperStoreHQ Subject:DN=SuperStoreHQ PublicKey:0x9f400682… Issuer:Verisign Server Done:NONE 在我们的例子中,没有要求来自客户的证书。客户验证证书链,然后本地生成一个 48 字节的 PreMasterSecret。MasterSecret 是下面的前 48 字节: PRF(PreMasterSecret,master secret,ClientRandom || ServerRandom) 这里的 PRF 是一个基于 MD5(Message Digest 5)和 SHA(Secure Hash Algorithm)的复杂 函数的简写形式。MasterSecret 用作构造如下形式的密钥块的输入: PRF(MaserSecret,key expansion,ClientRandom || ServerRandom) (符号“||”表示级联)。对于客户和服务器需要的所有的 MAC 和加密密钥都是从密钥块中 得到的。保护从客户到服务器通信的密钥与保护从服务器到客户的通信的密钥是不同的。这 样,参与者可以很容易的区分他们发送的消息和接收的消息,并且他们也不受反射(reflection attacks)攻击的影响,反射攻击就是将消息重新发送到它的发送方。 客户现在发送 PreMasterSecret 到服务器,它使用在选择的密码程序组中规定的密钥管 理算法和服务器的认证公开密钥(客户然后应该立即销毁 PreMasterSelect)。在我们的例子 中,算法是 RSA,公开密钥是 0x521aa593…。客户通过不请求改变来指示它接收了选择的 密码程序组,并且通过用 MD5 和 SHA 构造的散列值来捆绑第三个消息到前两个消息。 M3:A:ClientKeyExchang:RSA_Encrypt(ServerPublicKey,PreMasterSecret) B:ChangeCipherSpec:NONE C:Finished MD5(M1 || M2 || M3A) SHA (M1 || M2 || M3A) 服务器解密 PreMasterSelect,然后从它计算出 MasterSelect、密钥块和对于与客户的这 次会话有效的所有衍生出来的秘密密钥。服务器验证附加到客户消息上的散列值,通过不请 求改变来表明它接受所选择的密码程序组,而且用下面的消息回答: M4:A:ChangCipherSpec:NONE B:Finished MD5(M1 || M2 || M3A || M3C) SHA(M1 || M2 || M3A || M3C) 客户验证在服务器消息中的散列值。现在,参与者双方都建立了他们用来保护应用通信 的共享秘密密钥。 小结 目前,SSL 是最广泛使用的 Internet 安全协议,且由所有重要的 Web 浏览器支持。SSL 在应用协议和 TCP 之间加了一个安全层,所以应用层必须明确地要求安全。这样,应用层 的代码必须修改,但是要求的改变并不是很多,例如,在使用套接字的 TCP 连接中,用 SSL-connect 调用代替在 SSL 以前的应用中的 TCP connect 调用。SSL-connect 调用会初始化 密码状态参数,然后再作原来的 TCP connect 调用。 不同于 IPSEC,SSL 规范定义了一个握手协议,客户和服务器利用它来商定密码程序组, 确立必需的键控资料,进行相互认证。和 IPSEC 不同,SSL 至今没有规定在符合 SSL 标准 的所有实现中必须包含的密码算法的程序组。这一点目前是在使 SSL/TLS 成为 Internet 标准 的途中的绊脚石
翻译:中国科学技术大学信息安全专业老师 在10.3节,我们提到这样一个问题,如何使没有意识到安全的应用变得安全。使用 IPSEC 和SSL,你遇到了与GSS-API类似的情形。为了使用一个密码服务调用,它进行数据的加 密和认证,一个应用层的编程者在应用代码中必须改变一点点(SSL)或者一点都不改变 ( IPSEC)。安全上下文环境由SSL建立,而在 IPSEC中则必须用其他独立的方式建立。客 户和服务器必须保护好它们的安全上下文环境的参数,否则由 IPSEC和SSL提供的安全就 会受到威胁,于是我们再次返回到计算机安全方法。 密码保护不会受到来自在通信链路下面层的威胁,它很可能受到来自网络结点的下面层 的威胁。 133网络边界 通过使用 IPSEC和SSL,在一个计算机网络中安全周界( perimeters)与结点边界 ( boundaries)相一致。结点被认为是安全的,而网络是不安全的。这是一个关于外部世界 的相当简单化的观点。网络是由很多嵌套的子网组成,子网的边界是一个相当安全的周界, 这是完全有可能的情形。 考虑一个组织已经安装了一个局域网(LAN)的情况。报文分组可以借助于LAN中任 何结点寻路,每个结点都有嗅探指定到其他结点的报文分组的潜力。该组织已经认为他们的 前提是,与其他泄漏信息的方式相比,搭线窃听攻击不是主要的威胁;但雇员的数据不应该 偶然地在人事部门外流动。为了实现这个目标,这个局域网被分成了两个用路由器连接起来 的子网,如图13.13所示。人事部门的计算机通过子网 subnet 1连接起来,该组织的所有其 他的计算机则通过子网 subnet2连接。仅仅在报文分组明确地定址到另外一个子网的结点 时,路由器才转发这个数据包 当这两个子网不直接连接时,你可以创建一个虚拟专用网(VPN),VPN通过在每个子 网的网关之间建立安全连接来实现,如图13.14所示。在两个子网间的所有通信必须经过这 些网关,其中增加的密码保护扩展了安全边界 你已经看到了两个例子,其中在网络边界的结点实现了安全机制。一般来说,在一个网 络边界( boundary)的主机可以用来 ·控制对网络的访问 ·对离开网络的数据进行密码保护 ·隐藏网络的内部结构 在下一节,将更密切地考虑可能在网络边界实现的安全机制的种类。 图13.13分离的两个子网 图13.14虚拟专用网 134防火墙 继续讨论我们的例子。在组织内部的LAN连接了个人计算机PC。在PC上的操作系 统是用户友好的,但不是为安全设计的。只要LAN对组织来说是内部的,这就不一定是个 问题。然而,当LAN被连接到 Internet上的时候,威胁的环境改变了。同样地,组织可能 第8页共12页 创建时间:2003-11
翻译:中国科学技术大学信息安全专业老师 第 8 页 共 12 页 创建时间:2003-11 在 10.3 节,我们提到这样一个问题,如何使没有意识到安全的应用变得安全。使用 IPSEC 和 SSL,你遇到了与 GSS-API 类似的情形。为了使用一个密码服务调用,它进行数据的加 密和认证,一个应用层的编程者在应用代码中必须改变一点点(SSL)或者一点都不改变 (IPSEC)。安全上下文环境由 SSL 建立,而在 IPSEC 中则必须用其他独立的方式建立。客 户和服务器必须保护好它们的安全上下文环境的参数,否则由 IPSEC 和 SSL 提供的安全就 会受到威胁,于是我们再次返回到计算机安全方法。 密码保护不会受到来自在通信链路下面层的威胁,它很可能受到来自网络结点的下面层 的威胁。 13.3 网络边界 通过使用 IPSEC 和 SSL,在一个计算机网络中安全周界(perimeters)与结点边界 (boundaries)相一致。结点被认为是安全的,而网络是不安全的。这是一个关于外部世界 的相当简单化的观点。网络是由很多嵌套的子网组成,子网的边界是一个相当安全的周界, 这是完全有可能的情形。 考虑一个组织已经安装了一个局域网(LAN)的情况。报文分组可以借助于 LAN 中任 何结点寻路,每个结点都有嗅探指定到其他结点的报文分组的潜力。该组织已经认为他们的 前提是,与其他泄漏信息的方式相比,搭线窃听攻击不是主要的威胁;但雇员的数据不应该 偶然地在人事部门外流动。为了实现这个目标,这个局域网被分成了两个用路由器连接起来 的子网,如图 13.13 所示。人事部门的计算机通过子网 subnet_1 连接起来,该组织的所有其 他的计算机则通过子网 subnet_2 连接。仅仅在报文分组明确地定址到另外一个子网的结点 时,路由器才转发这个数据包。 当这两个子网不直接连接时,你可以创建一个虚拟专用网(VPN),VPN 通过在每个子 网的网关之间建立安全连接来实现,如图 13.14 所示。在两个子网间的所有通信必须经过这 些网关,其中增加的密码保护扩展了安全边界。 你已经看到了两个例子,其中在网络边界的结点实现了安全机制。一般来说,在一个网 络边界(boundary)的主机可以用来: ·控制对网络的访问 ·对离开网络的数据进行密码保护 ·隐藏网络的内部结构 在下一节,将更密切地考虑可能在网络边界实现的安全机制的种类。 图 13.13 分离的两个子网 图 13.14 虚拟专用网 13.4 防火墙 继续讨论我们的例子。在组织内部的 LAN 连接了个人计算机 PC。在 PC 上的操作系 统是用户友好的,但不是为安全设计的。只要 LAN 对组织来说是内部的,这就不一定是个 问题。然而,当 LAN 被连接到 Internet 上的时候,威胁的环境改变了。同样地,组织可能
翻译:中国科学技术大学信息安全专业老师 决定扩展对雇员数据的安全策略,并且要求这样的数据从来不被送到在人事部门以外的结 点。阻塞所有离开人事部门子网的通信不是一个选择方案,所以必须引入新的机制来实行这 种安全策略。从安全的角度来说,对LAN内的所有结点进行升级保护也许是一个不错的主 意,但这不是很实际的情况 定义我们用防火墙( firewal)作为代表保护内部网络边界的任何安全系统的通用名 堡垒主机( bastion host)是一个具有坚固安全性的计算机系统,因为它要暴露给外部世界 防火墙与 Internet安全密切联系在一起。当你考虑使用一种认证协议的时候,你必须知 道你的用户是谁。当你想要向外延伸到 Internet上的未知世界去见到不断增长的用户群时 这种必须知道你的用户是谁的假设就不适当了。如果你想对未知的用户提供受控制的访问, 你能做什么呢?远程用户来自的地址或者请求的服务可能决定了你的访问控制决策。因此, 防火墙的典型任务是: 基于发送者或者接收者地址的访问控制: 基于请求的服务的访问控制 隐藏内部网络,例如,拓扑结构、地址、来自外部的通信量 在接收的文件中进行病毒检测:这一点已经紧紧地和通过 e-mail传播的宏病毒联系 在了一起 基于通信源的认证; 做 Internet活动日志。 由防火墙使用的两种基本机制是报文分组过滤和代理服务器。 134.l报文分组过滤 网络协议把报文分组从源地址发送到目的地址。关于报文分组的有关信息包含在它的头 标中。头标可以包含源地址、目的地址以及报文分组所属应用协议的一些指示信息。例如, TCP端口号23标识了一个 Telnet报文分组。可以基于下述的信息进行报文分组过滤: 源地址:源地址可以很容易被伪造,所以它的有效性是有限的:建议你阻止从 Internet 到达的、用内部IP地址作为源地址出现的报文分组。 目的地址:一个典型的例子就是在图13.16中的筛选路由器( screening router),它仅 仅发送报文分组到堡垒主机。 ·协议:你可以使用TCP端口号和所属协议的基础上过滤报文分组。例如,你可以允 许FTP,但阻塞 Telnet 连接:网络层过滤(有状态检査)使报文分组与一个连接发生联系,这样可以辨别报 文分组。例如,可以区分开内部FTP请求响应的FTP包和来自 Internet连接的FTP包。 1342代理服务器 让我们围绕着FTP例子来讨论。内部网络的一个客户想要访问在 Internet上的FTP服 务器。安全策略可能仅仅允许有限的一组用户使用FTP,而且可能禁止用户去下载被认为是 有攻击行为的资料。报文分组过滤支持允许FTP而阻止 Telnet连接的策略,但是在这里, 报文分组过滤策略根本不起任何作用。另外,当允许对外部的FTP服务器访问时,客户的 网络地址也暴露了。对于潜在的攻击者来说,这些信息可能是有用的。 为了实现基于用户身份的策略和隐藏关于内部网络的信息,可以使用代理服务器。代理 服务器是另外一个受控调用( controlled invocation)的实例。代理服务器截获客户的请求, 并且根据它的安全规则来决定这个请求是否允许。如果允许的话,这个请求才传给真正的服 第9页共12页 创建时间:2003-11
翻译:中国科学技术大学信息安全专业老师 第 9 页 共 12 页 创建时间:2003-11 决定扩展对雇员数据的安全策略,并且要求这样的数据从来不被送到在人事部门以外的结 点。阻塞所有离开人事部门子网的通信不是一个选择方案,所以必须引入新的机制来实行这 种安全策略。从安全的角度来说,对 LAN 内的所有结点进行升级保护也许是一个不错的主 意,但这不是很实际的情况。 定义 我们用防火墙(firewall)作为代表保护内部网络边界的任何安全系统的通用名。 堡垒主机(bastion host)是一个具有坚固安全性的计算机系统,因为它要暴露给外部世界。 防火墙与 Internet 安全密切联系在一起。当你考虑使用一种认证协议的时候,你必须知 道你的用户是谁。当你想要向外延伸到 Internet 上的未知世界去见到不断增长的用户群时, 这种必须知道你的用户是谁的假设就不适当了。如果你想对未知的用户提供受控制的访问, 你能做什么呢?远程用户来自的地址或者请求的服务可能决定了你的访问控制决策。因此, 防火墙的典型任务是: ·基于发送者或者接收者地址的访问控制; ·基于请求的服务的访问控制; ·隐藏内部网络,例如,拓扑结构、地址、来自外部的通信量; ·在接收的文件中进行病毒检测:这一点已经紧紧地和通过 e-mail 传播的宏病毒联系 在了一起。 ·基于通信源的认证; ·做 Internet 活动日志。 由防火墙使用的两种基本机制是报文分组过滤和代理服务器。 13.4.1 报文分组过滤 网络协议把报文分组从源地址发送到目的地址。关于报文分组的有关信息包含在它的头 标中。头标可以包含源地址、目的地址以及报文分组所属应用协议的一些指示信息。例如, TCP 端口号 23 标识了一个 Telnet 报文分组。可以基于下述的信息进行报文分组过滤: ·源地址:源地址可以很容易被伪造,所以它的有效性是有限的;建议你阻止从 Internet 到达的、用内部 IP 地址作为源地址出现的报文分组。 ·目的地址:一个典型的例子就是在图 13.16 中的筛选路由器(screening router),它仅 仅发送报文分组到堡垒主机。 ·协议:你可以使用 TCP 端口号和所属协议的基础上过滤报文分组。例如,你可以允 许 FTP,但阻塞 Telnet。 ·连接:网络层过滤(有状态检查)使报文分组与一个连接发生联系,这样可以辨别报 文分组。例如,可以区分开内部 FTP 请求响应的 FTP 包和来自 Internet 连接的 FTP 包。 13.4.2 代理服务器 让我们围绕着 FTP 例子来讨论。内部网络的一个客户想要访问在 Internet 上的 FTP 服 务器。安全策略可能仅仅允许有限的一组用户使用 FTP,而且可能禁止用户去下载被认为是 有攻击行为的资料。报文分组过滤支持允许 FTP 而阻止 Telnet 连接的策略,但是在这里, 报文分组过滤策略根本不起任何作用。另外,当允许对外部的 FTP 服务器访问时,客户的 网络地址也暴露了。对于潜在的攻击者来说,这些信息可能是有用的。 为了实现基于用户身份的策略和隐藏关于内部网络的信息,可以使用代理服务器。代理 服务器是另外一个受控调用(controlled invocation)的实例。代理服务器截获客户的请求, 并且根据它的安全规则来决定这个请求是否允许。如果允许的话,这个请求才传给真正的服
翻译:中国科学技术大学信息安全专业老师 务。代理服务器是外部可以看见的唯一实体,它对内部的用户来说是透明的。代理服务器可 以应用协议特定的访问规则,执行基于用户身份和报文分组内容的访问控制,如要执行的特 殊指令。例如,代理可以允许通过FTP的get(下载)请求,但是阻止FTP的put(上传) 请求。用户不必登录到防火墙,所以不必维护用户的帐户。与应用有关的事件可以记录下来。 当然,对于每一个你需要保护的服务都需要一个代理服务器。随着 Internet提供的 Internet 服务项目不断增加,这种方法不具有很好的可扩展性。 相同的原理可用于任何的协议层。如果你想要保护一个特殊的应用层协议,你可以重新 装配在防火墙相应协议中交换的消息(和会话),使用应用特定的安全检测,然后与指定的 服务通信。对于复杂协议来说,这样的策略仍可能产生不受欢迎的性能开销。 134.3双宿主主机防火墙 双宿主主机(dual- homed host)是一台具有两个网络接口的机器。这样的防火墙不只是 简单地在 Internet和内部网络之间路由报文分组,它还要根据它的安全规则处理这些报文分 组。双宿主主机是“全内置”防火墙(' all in one' firewal):它能够提供报文分组过滤和代 理服务。在内部网络的客户可以通过使用防火墙上的代理服务器或者直接登录到防火墙来访 问在 Internet上的服务。 1344筛选主机防火墙 双宿主主机常常通过改写Unix系统而建立。图13.15中的防火墙则是一个直接面对外 部世界的相当复杂的系统。如果你不是太放心那样的情况,你可以分离防火墙所实现的一些 功能,并且通过具有受限功能的更强壮的系统连接到 Internet 图13.15双宿主主机防火墙 图13.16中的防火墙被称作筛选主机防火墙( screened host firewall)8,它由实施报文 分组过滤和提供与 Internet接口的筛选路由器以及内部网络的堡垒主机组成。筛选路由器将 所有允许进入的通信发送到堡垒主机,在这儿,在报文分组被转发到内部网络中的结点前, 可以进行进一步的访问控制决策,并且只接收来自堡垒主机的内部报文分组 把报文分组过滤从防火墙实现的其他任务分离开来可以产生不太复杂的路由器,这样, 路由器和防火墙都有了更好的性能,因为硬件可以用来优化路由任务和更高程度的安全性保 证。基于这种理解,筛选主机防火墙比双宿主主机8具有更高安全性的断言可以认为是有 道理的。另一方面,你可能会抱怨它的高安全保证仅仅适用于有限的功能度( functionality) 而且必须由代理服务器提供更多相关的可选软件( features) 134.5筛选子网防火墙 筛选子网防火墙( screened subnet firewall)组合了前面两种方法的特性,如图13.17所 示。一个周边网络( peripheral network),也称作非军事区( demilitarized zone,DMZ),被 放置在内部网络和 Internet之间。筛选路由器位于 Internet和周边网络之间。在这里,高安 全保证是所希望的,仅仅报文分组过滤对于应付外部用户来说是足够了。在外围网和内部网 之间的双宿主主机防火墙可以提供较少的安全保障,但可以应用更复杂的策略来管理内部用 周边网络是用于非敏感主机的合适场所,非敏感主机应该能访问外部世界,像Web服 务器。外部用户浏览你的Web网页根本不需要进入内部网络,并且如果你真正关心你的声 誉,你可以把服务器中的数据存储在不可写的介质上,比如 CD-ROM。 第10页共12页 创建时间:2003-11
翻译:中国科学技术大学信息安全专业老师 第 10 页 共 12 页 创建时间:2003-11 务。代理服务器是外部可以看见的唯一实体,它对内部的用户来说是透明的。代理服务器可 以应用协议特定的访问规则,执行基于用户身份和报文分组内容的访问控制,如要执行的特 殊指令。例如,代理可以允许通过 FTP 的 get(下载)请求,但是阻止 FTP 的 put(上传) 请求。用户不必登录到防火墙,所以不必维护用户的帐户。与应用有关的事件可以记录下来。 当然,对于每一个你需要保护的服务都需要一个代理服务器。随着 Internet 提供的 Internet 服务项目不断增加,这种方法不具有很好的可扩展性。 相同的原理可用于任何的协议层。如果你想要保护一个特殊的应用层协议,你可以重新 装配在防火墙相应协议中交换的消息(和会话),使用应用特定的安全检测,然后与指定的 服务通信。对于复杂协议来说,这样的策略仍可能产生不受欢迎的性能开销。 13.4.3 双宿主主机防火墙 双宿主主机(dual-homed host)是一台具有两个网络接口的机器。这样的防火墙不只是 简单地在 Internet 和内部网络之间路由报文分组,它还要根据它的安全规则处理这些报文分 组。双宿主主机是“全内置”防火墙(all in one firewall);它能够提供报文分组过滤和代 理服务。在内部网络的客户可以通过使用防火墙上的代理服务器或者直接登录到防火墙来访 问在 Internet 上的服务。 13.4.4 筛选主机防火墙 双宿主主机常常通过改写 Unix 系统而建立。图 13.15 中的防火墙则是一个直接面对外 部世界的相当复杂的系统。如果你不是太放心那样的情况,你可以分离防火墙所实现的一些 功能,并且通过具有受限功能的更强壮的系统连接到 Internet。 图 13.15 双宿主主机防火墙 图 13.16 中的防火墙被称作筛选主机防火墙(screened host firewall)[28],它由实施报文 分组过滤和提供与 Internet 接口的筛选路由器以及内部网络的堡垒主机组成。筛选路由器将 所有允许进入的通信发送到堡垒主机,在这儿,在报文分组被转发到内部网络中的结点前, 可以进行进一步的访问控制决策,并且只接收来自堡垒主机的内部报文分组。 把报文分组过滤从防火墙实现的其他任务分离开来可以产生不太复杂的路由器,这样, 路由器和防火墙都有了更好的性能,因为硬件可以用来优化路由任务和更高程度的安全性保 证。基于这种理解,筛选主机防火墙比双宿主主机[28]具有更高安全性的断言可以认为是有 道理的。另一方面,你可能会抱怨它的高安全保证仅仅适用于有限的功能度(functionality), 而且必须由代理服务器提供更多相关的可选软件(features)。 13.4.5 筛选子网防火墙 筛选子网防火墙(screened subnet firewall)组合了前面两种方法的特性,如图 13.17 所 示。一个周边网络(peripheral network),也称作非军事区(demilitarized zone,DMZ),被 放置在内部网络和 Internet 之间。筛选路由器位于 Internet 和周边网络之间。在这里,高安 全保证是所希望的,仅仅报文分组过滤对于应付外部用户来说是足够了。在外围网和内部网 之间的双宿主主机防火墙可以提供较少的安全保障,但可以应用更复杂的策略来管理内部用 户。 周边网络是用于非敏感主机的合适场所,非敏感主机应该能访问外部世界,像 Web 服 务器。外部用户浏览你的 Web 网页根本不需要进入内部网络,并且如果你真正关心你的声 誉,你可以把服务器中的数据存储在不可写的介质上,比如 CD-ROM