一種用于瀏覽器客戶端和服務(wù)器的授權(quán)訪問方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種授權(quán)訪問方法,尤其是涉及一種用于瀏覽器客戶端和服務(wù)器的授權(quán)訪問方法。
【背景技術(shù)】
[0002]隨著信息技術(shù)的不斷發(fā)展,賬號信息安全越來越受到重視。用戶在瀏覽器客戶端訪問服務(wù)器時,為了獲取更多的個性化服務(wù),通常需要注冊對應(yīng)服務(wù)器的賬號,為了保證賬號的安全,則需要用戶編輯一個與賬號對應(yīng)的密碼。在瀏覽器客戶端訪問服務(wù)器期間,需要不斷進(jìn)行權(quán)限驗證,一般是通過存儲登錄驗證通過后的令牌,每次要求權(quán)限驗證的時候把保存的令牌上傳到服務(wù)器,達(dá)到驗證用戶身份的目的。這樣的方式,如果令牌被截獲的話,別人可以偽裝成用戶,造成信息的泄漏,無法區(qū)分哪一個是真正登錄的用戶。
【發(fā)明內(nèi)容】
[0003]本發(fā)明的目的就是為了克服上述現(xiàn)有技術(shù)存在的缺陷而提供一種用于瀏覽器客戶端和服務(wù)器的授權(quán)訪問方法。
[0004]本發(fā)明的目的可以通過以下技術(shù)方案來實現(xiàn):
[0005]—種用于瀏覽器客戶端和服務(wù)器的授權(quán)訪問方法,該方法包括如下步驟:
[0006](I)瀏覽器客戶端發(fā)出登錄驗證請求,服務(wù)器接收登錄驗證請求并進(jìn)行登錄驗證,同時將驗證結(jié)果發(fā)送至瀏覽器客戶端,瀏覽器客戶端根據(jù)登錄驗證結(jié)果判斷是否登錄成功,若登錄驗證成功,則服務(wù)器生成動態(tài)口令密鑰、服務(wù)器時間和動態(tài)口令密鑰過期時間,同時將所述的動態(tài)口令密鑰、服務(wù)器時間和動態(tài)口令密鑰過期時間存儲至瀏覽器客戶端緩存中,執(zhí)行步驟(2),否則登錄失敗,結(jié)束;
[0007](2)判斷是否到達(dá)瀏覽器客戶端緩存中的動態(tài)口令密鑰過期時間,若是執(zhí)行步驟
(3),否則執(zhí)行步驟(4);
[0008](3)瀏覽器客戶端發(fā)出動態(tài)口令密鑰切換請求,服務(wù)器接收動態(tài)口令密鑰切換請求并進(jìn)行動態(tài)口令密鑰切換,同時將動態(tài)口令密鑰切換結(jié)果發(fā)送至瀏覽器客戶端,瀏覽器客戶端根據(jù)動態(tài)口令密鑰切換結(jié)果判斷動態(tài)口令是否切換成功,若動態(tài)口令密鑰切換成功,服務(wù)器獲取新的動態(tài)口令密鑰、服務(wù)器時間和動態(tài)口令密鑰過期時間,并對瀏覽器客戶端緩存中的相應(yīng)信息進(jìn)行更新,執(zhí)行步驟(4),否則動態(tài)口令密鑰切換失敗,結(jié)束;
[0009](4)瀏覽器客戶端采用瀏覽器客戶端緩存中的動態(tài)口令密鑰和服務(wù)器時間產(chǎn)生動態(tài)口令,采用動態(tài)口令對服務(wù)器進(jìn)行授權(quán)訪問,返回步驟(2)。
[0010]所述的瀏覽器客戶端發(fā)出登錄驗證請求具體為:
[0011](Ia)瀏覽器客戶端獲取人工輸入的用戶名Userl和登錄密碼Pwd2后,生成唯一識別標(biāo)識UUIDl和瀏覽器客戶端IP地址,同時隨機生成第一對稱加密密碼DataPwdl和第一非對稱密鑰對,其中第一非對稱密鑰對包括第一私鑰PrivateKeyl和第一公鑰PublicKeyljlJ覽器客戶端還獲取瀏覽器客戶端與服務(wù)器通訊的第二非對稱密鑰對中的第二公鑰PublicKey2,執(zhí)行步驟(lb);
[0012](Ib)采用第二公鑰PublicKey2對唯一識別標(biāo)識UUID1、瀏覽器客戶端IP地址、第一對稱加密密碼DataPwdl、第一公鑰?11131;[01(671、用戶名1]861'1和登錄密碼?¥(12進(jìn)行加密,所有加密數(shù)據(jù)組成登錄驗證請求加密數(shù)據(jù),執(zhí)行步驟(Ic);
[0013](Ic)將步驟(Ib)中登錄驗證請求加密數(shù)據(jù)發(fā)送至服務(wù)器登錄驗證接口進(jìn)行登錄驗證請求。
[0014]所述的服務(wù)器接收登錄驗證請求并進(jìn)行登錄驗證具體為:
[0015](2a)服務(wù)器獲取第二非對稱密鑰對中的第二私鑰PriVateKey2,執(zhí)行步驟(2b);[ΟΟ??] (2b)將步驟(lc)中的登錄驗證請求加密數(shù)據(jù)采用第二私鑰PrivateKey2進(jìn)行解密,獲取唯一識別標(biāo)識UUIDl、瀏覽器客戶端IP地址、第一對稱加密密碼DataPwdl、第一公鑰PublicKeyl、用戶名Userl和登錄密碼Pwd2,執(zhí)行步驟(2c);
[0017](2c)將用戶名Userl和登錄密碼Pwd2與服務(wù)器數(shù)據(jù)庫中存儲的用戶名和登錄密碼分別進(jìn)行對比并判斷是否一致,若是則執(zhí)行步驟(2d),否則執(zhí)行步驟(2f);
[0018](2d)服務(wù)器生成登錄成功代碼、第一動態(tài)口令密鑰PwdKeyl、第一服務(wù)器時間ServerTimes tamp I和第一動態(tài)口令密鑰過期時間ExpireTimes tamp I,并將唯一識別標(biāo)識UUIDl、瀏覽器客戶端IP地址、第一對稱加密密碼DataPwdl、第一動態(tài)口令密鑰PwdKeyl、第一服務(wù)器時間ServerTimestamp I和第一動態(tài)口令密鑰過期時間ExpireTimestamp I保存至服務(wù)器數(shù)據(jù)庫中,執(zhí)行步驟(2e);
[0019](2e)采用第一公鑰PublicKeyl對登錄成功代碼、第一動態(tài)口令密鑰PwdKeyl、第一服務(wù)器時間ServerTimestamp I和第一動態(tài)口令密鑰過期時間ExpireTimestamp I進(jìn)行加密并保存為登錄驗證結(jié)果,結(jié)束登錄驗證;
[0020](2f)服務(wù)器生成登錄失敗代碼并采用第一公鑰PublicKeyl對登錄失敗代碼進(jìn)行加密,同時將加密后的登錄失敗代碼保存為登錄驗證結(jié)果。
[0021]所述的瀏覽器客戶端根據(jù)登錄驗證結(jié)果判斷是否登錄成功具體為:
[0022](3a)瀏覽器客戶端接收登錄驗證結(jié)果并采用第一私鑰PrivateKeyl對登錄驗證結(jié)果進(jìn)行解密,判斷解密后的登錄驗證結(jié)果是否為登錄失敗代碼,若是則執(zhí)行步驟(3b),否則執(zhí)行步驟(3c);
[0023](3b)瀏覽器客戶端顯示登錄失敗,結(jié)束;
[0024](3c)將唯一識別標(biāo)識UUIDl、瀏覽器客戶端IP地址、第一對稱加密密碼DataPwdl、第一公鑰?11131;[(31(671、第一動態(tài)口令密鑰PwdKey 1、第一服務(wù)器時間ServerTimestampl、第一動態(tài)口令密鑰過期時間ExpireTimestamp I以及第一服務(wù)器時間ServerTimestamp I與本地時間差值Interval I保存至瀏覽器客戶端緩存中。
[0025]所述的瀏覽器客戶端發(fā)出動態(tài)口令密鑰切換請求具體為:
[0026](4a)瀏覽器客戶端將瀏覽器客戶端緩存中的第一動態(tài)口令密鑰PwdKeyl、第一服務(wù)器時間ServerT ;[1116 8七31]^1和第一服務(wù)器時間ServerT ime stamp I與本地時間差值Intervall采用動態(tài)令牌算法生成第一動態(tài)令牌Numberl,執(zhí)行步驟(4b);
[0027](4b)隨機生成第二對稱加密密碼DataPwd2和第三非對稱秘鑰對,其中第三非對稱密鑰對包括第三私鑰PrivateKey3和第三公鑰PublicKey3,執(zhí)行步驟(4c);
[0028](4c)獲取瀏覽器客戶端IP地址,將唯一識別標(biāo)識UUIDl、瀏覽器客戶端IP地址、第一動態(tài)口令密鑰PwdKeyl、第一動態(tài)口令密鑰過期時間ExpireTimestampl、第一動態(tài)令牌Numberl、第二對稱加密密碼DataPwd2和第三公鑰Publ icKey3采用第二公鑰Publ icKey2進(jìn)行加密,該步驟中所有加密數(shù)據(jù)組成動態(tài)口令密鑰切換請求加密數(shù)據(jù),執(zhí)行步驟(4d);
[0029](4d)將步驟(4c)中的動態(tài)口令密鑰切換請求加密數(shù)據(jù)發(fā)送至服務(wù)器的動態(tài)口令密鑰切換接口進(jìn)行動態(tài)口令密鑰切換請求。
[0030]所述的服務(wù)器接收動態(tài)口令密鑰切換請求并進(jìn)行動態(tài)口令密鑰切換具體為:
[0031](5a)將步驟(4d)中的動態(tài)口令密鑰切換請求加密數(shù)據(jù)采用第二私鑰PriVateKey2進(jìn)行解密獲取唯一識別標(biāo)識UUIDl、瀏覽器客戶端IP地址、第一動態(tài)口令密鑰PwdKey 1、第一動態(tài)口令密鑰過期時間ExpireTimestampl、第一動態(tài)令牌Numberl、第二對稱加密密碼0&七3?¥(12和第三公鑰?1*1丨(^673,執(zhí)行步驟(513);
[0032](5b)根據(jù)唯一識別標(biāo)識UUIDl從服務(wù)器數(shù)據(jù)庫獲取相應(yīng)的瀏覽器客戶端IP地址、第一對稱加密密碼DataPwdl、第一動態(tài)口令密鑰PwdKeyl和第一動態(tài)口令密鑰過期時間ExpireTimestampl,執(zhí)行步驟(5c);
[0033](5c)獲取服務(wù)器當(dāng)前時間,將步驟(5b)中獲取的動態(tài)口令密鑰PwdKeyI和服務(wù)器當(dāng)前時間采用動態(tài)令牌算法生成第二動態(tài)令牌Number2,執(zhí)行步驟(5d);
[0034](5d)對比第二動態(tài)令牌Number2和第一動態(tài)令牌Numberl,判斷兩者是否一致,若是則執(zhí)行步驟(5e),否則執(zhí)行步驟(5j);
[0035](5e)分別比較步驟(5a)和步驟(5b)中的第一動態(tài)口令密鑰PwdKeyl以及第一動態(tài)口令密鑰過期時間ExpireTimestampI是否對應(yīng)一致,若是執(zhí)行步驟(5f),否則執(zhí)行步驟(5j);
[0036](5f)判斷步驟(5a)和步驟(5b)中瀏覽器客戶端IP地址是否一致,若是執(zhí)行步驟(5g),否則寫入用于警告客戶端IP地址變換的推送信息至服務(wù)器數(shù)據(jù)庫并執(zhí)行步驟(5g);
[0037](5g)生成第二動態(tài)口令密鑰?¥(11(672、第二服務(wù)器時間361^61'111116 8七311^|2和第二動態(tài)口令密鑰過期時間ExpireTimestamp2,執(zhí)行步驟(5h);
[0038](5h)根據(jù)唯一識別標(biāo)識UUIDl對服務(wù)器數(shù)據(jù)庫中存儲的數(shù)據(jù)信息進(jìn)行賦值更新,包括將第二對稱加密密碼DataPwd2賦值為第一對稱加密密碼DataPwdI,第二動態(tài)口令密鑰卩界(11(672賦值為第一動態(tài)口令密鑰?¥(11(671,第二服務(wù)器時間361^61'1111168丨311^|2賦值為第一服務(wù)器時間ServerTimestampI,第二動態(tài)口令密鑰過期時間ExpireTimestamp2賦值為第一動態(tài)口令密鑰過期時間ExpireTimestampl,執(zhí)行步驟(5i);
[0039](5i)服務(wù)器生成動態(tài)口令密鑰切換成功代碼,同時將動態(tài)口令密鑰卻換成功密碼以及步驟(5g)中的第二動態(tài)口令密鑰PwdKey2、第二服務(wù)器時間Se