一种信息安全、实现简单的移动设备位置信息交互方式

2013-12-17 07:42
中国科技信息 2013年22期
关键词:号码密钥服务器

大连财经学院管理系,辽宁 大连 116622

1 研究背景

当今移动设备应用开发市场日益繁荣。随着大数据、物联网概念与移动应用开发的不断融合,基于位置的服务(Location Based Services)成为移动应用开发的热点。究其原因,首先,使用Google Map API、Baidu Map API 等类库开发的移动应用,能够给用户提供在线地图、实时交通、路线规划、周边服务等实用信息;其次,通过上述API 的定位功能,移动应用能够记录用户的时空位置,从而为大数据应用提供数据源,成为数据分析的金矿;最后,用户双方位置信息的交互,能够满足用户的交流需求。

本文即研究用户双方移动设备位置信息的交互方式。对于当前的移动设备来说,其是不能够直接以点对点的方式交换位置信息的。解决的方案是在两个移动设备间加入一个中间层,作为信息交互的中介。移动设备A 发送位置信息给中间层,移动设备B 再从中间层获取A 的位置信息。这个中间层通常由网络服务器来完成,其优点在于:一、当前移动设备均可以通过标准的网络协议访问网络服务器。二、网络服务器可以提供大的带宽,可以同时满足大数量的移动设备来进行位置信息的交互。

在网络服务器上运行的服务程序,其实现方式主要由两种:基于传输层的、使用编译型语言开发与基于应用层的、使用解释型语言开发。第一种方式通常用C/C++等语言开发,实现复杂,开发周期长;第二种方式使用PHP、JSP 等语言开发,实现简单,能够做到快速开发。

在用户进行位置信息交互的过程中,必须考虑信息安全,即用户双方的位置信息在信息交互过程中及交互结束后不被第三方所得知。一种传统的位置信息交互方式是,用户需首先在网络服务器上注册用户名与密码,用户在交互信息前必须登录系统,并互相认证为好友,才可以进行位置交互,一个用户有好友列表,可以看到多个好友位置。这种方式一是实现较复杂,二是依然存在着信息安全隐患。假定甲乙两人互相认证为好友,乙丙两人互相认证为好友,在某时乙运行软件希望与丙交互位置,而又不希望被甲得知自己的位置,上述交互方式就无法办到。因此,位置信息交互双方间应该有一个点对点且经过验证的交互方式。本文仅研究用户点对点间的信息安全的交互方式,不涉及单个用户与多个用户同时交互位置的情况,而本文所提出的方式,可以很容易应用在多用户相互定位系统上,即在多用户相互定位系统中,每两个用户间使用该方式。

另外,对于移动设备位置信息的获取方式及精确度,需要在本文中做一提及。当前移动设备位置信息的获取方式有三种:通过GPS 定位、通过Wi-Fi 定位与通过手机基站信号定位。GPS 定位的理论精度在30m 左右,但定位时间慢,对移动设备耗电较高,且户外的效果好于室内。Wi-Fi 定位的理论精度在30m~200m,实际测试精度基本相当于GPS 定位,但使用时必须有Wi-Fi 环境。手机基站信号定位的理论精度在100m~300m,实际测试精度也与GPS 定位与Wi-Fi 定位相差较大,但好处是不需要特殊环境,随时可用。用户相互定位的典型应用方式应是使用手机基站信号定位,其定位精度基本满足需要,因此,开发出用户使用移动设备相互定位的软件系统也是实用可行的。

2 移动设备位置信息交互方式的具体实现

两台移动设备要进行位置信息交互,就需要把每台移动设备的位置信息,即纬度、经度,上传并保存在网络服务器中供另一方下载。本文所提出的交互方式使用一个数据库表来保存信息,纬度与经度作为数据库表的两个字段。为区别每台移动设备的位置信息,移动设备的唯一标识,如手机号码,也作为表的一个字段。

本文所提出的交互方式使用三种措施来保证信息安全:一、双方唯一标识(如手机号码)的验证。二、双方相互约定的密钥的验证。三、一方请求时间与另一方信息更新时间的验证。两方的手机进行位置信息交互时,每一方都向网络服务器请求另一方的位置。运行于网络服务器上的程序判断该请求是否通过上述三种验证,如通过验证,则返回请求的位置信息,如未通过验证,则返回相应的描述性代码。

为实现以上三种验证措施,网络服务器上的数据库表,需设计成表1所示的结构,包含本机标识、对方标识、本机纬度、本机经度、会话密钥、记录更新时间六个字段。表1中还包含了两条样例记录,以便下文解释本交互方式的实现,并且以典型的移动设备—智能手机为例(见表1)。

