10.3 通信信道加密
这是一个典型的Alice—Bob问题:Alice想传送一个安全的消息给Bob,她怎样去做?她将消息加密。
理论上,加密可以在OSI(开放系统互连)通信模型的任何层进行。(更多信息参见OSI安全结构标准)事实上,加密一般在最底层(第一或第二层)或较高层。如果在最底层就称为链-链加密,通过特定数据连接的任何数据都要被加密。如果发生在较高的层就称为端-端加密,数据被选择性加密,并且只在最后的接收端进行解密。两种方法各有优缺点。
链—链加密
最容易加密的地方是在物理层(见图10.1),这叫做“ 链—链”加密。通常物理层接口是标准的,并且在此处最容易连接硬件加密设备。这些设备对通过它们的所有数据进行加密,包括数据、路由信息、协议信息等,它们可以被用于任何类型的数据通信链路上。另一方面,发送端与接收端之间的任何智能交换或存储节点都必须在处理这些数据流之前对其进行解密。
图 10.1 链路加密
这种类型的加密是非常有效的,因为任何东西都被加密,密码分析者得不到任何关于消息结构的信息,他们不知道谁正跟谁通话,发送消息多长,哪天进行的通信等等,这叫做“流量保密”。敌人不仅不能存取消息,而且也不知道消息的出处与去处。
系统安全性不依赖于任何传输管理技术。密钥管理也简单,仅仅是两端需要共同的密钥,他们可以独立于网络其他部分而更换密钥。
设想一个用1比特CFB加密的同步通信线路。在初始化后,线路可以无限的运行,比特和同步错误被自动恢复。无论什么时候有消息从一端发往另一端线路都被加密,没有消息时就加解密随机数据。Eve不知道什么时候发送消息什么时候不发,也不知其开始与结束。她所见的只是无穷无尽的看上去随机的比特流。
如果通信线路是异步的, 1比特CFB模式同样可以使用。不同的是敌方可以知道信息的传输率,如果这个信息必须隐蔽,那么必须做些防备,以使消息在空余时间悄悄传过。
物理层加密的最大问题是:网络中每个物理链路都必须加密,如果有一处没加密就会危及整个网络的安全,如果网络很大,这类加密的开销会变得很大,以致于限制了它的实施。
另外,必须保护网络中每个节点,因为它处理未加密的数据。如果网络中每个用户都相互信任,并且每个节点都很安全,这或许可以接受。但这是不可能的,即使在一个公司里面,信息可能必须在某个部门里保密,如果网络偶然将信息发错了路线,任何人都可以看到它。表10.2是链-链加密的优缺点。
端—端加密
另一种处理是将加密设备放在网络层和传输层之间,加密设备必须根据低三层的协议理解数据,并且只加密传输层的数据单元。这些加密的数据单元与未加密的路由信息重新结合,然后送到下一层进行传输。
表 10.2 链—链加密:优缺点
优点: |
易操作,因为它对用户是透明的。即,在通过链路传送之前所有数据都被加密。每一次连接仅需要一组密钥。因为任何路由信息都被加密,所以能够提供安全的通信流。加密是在线的。 |
缺点: |
在介质间节点数据被暴露 |
这种处理避免了在物理层中出现的加解密问题。通过“端—端”加密,数据一直保持加密状态,直到到达目的地才被解密(见图10.2)。端—端加密的主要问题是路由信息未被加密;一个好的密码分析者可以据此知道谁和谁通信,何时以及有多长,而并不需要知道通信内容。其次,密钥管理也很困难,因为每个用户必须确保他们与其他人有共同的密钥。
制造端—端加密设备是困难的。每一个特殊的通信系统有其自身的协议,有时在这些层的接口没有很好的定义也使任务更加困难。
如果加密发生在通信系统的高层,象应用层或表示层,那么它可以独立于网络所用的通信结构。它仍是端—端加密,但加密实现并不扰乱线路编码、两个调制解调器间的同步、物理接口等等。在早期的电子机械密码体系中,完全是脱线加解密,这里只是向前走了一步。
在这些层加密会与相应层的软件相互作用。这些软件对不同的计算机结构是不同的,因而必须针对不同的计算机系统,通过软件自身或特殊的硬件进行加密。后一种情况下,计算机在发送到低层进行传输之前数据必须用特殊的硬件加密。这种处理需要智能终端而不适合非智能终端,另外可能还有各种不同计算之间的兼容问题。
端—端加密的最大缺点是它允许流量分析。流量分析主要分析:数据从哪里来到哪里去,传送多长时间,什么时候发送,发送频繁程度,是否与其它事件如会议等有关联等等。大量有用的信息埋藏在传送的数据中,密码分析者可得到很大帮助。表10.3列出端对端加密的正反两面。
图 10.2 端对端加密
表 10.3 端—端加密:优点与缺点
优点: |
更高的保密级别 |
缺点: |
需要更复杂的密钥管理系统。流量分析是可能的,因为路由信息未被加密。离线加密。 |
两者的结合
表10.4,主要摘自文献[1244],对上面两种加密进行了比较。将端—端与链—链加密相结合,尽管很昂贵,却是一种有效的网络安全方法,加密每个物理链路使得对路由信息分析成为不可能,而端—端加密减少网络节点中未加密数据处理带来的威胁。对两种方案的密钥管理可以完全分开:网络管理人员可以只关心物理层,而每个用户只负责相应的端—端加密。
表 10.4 链-链加密与端-端加密的比较
|
链-链加密 |
端-端加密 |
主机内部 安全性 |
发送主机内部数据暴露 交换节点数据暴露 |
发送主机内部消息被加密 在交换节点数据被加密 |
使用规则 |
发送主机使用 对用户不可见 主机保持加密 对所有用户便利 可以硬件完成 或者所有或者没有消息被加密 |
发送过程使用 用户实现加密 用户必须挑选算法 用户选择加密 软件更易完成 对每一条消息用户可选择加密或者否 |
有关实现 |
每一主机对需要一个密钥 每一台主机需要加密硬件或软件 提供节点验证 |
每一用户对需要一个密钥 在每一个节点需要加密硬件或软件 提供用户验证 |