当前位置:文档之家› 基于扫描二维码验证登陆所在地的研究

基于扫描二维码验证登陆所在地的研究

基于扫描二维码验证登陆所在地的研究
随着各行业大公司业务系统迅速发展、各种支撑系统和用户数量的不断增
加,网络规模迅速扩大,信息安全问题愈见突出。在用户登录和身份验证的安全
性保障环节各行各业都有自己的妙招。文章则是从验证用户登录地点的角度上提
出一种新的提高登陆系统安全的验证方式。结合移动定位技术以及扫描二维码登
陆的方式,来提高系统登录口令的安全,以及加固口令防盗的措施。

标签:身份验证;移动端定位;地理位置验证;扫描二维码
1 背景,目的及意义
1.1 背景及现状
对比原有的登录方式,在验证登陆时很少会验证登陆地点,这使得暗藏在任
何地理位置的黑客都可以通过某种方式盗取登陆口令,从而获取登陆权限。而在
现实生活中,大多数企业级登陆系统以及某些重要数据的登录系统,登陆的地理
位置经常只是局限在某个固定的物理位置上,在用户没有更换登录地点的特殊要
求时,一旦用户的登录地点不在原有固定的地理位置范围,我们可以认为该用户
的账号密码被窃取了,而文章对于验证登陆地点的研究正是由这个细节得到的启
发而开展的。同时对于移动办公,我们也给出相应的解决方案。

智能手机目前普遍存在以下四种定位方法:[1](1)GPS全球定位。在露天
环境下效果较好,获取位置信息非常精确。适合移动设备。(2)IP地址定位。
适用于接入互联网的设备,比如台式机。但是因为浏览器是将位置信息发送给ISP
服务商来解析,其IP地址与服务商所在位置有关,可能与用户所在位置不同,
所以这种方式的解析容易出现偏差。(3)WiFi定位。这种方式与GPS效果同样
精确,它通过多个WiFi接入点三角距离获取位置信息数据。适用于室内环境的
移动设备。(4)GMS网络定位。与TCP/IP协议不同,它基于GMS数据交换协
议。通常用于移动服务商的GPRS数据服务。解析方式精确。而在项目的数据测
试环节中,我们发现WiFi定位的精确度远高于GMS的定位精度。后面章节会
有WiFi定位的数据与GMS网络定位的数据比较。

HTML5调用地理信息的接口。由于HTML5提供了获取地理信息的接口,
所以这使得在调用智能手机的的定位系统的实施时可以依托于移动端的浏览器
来实现,而不必根据操作系统的不同去设计相应的c/s的客户端程序来获取移动
端的地理位置了,这样极大降低了系统开发的投入成本。而对于定位的应用来说,
它的精确性显得尤为重要。而现实生活中人们经常诟病的定位误差问题的一个主
要原因在于对定位的参考物中心的界定较为模糊,而对pc端的用户登录系统来
说,登录的地理位置就是pc所在的地理位置,也就是定位的参考物中心。因此
我们采用了扫描二维码的方式强制的让智能手机端以pc端的屏幕输出设备为参
考物获取地理位置信息,从而提高GPS定位的精确性。
1.2 目的及意义
本项目的目的在于通过验证用户登录时的地理信息来提高登陆系统的安全
性,即使在登陆口令被窃取后依然可以确保系统的安全防护级别,同时对于保密
性较高的数据访问操作,同样可以通过这种方式保证系统的安全。

本项目的意义在于通过验证指定登陆地点的方式提高登陆系统的安全性,虽
然不能避免被黑客攻破的可能,但这样的设计降低了用户名和密码被窃取的几
率,并且即使用户名和密码被窃取,非法人员也要在指定的地理范围内登录才能
通过密码口令登陆系统。极大的提高了对系统登录口令的安全保障。同时与验证
局域网地理登陆方式不同,通过地理位置定位的后台设置可以让真正登陆地点设
定在任何地方,而不是仅局限在某个区域。