假定进行位置信息交互的用户为A、B,双方进行位置信息交互时均需在智能手机上运行实现本文所提出方式的软件。在开始双方位置信息交互前,软件要求用户A 输入本机号码A、对方号码B 以及双方约定的会话密钥。然后即开始两个过程:一个过程是向网络服务器上传本机号码A、对方号码B、本机纬度A、本机经度A、A 输入的密钥A,即上传本机位置信息过程,网络服务器在收到A 的位置信息时,如存在字段 “本机标识”为号码A 的记录,则使用收到的信息更新该记录,并且将该记录的“记录更新时间”更改为收到位置信息的时间(更新时间A);如不存在字段 “本机标识”为号码A 的记录,则新建一条记录并将收到的信息保存,且保存“记录更新时间”信息(更新时间A)。另一个过程是向网络服务器请求“本机标识”为号码B 的位置信息,即下载对方位置信息过程。软件每隔一段时间都要进行上传本机位置信息过程以更新服务器端数据库表里的数据,并且每隔一段时间都要进行下载对方位置信息过程。当本机软件退出时,本机的以上两执行过程也随之终止。

表1

图1

对于用户B 来说,软件也要求用户B 输入本机号码B,对方号码A 及双方约定的会话密钥。上传本机位置信息过程会上传本机号码B、对方号码A、本机纬度B、本机纬度A,B 输入的密钥B。下载对方位置信息过程会向网络服务器请求“本机标识”为号码A 的位置信息。

整体的位置信息交互过程如图1所示。

以上上传本机位置信息过程不需要服务器程序进行验证,而请求对方位置信息需要经过服务器程序验证。服务器端三种验证详细描述如下:

1)双方唯一标识的认证,是为了确保信息只在相互要求进行位置信息交互的双方间进行传递。当用户A 请求B 的位置信息时,服务器程序首先在数据库表中寻找“本机标识”为号码B 的记录,如存在该记录,则再检查该记录的“对方标识”是否为号码A。当且仅当上述两个条件均满足时,才可认为通过对双方唯一标识的验证。同样,在用户B 请求A 的位置信息时也要经过该验证。但是,仅有该验证并不能确保信息安全,如用户C 在软件要求输入本机号码、对方号码时将号码A 和号码B 输入,以将自己伪造成用户A 来获取B 的位置信息。因此需要有附加方式来确保信息安全,本文提出下面的密钥方式。

2)双方相互约定的密钥的验证,需要双方在进行位置信息交互前通过打电话、发短信等方式约定一个共同的密钥。当用户A 请求B 的位置信息时,服务器程序判断“本机号码”为号码A 的记录的“会话密钥”密钥A 是否与“本机号码”为号码B 的记录的“会话密钥”密钥B 相同。如相同,则通过该验证。在上传本机位置信息过程的具体实现中,双方约定密钥是以密文形式上传并保存的,如MD5 码形式。

3)一方请求时间与另一方信息更新时间的验证,在以上两种验证的基础上,为用户提供更多的信息安全保护。当用户A 请求B 的位置信息时,服务器程序计算请求时间与“本机号码”为号码B 的记录的“记录更新时间”更新时间B 的时间差,如小于某个阈值,则通过该验证。该验证确保了位置信息交互中的一方软件退出时,即上传本机位置过程停止时,另一方会很快得到对方退出的信息,并且提高了安全性,避免了以下情况:①用户A 与用户B 发起了一次成功的位置信息交互,交互后用户A 的软件忘记退出,用户B 软件退出了。过了一段时间后,在用户A 不希望泄露位置信息时用户B 却可以再次运行软件得到A 的位置信息。②用户C 得知了用户A、B 的号码及某次交互的双方约定密钥,通过伪造身份,在A、B 间某次交互的若干时间之后得到A、B 的最后位置信息。

如对对方位置信息的请求通过了上述三个验证,服务器端程序将返回对方位置信息给请求方。双方软件均上传己方位置信息,请求对方位置信息并获得对方位置信息,从而实现了双方位置信息的交互。

3 结语

本文描述了一种信息安全、实现简单的移动设备位置信息交互方式。该方案已在移动设备为Android 手机,服务器端为PHP + MySQL 的系统中实现。本交互方式在系统实现简单的情况下确保了安全性。正如前文所述,本交互方式是点对点的,但可以被很容易的应用在多用户位置信息交互系统中。因此,希望本文所做的工作能成为后续研究工作的基石。

猜你喜欢
号码密钥服务器
幻中邂逅之金色密钥
幻中邂逅之金色密钥
服务器组功能的使用
密码系统中密钥的状态与保护*
说号码 知颜色
一个号码,一个故事
通信控制服务器(CCS)维护终端的设计与实现
猜出新号码
PowerTCP Server Tool
TPM 2.0密钥迁移协议研究