摘 要: 分析了現有的文件共享和傳輸的相關技術,針對存在的某些安全隱患進行了相應的優化設計。在文件共享部分,通過采用基于XML的間接文件共享方式,即只公開共享信息,而非直接掛載共享文件,避免了因共享路徑產生的安全漏洞;在文件傳輸部分加入了多重安全機制,保證了文件傳輸的安全性。分析表明,本設計在不影響文件共享傳輸效率的情況下,使得局域網內文件共享和傳輸更加安全可靠。
關鍵詞: 文件共享和傳輸;間接共享;可拓展標記語言(XML);安全機制;局域網
隨著網絡技術的飛速發展,利用網絡實現文件的共享和傳輸,給人們帶來了極大的便利。然而安全問題卻日益突出,尤其在局域網范圍內,由于共享和傳輸十分頻繁,可能導致單位或企業的機密信息泄露。此外,通過傳輸病毒或木馬,可能導致整個局域網的癱瘓,因此局域網的安全文件共享和傳輸技術至關重要。
本文針對現有技術的安全隱患,設計了一套基于安全機制的文件共享和傳輸系統。在文件共享部分,對局域網只公布本機的共享信息,而不直接共享文件,以防止設置共享路徑而產生的安全漏洞;在文件傳輸部分,引入多重安全機制,保證了文件傳輸的安全。
1 文件共享和傳輸
1.1 現有技術分析
NFS網絡文件系統[1]實現了Linux之間的文件共享,具有良好的安全性。但是NFS服務器管理復雜且維護成本高。
Windows的網上鄰居存在共享信息更新緩慢,且設置共享路徑容易成為網絡病毒或木馬的突破口,使得本機甚至局域網受到非法攻擊。
Samba文件系統[2-3]以及FTP文件傳輸協議[4-5]的身份認證過于單一,存在著中間人攻擊、密碼嗅探等固有缺陷。
PKI和SSL傳輸協議依賴第三方認證機構CA[6],需要定期對過期證書重新認證和更新,管理復雜,極大地影響文件傳輸的速度和用戶體驗。
此外,對共享文件授權都只分為“用戶本身”、“組”、“其他”三種身份,權限開放容易造成過大或者過小。例如,A文件只共享給所在“組”的部分人,卻只能選擇分組共享,使得小組其他成員也能獲取共享文件,不能指定到具體共享人,缺乏共享文件和傳輸的針對性。
1.2 設計要求
本設計在局域網環境下,解決上述技術存在的不足或安全隱患。優化設計的要求如下:
(1)避免設置特定共享路徑,不直接掛載共享文件;
(2)實現點對點文件傳輸,不設置專用服務器進行集中式管理;
(3)采用多重安全機制;
(4)保證共享信息及時更新;
(5)不依賴于第三方證書認證機構CA;
(6)對文件共享人的權限精確化。
2 系統軟件設計
本系統設計包含文件共享和傳輸兩個子系統。共享子系統中包括共享信息的配置、共享信息查詢與響應兩個功能模塊;傳輸子系統中包含共享方和請求方兩個功能模塊。
根據設計要求,采用以下方法來實現:
(1)只顯示共享信息,采用間接共享方式,防止共享路徑的掛載點被攻擊。
(2)文件共享時,不設置專門服務器管理共享文件,采用點對點進行共享信息交互。
(3)在文件傳輸過程中,引入差別身份認證、可信IP認證、文件加密傳輸、加密密鑰TPM保護、文件完整性校驗和審計等多重安全機制,保證文件共享和傳輸的安全性。
(4)在共享信息查詢中,利用UDP廣播,對在線PC的共享信息進行更新,保證共享信息的實時性。
(5)采用差別身份認證方式,對非敏感共享文件基于靜態口令認證;敏感共享文件基于口令和證書雙重認證。差別認證保證了易用性和安全性的統一。
(6)對共享文件指定文件共享人,將共享人與對應的IP進行綁定,實現對共享人的精確指定。
2.1 文件共享設計
文件共享主要包含共享信息配置、共享信息的查詢與應答兩個功能模塊。
2.1.1 共享信息配置
共享信息配置是對共享文件的絕對路徑、文件名、共享人(IP)、文件夾屬性等信息進行配置,構建本機共享信息。利用XML(eXtensible Markup Language)技術[7]將共享信息寫入到XML文件中。
共享信息XML文件格式如圖1所示。
其中第一行為XML版本和格式,共享信息以<sharelist>為開始,以</sharelist>結束。每個共享文件以<list>父結點為開始,再以</list>結束。List結點中包含<fullname>、<Ip>、<Name>和<Node>子結點,分別代表共享文件的路徑、共享人IP、文件名和文件夾。
利用XML實現共享信息配置的流程如圖2所示。
共享信息配置的流程如下:
(1)查看本地共享信息。若有,則顯示本地共享信息;若沒有,則創建XML文件。
(2)選擇共享文件配置的功能選項:添加還是刪除。選擇添加轉步驟(3);選擇刪除轉步驟(7)。
(3)是否添加共享路徑。若是,添加共享文件,并添加共享路徑<fullname>主結點;若否,則結束配置。
(4)是否有添加共享人。若有,在該共享文件下的<Ip>結點添加共享人IP;若沒有,直接下一步。
(5)是否有添加的文件名。若有,在<Name>結點添加文件名;若沒有,直接下一步。
(6)若共享為文件夾,則設置<Node>結點為Y;若共享為文件,則直接結束。
(7)是否刪除本文件共享。若是,則刪除本條共享信息下的所有結點信息;若否,則直接下一步。
(8)是否只刪除本文件共享人。若是,則刪除本條共享信息的<Ip>結點信息;若否,則結束配置。
2.1.2 共享信息查詢和應答
共享信息查詢和應答采用UDP協議[8]。程序都設置為多線程,以滿足多請求和多響應的情況,即:
(1)請求方利用廣播機制,向在線PC發出請求;
(2)共享方監聽固定的端口號,如果在固定端口監聽到有請求信息,則發出應答信息;
(3)請求者驗證應答信息后,接收來自共享方的共享信息。
2.2 文件傳輸設計
2.2.1 文件傳輸流程
文件傳輸采用TCP協議[9],請求方請求文件共享,得到共享方的響應后,接受共享方的安全認證和共享文件;共享方負責對文件共享請求的響應,在傳輸前對客戶端進行安全認證,在認證通過后,傳輸共享文件。具體流程如圖3所示。
文件傳輸的流程如下:
(1)請求者查詢共享信息列表,選擇共享信息,進行共享請求。
(2)共享者對請求者進行身份認證。若身份認證失敗,結束響應;若身份認證成功,進入下一步。
(3)請求者發送所需共享文件名,共享者獲取該共享文件的共享人IP列表。
(4)對請求者進行IP認證。如果IP列表中不存在請求者IP,則IP認證不通過,結束響應;反之,進入下一步。
(5)共享方獲取該共享文件路徑,得到共享文件的Hash摘要值。
(6)利用隨機生成的密鑰加密共享文件,同時加密密鑰,發送加密后的密鑰和摘要值給請求者。
(7)發送共享密文給請求者。
(8)請求者解密密鑰,利用密鑰解密共享密文,得到共享文件。
(9)對接收的共享文件進行Hash,對比文件傳輸前后的摘要值,校驗文件的完整性。
(10)在文件傳輸過程中,對整個傳輸過程進行審計,記錄主要操作信息。
2.2.2 安全機制
(1)差別身份認證
身份認證包含靜態口令認證和證書認證。對共享文件敏感標記,非敏感文件采用用戶名、口令身份認證;敏感文件還需要基于證書的重認證。
(2)共享人IP認證
解析請求者IP號,與共享信息的共享人IP列表進行對比,如果為共享人中的IP,則IP認證成功,請求者可以共享;否則認證失敗,拒絕請求者共享。
(3)密鑰產生和保護
隨機產生一組2 048 bit密鑰,并把該密鑰存儲于TPM的NV空間內進行保存。
TPM(可信計算模塊),是安全存儲的芯片,TPM的NV空間是TPM的獨立內存空間[10],存儲敏感信息。密鑰存儲于NV空間,保證了密鑰的安全性。
(4)文件加解密
文件加密是讀取共享文件,利用隨機產生的加密算法進行加密,記錄算法ID生成密文頭文件,并依次存儲加密內容;文件解密利用密鑰作為解密口令,讀取密文頭文件算法ID,完成對應算法解密。
(5)完整性校驗
客戶端獲取解密文件摘要值,與接收的原摘要值進行對比。如果相同,則共享文件完整;反之,則文件在傳輸過程中遭到了破壞或篡改。
3 性能及安全性分析
3.1 性能分析
由于文件傳輸過程中,加入了安全機制保證傳輸的安全性,因此還要對其性能影響進行分析,利用與未加入安全機制的文件傳輸協議進行對比分析。
為保證性能分析的適用范圍,測試文件大小從4 KB一直到100 MB不等。對每個文件測試10次,差分取平均值,避免偶然誤差。測試結果如表1所示。
通過表1可以得出:
(1)未加入安全機制的傳輸時間都小于加入安全機制的傳輸時間。
(2)采用安全機制的共享傳輸,隨著文件大小的增加,時間消耗率逐漸降低。(時間消耗率=(安全機制下傳輸時間-非安全機制下傳輸時間)/安全機制下傳輸時間×100%)。如圖4所示。
由表可知,本設計具有以下安全特性:
(1)差別身份認證
基于用戶名、口令的認證較單一,但快速易用;基于證書的認證安全性高,但認證復雜;采用差別身份認證,根據文件敏感度不同差別認證,保證了易用性和安全性的雙重要求。
(2)去除設置共享路徑的安全漏洞
通過間接文件共享方式共享請求時,只對請求者公布共享信息,而不直接共享。必須通過共享方的多重安全認證后,請求方被動接收共享文件。解決了因直接掛載共享文件而產生的共享路徑安全漏洞。
(3)共享授權具體化
通過設置共享人,指定共享人的個數和對應IP,保證了共享授權的具體化。
(4)共享文件保密性
在文件傳輸前,隨機產生加密算法,增大了破解難度。實現密文傳輸,防止文件在傳輸中被截取。
(5)抗重放攻擊
每個文件在不同時期加密密鑰不相同,可以防止利用過期的隨機值進行重復請求,即防止重放攻擊。
(6)文件完整性
對比文件傳輸前后的摘要值,防止文件在傳輸過程中被篡改或者破壞,保證了文件的完整性。
本文主要針對現有的安全共享和傳輸技術在局域網內應用方面可能存在的安全隱患,采用基于XML文件的間接文件共享,并加入了多重安全機制,在不影響共享文件傳輸效率的基礎上增強了文件共享和傳輸的安全性。
參考文獻
[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] 許君,王朝坤,李瑞.基于內容的分布式FTP搜索引擎的設計與實現[J].計算機研究與發展,2011,48(S3):430-435.
[6] 顏海龍,閆巧,馮紀強.基于PKI/CA互信互認體系的電子政務[J].深圳大學學報(理工版),2012,29(2):113-117.
[7] 郭艷艷,吳揚揚.一種基于XML Schema的XML索引[J]. 華僑大學學報(自然科學版),2011,32(1):43-47.
[8] 孫瑞錦,徐博,周玉明.一種實時監測基于UDP的Skype 語音流的算法[J].解放軍理工大學學報(自然科學版),2008,9(5):507-511.
[9] 王雷.TCP/IP網絡編程技術基礎[M].北京:清華大學出版社,2012.
[10] Trusted Computing Group.TPM main specification version2.0[EB/OL].http://www.trustedcomputinggroup.org.[2013-03].