具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明作进一步详细说明。
参加图1,为本发明基于短信对3G设备进行带外管理的安全通信方法的实施例流程图,包括如下步骤:
步骤101,在网管平台上预先设置一个主密钥。该主密钥预先在综合管理平台上进行配置,可以由用户任意配置。
步骤102,网管平台利用3G被管理设备的用户识别卡信息及主密钥,生成与所述3G被管理设备共享的工作密钥。
由于3G被管理设备初始上点前,不进行任何配置,即3G被管理设备此时不包含可用的3G账号、IP地址、路由信息等。本发明中,3G被管理设备利用从移动运营商处申请的用户识别卡(SubscriberIdentityModule,即SIM卡)在网管平台上进行初始化,在本初始化的过程完中成对3G被管理设备与综合网管工作平台共享工作密钥的设置。这个共享工作密钥基于3G被管理设备SIM卡的电话号码、3G被管理设备IMSI号(InternationalMobileSubscriberIdentity,国际移动用户识别码)以及用户在网管平台中预先配置的主密钥三类信息采用预先定义的算法生成。其中,3G被管理设备的IMSI号保存在SIM卡上。对于任意配置的主密钥、IMSI号和电话号码的组合,用于生成一个唯一的、不能反推出主密钥的工作密钥。
本实施例中,采用常用的散列(Hash)算法即可。根据安全性要求,可以选择MD2、MD4、MD5、SHA128、SHA192、SHA256等不同的HASH算法。通过特定的散列算法每个SIM卡的工作密钥是唯一的,这样,即使某个被管理设备的工作密钥不慎被泄露给第三方,也不会影响到***中其它设备的安全性。
步骤103,所述工作密钥存入对应3G被管理设备的用户识别卡中。
本实施例中,3G被管理设备的SIM卡可***到网管平台所在PC机(或服务器)上通过USB连接的3G上网卡中,所以网管平台计算出的工作密钥可以特殊电话号码的形式保存到3G被管理设备的SIM卡中,同时网管工作站记录该3G被管理设备的IMSI号和电话号码到数据库中,用以计算设备的工作密钥。3G被管理设备SIM卡的在网管平台的初始化工作完成。
步骤104,网管平台或3G被管理设备采用共享的工作密钥将管理消息加密后,采用短信与对端进行带外管理的通信。
3G被管理设备安装经过网管平台初始化后的SIM卡后,即可直接上点安装,安装完成上电初始化完成后进入工作待命状态。本实施例中,3G被管理设备上电后进行初始化是指,要对自身SIM卡状态进行自测,如可通过相应指示灯闪烁表示SIM卡正常识别,准备好接收短信;然后,3G被管理设备从其SIM卡读出工作密钥,并加密存储于内部EPROM等存储设备中,并删除SIM卡中的工作密钥信息。
此时,如网管平台向3G被管理设备发送初始配置命令,根据已保存的IMSI号和电话号码信息,可以唯一确定一台对应的3G被管理设备,并计算出与该设备间的工作密钥。初始配置命令包括3G用户名、密码、接入点等信息,可以在网管工作站上批量导入,并自动关联到相应3G被管理设备的电话号码上。初始配置命令通过计算出的工作密钥进行加密。加密算法可以根据具体的安全性要求选择合适的加密算法,本发明方案涉及的***支持常见的加密算法DES、3DES、AES、Blowfish、Twofish等,以及国密算法SM1。
本实施例中,考虑到标准中短信长度140字节的限制,以及加密不改变信息长度,所以本发明中网管平台与3G被管理设备之间用于管理的通信消息最大为140字节。本实施例中,所采用加密后的用于管理的通信消息格式为:包括12字节消息头部和128字节加密后的消息体正文;所述消息头部包括分块标识、分块索引、消息标识号、消息长度和校验和。对于消息头部,主要考虑可能存在大于140字节的情况,所以消息可能存在分块(分片)。本实施例中,加密后的用于管理的通信消息格式定义为如下表1的形式:
表1加密后消息的格式定义
其中:消息头部共12字节,各字段的含含义如下:
分块标识:1比特位,用于当消息被分块时,表示本消息后是否还有属于同一消息的消息块;为1时表示还有更多消息分块,为0时表示已是最后一个分块;
消息类型:1比特位,消息类型,可用于区分请求(0Request)和应答消息(1Response);
消息标识号:14比特位,由发送端确定的0-16383的消息序列号,用于当消息被分块时,表示该多个消息块隶属于同一个消息,即用于确定哪些消息块属于同一个消息;具备相同序号的消息为同一个较长消息的分块;消息标识号从0开始分配,每使用一次增加1,超过16383时,重新从0开始;
分块索引:1字节,用于当消息被分块时,表示本消息块属于第几个分块;当一个短信(加上头部及校验和)的长度大于最大单个短信息长度时,消息被分块,每个分块的消息标识号相同,分块索引用来表示这个消息块是第几个分块;
消息长度:1字节,用于表示加密消息正文的长度,根据短信息的长度限制,这个值的范围是1-128;
校验和:8字节,用于表示短信息加密内容的校验和,接收消息一方在收到消息后,先计算校验和并与此值进行比较,如果不正确,则表明消息被修改过或发生错误。
加密的消息体正文:加密信息正文,在每个加密的消息块中,加密的消息体正文长度不大于128字节,由于加密不改变信息长度,因此,这个长度也是对应的明文的长度。
本实施例中,为保证信息的完整性,我们需要对加密后的信息进行计算校验和,并附上校验和片段,校验和同样采用散列算法来实现。考虑到短信息的长度有限,同时通常的散列算法都具备极大的分散度,我们不需要在信息中带上完整的散列结果,而只需要附上其中一段即可,例如本发明所涉及***采用取散列结果前8字节散列值作为校验和的方法,散列算法同样可选择采用MD2、MD4、MD5、SHA128、SHA192、SHA256中的任何一种,没有限制。
现以加密消息的发送和接收流程为例,并结合附图,对上述步骤进行进一步的详细说明。
参见图2,是本发明实施例中发送经过加密的消息的流程图,本发送流程实施对象的发送端既可以是网管平台,也可以是3G被管理设备,具体发送步骤如下:
步骤201,发送端生成明文的管理消息。
步骤202,发送端设置除校验和以外的加密消息的头部,具体包括如下步骤:
1)发送端确定并设置消息全局的消息标识号,序列号从0开始分配,最大值16383,超过后重新从0开始;
2)判断短消息长度是否小于等于128字节,如是分块标识设置为0,消息长度设置为该消息的实际长度;否则执行分块操作:分块标识设为1,分块索引初始设置为1,后续对同一消息标识号的分块索引依次加1,如果不是最后一个分块则消息长度为128字节,否则消息长度为最后一个分块的实际长度;消息类型根据交互需要设置为0或1;
步骤203,发送端对加密消息体正文进行填充,具体包括如下步骤:
1)根据算法要求,发送端对原始消息进行填充:例如通常加密算法都支持采用16字节或32字节分组大小,则需填充至16或32的整倍数;最长填充到128字节(4个32字节分加密组或8个别6字节加密分组);
2)使用工作密钥加密消息块正文;如前面所述,发送端为网管平台时,工作密钥通过3G被管理设备的IMSI号、电话号码和主密钥可以计算得到;发送端是3G被管理设备时,工作密钥为其初次开机初始化时,从SIM卡中读取的并保存在设备存储单元中号码。
步骤204,发送端计算加密消息体正文的校验和并填充在头部的校验和部分。本实施例中,取前8字节,并填充至头部校验和部份。
步骤205,发送端将内容加密的短消息以短信息SMS(ShortMessageService,短消息业务)的PDU(ProtocolDataUnit,协议数据单元)编码格式发送到目的端。
参见图3,是本发明实施例中接收经过加密的消息的流程图;本发送流程实施对象的接收端既可以是网管平台,也可以是3G被管理设备,具体接收步骤如下:
步骤一,接收端接收到新的短消息。
步骤二,接收端解析消息头部,并对校验和进行验证。本步骤中,接收端计算加密消息体正文的校验和并与头部取得的校验和比较,判断是否匹配,如是执行步骤三,否则转至相关的错误消息处理和记录,接收流程结束。
步骤三,接收端解密消息体正文。本步骤中,接收端为网管平台时,工作密钥通过3G被管理设备IMSI号、电话号码和主密钥可以计算得到;接收方是3G被管理设备时,工作密钥为被管理设备初次开机初始化时,从SIM卡中读取的并加密保存在存储单元中的。
步骤四,接收端判断是否是经过分块的消息,如是执行步骤五,否则说明已获得完整的消息(即分块标识为0,且分块索引为0),调用上层应用消息处理程序,本次消息接收流程结束。
步骤五,接收端判断是否存在与当前序列号相匹配的消息链,如是,将消息存入对应消息标识号的消息链,进入步骤六;如否,接收端创建以当前消息标识号为索引的消息链;将当前消息体正文存入新创建的消息链;创建并启动本消息的接收定时器,本次消息接收流程结束。定时器时间设置为分块接收超时时间。
步骤六,接收端判断本次接收的消息是否是本消息标识号的最后一个分块,如否本次消息接收流程结束;如是删除本消息的接收定时器,合并所有消息块,调用上层应用消息处理程序,本次消息接收流程结束。
本实施例中,对于接收端,存在多个接收消息链的情况下,会有与消息链个数相同的接收定时器处于定时工作状态,当定时器到达时,表示在指定的超时时间内,未收到下一个消息分块,启动超时处理程序,删除清除接收不完整的的消息链。
本发明解决了网管平台与3G被管理设备的短信通道上的安全问题,防止伪造短信和短信破解,保护短信的完整性。本发明基于IMSI号、SIM电话号码和主密钥生成工作密钥,并借助被管理设备的SIM卡保存共享工作密钥;利用散列算法保护消息的完整性;利用全局序号保证信息的唯一性。
参见图4,是本发明基于短信对3G设备进行带外管理的安全通信***实例的结构框图,本实施例中的安全通信***包括网管平台,两个以上3G接入终端,其中:
网管平台,用于预先设置一个主密钥,以及根据所述主密钥和3G被管理设备的用户识别卡信息及主密钥,生成与所述3G被管理设备共享的进行管理消息加密的工作密钥,并与3G被管理设备之间采用内容加密的短信进行带外管理的通信。
3G被管理设备,用于保存网管平台生成的工作密钥,并与网管平台共享该工作密钥对管理消息进行加密,并与网管平台之间采用内容加密的短信进行带外管理的通信。
参见图5,是本发明基于短信对3G设备进行带外管理的安全通信***另一实施例的结构框图,本实施例中的安全通信***包括网管平台,两个以上3G接入终端,其中:
所述网管平台包括:初始化单元,消息加解密单元和消息收发单元,其中:所述初始化单元用于根据3G被管理设备的用户识别卡信息以及预设的主密钥,生成与所述3G被管理设备共享的工作密钥,并将所述工作密钥存储在对应3G被管理设备的用户识别卡中;所述消息加解密单元用于将待发送的消息根据生成的工作密钥进行加密,在必要时加密之前要进行消息分块,以及用于将接收到的经过加密的消息进行解密,在必要时要对经过分块的消息进行合并处理后交给上层应用程序处理;所述消息收发单元用于向所有3G被管理设备发送经过加密的消息,并用于接收来自所有3G被管理设备的经过加密的消息;
所述3G被管理设备包括:初始化单元,消息加解密单元和消息收发单元,其中:所述初始化单元用于对上电后的3G被管理设备的用户识别卡进行自检,并将用户识别卡中的工作密钥保存在存储单元,然后删除用户识别卡中的工作密钥;所述消息加解密单元将待发送的消息根据生成的工作密钥进行加密,在必要时加密之前要进行消息分块,以及用于将接收到的经过加密的消息进行解密,在必要时要对经过分块的消息进行合并处理后交给上层应用程序处理;所述消息收发单元用于接收来自网管平台的经过加密的消息,已经用于将经过加密的消息发送到网管平台。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。