优化数据链路层报文的方法及装置与流程

文档序号:14843408发布日期:2018-06-30 14:28阅读:290来源:国知局
优化数据链路层报文的方法及装置与流程

本发明涉及计算机网络及计算机软件领域,具体涉及一种优化数据链路层报文的方法及装置。



背景技术:

伴随着智能手机的普及和互联网时代到来,越来越多的企业将自身的核心业务对接至手机平台中,其中不可避免的涉及企业的经营数据、用户订单信息以及网银支付信息等敏感信息。京东数聚汇就是一款承载京东大数据移动报表的手机App平台。

目前在保证链路层数据安全方面,目前普遍采用以安全准入、加密信道为手段,建立提供数据保密性和完整性的安全通信信道。其中,为实现信道安全,现有技术中通常采用虚拟专用网络(VPN),即在公用网络上建立专用网络,进行加密通讯;而对于传输数据的加密方式,则普遍采用Des加密、Aes加密等加密算法对网络传输中的数据进行加密。

然而,现有技术存在如下缺点:

1、由于VPN成本高、使用不便,因此无法作为常规手段面向大群体用户推广,并且VPN也存在技术隐患,偶尔会暴露一些安全漏洞。

2、通过采用加密方式在数据加密之后,由于数据包过大降低了数据的网络传输效率,并且对移动终端和服务器端都需要对传输数据进行加解密操作,从而增加了系统负担,不利于用户使用。



技术实现要素:

有鉴于此,本发明提供一种优化数据链路层报文的方法及装置,能够根据数据域的安全级别进行加密,而无需对整个网络传输的数据进行加密,从而减少了数据传输的量级,有效地提高了网络传输效率,降低了移动终端和服务器的交互过程中对传输数据进行加解密的工作负担。

本发明的技术方案是提供一种优化数据链路层报文的方法,该方法包括:

接收用户的业务请求,并且获取所述业务请求的请求报文,其中所述请求报文包括报文头以及应用数据;

解析所述请求报文,确认所述业务请求的业务类型,并且根据所述业务类型获取所述应用数据的数据域列表;

解析所述数据域列表,获取所述数据域中的基础数据;

根据所述业务类型,将所述基础数据按照预设顺序进行拼装,获取完整业务数据;

依据业务逻辑对所述完整业务数据进行处理生成业务反馈信息,将所述业务反馈信息按照与所述业务类型对应的所述数据域列表以及所述预设顺序进行封装并将所述反馈信息发送至所述移动终端。

可选地,所述请求报文还包括:报文长度以及TPEU。

可选地,所述数据域列表包括但不限于强制域、条件域、选择域、加密域以及其中的可选择性组合。

可选地,在解析所述数据域列表,获取所述数据域中的基础数据的步骤中还包括:如果所述数据域列表包括加密域,则通过指定密钥解密后获取所述加密域中的加密数据。

可选地,所述加密方式包括:Aes加密或Des加密。

本发明还提供一种优化数据链路层报文的装置,该装置包括:

请求接收模块,用于接收所述业务请求,并且获取所述业务请求的请求报文,其中所述请求报文包括报文头以及应用数据;

报文解析模块,用于解析所述请求报文,确认所述业务请求的业务类型,并且根据所述业务类型获取所述应用数据的数据域列表;

数据解析模块,用于解析所述数据域列表,获取所述数据域中的基础数据;

数据拼装模块,用于根据所述业务类型,按照预设顺序拼装所述基础数据,获取完整业务数据;

业务反馈模块,用于依据业务逻辑对所述完整业务数据进行处理生成业务反馈信息,将所述业务反馈信息按照与所述业务类型对应的预设数据域以及预设顺序进行封装和加密并将所述反馈信息发送至所述移动终端。

可选地,所述请求报文还包括:报文长度以及TPEU。

可选地,所述数据域列表包括但不限于强制域、条件域、选择域、加密域以及其中的可选择性组合。

可选地,所述数据解析模块还用于:如果所述数据域列表包括加密域,则通过指定密钥解密后获取所述加密域中的加密数据。

可选地,所述加密方式包括:Aes加密以及Des加密。

