数字社区中移动端数据通讯加密方案设计及实现孙晓玮

数字社区中移动端数据通讯加密方案设计及实现孙晓玮

天津市测绘院天津300381

摘要:本文研究了数据加密解密的关键技术,明确了移动端数据通讯加密解密的基本思路,并结合数字社区中数据特点,提出了可行的处理解决方案。

关键词:加密RSAAES密钥

数字社区利用数字信息化技术、移动网络及计算机网络技术实现用户与管理、服务提供方的有机互联,融合了民政数据、商业数据、办公数据、空间信息数据、流媒体数据等多源数据,是具有公众服务、商业服务、行政管理、资源共享、监控监管等多功能的信息综合体系[1]。

移动端应用是数字社区的重要组成部分,能够对社区的人口、资源、环境、经济、社会等多种类数据进行便捷的查看和管理,这其中包含大量的个人隐私信息(如居民身份证号、重点关注人群信息)、商业隐私信息(如辖区企事业单位相关信息)、工作隐私信息等重要数据,这些信息数据在互联网络上,特别是在移动互联网上直接传输的过程中存在较大的安全隐患,为了避免不法分子窃取网络数据包中的隐私数据,对传输中的数据进行加密成为解决问题的唯一途径[2]。对传输数据进行加密,可以防止不法分子对传输数据进行截取、偷窥甚至恶意篡改隐私信息。针对上述安全问题,本文研究了数据加密解密的关键技术,明确了移动端数据通讯加密解密的基本思路,并提出了可行的处理解决方案。

1AES和RSA混合加密技术

数据加密技术根据加密秘钥类型,可以分为对称加密和非对称加密[3]。对称加密是指在加密、解密的过程中使用相同的密钥,常用的对称加密技术有DES、3DES、AES;而非对称加密技术的加密、解密的密钥是不相同的,一个是公钥,一个是私钥,常用的有RSA和ECC。其中目前使用最广泛的对称加密技术和非对称加密技术分别是AES和RSA。

从现有的计算机硬件和软件来看,对于现在的已有的公开的攻击方法来说,AES和RSA都是安全的密码体制[4]。AES相比RSA的最大优点是加密和解密速度快,特别对于大量信息加密的情况下,一般采用AES进行加密。但是AES加密解密共用同一个秘钥,在开放的网络环境中传输存在较大安全隐患,所以双方在秘钥的传送上就不能通过公共通道传送了,只能从安全信道上传送,这就衍生出设计安全信道的问题了[5]。而对于RSA,不存在秘钥传送的问题,因为加密的公钥本身公开,并且无法从公钥推导出私钥。因此,可以将两种加密方法组合使用,也就是在传输的时候使用AES加密传输数据,同时使用RSA加密AES密匙,这样可以结合两者各自特点,发挥两者优点。

2移动端加密方案设计及实现

在移动端与服务器端交互过程中,移动端既从服务器端请求数据又向服务器端发送数据,这些数据大致可以归纳为三类:简单文本、结构体文本和文件(语音、视频、图片、文件等)。其中简单文本以键值对形式,结构体文本或者文件采用JSON格式,都通过HTTP协议来进行数据通信。如果文件过大,还需要将文件分块后再分别进行处理。

在数据传输的过程中既要保证数据安全,还需要避免因加密解密造成的传输数据量过大、加密解密对移动端用户体验的影响及服务器端的资源消耗等问题。因此,考虑上述问题并结合AES和RSA混合加密算法,设计数据加密解密流程如下。

2.1接收方生成RSA密钥对(RSA密钥和RSA公钥)以及本地AES密钥,同时将RSA公钥交给发送方。在实际项目中,移动端与服务器端各自作为接收方生成各自的RSA密钥对及AES密钥,并将RSA公钥直接存放到对方。移动端生成的RSA公钥直接放到服务器,服务器生成的RSA公钥随移动端应用一起发布,同时移动端、服务器端各自持有私有的本地AES密钥。

2.2发送数据时,发送方利用已有AES密钥加密明文数据,同时用RSA公钥加密本地AES密钥,并同时将加密后的明文数据和加密后的本地AES密钥进行BASE64编码,然后发送至接收方。

2.3接受数据时,接收方将接收到对方用AES密钥加密的数据和RSA公钥加密过的对方AES密钥,首先进行BASE64解码,然后利用本地RSA私钥解密已经加密过的AES密钥,得到正确的AES密钥,同时用该密钥解密数据文件,得到正确的数据。

2.4考虑到效率问题,未对RSA密钥对与AES密钥进行实时动态生成,而是采用预生成并定期更新的方式保证系统加密、解密服务的安全性。

3方案实现

以天津市北辰区数字社区项目的为例,该项目移动端基于Android系统,后端服务基于.Net。移动端请求服务器数据流程如下。

3.1首先生成两组RSA密钥对及两个AES密钥,分别为服务器端密钥对server_private_key.pem(以下用SK1表示)和server_public_key.pem(以下用SK2表示),Android端密钥对client_private_key.pem(以下用CK1表示)和client_public_key.pem(以下用CK2表示),AES密钥分别为AK1、AK2,其中SK1、CK2、AK1存放在服务器文件夹,CK1、SK2、AK2则随Android应用打包发布。

3.2移动端提交数据时,普通参数需要进行AES加密,本地AES密钥(AK2)需要用本地RSA公钥SK2进行加密。

3.3服务器端解密时候,首先从Base64解码得到原始加密数据,使用服务器端RSA私钥SK1解密得到AES密钥AK2,并使用AK2继续进行AES解密得到原始数据。

3.4服务器解析原始数据,并根据参数计算出结果,经过服务器端加密后返回到移动端,移动端解密后进行数据显示或其他后续操作。服务器端加密与移动端解密的过程与步骤1、2、3相同,但SK1、SK2、AK2需要替换成CK1、CK2、AK1,这里不再赘述。

总结

本文基于数字社区中移动端数据通讯特点,并结合AES与RSA混合加密算法,提出了一种密钥定期更新的双向混合加密解决方案。本方案有效避免了移动端与服务器端频繁交互时候双方动态生成密钥产生的资源浪费问题以及高延迟影响用户体验的问题,定期更新密钥的方式则保证了系统加密、解密服务的安全性。这种加密方案在几乎不影响访问效率的情况下,极大提高了数字社区信息数据在移动端通讯的安全性,在北辰数字社区等多个数字社区项目中得到了广泛应用。

参考文献

[1]李洪涛.数字社区的安全体系结构及隐私保护技术研究[D].西安电子科技大学,2015.

[2]赵前东.基于移动互联网的微博客协议安全性研究[D].武汉邮电科学研究院,2012.

[3]徐畅.AES和RSA混合加密技术在网络数据传输中的应用[J].无线互联科技,2016(13):142-144.

[4]刘冰.基于AES和RSA的加密信息传送方案[J].信息技术与信息化,2006(5):65-66.

[5]王衍波,薛通.应用密码学[M]第一版.北京:机械工业出版社,2003:34-35.

[6]李昭,王跃武,雷灵光,等.基于动态密钥的Android短信加密方案[J].中国科学院大学学报,2013,30(2):272-277.

[7]肖萍,李茜.基于RSA数字信封技术的Android数据安全机制[J].信息网络安全,2013(3):37-39.

标签:;  ;  ;  

数字社区中移动端数据通讯加密方案设计及实现孙晓玮
下载Doc文档

猜你喜欢