一种报文加解密方法及其系统与流程

文档序号:28879602发布日期:2022-02-12 12:11阅读:488来源:国知局
一种报文加解密方法及其系统与流程

1.本发明属于加密/解密技术领域,具体涉及一种报文加解密方法及其系统。


背景技术:

2.随着互联网快速发展,信息安全成为人们日益关注的焦点问题,为保障用户在使用系统过程中,所采集的用户数据不会被泄露,一种用于对这些信息传递、存取的保密措施应运而生。
3.不仅在互联网应用系统有安全性要求,对金融行业内部应用系统之间的网络数据传输安全性有更进一步要求。因为该行业的自助渠道业务越来越多,很多原传统柜面业务转移到自助设备上,由客户自行完成业务办理。在此过程中,会涉及客户的身份认证,进行用户身份证、现场拍照等证件及生物特征信息采集,而这些信息采集后通过通讯报文的方式从自助终端发送到后端前置系统,再由后端前置系统转发给银行生物识别系统进行客户身份识别。相应的比如前后端前置系统交互过程中有关客户的敏感信息同样在传输过程中可能被恶意截取和篡改,导致客户信息泄露、非法交易。
4.其中,针对密码键盘连接方式为串口连接的自助设备,由于其密码键盘的通讯速率受其串口波特率(最高38400bps,每秒约4.8k字节)限制,其加解密速度非常慢,不能满足对大数据全报文(几百k到几兆字节的数据)加解密的性能要求,经常出现加解密超时现象,引起业务中断,严重影响客户体验。
5.尽管当前有很多技术手段应用于这些,比如基于通讯协议的https,虽然能起到一定的保密性,但该协议暂不支持国密算法,同时不能保证数据的完整性。又如,应用比较多的报文鉴别手段mac(message authentication code)校验,能一定程度上保证数据的完整性,但没有提供数据的保密性。在解决全报文加解密的性能问题上,大多采用方法是:要么更换密码键盘,使用usb连接,提高处理速度;要么就对数量大的交易报文不做加密处理。这些做法要么增加巨额成本,要么不合规。
6.因此提供一种能保证通讯报文的保密性、保证其完整性,满足于密码键盘连接方式为串口连接的自助设备的加解密方法,成为急需解决的问题。


技术实现要素:

