APP下载

基于数字信封的XML报文在ECDS系统中加密传输研究

2015-03-21

襄阳职业技术学院学报 2015年4期
关键词:加密算法解密报文

王 莉

(江苏建筑职业技术学院, 江苏 徐州 221008)

由人民银行牵头建设的电子商业汇票系统(Electronic Commercial Draft System,简称 ECDS)将全面革新传统纸质的商业汇票的记载形式和流通方式,并有利于支付结算及贸易融资效率的提升,加快票据市场的进一步繁荣。但是,电子票据面临的信息技术安全风险问题依然值得关注,比如数据文件丢失、系统运行瘫痪、网络遭受攻击、各种病毒入侵等。一旦系统出现问题,金融数据将会大面积的丢失,造成无法弥补和估算的损失。一般电子商业汇票系统(ECDS)采用XML技术为基础的报文格式进行业务数据的传输,但由于这些敏感的金融数据通过网络传递,所以要充分考虑这些报文的安全性。因此,在分布式消息环境下,我们必须对要传输的XML报文进行加密处理,以保证报文安全到达目的地。

一、XML简介

XML作为一种语言标识,集合了SGML与HTML的优点,并作为一种数据交换的标准,近几年来被广泛应用于金融行业的信息系统。它可以根据具体文档的内容自定义标识,因此对数据元素的描述非常自由。同时它在处理数据时,可以把用户界面设计与后台结构化数据相分离。正因为这些优点,很多企事业单位在进行的电子商务项目中,把XML语言作为首选的标记语言来应用,它甚至已成为这个行业里信息共享和数据交换的基础。

基于以上XML语言的优点,适用范围如下:[1]①数据通信:对于不同系统之间的应用程序来讲,必须规定以相同的数据格式才能进行通信。只有XML能通过这种自由化的数据定义,才能达到它们数据格式上的一致。②跨平台应用开发:XML独立于任何一种开发语言,通过它作为中间桥梁,可实现各种语言的良好互换。③数据转换:作为一种嵌入式语言,它可以实现不同格式间文件的转换。④数据库:由于它自身存在的独立性,再加上其语言特点,做程序开发时可用于小型数据库使用。

二、数字信封加密技术

数字信封是一种综合利用了对称加密算法和非对称加密算法两者的优点进行信息安全传输的一种加密技术。

在数字信封中,[2]信息发送方采用对称密钥来加密信息内容,然后将此对称密钥用接收方的公开密钥来加密(这部分称数字信封)之后,将它和加密后的信息一起发送给接收方,接收方先用相应的私有密钥打开数字信封,得到对称密钥,然后使用对称密钥解开加密信息,得到原文。数字信封技术使用两层加密体系,既发挥了对称加密算法速度快、安全性好的优点,又发挥了非对称加密算法密钥管理方便的优点。

下面就数字信封中涉及到的两种加密算法作如下介绍:[3]

(1)对称加密算法,也称私钥加密算法。它是指在给数据加密的过程中,使用一些密码信息和一种加密算法(如DES,RC2等)对数据的重要信息进行加密,然后生成密文。一般通过私钥加密算法得到的密文,其接收者只要有密钥,就可以对数据进行解密。由于它不受权限影响,所以密钥的安全性尤为重要。

(2)非对称加密算法,也叫公钥加密算法。是指在通信时,每个通信者都必须具备自己的一套密码,由公钥和私钥组成。其中,公钥在通信双方之间是公开的,私钥是自己私有的。两者关系紧密,经公钥加密的数据只能用私钥来解密,同样用私钥签名的数据必须用公钥来验证。

三、基于数字信封的XML报文加密传输方案

(一)报文加密

报文传输加密使用参考数字信封加密模式,基本流程如下。[4-5]

(1)生成随机密码(WrkKeyStr)。

(2)根据密钥生成算法计算WrkKeyStr生成工作密钥(WrkKey)。

(3)使用WrkKey加密明文报文数据(Msg)得到Emsg。

(4) 使用存储的CurMKey加密 KEY,WrkKey得到Ewk。

(5)计算Msg的MD5值作为原文校验 Cmsg。

(6)组织Ewk+Emsg+Cmsg为通信报文发送给接收方。

