2.4 网络加密技术
在计算机网络中,信息加密的目的是保护网内的数据、文件、口令和控制信息,保护网上传输的数据。信息加密可分为两种,在传输过程中的数据加密称为“通信加密”,将存储数据进行加密称为“文件加密”。
通信加密技术的目的是对传输中的数据流加密,以防止通信线路上的窃听、泄露、篡改和破坏。
如果以加密实现的通信层次来区分,加密可以在通信的三个不同层次来实现,即节点加密、链路加密和端到端加密3种。其中,节点加密的目的是对源节点到目的节点之间的传输链路提供保护。链路加密的目的是保护网络节点之间的链路信息安全。端到端加密的目的是对源端用户到目的端用户的数据提供保护。用户可根据网络情况酌情选择这几种加密方式。
2.4.1 链路加密
链路加密是目前最常用的加密方法,通常用硬件在网络层以下(1,2层)的物理层实现,它用于保护通信节点间传输的数据。这种加密方式比较简单,实现起来比较容易,只要把一对密码设备安装在两个节点间的线路上,即把密码设备安装在节点和调制解调器之间,使用相同的密钥即可。用户没有选择的余地,也不需要了解加密技术的细节。一旦在一条线路上采用链路加密,往往需要在全网内都采用链路加密。如图2-18所示是这种加密方式的原理图。
图2-18 链路加密
链路加密方式对用户是透明的,即加密操作由网络自动进行,用户不能干预加密/解密过程。这种加密方式可以在物理层和链路层实施,主要以硬件完成,它用以对信道或链路中可能被截获的那一部分进行保护。这些链路主要包括专用线路、电话线、电缆、光缆、微波和卫星通道等。
链路加密按被传送的数字字符或位的同步方法不同,分为异步通信加密和同步通信加密两种,而同步通信按字节同步还是按位同步,又可分为两种。
(1)异步通信加密:异步通信时,发送字符中的各位都是按发方数据加密设备(DEE)的时钟所确定的不同时间间隔来发送的。收方的数据终端设备(DTE)产生一个频率与发方时钟脉冲相同,且具有一定相位关系的同步脉冲,并以此同步脉冲为时间基准来接收发送过来的字符,从而实现收发双方的通信同步。
异步通信的信息字符由1位起始位开始,其后是5~8位数据位,最后是1位或2位终止位,起始位和终止位对信息字符定界。对异步通信的加密,一般起始位不加密,数据位和奇偶校验位加密,终止位不加密。目前,数据位多用8位,以方便计算机操作。如果数据编码采用标准ASCII码,最高位固定为0,低7位为数据,则可对8位全加密,也可以只加密低7位数据。如果数据编码采用8位的EBCDIC码或图像与汉字编码,因8位全表示数据,所以应对8位全加密。
(2)字节同步通信加密:字节同步通信不使用起始位和终止位实现同步,而是首先利用专用同步字符SYN建立最初的同步。传输开始后,收方从传送过来的信息序列中提取同步信息。
为了区别不同性质的报文(如信息报文和监控报文),以及标志报文的开始、结束等格式,各种基于字节同步的通信协议均提供一组控制字符,并规定了报文的格式。信息报文由SOH、STX、ETX和BCC四个传输控制字符构成,它有以下两种基本格式:
一个是有报头形式,如图2-19所示:
图2-19 有报头的报文
一个是无报头形式,如图2-20所示:
图2-20 无报头的报文
其中,控制字符SOH表示信息报文的报头开始;STX表示报头结束和正文开始;ETX表示正文结束;BCC表示校验字符。对字节同步通信信息报文的加密,一般只加密报头、报文正文和校验字符,而对控制字符不加密。
(3)位同步通信加密:基于位同步的通信协议有ISO推荐的HDLC(High Level Data Link Control)、IBM公司的SDLC和ADCCP。除了所用术语和某些细节外,SDLC和ADCCP与HDLC原理相同。HDLC以帧作为信息传输的基本单位,无论是信息报文还是监控报文,都按帧的格式进行传输。帧的格式如图2-21所示:
图2-21 帧格式
其中,F为标志,表示每帧的头和尾;A为站地址;C为控制命令和响应类别;I为数据;FCS为帧校验序列。HDLC采用循环冗余校验。对位同步通信的加密,除标志F以外全部加密。
这种加密方式有两个缺点:一是全部报文都以明文形式通过各节点的计算机中央处理机,在这些节点上数据容易受到非法存取的危害;二是由于每条链路都要有一对加密/解密设备和一个独立的密钥,因此成本较高。
2.4.2 节点加密
节点加密是链路加密的改进,其目的是克服链路加密在节点处易遭非法存取的缺点。在协议运输层上进行加密,是对源点和目标节点之间传输的数据进行加密保护。它与链路加密类似,只是加密算法要组合在依附于节点的加密模块中,其加密原理如图2-22所示。这种加密方式除了在保护装置内,即使在节点内也不会出现明文。这种加密方式可提供用户节点间连续的安全服务、也可用于实现对等实体鉴别。
图2-22 节点加密
节点加密也是每条链路使用一个专用密钥,但—个密钥到另—个密钥的变换是在保密模块中进行的。这个模块设在节点中央处理装置中,可以起到一种外围设备的作用。所以,明文数据不通过节点,而只存于保密模块中。
2.4.3 端对端加密
网络层以上的加密,通常称为端对端加密,端对端加密是面向网络高层主体进行加密,即在协议表示层上对传输的数据进行加密,而不对下层协议信息加密。协议信息以明文形式传输,用户数据在中间节点不需要解密。端对端加密一般由软件来完成。在网络高层进行加密,不需要考虑网络低层的线路、调制解调器、接口与传输码,但用户的联机自动加密软件必须与网络通信协议软件完全结合,而各厂家的通信协议软件往往又各不相同,因此目前的端对端加密往往是采用脱机调用方式。端对端加密也可以用硬件来实现,不过该加密设备要么能识别特殊的命令字,要么能识别低层协议信息,而仅对用户数据加密。硬件实现往往有很大的难度。在大型网络系统中,交换网络在多个发方和收方之间传输的时候,用端对端加密是比较合适的。端对端加密原理如图2-23所示。
图2-23 端对端加密
端对端加密具有链路加密和节点加密所不具有的优点。其一是成本低,由于端对端加密在中间任何节点上都不解密,即数据在到达目的地之前始终用密钥加密保护着,所以仅要求发送节点和最终的目标节点具有加密/解密设备,而链路加密则要求处理加密信息的每条链路均配有分离式密钥装置;其二,端对端加密比链路加密更安全;其三,端对端加密可以由用户提供,因此对用户来说这种加密方式比较灵活。采用端对端加密,其控制中心的加密设备可对文件、通行字以及系统的常驻数据起到保护作用。然而,由于端对端加密只是加密报文,数据报头仍需保持明文形式,所以数据容易为密钥分析者所利用。另外,端对端加密所需的密钥数量远大于链路加密,因此对端对端加密而言,密钥管理是一个十分重要的课题。