李娜娜 吴响 胡俊峰
摘要:JSON传输的数据携带敏感或隐私的数据时,容易被非法分子抓包截取,提高了软件潜在风险。目前一些开源的JSON数据加密算法加密的效果并不理想,传输速度也受限。该文对现有的加密方法进行了改进,以提供一种更高效快捷的JSON数据包的动态无损加密方法。
关键词:JSON;云端管控;通信协议;数据加密
中图分类号:TP391 文献标识码:A 文章編号:1009-3044(2017)33-0049-02
1 背景
JSON是一种轻量级的数据交换格式。它基于ECMAScript的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言[1]。易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。所以JSON常取代XML用来在服务器和客户端之前传输数据。但当传输的数据携带敏感或隐私的数据时,容易被非法分子抓包截取,大大提高了软件潜在风险[2]。
针对以上问题,出现了一些JSON数据的加密算法[3,4]。目前一些开源的JSON数据加密算法适合加密要求不高的软件,若被不法分子截取到很容易分析出数据,因此加密的效果并不理想,同时加密后的数据大小变大,降低了带宽资源利用率,传输速度受限。
为了克服上述现有技术的缺点,本研究在吸取了一些开源加密的优点的同时,对现有的加密方法进行了改进。旨在提供一种更高效快捷的JSON数据包的动态无损加密方法。
本研究将方法抽象成客户端、服务器、数据加密中心、数据解密SDK四个部分,每个部分各司其职,便于代码的实现和维护。本研究有效提高了客户端和服务器直接通信时通信数据包的安全性,适用于对隐私数据要求高的软件。
2 技术方案
本研究是以如下技术方案实现的:将方法抽象成客户端、服务器、数据加密中心、数据解密SDK四个部分,每个部分各司其职,明确分工,便于代码的实现和维护。具体分为JSON数据包加密和数据包解密两个流程:
1) JSON数据包加密包括如下步骤:
①客户端根据业务需要发送GET/POST请求到服务器;
②服务器接受请求、处理请求并生成待发送的响应数据,将待发送的响应数据组装成JSON数据包,发送到数据加密中心进行二次处理;
③数据加密中心将对生产的JSON数据包进行格式检查,确保生成的JSON数据包格式正确;若格式正确则对响应数据进行加密,并将加密的key和value记录到数据库,以供解密SDK工具包解密使用。否则返回错误信息,并重新执行步骤②。
④服务器返回最终处理后的JSON数据包到客户端。
2) JSON数据包解密包括如下步骤:
①客户端收到响应的JSON数据包后,将对接收的JSON数据包进行格式检查,以防止数据在传输过程或其他环节出现数据丢失的问题,若格式正确则执行步骤②,否则返回错误信息;
②客户端调用数据解密SDK对响应数据进行解密,数据解密SDK会查询服务器的数据字典来解密JSON数据包,将解密后的数据结果返回给客户端,以供客户端业务使用。
与现有技术方案相比,本研究的有益效果是:
①集成了已有技术方案的优点;
②对现有的方法进行了改进,在加密效果和数据传输效率上取平衡,在保证不增加数据大小的前提下提高加密效果,减少带宽、流量等网络资源。
3 具体实施方式
3.1 基于云端管控的JSON数据包加密解密方法
如图1所示,本文涉及的基于云端管控的JSON数据包加密解密方法主要包括四个部分:客户端、服务器、数据加密中心、数据解密SDK。首先,客户端根据业务需要发送GET/POST请求到服务器;其次,服务器接受请求、处理请求并生成待发送的响应数据,将待发送的响应数据发送到数据加密中心进行二次处理;再次,数据加密中心对响应数据进行加密,并将加密的key和value记录到数据库,以供数据解密SDK工具包解密使用;从次,服务器将处理后的响应数据发送到客户端,客户端调用数据解密SDK对响应数据进行解密;最后数据解密SDK会查询服务器的数据字典来解密JSON数据包,将解密后的数据结果返回给客户端,以供客户端业务使用。
3.2 JSON数据包加密工作流程
如图2所示, JSON数据包加密工作流程具体如下:
1) 客户端根据业务需要发送GET/POST请求到服务器。
2) 服务器接受请求、处理请求并生成待发送的响应数据,将待发送的响应数据组装成JSON数据包,发送到数据加密中心进行二次处理。
3) 数据加密中心将对生产的JSON数据包进行格式检查,确保生成的JSON数据包格式正确;若格式正确则对响应数据进行加密,并将加密的key和value记录到数据库,以供数据解密SDK工具包解密使用。否则返回错误信息,并重新执行步骤2)。
4) 服务器返回最终处理后的JSON数据包到客户端。
图2 JSON数据包加密工作流程图
3.3 JSON数据包解密工作流程
如图3所示, JSON数据包解密工作流程具体如下:
1) 客户端收到响应的JSON数据包后,将对接收的JSON数据包进行格式检查,以防止数据在传输过程或其他环节出现数据丢失的问题,若格式正确则执行步骤2),否则返回错误信息。
2) 客户端调用数据解密SDK对响应数据进行解密,数据解密SDK会查询服务器的数据字典来解密JSON数据包,将解密后的数据结果返回给客户端,以供客户端业务使用。
3.4 数据解密SDK的工作流程
如图4所示,数据解密SDK的工作流程具体如下:
1) 收到客户端调用的指令和待解密的JSON数据包。
2) 数据解密SDK提取待加密的JSON数据包中的key和value,查询服务器的数据字典将被替换的key和value值恢复,将恢复后的JSON数据包返回给客户端,以供客户端业务使用。
4 结束语
本研究方法集成了已有技术方案的优点;有效解决了加密后JSON数据变大的这种情况,对现有的算法进行了改进,在加密效果和数据传输效率上取平衡,在保证不增加数据大小的前提下提高加密效果,减少带宽、流量等网络资源。
参考文献:
[1] 李铮. 基于反射机制实现Java对象向Json数据的转换[J]. 承德石油高等专科学校学报, 2010, 12 (1):36-39.
[2] 李超. 大数据环境下隐私保护的研究现状分析[J]. 电脑知识与技术, 2016, 12(6X):29-31.
[3] 马世欢. 基于IBC的JSON数据安全传输研究[J]. 安徽电子信息职业技术学院学报, 2015(2):34-36.
[4] 方耀耀. 一种基于树形结构的Sql结果集向Json数据的转换算法[J]. 电子测试, 2016(2):51-53.