(二)报文解密

接收方收到通信报文后,按下列流程解密报文:

(1)按通信报文格式分割 Ewk、Emsg、Cmsg。

(2)使用存储的 CurMKey、PreMKey、NewMKey尝试解密Ewrkstr得到解密结果;如解密结果的前四字符为KEY,则说明解密成功,否则解密失败;如解密失败,返回拒绝回应报文;如解密成功,从解密结果中分类WrkKey。

(3)使用WrkKey解密Emsg得到Msg。

(4)计算Msg的MD5值与Cmsg比较,检查报文校验。

(三)加密密钥生成与保护

主密钥(PreMKey、CurMKey、NewMKey)由安全管理人员设置的主密码经密钥生成算法计算生成。预设的主密码由系统使用内置密码加密后存储到系统,并由系统自动解密使用。密钥组成体系如图1。

1. 设置加密密钥:初始密码(InitMKeyStr)由上级节点设置,经系统外安全途径告知下级节点,再由下级节点据此设置新的加密密码。基本流程如下。

(1)上级节点安全管理员执行【重置加密密钥】功能,系统随机生成主密码(InitMKeyStr),按密钥生成算法生成初始主密钥,加密初始主密钥后存储到上级节点系统。

(2)界面提示上级节点安全管理员记录InitMKeyStr。

(3)上级节点安全管理员告知下级节点安全管理员InitMKeyStr。

图1 密钥组成体系结构

(4)下级节点安全管理员执行【修改加密密钥】功能,输入当前密码为InitMKeyStr,输入新密码,提交修改加密密钥报文给上级节点。

2.密钥交换:交换加密密钥由下级节点发起,基本流程如下。[6-7]

(1)安全管理人员运行【修改加密密钥】功能,系统检查目前密钥修改状态。如NewMKey=NULL,则说明无待回应的申请报文,此时安全管理人员可以输入当前密码(CurMKeyStr)和新密码(NewMKeyStr),并确认;如NewMKey非NULL,则说明存在待回应的申请报文,此时禁止安全管理人员输入当前密码(CurMKeyStr)和新密码(NewMKeyStr),但可以再次提交修改密钥申请报文,系统自动使用存储的CurMKey和NewMKey发出修改密钥申请报文。

(2)下级节点使用密钥生成算法计算CurMKeyStr和NewMKeyStr生成对应的CurMKey和 NewMKey,检查生成的 CurMKey和存储的CurMKey是否一致;如不相符,提示安全管理人员当前密钥错误,返回2重新输入;如相符,则使用CurMKey加密申请报文并发送给上级节点,存储NewMKey。

(3)上级节点接收并解密该申请报文。如报文CurMKey=存储的CurMKey,则使用存储CurMKey覆盖存储PreMKey,使用报文NewMKey覆盖存储CurMKey,返回成功回应报文给下级节点;如报文CurMKey=存储PreMKey,则使用报文NewMKey覆盖存储CurMKey,返回成功回应报文给下级节点;否则,返回当前密钥不符拒绝回应报文给下级节点。(成功回应报文使用报文CurMKey加密;拒绝回应报文使用通用回应报文,明文传输;无法解密的报文,返回“报文无法解密”通用回应报文,明文传输)

(4)下级节点接收并解密回应报文;是成功回应且回应报文NewMKey=存储NewMKey,则使用存储CurKey覆盖存储PreKey,使用存储NewKey覆盖存储CurKey,使用NULL值覆盖NewKey;否则丢弃该回应报文。

3.异常适应性分析:密钥交换过程若发生异常,可能导致下级节点与上级节点的密钥不符,从而导致业务报文无法解密,系统提供的密钥交换方案应防止该情况的出现。

密钥交换过程可能出现的异常是丢失申请报文或丢失回应报文。为避免丢失报文时出现“密钥修改中”的悬决状态,密钥交换过程允许在前次申请报文没有回应的情况下,再次提交新的申请报文以自动弥补申请报文或回应报文丢失的情况,此做法同时可能带来报文乱序的异常情况。

下面分析上述密钥修改方案的异常适应性。[8-10]

(1)丢失申请报文。

