崔善童,李曼珍
(東華大學(xué) 信息科學(xué)與技術(shù)學(xué)院,上海201600)
隨著網(wǎng)絡(luò)技術(shù)的飛速發(fā)展,利用網(wǎng)絡(luò)實現(xiàn)文件的共享和傳輸,給人們帶來了極大的便利。然而安全問題卻日益突出,尤其在局域網(wǎng)范圍內(nèi),由于共享和傳輸十分頻繁,可能導(dǎo)致單位或企業(yè)的機(jī)密信息泄露。此外,通過傳輸病毒或木馬,可能導(dǎo)致整個局域網(wǎng)的癱瘓,因此局域網(wǎng)的安全文件共享和傳輸技術(shù)至關(guān)重要。
本文針對現(xiàn)有技術(shù)的安全隱患,設(shè)計了一套基于安全機(jī)制的文件共享和傳輸系統(tǒng)。在文件共享部分,對局域網(wǎng)只公布本機(jī)的共享信息,而不直接共享文件,以防止設(shè)置共享路徑而產(chǎn)生的安全漏洞;在文件傳輸部分,引入多重安全機(jī)制,保證了文件傳輸?shù)陌踩?/p>
NFS網(wǎng)絡(luò)文件系統(tǒng)[1]實現(xiàn)了Linux之間的文件共享,具有良好的安全性。但是NFS服務(wù)器管理復(fù)雜且維護(hù)成本高。
Windows的網(wǎng)上鄰居存在共享信息更新緩慢,且設(shè)置共享路徑容易成為網(wǎng)絡(luò)病毒或木馬的突破口,使得本機(jī)甚至局域網(wǎng)受到非法攻擊。
Samba文件系統(tǒng)[2-3]以及FTP文件傳輸協(xié)議[4-5]的身份認(rèn)證過于單一,存在著中間人攻擊、密碼嗅探等固有缺陷。
PKI和SSL傳輸協(xié)議依賴第三方認(rèn)證機(jī)構(gòu) CA[6],需要定期對過期證書重新認(rèn)證和更新,管理復(fù)雜,極大地影響文件傳輸?shù)乃俣群陀脩趔w驗。
此外,對共享文件授權(quán)都只分為“用戶本身”、“組”、“其他”三種身份,權(quán)限開放容易造成過大或者過小。例如,A文件只共享給所在“組”的部分人,卻只能選擇分組共享,使得小組其他成員也能獲取共享文件,不能指定到具體共享人,缺乏共享文件和傳輸?shù)尼槍π浴?/p>
本設(shè)計在局域網(wǎng)環(huán)境下,解決上述技術(shù)存在的不足或安全隱患。優(yōu)化設(shè)計的要求如下:
(1)避免設(shè)置特定共享路徑,不直接掛載共享文件;
(2)實現(xiàn)點(diǎn)對點(diǎn)文件傳輸,不設(shè)置專用服務(wù)器進(jìn)行集中式管理;
(3)采用多重安全機(jī)制;
(4)保證共享信息及時更新;
(5)不依賴于第三方證書認(rèn)證機(jī)構(gòu)CA;
(6)對文件共享人的權(quán)限精確化。
本系統(tǒng)設(shè)計包含文件共享和傳輸兩個子系統(tǒng)。共享子系統(tǒng)中包括共享信息的配置、共享信息查詢與響應(yīng)兩個功能模塊;傳輸子系統(tǒng)中包含共享方和請求方兩個功能模塊。
根據(jù)設(shè)計要求,采用以下方法來實現(xiàn):
(1)只顯示共享信息,采用間接共享方式,防止共享路徑的掛載點(diǎn)被攻擊。
(2)文件共享時,不設(shè)置專門服務(wù)器管理共享文件,采用點(diǎn)對點(diǎn)進(jìn)行共享信息交互。
(3)在文件傳輸過程中,引入差別身份認(rèn)證、可信IP認(rèn)證、文件加密傳輸、加密密鑰TPM保護(hù)、文件完整性校驗和審計等多重安全機(jī)制,保證文件共享和傳輸?shù)陌踩浴?/p>
(4)在共享信息查詢中,利用 UDP廣播,對在線 PC的共享信息進(jìn)行更新,保證共享信息的實時性。
(5)采用差別身份認(rèn)證方式,對非敏感共享文件基于靜態(tài)口令認(rèn)證;敏感共享文件基于口令和證書雙重認(rèn)證。差別認(rèn)證保證了易用性和安全性的統(tǒng)一。
(6)對共享文件指定文件共享人,將共享人與對應(yīng)的IP進(jìn)行綁定,實現(xiàn)對共享人的精確指定。
文件共享主要包含共享信息配置、共享信息的查詢與應(yīng)答兩個功能模塊。
2.1.1 共享信息配置
共享信息配置是對共享文件的絕對路徑、文件名、共享人(IP)、文件夾屬性等信息進(jìn)行配置,構(gòu)建本機(jī)共享信息。 利用 XML(eXtensible Markup Language)技術(shù)[7]將共享信息寫入到XML文件中。
共享信息XML文件格式如圖1所示。
圖1 共享信息XML文件
其中第一行為XML版本和格式,共享信息以<sharelist>為開始,以</sharelist>結(jié)束。每個共享文件以<list>父結(jié)點(diǎn)為開始,再以</list>結(jié)束。List結(jié)點(diǎn)中包含<fullname>、<Ip>、<Name>和<Node>子結(jié)點(diǎn),分別代表共享文件的路徑、共享人IP、文件名和文件夾。
利用XML實現(xiàn)共享信息配置的流程如圖2所示。
圖2 共享信息配置流程圖
共享信息配置的流程如下:
(1)查看本地共享信息。若有,則顯示本地共享信息;若沒有,則創(chuàng)建XML文件。
(2)選擇共享文件配置的功能選項:添加還是刪除。選擇添加轉(zhuǎn)步驟(3);選擇刪除轉(zhuǎn)步驟(7)。
(3)是否添加共享路徑。若是,添加共享文件,并添加共享路徑<fullname>主結(jié)點(diǎn);若否,則結(jié)束配置。
(4)是否有添加共享人。若有,在該共享文件下的<Ip>結(jié)點(diǎn)添加共享人IP;若沒有,直接下一步。
(5)是否有添加的文件名。若有,在<Name>結(jié)點(diǎn)添加文件名;若沒有,直接下一步。
(6)若共享為文件夾,則設(shè)置<Node>結(jié)點(diǎn)為 Y;若共享為文件,則直接結(jié)束。
(7)是否刪除本文件共享。若是,則刪除本條共享信息下的所有結(jié)點(diǎn)信息;若否,則直接下一步。
(8)是否只刪除本文件共享人。若是,則刪除本條共享信息的<Ip>結(jié)點(diǎn)信息;若否,則結(jié)束配置。
2.1.2 共享信息查詢和應(yīng)答
共享信息查詢和應(yīng)答采用UDP協(xié)議[8]。程序都設(shè)置為多線程,以滿足多請求和多響應(yīng)的情況,即:
(1)請求方利用廣播機(jī)制,向在線PC發(fā)出請求;
(2)共享方監(jiān)聽固定的端口號,如果在固定端口監(jiān)聽到有請求信息,則發(fā)出應(yīng)答信息;
(3)請求者驗證應(yīng)答信息后,接收來自共享方的共享信息。
2.2.1 文件傳輸流程
文件傳輸采用TCP協(xié)議[9],請求方請求文件共享,得到共享方的響應(yīng)后,接受共享方的安全認(rèn)證和共享文件;共享方負(fù)責(zé)對文件共享請求的響應(yīng),在傳輸前對客戶端進(jìn)行安全認(rèn)證,在認(rèn)證通過后,傳輸共享文件。具體流程如圖3所示。
圖3 文件傳輸流程圖
文件傳輸?shù)牧鞒倘缦拢?/p>
(1)請求者查詢共享信息列表,選擇共享信息,進(jìn)行共享請求。
(2)共享者對請求者進(jìn)行身份認(rèn)證。若身份認(rèn)證失敗,結(jié)束響應(yīng);若身份認(rèn)證成功,進(jìn)入下一步。
(3)請求者發(fā)送所需共享文件名,共享者獲取該共享文件的共享人IP列表。
(4)對請求者進(jìn)行IP認(rèn)證。如果IP列表中不存在請求者IP,則IP認(rèn)證不通過,結(jié)束響應(yīng);反之,進(jìn)入下一步。
(5)共享方獲取該共享文件路徑,得到共享文件的Hash摘要值。
(6)利用隨機(jī)生成的密鑰加密共享文件,同時加密密鑰,發(fā)送加密后的密鑰和摘要值給請求者。
(7)發(fā)送共享密文給請求者。
(8)請求者解密密鑰,利用密鑰解密共享密文,得到共享文件。
(9)對接收的共享文件進(jìn)行 Hash,對比文件傳輸前后的摘要值,校驗文件的完整性。
(10)在文件傳輸過程中,對整個傳輸過程進(jìn)行審計,記錄主要操作信息。
2.2.2 安全機(jī)制
(1)差別身份認(rèn)證
身份認(rèn)證包含靜態(tài)口令認(rèn)證和證書認(rèn)證。對共享文件敏感標(biāo)記,非敏感文件采用用戶名、口令身份認(rèn)證;敏感文件還需要基于證書的重認(rèn)證。
(2)共享人 IP認(rèn)證
解析請求者IP號,與共享信息的共享人IP列表進(jìn)行對比,如果為共享人中的IP,則IP認(rèn)證成功,請求者可以共享;否則認(rèn)證失敗,拒絕請求者共享。
(3)密鑰產(chǎn)生和保護(hù)
隨機(jī)產(chǎn)生一組2 048 bit密鑰,并把該密鑰存儲于TPM的NV空間內(nèi)進(jìn)行保存。
TPM(可信計算模塊),是安全存儲的芯片,TPM的NV空間是TPM的獨(dú)立內(nèi)存空間[10],存儲敏感信息。密鑰存儲于NV空間,保證了密鑰的安全性。
(4)文件加解密
文件加密是讀取共享文件,利用隨機(jī)產(chǎn)生的加密算法進(jìn)行加密,記錄算法ID生成密文頭文件,并依次存儲加密內(nèi)容;文件解密利用密鑰作為解密口令,讀取密文頭文件算法ID,完成對應(yīng)算法解密。
(5)完整性校驗
客戶端獲取解密文件摘要值,與接收的原摘要值進(jìn)行對比。如果相同,則共享文件完整;反之,則文件在傳輸過程中遭到了破壞或篡改。
由于文件傳輸過程中,加入了安全機(jī)制保證傳輸?shù)陌踩?,因此還要對其性能影響進(jìn)行分析,利用與未加入安全機(jī)制的文件傳輸協(xié)議進(jìn)行對比分析。
為保證性能分析的適用范圍,測試文件大小從4 KB一直到100 MB不等。對每個文件測試10次,差分取平均值,避免偶然誤差。測試結(jié)果如表1所示。
表1 傳輸時間比較
通過表1可以得出:
(1)未加入安全機(jī)制的傳輸時間都小于加入安全機(jī)制的傳輸時間。
(2)采用安全機(jī)制的共享傳輸,隨著文件大小的增加,時間消耗率逐漸降低。(時間消耗率=(安全機(jī)制下傳輸時間-非安全機(jī)制下傳輸時間)/安全機(jī)制下傳輸時間×100%)。如圖 4所示。
圖4 安全機(jī)制時間消耗率變化
通過以上分析,可以得出,隨著文件的增大,因安全機(jī)制消耗的時間百分比越來越小,即對傳輸?shù)挠绊懺诮档?。同時,小文件傳輸雖然時間消耗率大,但是傳輸時間基數(shù)小。因此,加入安全機(jī)制的共享傳輸對傳輸效率的影響很小。本設(shè)計不影響共享文件傳輸?shù)膫鬏斝省?/p>
本文提出的文件共享和傳輸?shù)木唧w安全性比較如表2所示。
表2 方案比較
由表可知,本設(shè)計具有以下安全特性:
(1)差別身份認(rèn)證
基于用戶名、口令的認(rèn)證較單一,但快速易用;基于證書的認(rèn)證安全性高,但認(rèn)證復(fù)雜;采用差別身份認(rèn)證,根據(jù)文件敏感度不同差別認(rèn)證,保證了易用性和安全性的雙重要求。
(2)去除設(shè)置共享路徑的安全漏洞
通過間接文件共享方式共享請求時,只對請求者公布共享信息,而不直接共享。必須通過共享方的多重安全認(rèn)證后,請求方被動接收共享文件。解決了因直接掛載共享文件而產(chǎn)生的共享路徑安全漏洞。
(3)共享授權(quán)具體化
通過設(shè)置共享人,指定共享人的個數(shù)和對應(yīng)IP,保證了共享授權(quán)的具體化。
(4)共享文件保密性
在文件傳輸前,隨機(jī)產(chǎn)生加密算法,增大了破解難度。實現(xiàn)密文傳輸,防止文件在傳輸中被截取。
(5)抗重放攻擊
每個文件在不同時期加密密鑰不相同,可以防止利用過期的隨機(jī)值進(jìn)行重復(fù)請求,即防止重放攻擊。
(6)文件完整性
對比文件傳輸前后的摘要值,防止文件在傳輸過程中被篡改或者破壞,保證了文件的完整性。
本文主要針對現(xiàn)有的安全共享和傳輸技術(shù)在局域網(wǎng)內(nèi)應(yīng)用方面可能存在的安全隱患,采用基于XML文件的間接文件共享,并加入了多重安全機(jī)制,在不影響共享文件傳輸效率的基礎(chǔ)上增強(qiáng)了文件共享和傳輸?shù)陌踩浴?/p>
[1]RUSSEL S,DAVID G,STEVE K.Design and implementation of the sun network filesystem[C].Proc of the Summer 1985 USENIX Conf.El Cerrito,CA:USENIX Association,1985:119-130.
[2]MOSKOWITZ J,BOUTELL T.Windows and Linux integration:hands-on solutions for a mixed environment[M].New Jersey:Wiley Publishing Inc.2007.
[3]TERPSTRA J H,VERNOOIJ J R.The official samba-3HOWTO and reference guide(2nd ed)[M].NJ:Prentice Hall PTR,2005.
[4]POSTEL J,REYNOLDS J.File transfer protocol,RFC 959[C].Menlo Park,CA:SRI International,Network Information Center,1985.
[5]許君,王朝坤,李瑞.基于內(nèi)容的分布式 FTP搜索引擎的設(shè)計與實現(xiàn)[J].計算機(jī)研究與發(fā)展,2011,48(S3):430-435.
[6]顏海龍,閆巧,馮紀(jì)強(qiáng).基于PKI/CA互信互認(rèn)體系的電子政務(wù)[J].深圳大學(xué)學(xué)報(理工版),2012,29(2):113-117.
[7]郭艷艷,吳揚(yáng)揚(yáng).一種基于 XML Schema的XML索引[J].華僑大學(xué)學(xué)報(自然科學(xué)版),2011,32(1):43-47.
[8]孫瑞錦,徐博,周玉明.一種實時監(jiān)測基于 UDP的Skype語音流的算法[J].解放軍理工大學(xué)學(xué)報(自然科學(xué)版),2008,9(5):507-511.
[9]王雷.TCP/IP網(wǎng)絡(luò)編程技術(shù)基礎(chǔ)[M].北京:清華大學(xué)出版社,2012.
[10]Trusted Computing Group.TPM main specification version2.0
[EB/OL].http://www.trustedcomputinggroup.org.[2013-03].