7.本发明的目的是用于解决上述现有技术中存在的至少部分问题,提供一种报文加解密方法及其系统,所述方法可以适用于银行自助设备上,保证自助设备的前后端之间通讯报文的保密性、完整性;尤其是能满足于密码键盘连接方式为串口连接的自助设备。
8.一方面,本发明提供的一种报文加密方法,其应用于请求端或响应端,用于加密请求端上的包含敏感数据的报文数据;或者用于加密响应端的响应信息;
9.应用于请求端时,包括:
10.向响应端发送密钥申请请求,进而获取响应端发送的终端工作密钥并导入密码键盘;其中,所述终端工作密钥包括:保护密钥mackeyenkey、保护密钥msgkeyenkey;
11.获取包含敏感数据的报文数据;
12.调用密码键盘,利用所述保护密钥msgkeyenkey生成报文加解密密钥msgkey,再对包含敏感数据的报文数据进行加密;利用所述保护密钥mackeyenkey生成mac计算密钥mackey,再基于密文进行mac值计算;随后将所述mac值和密文以报文方式发送给响应端,以供所述响应端利用所述终端工作密钥进行mac值验证和解密;
13.其中,请求端上加密和/或mac计算过程使用js软算法实现;
14.或者应用于响应端时,包括:
15.获取包含响应信息的报文数据;
16.调用加密机,基于所述保护密钥msgkeyenkey生成的报文加解密密钥msgkey,对包含响应信息的报文数据进行加密;基于所述保护密钥mackeyenkey生成的mac计算密钥mackey和密文进行mac值计算;随后将所述mac值和密文以报文方式发送给请求端,以供所述请求端利用所述终端工作密钥进行mac值验证和解密,最终执行响应;
17.其中,加密过程的加密密钥和mac计算过程与解密过程的解密密钥和mac计算过程一一对应。
18.本发明所述方法可以应用于自助设备中,解决密码键盘连接方式为串口连接的自助设备,由于其密码键盘的通讯速率受其串口波特率(最高38400bps,每秒约4.8k字节)限制,其加解密速度非常慢,不能满足对大数据全报文(几百k到几兆字节的数据)加解密性能的问题。
19.本发明所述方法中的请求端,其使用的密钥msgkey、mackey是通过密码键盘硬件模块导入的保护密钥msgkeyenkey、mackeyenkey加密生成,完全适用于连接方式为串口连接的密码键盘;此外,请求端上报文数据的加解密、mac计算过程使用js软算法实现,其处理速度可以达到几百k自己数据毫秒级内的响应,因此所述方法应用于自助设备时,请求端为前端,可以有效地解决密码键盘的通讯速率受其串口波特率约束,经常出现加解密超时现象的问题。
20.第二方面,本发明提供一种报文解密方法,其应用于请求端或响应端,用于解密响应端发送的加密后的响应信息;或者用于解密请求端发送的包含敏感数据的加密报文数据;
21.应用于响应端时,包括:
22.接收请求端的密钥申请请求,再调用加密机生成终端工作密钥并反馈给所述请求端;其中,所述终端工作密钥包括:保护密钥mackeyenkey、保护密钥msgkeyenkey;
23.接收请求端发送的加密报文数据;其中,所述加密报文数据是所述请求端调用密码键盘并利用所述终端工作密钥对待加密的报文数据进行加密以及mac值计算后得到的;
24.调用加密机,基于所述保护密钥mackeyenkey生成的mac计算密钥mackey计算加密报文数据的mac值;
25.验证接收的报文中mac值与计算出的mac值是否相同,若不相同,拒绝请求;否则,调用加密机并基于所述保护密钥msgkeyenkey生成的报文加解密密钥msgkey进行解密得到明文报文,再生成响应信息;
26.应用于请求端时,包括:
27.接收响应端发送的包含响应信息的加密报文数据,其中,所述加密报文数据是所
述响应端调用加密机并利用所述终端工作密钥对包含响应信息的报文数据进行加密以及mac值计算后得到的;
28.调用密码键盘,基于所述保护密钥mackeyenkey生成的mac计算密钥mackey计算加密报文数据的mac值;
29.验证接收的加密报文中mac值与计算出的mac值是否相同,若不相同,拒绝请求;否则,调用密码键盘并基于所述保护密钥msgkeyenkey生成的报文加解密密钥msgkey进行解密得到明文报文,再执行响应;
30.其中,加密过程的加密密钥和mac计算过程与解密过程的解密密钥和mac计算过程一一对应,请求端上解密和/或mac计算过程使用js软算法实现。
31.进一步可选地,加/解密过程以及mac计算过程的密钥设置如下:
32.加/解密过程:利用所述保护密钥msgkeyenkey生成报文加解密密钥msgkey以及利用所述报文加解密密钥msgkey进行加密或解密;
33.mca值计算过程:利用所述保护密钥mackeyenkey生成mac计算密钥mackey以及利用所述mac计算密钥mackey计算mac值。
34.譬如,加密过程以及mac值计算过程为:
35.利用所述保护密钥msgkeyenkey生成报文加解密密钥msgkey以及利用所述报文加解密密钥msgkey对所述报文数据进行加密得到密文;利用所述保护密钥mackeyenkey生成mac计算密钥mackey以及利用所述mac计算密钥mackey计算密文的mac值。
36.解密过程以及mac值计算过程为:
37.利用所述保护密钥msgkeyenkey生成报文加解密密钥msgkey以及利用所述报文加解密密钥msgkey对所述加密报文数据进行解密得到明文报文;利用所述保护密钥mackeyenkey生成mac计算密钥mackey以及利用所述mac计算密钥mackey计算加密报文数据的mac值。
38.可选地,利用所述报文加解密密钥msgkey对所述报文数据进行加密得到密文的过程表示为:
39.f
encc
(v,msg,alg)=f
jsenc
(f
eppencmsgkey
(v,alg),f
hex
(msg),alg)
40.式中,f
encc
(v,msg,alg)表示加密后的密文;f
eppencmsgkey
(v,alg)表示生成的报文加解密密钥msgkey;v为初始向量(譬如应用于自助设备时,其取值为自助终端设备的编号),并将其进行16进制扩展;f
hex
(msg)表示对待加密的报文数据进行16进制扩展处理,alg表示算法类型,指定加密解密算法使用国际算法还是国密算法,f
jsenc
表示使用密钥msgkey对f
hex
(msg)进行alg指定算法进行js软加密;
41.利用所述mac计算密钥mackey计算密文的mac值的过程表示为:
42.f
macc
(v,encmsg,alg)=f
jsmac
(f
eppencmackey
(v,alg),encmsg,alg)
43.式中,f
macc
(v,encmsg,alg)表示计算出的密文的mac值,f
eppencmackey
(v,alg)表示加密过程生成的mac计算密钥mackey,encmsg表示密文,f
jsmac
表示使用密钥mackey对密文encmsg进行alg指定算法进行jsmac计算。响应端收到密文后,利用mac计算密钥mackey计算报文的mac值,并校验的过程表示为:
44.f
macchckp
(v,encmsg,macdata,alg)=f
cmp
(f
hsmmac
(f
hsmencmackey
(v,alg),encmsg,alg),macdata)
45.式中,v为初始向量,alg为mac计算算法类型,f
hsmencmackey
(v,alg)为解密过程生成的mac计算密钥mackey,macdata为从请求端接收的报文中mac值;
46.利用所述报文加解密密钥msgkey进行解密得到明文报文的过程表示为:
47.f
decp
(v,encmsg,alg)=f
hsmdec
(f
hsmencmsgkey
(v,alg),encmsg,alg)
48.其中,参数v为初始向量,与所述前端应用系统加密过程用到的初始向量一致,用于生成报文加密密钥msgkey,取值为自助终端编号;encmsg为密文;alg为解密算法类型,取值为sm4或3des;
49.f
hsmencmsgkey
(v,alg):表示通过该方法生成报文解密密钥msgkey。
50.可选地,所述方法应用于自助设备,所述请求端为前端应用系统时,所述响应端为后端前置系统,前端应用系统中待加密的报文数据为包含客户信息的报文数据;后端前置系统中待加密的报文数据是业务逻辑处理后的返回给前端应用系统的响应报文数据。
51.第三方面,本发明提供一种加解密方法,其包括以下步骤:
52.前端应用系统向后端前置系统发送密钥申请请求;
53.后端前置系统调用加密机生成终端工作密钥并反馈给所述前端应用系统;其中,所述终端工作密钥包括:保护密钥mackeyenkey、保护密钥msgkeyenkey;
54.前端应用系统将终端工作密钥导入密码键盘;
55.前端应用系统获取包含敏感数据的报文数据;
56.前端应用系统调用密码键盘,利用所述保护密钥mackeyenkey、所述保护密钥msgkeyenkey对包含敏感数据的报文数据进行加密以及mac值计算,再将所述mac值和密文以报文方式发送给后端前置系统;
57.后端前置系统接收前端应用系统发送的报文;
58.后端前置系统调用加密机,利用所述保护密钥mackeyenkey计算报文的mac值;
59.后端前置系统验证接收的报文中mac值与计算出的mac值是否相同,若不相同,拒绝请求;否则,调用加密机并利用所述保护密钥msgkeyenkey解密得到明文报文,最后进行后续业务逻辑处理。
60.进一步地,所述终端工作密钥均是利用终端主密钥进行加密,所述终端主密钥是由渠道业务管理系统连接加密机,为自助设备进行终端主密钥信封打印,输出的终端主密钥。
61.进一步地,还包括:
62.后端前置系统获取包含响应信息的报文数据;
63.后端前置系统调用加密机,利用所述保护密钥mackeyenkey、所述保护密钥msgkeyenkey对包含响应信息的报文数据进行加密以及mac值计算,再将所述mac值和密文以报文方式发送给前端应用系统;
64.前端应用系统接收响应端发送的包含响应信息的加密报文数据;
65.前端应用系统密码键盘,利用所述保护密钥mackeyenkey计算加密报文数据的mac值;
66.前端应用系统验证接收的加密报文中mac值与计算出的mac值是否相同,若不相同,拒绝请求;否则,前端应用系统调用密码键盘并利用所述保护密钥msgkeyenkey进行解密得到明文报文,再执行响应。
67.第四方面,本发明提供一种应用所述报文加密方法的系统,其至少包括请求端,所述请求端上根据所述报文加密方法进行报文加密,所述请求端包括:
68.终端签到模块,用于向响应端发送密钥申请请求,进而请求端获取到响应端发送的终端工作密钥;
69.业务模块,用于获取待加密的报文数据;
70.密钥管理模块,用于将终端工作密钥导入密码键盘;
71.密码键盘设备js模块,用于调用密码键盘,利用所述保护密钥mackeyenkey、所述保护密钥msgkeyenkey对包含敏感数据的报文数据进行加密以及mac值计算;
72.通讯模块,用于将所述mac值和密文以报文方式发送给响应端。
73.第五方面,本发明提供一种应用所述报文解密方法的系统,其至少包括请求端,所述请求端上根据所述报文解密方法进行报文解密,所述请求端包括:
74.终端签到模块,用于向响应端发送密钥申请请求,进而请求端获取到响应端发送的终端工作密钥;
75.密钥管理模块,用于将终端工作密钥导入密码键盘;
76.通讯模块,用于接收响应端发送的包含响应信息的加密报文数据;
77.密码键盘设备js模块,用于调用密码键盘,利用所述保护密钥mackeyenkey计算加密报文数据的mac值;验证接收的加密报文中mac值与计算出的mac值是否相同,若不相同,拒绝请求;否则,调用密码键盘并利用所述保护密钥msgkeyenkey进行解密得到明文报文。
78.第六方面,本发明提供一种应用所述报文加密方法的系统,其至少包括响应端,所述响应端上根据所述报文加密方法进行报文加密,所述响应端包括:
79.终端密钥管理模块,用于响应请求端的密钥申请请求调用加密机生成终端工作密钥;
80.通讯模块,用于构建与请求端的通讯连接,进而实现数据输送;
81.加密机通讯模块,用于调用加密机,利用所述保护密钥mackeyenkey、所述保护密钥msgkeyenkey对包含响应信息的报文数据进行加密以及mac值计算,并通过所述通讯模块将所述mac值和密文以报文方式发送给请求端。
82.第七方面,本发明提供一种应用所述报文解密方法的系统,其至少包括响应端,所述响应端上根据所述报文解密方法进行报文加密,所述响应端包括:
83.终端密钥管理模块,用于响应请求端的密钥申请请求调用加密机生成终端工作密钥;
84.通讯模块,用于构建与请求端的通讯连接,进而实现数据输送;
85.加密机通讯模块,用于调用加密机,利用所述保护密钥mackeyenkey计算加密报文数据的mac值;验证接收的报文中mac值与计算出的mac值是否相同,若不相同,拒绝请求;否则,调用加密机并利用所述保护密钥msgkeyenkey进行解密得到明文报文,再生成响应信息。
86.第八方面,本发明提供一种基于所述加解密方法的系统,其包括前端应用系统和后端前置系统;
87.其中,前端应用系统包括:
88.终端签到模块,用于向后端前置系统发送密钥申请请求,进而前端应用系统获取
到后端系发送的终端工作密钥;
89.业务模块,用于获取待加密的报文数据;
90.密钥管理模块,用于将终端工作密钥导入密码键盘;
91.密码键盘设备js模块调用密码键盘,利用所述保护密钥mackeyenkey、所述保护密钥msgkeyenkey对包含敏感数据的报文数据进行加密以及mac值计算;
92.前端通讯模块,用于再将所述mac值和密文以报文方式发送给后端系;
93.其中,后端前置系统包括:
94.终端密钥管理模块,用于响应前端应用系统的密钥申请请求调用加密机生成终端工作密钥;
95.渠道接入模块,用于构建与前端应用系统的通讯连接,进而实现数据输送;
96.加密机通讯模块,用于调用加密机,利用所述保护密钥mackeyenkey计算加密报文数据的mac值;验证接收的报文中mac值与计算出的mac值是否相同,若不相同,拒绝请求;否则,调用加密机并利用所述保护密钥msgkeyenkey进行解密得到明文报文,
97.最后进行后续业务逻辑处理,生成响应信息。
98.第十三方面,本发明提供一种可读存储介质,其存储了计算机程序,所述计算机程序被处理器调用以实现:
99.一种报文加密方法的步骤或一种报文解密方法的步骤或一种报文加解密方法的步骤。
100.有益效果
101.1.本发明提供的一种报文加解密方法及其系统,其利用终端工作密钥中的保护密钥mackeyenkey、保护密钥msgkeyenkey对报文数据进行加密,其中,通过加密以及mac值计算,依托mac值验证可以实现完整性验证,从而在保证数据保密性的同时又一定程度上保证了数据的完整性。
102.2.本发明的一种报文加解密方法及其系统能够满足密码键盘连接方式为串口连接的自助设备。
附图说明
103.图1是本发明提供的一种前后端通讯报文加解密系统的框架示意图;
104.图2是本发明提供的一种应用于自助设备中联网核查交易对应的报文加解密方法的流程示意图。
具体实施方式
105.本发明提供的一种报文加解密方法,应用于建立通讯连接的请求端和响应端,其中,请求端向响应端请求密钥,并传输敏感数据(如客户信息、机密信息等)给响应端,响应端验证信息是否被篡改,若没有篡改,响应请求并传输数据给请求端。因此,本发明重请求端和响应端的通讯视为双向传播,分为:请求端到响应端;响应端到请求端。其中,每一类传播路径上,一端的信息加密后再传播至另一端,另一端先验证mac值,再进行解密。下文将以自助设备为例进行陈述,本发明是以银行自助设备前后端报文数据传输存在的安全性问题以及密码键盘连接方式为串口连接时存在的加解密性能问题,引发相关研究。下面将结合
实施例对本发明做进一步的说明。
106.实施例1:
107.本实施例以自助设备为例,自助设备的系统分为:前端应用系统、后端前置系统以及渠道业务管理系统。基于该系统分布,本实施例提供一种报文加解密方法,其应用于自助设备,包括以下步骤:
108.步骤一:系统管理员通过渠道业务管理系统连接加密机为某一台自助设备终端进行终端主密钥信封打印,输出终端主密钥信封,并将加密机接口返回的终端主密钥(加密机本地主密钥加密的)存入数据库终端密钥表中,该终端主密钥用于终端工作密钥的加密。
109.步骤二:通过所述前端应用系统将终端主密钥导入到密码键盘,用于后续的终端工作密钥导入时密钥的解密(该解密动作由密码键盘内部完成)。
110.步骤三:前端应用系统启动进入到所述前端应用系统的所述终端签到模块,终端签到模块向所述后端前置系统进行密钥申请。
111.步骤四:后端前置系统收到所述前端应用系统的密钥申请请求后,调用加密机生成终端工作密钥(终端工作密钥包括:客户密码加密密钥pinkey(对客户密码单独加密的,客户密码明文不能在任何时候暴露。)、mac计算密钥mackey的保护密钥mackeyenkey、报文加解密密钥msgkey的保护密钥msgkeyenkey,均利用终端主密钥加密得到)并返回给所述前端应用系统,同时将终端工作密钥保存到加密机的数据库,供后续加解密、mac计算使用。
112.步骤五:前端应用系统收到后端前置系统返回的终端工作密钥后,将终端密钥导入到密码键盘。
113.步骤六:客户在自助设备终端上进行金融自助业务办理,进行身份证阅读或扫描、现场拍照等系统交互,进而采集到客户信息。
114.步骤七:前端应用系统将采集到的客户信息作为待加密的报文数据,前端应用系统调用密钥键盘并使用保护密钥msgkeyenkey生成的msgkey对报文数据加密得到密文,并调用密钥键盘使用mackeyenkey生成的mackey对加密后密文数据计算mac值,将其放置到通讯报文头字段中,密文作为报文体一并发送。
115.步骤八:后端前置系统收到前端应用系统发送的加密报文(包括身份证头像照片数据、现场拍照图片数据、以及收集到的其他客户信息),首先做报文的完整性校验:调用加密机使用数据库保存的mac密钥加密密钥mackeyenkey生成的mac密钥mackey进行报文的mac计算,然后与之比对报文头里的mac是否一致,如果不一致,则拒绝该请求,否则,调用加密机使用数据库保存的报文加密密钥的加密密钥msgkeyenkey生成报文加密密钥msgkey对加密报文进行解密,得到明文报文后,进行后续业务逻辑处理。
116.步骤九:后端前置系统生成响应报文,并调用加密机并使用数据库保存的报文加密密钥的加密密钥msgkeyenkey生成的报文加密密钥msgkey进行报文加密,并调用加密机使用数据库保存的mac密钥加密密钥mackeyenkey生成的mac密钥mackey对得到的密文计算mac校验值,将mac校验值放置到报文头,密文作为报文体,一并返回给所述前端应用系统。
117.步骤十:前端应用系统收到后端前置系统返回的响应报文,首先对密文报文数据做mac校验:调用密码键盘并使用mackeyenkey生成的mackey对密文报文数据计算mac校验值,然后与之比对报文头里的mac是否一致,如果不一致,给出友好提示,并结束当前业务流程,否则进行下一步。
118.步骤十一:前端应用系统调用密钥键盘,并使用msgkeyenkey生成msgkey对密文报文数据进行解密,得到明文后,交由前端应用系统的业务模块的后续处理流程继续办理。
119.应当说明,本实施例是以自助设备为例,并设定其包含前端应用系统、后端前置系统以及渠道业务管理系统的架构进行陈述的。其他可行的实施例中,对上述方法实现过程可以进行局部调整,局部调整不局限于步骤顺序调整、步骤删减,在不脱离本发明构思的基础上,均属于本发明的保护范围。
120.实施例2:
121.本实施例提供一种报文加密方法,其应用于前端应用系统,包括以下步骤:
122.1-1:向响应端发送密钥申请请求,进而获取响应端发送的终端工作密钥并导入密码键盘。
123.本实施例是以前端应用系统的角度进行陈述,应当理解,本实施例中获取的终端工作密钥参照实施例1的相关陈述获取,其他可行的实施例中,若有其他方式可以获取,也是可行的。
124.1-2:获取包含敏感数据的报文数据。本实施例中,敏感数据为客户信息,即待加密的报文数据为包含客户信息的报文数据,如身份证信息、照片等。
125.1-3:调用密码键盘,利用所述保护密钥mackeyenkey、所述保护密钥msgkeyenkey对包含敏感数据的报文数据进行加密以及mac值计算,再将所述mac值和密文以报文方式发送给后端前置系统,以供所述后端前置系统利用所述终端工作密钥进行mac值验证和解密。
126.具体为:调用密钥键盘并使用保护密钥msgkeyenkey生成的msgkey对报文数据加密得到密文,并调用密钥键盘使用mackeyenkey生成的mackey对加密后密文数据计算mac值,将其放置到通讯报文头字段中,密文作为报文体一并发送。
127.也应当理解,本实施例是以前端应用系统的角度进行陈述,本实施例中涉及后端前置系统的mac校验和解密过程可以参照实施例1的相关陈述获取,解密过程中密钥、mac值生成过程与加密过程的密钥、mac值生成过程是一一对应的。
128.实施例3:
129.与实施例2相对应,本实施例提供一种报文解密方法,其应用于后端前置系统,包括以下步骤:
130.2-1:后端前置系统收到所述前端应用系统的密钥申请请求,再调用加密机生成终端工作密钥(终端工作密钥包括:客户密码加密密钥pinkey、mac计算密钥mackey的保护密钥mackeyenkey、报文加解密密钥msgkey的保护密钥msgkeyenkey,均由终端主密钥加密)并返回给所述前端应用系统,同时将终端工作密钥保存到加密机的数据库,供后续加解密、mac计算使用。
131.2-2:接收请求端发送的加密报文数据;其中,加密报文数据是所述请求端调用密码键盘并利用所述终端工作密钥对待加密的报文数据进行加密以及mac值计算后得到的。
132.其中,前端应用系统接收到终端工作密钥后,如何进行加密以及mac值计算的过程可以参照实施例1的相关陈述。本实施例以后端前置系统的角度进行陈述,故对前端应用系统的实现过程不进行过多陈述。
133.2-3:调用加密机,利用所述保护密钥mackeyenkey计算加密报文数据的mac值;验证接收的报文中mac值与计算出的mac值是否相同,若不相同,拒绝请求;否则,调用加密机
并利用所述保护密钥msgkeyenkey进行解密得到明文报文,再生成响应信息。
134.具体为:首先做报文的完整性校验:调用加密机使用数据库保存的mac密钥加密密钥mackeyenkey生成的mac密钥mackey进行报文的mac计算,然后与之比对报文头里的mac是否一致,如果不一致,则拒绝该请求,否则,调用加密机使用数据库保存的报文加密密钥的加密密钥msgkeyenkey生成报文加密密钥msgkey对加密报文进行解密,得到明文报文后,进行后续业务逻辑处理,生成响应信息。
135.实施例4:
136.本实施例继续以应用于后端前置系统为例,用于对生成的响应信息进行加密,加密后再发送给前端应用系统。本实施例提供一种报文加密方法,包括以下步骤:
137.3-1:获取包含响应信息的报文数据。
138.3-2:调用加密机,利用所述保护密钥mackeyenkey、所述保护密钥msgkeyenkey对包含响应信息的报文数据进行加密以及mac值计算,再将所述mac值和密文以报文方式发送给请求端,以供前端应用系统利用所述终端工作密钥进行mac值验证和解密,最终执行响应。
139.具体为:调用加密机使用数据库保存的报文加密密钥的加密密钥msgkeyenkey生成的报文加密密钥msgkey进行报文加密,并调用加密机使用数据库保存的mac密钥加密密钥mackeyenkey生成的mac密钥mackey对得到的密文计算mac校验值,将mac校验值放置到报文头,密文作为报文体。
140.应当理解,前端应用系统如何利用终端工作密钥进行mac值验证和解密的过程,可以参照实施例1的相关陈述。
141.实施例5:
142.本实施例继续以应用于前端应用系统为例,用于对加密的包含响应信息的报文数据进行解密。本实施例提供一种报文解密方法,包括以下步骤:
143.4-1:接收响应端发送的包含响应信息的加密报文数据,其中,所述加密报文数据是所述响应端调用加密机并利用所述终端工作密钥对包含响应信息的报文数据进行加密以及mac值计算后得到的。
144.本实施例以前端应用系统的角度进行陈述,后端前置系统如何利用终端工作密钥对包含响应信息的报文数据进行加密以及mac值计算可以参照实施例1的相关陈述。此外,终端工作密钥如何获取也可以参照实施例1的相关陈述。
145.4-2:调用密码键盘,利用所述保护密钥mackeyenkey计算加密报文数据的mac值;验证接收的加密报文中mac值与计算出的mac值是否相同,若不相同,拒绝请求;否则,调用密码键盘并利用所述保护密钥msgkeyenkey进行解密得到明文报文,再执行响应;
146.具体为:首先对密文报文数据做mac校验:调用密码键盘并使用mackeyenkey生成的mackey对密文报文数据计算mac校验值,然后与之比对报文头里的mac是否一致,如果不一致,给出友好提示,并结束当前业务流程,否则使用msgkeyenkey生成msgkey对密文报文数据进行解密,得到明文后,交由前端应用系统的业务模块的后续处理流程继续办理。
147.需要说明的是,实施例2-5均是以前端应用系统或者后端前置系统的角度进行陈述,因此,终端工作密钥的获取过程以及终端主密钥存入数据库终端密钥表、将终端主密钥导入到密码键盘均可以参照实施例1的相关陈述。
148.为了更清楚说明实施例1-5中涉及的加密和mca值的计算过程,给出如下实例:
149.关于前端应用系统的报文数据加密:
150.f
encc
(v,msg,alg)=f
jsenc
(f
eppencmsgkey
(v,alg),f
hex
(msg),alg)
151.其中,参数v为初始向量,用于生成报文加密密钥msgkey,取值为自助终端设备的编号;msg为待加密报文;alg为加密算法类型,本实施例取值为sm4或3des。
152.f
eppencmsgkey
(v,alg):表示通过该方法生成报文加密密钥msgkey。该方法先对初始向量v进行16进制扩展处理,不足32个字符的,右补“00”,然后通过调用密码键盘,使用保护密钥msgkeyenkey对其进行加密,加密算法类型由alg指定。返回加密后的数据,作为报文加密密钥msgkey。
153.f
hex
(msg):表示对待加密报文数据msg进行16进制扩展处理。
154.f
jsenc
(f
eppencmsgkey
(v,alg),f
hex
(msg),alg):表示利用密钥msgkey和alg指定加密算法对处理后的报文数据进行加密,加密模式使用ecb。在加密前,根据alg算法类型对报文数据进行不同长度的右填充“00”,若为sm4类型,填充后的总数据长度为16整数倍,若为3des类型,填充后的总数据长度为8整数倍。
155.例如:自助终端(编号:00800001),加密算法类型alg为sm4算法,报文加密密钥的密钥msgkeyenkey:12de1234a234a23b1234f23ee234fc34,mac密钥加密密钥msgkeyenkey:dfd8a391375403c94ffc978dd962314a,所述前端应用系统发送的明文报文数据:
156.{"header":{"devid":"00800001","macdata":""},"body":{"picdata1":"123123334323","picdata2":"3452344444","name":"李四","idno":"432234433132222222"}},其处理过程:
157.初始向量v=00800001,对其进行16进制扩展、并填充处理后得到hex(v)=30303830303030310000000000000000,经计算得到:
158.msgkey=f
eppencmsgkey
(v,alg)=6dd1cae75f983c95c6caa61d3373fe86
159.msg={"picdata1":"123123334323","picdata2":"3452344444","name":"李四","idno":"432234433132222222"}
160.f
hex
(msg)
161.=7b227069634461746131223a22313233313233333334333233222c227069634461746132223a2233343532333434343434222c226e616d65223a22c0eecbc4222c2269644e6f223a22343332323334343333313332323232323232227d
162.f
jsenc
(f
eppencmsgkey
(v,alg),f
hex
(msg),alg)
163.=1e717f9bae72f6f4def98badff7899724943ff36101941cd3dcebd61bfdea17e81e0b8f0ebc83c15963a4534fcb7b3b23532f78fc95f3e7028d38e586349383268961ab5c779f5fc8b2fcc32ea102df44295daf14bc8a4e39e3c9f1114027327
164.经以上加密方法处理得到报文密文:
165.1e717f9bae72f6f4def98badff7899724943ff36101941cd3dcebd61bfdea17e81e0b8f0ebc83c15963a4534fcb7b3b23532f78fc95f3e7028d38e586349383268961ab5c779f5fc8b2fcc32ea102df44295daf14bc8a4e39e3c9f1114027327。
166.再对该报文密文进行mac计算,满足数据完整性要求。
167.具体mac计算方法:
168.f
macc
(v,encmsg,alg)=f
jsmac
(f
eppencmackey
(v,alg),encmsg,alg)
169.其中参数v为初始向量,用于生成mac密钥mackey,取值为自助终端编号;encmsg为经加密处理的报文密文数据;alg为mac计算算法类型,取值为sm4或3des。
170.f
eppencmackey
(v,alg):表示通过该方法生成mac密钥mackey。该方法先对初始向量v进行处理,将其进行16进制扩展,不足32个字符的,右补“00”,然后通过调用密码键盘,使用mackeyenkey对其进行加密,加密算法类型由alg指定。返回加密后的数据,作为mac密钥mackey。
171.f
jsmac
(f
eppencmackey
(v,alg),encmsg,alg):将报文密文数据用密钥mackey和alg指定密钥算法类型进行ansi 9.9算法mac计算,得到报文密文数据mac校验值macdata。
172.以加密方法使用的报文为例,计算过程:
173.mackey=f
eppencmackey
(v,alg)=9de19b709dd9f49048d5e9ab11a6d17d
174.得到的mac校验值为:
175.f
jsmac
(f
eppencmackey
(v,alg),encmsg,alg)=37fa87dc6df3c5226888bf77efd5dd92
176.最后,所述前端应用系统最终发送给所述后端前置系统的报文数据为:
177.{"header":{"devid":"00800001","macdata":"37fa87dc6df3c5226888bf77efd5dd92"},"body":"1e717f9bae72f6f4def98badff7899724943ff36101941cd3dcebd61bfdea17e81e0b8f0ebc83c15963a4534fcb7b3b23532f78fc95f3e7028d38e586349383268961ab5c779f5fc8b2fcc32ea102df44295daf14bc8a4e39e3c9f1114027327"}
178.首先对收到的密文进行mac计算,并进行mac校验,满足数据完整性要求。
179.具体mac计算、校验方法:
180.f
macchckp
(v,encmsg,macdata,alg)=f
cmp
(f
hsmmac
(f
hsmencmackey
(v,alg),encmsg,alg),macdata)
181.其中,参数v为初始向量,与所述前端应用系统mac计算过程用到的初始向量一致,用于生成mac密钥mackey,取值为自助终端编号;encmsg为经加密处理的报文密文数据;alg为mac计算算法类型,取值为sm4或3des。macdata为所述前端应用系统上送的报文密文数据mac值。
182.f
hsmencmackey
(v,alg):通过该方法生成mac计算密钥mackey。该方法先对初始向量v进行处理,将其进行16进制扩展,不足32个字符的,右补“00”,然后通过调用加密机,使用保护密钥mackeyenkey对其进行加密,加密算法类型由alg指定。返回加密后的数据,作为mac计算密钥mackey。
183.f
hsmmac
(f
hsmencmackey
(v,alg),encmsg,alg):针对报文密文数据,利用mac计算密钥mackey和alg指定密钥算法类型调用加密机进行ansi 9.9算法mac计算,得到报文密文数据mac校验值macdata。
184.f
cmp
(f
hsmmac
(f
hsmencmackey
(v,alg),encmsg,alg),macdata):将调用加密机得到的macdata与所述前端应用系统上送的报文密文数据mac值macdata进行等值比较,相等则校验通过,否则校验失败。
185.例如:自助终端(编号:00800001),加密算法类型alg为sm4算法,报文加密密钥的密钥msgkeyenkey:12de1234a234a23b1234f23ee234fc34,mac密钥加密密钥msgkeyenkey:dfd8a391375403c94ffc978dd962314a,收到所述前端应用系统发送的报文数据:
186.{"header":{"devid":"00800001","macdata":"37fa87dc6df3c5226888bf77efd5dd92"},"body":"1e717f9bae72f6f4def98badff7899724943ff36101941cd3dcebd61bfdea17e81e0b8f0ebc83c15963a4534fcb7b3b23532f78fc95f3e7028d38e586349383268961ab5c779f5fc8b2fcc32ea102df44295daf14bc8a4e39e3c9f1114027327"},其处理过程:
187.初始向量v=00800001,对其进行16进制扩展、并填充处理后得到hex(v)=30303830303030310000000000000000,经计算得到:
188.mackey=f
hsmencmackey
(v,alg)=9de19b709dd9f49048d5e9ab11a6d17d
189.macdata=37fa87dc6df3c5226888bf77efd5dd92
190.encmsg=1e717f9bae72f6f4def98badff7899724943ff36101941cd3dcebd61bfdea17e81e0b8f0ebc83c15963a4534fcb7b3b23532f78fc95f3e7028d38e586349383268961ab5c779f5fc8b2fcc32ea102df44295daf14bc8a4e39e3c9f1114027327
191.得到的mac校验值为:
192.f
hsmmac
(f
hsmencmackey
(v,alg),encmsg,alg)=37fa87dc6df3c5226888bf77efd5dd92
193.f
cmp
(f
hsmmac
(f
hsmencmackey
(v,alg),encmsg,alg),macdata),校验通过。
194.具体解密方法:
195.f
decp
(v,encmsg,alg)=f
hsmdec
(f
hsmencmsgkey
(v,alg),encmsg,alg)
196.其中,参数v为初始向量,与所述前端应用系统加密过程用到的初始向量一致,用于生成报文解密密钥msgkey,取值为自助终端编号;encmsg为密文;alg为解密算法类型,取值为sm4或3des。
197.f
hsmencmsgkey
(v,alg):表示通过该方法生成报文解密密钥msgkey。该方法先对初始向量v进行处理,将其进行16进制扩展,不足32个字符的,右补“00”,然后通过调用加密机,使用保护密钥msgkeyenkey对其进行加密,加密算法类型由alg指定。返回加密后的数据,作为报文解密密钥msgkey。
198.f
hsmdec
(f
hsmencmsgkey
(v,alg),encmsg,alg):表示将收到的报文密文数据用密钥msgkey和alg指定加密算法进行解密,解密模式使用ecb。因考虑到加密机一次处理数据大小有限,特设计将待解密数据按1024字节大小分块分批调用加密机进行解密,将每次解密得到的数据进行拼接得到最后的报文。再对其进行去填充字符处理。最后对其进行16进制转字符处理,还原可读明文格式数据。
199.msgkey=f
hsmencmsgkey
(v,alg)=6dd1cae75f983c95c6caa61d3373fe86
200.msg=1e717f9bae72f6f4def98badff7899724943ff36101941cd3dcebd61bfdea17e81e0b8f0ebc83c15963a4534fcb7b3b23532f78fc95f3e7028d38e586349383268961ab5c779f5fc8b2fcc32ea102df44295daf14bc8a4e39e3c9f1114027327
201.f
hsmdec
(f
hsmencmsgkey
(v,alg),encmsg,alg)
202.={"picdata1":"123123334323","picdata2":"3452344444","name":"李四","idno":"432234433132222222"}
203.经以上解密方法处理得到报文体明文:
204.{"picdata1":"123123334323","picdata2":"3452344444","name":"李四","idno":"432234433132222222"}
205.最后,所述后端前置系统接收到所述前端应用系统的上送的报文明文数据为:
206.{"header":{"devid":"0080001","macdata":"37fa87dc6df3c5226888bf77efd5dd92"},"body":{"picdata1":"123123334323","picdata2":"3452344444","name":"李四","idno":"432234433132222222"}}
207.具体加密方法:
208.f
encp
(v,msg,alg)=f
hsmenc
(f
hsmencmsgkey
(v,alg),f
hex
(msg),alg)
209.其中,参数v为初始向量,与所述前端应用系统加密过程用到的初始向量一致,用于生成报文加密密钥msgkey,取值为自助终端编号;msg为待加密报文;alg为加密算法类型,取值为sm4或3des。
210.f
hsmencmsgkey
(v,alg):通过该方法生成报文加密密钥msgkey。该方法先对初始向量v进行处理,将其进行16进制扩展,不足32个字符的,右补“00”,然后通过调用加密机,使用msgkeyenkey对其进行加密,加密算法类型由alg指定。返回加密后的数据,作为报文加密密钥msgkey。
211.f
hex
(msg):对待加密报文数据msg进行16进制扩展处理。
212.f
hsmenc
(f
hsmencmsgkey
(v,alg),f
hex
(msg),alg):将处理后的报文数据用密钥msgkey和alg指定加密算法进行加密,加密模式使用ecb。在加密前,根据alg算法类型对报文数据进行不同长度的右填充“00”,若为sm4类型,填充后的总数据长度为16整数倍,若为3des类型,填充后的总数据长度为8整数倍。因考虑到加密机一次处理数据大小有限,特设计将填充后的待加密数据按1024字节大小分块分批调用加密机进行加密,将每次加密得到的数据进行拼接得到最后的加密报文。
213.例如:自助终端(编号:00800001),加密算法类型alg为sm4算法,报文加密密钥的密钥msgkeyenkey:12de1234a234a23b1234f23ee234fc34,mac密钥加密密钥msgkeyenkey:dfd8a391375403c94ffc978dd962314a,返回所述前端应用系统响应报文数据明文如:
214.{"header":{"devid":"00800001","macdata":""},"body":{"result":"0000",name":"李四","idno":"432234433132222222","custid":"12345678901234"}},其处理过程:
215.初始向量v=00800001,对其进行16进制扩展、并填充处理后得到hex(v)=30303830303030310000000000000000,经计算得到:
216.msgkey=f
hsmencmsgkey
(v,alg)=6dd1cae75f983c95c6caa61d3373fe86
217.msg={"result":"0000",name":"李四","idno":"432234433132222222","custid":"12345678901234"}
218.f
hex
(msg)
219.=7b22726573756c74223a2230303030222c6e616d65223a22c0eecbc4222c2269644e6f223a22343332323334343333313332323232323232222c22637573744964223a223132333435363738393031323334227d
220.f
hsmenc
(f
hsmencmsgkey
(v,alg),f
hex
(msg),alg)
221.=a26d0a5c87218735a1a0da569ecada5eb106908a86384fcb328f1a38bfd8407da1620edd320023f5c39d5ed47c3f0333c0702b18f5a149e077e3299271263aa5b635333c247a8f43cccdcaa00d647a8866fb0eb9b4ed4418f93ef64824d2f07f
222.经以上加密方法处理得到报文密文:
223.a26d0a5c87218735a1a0da569ecada5eb106908a86384fcb328f1a38bfd8407da1620edd320023f5c39d5ed47c3f0333c0702b18f5a149e077e3299271263aa5b635333c247a8f43cccdcaa00d647a8866fb0eb9b4ed4418f93ef64824d2f07f
224.再对该报文密文进行mac计算,满足数据完整性要求。
225.具体mac计算方法:
226.f
macp
(v,encmsg,alg)=f
hsmmac
(f
hsmencmackey
(v,alg),encmsg,alg)
227.其中,参数v为初始向量,与所述前端应用系统mac计算过程用到的初始向量一致,用于生成mac密钥mackey,取值为自助终端编号;encmsg为经加密处理的报文密文数据;alg为mac计算算法类型,取值为sm4或3des。
228.f
hsmencmackey
(v,alg):通过该方法生成mac密钥mackey。该方法先对初始向量v进行处理,将其进行16进制扩展,不足32个字符的,右补“00”,然后通过调用加密机,使用mackeyenkey对其进行加密,加密算法类型由alg指定。返回加密后的数据,作为mac密钥mackey。
229.f
hsmmac
(f
hsmencmackey
(v,alg),encmsg,alg):将报文密文数据用密钥mackey和alg指定密钥算法类型调用加密机进行ansi 9.9算法mac计算,得到报文密文数据mac校验值macdata。
230.以加密方法使用的报文为例,计算过程:
231.mackey=f
hsmencmackey
(v,alg)=9de19b709dd9f49048d5e9ab11a6d17d
232.得到的mac校验值为:
233.f
hsmmac
(f
hsmencmackey
(v,alg),encmsg,alg)=5a575b49482d1344a76f68c6fcfdcd87
234.最后,所述后端前置系统最终返回给所述前端应用系统的报文数据为:
235.{"header":{"devid":"00800001","macdata":"5a575b49482d1344a76f68c6fcfdcd87"},"body":"a26d0a5c87218735a1a0da569ecada5eb106908a86384fcb328f1a38bfd8407da1620edd320023f5c39d5ed47c3f0333c0702b18f5a149e077e3299271263aa5b635333c247a8f43cccdcaa00d647a8866fb0eb9b4ed4418f93ef64824d2f07f"}
236.首先对收到的密文进行mac计算,并进行mac校验,满足数据完整性要求。
237.具体mac计算、校验方法:
238.f
macchckc
(v,encmsg,macdata,alg)=f
cmp
(f
jsmac
(f
eppencmackey
(v,alg),encmsg,alg),macdata)
239.其中,参数v为初始向量,与所述后端前置系统mac计算过程用到的初始向量一致,用于生成mac密钥mackey,取值为自助终端编号;encmsg为经加密处理的报文密文数据;alg为mac计算算法类型,取值为sm4或3des。macdata为所述后端前置系统返回的报文密文数据mac值。
240.f
eppencmackey
(v,alg):通过该方法生成mac密钥mackey。该方法先对初始向量v进行处理,将其进行16进制扩展,不足32个字符的,右补“00”,然后通过调用密码键盘,使用mackeyenkey对其进行加密,加密算法类型由alg指定。返回加密后的数据,作为mac密钥mackey。
241.f
jsmac
(f
eppencmackey
(v,alg),encmsg,alg):将报文密文数据用密钥mackey和alg指定密钥算法类型进行ansi 9.9算法mac计算,得到报文密文数据mac校验值macdata。
242.f
cmp
(f
jsmac
(f
eppencmackey
(v,alg),encmsg,alg),macdata):将得到的macdata与所述后端前置系统返回的报文密文数据mac值macdata进行等值比较,相等则校验通过,否则校验失败。
243.例如:自助终端(编号:00800001),加密算法类型alg为sm4算法,报文加密密钥的密钥msgkeyenkey:12de1234a234a23b1234f23ee234fc34,mac密钥加密密钥msgkeyenkey:dfd8a391375403c94ffc978dd962314a,收到所述后端前置系统返回的报文数据:
244.{"header":{"devid":"00800001","macdata":"5a575b49482d1344a76f68c6fcfdcd87"},"body":"a26d0a5c87218735a1a0da569ecada5eb106908a86384fcb328f1a38bfd8407da1620edd320023f5c39d5ed47c3f0333c0702b18f5a149e077e3299271263aa5b635333c247a8f43cccdcaa00d647a8866fb0eb9b4ed4418f93ef64824d2f07f"},其处理过程:
245.初始向量v=00800001,对其进行16进制扩展、并填充处理后得到hex(v)=30303830303030310000000000000000,经计算得到:
246.mackey=f
eppencmackey
(v,alg)=9de19b709dd9f49048d5e9ab11a6d17d
247.macdata=5a575b49482d1344a76f68c6fcfdcd87
248.encmsg=a26d0a5c87218735a1a0da569ecada5eb106908a86384fcb328f1a38bfd8407da1620edd320023f5c39d5ed47c3f0333c0702b18f5a149e077e3299271263aa5b635333c247a8f43cccdcaa00d647a8866fb0eb9b4ed4418f93ef64824d2f07f
249.得到的mac校验值为:
250.f
jsmac
(f
eppencmackey
(v,alg),encmsg,alg)=5a575b49482d1344a76f68c6fcfdcd87
251.f
cmp
(f
jsmac
(f
eppencmackey
(v,alg),encmsg,alg),macdata),mac校验通过。
252.具体解密方法:
253.f
decc
(v,msg,alg)=f
jsdec
(f
eppencmsgkey
(v,alg),msg,alg)
254.其中,参数v为初始向量,与所述前端应用系统加密过程用到的初始向量一致,用于生成报文加密密钥msgkey,取值为自助终端编号;msg为待加密报文;alg为加密算法类型,取值为sm4或3des。
255.f
eppencmsgkey
(v,alg):通过该方法生成报文加密密钥msgkey。该方法先对初始向量v进行处理,将其进行16进制扩展,不足32个字符的,右补“00”,然后通过调用加密机,使用msgkeyenkey对其进行加密,加密算法类型由alg指定。返回加密后的数据,作为报文加密密钥msgkey。
256.f
jsdec
(f
eppencmsgkey
(v,alg),msg,alg):将收到的报文密文数据用密钥msgkey和alg指定加密算法进行解密,解密模式使用ecb。将解密后端数据再对其进行去填充字符处理。最后对其进行16进制转字符处理,还原可读明文格式数据。
257.例如:自助终端(编号:00800001),加密算法类型alg为sm4算法,报文加密密钥的密钥msgkeyenkey:12de1234a234a23b1234f23ee234fc34,mac密钥加密密钥msgkeyenkey:dfd8a391375403c94ffc978dd962314a,收到所述后端前置系统返回的报文数据:
258.{"header":{"devid":"00800001","macdata":"5a575b49482d1344a76f68c6fcfdcd87"},"body":"a26d0a5c87218735a1a0da569ecada5eb106908a86384fcb328f1a38bfd8407da1620edd320023f5c39d5ed47c3f0333c0702b18f5a149e077e3299271263aa5b635333c247a8f43cccdcaa00d647a8866fb0eb9b4ed4418f93ef64824d2f07f"},其处理过程:
259.初始向量v=00800001,对其进行16进制扩展、并填充处理后得到hex(v)=30303830303030310000000000000000,经计算得到:
260.msgkey=f
eppencmsgkey
(v,alg)=6dd1cae75f983c95c6caa61d3373fe86
261.msg=a26d0a5c87218735a1a0da569ecada5eb106908a86384fcb328f1a38bfd8407da1620edd320023f5c39d5ed47c3f0333c0702b18f5a149e077e3299271263aa5b635333c247a8f43cccdcaa00d647a8866fb0eb9b4ed4418f93ef64824d2f07f
262.f
jsdec
(f
eppencmsgkey
(v,alg),msg,alg)={"result":"0000",name":"李四","idno":"432234433132222222","custid":"12345678901234"}
263.经以上解密方法处理得到报文体明文:
264.{"result":"0000",name":"李四","idno":"432234433132222222","custid":"12345678901234"}
265.最后,所述前端应用系统接收到后端前置系统返回的报文明文数据为:
266.{"header":{"devid":"0080001","macdata":"5a575b49482d1344a76f68c6fcfdcd87"},"body":{"result":"0000",name":"李四","idno":"432234433132222222","custid":"12345678901234"}}】
267.实施例6:
268.参照实施例1,本实施例提供一种基于所述加解密方法的系统,其包括前端应用系统、后端前置系统以及渠道业务管理系统。
269.其中,前端应用系统包括:终端签到模块、业务模块、密码键盘设备js模块、密钥管理模块、报文通讯模块。
270.具体的,终端签到模块用于向后端前置系统发送密钥申请请求,进而前端应用系统获取到后端系发送的终端工作密钥。业务模块,用于获取待加密的报文数据(包含客户信息的报文数据);密钥管理模块,用于将终端工作密钥导入密码键盘;密码键盘设备js模块调用密码键盘,利用所述保护密钥mackeyenkey、所述保护密钥msgkeyenkey对包含敏感数据的报文数据进行加密以及mac值计算。前端通讯模块,用于再将所述mac值和密文以报文方式发送给后端前置系统。
271.其中,后端前置系统包括:终端密钥管理模块、渠道接入模块、加密机通讯模块。
272.具体的,终端密钥管理模块用于响应前端应用系统的密钥申请请求调用加密机生成终端工作密钥;渠道接入模块用于构建与前端应用系统的通讯连接,进而实现数据输送;加密机通讯模块用于调用加密机,利用所述保护密钥mackeyenkey计算加密报文数据的mac值;验证接收的报文中mac值与计算出的mac值是否相同,若不相同,拒绝请求;否则,调用加密机并利用所述保护密钥msgkeyenkey进行解密得到明文报文。
273.本实施例中,加密机通讯模块,提供相应的接口抽象,可对接不同厂商的加密机。渠道接入模块用以向所述前端应用系统提供接口服务。
274.考虑到包含响应信息的报文数据的处理过程,前端应用系统以及后端前置系统的各个模块的处理过程如下:
275.后端前置系统的加密机通讯模块用于调用加密机,并使用数据库保存的报文加密密钥的加密密钥msgkeyenkey生成的报文加密密钥msgkey进行报文加密,并调用加密机使用数据库保存的mac密钥加密密钥mackeyenkey生成的mac密钥mackey对得到的密文计算
mac校验值,将mac校验值放置到报文头,密文作为报文体,一并通过渠道接入模块返回给所述前端应用系统。
276.前端应用系统的前端通讯模块收到响应报文后,密码键盘设备js模块调用密码键盘并使用mackeyenkey生成的mackey对密文报文数据计算mac校验值,然后与之比对报文头里的mac是否一致,如果不一致,给出友好提示,并结束当前业务流程,否则调用密钥键盘,并使用msgkeyenkey生成msgkey对密文报文数据进行解密,得到明文后,交由前端应用系统的业务模块的后续处理流程继续办理。
277.需要说明的是,参照实施例2-5的方法内容以及上述前端应用系统以及后端前置系统各个功能模块的实现过程,本发明的前端应用系统、后端前置系统也可以作为独立子系统,其功能模块以及功能模块的实现过程参照实施例2-5的方法内容以及实施例6中的功能模块的内容。
278.渠道业务管理系统的功能模块的划分可以参照图1所示,由于该模块非本发明的保护重点,因此对其不进行具体的陈述以及约束。简述而言:渠道业务管理系统包括用以向所述前端应用系统提供终端密钥算法类型参数化配置的终端参数管理模块、用以终端主密钥信封打印和向所述后端前置系统提供的终端主密钥绑定的终端密钥管理模块、用以调用加密机做终端主密钥信封打印的加密机通讯模块。
279.实施例7:
280.本实施例提供一种可读存储介质,其存储了计算机程序,所述计算机程序被处理器调用以实现:
281.实施例1-5的一种报文加密方法的步骤或一种报文解密方法的步骤或一种报文加解密方法的步骤。具体可以参照前述实施例1-5的内容,在此不再赘述。
282.所述可读存储介质为计算机可读存储介质,其可以是前述任一实施例所述的控制器的内部存储单元,例如控制器的硬盘或内存。所述可读存储介质也可以是所述控制器的外部存储设备,例如所述控制器上配备的插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)等。进一步地,所述可读存储介质还可以既包括所述控制器的内部存储单元也包括外部存储设备。所述可读存储介质用于存储所述计算机程序以及所述控制器所需的其他程序和数据。所述可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。
283.基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的可读存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccess memory)、磁碟或者光盘等各种可以存储程序代码的介质。
284.需要强调的是,本发明所述的实例是说明性的,而不是限定性的,因此本发明不限于具体实施方式中所述的实例,凡是由本领域技术人员根据本发明的技术方案得出的其他实施方式,不脱离本发明宗旨和范围的,不论是修改还是替换,同样属于本发明的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1