基于安卓的GPS系统设计及安全性分析

2015-01-04 02:05张竹娴
长沙大学学报 2015年2期
关键词:安卓接收机短信

张竹娴

(长沙大学电子信息与电气工程系,湖南长沙410022)

安卓(Android)是第一个基于Linux的开源手机操作系统,通过操作系统,用户界面和应用软件构成这个系统平台.由于安卓系统的开放性,程序员及手机游戏编写爱好者可以通过使用Eclipse平台,用JAVA语言编写适用各种需求的手机程序.这些程序可以很方便的通过Eclipse转化成手机APP程序,从而实现在安卓手机上的应用.正是这一开放又自由的开发环境,使得安卓手机占有了越来越大的市场份额,根据凤凰网近期的调研报告,正在使用手机的人群中有54.7%的人使用安卓手机,而近期打算购买手机的人群中有89.5%的人打算购买安卓手机,可见安卓手机应用之广.

GPS(Global Positioning System)是20世纪70年代由美国陆海空三军联合研制的新一代空间卫星导航定位系统.其主要目的是为陆、海、空三大领域提供实时、全天候和全球性的导航服务,它的民用系统产品占据了我国市场份额的90%以上[1].目前市场上只要下载Baidu APP并安装相应的程序,就可以实现手机位置的实时追踪,然而这种方式的保密性并不高,所获取的地址很容易被别的通信设备截获.甚至,有的用户的地址信息有可能在个人不知情的情况下被别人获取.本文通过Matlab模拟GPS信号的捕获过程,分析了GPS信号码的特性.并利用JAVA语言编写了GPS系统在安卓手机的实现过程,得出了个人地址信息被获取的主要方式,最后提出增加个人手机地理位置信息保密性的解决方案.

1 基于安卓(Android)的GPS导航系统设计

1.1 GPS导航系统整体方案

GPS系统包括三个部分:空间卫星,地面监控,用户接收机.空间星座部分由24颗卫星组成,每一颗卫星都包含了卫星星历和时间信息,这些卫星以高精度的星载原子频率标准作基准发射导航信号[1].地面监控部分主要由1个主控站,4个地面天线站和6个监测站组成,主要负责完成和协调地面监控,同时将卫星的一些重要参数传送到注入站.如图1所示,要得到GPS信号的具体信息,首先用MATLAB生成并捕获GPS信号,然后分析得到信号的具体参数,也就是用户具体位置,最后用Eclipse软件模拟Android操作环境该用户具体信息.最后通过分析整个过程的安全漏洞,给出几点解决方案.

图1 系统整体方案

1.2 GPS信号捕获

GPS导航系统的基本原理是测量出已知位置的卫星到用户接收机之间的距离,根据多普勒频移并综合多颗卫星的数据得出接收机的具体位置.为了跟踪GPS卫星信号并对其进行解码,首先接收机必须要捕获到GPS信号,然后将捕获到的GPS信号的一些重要参数即跟踪过程立刻传送给地面基站,最后根据数据,接收机就可以得到卫星的导航电文[2].因此,GPS信号捕获有需要两个重要参数:C/A码(即GPS卫星发出的伪随机码,即跟踪过程数据)的起始点和载波频率[3].有了这两个参数,我们就可以计算得出已知位置的卫星到用户接收机之间的距离.采集到的一组数据通常包括几个卫星的信号,每个卫星的C/A码不同,多普勒频移也不同.针对某一个特定的卫星信号,捕获程序要找到C/A码的起始点,并利用这个信息对频谱解扩,频谱解扩以后,输出信号就变成了一个连续波信号,这样就可以得到它的载波频率[4].

本次设计采用传统的C/A码捕获方式,通过Matlab仿真捕获到的C/A码起始点及载波频率流程图如图所示:

图2 C/A码捕获程序流程图

