王文晶,胡艷慧(山西大學(xué)商務(wù)學(xué)院信息學(xué)院,太原030031)
嵌入式Linux下文件管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
王文晶,胡艷慧
(山西大學(xué)商務(wù)學(xué)院信息學(xué)院,太原030031)
目前的文件管理系統(tǒng)大多是基于Windows操作系統(tǒng)的,很少有針對(duì)Linux系統(tǒng)。針對(duì)目前計(jì)算機(jī)中文件信息不能有效保護(hù),易于泄露和篡改,設(shè)計(jì)基于Linux系統(tǒng)的文件管理系統(tǒng)。該設(shè)計(jì)使用Java加密框架完整實(shí)現(xiàn)文件系統(tǒng)的加密,同時(shí)利用校驗(yàn)技術(shù)對(duì)用戶進(jìn)行認(rèn)證。通過(guò)測(cè)試,該加密文件系統(tǒng)在功能和性能上滿足設(shè)計(jì)的目標(biāo),達(dá)到很好的試驗(yàn)效果。
文件管理系統(tǒng);Linux系統(tǒng);加密框架
省級(jí)重點(diǎn)項(xiàng)目(No.2012011013-2)
近些年來(lái),數(shù)據(jù)的加密越來(lái)越受人們的關(guān)注。入侵者通過(guò)硬件設(shè)備以及計(jì)算機(jī)網(wǎng)絡(luò),對(duì)數(shù)據(jù)進(jìn)行入侵篡改,對(duì)數(shù)據(jù)的安全性提出更高的要求。最根本的原因是由于計(jì)算機(jī)中大多數(shù)的數(shù)據(jù)以明文的形式存儲(chǔ),所以使用數(shù)據(jù)加密技術(shù)可以對(duì)計(jì)算機(jī)中的數(shù)據(jù)進(jìn)行有效保護(hù)。加密文件系統(tǒng)目前已經(jīng)成為對(duì)數(shù)據(jù)加密的一種有效手段。加密文件系統(tǒng)可以防止管理員利用別的操作系統(tǒng)竊取計(jì)算機(jī)中的數(shù)據(jù)[1]。
目前,加密基于Linux的文件加密系統(tǒng)主要有AFS和TCFS。加密系統(tǒng)是對(duì)數(shù)據(jù)寫操作和讀操作進(jìn)行加密和解密,確保數(shù)據(jù)以密文形式存儲(chǔ)。TCFS加密系統(tǒng)對(duì)于不同的文件有不同的加密密鑰,同時(shí)同一文件的不同塊實(shí)現(xiàn)不同秘鑰。AFS文件加密系統(tǒng)對(duì)客戶端和服務(wù)器的對(duì)話加密。這些文件加密系統(tǒng)對(duì)數(shù)據(jù)進(jìn)行了一定程度的保護(hù),但是保護(hù)不嚴(yán)密,同時(shí)性能低。由于Java的可移植性強(qiáng),源代碼開(kāi)放,所以本文設(shè)計(jì)了一個(gè)基于嵌入式Linux系統(tǒng)下的文件安全保護(hù)系統(tǒng),通過(guò)對(duì)文件加密和解密,達(dá)到對(duì)系統(tǒng)文件的安全保護(hù)[2]。
加密文件系統(tǒng)模塊主要包括文件保護(hù)模塊、用戶認(rèn)證模塊、文件瀏覽。關(guān)系圖如圖1所示。
文件加密和解密是通過(guò)DES算法實(shí)現(xiàn)的。由于DES算法是一種對(duì)稱加密算法。用戶可以對(duì)文件加密,并將加密后的數(shù)據(jù)文件保存于文件管理系統(tǒng),也可以對(duì)文件解密,將文件管理系統(tǒng)中的文件解密后存儲(chǔ)在指定位置[3]。文件瀏覽主要用于用戶傳輸文件時(shí)候需要查找文件。文件可以通過(guò)目錄形式進(jìn)行查找。這兩個(gè)模塊的執(zhí)行必須是用戶通過(guò)認(rèn)證模塊。用戶認(rèn)證通過(guò)用戶名和密碼認(rèn)證,本系統(tǒng)不直接存儲(chǔ)用戶名密碼,而是存儲(chǔ)經(jīng)過(guò)散列以后的值,這樣可以防止入侵者竊取和篡改用戶信息,保證用戶數(shù)據(jù)的安全性[4]。
圖1 加密文件管理系統(tǒng)結(jié)構(gòu)圖
2.1用戶認(rèn)證模塊
用戶認(rèn)證模塊主要實(shí)現(xiàn)用戶注冊(cè)認(rèn)證和用戶登錄認(rèn)證,它的主要作用是確保數(shù)據(jù)操作安全。此外對(duì)口令的修改會(huì)更新認(rèn)證數(shù)據(jù)。
當(dāng)新用戶注冊(cè)信息時(shí),應(yīng)保證賬戶名稱的唯一性。所以必須檢查注冊(cè)賬戶名是否已存在于數(shù)據(jù)庫(kù)中。對(duì)于用戶的口令,必須擁有足夠的長(zhǎng)度以確保賬戶的相對(duì)安全。為了防范口令通過(guò)數(shù)據(jù)庫(kù)被盜用,可以將口令以MD5摘要信息的形式存儲(chǔ)[5]。賬號(hào)登錄需要驗(yàn)證相應(yīng)的賬戶名是否存在以及和口令信息是否與數(shù)據(jù)庫(kù)中的存儲(chǔ)數(shù)據(jù)相匹配,此外若一個(gè)賬戶已經(jīng)登錄則不能重復(fù)登錄,所以還需檢測(cè)對(duì)應(yīng)賬戶是否存在于在線客戶鏈表中。
2.2文件的發(fā)送、接收
為了保證文件在傳輸過(guò)程中防止篡改,采用PGP認(rèn)證。PGP認(rèn)證過(guò)程是基于RSA非對(duì)稱加密算法進(jìn)行的,發(fā)送方和接收方在認(rèn)證前必須相互交換各自的RSA公鑰。
認(rèn)證時(shí),消息發(fā)送方將利用散列算法(如MD5)計(jì)算消息摘要,并將摘要用自己的私鑰加密生成簽名,此時(shí)該簽名只能用發(fā)送者的公鑰才能解密。故只有用發(fā)送方公鑰解密簽名并比較獲得的結(jié)果與原消息摘要,匹配一致才能說(shuō)明此簽名用發(fā)送方的私鑰加密,從而確定發(fā)送方身份。認(rèn)證流程圖如圖2所示。
圖2 PGP認(rèn)證圖
2.3文件加密解密模塊
PGP加解密前也必須交換雙方公鑰。加密時(shí)發(fā)送方用將用IDEA加密算法,加密原文壓縮包,并將文件加密密鑰用接收方公鑰加密,最后將密文和加密密鑰一起發(fā)送接收方。此時(shí)只有接收方才能用自己的私鑰解密提取IDEA文件密鑰從而繼續(xù)解密明文并最終獲得明文[6~7]。PGP加密解密流程圖如圖3所示。
圖3 PGP加密解密流程圖
本系統(tǒng)使用DES算法進(jìn)行文件加密,由于DES屬于對(duì)稱加密算法,其加密和解密文件使用相同的密鑰,所以在加密完畢以后有必要將密鑰存儲(chǔ)于數(shù)據(jù)庫(kù)中,這樣既能保證密鑰不會(huì)因人為疏忽而丟失,也能實(shí)現(xiàn)在文件解密時(shí)自動(dòng)調(diào)取密鑰解密,從而增加系統(tǒng)的易用性。對(duì)于RSA密鑰,由于它只應(yīng)用于文件傳輸過(guò)程中的數(shù)字簽名,而每次的文件傳輸都需要用隨機(jī)產(chǎn)生的RSA計(jì)算簽名,所以為了傳輸安全不會(huì)重用上次會(huì)話使用過(guò)的密鑰,因此無(wú)需對(duì)RSA密鑰進(jìn)行存儲(chǔ)。
函數(shù)send_md5_deskey式設(shè)置RSA私鑰和公鑰,生成摘要和數(shù)字簽名。首先調(diào)用函數(shù)des_encry加密文件并提取摘要和密鑰,然后設(shè)置對(duì)方公鑰和私鑰,加密文件密鑰和摘要。部分關(guān)鍵算法如下:
/*創(chuàng)建并發(fā)送數(shù)字簽名和文件密鑰*/
bool CLIENTCORE::send_md5_deskey(pnode ptr)// ptr為傳輸文件信息節(jié)點(diǎn)地址
{
char buffer[MAX]={0},
tmp[MAX]={0};
des_encry(ptr->filename,ptr->key,ptr->md5);//加密文件并提取摘要和密鑰
intn=ptr->key.size()+1;
rsa.set_keys(ptr->hs_d,0,ptr->hs_n);//設(shè)置RSA密鑰(對(duì)方公鑰)
rsa.rsa_enc_msg(ptr->key.c_str(),(buffer+30),n);//加密文件密鑰
n=ptr->md5.size()+1;
rsa.set_keys(ptr->my_e,0,ptr->my_n);//設(shè)置RSA密鑰(私鑰)
rsa.rsa_enc_msg(ptr->md5.c_str(),tmp,n);//加密摘要(簽名)
n=n*4+4;
rsa.set_keys(ptr->hs_d,0,ptr->hs_n);//設(shè)置RSA密鑰
rsa.rsa_enc_msg(tmp,(buffer+90),n);//加密簽名
string msg=MSG_DAK+ptr->sock+SPRT; //創(chuàng)建協(xié)議頭
memcpy(buffer,msg.c_str(),msg.size());//設(shè)置發(fā)送信息協(xié)議頭
}
本設(shè)計(jì)以MySQL開(kāi)發(fā)后臺(tái)數(shù)據(jù)庫(kù),使用Qt圖形界面應(yīng)用程序設(shè)計(jì)交互界面。預(yù)期實(shí)現(xiàn)功能要求,能在傳輸密文之后自動(dòng)解密,還原明文與發(fā)送一致。本文只對(duì)加密的速度進(jìn)行了測(cè)試。本系統(tǒng)所用加密及摘要算法與其他典型加密及摘要算法的比較如表1所示。
通過(guò)測(cè)試結(jié)果可以看出AES算法的密鑰長(zhǎng)度是128、192、256位,長(zhǎng)度最長(zhǎng),加密速度也最快,安全性也最高。其次是DES算法,密鑰長(zhǎng)度56位,第二位,加密速度也是緊跟其次,主要用于大批數(shù)據(jù)加密。
通過(guò)測(cè)試說(shuō)明,該文件的加密算法在功能和性能上都實(shí)現(xiàn)了初期的目標(biāo)和要求,包括用戶的認(rèn)證,文件的加密和解密,Linux文件完整性校驗(yàn),目錄文件的瀏覽查詢。該加密算法可以嘗試移植到別的平臺(tái)。
由于設(shè)計(jì)時(shí)間較短,并未充分考慮交互界面的美化方案,故用戶界面的設(shè)計(jì)也有一定的完善空間。同時(shí)算法還需要改進(jìn),提高加密和解密的速度。在最后的測(cè)試階段展現(xiàn)出的一系列漏洞雖然已經(jīng)修補(bǔ),但并不能確定該系統(tǒng)在使用過(guò)程中不會(huì)再發(fā)現(xiàn)新的問(wèn)題,因此需要用戶在實(shí)際使用中不斷發(fā)現(xiàn)不足以實(shí)現(xiàn)系統(tǒng)的進(jìn)一步優(yōu)化。
表1 典型摘要計(jì)算及數(shù)據(jù)加密算法比較表
[1]任偉.密碼學(xué)與現(xiàn)代密碼學(xué)研究.信息網(wǎng)絡(luò)安全,2011,11,1~5
[2]劉傳領(lǐng),范建華.RSA非對(duì)稱加密算法在數(shù)字簽名中的應(yīng)用研究.通信技術(shù),2009,42:12~13
[3]劉曉星,胡暢霞,劉明生.安全加密算法DES的分析與改進(jìn).微計(jì)算機(jī)信息,2006,5:23~26
[4]段璐琳.?dāng)?shù)論中一個(gè)歐拉公式的證明及其在解題中的應(yīng)用.廣西教育學(xué)院學(xué)報(bào),2012,1:14~18
[5]王連笑.費(fèi)馬小定理和歐拉定理的應(yīng)用.科技日?qǐng)?bào),2008,6:34~37
[6]丁宏,郭艷華.快速大數(shù)模乘算法及其應(yīng)用.杭州電子工業(yè)學(xué)院,2003
[7]Philip Zimmermann.PGPMarks 10th Anniversary.New York:Spring-Verlag,2001
DocumentManagement System;Linux;Cryptographic Framework
Design and Implementation of Embedded Linux of DocumentManagement System
WANGWen-jing HU Yan-hui
(College of Information,Business College of Shanxi University,Taiyuan 030031)
Most of the current documentmanagement system is based on the W indows operating system,there is little for the Linux system.File information for the current computer can not be effectively protected,easy to leakage and tampering,the design is based on Linux system's filemanagement system.Ituses a full implementation of the Java Cryptographic Framework encrypted file system,while taking the advantage of technology to verify the user authentication.Through testing,the encrypted file system functionality and performance to meet the design objectives,achieve good test results.
1007-1423(2015)15-0063-04
10.3969/j.issn.1007-1423.2015.15.016
王文晶(1981-),女,山西沁縣人,碩士,講師,研究方向?yàn)樽匀徽Z(yǔ)言處理、信息安全
胡艷慧(1976-),女,山西太原人,碩士,講師,研究方向?yàn)榫W(wǎng)絡(luò)管理
2015-03-24
2015-05-11