概念
端到端加密是在源结点和目的结点中对传送的PDU进行加密和解密,因此报文的安全性不会因中间结点的不可靠而受到影响。
端到端加密不仅适用于互联网环境,而且同样也适用于广播网。
在端到端加密的情况下,PDU的控制信息部分不能被加密,否则中间结点就不能正确选择路由。这就使得这种方法易于受到通信量分析的攻击。虽然也可以通过发送一些假的PDU来掩盖有意义的报文流动,但这要以降低网络性能为代价。由于各结点必须持有与其他结点相同的密钥,这就需要在全网范围内进行密钥管理和分配。
为了获得更好的安全性,可将链路加密与端到端加密结合在一起使用。链路加密用来对PDU的目的地址B进行加密,而端到端加密则提供了端对端的数据进行保护。1
端到端加密应在运输层或其以上各层来实现。若选择在运输层进行加密,可以使安全措施对用户来说是透明的。这样可不必为每一个用户提供单独的安全保护,但容易遭受运输层以上的攻击。当选择在应用层实现加密时,用户可根据自己的特殊要求来选择不同的加密算法,而不会影响其他用户。这样,端到端加密更容易适合不同用户的要求。端到端加密不仅适用于互联网环境,而且同样也适用于广播网。2
在端到端加密下的若干措施端到端加密更适合OSI环境,但体系结构也更加复杂,尤其采用网内密钥分配时更是如此。
对于防止析出报文内容的措施,当然应直接采用加密技术。若加密在会话层或应用层完成,则所有的传输层控制信息对攻击者来说都是可知的。若加密由传输层来完成,则仅仅在网络层及以下各层的控制信息是暴露的。若加密由网络层来完成,则网络层协议控制信息对网络层的PDU所通过的每一个节点都是不可知的,因而中间节点无法正确选择路由。所以网络层一般不能提供端到端保护。这样,传输层就是实现端到端加密的最低层。
一次连接使用一个不同的密钥是反攻击的一个有力措施。采用不同的加密方式还可进一步掩盖数据的模式。
抗击通信量分析的措施涉及掩盖协议实体之间的报文交流的频率、分组长度等。适当的链路加密能防止各种通信量分析,但端到端加密很难做到这一点。
若加密在传输层完成,攻击者就只能在网络地址这一级观察数据模式。换言之,攻击者能够知道哪一些传输层实体在交换信息,但却不知哪些高层实体在交换信息。
掩盖网络地址模式在OSI环境中是不可能的。要做到这一点将涉及到用全网范围的一个密钥对网络层的PDU的实际目的地址进行加密,并将这些PDU送交网络中的所有主机。这当然会使网络的有效宽带急剧下降,并浪费大量主机处理能力。因此,端到端加密实际上只能在传输层及其以上各层实现。
对于更改报文流的抗击就是要检测报文的完整性、真实性和有序性。这里最基本的是要保证报文的完整性。在通信协议中的差错检验码可以用来检测PDU由于传输错误而造成的报文更改,但这不能防止对PDU完整性的蓄意攻击。这时必须采用鉴别技术。例如,可以在报文中插入报文鉴别码MAC,它是报文和密钥的密码函数。如果报文被篡改了,那么在接收到的报文重新计算MAC时,几乎就不可能得到与发送一致的MAC。
为了保证报文的真实性,应使收方实体能可靠地确定一个PDU所在的连接及其传送方向。为此,应在所有时间内使每一个连接都有一个唯一1标识符,并将此标识符回到通过这个连接的每一个PDU上。利用这个唯一的标识符就能可靠地确定PDU所属的连接。若每一个连接都使用不同的密钥,则此密钥就可以提供一个隐含的唯一标识符。
为了防止对有序性的攻击,可在每一个PDU中增加一个序号,同时不得在某个连接唯一标识符存在期间重复使用该序号。对序号重复使用的限制,防止了攻击者在序号循环后重复一个旧的PDU。
对于拒绝报文服务,发送PDU的实体能够检测到这种攻击,但却无法通知对方。
要检测出这类攻击需要增加一个请求应答机构,此机构要求双方实体周期性地交换一对PDU,以确定双方之间是否存在一条通路。
伪造连接初始化攻击有两种,一是以假身份建立一个连接,另一种重发一个以前是合法的连接初始化序列的记录。
要抵抗一种攻击,可使连接必须按照某种方法来建立。双方已知的密钥加密就含有鉴别的隐含信息。只有已知密钥的人员才能对信息加密和解密。要抵抗第二种攻击,连接初始化必须有一个鉴别连接时间完整性的机构或方法,即验证初始化过程是否是实时的。3