下级节点提交申请报文,而上级节点没有收到该申请报文的异常情况,称为丢失申请报文。此时上级节点和下级节点均没有修改密钥,因此下级节点可以再次提交申请报文即可恢复丢失的申请报文。

(2)丢失回应报文。

下级节点提交申请报文,上级节点已处理该申请报文,但下级节点没有收到上级节点回应报文的异常情况,称为丢失回应报文。根据丢失回应报文的类型,分为两种情况:一是丢失拒绝回应报文;二是丢失成功回应报文。

丢失拒绝回应报文时,上下级节点均没有修改密钥,因此下级节点可以再次提交申请报文。丢失成功回应报文时,上级节点已经完成更新PreKey=CurKey,CurKey=NewKey,而下级节点没有相应地更新,出现上下级密钥不符的情况。此时,下级节点新发送的业务使用CurKey加密,上级节点使用CurKey解密失败,使用PreKey解密成功,对往账业务没有影响。而上级节点新发送的业务使用NewKey加密,下级节点使用CurKey解密失败,使用NewKey解密成功,对来帐业务没有影响。这说明丢失成功回应对业务没有影响。

(3)重复提交申请及乱序。

如前次申请报文没有回应时,下级节点只能重发与前次相同的回应报文,无论上级节点是否曾处理过该申请报文,重复的申请报文均能被上级节点正确处理并返回成功回应。因此多次提交相同的申请报文对上下级均无影响,也不存在乱序的问题。

若前次申请报文回应成功后,下级节点即刻提交与前次申请内容不同的申请报文,此时可能出现多个新、旧申请报文及回应报文乱序的情况。

申请报文发生乱序,则新申请报文先于旧申请报文到达上级节点,上级节点按新申请报文进行变更后,旧申请报文再到达上级节点时,因CurMKey比较失败被上级节点拒绝。

回应报文发生乱序,新申请报文的回应报文到达下级节点后,下级节点进行了相应的密钥变更,则旧申请报文的回应报文再到达下级节点时,因比较NewMKey失败而被丢弃。

综上分析,密钥修改流程可以适应异常情况。

本文论述了基于数字信封的XML加密技术在ECDS系统中的应用。该方案详细讨论了XML报文在ECDS系统中采用数字信封加密模式进行数据传输时,其报文加密、解密、加密密钥生成与保护等具体操作流程,并对密钥交换过程出现异常情况,而提出的密匙修改方案,做了适应性分析。分析结果证明,密钥修改流程可以适应异常情况。

[1]孙一中.XML理论和应用基础[M].北京:北京邮电大学出版社,2000.

[2]饶文碧,熊卉,黄波.数字信封信息安全技术[J].武汉理工大学学报,2004(26):87-89.

[3]孟艳红,秦维佳,吕海华.两种密码体制加密技术的研究对比[J].沈阳工业大学学报,2003(5):430-432.

[4]陈铁明,李伟,蔡家楣,马世龙.IBE-XKMS:一个基于XML的IBE密钥管理服务体系[J].电信科学,2010(7):22-31.

[5]陈祥,左洪福.基于加密过程控制语言的XML数据加密方案[J].计算机工程,2006(14):141-145.

[6]张剑青,刘旭东,怀进鹏.基于XML的密钥管理的研究与实现[J].计算机研究与发展,2003(1):75-80.

[7]王浩川,孙挺.数字签名技术在网络安全中的应用[J].中州大学学报,2001(1):77-79.

[8]杨文利,张志平.电子商务的加密技术及安全模型设计[J].商场现代化,2008(28):47-48.

[9]王贵林,卿斯汉.一个证实数字签名方案的安全缺陷[J].软件学报,2004(5):752-756.

[10]葛淑杰,乔付,任建民.计算机网络通信安全的数据加密算法分析[J].黑龙江科技学院学报,2001(2):22-24.

猜你喜欢

加密算法解密报文
基于J1939 协议多包报文的时序研究及应用
炫词解密
解密“一包三改”
CTCS-2级报文数据管理需求分析和实现
炫词解密
浅析反驳类报文要点
基于整数矩阵乘法的图像加密算法
基于混沌系统和DNA编码的量子图像加密算法
混沌参数调制下RSA数据加密算法研究
ATS与列车通信报文分析