安全加密文件共享系統(tǒng)

互聯(lián)網(wǎng)時代,越來越多的用戶把自己的信息(可能舍有敏感信息)存儲在網(wǎng)絡(luò)上的第三方(如網(wǎng)絡(luò)硬盤服務(wù)器)上,但是一且這些服務(wù)器受到攻擊被攻陷或者由于商業(yè)利益服務(wù)器管理者被腐化,就可能使上述敏感信息輕易被泄漏,為了安全起見,用戶在文件服務(wù)器上存放文件時通常事先對文件進行加密。然而,傳統(tǒng)加密方法實現(xiàn)的文件系統(tǒng)只能實現(xiàn)文件加密給某個特定的用戶,無法實現(xiàn)細粒度層次上的文件共享,為此,我們設(shè)計了一種支持細粒度訪問控制的安全加密文件共享系統(tǒng),可以有效地解決上述問題,具有較高的實用價值。

一、安全加密文件共享系統(tǒng)總體設(shè)計

系統(tǒng)以基于密文策略的屬性加密為核心,采用可視化的訪問決策控制和C/S架構(gòu)來實現(xiàn)。

1、服務(wù)器端

用戶加密或解密時用到的系統(tǒng)公鑰(public key)和用戶私鑰(private key)都是通過認證中心的認證后從密鑰生成中心(PKG)獲取,因此,系統(tǒng)將密鑰生成和用戶認證的功能劃分到服務(wù)器模塊:同時在服務(wù)器端提供獨立的模塊來進行文件下載,使得用戶在無需認證的情況下也能順利地進行文件下載,而文件上傳則必須是通過認證的用戶才能進行。

2、客戶端

由于文件的加解密耗用資源比較大,直接在服務(wù)器端進行,無法高效支持多用戶的并發(fā)使用,因而,文件的加密和解密的功能則包含在客戶端,可以更好地提高加密或解密的效率:同時客戶端也將文件共享中的下載模塊獨立出來,無需認證即可使用,而上傳的模塊功能則必須通過認證才能進行。

二、安全加密文件共享系統(tǒng)系統(tǒng)功能

根據(jù)系統(tǒng)的總體結(jié)構(gòu)和功能要求,系統(tǒng)劃分為:用戶管理模塊、文件管理模塊、加解密子系統(tǒng)、決策樹模塊,網(wǎng)絡(luò)模塊,如圖1所示。

1

1、用戶管理

用戶管理包括對系統(tǒng)用戶信息注冊、刪除、修改和組織結(jié)構(gòu)的建立。用戶注冊時填寫的相關(guān)信息(如職業(yè)、性別等)將作為加密解密過程中的屬性集。

2、文件管理

(1)客戶端文件管理

客戶端的文件管理模塊為用戶提供上傳和下載功能。

(2)服務(wù)器端文件管理

為每個用戶獨立地分配一個文件夾,并以其lD來區(qū)分。這樣能夠方便地對每個用戶的文件進行管理。同時對于下載的操作也能提供方便,當用戶下載文件時,只需到指定的另一用戶文件下內(nèi)找到相應(yīng)的文件即可。

3、加解密模塊

加解密模塊是系統(tǒng)的核心模塊,分為兩個相對獨立的子模塊;即加密模塊和解密模塊;其中加密的文件是安全且可共享的i并由用戶通過決策樹設(shè)置訪問權(quán)限。

(1)加密模塊

加密模塊在文件共享系統(tǒng)中負責(zé)對信息進行保密處理,加密過程中使用雙層加密;即在加密時先用DES對文件加密,然后文件的擁有者用基于密文策略的屬性加密算法對DES的密鑰進行加密。

(2)解密模塊

解密模塊在文件共享系統(tǒng)中負責(zé)對已加密的信息進行解密處理,從而懨復(fù)出原來的文件,具體過程是用戶利用自己從密鑰生成中心PKG獲得的與其屬性相應(yīng)的私鑰首先恢復(fù)出DES的密鑰,然后根據(jù)DES的密鑰解密共享文件的密文。

