江 超,龍毅宏
(武漢理工大學信息工程學院,湖北 武漢 430070)
基于移動終端的系統(tǒng)登錄方法的研究與開發(fā)
江 超,龍毅宏
(武漢理工大學信息工程學院,湖北 武漢 430070)
本文針對在不安全的網(wǎng)絡環(huán)境或不安全的上網(wǎng)系統(tǒng)的環(huán)境下,提出一種基于移動終端的安全登錄系統(tǒng),克服了現(xiàn)有移動登錄方案的不足。當用戶使用瀏覽器在一個 Web信息系統(tǒng)或應用系統(tǒng)進行登錄操作時,Web信息系統(tǒng)或應用系統(tǒng)將瀏覽器與 Web系統(tǒng)之間的會話標識數(shù)據(jù)以二維碼的形式顯示在瀏覽器上,用戶只需使用移動終端的攝像頭掃描二維碼獲得會話標識數(shù)據(jù)并利用移動終端完成身份認證即可實現(xiàn)用戶瀏覽器在 Web信息系統(tǒng)或應用系統(tǒng)的安全登錄,用戶無需在計算機上輸入帳戶名、口令,從而避免了在公共計算機上輸入帳戶名、口令導致的帳戶名、口令被竊取的風險,而且將用戶在不同 Web信息系統(tǒng)或應用系統(tǒng)的身份憑證保存在移動終端中也給用戶進行登錄操作帶來方便。
安全登錄;移動終端;二維碼
隨著互聯(lián)網(wǎng)的迅速發(fā)展,各企事業(yè)單位都建立了自己的的系統(tǒng)供自己員工使用及向外提供服務。用戶想要登錄自身單位的系統(tǒng)或使用互聯(lián)網(wǎng)公司提供的服務都要提供身份進行驗證,系統(tǒng)根據(jù)用戶身份進行驗證和授權,驗證成功才能訪問該系統(tǒng)[1]?,F(xiàn)在,國內外主要使用的登錄方式有以下幾種:
(1)主機直接登錄方式。用戶在需要使用應用系統(tǒng)的計算機上按照應用系統(tǒng)的要求直接輸入相應的身份信息進行登錄[2]。我們一般采用的就是此種方式進行登錄。
(2)郵件或手機短信驗證的登錄方式。用戶輸入賬戶名,應用系統(tǒng)驗證該賬戶名存在后,產生一個與該賬戶名綁定的隨機碼字符串并將其發(fā)到用戶的郵箱或手機中[3]。用戶將獲取的隨機碼字符后提交到應用系統(tǒng),應用系統(tǒng)根據(jù)用戶的賬戶名和綁定的驗證碼來鑒別身份[4]。
(3)二維碼掃描的方式。首先需要用戶的移動終端擁有要登錄的應用系統(tǒng)的移動端的應用,在登錄了移動端的應用后[5],用戶通過掃描在計算機上該應用系統(tǒng)生成的供登錄使用的二維碼后,批準已在移動端應用登錄的用戶在計算機上登錄,則在計算機上用戶登錄成功[6]。
雖然有各種各樣的登錄方式,但在不安全網(wǎng)絡環(huán)境或不安全的上網(wǎng)系統(tǒng)的公共環(huán)境下,這些方式都有一定的安全隱患或缺陷[7-8]。若使用直接主機登錄的方式,則可能造成用戶信息被竊取,具有一定的安全問題;若采用手機短信或郵件的方式,對用戶來講非常不方便;若采用二維碼登錄的方式,用戶需要下載手機客戶端才能掃描二維碼登錄,即使有手機客戶端,如果要登錄多個應用系統(tǒng)還需登錄多個手機應用,用戶體驗不好[9]。因此,利用手機的的3G、4G創(chuàng)造一個相對安全的網(wǎng)絡環(huán)境,利用手機進行安全登錄是一項非常有意義的工作。
1.1 系統(tǒng)結構
基于會話的移動登錄系統(tǒng)結構如圖1所示,包括瀏覽器,Web系統(tǒng),手機移動登錄助手,Web系統(tǒng)數(shù)據(jù)庫四部分。
圖1 基于移動終端登錄系統(tǒng)的結構圖Fig.1 Structure of System Login Method Based on Mobile Terminal
(1)瀏覽器:應用系統(tǒng)的客戶端。由于本方案面向的是Web系統(tǒng),因此瀏覽器即為應用系統(tǒng)的客戶端;
(2)Web系統(tǒng):一個通過網(wǎng)絡提供預定功能服務的系統(tǒng),該系統(tǒng)可以提供各種各樣的服務,本文中只討論該系統(tǒng)的登錄部分;
(3)移動登錄助手:一個手機應用軟件,即為本研究所研究系統(tǒng)的用于移動登錄的手機客戶端;
(4)Web系統(tǒng)數(shù)據(jù)庫:應用系統(tǒng)用來維護用戶身份信息,并用該信息來驗證用戶身份。
1.2 驗證過程
整個用戶身份驗證基本過程如下:
(1)用戶在計算機上使用瀏覽器訪問一個尚未登錄的Web系統(tǒng)時,若用戶選擇使用移動終端登錄,則瀏覽器客戶端在應用系統(tǒng)的支持下以二維碼的形式展現(xiàn)出需要傳遞給移動登錄助手的包含會話標識數(shù)據(jù)的登錄信息。
(2)用戶啟動移動登錄助手獲取瀏覽器客戶端傳遞的信息后,移動登錄助手根據(jù)協(xié)商好的參數(shù)數(shù)據(jù)結構解析參數(shù),按Web系統(tǒng)約定的提交會話標識數(shù)據(jù)的方式將會話標識數(shù)據(jù)包含在提交到Web系統(tǒng)的登錄請求中。
(3)Web系統(tǒng)在接受移動登錄系統(tǒng)提交的登錄請求后,驗證用戶的身份憑證,驗證成功則將用戶的會話標記為已登錄狀態(tài),并向移動登錄助手返回登錄成功的狀態(tài),同時向瀏覽器客戶端推送用戶登錄狀態(tài)轉變的信息,否則返回登錄失敗的狀態(tài)。
2.1 系統(tǒng)整體流程圖
從系統(tǒng)的驗證過程看出,其主要包含登錄信息的傳遞,移動終端的登錄,用戶登錄狀態(tài)的轉變三大部分的功能。整個方案的具體流程圖如圖2所示。
圖2 方案整體流程圖Fig.2 System block chart
2.2 登錄信息的傳遞
登錄信息傳遞采用二維碼的形式進行信息的傳遞,生成二維碼圖片傳出信息,掃描二維碼獲取信息兩個模塊。其中,在生成二維碼和解析二維碼時都需要協(xié)商好二維碼中參數(shù)信息的數(shù)據(jù)結構。
登錄信息的傳遞功能的整體框圖3所示。
(1)登錄信息的傳出。在登錄信息的傳遞這個功能中,需要定義二維碼中數(shù)據(jù)的結構以便Web系統(tǒng)通過此數(shù)據(jù)結構整合數(shù)據(jù)生成二維碼圖片[10],同時,移動登錄助手也需要根據(jù)此數(shù)據(jù)結構解析二維碼中的參數(shù)。通過分析后得出二維碼中數(shù)據(jù)結構中主要需要包含登錄地址,身份認證方式,數(shù)據(jù)格式,表單數(shù)據(jù)提交信息,會話保持方式,會話標識數(shù)據(jù)。二維碼中各參數(shù)的定義如表1所示。
圖3 登錄信息的傳遞的整體框圖Fig.3 Structure of Login Information Transfer
表1 數(shù)據(jù)結構參數(shù)定義表Tab.1 Data Structure Parameter Definition Table
url表示的是身份鑒別地址。在移動登錄助手生成登錄請求后,需要提交到該地址進行驗證。實際實現(xiàn)時,使用字符串來表示,格式為url=登錄地址。
at表示的是身份鑒別方式。該系統(tǒng)包含四種身份認證方式,以一位字符來表示,0表示以賬戶名/密碼的方式登錄,1表示賬戶名/密碼/隨機碼的方式登錄,2表示以動態(tài)口令的方式登錄,3表示利用數(shù)字證書加密登錄,若身份認證方式不屬于以上任何一種方式,則使用-1來表示。
dt表示的是數(shù)據(jù)格式,包含數(shù)據(jù)提交格式和數(shù)據(jù)返回格式和數(shù)據(jù)提交方式。數(shù)據(jù)提交格式分為基于 json輕量級數(shù)據(jù)的提交和基于表單的提交,用json/form表示。數(shù)據(jù)返回格式包括json數(shù)據(jù)返回和返回HTML頁面,用json/html表示。數(shù)據(jù)提交方式分為GET方式和POST方式,用get/post表示[11]。數(shù)據(jù)格式信息以&&符合連接以上三個信息合成。
fds表示表單數(shù)據(jù)提交信息。表單數(shù)據(jù)提交信息包含一系列的標簽名和值,可以包含會話標簽(sLabel),賬戶名標簽(uLabel),密碼標簽(pL-abel),隨機碼標簽(rLabel),其中必須包含會話標簽,這樣可以不改應用系統(tǒng)后端登錄模塊也能處理安全登錄的請求。
St表示的是會話保持方式。有三種會話保持方式,以一位字符來表示。0表示在Cookie中保存會話ID,Cookie保存在客戶端,用來保持狀態(tài)連續(xù)性[12]。 1表示采用URL保持會話,將會話ID以URL參數(shù)的形式通過URL來保持。2表示以隱藏表單項的方式保持,即在每個表單中設置一個隱藏的字段用來存儲會話ID。
Sid表示的是會話標識數(shù)據(jù)。會話標識數(shù)據(jù)是將移動登錄助手用戶與瀏覽器用戶用于聯(lián)系起來的樞紐,是本方案的核心參數(shù),是必須的二維碼參數(shù)。格式為sid=會話標識數(shù)據(jù)。
上述各個參數(shù)數(shù)據(jù)以“;”連接起來組合成二維碼中的數(shù)據(jù),數(shù)據(jù)按照數(shù)據(jù)結構整合好后,即可生成二維碼圖片。
(2)登錄信息的獲取。通過移動登錄助手掃描二維碼,根據(jù)數(shù)據(jù)結構進行參數(shù)解析。解析時,首先判斷各個參數(shù)名是否符合數(shù)據(jù)協(xié)議規(guī)定;然后,檢查各個參數(shù)數(shù)據(jù)是否符合數(shù)據(jù)結構的定義;接著,根據(jù)身份認證方式的不同,檢查表單數(shù)據(jù)提交信息中包含的參數(shù)的個數(shù)。各身份認證方式所檢查的表單提交數(shù)據(jù)如表2所示。
表2 表單提交信息表Tab.2 Form Submission Information Table
根據(jù)此表信息檢查完表單提交數(shù)據(jù)中的參數(shù)后,再解析出其他參數(shù)。若在解析過程中發(fā)現(xiàn)參數(shù)信息不符合要求,即提示用戶該二維碼參數(shù)不符合規(guī)定,并終止安全登錄的過程。
2.3 移動終端的登錄
移動終端的登錄包含六個模塊,整體流程圖如圖4所示。
(1)用戶身份信息的獲取模塊,該模塊根據(jù)身份鑒別方式at來判斷需要獲取用戶什么樣的身份信息,根據(jù)身份鑒別方式的不同,登錄助手將提示用戶輸入不同的所需要的身份數(shù)據(jù)。
圖4 移動終端的登錄的整體流程圖Fig.4 Structure of Mobile Terminal Login
(2)提交方式的處理模塊,該模塊根據(jù)數(shù)據(jù)提交方式dt來判斷Web系統(tǒng)與瀏覽器約定的數(shù)據(jù)提交方式,生成相應的get/post登錄請求。
(3)會話處理模塊,移動登錄助手通過會話保持方式參數(shù)st來識別Web系統(tǒng)與瀏覽器約定的提交會話標識數(shù)據(jù)的方式,并將會話標識數(shù)據(jù)包含在提交到Web系統(tǒng)的登錄請求中。
(4)數(shù)據(jù)提交格式模塊,對登錄請求設置數(shù)據(jù)提交格式。數(shù)據(jù)提交格式分為基于json輕量級數(shù)據(jù)交互格式和一般的表單數(shù)據(jù)格式[13]。
(5)返回數(shù)據(jù)處理模塊,此模塊設置登錄請求響應的處理方式。Web系統(tǒng)返回給瀏覽器端的響應可能是json數(shù)據(jù),也有可能是HTML頁面,登錄助手需要處理這兩種返回數(shù)據(jù)。
在完成以上模塊的處理后,登錄助手將移動登錄請求提交到Web系統(tǒng)進行身份鑒別。
2.4 登錄狀態(tài)的轉變
在這一部分,實現(xiàn)瀏覽器即時獲取用戶登錄狀態(tài)。本系統(tǒng)采用 WebSocket[14]實現(xiàn)服務端向客戶端即時推送功能。WebSocket是一個雙向通信協(xié)議,是種簡單的模擬Socket的協(xié)議[15]。此協(xié)議中連接的雙方都可以向對方通過TCP來發(fā)送數(shù)據(jù),是種全雙工通信協(xié)議。WebSocket協(xié)議傳輸數(shù)據(jù)前要經(jīng)過握手連接,連接成功才能進行雙向的通信,握手連接是建立在HTTP[16]協(xié)議上的。使用WebSocket實現(xiàn)瀏覽器與服務端的即時通信的交互模型過程如圖5所示。
圖5 瀏覽器與服務器使用WebSocket交互流程圖Fig.5 Browser and server using WebSocket interactive flow chart
圖中可以看出,瀏覽器端在WebSocket連接的狀態(tài)下發(fā)現(xiàn)用戶登錄狀態(tài)改變即用戶已登錄時,將此消息直接推送到客戶端,客戶端接收到此消息后做相應處理。若用戶登錄狀態(tài)未改變,則服務端保持該連接,在連接斷掉前,不需要像http一樣重新發(fā)起連接。
本文針對當前登錄方式存在的不足,提出了基于移動終端的系統(tǒng)登錄的方案,并從基于會話方式對該方案進行了描述。提出的方案具有以下優(yōu)勢:
(1)該方案使各種各樣已經(jīng)部署的或未部署的應用系統(tǒng)集成移動登錄的功能,此移動登錄功能能夠使用戶在不安全的計算機系統(tǒng)或不安全的網(wǎng)絡連接下,通過利用移動終端,這個用戶生活中現(xiàn)已不可或缺的工具,實現(xiàn)應用系統(tǒng)的移動安全登錄;
(2)實現(xiàn)的基于移動終端的安全登錄系統(tǒng)在面向某一類系統(tǒng)時是一個通用的系統(tǒng),克服了現(xiàn)有移動登錄需要登錄手機客戶端才能進行移動登錄的缺陷。
[1]付亮, 于立娟.2012-2013年移動互聯(lián)網(wǎng)發(fā)展趨勢綜述[J].互聯(lián)網(wǎng)天地, 2013, 02: 1-6+12.
[2]唐志紅, 龍毅宏.面向Web Form身份鑒別的單點登錄透明集成技術[J].軟件, 2014, 35(8): 75-78
[3]于新波.基于Web的在線郵件系統(tǒng)的設計與研究[D].吉林大學, 2011.
[4]彭光明.基于Android平臺的安全短信系統(tǒng)的研究與實現(xiàn)[D].蘭州大學, 2014.
[5]趙哲, 宋俊德, 鄂海紅.基于Android 平臺的移動應用構建研究與設計[J].新型工業(yè)化, 2013, 3(6): 78-89.
[6]郭婧.二維碼技術在移動電子商務中的應用研究[J].通訊世界, 2015, 13: 133.
[7]肖廣娣, 凌云.幾種常見信息認證方式的比較[J].硅谷, 2012, (23): 127-128.
[8]周莉婕, 雷友珣[J].Android 操作系統(tǒng)瀏覽器安全漏洞的分析軟件, 2013, 34(5): 107-111
[9]Cochoy Franck.Consumers at work, or curiosity at play? Revisiting the prosumption/value cocreation debate with smartphones and two-dimensional bar codes[J].Marketing Theory, 2015, 152: .
[10]郭利敏, 劉悅如, 等.微信二維碼用于圖書館讀者身份認證的實踐[J].現(xiàn)代圖書情報技術, 2015, Z1: 144-147.]
[11]潘書彬.基于XMLHTTP通訊傳輸架構的數(shù)據(jù)傳輸方法[J].信息通信, 2013(5): 14-15.
[12]Alex X.Liu, Jason M., et al.A secure cookie scheme[J].Computer Networks, 2012, 566: .
[13]Hope Ryan M, Schoelles Michael J, et al.Simplifying the interaction between cognitive models and task environments with the JSON Network Interface[J].Behavior research methods, 2013: .
[14]Alex X.Liu, Jason M., et al.A secure cookie scheme[J].Computer Networks, 2012, 566: .
[15]Anonymous.Kaazing; Kaazing Announces Kaazing WebS-ocket Gateway--the Industry’s First Enterprise-Grade Web Infrastructure Software Based on the HTML5 WebSocket Standard[J].Technology & Business Journal, 2010,: .
[16]阮曉龍.HTTP協(xié)議狀態(tài)檢測與性能分析軟件的設計與實現(xiàn)[J].軟件, 2015, 36(7): 136-141.
Research and Development of System Log-in Method Based on Mobile Terminal
JIANG Chao, LONG Yi-hong
(School of Information Engineering, Wuhan University of Technology, Wuhan 430070, China)
This paper proposes a secure log-in system based on the mobile terminals in an insecure environment or insecure Internet network system environment to overcome the shortcomings of the existing mobile log-in program.When a user uses a browser to log in a Web information system or application system, Web information system or application system displays the session identification data between the browser and the system on the browser in the form of QR code, users only need to use the camera of the mobile terminal to scan the QR code to get the session identification and use the mobile terminal to complete the identity authentication so that the browser can log in the Web information system or application system.Users do not need to enter the account name and password on the computer, Thus avoiding the risk of theft of account name and password caused by inputting account name and password on public computer.Moreover, it is convenient for users to save the user’s identity certificate in different Web information system or application system on the mobile terminal.
Secure log-in; Mobile terminal; QR code
TP393.08
: A
10.3969/j.issn.1003-6970.2017.03.003
國家科技支撐計劃項目(2015BAH17F03);國家科技支撐計劃項目(2014BAH26F03)
江超(1991-),男,碩士研究生,主要研究方向為信息安全。
龍毅宏,教授,博士,主要研究方向為信息安全。
本文著錄格式:江超,龍毅宏.基于移動終端的系統(tǒng)登錄方法的研究與開發(fā)[J].軟件,2017,38(3):12-15