一種基于移動終端的Web系統安全登錄方法
【技術領域】
[0001]本發明屬于信息安全技術領域,特別是一種基于移動終端的Web系統安全登錄方法。
【背景技術】
[0002]我們在訪問網絡信息或應用系統時可能會遇到以下問題。
[0003]—是,當我們在網吧等公共環境使用公共計算機登錄我們要訪問的信息或應用系統時,如登錄QQ、支付寶,由于公共計算機可能被安置了木馬,我們登錄系統的帳戶名、口令存在被監聽、竊取的風險(即便是動態口令,也不能避免這種安全風險)。
[0004]二是,我們在不同的信息或應用系統都有帳戶名、口令要記憶,帳戶名、口令多了很容易忘記、混淆。
[0005]三是,在一些安全性要求高的場合,我們需要使用存有數字證書及私鑰的USB Key等密碼硬件,但是如果有多個USB Key密碼硬件需要攜帶,會給用戶帶來不便。
[0006]針對這些問題,本發明申請人在其專利申請“一種基于移動終端的Web系統便捷登錄方法”(專利申請號:201510472645.X)中針對Web系統提出了一種基于移動終端的解決方案,具體地:當用戶使用瀏覽器登錄Web系統時,Web系統將瀏覽器與Web系統之間的會話標識數據以條碼的形式顯示在瀏覽器上,用戶使用移動終端的攝像頭掃描條碼,移動終端中的移動登錄代理從條碼中獲得會話標識數據,然后移動登錄代理使用用戶身份憑證登錄Web系統,移動登錄代理登錄Web系統時按瀏覽器提交會話標識數據的方式提交掃描獲得的會話標識數據,由此實現用戶瀏覽器在Web系統的登錄。201510472645.X的最大特點是實施簡單,且Web系統按原有的方式對用戶進行登錄鑒別,但是,201510472645.X中的方案也存在一個問題,這就是會話標識數據以明文方式返回到瀏覽器并通過瀏覽器頁面顯示,這使得會話標識數據存在被惡意注入的腳本程序(從頁面中)竊取的風險。
【發明內容】
[0007]本發明的目的是提出一種基于移動終端的Web系統安全登錄方法,以克服現有方案的不足。
[0008]為了實現上述目的,本發明提出的技術方案是:
[0009]一種基于移動終端的Web系統安全登錄方法,所述方法如下:
[0010]第一步驟:當用戶在計算機上使用瀏覽器訪問一個尚未登錄的Web系統時,Web系統啟動用戶登錄操作(即用戶身份鑒別),用戶通過瀏覽器輸入用戶在Web系統的帳戶名或用戶的一個身份標識,并提交到Web系統;
[0011]第二步驟:Web系統接收到用戶提交的帳戶名或身份標識后,使用用戶帳戶名或身份標識對應的加密密鑰對Web系統與用戶瀏覽器之間會話(Sess1n)的會話標識數據或會話標識數據的暫存標識符進行加密,然后將加密的會話標識數據或會話標識數據的暫存標識符傳送到用戶瀏覽器并以條碼的形式顯示在用戶瀏覽器上;若Web系統返回的是加密的會話標識數據的暫存標識符,則Web系統同時將未加密的會話標識數據暫存在內存或數據庫中,暫存的會話標識數據用會話標識數據的暫存標識符進行標識;
[0012]第三步驟:用戶使用運行有移動登錄助手的移動終端掃描瀏覽器上顯示的條碼;移動登錄助手從掃描的條碼中獲得加密的會話標識數據或會話標識數據的暫存標識符,然后使用用戶帳戶名或身份標識對應的解密密鑰對加密的會話標識數據或會話標識數據的暫存標識符進行解密;若解密獲得的是會話標識數據的暫存標識符,則移動登錄助手進一步利用解密獲得的會話標識數據的暫存標識符從Web系統查詢獲得暫存的、用同樣的會話標識數據的暫存標識符標識的會話標識數據;然后,(在移動登錄助手的引導下)用戶通過移動登錄助手使用用戶身份憑證在Web系統完成登錄操作;在用戶通過移動登錄助手使用用戶身份憑證在Web系統進行登錄操作的過程中,移動登錄助手按Web系統約定的瀏覽器提交會話標識數據的方式將(解密后的或從Web系統獲得的)會話標識數據包含在提交到Web系統的HTTP請求中;在用戶通過移動登錄助手使用用戶身份憑證在Web系統完成登錄操作后,用戶在計算機上所使用的瀏覽器與Web系統之間的會話處于已登錄狀態(被Web系統標記為已登錄狀態);
[0013]所述Web系統是一個基于Web技術開發的信息系統或應用系統;
[0014]所述會話標識數據是包含有Web系統與用戶瀏覽器之間會話的會話標識符(Sess1n ID)及其它會話相關信息的數據;所述其它會話相關信息是用于限定會話的信息;所述會話標識數據的暫存標識符是Web系統生成的用于對暫存在內存或數據庫中的會話標識數據進行標識的字串;
[0015]所述用戶的一個身份標識是一個唯一標識用戶的字符串(如電子郵箱地址、移動通信號碼等);
[0016]所述用戶帳戶名或身份標識對應的加密密鑰是Web系統通過用戶帳戶名或身份標識得到的用于數據加密的密鑰,所述用戶帳戶名或身份標識對應的解密密鑰是與用戶帳戶名或身份標識對應的加密密鑰對應的用于對加密數據進行解密的密鑰;
[0017]所述移動終端是一個具有數據網絡聯網能力并帶有攝像頭的便攜式計算裝置(如移動通信裝置、平板電腦、智能穿戴設備等);
[0018]所述移動登錄助手是在用戶的移動終端中安裝并運行的一個用于幫助用戶使用瀏覽器在計算機上進行Web系統登錄操作的程序;所述移動登錄助手通過HTTP協議與Web系統進行交互;
[0019]用戶在Web系統登錄時所用的所述身份憑證由用戶標識數據和私密數據組成;所述用戶標識數據是用戶在Web系統中的帳戶名,或者與用戶在Web系統的帳戶名對應的、用于標識用戶身份的數據(如數字證書);所述私密數據是用于證明用戶就是身份憑證的擁有者的數據。
[0020]若在所述第一步驟用戶通過瀏覽器輸入并提交的是帳戶名,則Web系統在接收到帳戶名后,先在帳戶數據庫檢查用戶提交的帳戶名是否是一個有效帳戶的帳戶名,若是,則使用用戶帳戶名或身份標識對應的加密密鑰對Web系統與用戶瀏覽器之間會話(Sess1n)的會話標識數據或會話標識數據的暫存標識符進行加密,否則,向瀏覽器返回錯誤。
[0021]若Web系統返回的是加密的會話標識數據的暫存標識符,則:
[0022]當移動登錄助手利用會話標識數據的暫存標識符從Web系統獲取會話標識數據后,Web系統將已被獲取的會話標識數據從內存或數據庫中刪除;或者,當一個會話標識數據暫存的時間超過預定的時間期限后仍未被獲取,則Web系統將超時未被獲取的會話標識數據從內存或數據庫中刪除。
[0023]若用戶帳戶名或身份標識對應的加密密鑰和解密密鑰是同一個密鑰,則對會話標識數據或會話標識數據的暫存標識符進行加密和解密時所用的密碼算法是對稱密鑰密碼算法;
[0024]若用戶帳戶名或身份標識對應的加密密鑰和解密密鑰不是同一個密鑰,則對會話標識數據或會話標識數據的暫存標識符進行加密和解密時所用的密碼算法是公開密鑰密碼算法,用戶帳戶名或身份標識對應的加密密鑰是公鑰,而用戶帳戶名或身份標識對應的解密密鑰是私鑰。
[0025]從以上描述可以看到,基于本發明,Web系統將會話標識數據以密文的形式傳輸到用戶瀏覽器并以條碼顯示,移動終端中的移動登錄助手通過條碼掃描程序掃描條碼并解密獲得會話標識數據;或者,Web系統將會話標識數據的暫存標識符以密文的形式傳輸到用戶瀏覽器并以條碼顯示,移動終端中的移動登錄助手通過條碼掃描程序掃描條碼并解密獲得會話標識數據的暫存標識符,然后利用會話標識數據的暫存標識符從Web系統獲得暫存在系統中的會話標識數據。本發明的方法既保持了 “一種基于移動終端的Web系統便捷登錄方法”(專利申請號:201510472645.X)中方案實施簡單的優點,又能避免會話標識數據被注入的腳本程序竊取的風險。
【附圖說明】
[0026]圖1為Web系統返回的是會話標識數據時本發明的示意圖。
[0027]圖2為Web系統返回的是會話標識數據的暫存標識符時本發明的示意圖。
【具體實施方式】
[0028]下面結合附圖和實施例對本發明作進一步的描述。
[0029]除了用戶使用瀏覽器登錄Web系統時,Web系統返回的可能是會話標識數據的暫存標識符、對返回的會話標識數據或會話標識數據的暫存標識符要進行加密和解密、以及若返回的是會話標識數據的暫存標識符則移動登錄助手需要從Web系統獲取會話標識數據這幾點外,本發明其余部分的具體實施與發明“一種基于移動終端的Web系統便捷登錄方法”(專利申請號:201510472645.X)的具體實施相同(注意:本發明的中移動登錄助手對應于201510472645.X中的移動登錄代理)。
[0030]若Web系統返回的是會話標識數據的暫存標識符,則Web系統生成會話標識數據的暫存標識符的方法包括(但不限于):用一個隨機生成的字串或者包含隨機字串的字串作為會話標識數據的暫存標識符,或者用單向不可逆函數(如散列函數)對會話標識數據進行運算,然后用運算后的結果作為會話標識數據的暫存標識符;而Web系統將會話標識數據暫存在內存或數據庫中、以及移動登錄助手利用會話標識數據的暫存標識符從Web系統獲得會話標識數據的具體實施對相關領域的技術人員而言是非常簡單的,在此無需作進一步的說明。
[0031]下面通過實施例對于會話標識數據或會話標識數據的暫存標識符進行加密和解密的【具體實施方式】進行描述。
[0032]實施例一
[0033]Web系統采用帳戶名、口令方式進行登錄鑒別,Web系統的帳戶數據庫中存有用戶的帳戶名、口令或口令散列值;用戶使用瀏覽器登錄Web系統時通過瀏覽器輸入并提交帳戶名;Web系統接收到用戶提交的帳戶名并確認接收到的帳戶名對應一個有效帳戶后,從對應帳戶中獲得用戶的口令或口令散列值,并通過口令或口令散列值導出一個對稱密鑰(如取它們的散列值),并以此導出的密鑰采用對稱密鑰密碼算法對返回到瀏覽器的會話標識數據或會話標識數據的暫存標識符進行加密;而移動登錄助手通過條碼掃描獲得加密的會話標識數據或會話標識數據的暫存標識符后,利用用戶的口令或口令散列值采用同樣的方法導出對