4、決策樹模塊

決策樹又叫訪問策略,幫助用戶方便地生成密碼系統(tǒng)所需的訪問策略。其中訪問策略用樹形結(jié)構(gòu)來表示,系統(tǒng)提供了一個屬性集下拉框,方便用戶選擇屬性集中的屬性,同時使用SWT中的Tree組件,提供可折疊式的樹形結(jié)構(gòu),通過“增加:‘刪除”按鈕能夠相應(yīng)的改變樹的節(jié)點:同時通過“雙擊”或選擇屬性能夠改變節(jié)點的內(nèi)容。

在用戶確認后會繪制相應(yīng)的樹形圖并產(chǎn)生相應(yīng)的策略字符串。如圖2所示,存在兩個用戶分別是(男,網(wǎng)管)和(女,秘書)。一個消息M用其右邊的訪問樹結(jié)構(gòu)加密。用戶A不能得到此消息,是因為他的兩個屬性不能滿足訪問樹(男性且職位為經(jīng)理);用戶B可以得到此消息,因為她是女性且職位為秘書。

1

5、網(wǎng)絡(luò)模塊簡介

網(wǎng)絡(luò)模塊采用C/S架構(gòu),支持TCP連接和多線程,收發(fā)數(shù)據(jù)包不會造成線程阻塞。同時為提高網(wǎng)絡(luò)系統(tǒng)的靈活性采用分層結(jié)構(gòu)(如圖3所示),分別是文件包傳輸層和網(wǎng)絡(luò)數(shù)據(jù)包轉(zhuǎn)換層;

1

發(fā)送信息時,把要發(fā)送的內(nèi)容包裝成文件數(shù)據(jù)包,交給文件包傳輸層發(fā)送,文件包傳輸層把文件數(shù)據(jù)包包裝成網(wǎng)絡(luò)數(shù)據(jù)包(TCP包),再調(diào)用Java網(wǎng)絡(luò)傳輸模塊進行發(fā)送。接收信息時,先通過Java網(wǎng)絡(luò)模塊接收到網(wǎng)絡(luò)數(shù)據(jù)包,網(wǎng)絡(luò)數(shù)據(jù)包轉(zhuǎn)換層把它們解析成文件數(shù)據(jù)包,再由文件包傳輸層提交給系統(tǒng)。

三、系統(tǒng)加解密實現(xiàn)原理

基于密文策略的屬性加密算法,其中涉及到公開參數(shù)( params)、主密鑰(maser key)、和用戶私鑰(private key)生成,在加密和產(chǎn)生用戶私鑰過程中還需要輸入屬性、以及基于屬性的策略。

按照系統(tǒng)的功能劃分為4個子模塊:

(1)初始化模塊:產(chǎn)生系統(tǒng)公鑰和系統(tǒng)主密鑰;

(2)產(chǎn)生私鑰模塊:產(chǎn)生用戶私鑰;

(3)加密模塊:加密文件(用系統(tǒng)公開參數(shù)對文件進行加密);

(4)解密模塊:解密文件(利用用戶私鑰對文件進行解密)。

1、初始化

從群Go中選擇一個生成元g,隨機選取整數(shù)α、β∈zp。系統(tǒng)公鑰PK=(Go,g,he(g,gα):,其中h= gβ,主密鑰mk=(β,ga)。

2、加密(PK,M,T)

其中PK為系統(tǒng)公鑰,M為需要加密的文件,r為文件所有者加密時定制策略的訪問結(jié)構(gòu)樹,生成相應(yīng)的密文CT如下:

1

其中:

s∈zpI:-隨機選取的整數(shù):

Y-樹t中的葉子節(jié)點集合:

arr(y)-為葉子y對應(yīng)的屬性:

h:{0,1}*’dGD一一系統(tǒng)中公開的哈希函數(shù);

小知識之細粒度

細粒度模型,通俗的講就是將業(yè)務(wù)模型中的對象加以細分,從而得到更科學(xué)合理的對象模型,直觀的說就是劃分出很多對象。