專利名稱:防止信息泄漏的系統(tǒng)和基于該系統(tǒng)的防止信息泄漏的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡信息安全的技術(shù)領(lǐng)域,尤其涉及一種防止信息泄漏的系 統(tǒng)和基于該系統(tǒng)的防止信息泄漏的方法。
背景技術(shù):
企業(yè)為防止機密信息泄漏,通常會制定嚴格的信息管理策略和信息管理 制度,采取限制涉密員工訪問互聯(lián)網(wǎng)、限制涉密員工把信息復制到可移動存 儲設備、限制涉密員工打印和傳真、限制涉密員工向企業(yè)外面發(fā)送郵件等措 施對機密信息加以保護。但是嚴格的信息保護措施和制度極大地限制了員工
訪問互if關(guān)網(wǎng)信息的自由,而且限制員工和外部的通信,包括禁止向外發(fā)送信 息,同時也會限制員工與合作伙伴的信息交流,導致工作效率降低。
以使用電子郵件(email)為例,企業(yè)為滿足涉密員工通信的需求,通常會 允許員工使用email進行內(nèi)部員工間通信,但嚴格限制員工和企業(yè)外部人員 的通信。只有經(jīng)過嚴格審核后,員工才能向企業(yè)外部的人員發(fā)送郵件。這種 安全策略對于保護企業(yè)的信息資產(chǎn)是必要的,但這種審核通常需要繁瑣的人 工申請過程,在得到相關(guān)管理人員的批準后,員工才能向外發(fā)送郵件,同時, 員工所發(fā)送的郵件還需要在安全管理人員處進行備案,以上過程給員工造成 極大的不便,并且降低了工作效率。
即使企業(yè)允許員工和企業(yè)外部人員進行通信,也要采取信息防泄漏技術(shù) 以防止企業(yè)信息通過網(wǎng)絡泄漏出去。信息防泄漏技術(shù)主要包括防止非授權(quán)用 戶對信息的非法訪問和防止合法用戶對信息有意或無意的泄漏。為防止非授 權(quán)用戶對信息的非法訪問,通常采用物理手段或密碼學技術(shù)對信息存儲設備 和傳輸線路進行安全加固。比如采用防止非法讀取的設備、加密存儲、認證 和加密傳輸?shù)劝踩侄?。防止合法用戶的信息泄漏,則是從終端角度對各種 可能外流信息的渠道進行封鎖與禁用,達到信息流動的可控性。
信息防泄漏4支術(shù)主要可以分為基于網(wǎng)*備的4言息防泄漏4支術(shù)和基于主機 的信息防泄漏技術(shù)?;诰W(wǎng)絡的信息防泄漏技術(shù)主要是在企業(yè)的網(wǎng)絡出口對 信息進行監(jiān)測和控制。而基于主機的信息防泄漏技術(shù)則是對主機的各種外設 接口的使用進行控制,特別是對移動存儲設備和打印機的使用進行監(jiān)控,
基于網(wǎng)絡的信息防泄漏技術(shù)是為了防止企業(yè)員工通過網(wǎng)絡的各種應用,
包括郵件、FTP、即時通信工具等,有意或無意地把企業(yè)的機密信息傳送到 企業(yè)之外。例如,企業(yè)員工的機器中了木馬,那么就有可能造成信息的無意 外泄?;诰W(wǎng)絡的信息防泄漏技術(shù)通常在網(wǎng)絡出口部署安全網(wǎng)關(guān),在安全網(wǎng) 關(guān)上對外傳的信息進行檢測,如果外傳信息屬于企業(yè)的機密信息,安全網(wǎng)關(guān) 將阻止這種行為,并且記錄企業(yè)員工的非法行為。這種技術(shù)最有代表性的是 Vontu公司的數(shù)據(jù)傳輸控制系統(tǒng),該系統(tǒng)使用了三種不同的過濾技術(shù)來分析 不同的機密數(shù)據(jù),包括用于防止文件外傳的索引文件匹配法(IDM, Indexed Document Matching),用于防止機密數(shù)據(jù)外傳的準確數(shù)據(jù)匹配法(EDM, Exaci Data Matching)和防止帶特殊關(guān)鍵字內(nèi)容的描述內(nèi)容匹配(DCM, Described Content Matching)。
基于主機的信息防泄漏技術(shù)通常在員工使用的終端上安裝一個代理,該 代理全面監(jiān)管員工的終端,可以防止通過網(wǎng)絡、主機外設接口、打印機和移 動存儲設備泄漏信息。這種技術(shù)可以阻止企業(yè)員工訪問網(wǎng)絡,根據(jù)不同的安 全策略,可以基于IP地址、TCP端口和具體的內(nèi)容過濾來限制信息外傳. 常用的Safend信息安全衛(wèi)士軟件可以通過駐留在主機上的代理,對主機上 的各種端口進行監(jiān)控,防止信息從USB、串口、并口、藍牙、傳真等接口外 傳,同時可以限制移動存儲設備的使用,包括U盤、光驅(qū)、軟盤、磁帶等。
目前,無論是基于網(wǎng)絡的信息防泄漏技術(shù)還是基于主機的信息防泄漏技 術(shù),僅提供訪問控制和自動檢測,沒有提供對信息的授權(quán)。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明解決的技術(shù)問題是提供一種防止信息泄漏的系統(tǒng)和基 于該系統(tǒng)的防止信息泄漏的方法,通過該系統(tǒng)和方法對信息的內(nèi)容進行審核 和授權(quán),只有審核通過的信息才被授權(quán)發(fā)送到企業(yè)網(wǎng)外部,從而大大提高了 信息傳輸?shù)陌踩裕玫胤乐沽诵畔⑿孤?br>
為此本發(fā)明提供的技術(shù)方案如下
一種防止^f言息:世漏的系統(tǒng),包4舌
用戶端,用于在用戶發(fā)送信息Msg時,生成第一驗證信息,將包括Msg 和第 一驗證信息的消息發(fā)送給所述審核端;
審核端,用于審核所述Msg,如果審核通過,則生成第二驗證信息,將 包括Msg、第一驗證信息和第二驗證信息的消息發(fā)送給代理服務器;
代理服務器,用于驗證第一驗證信息和第二驗證信息,如果驗證都通過: 則將Msg發(fā)送給該Msg的接收者,并向所述用戶端和審核端返回授權(quán)消息。
其中,所述用戶端包括
第一驗證信息單元,用于在未生成HASH鏈時,根據(jù)第一隨機數(shù)xs和 第一哈希HASH函數(shù)生成用戶端HASH鏈,將該HASH鏈的最高位秘密發(fā) 送給所述代理服務器;在用戶端發(fā)送Msg時,通過運算 MACl-H(MsgHRIDIIAIDIIh"(Xs))生成第一驗證碼MAC1,通過hn-1+1(xs;N— h,xs)加密生成加密信息E0;
用戶端發(fā)送單元,用于將包括Msg、 MAC1和E0的消息發(fā)送給所述審 核端;
其中,H("是預置的第二HASH函數(shù),RID是Msg接收者的ID, AID 是所述審核端的ID, h"(xs)是用戶端HASH鏈的當前次高位,h"+'(xs)是用 戶端HASH鏈的當前最高位。
其中,所述審核端包括
審核單元,用于在收到用戶端發(fā)送的消息后,審核該消息中的Msg;
第二驗證信息單元,用于在未生成HASH鏈時,根據(jù)第二隨機數(shù)Xa和 所述第一 HASH函數(shù)生成審核端HASH鏈,并將該HASH鏈的最高位秘密 發(fā)送給代理服務器;在審核單元審核Msg通過后,通過運算 MAC2-H(MsgllRIDIIAIDIIhW(XA))生成第二驗證碼MAC2,通過hn-j+1(:xA.W-hw(XA)加密生成加密信息El;
所迷審核端發(fā)送單元用于將包括Msg、 MAC1、 E0、 MAC2和E的消 息發(fā)送給所述代理服務器;
其中,hM(XA)是審核端HASH鏈的當前次高位,h'""(XA)是審核端HASH 鏈的當前最高位。
其中,所述代理服務器包括存儲單元、恢復單元、授權(quán)單元和反饋單元; 所述存儲單元用于保存所述用戶端HASH鏈的最高位和所述審核端HASH4連的最高位;
所述恢復單元用于在收到審核端發(fā)送的所述消息后,利用存儲單元保存 的用戶端、審核端HASH鏈的最高位從E0和E]分別恢復出用戶端、審核 端HASH鏈的當前次高4立;
所述授權(quán)單元利用恢復出的用戶端和審核端HASH鏈的當前次高位驗 證MAC 1和MAC2,如果驗證成功,則授權(quán),發(fā)送Msg給該信息的接收者, 通知反饋單元向所述用戶端、審核端發(fā)送授權(quán)消息;否則,不授權(quán),丟棄審 核端發(fā)送的信息,通知反饋單元向所述用戶端、審核端發(fā)送未授權(quán)消息;
所述反饋單元用于根據(jù)授權(quán)單元的通知向所述用戶端和審核端發(fā)送相 應的消息。
其中,還包括
更新單元,用于在授權(quán)單元授權(quán)后,將存儲單元中保存的用戶端和審核 端HASH鏈的最高位更新為恢復出的用戶端和審核端HASH鏈的次高位;
用戶端更新單元,用于判斷所述代理服務器返回給用戶端的消息是否為 授權(quán),如果是,則刪除所迷用戶端HASH鏈的當前最高位,該HASH鏈的 次高位成為新的當前最高位;否則,保持該HASH鏈的當前最高位不變;
審核端更新單元,用于判斷所述代理服務器返回給審核端的消息是否為 授權(quán),如果是,則刪除所述審核端HASH鏈的當前最高位,該HASH鏈的 次高位成為新的當前最高位;否則,保持該HASH鏈的當前最高位不變。
其中,所述用戶端包括
第一驗證信息單元,用于保存系統(tǒng)配置的第一隨機數(shù)Xs和用于對該隨機 數(shù)力。密的密鑰 k0 ; 在用戶端發(fā)送Msg 時,通過運算 MACl二H(MsgilRIDIIAIDIIxs)生成第一驗證碼MAC1 ,通過kO對Xs加密生成 加密信息E0;
用戶端發(fā)送單元,用于將包括Msg、 MAC1和E0的消息發(fā)送給所述審 核端;
其中,H。)是預置的HASH函數(shù),RID是Msg接收者的ID, AID是所 述審核端的ID。
其中,所述審核端包括
審核單元,用于在收到用戶端發(fā)送的消息后,審核該消息中的Msg;
第二驗證信息單元,用于保存系統(tǒng)配置的第二隨機數(shù)XA和用于對該隨說明書第5/18頁
機數(shù)加密的密鑰kl ; 在審核單元審核Msg通過后,通過運算 MAC2二H(MsgllRJDHAIDIIxA)生成第二驗證碼MAC2,通過kl對x.A加密生成 加密信息El;
所述審核端發(fā)送單元用于將包括Msg、 MAC1、 E0、 MAC2和E的消 息發(fā)送給所述代理服務器。
其中,所述代理服務器包括存儲單元、恢復單元、授權(quán)單元和反饋單
元;
所述存儲單元用于保存所述k0和kl;
所述恢復單元用于在收到審核端發(fā)送的所述消息后,利用存儲單元保存 的k0和kl分別從E0和E1恢復出用戶端、審核端的隨機數(shù);
所述授權(quán)單元利用恢復出的用戶端和審核端的隨機數(shù)驗證MAC 1和 MAC2,如果驗證成功,則授權(quán),發(fā)送:Msg給該信息的接收者,通知反饋單 元向所述用戶端、審核端發(fā)送授權(quán)消息;否則,不授權(quán),丟棄審核端發(fā)送的 信息,通知反饋單元向所述用戶端、審核端發(fā)送未授權(quán)消息;
所述反饋單元用于根據(jù)授權(quán)單元的通知向所述用戶端和審核端發(fā)送相 應的消息。
其中,還包括
用戶端更新單元,用于判斷所述代理服務器返回的消息是否為授權(quán),如 果是,則刪除xs,等待系統(tǒng)再次分配隨機數(shù);否則,保持xs不變;
審核端更新單元,用于判斷所述代理服務器返回的消息是否為授權(quán),如
果是,則刪除XA,等待系統(tǒng)再次分配隨機數(shù);否則,保持XA不變。
其中,所述第一 HASH函數(shù)為單向HASH函數(shù)。 其中,還包括
簽名單元,用于在用戶發(fā)送信息Msg時,通過運算SigO = Epri(H(Msg||RID||AID)),生成簽名信息Sig0,并發(fā)送SigO給用戶端發(fā)送單元, 將SigO隨同Msg、 MAC1和E0 —起發(fā)送給審核端;
公鑰基礎(chǔ)設施PKI服務器,用于保存公鑰信息;
簽名驗證單元,用于在審核端收到用戶端發(fā)送的所述消息后,根據(jù)所述 用戶端的信息從PKI服務器獲得公鑰,驗證Sig0,并在驗證SigO通過后. 通知審核單元審核Msg;
其中,Epri("是所述用戶的私鑰?;谏厦韵到y(tǒng),本發(fā)明還提出一種防止信息泄漏的方法,包括
用戶端在用戶發(fā)送信息Msg時,生成第一驗證信息,將包括Msg和第 一驗證信息的消息發(fā)送給所述審核端;
審核端審核所述Msg,如果審核通過,則生成第二驗證信息,將包括 Msg、第一驗證信息和第二驗證信息的消息發(fā)送給代理服務器;
代理服務器驗證第一驗證信息和第二驗證信息,如果驗證都通過,則將 Msg發(fā)送給該Msg的接收者,并向所述用戶端和審核端返回授權(quán)消息。
其中,按下述步驟生成第一驗證信息
用戶端在未生成HASH鏈時,根據(jù)第一隨機數(shù)xs和第一哈希HASH函 數(shù)生成用戶端HASH鏈,將該HASH鏈的最高位秘密發(fā)送給所述代理服務 器;
用戶端在發(fā)送Msg時,通過運算MACl二H(MsgllRIDIIAIDIIhn-'(xs))生成 第一驗證碼MAC1,通過ir+乂xs)對lT'(Xs)加密生成加密信息E0;
其中,h"(xs)是用戶端HASH鏈的當前次高位,h'w+i(xs)是用戶端HASH 鏈的當前最高位。
其中,按下述步驟生成第二驗證信息
審核端在未生成HASH鏈時,根據(jù)第二隨機數(shù)Xa和所述第一HASH函 數(shù)生成審核端HASH鏈,并將該HASH鏈的最高位秘密發(fā)送給代理服務器;
審核端在審核Msg通過后,通過運算MAC2=H(Msg||RID||AID||hn-'(xA)) 生成第二驗證碼MAC2,通過h一乂XA)對h'"(XA)加密生成加密信息El;
其中,『、》是審核端HASH鏈的當前次高位,hn:'"(XA)是審核端HASH 鏈的當前最高位。
其中,按下述步驟授權(quán)-.
代理服務器保存所述用戶端HASH鏈的最高位和所述審核端HASH鏈 的最高位;
代理服務器收到審核端發(fā)送的所述消息后,利用其保存的用戶端、審核 端HASH鏈的最高位從E0和El分別恢復出用戶端和審核端HASH鏈的當 前次高位;
代理服務器利用恢復出的用戶端和審核端HASH鏈的當前次高位驗證 MAC1和MAC2,如果驗證成功,則授權(quán),發(fā)送所述信息Msg給該信息的 接收者,向所述用戶端、審核端發(fā)送授權(quán)消息;否則,不授權(quán),丟棄所述信息Msg,向所述用戶端、審核端發(fā)送未授權(quán)消息。
其中,進一步包括
代理服務器在授權(quán)后,將其保存的用戶端和審核端HASH鏈的最高位更 新為恢復出的用戶端和審核端HASH鏈的當前次高位;
用戶端判斷代理服務器返回的消息是否為授權(quán),如果是,則刪除所述用 戶端HASH鏈的當前最高位,該HASH鏈的次高位成為新的當前最高位; 否則,保持該HASH鏈的當前最高位不變;
審核端判斷所述代理服務器返回的消息是否為授權(quán),如果是,則刪除所 述審核端HASH鏈的當前最高位,該HASH鏈的次高位成為新的當前聶高 位;否則,保持該HASH鏈的當前最高位不變。
其中,按下述步驟生成第一驗證信息
用戶端保存系統(tǒng)配置的第 一隨機數(shù)xs和用于對該隨機數(shù)加密的密鑰k();
用戶端在發(fā)送Msg時,通過運算MAC^H(MsgllRIDIIAIDHxs)生成第一 驗證碼MAC 1 ,通過k0對xs加密生成加密信息E0;
其中,H("是預置的HASH函數(shù),RID是Msg接收者的ID, AID是所 述審核端的ID。
其中,按下述步驟生成第二驗證信息
審核端保存系統(tǒng)配置的第一隨機數(shù)XA和用于對該隨機數(shù)加密的密鑰kl; 審核端在審核Msg通過后,通過運算MAC2尸H(MsgllRIDHAIDIIxA)生成 第二驗證碼MAC2,通過kl對XA加密生成加密信息El。 其中,按下述步驟授權(quán) 代理服務器保存k0和kl;
代理服務器收到審核端發(fā)送的所述消息后,利用k(:)和kl從E0和El 分別恢復出用戶端和審核端的隨機數(shù);
代理服務器利用恢復出的用戶端和審核端的隨機數(shù)驗證MAC 1和 MAC2,如果驗證成功,則授權(quán),發(fā)送所述信息Msg給該信息的接收者,向 所述用戶端、審核端發(fā)送授權(quán)消息;否則,不授權(quán),丟棄所述信息Msg,向 所述用戶端、審核端發(fā)送未授權(quán)消息。
其中,進一步包括
用戶端判斷所述代理服務器返回的消息是否為授權(quán),如果是,則刪除Xs, 等待系統(tǒng)再次分配隨機數(shù);否則,保持xs不變; 審核端判斷所述代理服務器返回的消息是否為授權(quán),如果是,則刪除x,v 等待系統(tǒng)再次分配隨機數(shù);否則,保持XA不變。
其中,所述第一 HASH函凄t為單向HASH函數(shù)。 其中,進一步包括
用戶端在用戶發(fā)送信息 Msg 時,通過運算 Sig0 = Epri(H(Msg||RID||AID)),生成簽名信息Sig0,并將Sig0隨同Msg、 MAC
和E0 —起發(fā)送給審核端;
審核端在收到用戶端發(fā)送的所述消息后,根據(jù)所述用戶端的信息從pk:i
服務器獲得公鑰,驗證SigO,并在驗證SigO通過后,審核Msg; 其中,Epri("是所述用戶的私鑰。
可以看出,通過本發(fā)明提供的系統(tǒng)和方法,當企業(yè)內(nèi)部員工向企業(yè)外部 發(fā)送信息時,只有通過了審核端的審核和代理服務器的授權(quán)之后,該信息才 能被發(fā)送到企業(yè)外部,從而大大提高了信息傳輸?shù)陌踩?,更好地防止了?息泄漏。可以看出,在本發(fā)明提出的防止信息泄漏的系統(tǒng)中,驗證碼MAC1、 MAC2采用帶密鑰的HASH運算,用于代理服務器驗證用戶端和審核端的信 息。由于HASH鏈是單向的,而且HASH鏈上的每個值只用于1次消息審 核授權(quán),從而還可以防止重放(R印lay)攻擊。在本發(fā)明提供的系統(tǒng)和方法中. 企業(yè)內(nèi)部員工通過用戶端向企業(yè)外部發(fā)送信息時,將對該信息進行簽名.從 而使審核端可以保留該員工發(fā)送信息的證據(jù),如果該信息造成泄漏企業(yè)機密 信息的后果,則該員工應當為此負責。由于用戶端和審核端都要生成驗證碼, 因此在企業(yè)網(wǎng)上的惡意攻擊者無法對信息進行篡改,甚至替換。此外,發(fā)送 者在發(fā)送信息的時候,需要附上審核端的ID和接收者的ID,因此,信息發(fā) 送者必須是企業(yè)內(nèi)部的員工,并且知道自己所屬的審核端的情況,這也給其 它部門的惡意攻擊者的攻擊造成困難。由于代理服務器僅將員工發(fā)送的原始 信息發(fā)送給企業(yè)外部的接收者,因此企業(yè)外面的人員無法通過該信息獲取關(guān) 于企業(yè)內(nèi)部組織結(jié)構(gòu)的信息,也無法知道相關(guān)的審核端,,從而可以避免泄漏 信息審核流程的相關(guān)信息。
圖1是本發(fā)明提供的防止信息泄漏系統(tǒng)的示意圖; 圖2是本發(fā)明所述系統(tǒng)的一個具體結(jié)構(gòu)示意圖3是本發(fā)明所述系統(tǒng)的另一個具體結(jié)構(gòu)示意圖; 圖4是用戶端發(fā)送信息的流程圖; 圖5是審核端審核信息的流程圖; 圖6是代理服務器驗證授權(quán)的流程圖。
具體實施例方式
圖1示出了本發(fā)明所提供的防止信息泄漏的系統(tǒng),其中包括用戶端,審 核端和代理服務器。
所述用戶端用于在用戶發(fā)送信息Msg時,生成第一驗證碼MACl,將 包括Msg和MAC1的消息發(fā)送給所述審核端。
所述審核端用于審核所述Msg,如果審核通過,則生成第二驗證碼 MAC2,將包括Msg、 MAC1和MAC2的消息發(fā)送給代理服務器。
所述代理服務器用于驗證MAC1和MAC2,如果驗證都通過,則將Msg 發(fā)送給該Msg的接收者,并向所述用戶端和審核端返回授權(quán)消息。
圖2是本發(fā)明所述系統(tǒng)的更具體的結(jié)構(gòu)示意圖。
用戶端包括第一-瞼證信息單元22、用戶端發(fā)送單元23和用戶端更新單 元24。
在系統(tǒng)初始化時,此時用戶端還沒有生成HASH鏈,,用戶端可以通過第 一驗證信息單元22對隨機數(shù)xs按預置的第一哈希(HASH)函數(shù)運算生成用盧
端HASH鏈,假設為xs, h(xs), h2(xs), ......, hn(xs),并將該HASH鏈的當
前最高位,即h"(xs),秘密發(fā)送給代理服務器。其中,第一HASH函數(shù)可以 采用目前常用的單向HASH函數(shù),例如SHA1 、或RIPEMD-160。
當企業(yè)內(nèi)部員工通過用戶端向企業(yè)外部發(fā)送信息Msg時,假設信息Msg 是該用戶端發(fā)送的第i條信息、用戶端HASH鏈的當前最高位為h'w+1(xs)、 當前次高位是h""i(xs),則用戶端可以通過第一驗證信息單元22,利用預置的 第二 HASH函數(shù)對hn"(xs)、信息Msg、信息Msg接收者的標志(RID)和審核 端的標志(AID)進行運算生成 MAC1 , 即運算-MACl二H(MsgliRIDIIAIDIIh,xs));并利用密鑰k(MT'十i(xs)對hT(xs)加密,得 到加密后的信息EkQ(h"(Xs))。
獲得Eko(h,xs))和MAC1后,用戶端通過用戶端發(fā)送單元23將Msg、 RID、 AID、 Eko(h,Xs))和MACl進行串接后, 一起送給審核端。
用戶端收到代理服務器返回的消息,可以通過用戶端更新單元24判斷 該消息是否為授權(quán)消息,如果是,則刪除HASH鏈的當前最高位,該HASH 鏈的次高位,即h"(xs),成為新的當前最高位;否則,保持HASH鏈的當前 最高位不變。
審核端包括審核單元32、第二驗證信息單元33、審核端發(fā)送單元34和 審核端更新單元35。
在系統(tǒng)初始化時,此時審核端還沒有生成HASH鏈,審核端可以通過第 二驗證信息單元33對隨機數(shù)XA按預置的第一 HASH函數(shù)運算生成審核端
HASH鏈,假設為xA, h(x八),h2(xA), ......, hn(xA),并將該HASH鏈的最
高位,即h'XxA),秘密發(fā)送給代理服務器。
審核端收到來自用戶端的信息后,假設審核端收到的信息為 MsgllRIDIIAIDIIEko(V-i(xs))IIMACl,審核端將通過審核單元32對員工發(fā)送的 原始信息Msg進行審核。如果原始信息Msg通過審核,則審核端利用第二 —瞼證信息單元33生成MAC2。其中,如果信息Msg審核未通過,則審核端 將丟棄用戶端發(fā)送的信息。
假設審核端的HASH鏈的當前最高位為hn-j+1(xA)、當前次高位是h,XA), 第二驗證信息單元33將利用所述第二 HASH函數(shù)對Msg、 RID、 AID和h,XA) 進行運算,生成MAC2,即計算MAC2=H(Msg|lRID||AID||hn-」(xA));并利用
密鑰kl=hn"+1(XA:^ h,XA)力口密,得到加密后的信息Ek,(h'"(XA))。
其中,第一驗證信息單元22利用h'w+'(xs)對h,xs)加密,以及第二驗證 信息單元33利用hn""(XA)對tTJ(XA)進行加密的算法有很多種,例如可以 采用數(shù)據(jù)加密標準(DES)算法,也可以采用高級加密標準(AES)算法。
獲得Ew(h"(XA))和MAC2后,審核端通過審核端發(fā)送單元34將Msg、 RID、 AID、 Ek0(hn"(xs))、 MAC1、 E!d(h^(XA))和MAC2進行串接后, 一起送 給代理服務器。
審核端收到代理服務器返回的消息,可以通過審核端更新單元35判斷 該消息是否為授權(quán)消息,如果是,則刪除HASH鏈的當前最高位,該HASH 鏈的次高位,即hw(XA),成為新的當前最高位;否則,保持HASH鏈的當 前最高位不變。
代理服務器包括存儲單元41、恢復單元42、授權(quán)單元43、反饋單元44 和更tf單元45。
存儲單元41用于保存用戶端HASH鏈的最高位和審核端HASH鏈的最 高位。
代理服務器收到審核端發(fā)送的消息后,假設代理服務器接收到的消息為 MsgllRIDIIAIDIIEk。(h,xs))IIMAClllEw(hn-」(XA))IIMAC2,將通過恢復單元42利 用存儲單元41保存的用戶端和審核端的HASH鏈最高位從Eko(h"-i(Xs))和 Ew(hM(XA))分別恢復出用戶端和審核端HASH鏈的當前次高位。
然后,代理服務器通過授權(quán)單元43利用從Ek。(h'w(xs))和Ew(h,XA))分 別恢復出的用戶端和審核端HASH鏈的當前次高位驗證MAC和MAC2.. 即利用從Eko(h,xs))恢復出的用戶端HASH鏈的當前次高位、從Ekl(hn-.'(xA)) 恢復出的審核端HASH鏈的當前次高位分別與MAC1中的hn、xs)、 MA(:2 中的h—(XA)進行比較。如果驗證成功,即恢復出的用戶端HASH鏈的當前 次高位、審核端HASH鏈的當前次高位分別與hT(xs)、 h'w(XA)都相同,則授 權(quán),將員工發(fā)送的原始信息Msg發(fā)送給該信息的接收者,并通知反饋單元 44向所述用戶端、審核端發(fā)送授權(quán)消息;否則,不授權(quán),丟棄審核端發(fā)送的 消息,并通知反4f單元44向所述用戶端、審核端發(fā)送未4受權(quán)消息。
反饋單元44用于根據(jù)授權(quán)單元的通知向所述用戶端和審核端發(fā)送相應 的消息。
授權(quán)單元43授權(quán)后,代理服務器通過更新單元45將存儲單元41中保 存的用戶端和審核端HASH鏈的最高位更新為h"(xs)和hn-」(xA)。
其中,授權(quán)單元43從Eko(hT(Xs))和Ek,(hM(XA))分別恢復出用戶端和審 核端HASH鏈的當前次高位的過程采用與前述加密過程相反的過程即可t.
當用戶端和/或?qū)徍硕薍ASH鏈被用盡時,此時用戶端和/或?qū)徍硕说韧?于沒有生成HASH鏈,則系統(tǒng)將再次為用戶端和/或?qū)徍硕朔峙潆S機數(shù),用 戶端和/或?qū)徍硕藢⒏鶕?jù)第一 HASH函數(shù)再次生成用戶端和/或?qū)徍硕薍ASH 鏈,從而使本系統(tǒng)可以繼續(xù)正常運行。
在上述裝置中,用戶端和審核端都是預先利用系統(tǒng)分配的隨機數(shù)生成 HASH鏈,然后利用HASH鏈的當前次高位生成驗證碼。實際情況中,也可 以直接采用系統(tǒng)分配的隨機數(shù)作為驗證碼。當直接采用系統(tǒng)分配的隨機數(shù)作 為驗證碼時,可以看作是上述裝置的一個特例,即用戶端和審核端的HASH 鏈為只有一個數(shù)的HASH鏈,但是不需要用戶端和審核端預先生成HASH 鏈。
在這種情況下,系統(tǒng)將為用戶端分配用于對隨初4t-進4亍加密的密鑰k(),
為審核端分配用于對隨機數(shù)進行加密的密鑰kl,并將k0和kl保存在代理服 務器的存儲單元41中。
在系統(tǒng)初始化時,系統(tǒng)將為用戶端分配隨^L數(shù)xs。當企業(yè)內(nèi)部員工通過 用戶端向企業(yè)外部發(fā)送信息Msg時,用戶端可以通過第一驗證信息單元22, 利用所述第二 HASH函數(shù)對xs、信息Msg、RID和AID進:行運算生成MAC 1. 即運算MACl=H(Msg||RID||AID||xs);并利用系統(tǒng)配置的密鑰k0對Xs加密, 得到加密后的信息Ek。(Xs)。
獲得Eko(xs)和MAC1后,用戶端通過用戶端發(fā)送單元23將Msg、 RID、, AID、 Ew)(xs)和MAC1進行串接后, 一起送給審核端。
用戶端收到代理服務器返回的消息,可以通過用戶端更新單元24判斷 該消息是否為授權(quán)消息,如果是,則刪除xs,等待系統(tǒng)再次分配隨機數(shù);否
則,保持Xs不變。
審核端包括審核單元32、第二驗證信息單元33、審核端發(fā)送單元34和 審核端更新單元35。
在系統(tǒng)初始化時,系統(tǒng)將為審核端分配隨機數(shù)XA。審核端收到來自用戶
端的信息后,假設審核端收到的信息為Msg||RID||AID||Ek()(xs)||MACl,審核 端將通過審核單元32對員工發(fā)送的原始信息Msg進行審核。如果原始信息 Msg通過審核,則審核端利用第二驗證信息單元33生成MAC2。其中,如 果信息Msg審核未通過,則審核端都將丟棄用戶端發(fā)送的信息(
第二驗證信息單元33將利用第二 HASH函數(shù)對Msg、 RID、 AID和xA 進行運算,生成MAC2,即計算MAC2=H(Msg||RID||AID||xA);并利用系統(tǒng) 配置的密鑰kl對Xa加密,得到加密后的信息Ekl(xA)。
其中,第 一驗證信息單元22利用k0對xs加密,以及第二驗證信息單元 33利用kl對XA進行加密的算法有很多種,例如可以采用數(shù)據(jù)加密標準(DES) 算法,也可以采用高級加密標準(AES)算法。
獲得Ew(Xa)和MAC2后,審核端通過審核端發(fā)送單元34將Msg、 RID、 AID、 Ek0(xs)、 MAC1、 Ew(XA)和MAC2進行串接后, 一起送給代理服務器。
審核端收到代理服務器返回的消息,可以通過審核端更新單元35判斷 該消息是否為授權(quán)消息,如果是,則刪除XA,等待系統(tǒng)再次分配隨機數(shù);否
則,保持XA不變。 代理服務器包括存儲單元41 、恢復單元42、授權(quán)單元43和反饋單元44。 存儲單元41用于保存系統(tǒng)為用戶端和審核端配置的k0和kl。 代理服務器收到審核端發(fā)送的消息后,假設代理服務器接收到的消息為 Ms^|RID||AID||Ek()(xs)||MACl||Ekl(xA)||MAC2,將通過恢復單元42利用存儲 單元41保存的k0和kl分別恢復出用戶端和審核端的隨機數(shù)。
然后,代理服務器通過授權(quán)單元43利用從E,ko(xs)和Ew(XA)分別恢復出 的用戶端和審核端的隨機數(shù)驗證MAC 1和MAC2 。如果驗證成功,則授權(quán), 將員工發(fā)送的原始信息Msg發(fā)送給該信息的接收者,并通知反饋單元44向 所述用戶端、審核端發(fā)送授權(quán)消息;否則,不授權(quán),丟棄審核端發(fā)送的消息, 并通知反饋單元44向所述用戶端、審核端發(fā)送未授權(quán)消息。
反饋單元44用于根據(jù)授權(quán)單元的通知向所述用戶端和審核端發(fā)送相應 的消息。
可以看出,在上述兩種系統(tǒng)中,當企業(yè)內(nèi)部員工向企業(yè)外部發(fā)送信息時, 只有通過了審核端的審核和代理服務器的授權(quán)之后,該信息才能被發(fā)送到企 業(yè)外部。但在上述兩種系統(tǒng)中,審核端在收到用戶端發(fā)送的信息時,只能對 該信息的內(nèi)容進行審核,而無法知道該信息來自哪個用戶端。為使審核端獲 知信息的來源,可以在上述兩種系統(tǒng)中都添加公鑰基礎(chǔ)設施(PKI, Public Key Infrastructure)服務器,并在用戶端增設簽名單元21 ,在審核端增設簽名驗證 單元31,該系統(tǒng)可以如圖3所示。
用戶端在發(fā)送信息Msg時,可以通過簽名單元21將信息Msg、 RII)和 AID進行串接,即進行Msg||RID||AID;并利用預置的第二 HASH函數(shù),對 串接后的信息進行HASH運算,即運算H(Msg||RID||AID);再利用該員工的 私鑰對運算后的信息進行簽名,即進行Sig0 = Epri(H(Msg||RID||AID))。其中. Epri。)是該員工的私鑰。生成簽名信息SigO后,用戶端發(fā)送單元23將SigO 隨同其它信息一起發(fā)送給審核端。
審核端收到來自用戶端的信息后,將通過簽名驗證單元31根據(jù)所述用 戶端的信息從PKI服務器獲得公鑰,并利用獲得的公鑰驗證簽名信息Sig()。 簽名驗證單元31對簽名信息SigO驗證通過后,再啟動審核單元32對員工 發(fā)送的原始信息Msg進行審核。
可以看出,在本發(fā)明提出的防止信息泄漏的系統(tǒng)中,當采用帶密鑰的 HASH運算生成驗證碼MAC 1、 MAC2時,由于HASH鏈是單向的,而且 HASH鏈上的每個值只用于1次消息審核授權(quán),從而可以防止重放攻擊,:,當 采用系統(tǒng)配置的隨機數(shù)生成驗證碼MAC1、 MAC2時,由于每次生成的驗證 碼也是隨機的,因此也可以防止重放攻擊。
在本發(fā)明提供的系統(tǒng)中,企業(yè)內(nèi)部員工通過用戶端向企業(yè)外部發(fā)送信息 時,將對該信息進行簽名,從而使審核端可以保留該員工發(fā)送信息的證據(jù), 如果該信息造成泄漏企業(yè)機密信息的后果,則該員工應當為此負責。
由于用戶端和審核端都要生成驗證碼,因此在企業(yè)網(wǎng)上的惡意攻擊者無 法對信息進行篡改,甚至替換。此外,發(fā)送者在發(fā)送信息的時候,需要附上 審核端的ID和接收者的ID,因此,信息發(fā)送者必須是企業(yè)內(nèi)部的員工,并 且知道自己所屬的審核端的情況,這也給其它部門的惡意攻擊者的攻擊造成 困難。
在代理服務器上存儲有企業(yè)的組織結(jié)構(gòu)和相關(guān)審核端的信息,因此代理 服務器可以防止惡意員工偽造審核端的ID。審核端在信息審核完成后,做 進一步的驗證碼,通知代理服務器將該信息發(fā)送給企業(yè)外部的接收者。由于 審核端也需要生成驗證碼,從而使代理服務器可以保留該審核端審核信息的 證據(jù),如果出現(xiàn)泄密事件,則也能夠?qū)徲嬒嚓P(guān)人員的責任。
由于代理服務器僅將員工發(fā)送的原始信息發(fā)送給企業(yè)外部的接收者,因 此企業(yè)外面的人員無法通過該信息獲取關(guān)于企業(yè)內(nèi)部組織結(jié)構(gòu)的信息,也無 法知道相關(guān)的審核端,從而可以避免泄漏信息審核流程的相關(guān)信息。
基于圖2所示的系統(tǒng),本發(fā)明還提出一種防止信息泄漏的方法,下面結(jié) 合具體實施例對該方法作進一步具體說明。
假設用戶端1是企業(yè)內(nèi)某個部門的員工所使用的用戶端,,審核端1用于 審核該部門所有用戶端向企業(yè)外部發(fā)送的信息,代理服務器1用于對該企業(yè) 所有審核端發(fā)送的消息進行驗證授權(quán)。
用戶端1對信息的處理過程包括
在系統(tǒng)初始化階段,對用戶端1進行初始化,即在用戶端1中保存審核 端1的ID,假設為AID,為用戶端1配置隨機數(shù)xs,用戶端l對xs按預置 的第一 HASH函數(shù)進行運算,得到HASH鏈,假設為xs, h(xs), h2(xs),.。,…, hn(xs),并將HASH鏈的當前最高位,即h'Xxs),秘密發(fā)送給代理服務器L 圖4是用戶端1發(fā)送信息的流程圖,其具體過程包括 在步驟401中,當所述員工通過用戶端1向企業(yè)外部發(fā)送信息Msg時-
假設信息Msg是用戶端1發(fā)送的第i條信息,用戶端1的HASH鏈的當前最 高位為hn—i+1(xs)、當前次高位為hn-i(xs),用戶端1利用HASH鏈的當前次高 位hn"(xs)生成用戶端1的驗證碼MAC1 。
用戶端1生成-瞼i正碼MAC1的過程包括將信息Msg、 RID、 AID和 h"-i(xs)進行串接,即進行MsgllRIDIIAIDIIhn—i(xs)運算;然后,利用預設置的第 二 HASH函數(shù)對串接后的信息進行HASH運算獲得MAC1 ,即運算 MACl=H(Msg||RID||AID||hn-i(xs))。其中,H("是預設置的第二 HASH函數(shù)。
在步驟402中,用戶端1利用密鑰kO-hn-W(Xs)對hn-'(Xs)加密,得到加
密后的信息Eko(h11—乂化))。
在步驟403中,用戶端1將Msg、 RID、 AID、 Eko(h"-i(Xs))和MACi發(fā) 送到審核端 1 。 用戶端 1 將信息進行串接.即進行 MsgllRIDilAIDIIEko(h,xs))IIMACl,然后一起發(fā)送到審核端1。
在步驟404中,用戶端1等待代理服務器1返回消息,并根據(jù)該消息進 行相應的操作。如果代理服務器1返回的消息是授權(quán),則用戶端1將其HASH 鏈的當前最高位更新為h"(xs);否則,仍然保持HASH鏈的當前最高位為
hn-'+W。
審核端1對信息的處理過程包括
在系統(tǒng)初始化階段,對審核端1進行初始化,即為審核端1配置隨機數(shù) xA,審核端1按所述第一 HASH函數(shù)對xA進行HASH運算,得到HASH
鏈,假設為XA, h(xA), h2(xA), ......, hn(xA),并將該HASH鏈的最高位,
即hn(xA),秘密發(fā)送給代理服務器1。
圖5是審核端1審核信息的流程圖,其具體過程包括
在步驟501中,審核端1收到來自用戶端1的信息,假設審核端1收到 用戶端1在步驟403發(fā)送的信息MsgllRIDIIAIDIIEko(hn-i(xs)川:MACl 。
在步驟502中,審核端1將對員工發(fā)送的原始信息Msg進行審核,審核 Msg是否符合企業(yè)預定的要求。
如果Msg不符合企業(yè)預定的要求,則不能通過審核,在步驟503中,審 核端1將丟棄用戶端1發(fā)送的信息。如果Msg符合企業(yè)預定的要求,則可以 通過審核,在步驟504中,假設審核端1的HASH鏈的當前最高位為hn"+1(xA)、 次高位為hn—j(xA),審核端1將利用第二 HASH函數(shù)和hW(XA)生成審核端i 的驗證碼MAC2,即計算MAC2=H(Msg||RID||AIDllhn-」(xA))。
然后,在步驟505中,審核端1利用其密鑰k=hn"+l(XApt hM(XA)加密, 得到加密后的信息Ek,(h,XA))。
其中,在步驟402中利用h"+'(xs)對h,xs)加密,以及在步驟505中利 用hn-W(XA)對h"(XA)進行加密的算法有很多種,例如可以采用數(shù)據(jù)加密標 準(DES)算法,也可以采用高級加密標準(AES)算法。
在步驟506中,審核端1將Msg、RID、 AID、Eko(:h'"(xs))、MAC〗、Ekl(hn:'(xA)) 和MAC2發(fā)送到代理服務器1。審核端1將信息進行串接,即進行 MsgllRIDIIAIDIIEko(h"(Xs))IIMAClllEk,(hn-」(XA))IIMAC2,然后將信息一起發(fā)送 到代理服務器1。
在步驟507中,審核端1等待代理服務器1返回消息,并根據(jù)該消息進 行相應的操作。如果代理服務器1返回的消息是授權(quán),則審核端1將其HASH 鏈的當前最高位更新為hn-j(xA);否則,仍然保持HASH鏈的當前最高位為 hn-|+W)。
圖6是代理服務器1驗證授權(quán)的流程圖,其具體過程包括 在步驟601中,代理服務器1收到審核端發(fā)送的信息,假設代理 服務器 1 收到審核端 1 在步驟 506 發(fā)送的信息 Msg||RID||AID||Ek0(hn-i(xs))||MACl||Ekl(hn-J(xA》||MAC2,代理服務器1可 以利用其保存的用戶端1和審核端1的HASH鏈最高位從該信息中的 Ek()(h'w(Xs))和Ek,(hw(XA))分別恢復出用戶端1和審核端1的HASH鏈當前次 高位。
其中,代理服務器1從Eko(hn—'(Xs))和Ew(h,XA))分別恢復出用戶端和審
核端HASH鏈的當前次高位的過程采用與前述加密過程相反的過程即可.,
在步驟602中,代理服務器1利用從Ew)(hn-i(Xs))恢復出的用戶端HASH 鏈的當前次高位驗證MAC1中的h'w(xs),即將二者進行比較,如果驗證未成 功,即二者不同,則執(zhí)行步驟605,即丟棄審核端1發(fā)送的信息,向用戶端 1和審核端1返回未授權(quán)的消息;否則執(zhí)行步驟603,代理服務器l利用從 Ek,(h,XA))恢復出的審核端HASH鏈的當前次高位驗證MAC2中的hn"(x.、>, 如果驗證未成功,則執(zhí)行步驟605;否則,執(zhí)行步驟604,代理服務器I僅 將用戶端1發(fā)送的原始信息Msg發(fā)送給企業(yè)外部的接收者,向用戶端1和審 核端1返回授權(quán)的消息,并將其保存的用戶端1的HASH鏈的最高位和審核 端1的HASH鏈的最高位更新為h,xs)和hn-j(xA)。
在上述方法中,用戶端1和審核端1都是預先利用系統(tǒng)分配的隨才幾數(shù)生
成HASH鏈,然后利用HASH鏈的當前次高位生成驗證碼。實際情況中. 也可以直接采用系統(tǒng)分配的隨機數(shù)作為驗證碼。當直接采用系統(tǒng)分配的隨機 凄史作為-險i正碼時,可以看作是上述方法的一個特例,即用戶端l和審核端l 的HASH鏈為只有一個數(shù)的HASH鏈,但是不需要用戶端1和審核端1預 先生成HASH鏈。
在這種情況下,系統(tǒng)將為用戶端1分配用于對隨機數(shù)進行加密的密鑰 k0,為審核端1分配用于對隨機數(shù)進行加密的密鑰kl,并將k0和kl保存在 代理服務器1中。
在系統(tǒng)初始化時,系統(tǒng)將為用戶端1分配隨機數(shù)Xs。當企業(yè)內(nèi)部員工通 過用戶端向企業(yè)外部發(fā)送信息Msg時,用戶端可以1利用所述第二HASH 函數(shù)對xs、信息Msg、 RID和AID進行運算生成MAC1 ,即運算 MACl=H(Msg||RID||AID||xs);并利用系統(tǒng)配置的密鑰k0對xs加密,得到加 密后的信息Eko(Xs)。
獲得Eko(xs)和MAC1后,用戶端11將Msg、 RID、 AID、 Ek0(xs, MAC1 進行串接后, 一起送給審核端1。
用戶端1收到代理服務器1返回的消息,可以判斷該消息是否為授權(quán)消 息,如果是,則刪除xs,等待系統(tǒng)再次分配隨機數(shù);否則,保持xs不變。
在系統(tǒng)初始化時,系統(tǒng)將為審核端1分配隨機數(shù)Xa。審核端1收到來自 用戶端 1 的信息后,假設審核端 1 收到的信息為 Msg||RID||AID||EkC)(xs)||MACl,審核端1將對員工發(fā)送的原始信息Msg進行 審核。如果原始信息Msg通過審核,則審核端1利用第二驗證信息單元33 生成MAC2。其中,如果信息Msg審核未通過,則審核端l將丟棄用戶端 發(fā)送的信息。
審核端1將利用第二 HASH函數(shù)對Msg、 R[D、 AID和XA進行運算. 生成MAC2,即計算MAC2=H(Msg||R[D||AID||xA);并利用系統(tǒng)配置的密鑰 kl對Xa加密,得到加密后的信息Ekl(xA)。
其中,用戶端1利用k0對xs加密,以及審核端1利用kl對Xa迸行加 密的算法有很多種,例如可以采用數(shù)據(jù)加密標準(DES)算法,也可以采用 高級加密標準(AES)算法。
獲得Ek"x八)和MAC2后,審核端11將Msg、 RID、 AID、 Ek0(xs)、 MAC1 、■
Ek,(XA)和MAC2進行串接后, 一起送給代理服務器1 。
審核端1收到代理服務器1返回的消息,可以判斷該消息是否為授權(quán)消息,如果是,則刪除XA,等待系統(tǒng)再次分配隨機數(shù);否則,保持XA不變。
代理服務器1收到審核端1發(fā)送的消息后,假設代理服務器1接收到的 消息為Msg||RID||AID||Ek0(xs)||MACl||Ekl(xA)||MAC2,將利用保存的k0和kl 分別恢復出用戶端和審核端的隨機數(shù)。
然后,代理服務器1利用從Ek。(xs)和Ek,(XA)分別恢復出的用戶端和審核 端的隨機數(shù)驗證MAC1和MAC2。如果驗證成功,則授權(quán),將員工發(fā)送的 原始信息Msg發(fā)送給該信息的接收者,并向用戶端l、審核端l發(fā)送授權(quán)消 息;否則,不授權(quán),丟棄審核端l發(fā)送的消息,并向用戶端i、審核端1發(fā). 送未授權(quán)消息。
可以看出,在上述兩種方法中,當企業(yè)內(nèi)部員工向企業(yè)外部發(fā)送信息時, 只有通過了審核端1的審核和代理服務器1的授權(quán)之后.,該信息才能被發(fā)送 到企業(yè)外部。但在上述兩種方法中,審核端1在收到用戶端1發(fā)送的信息時, 只能對該信息的內(nèi)容進行審核,而無法知道該信息來自哪個用戶端。為使審 核端l獲知信息的來源,可以在上述兩種方法中都添加用戶端1的簽名信息, 以使審核端1能獲知其收到的信息來自哪個用戶端。
用戶端1在發(fā)送信息Msg時,可以將信息Msg、 RID和AID進行串接, 即進行Msg||RID||AID;并利用預置的第二 HASH函數(shù),對串接后的信息進 行HASH運算,即運算H(Msg||RID||AID);再利用該員工的私鑰對運算后的 信息進行簽名,即進行SigO = Epri(H(Msg||RID||A[D))。其中,Epri("是該員 工的私鑰。生成簽名信息SigO后,用戶端1將SigO隨同其它信息一起發(fā)送 給審核端1。
審核端1收到來自用戶端1的信息后,將用戶端1的信息從PKI服務器 獲得公鑰,并利用獲得的公鑰驗證簽名信息Sig0。對簽名信息SigO驗證通 過后,審核端1再對員工發(fā)送的原始信息Msg進行審核。
本發(fā)明中所述的信息Msg既可以是email也可以是通過HTTP、 FTP、 P2P等協(xié)議發(fā)送的其它文件。
以上所述的實施例僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā) 明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等, 均應包含在本發(fā)明的保護范圍之內(nèi)。
權(quán)利要求
1、一種防止信息泄漏的系統(tǒng),其特征在于,包括用戶端,用于在用戶發(fā)送信息Msg時,生成第一驗證信息,將包括Msg和第一驗證信息的消息發(fā)送給所述審核端;審核端,用于審核所述Msg,如果審核通過,則生成第二驗證信息,將包括Msg、第一驗證信息和第二驗證信息的消息發(fā)送給代理服務器;代理服務器,用于驗證第一驗證信息和第二驗證信息,如果驗證都通過,則將Msg發(fā)送給該Msg的接收者,并向所述用戶端和審核端返回授權(quán)消息。
2、 根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于,所述用戶端包括 第一驗證信息單元,用于在未生成HASH鏈時,根據(jù)第一隨機數(shù)xs和第 一哈希HASH函數(shù)生成用戶端HASH鏈,將該HASH鏈的最高位秘密發(fā) 送給所述代理服務器;在用戶端發(fā)送Msg時,通過運算 MAOH(MsgilRIDIIAIDIIh"(Xs))生成第一驗證碼MAC1,通過hn-'+1(xspt h'"(xs)加密生成加密信息E0;用戶端發(fā)送單元,用于將包括Msg、 MAC 1和E0的消息發(fā)送給所述審 核端;其中,H("是預置的第二HASH函數(shù),RID是Msg接收者的ID, AID 是所述審核端的ID, h,xs)是用戶端HASH鏈的當前次高位,h^+'(xs)是用 戶端HASH鏈的當前最高位。
3、 根據(jù)權(quán)利要求2所述的系統(tǒng),其特征在于,所述審核端包括 審核單元,用于在收到用戶端發(fā)送的消息后,審核該消息中的Msg; 第二驗證信息單元,用于在未生成HASH鏈時,根據(jù)第二隨機數(shù)x八和所述第一 HASH函數(shù)生成審核端HASH鏈,并將該HASH鏈的最高位秘密 發(fā)送給代理服務器;在審核單元審核Msg通過后,通過運算 MAC2二H(MsgllRIDilAIDIIh"(XA))生成第二驗證碼MAC2,通過hn-'i+1(xApt h^(XA)加密生成加密信息El;所述審核端發(fā)送單元用于將包括Msg、 MAC1、 E0、 MAC2和E1的消 息發(fā)送給所述代理服務器;其中,hM(XA)是審核端HASH鏈的當前次高位,hM"(XA)是審核端HASH 鏈的當前最高位。
4、 根據(jù)權(quán)利要求3所述的系統(tǒng),其特征在于,所述代理服務器包括存儲單元、恢復單元、授權(quán)單元和反饋單元;所述存儲單元用于保存所述用戶端HASH鏈的最高位和所述審核端 HASH鏈的最高位;所述恢復單元用于在收到審核端發(fā)送的所述消息后,利用存儲單元保存 的用戶端、審核端HASH鏈的最高位從E0和E1分別恢復出用戶端、審核 端HASH鏈的當前次高位;所述授權(quán)單元利用恢復出的用戶端和審核端HASH鏈的當前次高位驗 證MAC1和MAC2,如果驗證成功,則授權(quán),發(fā)送Msg給該信息的接收者.. 通知反饋單元向所述用戶端、審核端發(fā)送授權(quán)消息;否則,不授權(quán),丟棄審 核端發(fā)送的信息,通知反饋單元向所述用戶端、審核端發(fā)送未授權(quán)消息;所述反饋單元用于根據(jù)授權(quán)單元的通知向所述用戶端和審核端發(fā)送相 應的消息。
5、 根據(jù)權(quán)利要求4所述的系統(tǒng),其特征在于,還包括更新單元,用于在授權(quán)單元授權(quán)后,將存儲單元中保存的用戶端和審核 端HASH鏈的最高位更新為恢復出的用戶端和審核端HASH鏈的次高位;用戶端更新單元,用于判斷所述代理服務器返回給用戶端的消息是否為 授權(quán),如果是,則刪除所述用戶端HASH鏈的當前最高位,該HASH鏈的 次高位成為新的當前最高位;否則,保持該HASH鏈的當前最高位不變審核端更新單元,用于判斷所述代理服務器返回給審核端的消息是否為 授權(quán),如果是,則刪除所述審核端HASH鏈的當前最高位,該HASH鏈的 次高位成為新的當前最高位;否則,保持該HASH鏈的當前最高位不變,,
6、 根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于,所述用戶端包括 第一驗證信息單元,用于保存系統(tǒng)配置的第一隨機數(shù)Xs和用于對該隨機數(shù)力。密的密鑰 k0 ; 在用戶端發(fā)送Msg 時,通過運算 MACl-H(MsgllRIDIIAIDllxs)生成第一驗證碼MAC1 ,通過k0對xs加密生成 加密信息E0;用戶端發(fā)送單元,用于將包括Msg、 MAC1和E0的消息發(fā)送給所述審 核端;其中,H。)是預置的HASH函數(shù),RID是Msg接收者的ID, AID是所 述審核端的ID。
7、 根據(jù)權(quán)利要求6所述的系統(tǒng),其特征在于,所述審核端包括審核單元,用于在收到用戶端發(fā)送的消息后,審核該消息中的Msg:第二驗證信息單元,用于保存系統(tǒng)配置的第二隨機數(shù)XA和用于對該隨才幾加密的密鑰kl ; 在審核單元審核Msg通過后,通過運算 MAC2:H(MsgllRIDIIAIDIIxA)生成第二驗證碼MAC2,通過kl對x八加密生成 加密信息El;所述審核端發(fā)送單元用于將包括Msg、 MAC1、 E0、 MAC2和E1的消 息發(fā)送給所述代理服務器。
8、 根據(jù)權(quán)利要求7所述的系統(tǒng),其特征在于,所述代理服務器包括 存儲單元、恢復單元、4受4又單元和反饋單元;所述存儲單元用于保存所述k0和kl;所述恢復單元用于在收到審核端發(fā)送的所述消息后,利用存儲單元保存 的k0和kl分別從E0和E1恢復出用戶端、審核端的隨機數(shù);所述授權(quán)單元利用恢復出的用戶端和審核端的隨機數(shù)驗證MAC!和 MAC2,如果驗證成功,則授權(quán),發(fā)送Msg給該信息的接收者,通知反饋單 元向所述用戶端、審核端發(fā)送授權(quán)消息;否則,不授權(quán),丟棄審核端發(fā)送的 信息,通知反饋單元向所述用戶端、審核端發(fā)送未授權(quán)消息;所述反饋單元用于根據(jù)授權(quán)單元的通知向所述用戶端和審核端發(fā)送相 應的消息。
9、 根據(jù)權(quán)利要求8所述的系統(tǒng),其特征在于,還包括 用戶端更新單元,用于判斷所述代理服務器返回的消息是否為授權(quán),如果是,則刪除xs,等待系統(tǒng)再次分配隨機數(shù);否則,保持xs不變;審核端更新單元,用于判斷所述代理服務器返回的消息是否為授權(quán),如 果是,則刪除XA,等待系統(tǒng)再次分配隨機數(shù);否則,保持XA不變。
10、 根據(jù)權(quán)利要求2至5任意一項所述的系統(tǒng),其特征在于,所述第一 HASH函數(shù)為單向HASH函數(shù)。
11、 根據(jù)權(quán)利要求2至9任意一項所述的系統(tǒng),其特征在于,還包括 簽名單元,用于在用戶發(fā)送信息Msg時,通過運算Sig0 =Epri(H(Msg||RID||AID)),生成簽名信息Sig0,并發(fā)送Sig0給用戶端發(fā)送單元-將Sig0隨同Msg、 MAC1和E0 —起發(fā)送給審核端; 公鑰基礎(chǔ)設施PKI服務器,用于保存公鑰信息; 簽名—瞼i正單元,用于在審核端收到用戶端發(fā)送的所述消息后,4艮據(jù)所述用戶端的信息從PKI服務器獲得公鑰,驗證SigO,并在驗證Sig0通過后. 通知審核單元審核Msg;其中,Epri("是所述用戶的私鑰。
12、 一種采用權(quán)利要求1所述系統(tǒng)的防止信息泄漏的方法,其特征在于, 包括用戶端在用戶發(fā)送信息Msg時,生成第一驗證信息,將包括Msg和第 一驗證信息的消息發(fā)送給所述審核端;審核端審核所述Msg,如果審核通過,則生成第二驗證信息,將包括 Msg、第一驗證信息和第二驗證信息的消息發(fā)送給代理服務器;代理服務器驗證第一驗證信息和第二驗證信息,如果驗證都通過,則將 Msg發(fā)送給該Msg的接收者,并向所述用戶端和審核端返回授權(quán)消息。
13、 根據(jù)權(quán)利要求12所述的方法,其特征在于,按下述步驟生成第一 馬全iit信息用戶端在未生成HASH鏈時,根據(jù)第 一隨機數(shù)xs和第 一哈希HASH函 數(shù)生成用戶端HASH鏈,將該HASH鏈的最高位秘密發(fā)送給所述代理服務 器;用戶端在發(fā)送Msg時,通過運算MAC一H(MsgllWDIIAIDII『i(Xs))生成 第一驗證碼MAC1,通過h"-w(xs)對h,xs)加密生成加密信息E0;其中,h"(xs)是用戶端HASH鏈的當前次高位,hT"(xs)是用戶端HASH 鏈的當前最高位。
14、 根據(jù)權(quán)利要求13所述的方法,其特征在于,按下述步驟生成第二 驗證信息審核端在未生成HASH鏈時,根據(jù)第二隨機數(shù)Xa和所述第一 HASH函 數(shù)生成審核端HASH鏈,并將該HASH鏈的最高位秘密發(fā)送給代理服務器;審核端在審核Msg通過后,通過運算MAC2=H(Msg||RID||AID||hn-」(xA):) 生成第二驗證碼MAC2,通過h^"(XA)對h,XA)加密生成加密信息El;其中,h"-J(XA)是審核端HASH鏈的當前次高位,h"-」+乂xa)是審核端HASH 鏈的當前最高位。
15、 根據(jù)權(quán)利要求14所述的方法,其特征在于,按下述步驟授權(quán)代理服務器保存所述用戶端HASH鏈的最高位和所述審核端HASH鏈的最高4立;代理服務器收到審核端發(fā)送的所述消息后,利用其保存的用戶端、審核端HASH鏈的最高位從E0和E1分別恢復出用戶端和審核端HASH鏈的當 前次高位;代理服務器利用恢復出的用戶端和審核端HASH鏈的當前次高位驗證 MAC1和MAC2,如果—瞼i正成功,則4受4又,發(fā)送所述信息Msg給該信息的 接收者,向所述用戶端、審核端發(fā)送授權(quán)消息;否則,不授權(quán),丟棄所述信 息Msg,向所述用戶端、審核端發(fā)送未授權(quán)消息。
16、 根據(jù)權(quán)利要求15所述的方法,其特征在于,進一步包括 代理服務器在授權(quán)后,將其保存的用戶端和審核端HASH鏈的最高位更新為恢復出的用戶端和審核端HASH鏈的當前次高位;用戶端判斷代理服務器返回的消息是否為授權(quán),如果是,則刪除所述用 戶端HASH鏈的當前最高位,該HASH鏈的次高位成為新的當前最高位 否則,保持該HASH鏈的當前最高位不變;審核端判斷所述代理服務器返回的消息是否為授權(quán),如果是,則刪除所 述審核端HASH鏈的當前最高位,該HASH鏈的次高位成為新的當前最高 位;否則,保持該HASH鏈的當前最高位不變。
17、 根據(jù)權(quán)利要求12所述的方法,其特征在于,按下述步驟生成第一 驗證信息用戶端保存系統(tǒng)配置的第 一隨機數(shù)xs和用于對該隨機數(shù)加密的密鑰k0;用戶端在發(fā)送Msg時,通過運算MAOH(MsgllRIDIIAIDIIxs)生成第一 驗證碼MAC 1 ,通過k0對xs加密生成加密信息E0;其中,H("是預置的HASH函數(shù),RID是Msg接收者的ID, AID是所 述審核端的ID。
18、 根據(jù)權(quán)利要求17所述的方法,其特征在于,按下述步驟生成第二 驗證信息審核端保存系統(tǒng)配置的第一隨機數(shù)Xa和用于對該隨機數(shù)加密的密鑰k 1; 審核端在審核Msg通過后,通過運算MAC2二H(MsgllRIDIIAIDIIxA)生成 第二驗證碼MAC2,通過kl對xa加密生成加密信息El 。
19、 根據(jù)權(quán)利要求18所述的方法,其特征在于,按下述步驟授權(quán) 代理服務器保存kO和kl;代理服務器收到審核端發(fā)送的所述消息后,利用k()和kl從EO和Ei 分別恢復出用戶端和審核端的隨機數(shù);代理服務器利用恢復出的用戶端和審核端的隨機數(shù)驗證MAC1和 MAC2,如果驗證成功,則授權(quán),發(fā)送所述信息Msg給該信息的接收者,向 所述用戶端、審核端發(fā)送授權(quán)消息;否則,不授權(quán),丟棄所述信息Msg,向 所述用戶端、審核端發(fā)送未授權(quán)消息。
20、 根據(jù)權(quán)利要求19所述的方法,其特征在于,進一步包括 用戶端判斷所述代理服務器返回的消息是否為授權(quán),如果是,則刪除Xs.,等待系統(tǒng)再次分配隨機數(shù);否則,保持xs不變;審核端判斷所述代理服務器返回的消息是否為授權(quán),如果是,則刪除xA, 等待系統(tǒng)再次分配隨機數(shù);否則,保持XA不變。
21、 根據(jù)權(quán)利要求13至16任意一項所述的方法,其特征在于,所述第 一 HASH函數(shù)為單向HASH函數(shù)。
22、 根據(jù)權(quán)利要求13至20任意一項所述的方法,其特征在于,進一步 包括用戶端在用戶發(fā)送信息Msg時,通過運算SigO = Epri(H(Msg||RID||AID)),生成簽名信息SigO,并將SigO隨同Msg、 MAC:i 和EO —起發(fā)送給審核端;審核端在收到用戶端發(fā)送的所述消息后,根據(jù)所述用戶端的信息從pkj:服務器獲得公鑰,驗證SigO,并在驗證SigO通過后,審核Msg; 其中,Epri("是所述用戶的私鑰。
全文摘要
本發(fā)明公開一種防止信息泄漏的系統(tǒng),包括用戶端,用于在用戶發(fā)送信息Msg時,生成第一驗證信息,將包括Msg和第一驗證信息的消息發(fā)送給所述審核端;審核端,用于審核所述Msg,如果審核通過,則生成第二驗證信息,將包括Msg、第一驗證信息和第二驗證信息的消息發(fā)送給代理服務器;代理服務器,用于驗證第一驗證信息和第二驗證信息,如果驗證都通過,則將Msg發(fā)送給該Msg的接收者,并向所述用戶端和審核端返回授權(quán)消息。本發(fā)明還公開一種基于該系統(tǒng)的防止信息泄漏的方法。
文檔編號H04L29/06GK101197822SQ20061016378
公開日2008年6月11日 申請日期2006年12月4日 優(yōu)先權(quán)日2006年12月4日
發(fā)明者理 蔡, 郭代飛, 隋愛芬 申請人:西門子公司