在实际捕获过程的当中,GPS接收机捕获到的卫星信号包括有C/A码、D码、载波,所以在对C/A码的捕获进行仿真时,先模拟生成GPS卫星信号,下面是捕获C/A码的主要程序.

捕获时先对生成的GPS卫星信号数字化,该程序中采样频率为5MHZ,步长1000HZ,数字化之后一共有5000个采样点,然后生成本地C/A码并对其做傅立叶变换,将数字化之后的卫星信号与经过傅立叶变换的C/A码信号循环卷积,找出卷积结果中的峰值点,这个峰值点就为C/A码的起始点,图3显示了C/A码捕获示意图.

图3 C/A码起点捕获图

从图中我们可以看出来在5000个采样点中,在第4000-5000之间的某个采样点本地产生的C/A码与输入信号相匹配,出现了一个峰值,通过工作窗口可以知道起始点具体位置为4751,载波频率为1.25×106hz,捕获到C/A码起始点之后,接收机通过时间延迟器,使本次C/A码与输入信号中的C/A码对齐,而对齐所用的时间就是信号从卫星传到接收机所用的时间,将其乘以电磁波的传播速度,便可以得到给卫星距离用户接收机的距离.

1.3 GPS信号定位仿真

通过程序对GPS定位进行仿真,首先编写程序模拟出了运动的卫星在轨道上的运行状态,然后输入了卫星导航电文,显示出了可见卫星在轨道上的位置,最后通过计算得到了用户在空间的坐标.

图4 GPS卫星坐标图

上图显示了5颗可见卫星分别分布在不同的轨道上,通过Matlab工作窗口可以知道用户在空间的位置坐标为(7757.8,-844.61,2491.9).

1.4 GPS信息显示

图5 软件流程图

通过上述章节,模拟了GPS信号的捕获并得出了该用户的位置坐标,下面通过定位技术、地图技术和Android操作系统,将得到的GPS信号可视化的向用户展现当前位置.首先需要地图,本次设计中采用中国百度公司提供的baidu Map api.该地图涵盖了地图应用的全部方面,提供了地图构建、热点搜索、线路规划等应用接口.本次设计仅使用地图构建的接口.设计的思路是首先开发一个独立的不附带其他功能的定位界面,实现之后在其基础上增加一个返回按钮和一个发送按钮.并加入主界面,把主界面中的“我的位置”按钮与之前做的定位Activity关联起来,再在主界面中加入“短信发送”、“版本信息”、“退出程序”按钮.最后将该用户的坐标导入到程序中,模拟仿真完成GPS信号的捕获、解码及可视化过程.

定位模块的实现需要引用百度公司提供的baidumapapi.jar开发包,引入该开发包后,可以在布局文件中添加一个MapView,一个MapView对应着一个地图视图,然后在代码里通过对MapView相关属性的设置和OverlayItem的绘制后,即可在展现出一个完整的地图和在地图中显示对应的信息.系统定位流程如图6所示.

图6 系统定位流程图

需要注意的是,地图采用的是在线地图,需要在手机接通网络后才可以正常显示,所以开发时需要在AndroidManifest.xml文件中做相关权限的声明:

<uses-permission android:name="android.permission.INTERNET"/>

当系统成功定位后,会把地图的中心点移动到所定位到的位置,同时也会在当前位置上用标记把位置标识出来,具体的实现效果如图7所示.

图7 定位模块界面

1.5 位置发送模块实现

当用户成功定位到当前位置后,可以通过界面右上角的发送按钮来发送当前位置信息,发送方式可以选择通过短信发送或通过网络发送两种方式.

当用户选择通过短信发送时,系统会通过调用短信Intent来打开短信发送界面,并且会把当前的地理位置信息传递到短信内容中,用户可以输入一个目标手机号码然后发送.跳转时我们只需要声明一个Intent.ACTION_SENDTO并设置其Intent.FLAG_ACTIVITY_NEW_TASK和短信的内容(通过putExtra传递),最后通过startActivity方法来跳转即可.短信发送流程如图8所示:具体的实现效果如图9所示.