2 系统建模
本项目基于SSH的JavaEE框架,对基于扫描二维码验证登陆所在地进行了
功能实现,以及录入登陆地点物理位置信息的实现。业务逻辑的设计上,通过先
后连续的验证登陆用户名、密码、登陆地点,最后给出验证的结果,这样进一步
增加了暴力破解的复杂程度。整体流程如图1所示。考虑到实际工作环境中对移
动办公的需求,我们也设计了一套移动办公的解决方案(如图2)。

3 系统实现
3.1 服务器端录入地理信息数据及验证方案
登陆用户在录入登陆地点录入地理信息时,先进入录入用户地理信息的页面
4次扫描二维码,服务器端保存这四次扫描的数据结果,通过这四点圈定扫描的
有效范围。本项目要求录入的4点大概呈现一个菱形,即垂直于屏幕方向的两个
有效点和平行于屏幕方向的两个有效点,验证登陆的有效范围则是采用四点圈定
出的矩形经纬范围(注意并不是菱形的经纬范围)。(如图3)这样实现的主要原
因不仅在于业务逻辑的方便,更重要得原因是在实际操作过程中我们发现扫描二
维码的角度在大约低于45°以后,几乎很难扫描成功,所以在业务逻辑上刻意的
圈定成菱形的有效扫描区就显得多此一举了。

3.2 基于HTML5的Geolocation API实现移动端地理位置信息的获取
基于浏览器的HTML5的位置定位原理实际上是HTML5的 Geolocation API
接口调用移动设备的定位功能来实现在网页中定位。用户首先要打开需要获取地
理位置的Web应用,然后应用向浏览器请求地理位置,浏览器弹出询问,询问
用户是否共享地理位置,假若用户允许共享地理位置,则浏览器从设备查询相关
地理信息,浏览器将相关信息发送到一个信任的位置服务器,然后位置服务器再
将具体的地理位置信息返回给浏览器。[2]由于在扫描二维码时,人手持移动端
设备会造成轻微的抖动现象,会对测量数据造成一定的误差。以下是对小组成员
在同一地理位置多次扫描二维码得到的信息的分析(见表1),分别为精确度在
150米和30米条件时得到的数据。经过对测试数据的分析:我们发现地理信息
的精确度不仅受手持抖动的影响,更重要的影响因素在于WiFi信号的强度,WiFi
信号强度越强,测量地理位置的数据波动范围越小;而当WiFi信号强度较弱的
时候,测量的数据波动范围较大。同时不同地点经纬度的波动范围是不同的,所
以本数据仅供参考,具体实现时还是要以实际测量结果为基准取舍数据的有效位
数。

3.3 二维码的生成策略
二维码的生成信息中绑定了此刻生成二维码的事务编号、调用移动端地理位
置信息的url。当用户扫描二维码之后,直接跳转到获取用户地理位置信息的网
页中。本项目是基于Google ZXing的二维码实现的。ZXing(Zebra Crossing)是
Google提供一个开源的、支持多种格式的条形码图像处理库,提供了二维码的
生成与解析的方法。[3]

4 结束语
文章主要研究了通过验证在原有登陆方式基础上增加验证地理位置合法性
的解决方案,此方案目的在于提高登陆系统的安全等级,并提出了固定地点办公
和移动办公的解决方案。随着各行业对网络安全的重视,我们相信在登陆系统的
身份验证,以及重要系统的登陆权限控制中,验证登陆地点的地理信息是否合法
的解决方案会占有一席之地。

参考文献
[1]易晓飞.HTML5 Geolocation API研究与应用[J].计算机光盘软件与应用,
2012,6:153-154.

[2]梁莉菁.基于Geolocation API的Html5地理位置追踪定位的实现[J].萍乡高
等专科学校学报,2014,6:97-101.

[3]程裕强,刘爱民,周国军.二维码生成算法研究[J].玉林师范学院学报,
2014,5:118-122+139.

相关主题