2021-12-13 10:12

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 #39;#39;connection#39;#39; 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



在接下来的三个部分中,我们将介绍通信安全性,即如何秘密地获取位,而不需要从源到目的地进行修改,以及如何将不需要的位保留在门外。 这些绝不是网络中唯一的安全问题,但它们肯定是最重要的问题之一,这使它成为一个很好的起点。

1. IPsec

多年来,IETF已经知道互联网缺乏安全性。添加这并不容易,因为一战爆发了关于把它放在哪里。大多数安全专家认为,为了确保安全,加密和完整性检查必须端到端(即在应用程序层中)。也就是说,源进程加密和/或完整性保护数据并将其发送到解密和/或验证数据的目标进程。 然后可以检测在这两个过程之间进行的任何篡改,包括在任一操作系统内。 这种方法的问题在于它需要更改所有应用程序以使其具有安全性。 在此视图中,下一个最佳方法是在传输层或应用程序层与传输层之间的新层中加密,使其仍然是端到端但不需要更改应用程序。


这场战争的结果是一种称为IPsec(IP安全)的设计,其在RFC 2401,2402和2406等中有所描述。 并非所有用户都想要加密(因为它的计算成本很高)。 不是让它成为可选的,而是决定一直要求加密,但允许使用空算法。描述了null算法,并因其简单,易于实现和RFC2410中的高速度而受到称赞。

完整的IPsec设计是多种服务,算法和粒度的框架。多种服务的原因是不是每个人都想为所有服务一直付出代价,所以服务都是单点提供的。 主要服务是保密,数据完整性和防止重放攻击(入侵者重放会话)。 所有这些都是基于对称密钥加密,因为高性能是至关重要的。

具有多种算法的原因在于,将来可能会破坏现在被认为是安全的算法。 通过使IPsec算法独立,即使稍后某些特定算法被破坏,该框架也能够存活。


IPsec的一个稍微令人惊讶的方面是即使它在IP层中,它也是面向连接的。 实际上,这并不令人惊讶,因为要有任何安全性,必须建立一个密钥并使用一段时间-实质上是一种连接。此外,连接还可以分摊许多数据包的设置成本。 IPsec上下文中的“连接”称为SA(安全关联)。 SA是两个端点之间的单工连接,并具有与之关联的安全标识符。如果两个方向都需要安全流量,则需要两个安全关联。安全标识符在这些安全连接上传输的数据包中携带,用于在安全数据包到达时查找密钥和其他相关信息。

从技术上讲,IPsec有两个主要部分。第一部分描述了可以添加到数据包的两个新标头,以携带安全标识符,完整性控制数据和其他信息。 另一部分,ISAKMP(互联网安全协会和密钥管理协议)处理建立密钥。 我们不会进一步处理ISAKMP,因为(1)它非常复杂,(2)它的主要协议IKE(互联网密钥交换)存在严重缺陷,需要更换(Perlman和Kaufman,2000)。

IPsec可以在两种模式中使用。在传输模式下,IPsec标头插入IP标头之后。 更改IP标头中的“协议”字段,以指示IPsec标头遵循正常的IP标头(在TCP标头之前)。IPsec报头包含安全信息,主要是SA标识符,新的序列号,以及可能的有效负载的完整性检查。

在隧道模式中,整个IP数据包,报头和所有IP数据包都封装在具有全新IP报头的新IP数据包的主体中。 当隧道在最终目的地以外的位置结束时,隧道模式很有用。在某些情况下,隧道的末端是安全网关机器,例如公司防火墙。 在此模式下,防火墙在数据包通过防火墙时对数据包进行封装和解封装。 通过在此安全机器上终止隧道,公司LAN上的机器不必知道IPsec。只有防火墙必须知道它。

当一组TCP连接聚合并作为一个加密流处理时,隧道模式也很有用,因为它可以防止入侵者查看谁向谁发送了多少数据包。有时只知道有多少流量在哪里才是有价值的信息。 例如,如果在军事危机期间,五角大楼和白宫之间的交通量急剧下降,但五角大楼与科罗拉多洛矶山脉深处的一些军事设施之间的交通量增加了相同的数量,一个入侵者 或许可以从这些数据中推断出一些有用的信息。 研究数据包的流模式,即使它们是加密的,也称为流量分析。隧道模式提供了一种在某种程度上阻止它的方法。 隧道模式的缺点是它增加了额外的IP报头,从而大大增加了数据包的大小。 相反,传输模式不会对数据包大小产生太大影响。