图8 短信发送流程图

图9 位置发送界面

2 实验测试与保密性分析

2.1 短信发送功能测试

本测试为测试系统的短信发送信息调用模块是否正常,通过获取定位信息后,点击“通过短信发送”选项来调用短信模块来传递和发送定位信息.

图10 短信发送测试

首先点击地图界面右上角的发送按钮,在弹出的菜单中选“通过短信发送”由此可以得到以下结果.结果如图10所示.

由上图我们可以看到,系统已经成功调用打开了短信编辑界面,并且短信内容也已经默认了刚刚获取得到的地理位置信息,由此可见系统的短信发送模块是没问题的.

2.2 系统安全性分析

随着智能手机的广泛使用,手机里存储着越来越多的私人信息,这些信息包含用户的个人及生意信息,甚至是用户密码,银行帐号以及用户具体位置等[5].因此,手机的安全性已经成为一个越来越不容忽视的问题.智能手机往往注重建立协议去创建更好的服务而忽视了手机的安全风险.手机黑客们最易攻击的方向来自于手机自身的操作系统.上面的章节里模拟了获取用户位置的过程,其中可以设置将用户的位置以短信的方式发送到目的手机上,而目的手机可能是任何终端,用户的位置信息可能轻易被暴露.那么如何防止手机的信息被轻易盗取?首先,用户需谨慎下载APP,从以上的模拟过程我们可以看出,如果用户手机里安装了相应的APP,手机黑客们甚至不需要经过用户的同意,就可以设置用户手机自动发送位置到指定手机,因此,手机的安装软件必须是从比较权威的网站下载软件.其次,在不使用的时候,用户的GPS发送模块最好处于关闭状态,这样即使手机不小心安装了自动获取位置的APP,手机黑客们也没有那么容易成功.最后,目前一种比较有效的安全性办法叫做安全盒,它是一种安全软件,一旦用户的设备被确定使用,所有的信息会被放置在一个叫做安全盒的软件中,安全盒覆盖了手机的整个应用,如果黑客入侵手机,也必须通过安全盒,这就阻止了很大一部分的入侵.

3 结论

本文模拟了GPS信号的捕获/分析及信号可视化的过程,分析了每个过程可能出现的安全性问题.分析表明,虽然GPS导航技术已广泛应用于各个领域,它的安全性能并不高.目前提出的解决方案分以下几个方面:用户自身谨慎下载APP已报账手机操作系统安全、在不使用的时候将GPS模块处于关闭状态以及下载安全盒软件防止入侵.但是随着智能手机信息的私密性越来越强,手机黑客们可能运用的手段层出不穷,如何能更好的保障手机用户位置信息的安全,依然是以后研究的重要议题.

[1]杨俊,武奇生.GPS基本原理及其Matlab仿真[M].西安:西安电子科技大学出版社,2006.

[2]许其风.GPS卫星导航定位与精密定位[M].北京:解放军出版社,1989.

[3]程一沛.基于GPS/GIS/GPRS的车辆监控管理系统的设计与开发[D].西安:西安科技大学硕士学位论文,2009.

[4]刘小磊.GPS车辆监控系统车载终端的设计与实现[D].哈尔滨:哈尔滨理工大学硕士学位论文,2010.

[5]周小星.中国移动数据与信息业务运营管理研究[D].南京:南京航空航天大学硕士学位论文,2011.

猜你喜欢
安卓接收机短信
iPhone不卡的秘密曝光:安卓也能享受
GNSS接收机FLASHADC中比较器的设计
文物表情包
道歉短信
安卓系统或成智能汽车标配
一种宽带低功耗四合一接收机设计
一种面向ADS-B的RNSS/RDSS双模接收机设计
代发短信
数字接收机故障维修与维护
安卓L未至安卓M来了!安卓首泄漏M系统