本发明还提供一种优化数据链路层报文的终端装置,该终端装置包括:存储器和处理器,其中,所述存储器用于存储指令,所述处理器用于执行所述指令用于:

接收用户的业务请求,并且获取所述业务请求的请求报文,其中所述请求报文包括报文头以及应用数据;

解析所述请求报文,确认所述业务请求的业务类型,并且根据所述业务类型获取所述应用数据的数据域列表;

解析所述数据域列表,获取所述数据域中的基础数据;

根据所述业务类型,将所述基础数据按照预设顺序进行拼装,获取完整业务数据;

依据业务逻辑对所述完整业务数据进行处理生成业务反馈信息,将所述业务反馈信息按照与所述业务类型对应的所述数据域列表以及所述预设顺序进行封装并将所述反馈信息发送至所述移动终端。

通过本发明提供的优化数据链路层报文的方法及装置,可以实现对数据域的类型、预设顺序以及参数规则的自定义,在加强了数据安全性的前提下,可以根据不同的业务类型的数据,封装为多组不同类型的数据域,扩展了数据报文的业务范围,减少了数据间的耦合度。此外,本发明还可以根据这些数据域的安全级别分别对其进行加密,而无需对整个网络传输的数据进行加密,从而减少了数据传输的量级,有效地提高了网络传输效率,降低了移动终端和服务器的交互过程中对传输数据进行加解密的工作负担。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:

图1为本发明一实施例的优化数据链路层报文方法的流程示意图;

图2为本发明一实施例的优化数据链路层报文装置的示意图;

图3为本发明一实施例的优化数据链路层报文的终端装置的示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。

本领域技术技术人员知道,本发明的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。

在本文中,需要理解的是,所涉及的术语中:

IOS8583是一种报文协议的类型,多用于金融交易。

Des加密是一种对称加密算法,很可能是使用最广泛的密钥系统,特别是在保护金融数据的安全中,最初开发的DEA是嵌入硬件中的。

Aes加密:在密码学中又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准。这个标准用来替代原先的DES,已经被多方分析且广为全世界所使用。

BCD码(Binary-Coded Decimal),亦称二进码十进数或二-十进制代码,是一种二进制的数字编码形式。

示例性方法

下面参考图1对本发明示例性实施方式的优化数据链路层报文方法进行介绍。

如图1所示,为本发明一实施方式的优化数据报文方法的流程图。

如图所示,优化数据链路层报文方法可以包括:

步骤S101:接收用户的业务请求,并且获取所述业务请求的请求报文,其中所述请求报文包括报文头以及应用数据;

步骤S102:解析所述请求报文,确认所述业务请求的业务类型,并且根据所述业务类型获取所述应用数据的数据域列表;

步骤S103:解析所述数据域列表,获取所述数据域中的基础数据;

步骤S104:根据所述业务类型,将所述基础数据按照预设顺序进行拼装,获取完整业务数据;

步骤S105:依据业务逻辑对所述完整业务数据进行处理生成业务反馈信息,将所述业务反馈信息按照与所述业务类型对应的所述数据域列表以及所述预设顺序进行封装并将所述反馈信息发送至所述移动终端。

可选地,所述请求报文还包括:报文长度以及TPEU。

可选地,所述数据域列表包括但不限于强制域、条件域、选择域、加密域以及其中的可选择性组合。

可选地,在解析所述数据域列表,获取所述数据域中的基础数据的步骤中还包括:

如果所述数据域列表包括加密域,则通过指定密钥解密后获取所述加密域中的加密数据。

实施例

下面结合一个具体实施例对本发明进行具体描述,然而值得注意的是该具体实施例仅是为了更好地描述本发明,并不构成对本发明的不当限定。

步骤S101:接收用户的业务请求,并且获取所述业务请求的请求报文,该请求报文包括报文头以及应用数据。