第一个新标头是AH(Authentication Header)。 它提供完整性检查和反重放安全性,但不提供保密性(即,没有数据加密)。 在传输模式中使用AH如图8-27所示。在IPv4中,它插入在IP报头(包括任何选项)和TCP报头之间。 在IPv6中,它只是另一个扩展头,并按此处理。 实际上,格式接近于标准IPv6扩展头的格式。如图所示,可能必须将有效载荷填充到用于认证算法的某个特定长度。

现在让我们检查AH标题。Next头字段用于存储IP协议字段在被51替换之前具有的先前值,以指示AH头跟随。 在大多数情况下,TCP(6)的代码将在此处。有效载荷长度是AH头中的32位字减去2的数量。

图8-27 IPv4传输模式下的IPsec身份验证标头

安全参数索引是连接标识符。它由发送方插入以指示接收方数据库中的特定记录。 此记录包含此连接上使用的共享密钥以及有关连接的其他信息。 如果该协议是由ITU而不是IETF发明的,则该字段将被称为虚拟电路号。

序列号字段用于对SA上发送的所有数据包进行编号。每个数据包都获得一个唯一的数字,甚至是重传。换句话说,数据包的重传在这里获得的数量与原始数据不同(即使其TCP序列号相同)。该字段的目的是检测重放攻击。 这些序列号可能不会回绕。 如果所有232都用尽,则必须建立新的SA以继续通信。


AH标头不允许加密数据,因此在需要进行完整性检查但不需要保密时,它最有用。 AH的一个值得注意的特性是完整性检查覆盖了IP报头中的一些字段,即当数据包从路由器移动到路由器时不会改变的字段。例如,生存时间字段在每一跳上都会发生变化,因此它不能包含在完整性检查中。但是,IP源地址包含在检查中,使入侵者无法伪造数据包的来源。

备用IPsec标头是ESP(Encapsulating Security Payload)。 它用于传输模式和隧道模式如图8-28所示。



ESP也提供HMAC完整性检查,AH也是如此,但它们不是包含在标题中,而是在有效载荷之后,如图8-28所示。 将HMAC放在最后具有硬件实现的优势。 可以计算HMAC,因为这些位通过网络接口传出并附加到末尾。这就是为什么以太网和其他LAN将其CRC放在预告片中而不是标头中的原因。使用AH时,必须缓冲数据包并在发送数据包之前计算签名,这可能会减少可以发送的数据包/秒数。

鉴于ESP可以做所有AH可以做的事情,而且更有效率,但问题出现了:为什么要打扰AH? 答案主要是历史性的。最初,AH只处理完整性而ESP只处理保密。后来,ESP增加了诚信,但设计AH的人不想让它在完成所有工作后死亡。 然而,他们唯一真实的论点是,AH检查部分IP头,ESP没有,但这是一个弱论点。另一个弱点是,支持AH但不支持ESP的产品在获得出口许可证方面可能会更少,因为它无法进行加密。 AH很可能在未来逐步淘汰。





防火墙只是对旧中世纪安全待命的现代改编:在城堡周围挖掘深壕。这种设计迫使每个进入或离开城堡的人都经过一个吊桥,在那里他们可以被I / O警察检查。对于网络,同样的技巧是可行的:公司可以以任意方式连接许多LAN,但是所有进出公司的流量都被强制通过电子吊桥(防火墙),如图8-29所示。


图8-29 防火墙由两个数据包筛选器和一个应用程序网关组成









此外,还有一类防火墙无法处理的攻击。防火墙的基本思想是防止入侵者进入和秘密数据出来。不幸的是,有些人没有什么比试图让某些网站失效更好的事情了。他们通过在目标上大量发送合法数据包直到它在负载下崩溃来实现这一点。例如,为了削弱网站,入侵者可以发送TCP SYN数据包以建立连接。然后,该站点将为连接分配一个表槽,并发送一个SYN ACK数据包作为回复。如果入侵者没有响应,表格插槽将被绑定几秒钟,直到它超时。如果入侵者发送了数千个连接请求,则所有表槽都将填满,并且没有合法的连接可以通过。入侵者的目标是关闭目标而不是窃取数据的攻击被称为DoS(拒绝服务)攻击。通常,请求数据包具有错误的源地址,因此无法轻易跟踪入侵者。



原文和译文剩余内容已隐藏,您需要先支付 20元 才能查看原文和译文全部内容!立即支付