一種安全通訊方法和裝置的制造方法
【專利說明】
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)安全技術(shù)領(lǐng)域,特別涉及一種安全通訊方法和裝置。
【【背景技術(shù)】】
[0002]隨著網(wǎng)絡(luò)技術(shù)的迅速發(fā)展,無論是移動設(shè)備的客戶端還是PC的客戶端與服務(wù)器之前的通訊都面臨嚴峻的安全問題。該安全問題主要涉及:對服務(wù)器的自動化攻擊、通訊數(shù)據(jù)的外泄、中間人對服務(wù)器的非法攻擊、非法客戶端對服務(wù)器的訪問,等等。
【
【發(fā)明內(nèi)容】
】
[0003]有鑒于此,本發(fā)明提供了一種安全通訊方法和裝置,以便于提高客戶端與服務(wù)器之間通訊的安全性。
[0004]具體技術(shù)方案如下:
[0005]本發(fā)明提供了一種安全通訊的方法,該方法由設(shè)置于客戶端和服務(wù)器之間的安全代理設(shè)備執(zhí)行,該方法包括:
[0006]S1、接收到服務(wù)器返回給客戶端的數(shù)據(jù)后,為所述客戶端分配令牌,將所述令牌、所述服務(wù)器返回給客戶端的數(shù)據(jù)以及執(zhí)行模塊發(fā)送給所述客戶端;
[0007]S2、接收運行于所述客戶端的所述執(zhí)行模塊利用所述令牌發(fā)送的請求,對所述令牌進行驗證,如果驗證通過,則將所述請求轉(zhuǎn)發(fā)給所述服務(wù)器。
[0008]根據(jù)本發(fā)明一優(yōu)選實施方式,該方法還包括:
[0009]接收到所述客戶端向所述服務(wù)器發(fā)送的請求后,判斷是否已為該客戶端分配有效的令牌,如果否,則將該請求轉(zhuǎn)發(fā)給服務(wù)器;如果是,則判斷該請求是否攜帶令牌,如果攜帶,則執(zhí)行所述對所述令牌進行驗證的步驟。
[0010]根據(jù)本發(fā)明一優(yōu)選實施方式,該方法還包括:
[0011]對所述請求進行合法性驗證,如果驗證失敗,則拒絕對所述請求進行處理。
[0012]根據(jù)本發(fā)明一優(yōu)選實施方式,所述合法性驗證包括以下一種或任意組合:
[0013]驗證請求的協(xié)議頭是否符合協(xié)議規(guī)定的類型;
[0014]對請求的協(xié)議頭和請求地址進行語法驗證;
[0015]驗證請求的協(xié)議頭和請求地址是否包含攻擊代碼;以及,
[0016]對請求的請求地址進行身份驗證。
[0017]根據(jù)本發(fā)明一優(yōu)選實施方式,為所述客戶端分配令牌包括:采用訪問令牌密鑰對包含訪問密鑰的數(shù)據(jù)進行加密后,得到訪問令牌;
[0018]在所述S2中,所述執(zhí)行模塊發(fā)送的請求攜帶所述訪問令牌。
[0019]根據(jù)本發(fā)明一優(yōu)選實施方式,所述包含訪問密鑰的數(shù)據(jù)還包括以下數(shù)據(jù)中的一種或任意組合:
[0020]時間戳、令牌序列號、請求地址的哈希值以及客戶端狀態(tài)值;
[0021]其中所述客戶端狀態(tài)值是依據(jù)客戶端所發(fā)送請求是否攜帶正確的令牌或者是否合法進行設(shè)置的。
[0022]根據(jù)本發(fā)明一優(yōu)選實施方式,為所述客戶端分配令牌還包括客戶端狀態(tài)請求令牌;
[0023]在所述SI中發(fā)送給客戶端的還包括:所述客戶端狀態(tài)請求令牌和客戶端狀態(tài)請求密鑰;
[0024]在所述SI和所述S2之間,還包括:
[0025]S31、接收所述執(zhí)行模塊發(fā)送的客戶端狀態(tài)請求令牌;
[0026]S32、驗證所述客戶端狀態(tài)請求令牌合法后,為客戶端分配客戶端狀態(tài)令牌,將利用所述客戶端狀態(tài)請求密鑰加密后的客戶端狀態(tài)令牌發(fā)送給所述客戶端;
[0027]在所述S2中,所述執(zhí)行模塊發(fā)送的請求進一步攜帶所述客戶端狀態(tài)令牌。
[0028]根據(jù)本發(fā)明一優(yōu)選實施方式,所述客戶端狀態(tài)請求令牌是利用客戶端狀態(tài)請求令牌密鑰對包含客戶端狀態(tài)請求密鑰的數(shù)據(jù)進行加密后得到的。
[0029]根據(jù)本發(fā)明一優(yōu)選實施方式,在所述S32中,對所述客戶端狀態(tài)請求令牌是否合法的驗證包括:
[0030]判斷接收到的所述客戶端狀態(tài)請求令牌是否是為該客戶端分配的客戶端狀態(tài)請求令牌且未被客戶端使用過,如果是,則確定所述客戶端狀態(tài)請求令牌合法;否則,確定所述客戶端狀態(tài)請求令牌不合法。
[0031 ] 根據(jù)本發(fā)明一優(yōu)選實施方式,所述客戶端狀態(tài)請求密鑰包括:客戶端狀態(tài)請求加密密鑰和客戶端請求哈希密鑰;
[0032]在所述S32中利用所述客戶端狀態(tài)請求加密密鑰對客戶端狀態(tài)令牌進行加密;
[0033]在所述S31中還接收到利用所述客戶端狀態(tài)請求加密密鑰加密的隨機數(shù)和利用所述客戶端請求哈希密鑰對所述隨機數(shù)取哈希得到的哈希值;
[0034]在所述S32中進一步包括:利用所述客戶端狀態(tài)請求加密密鑰對接收到的隨機數(shù)進行解密,然后利用所述哈希值對解密得到的隨機數(shù)進行驗證;驗證通過后,執(zhí)行所述為客戶端分配客戶端狀態(tài)令牌的步驟。
[0035]根據(jù)本發(fā)明一優(yōu)選實施方式,在所述S2中,如果對所述令牌進行驗證失敗,或者接收到的請求不攜帶所述令牌,則拒絕對所述請求進行轉(zhuǎn)發(fā)。
[0036]根據(jù)本發(fā)明一優(yōu)選實施方式,在所述SI中發(fā)送給客戶端的還包括:非法攻擊誘捕模塊,所述非法攻擊誘捕模塊包含偽造的URL ;
[0037]如果檢測到針對所述偽造的URL的請求,則確定發(fā)送針對所述偽造的URL的請求的客戶端為具有攻擊性的客戶端。
[0038]根據(jù)本發(fā)明一優(yōu)選實施方式,在所述SI中還包括:將所述訪問密鑰發(fā)送給所述客戶端;
[0039]在所述S2中,將所述請求轉(zhuǎn)發(fā)給所述服務(wù)器包括:利用所述訪問密鑰對請求包含的數(shù)據(jù)進行解密,將解密后的請求轉(zhuǎn)發(fā)給所述服務(wù)器。
[0040]本發(fā)明還提供了一種安全通訊的裝置,該裝置設(shè)置于客戶端和服務(wù)器之間的安全代理設(shè)備,該裝置包括:響應(yīng)處理單元、令牌管理單元和請求處理單元;
[0041]所述響應(yīng)處理單元,用于接收服務(wù)器返回給客戶端的數(shù)據(jù),將為所述客戶端分配的令牌、所述服務(wù)器返回給客戶端的數(shù)據(jù)以及執(zhí)行模塊發(fā)送給所述客戶端;
[0042]所述令牌管理單元,用于在所述響應(yīng)處理單元接收到服務(wù)器返回給客戶端的數(shù)據(jù)后,為所述客戶端分配令牌;對所述請求處理單元提供的令牌進行驗證;
[0043]所述請求處理單元,用于接收運行于所述客戶端的所述執(zhí)行模塊利用所述令牌發(fā)送的請求,將所述令牌提供給所述令牌管理單元,如果所述令牌驗證通過,則將所述請求轉(zhuǎn)發(fā)給所述服務(wù)器。
[0044]根據(jù)本發(fā)明一優(yōu)選實施方式,所述請求處理單元,還用于接收到所述客戶端向所述服務(wù)器發(fā)送的請求后,觸發(fā)所述令牌管理單元判斷是否已為該客戶端分配有效的令牌,如果所述令牌管理單元的判斷結(jié)果為否,則將該請求轉(zhuǎn)發(fā)給服務(wù)器;如果所述令牌管理單元的判斷結(jié)果為是,則判斷該請求是否攜帶令牌,如果攜帶,則執(zhí)行將所述令牌提供給所述令牌管理單元的操作。
[0045]根據(jù)本發(fā)明一優(yōu)選實施方式,所述請求處理單元,還用于對所述請求進行合法性驗證,如果驗證失敗,則拒絕對所述請求進行處理。
[0046]根據(jù)本發(fā)明一優(yōu)選實施方式,所述請求處理單元,還用于對所述請求執(zhí)行以下合法性驗證中的一種或任意組合:
[0047]驗證請求的協(xié)議頭是否符合協(xié)議規(guī)定的類型;
[0048]對請求的協(xié)議頭和請求地址進行語法驗證;
[0049]驗證請求的協(xié)議頭和請求地址是否包含攻擊代碼;以及,
[0050]對請求的請求地址進行身份驗證。
[0051]根據(jù)本發(fā)明一優(yōu)選實施方式,所述令牌管理單元在為所述客戶端分配令牌時,具體采用訪問令牌密鑰對包含訪問密鑰的數(shù)據(jù)進行加密后,得到訪問令牌;
[0052]所述執(zhí)行模塊發(fā)送的請求攜帶所述訪問令牌。
[0053]根據(jù)本發(fā)明一優(yōu)選實施方式,所述包含訪問密鑰的數(shù)據(jù)還包括以下數(shù)據(jù)中的一種或任意組合:
[0054]時間戳、令牌序列號、請求地址的哈希值以及客戶端狀態(tài)值;
[0055]其中所述客戶端狀態(tài)值是依據(jù)客戶端所發(fā)送請求是否攜帶正確的令牌或者是否合法進行設(shè)置的。
[0056]根據(jù)本發(fā)明一優(yōu)選實施方式,該裝置還包括:狀態(tài)驗證單元;
[0057]所述令牌管理單元在為所述客戶端分配令牌時,進一步分配客戶端狀態(tài)請求令牌;受到所述狀態(tài)驗證單元的觸發(fā)后,為所述客戶端分配客戶端狀態(tài)令牌;
[0058]所述響應(yīng)處理單元在將為所述客戶端分配的令牌、所述服務(wù)器返回給客戶端的數(shù)據(jù)以及執(zhí)行模塊發(fā)送給所述客戶端時,進一步發(fā)送所述客戶端狀態(tài)請求令牌和客戶端狀態(tài)請求密鑰;
[0059]所述狀態(tài)驗證單元,用于接收所述執(zhí)行模塊發(fā)送的客戶端狀態(tài)請求令牌;驗證所述客戶端狀態(tài)請求令牌合法后,觸發(fā)所述令牌管理單元為客戶端分配客戶端狀態(tài)令牌;將利用所述客戶端狀態(tài)請求密鑰加密后的客戶端狀態(tài)令牌發(fā)送給所述客戶端;
[0060]所述執(zhí)行模塊發(fā)送的請求進一步攜帶所述客戶端狀態(tài)令牌。
[0061]根據(jù)本發(fā)明一優(yōu)選實施方式,所述令牌管理單元在為客戶端分配客戶端狀態(tài)令牌時,具體利用客戶端狀態(tài)請求令牌密鑰,對包含客戶端狀態(tài)請求密鑰的數(shù)據(jù)進行加密后,得到所述客戶端狀態(tài)令牌。
[0062]根據(jù)本發(fā)明一優(yōu)選實施方式,所述狀態(tài)驗證單元在驗證所述客戶端狀態(tài)請求令牌是否合法時,具體用于:
[0063]判斷接收到的所述客戶端狀態(tài)請求令牌是否是為該客戶端分配的客戶端狀態(tài)請求令牌且未被客戶端使用過,如果是,則確定所述客戶端狀態(tài)請求令牌合法;否則,確定所述客戶端狀態(tài)請求令牌不合法。
[0064]根據(jù)本發(fā)明一優(yōu)選實施方式,所述客戶端狀態(tài)請求密鑰包括:客戶端狀態(tài)請求加密密鑰和客戶端請求哈希密鑰;
[0065]所述狀態(tài)驗證單元具體利用所述客戶端狀態(tài)請求加密密鑰對客戶端狀態(tài)令牌進行加密;
[0066]所述狀態(tài)驗證單元還接收到利用所述客戶端狀態(tài)請求加密密鑰加密的隨機數(shù)和利用所述客戶端請求哈希密鑰對所述隨機數(shù)取哈希得到的哈希值;利用所述客戶端狀態(tài)請求加密密鑰對接收到的隨機數(shù)進行解密,然后利用所述哈希值對解密得到的隨機數(shù)進行驗證;驗證通過后,執(zhí)行所述觸發(fā)令牌管理單元為客戶端分配客戶端狀態(tài)令牌的操作。
[0067]根據(jù)本發(fā)明一優(yōu)選實施方式,如果所述令牌驗證失