具体来说,服务终端与移动终端之间采用基于TCP/IP协议、面向连接的Socket方式进行通讯。移动终端是每次通讯交互的发起方,服务终端则响应各个接入的移动终端的业务请求。根据用户输入信息以及业务操作,并且经过用户确认之后,移动终端就会向服务终端发送业务请求。数据报文组织采用ISO8583报文协议,并且该数据报文结构可以通过如下表1进行表示,该数据报文结构为:“报文长度+TPDU(协议格式)+报文头+应用数据”,其中:“报文长度”表示报文总长度。在本发明一实施例中,报文头的总长度为12字节,并且压缩时用BCD码表示为6个字节长度的数值。“TPDU(传送协议数据单元)”包括ID、目的地址、源地址;“报文头”包括:应用类别、软件版本号、终端状态、处理要求、保留字段等;“应用数据”包括:ISO8583Msg、交易数据、数据元素定义等。

表1

在上送该请求报文的过程中,由移动终端的应用程序在打包上送时,将根据移动终端的相关自定义信息填入数据报文中的“应用类别”、“软件版本号”和“终端状态”等参数中,以便于服务终端在接收到业务请求之后,根据填入的数值对该业务请求进行相应的处理。

例如:“应用类别”可以“自定义”为:

金融支付类应用为:60、增值业务类支付为:62、数聚汇通用业务为:61

“软件版本号”可以自定义为:

初始版本:21、启用日期:23

“终端状态”可以自定义为:

正常交易状态:0、测试交易状态:1

“处理要求”可以自定义为:无处理要求:0、重新处理:1

值得一提的是,在服务终端返回的响应报文中,由服务终端填入“处理要求”,其他参数保持原值返回,移动终端将根据收到返回报文的报文头中的处理要求进行相应处理。

步骤S102:解析所述请求报文,确认所述业务请求的业务类型,并且根据所述业务类型获取所述应用数据的数据域列表。

具体来说,根据该请求报文的报文头中的“应用类别”的参数,获取与该“应用类别”相对应的应用数据中的“数据域列表”。

例如,不同应用对应如下的数据域列表,并且该数据域列表的样例表可以如表2所示:

业务类型为金融支付类应用的数据域为:MCE

业务类型为增值业务类支付的数据域为:MCO

业务类型为数聚汇通用业务的数据域为:MO

表2

步骤S103:解析所述数据域列表,获取所述数据域中的基础数据;其中,该数据域的基础数据包括:消息类型、交易类型、数据元素;在本发明一实施例中,该数据域的消息类型的长度为4字节,用于定义消息类型;业务数据的长度为16字节,用于定义不同的业务类别;数据元素的长度是不定长字节,并且包含了该数据域的实际数据。

特别的是,如果所述数据域列表包括加密域,则通过指定密钥解密后获取所述加密域中的与业务相关的需要加密的数据。其中,加密数据可以采用Aes加密算法或Des加密算法,在使用指定密匙解密后,即可获得明文数据。

步骤S104:根据所述业务类型,将所述基础数据按照预设顺序进行拼装,获取完整业务数据;

步骤S105:依据业务逻辑对所述完整业务数据进行处理生成业务反馈信息,将所述业务反馈信息按照与所述业务类型对应的所述数据域列表以及所述预设顺序进行封装并将所述反馈信息发送至所述移动终端。

举例说明:

以用户消费为例,当前用户消费了100元时,移动终端将用户消费数据上送到服务终端。待服务终端验证报文后,在用户的余额(1000元)中减去100元,并将余额信息(900元)反馈给移动终端。在此过程中,涉及如下的报文数据:

1、上送的请求报文

报文头:

应用类别为:60(代表金融支付类应用)

软件版本号:2123(初始版本21启用日期23)

终端状态:0(正常交易状态)

处理要求:2(交易上报)

由于该报文的基础数据中的应用类别是60,根据实际业务规定为:代办金融支付类应用,此类别对应的应用数据的预设顺序为:

MCE,即:强制域+条件域+加密域,

其中,强制域:消息类型:0320,表示交易请求;

条件域:20160501000000,表示交易发送时间条件;

加密域:用户名、账号、密码、金额等信息(采用AES解密)。

2、服务终端处理数据的业务逻辑

在将上送的请求报文正确解析后,后台的服务终端按照如下的业务逻辑进行数据处理:

(1)根据账号获取用户信息;

(2)验证用户名和密码的合法性,若通过则进入下一步,否则反应异常;

(3)验证当前用户余额是否大于上送的消费金额,若验证通过则进行下一步,否则反应异常;

(4)余额减去消费金额,并反复剩余金额,将剩余金额数据返回。

