3 ATM网络安全业务的实现
3.1安全消息交换协议
在ATM安全规范中给出了与密码算法无关的安全消息交换协议,用于实体的认证、会话密铭的分配及安全参数的协商,因而是其它安全业务的基础。根据不同的应用场合,可采用三次交换(Three-Way)协议或二次交换(Two-Way)协议。
安全消息交换协议可以采用基于信令的方式实现,即在原有的UNI(用户网络接口)和NNI(网间接口)接口信令数据单元中带上安全消息交换协议的数据,也可以利用原有信令系统建立连接后采用随路(in-hand)方式在用户建立的连接上实现。目前,UNI4.0和PNNI(专用网间接口)都已支持基于信令的安全消息交换协议(3,4),但是只支持二次交换协议。如前所述,由于二次交换协议需要的系统时钟同步困难较大,所以,我们认为安全消息交换协议应采用随路方式的三次交换协议。
ATM的安全业务是面向连接的,它不仅支持SVC(交换虚电路)连接,同时也支持PVC(固定虚电路)连接,其密钥分配、实体认证和访问控制等都是针对各个连接实施的。安全消息交换协议是在连接建立时(基于信令)实现的,或者在连接建立后,开始用户数据传输之前执行安全消息交换协议(随路)。对于由网管系统建立的PVC连接,要求网管系统建立PVC连接后立即启动安全消息交换协议,完成安全信息交换后再开始正常的用户数据传输。由于PVC是通过网管系统来建立和管理的,因而基于PVC方式的安全消息交换协议的实现与PVC建立机制有关,对系统的互连互通没有太大的影响,在实现上有较大的灵活性,目前ATM安全规范对此未做详细规定,在实现时可根据具体网络环境确定。3.2用户平面安全业务的实现
在目前的ATM安全规范中,用户平面的安全业务包括实体认证、保密性洗整性和访问控制。
实体认证业务用于连接建立时保证通信双方身份的真实性,防止假冒攻击,因而它也是密钥分配。安全参数协商及访问控制业务实现的基础。ATM的认证是基于虚电路的(VC或VP),即根据各个虚电路的要求决定是否需要做认证,并且认证是在连接建立时进行的。在ATM安全规范中,实体的认证是通过安全消息交换协议完成的;签名算法可以是公开密钥签名算法(如RSA、DSA、ESIGN和类似DSA的椭圆曲线算法),也可以是秘密密钥签名算法(如DES、DES40、三重DES和 FEAL),但是秘密密钥签名算法只能采用CBC模式; Hash函数可以采用MDS、SHA-1或RIPEMD-160。
秘密密钥签名算法要求通信的双方要共享签名密钥(用于签名和验证),目前的ATM安全规范假设在连接建立前双方已经有了共享的签名密钥。在实现上,除了特殊的应用环境,任何一方不应该掌握其他实体的签名密钥。通常,基于秘密密钥的认证过程都是借助于可信的第三方完成的,因此认证过程需要三方交互,这在ATM面向连接的机制中是难于实现的, ATM安全规范也未给出相应的说明。从密钥管理的角度看,我们认为在ATM网中应该采用公开密钥签名算法。
保密性业务就是采用加密算法对信息加密,以保证存储和传输的信息不被泄露。ATM安全规范规定数据加密在ATM层实现,即在信元级对信元的净负荷加密,加密算法采用秘密密钥算法(DES、DES40、三重DES和FEAL)实现,工作方式可以是CBC、ECB和计数器方式。从安全性可实现性考虑应该首选计数器方式。
计数器方式的加解密运算按流密码方式对信息进行加解密运算。首先用会话密钥对状态向量按所选定的加密算法进行加密,然后利用加密结果对明文信息进行按位异或,加密完一个信元更新一次状态向量。解密运算只要对密文再做一次异或操作即可恢复明文。与其他方式相比,计数器方式具有运算速度高、多个数据块可并行处理等优点。但是,加解密双方的状态向量必须相同,其更新必须同步进行,丢失一个信元将导致双方状态向量更新的不同步,因而必须有相应的同步机制,保证收发双方的同步。
完整性业务是在AAL层实现,目前只定义了AAL3/4和AAL5的实现机制。数据完整性是通过在AAL层公共部分的业务数据单元(SDU)中附加消息认证码(MAC)来实现。做为可选项,完整性业务可分为带或不带重播攻击保护两种方式,前者在SDU中再附加上六字节的序列号,并且保证在会话密钥更换前序列号不能重复。所用的签名算法可在连接建立时协商,目前ATM安全性规范给出了七种可选的签名算法,它们是HMAC-MD5、HMAC-SHA-1、HMAC-RIPEMD-160、DES/CBC MAC、DES40/CBC MAC、三重DEC/CBC MAC和FEAL/CBC MAC。
访问控制根据网络配置参数和安全消息交换协议中的数据,在连接建立时实施。与其它类型的网络相比,ATM网络由于具有QoS保证的特点,因而访问控制尤为重要,没有可靠的访问控制机制就不可能提供完善的QoS保证。
ATM安全规范采用的是基于标记的访问控制机制,标记信息是在安全消息交换协议中传送。基于标记的访问控制是根据敏感性等级(Sensitivity Level)来实施控制的。敏感性等级包括一个呈线序关系的级别和一组访问类型,因而敏感性等级构成一偏序关系。在ATM访问控制机制中,每个端口规定了可建立连接的敏感性等级范围,每个连接赋予特定的敏感性等级,根据端口可接受的敏感性等级范围确定是否允许建立连接。3.3控制平面安全业务的实现 控制平面的安全性将影响网络的状态甚至危及网络的正常运行,因而控制平面的安全性是网络安全性的重要保证。控制平面面临的主要的威胁包括服务拒绝、伪造及恶意修改信令数据,如通过插入RELEASE或DROP PARTY断开一个合法的连接。因而,对控制平面而言,最重要的安全性业务是认证和完整性,保证信令数据来源的真实性和数据的完整性(未被恶意修改)。控制平面的安全性业务的实现与用户平面安全性业务的实现类似,同时,又有一定的特殊性。
·认证和数据完整性业务是在SAAL SDU上实现;
·必须带有防重播保护(不是可选项);
·是否提供认证和数据完整性业务及所用的算法和相应参数是固定配置的,无法通过双方协商确定;
·双方必须通过预先配置的方法设置共享的主密钥及初始会话密钥;
·会话密钥的更新方式、算法及所需的参数必须预先设定。
3.4会话密钥更换与同步
为了实现会话密钥的更新与同步,目前ATM安全规范定义二个用于安全业务的OAM(操作管理维护)信元流F4和F5,F4用于VP连接而F5用于VC连接。会话密钥的更新过程包括会话密钥的交换SKE(Session Kev Exchange)和会话密钥更换 SKC(Session Key Changeover)二个过程,在F4和F5流中分别定义了SKE和SKC信元。SKE给出了新的会话密钥,而新的会话密钥的启用则由SKC信元控制。ATM安全规范规定SKC信元的下一个信元即采用新的密钥,因而,收端在收到SKC信元后立即更新其会话密钥。SKE和SKC信元关系到通信双方加解密能否同步,而信元的传送又没有确认过程,所以采用重复发送三次的方式保证SKE和SKC信元的可靠传送。
保密性业务是在ATM层实现,因而加密密钥的更换可由发送端决定在任何时刻进行,而完整性业务由于是在AAL层实现,因而必须在一个AAL SDU传送完毕时才能更换完整性密钥,否则,将出现收发双方所用的密钥不一致。对于完整性业务,SKE信元同样可在任意时刻发送,而SKC信元必须在一个完整的AAL SDU传送完毕时才能发送。
从安全性考虑,数据加密方式必须采用带有反馈机制(如计数器方式和CBC方式)。但是,带有反馈机制的加密方式要求收发双方必须可靠地同步,信元丢失将导致接收端无法正确地解密,因而必须有相应的同步机制。ATM安全规范在SKC信元中定义了相应的同步信息,利用周期性地发送SKC信元保证收发双方加解密的同步。 收发双方同步的周期(发送SKC信元的间隔)取决于所建连接的传送速度和信元丢失率CLR以及所需的QoS参数。例如,对于622Mbit/s的连接,若CLR=10-4,则每秒将丢失142个信元,信元的丢失导致加解密不同步,因而将产生更多的信元丢失。因而,通常选择同步速率为信元丢失速率(每秒丢失信元数)的10倍,即
同步速率=CLR×传送速率×10
对于622Mbit/s的连接,若CLR=10-4,则同步速率应为1417次/秒,即同步信元的间隔为0.7ms。
由于AAL1和AAL3/4带有3/4比特的信元顺序号,因而具有一定的自同步功能,当连续丢失的信元数小于7/15个时,加/解密双方任能保持同步。对于AAL5,由于任何信元的丢失将导致整个AAL SDU数据的丢失,因而在AAL SDU中间的再同步作用不大,所需的同步速率可根据实际情况确定。