Communication Security
We have now finished our study of the tools of the trade. Most of the important techniques and protocols have been covered. The rest of the chapter is about how these techniques are applied in practice to provide network security, plus some thoughts about the social aspects of security at the end of the chapter.
In the following three sections, we will look at communication security, that is, how to get the bits secretly and without modification from source to destination and how to keep unwanted bits outside the door. These are by no means the only security issues in networking, but they are certainly among the most important ones, making this a good place to start.
1. IPsec
IETF has known for years that security was lacking in the Internet. Adding it was not easy because a war broke out about where to put it. Most security experts believe that to be really secure, encryption and integrity checks have to be end to end (i.e., in the application layer). That is, the source process encrypts and/or integrity protects the data and sends that to the destination process where it is decrypted and/or verified. Any tampering done in between these two processes, including within either operating system, can then be detected. The trouble with this approach is that it requires changing all the applications to make them security aware. In this view, the next best approach is putting encryption in the transport layer or in a new layer between the application layer and the transport layer, making it still end to end but not requiring applications to be changed.
The opposite view is that users do not understand security and will not be capable of using it correctly and nobody wants to modify existing programs in any way, so the network layer should authenticate and/or encrypt packets without the users being involved. After years of pitched battles, this view won enough support that a network layer security standard was defined. In part the argument was that having network layer encryption does not prevent security-aware users from doing it right and it does help security-unaware users to some extent.
The result of this war was a design called IPsec (IP security), which is described in RFCs 2401, 2402, and 2406, among others. Not all users want encryption (because it is computationally expensive). Rather than make it optional, it was decided to require encryption all the time but permit the use of a null algorithm. The null algorithm is described and praised for its simplicity, ease of implementation, and great speed in RFC 2410.
The complete IPsec design is a framework for multiple services, algorithms and granularities. The reason for multiple services is that not everyone wants to pay the price for having all the services all the time, so the services are available a la carte. The major services are secrecy, data integrity, and protection from replay attacks (intruder replays a conversation). All of these are based on symmetric-key cryptography because high performance is crucial.
The reason for having multiple algorithms is that an algorithm that is now thought to be secure may be broken in the future. By making IPsec algorithm-independent, the framework can survive even if some particular algorithm is later broken.
The reason for having multiple granularities is to make it possible to protect a single TCP connection, all traffic between a pair of hosts, or all traffic between a pair of secure routers, among other possibilities.
One slightly surprising aspect of IPsec is that even though it is in the IP layer, it is connection oriented. Actually, that is not so surprising because to have any security, a key must be established and used for some period of time—in essence, a kind of connection. Also connections amortize the setup costs over many packets. A connection in the context of IPsec is called an SA (security association). An SA is a simplex connection between two end points and has a security identifier associated with it. If secure traffic is needed in both directions, two security associations are required. Security identifiers are carried in packets traveling on these secure connections and are used to look up keys and other relevant information when a secure packet arrives.
Technically, IPsec has two principal parts. The first part describes two new headers that can be added to packets to carry the security identifier, integrity control data, and other information. The other part, ISAKMP (Internet Security Association and Key Management Protocol) deals with establishing keys. We will not deal with ISAKMP further because (1) it is extremely complex and (2) its main protocol, IKE (Internet Key Exchange), is deeply flawed and needs to be replaced (Perlman and Kaufman, 2000).
IPsec can be used in either of two modes. In transport mode, the IPsec header is inserted just after the IP header. The Protocol field in the IP header is changed to indicate that an IPsec header follows the normal IP header (before the TCP header). The IPsec header contains security information, primarily the SA identifier, a new sequence number, and possibly an integrity check of the payload.
In tunnel mode, the entire IP packet, header and all, is encapsulated in the body of a new IP packet with a completely new IP header. Tunnel mode is useful when the tunnel ends at a location other than the final destination. In some cases, the end of the tunnel is a security gateway machine, for example, a company firewall. In this mode, the firewall encapsulates and decapsulates packets as they pass though the firewall. By terminating the tunnel at this secure machine, the machines on the company LAN do not have to be aware of IPsec. Only the firewall has to know about it.
Tunnel mode is also useful when a bundle of TCP connections is aggregated and handled as
剩余内容已隐藏,支付完成后下载完整资料
通讯安全
现在,我们已经完成了对交易工具的研究。涵盖了大多数重要的技术和协议。本章的其余部分是关于如何在实践中应用这些技术来提供网络安全性的,以及本章末尾有关安全性的社会方面的一些想法。
在以下三个部分中,我们将研究通信安全性,即,如何秘密地获取这些位,而不进行从源到目的地的修改,以及如何将不需要的位保留在门外。这些绝不是网络中唯一的安全问题,但是它们无疑是最重要的问题,因此这是一个很好的起点。
- IP安全
IETF多年来已经知道Internet缺乏安全性。添加它并不容易,因为关于放置位置的战争爆发了。大多数安全专家认为,要真正确保安全,加密和完整性检查必须是端到端的(即在应用程序层中)。即,源进程加密和/或完整性保护数据,并将其发送到目的地进程,在此解密和/或验证数据。然后可以检测到这两个过程之间(包括在任一操作系统中)进行的任何篡改。这种方法的麻烦在于,它需要更改所有应用程序以使其具有安全意识。按照这种观点,下一个最佳方法是将加密置于传输层或应用程序层与传输层之间的新层中,使其仍然是端对端的,但不需要更改应用程序。
相反的观点是用户不了解安全性,将无法正确使用它,并且没有人希望以任何方式修改现有程序,因此网络层应在不涉及用户的情况下对数据包进行身份验证和/或加密。经过多年的激烈争夺,这种观点赢得了足够的支持,以至于定义了网络层安全标准。在某种程度上,该论点是拥有网络层加密并不会阻止了解安全的用户正确执行它,并且确实在某种程度上帮助了了解安全的用户。
这场战争的结果是一种称为IPsec (IP安全)的设计,在RFC 2401、2402和2406等中对此进行了描述。并非所有用户都希望加密(因为它在计算上很昂贵)。并非一直选择加密,而是决定始终加密,但允许使用空算法。在RFC 2410中,空算法因其简单性,易于实现性和快速性而得到了描述和赞扬。
完整的IPsec设计是用于多种服务,算法和粒度的框架。提供多种服务的原因是,并非每个人都愿意为始终拥有所有服务而付出代价,因此这些服务可以点菜使用。主要服务是保密性,数据完整性和免受重播攻击(入侵者重播会话)的保护。所有这些都是基于对称密钥加密技术的,因为高性能至关重要。
之所以拥有多种算法,是因为将来可能会破坏现在被认为是安全的算法。通过使IPsec算法独立,即使某些特定算法后来被破坏,该框架也可以生存。
具有多个粒度的原因是可以保护单个TCP连接,一对主机之间的所有流量或一对安全路由器之间的所有流量以及其他可能性。
IPsec的一个令人惊讶的方面是,即使它位于IP层中,它也是面向连接的。实际上,这并不奇怪,因为要具有任何安全性,必须在一段时间内建立并使用密钥(本质上是一种连接)。连接也会分摊许多数据包的设置成本。在IPsec上下文中的“连接”称为SA (安全关联)。SA是两个端点之间的单一连接,并具有与其关联的安全标识符。如果双向都需要安全通信,则需要两个安全关联。安全标识符包含在通过这些安全连接传输的数据包中,并在安全数据包到达时用于查找密钥和其他相关信息。
从技术上讲,IPsec有两个主要部分。第一部分描述了两个新的标头,可以将其添加到数据包中以携带安全标识符,完整性控制数据和其他信息。另一部分,ISAKMP (Internet安全协会和密钥管理协议)处理建立密钥。我们不会进一步处理ISAKMP,因为(1)它非常复杂,并且(2)其主要协议IKE (Internet密钥交换)存在严重缺陷,需要替换(Perlman和Kaufman,2000)。
可以在两种模式中的任何一种中使用IPsec。在传输模式下,IPsec标头插入在IP标头之后。IP标头中的“协议” 字段已更改,以指示IPsec标头跟随普通IP标头(在TCP标头之前)。IPsec头包含安全信息,主要是SA标识符,新的序列号以及可能的有效载荷完整性检查。
在隧道模式下,整个IP数据包,标头和所有内容都封装在具有全新IP报头的新IP数据包的主体中。当隧道在最终目的地以外的其他位置结束时,隧道模式很有用。在某些情况下,隧道的末端是安全网关计算机,例如公司防火墙。在这种模式下,当数据包通过防火墙时,防火墙会对其进行封装和解封装。通过在此安全机器上终止隧道,公司LAN上的机器不必知道IPsec。仅防火墙必须了解它。
当将TCP连接捆绑在一起并作为一个加密流处理时,隧道模式也很有用,因为它可以防止入侵者看到谁向谁发送了多少数据包。有时,仅知道有价值的信息将流向何处。例如,如果在军事危机期间,五角大楼与白宫之间的交通流量急剧下降,而五角大楼与科罗拉多洛矶山脉深处的某些军事设施之间的交通流量却增加了相同的数量,那就是入侵者也许能够从这些数据中得出一些有用的信息。研究数据包的流模式,即使它们是加密的,也称为流量分析。隧道模式提供了某种程度的挫败。隧道模式的缺点是它增加了一个额外的IP标头,从而大大增加了数据包的大小。相反,传输模式对数据包大小的影响不大。
第一个新标头是AH (身份验证标头)。它提供完整性检查和防重播安全性,但不提供保密性(即,没有数据加密)。图8-27说明了AH在传输模式下的使用。在IPv4中,它介于IP标头(包括任何选项)和TCP标头之间。在IPv6中,它只是另一个扩展头,因此被视为扩展头。实际上,该格式接近于标准IPv6扩展头的格式。如图所示,对于认证算法,可能必须将有效负载填充到某个特定长度。
现在让我们检查AH标头。在接着报头字段被用于存储以前的值,该IP 协议,然后用51替换以指示AH头如下字段了。在大多数情况下,TCP(6)的代码将在此处。的有效载荷长度是在32位字的数目AH头减去2。
图8-27. IPv4传输模式下的IPsec身份验证标头.
该安全参数指标是连接标识符。它由发送方插入以指示接收方数据库中的特定记录。该记录包含此连接上使用的共享密钥以及有关该连接的其他信息。如果此协议是ITU而非IETF发明的,则此字段将被称为“ 虚拟电路号” 。
该序列号字段用于号码的所有上SA发送的数据包。每个数据包都有一个唯一的编号,甚至是重传。换句话说,数据包的重发在这里与原始数据包具有不同的编号(即使其TCP序列号相同)。该字段的目的是检测重播攻击。这些序列号可能不会环绕。如果232全部用尽,则必须建立新的SA才能继续通信。
最后,我们进入Authentication data ,这是一个可变长度字段,其中包含有效负载的数字签名。建立安全联盟后,双方将协商使用哪种签名算法。通常,此处不使用公共密钥加密,因为必须非常快速地处理数据包,并且所有已知的公共密钥算法都太慢。由于IPsec基于对称密钥加密,并且发送方和接收方在设置SA之前会协商共享密钥,因此在签名计算中将使用共享密钥。一种简单的方法是计算数据包加上共享密钥的哈希值。当然,不发送共享密钥。这样的方案称为HMAC (哈希消息验证码)。它比首先运行SHA-1然后对结果运行RSA快得多。
AH标头不允许对数据进行加密,因此在需要完整性检查但不需要保密的情况下,它最有用。AH的一个值得注意的功能是完整性检查覆盖了IP头中的某些字段,即那些随着数据包从一个路由器到另一个路由器的移动而不会改变的字段。在生存时间上的每一跳场的变化,例如,所以它不能被列入完整性检查。但是,IP源地址包含在检查中,这使得入侵者无法伪造数据包的来源。
备用IPsec标头是ESP (封装安全有效载荷)。图8-28显示了它在传输模式和隧道模式中的使用。
图8-28. (a)ESP处于运输模式. (b)ESP处于隧道模式.
ESP头由两个32位字组成。它们是我们在AH中看到的“ 安全性参数”索引和“ 序列号” 字段。通常跟在它们后面的第三个字(但从技术上讲不是标题的一部分)是用于数据加密的初始化向量,除非使用了空加密(在这种情况下将其省略)。
ESP与AH一样,也提供HMAC完整性检查,但是它们并未包含在标头中,而是位于有效负载之后,如图8-28所示。将HMAC放在末尾在硬件实现方面具有优势。当这些位通过网络接口传出并附加到末尾时,可以计算HMAC。这就是为什么以太网和其他LAN的CRC在尾部而不是头中的原因。使用AH,必须先对数据包进行缓冲并计算签名,然后才能发送数据包,从而有可能减少每秒发送的数据包数量。
鉴于ESP可以做AH可以做的所有事情,而且可以做得更多,而且启动效率更高,所以出现了一个问题:为什么要麻烦AH?答案主要是历史性的。最初,AH仅处理完整性,而ESP仅处理保密性。后来,完整性被添加到ESP中,但是设计AH的人不想在所有工作之后就让它死掉。但是,他们唯一真正的论点是AH检查IP标头的一部分,而ESP则不这样做,但这是一个很弱的论点。另一个弱点是,支持AH但不支持ESP的产品可能很难获得出口许可证,因为它不能进行加密。AH可能会在未来逐步淘汰。
- 防火墙
能够将任何地方的任何计算机连接到任何地方的任何其他计算机,这是好运。对于在家中的个人来说,在互联网上闲逛很有趣。对于公司安全经理来说,这是一场噩梦。大多数公司都在线拥有大量机密信息,包括商业机密,产品开发计划,营销策略,财务分析等。向竞争对手披露此信息可能会带来可怕的后果。
除了信息泄漏的危险之外,还有信息泄漏的危险。特别是,病毒,蠕虫和其他数字有害生物可能破坏安全性,破坏有价值的数据,并浪费大量管理员试图清理的时间他们离开的烂摊子。通常,它们是由粗心的员工导入的,他们想要玩一些漂亮的新游戏。
因此,需要一种机制来将“好”位和“坏”位拒之门外。一种方法是使用IPsec。这种方法可以保护安全站点之间传输的数据。但是,IPsec并不能阻止数字害虫和入侵者进入公司的LAN。要了解如何实现此目标,我们需要研究防火墙。
防火墙只是对那个古老的中世纪安全备用设备的现代改编:在城堡周围挖出一条深深的护城河。这种设计迫使每个进入或离开城堡的人都要经过一个吊桥,I / O警察可以在那里检查他们。使用网络,可以实现相同的技巧:公司可以以任意方式连接许多LAN,但是进出公司的所有流量都被强制通过电子吊桥(防火墙),如图8-29所示。
此配置中的防火墙具有两个组件:两个进行数据包筛选的路由器和一个应用程序网关。还存在更简单的配置,但是此设计的优点是每个数据包必须经过两个过滤器和一个应用程序网关才能进出。没有其他路线。认为一个安全检查站足够的读者最近显然没有在预定的航班上进行国际航班。
图8-29. 由两个数据包筛选器和一个应用程序网关组成的防火墙.
每个数据包过滤器都是配备一些附加功能的标准路由器。额外的功能允许检查每个传入或传出的数据包。满足某些条件的数据包将正常转发。那些未通过测试的将被丢弃。
在图8-29中,最有可能是内部LAN上的数据包筛选器检查传出数据包,而外部LAN上的一个数据包过滤器则检查传入数据包。穿过第一个障碍的数据包将到达应用程序网关进行进一步检查。将这两个数据包筛选器放在不同的LAN上的目的是确保无需通过应用程序网关就不会有任何数据包进出该数据包:它周围没有路径。
数据包筛选器通常由系统管理员配置的表驱动。这些表列出了可接受的源和目的地,被阻止的源和目的地,以及有关如何处理来自其他计算机或进入其他计算机的数据包的默认规则。
在TCP / IP设置的常见情况下,源或目标由IP地址和端口组成。端口指示所需的服务。例如,TCP端口23用于telnet,TCP端口79用于finger,TCP端口119用于USENET新闻。公司可以阻止所有IP地址与这些端口之一组合的传入数据包。这样,公司外部的任何人都无法通过telnet登录或使用Finger守护程序查找人员。此外,公司将免于让员工全天候阅读USENET新闻。
阻止传出数据包比较棘手,因为尽管大多数站点都遵循标准的端口编号约定,但它们并没有被迫这样做。此外,对于某些重要服务,例如FTP(文件传输协议),端口号是动态分配的。另外,尽管阻止TCP连接很困难,但是阻止UDP数据包就更困难了,因为对它们将做什么的先验知之甚少。许多数据包筛选器配置为完全禁止UDP流量。
防火墙的后半部分是应用程序网关。网关不仅在原始数据包上工作,而且还在应用程序级别运行。例如,可以设置一个邮件网关来检查每条进出的邮件。对于每个消息,网关都会根据标题字段,消息大小甚至内容(例如,在军事设施中出现“核”或“炸弹”之类的词)来决定是发送还是丢弃消息。可能会导致采取一些特殊措施)。
安装是免费的,可以为特定的应用程序设置一个或多个应用程序网关,但是可疑组织允许电子邮件进出,并且可能允许使用万维网,但又禁止其他一切,这是很常见的。 。与加密和数据包过滤结合使用时,此安排会带来一些不便,但提供的安全性有限。
即使防火墙配置正确,仍然存在许多安全问题。例如,如果将防火墙配置为仅允许来自特定网络(例如,公司的其他工厂)的数据包,则防火墙外部的入侵者可以输入错误的源地址来绕过此检查。如果内部人员想要发送机密文档,则可以对其进行加密甚至照相,然后将照片作为JPEG文件发送,从而绕过任何文字过滤器。而且,我们甚至都没有讨论过以下事实:所有攻击中有70%来自防火墙内部,例如来自心怀不满的员工(Schneier,2000)。
此外,还有防火墙无法处理的另一类攻击。防火墙的基本思想是防止入侵者入侵和防止机密数据泄露。不幸的是,有些
剩余内容已隐藏,支付完成后下载完整资料
资料编号:[238409],资料为PDF文档或Word文档,PDF文档可免费转换为Word
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。