3、封装报文并将反馈信息发送至移动终端

其中,反馈信息包括:应用数据和报文头,

(一)应用数据包括:

(1)对用户名、账号、密码、剩余金额数据采用AES加密进行加密,并将加密后的数据作为加密域;

(2)将20160501000011(交易处理完成时间)作为时间条件域;

(3)将0330(交易结果返回)消息类型作为强制域;

(4)应用数据由强制域、条件域、加密域共同组成,并且按照预设顺序为:MCE,即强制域+条件域+加密域的顺序进行排列。

(二)返回报文头包括:

应用类别为:60(代表金融支付类应用)

软件版本号:2123(初始版本21启用日期23)

终端状态:0(正常交易状态)

处理要求:3(返回交易结果)。

最后,移动终端接收并解析服务终端返回的反馈信息,获取反馈信息的返回报文。

如果该返回报文为交易结果报文,则解析该交易结果报文,并显示交易结果;

如果该返回报文为写入命令报文,则将写入命令逐条发送给SQLITE数据库,并将操作结果以数据报文的形式上送给服务终端,继续等待服务终端返回的反馈信息;

如果出现“交易状态异常”情况(原因可能是未收到APDU应答、服务终端的报文接收超时或其它原因),对于支持重试机制的交易,移动终端可向服务终端发送交易重试请求报文,以期继续进行交易。

图2为本发明一实施例的优化数据链路层报文装置的示意图,该装置2包括:

请求接收模块21,用于接收用户的业务请求,并且获取所述业务请求的请求报文,其中所述请求报文包括报文头以及应用数据;

报文解析模块22,用于解析所述请求报文,确认所述业务请求的业务类型,并且根据所述业务类型获取所述应用数据的数据域列表;

数据解析模块23,用于解析所述数据域列表,获取所述数据域中的基础数据;

数据拼装模块24,用于根据所述业务类型,将所述基础数据按照预设顺序进行拼装,获取完整业务数据;

业务反馈模块25,用于依据业务逻辑对所述完整业务数据进行处理生成业务反馈信息,将所述业务反馈信息按照与所述业务类型对应的所述数据域以及所述预设顺序进行封装并将所述反馈信息发送至所述移动终端。

可选地,所述请求报文还包括:报文长度以及TPEU。

可选地,所述数据域列表包括但不限于强制域、条件域、选择域、加密域以及其中的可选择性组合。

可选地,所述数据解析模块24还用于:如果所述数据域列表包括加密域,则通过指定密钥解密后获取所述加密域中的加密数据。

可选地,所述加密方式包括:Aes加密以及Des加密。

由于本发明提供的优化数据链路层报文装置是上述方法对应的装置,故在此不再赘述。

图3为本发明提供的一种优化数据链路层报文的终端装置构成图,该终端装置3包括:存储器31和处理器32,其中,所述存储器31用于存储指令,所述处理器32用于执行所述指令用于:

接收用户的业务请求,并且获取所述业务请求的请求报文,其中所述请求报文包括报文头以及应用数据;

解析所述请求报文,确认所述业务请求的业务类型,并且根据所述业务类型获取所述应用数据的数据域列表;

解析所述数据域列表,获取所述数据域中的基础数据;

根据所述业务类型,将所述基础数据按照预设顺序进行拼装,获取完整业务数据;

依据业务逻辑对所述完整业务数据进行处理生成业务反馈信息,将所述业务反馈信息按照与所述业务类型对应的所述数据域列表以及所述预设顺序进行封装并将所述反馈信息发送至所述移动终端。

通过本发明提供的优化数据链路层报文的方法、装置以及终端装置,可以实现对数据域的类型、预设顺序以及参数规则的自定义,在加强了数据安全性的前提下,可以根据不同的业务类型的数据,封装为多组不同类型的数据域,扩展了数据报文的业务范围,减少了数据间的耦合度。此外,本发明可以根据具体业务的数据域安全级别的加密需求对需要加密的数据进行加密,而无需对整个数据表进行加密,从而减少了数据传输的量级,有效地提高了网络传输效率,降低了移动终端和服务器的交互过程中对传输数据进行加解密的工作负担。

此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。

以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1