


摘 要:隨著各行業大公司業務系統迅速發展、各種支撐系統和用戶數量的不斷增加,網絡規模迅速擴大,信息安全問題愈見突出。在用戶登錄和身份驗證的安全性保障環節各行各業都有自己的妙招。文章則是從驗證用戶登錄地點的角度上提出一種新的提高登陸系統安全的驗證方式。結合移動定位技術以及掃描二維碼登陸的方式,來提高系統登錄口令的安全,以及加固口令防盜的措施。
關鍵詞:身份驗證;移動端定位;地理位置驗證;掃描二維碼
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.