主页(http://www.pttcn.net):TETRA数字集群系统端到端保密通信的实现
[摘要] 文章研究了TETRA数字集群系统的端到端保密通信技术,通过分析TETRA系统所面临着的安全威胁,提出了一种端到端加密的设计方案,包括密钥管理及移动台端到端的加密通信,实现了TETRA集群系统内从发送端用户到接收端用户间的信息通信全程保密。
[关键词] 数字集群系统;保密通信;密钥管理
[英文摘要]By analyzing the threats that the TETRA system is facing, this paper outlines end-to-end communication encryption technologies and proposes an end-to-end encryption solution, including the key management and communication encryption of mobile stations. This solution can implement end-to-end encrypted communication from sender to receiver in a TETRA trunked system.
[英文关键字] digital trunked system; encrypted communication; key management
TETRA数字集群通信系统是基于数字时分多址(TDMA)技术的专业移动通信系统,该系统是欧洲通信标准协会(ETSI)为了满足欧洲各国的专业部门对移动通信的需要而设计、制定的具有统一标准的开放性系统。TETRA数字集群系统不仅提供多群组的调度功能,而且还可以提供短数据信息服务、分组数据服务以及数字化的全双工移动电话服务。TETRA系统还支持功能强大的移动台脱网直通(DMO)通信方式[1,2]。
获得广泛应用的模拟集群通信系统和GSM蜂窝网的通信保密与信息安全问题一直没有得到有效解决,TETRA通信系统的通信保密与信息安全功能更是难以满足要求,所以TETRA通信系统的通信保密与信息安全功能是系统设计者亟需解决的重要问题。
通常TETRA数字集群系统的终端设备与网络设施之间的无线接口可能受到以下安全威胁:
(1)非法窃听
攻击者通过对无线信道的监听来获取传输的消息,甚至进行被动或主动流量分析。
(2)非授权访问数据
攻击者伪装成合法用户访问网络资源,以期达到破坏目的;或者攻击者违反安全策略,利用安全系统的缺陷非法占有系统资源和访问本应受保护的信息。
(3)破坏数据的完整性
攻击者可能修改、插入、重放或删除无线链路上合法用户的数据或信令数据。
(4)拒绝服务攻击
攻击者通过在物理上或协议上干扰用户数据、信令数据或控制数据在无线链路上的正确传输,来实现无线链路上的拒绝服务攻击。
针对以上的一些安全威胁,一些TETRA系统实现了系统功能和安全保密功能的一体化设计,现已经具有鉴权及空中接口加密功能,并支持端到端加密,端到端加密一般由用户自行设计实现[3]。
鉴权功能可实现用户和网络设施间的单向或双向鉴权,用于防止非法用户接入系统和合法用户接入假冒系统,可解决非授权访问数据与拒绝服务攻击的威胁。空中接口加密用于对基站和移动台间无线信道上的信息数据和信令进行加密保护,并保证信息不被重播,可部分解决非法窃听与破坏数据的完整性的威胁。空中接口加密只能够在无线链路上对用户语音数据加密,并保护信令数据不被分析,但用户的数据信息在网络设施中是未加密的,端到端加密可以解决这个问题[4]。
本文提出一种端到端加密的设计方案,该方案不仅能有效地解决非法窃听的问题,还可解决破坏数据完整性的问题。
1 TETRA端到端加密方案系统框架
TETRA数字集群系统由移动台(MS)、基站(BS)、调度台(DWS)、交换机(DXT)及TETRA互联服务器(TCS)等构成,端到端加密的密钥管理中心(KMC)作为TCS的应用开发系统连接到TETRA系统中。TETRA端到端加密方案的系统框架如图1所示。
在标准TETRA系统中实现端到端加密功能,必须实现如下两方面的工作:
(1)在TETRA系统中建立一个密钥管理中心,密钥管理中心通过互联服务器的应用编程接口(API)与TETRA系统相连,通过空中接口以短数据的方式为移动台分发通信密钥(TEK)。此外密钥管理中心负责密钥的产生、存储及增删功能。
(2)对TETRA终端设备进行改造,使其能够接受并响应密钥管理中心的密钥管理空中密钥分发(OTAK)消息,并利用通信密钥来进行端对端加密,这里的端到端指的是移动台与移动台之间或移动台与调度台之间。
2 端到端加密算法
在端到端加密的设计中需要使用4个密码算法,即语音数据加密算法、通信密钥加密算法、同步帧完整性算法以及密钥管理消息加密算法。
(1)语音数据加密算法
语音及短数据加密采用流密码算法,该加密算法中的通信密钥和初始向量(IV)的长度要求不小于64位,分组数据长度为64位。
(2)通信密钥的加密算法
通信密钥的加密算法的加密强度应当不低于语音数据加密算法的加密强度,为此其密钥的长度不小于64位,分组数据长度为64位。
(3)同步帧完整性算法
为了保证端到端加密中同步帧的完整性,在同步帧中包含一个加密的校验和,该校验和抽取帧的几个部分,并由校验和的生成算法循环冗余校验(CRC)和通信密钥共同计算得到。同步帧完整性算法的密钥长度不小于64位,分组数据长度为64位。
(4)密钥管理消息加密算法
密钥管理消息加密算法是一个工作于密码分组链接(CBC)模式的分组加密算法,加密密钥长度不小于64位,分组数据长度不少于64位。
由于TETRA应用领域的特殊性,端到端加密中使用的加密算法可以是用户自行开发的加密算法,也可以是国家、军队或行业准许的加密算法,密钥长度也可由用户自行规定。
3 端到端加密的密钥管理
端到端加密的密钥管理由密钥管理中心实现。密钥管理中心负责通信密钥的生成、分发及增删。
3.1 通信密钥的生成
密钥管理中心利用用户自行设计的密钥生成算法生成通信密钥,并用密钥标识(KEYID)来标识相应的通信密钥。将这些KEYID每16个编成一个密码组,并将密码组与通话组相关联。这样在这个通话组的移动台可以用密码组的当前版本的通信密钥对语音或短数据消息进行加密通信。
3.2 通信密钥的分发
密钥管理中心作为TETRA互联服务器的客户端,通过空中接口以短消息的方式为移动台分发通信密钥,这种方式称为空中密钥分发。通信密钥有几个不同版本(即以前使用的通信密钥、正在使用的通信密钥和即将使用的通信密钥),这些通信密钥由加密算法加密后进行传输,加密密钥为该移动台的主密钥(KEK)或组密钥(GEK),这里的主密钥是通过带外的硬件接口载入的,它也被用来加密GEK和信令加密密钥(SEK)。
一个特定组的通信密钥可以使用这个组的组密钥进行加密,密钥管理消息使用信令加密密钥进行加密。OTAK使用TETRA短数据服务(SDS)进行密钥的分发,在TETRA标准中用一个协议标识(PID)来指定该消息的类型。由于移动台可能关闭或不在网络内,KMC必须要判断来自移动台的操作的正确应答,并记录哪些移动台已经接收到密钥更新的命令。
移动台分配新密钥和管理通信密钥时,OTAK消息是由移动台的SEK作为密钥并用密钥管理消息加密算法进行加密的。OTAK消息集里有一个MS_SIGNAL消息,当移动台开机或重新进入网络时会向KMC发送这个消息。KMC可以利用这个机会来更新移动台中的密钥(因为有的移动台可能长时间处于网外而错过了以前的密钥更新消息)。
移动台会解密并且验证任何收到的OTAK SDS消息。每个消息都以密钥标识来标识某个通信密钥。KEYID以明文方式放在消息的KEY字段中,使得接收端移动台能够选择正确的密钥去解密收到的消息。
3.3 通信密钥的增删
当一个通话组发生变化时,如一个新的移动台加入该通话组,则KMC将与该通话组相关联的密码组通过OTAK消息分发给该移动台。若一个移动台退出通话组,则KMC将重新分发该通话组所对应的密码组。
3.4 密钥管理的安全性分析
在安全性要求很高的场合,推荐所有KMC中保存的通信密钥和GEK都预先经过KEK加密。虽然这意味着密钥在分发时要经过KEK和SEK双重加密,但是它保证了KMC中不可能获得明文形式的通信密钥,提高了密钥存储的安全性。
加密后的OTAK SDS消息可以被发送到特定的移动台,也可以广播给一组移动台。所有的消息都有序列号、源与目的地址和一个全部数据的CRC校验。这为防御重放和假冒攻击提供了保证。
4 端到端加密的保密通信
一个移动台可以有多个通话组,同样也有相应的密码组。移动台可以与同一通话组的移动台进行保密通信,即在与通话组相关联的密钥组中找到当前版本的通信密钥,对语音和短数据进行加密传送。接收端移动台则根据同步帧中的密钥标识找到相应的密钥对接收的消息进行解密。
4.1 端到端语音加密通信
具体的端到端语音加密的过程如图2所示。图2中虚线左侧是发送移动台的加密过程,右侧是接收移动台的解密过程。语音数据加密算法有通信密钥和初始向量两个输入,生成一个连续的密钥流,该密钥流与语音编解码器(CODEC)输出的语音数据流异或后得到在TETRA系统中传输的加密语音。为了让接收移动台能够正确解密加密后的语音,同步初始向量被加入到数据流中。与发送端正好相反,接收端检测到同步帧,取出同步帧中的同步向量,将该向量传给本地的密钥流产生器,从而完成与发送端的同步。
同步帧中还包含有密钥标识及加密算法标识等附加单元,使得接收端能够根据这些单元选择端到端语音加密的密钥及加密算法。另外两个单元——时间戳、密码校验和则被用于保证防止重放攻击和保证同步帧的完整性。
4.2 端到端短数据加密通信
如同在GSM系统中一样,TETRA系统也支持SDS,短数据消息可以是用户自定义的消息或是状态报告(状态报告是预定义的消息)。TETRA系统所定义的SDS类型Ⅳ可发送最多达2 047不定长位的短数据。进行加密和完整性校验前后的短数据消息内容如图3所示。
加密的过程与端到端语音加密类似,明文短数据消息与密钥流(KSS)生成算法所输出的KSS相异或得到密文消息,加密算法E5是流密码算法,它有通信密钥和初始化向量两个输入。它产生一个连续的密钥流,并把密钥流与短数据明文进行异或计算,得到密文流。安全校验和(CCSUM)与其加密控制数据(ECD)组成同步向量,该向量是不保密的,不必加密。通过CCSUM可以验证短数据的完整性。该校验和的生成需要TEK作为密钥,攻击者无法获得该密钥,故无法伪造短数据消息并重新计算校验和。算法E6是短数据完整性校验算法,是一种工作在CBC模式的分组密码算法,如图4所示。整个SDS消息被划分成64比特的分组,每个分组经过E6加密后又作为下一分组加密的输入,最后产生64比特的数据。
因为输入短数据是变长的,在加密计算之前应该使短数据消息成为加密分组的整数倍。同步向量中应包含所有必要的信息使得合法的接收端能解密短数据。在ECD单元的数据包含算法E5和初始向量,并让接收端知道使用了哪个加密算法及密钥,当然直接传送的不是密钥而是一个密钥标识号。虽然攻击者无法知道数据包内容,但他也许会分析这是哪类数据(许多通信协议在协议头中包含协议的类型)。在SDS类型Ⅳ的协议包头中是协议标识,为了防止攻击者得到相关的有用信息,未加密的短数据消息的原协议标识(O-PID)以一个编码的格式传送,即由一个新的协议标识来替代。获得新协议标识对攻击者是无用的,它只表示一个编码的短数据消息被加密传送。为了确认一个短数据消息通信成功,在SDS机制中有一个确认服务。如果短数据通信不成功,SDS消息的接收端将不发送确认消息或者发送失败消息。
5 结论
在TETRA系统的端到端加密中,集群系统不参与密钥的产生和管理,也不规定加密算法,只提供透明传输通路。端到端加密在TETRA集群系统的用户面进行,集群终端设备应具有和端到端加密单元间的电气接口和物理接口,以便于把端到端加密单元装入终端设备中。本文提出一种端到端加密的设计方案,实现了TETRA集群系统内从发送端用户到接收端用户间的信息通信全程保密,可用于对通信安全有特别严格要求的场合。
6 参考文献
[1] SJ/T11228-2000. 数字集群移动通信系统体制 [S]. 2000.
[2] 郑祖辉, 鲍智良. 数字集群移动通信系统 [M]. 北京: 电子工业出版社, 2001.
[3] 虞忠辉. TETRA 数字集群移动通信系统的安全保密 [C]. 全国数字集群技术发展研讨会,北京, 2000.
[4] ETS300 392-7. Radio Equipment and System (RES), Trans-European Trunked Radio (TETRA), Voice Plus Data (V+D), Part7: Security [S]. 1996.
(中国集群通信网 | 责任编辑:陈晓亮) |