国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于LSM的輕量級(jí)透明加密設(shè)計(jì)與實(shí)現(xiàn)

2014-07-18 11:53陳莉君于運(yùn)超
關(guān)鍵詞:加解密內(nèi)核密鑰

陳莉君, 于運(yùn)超

(西安郵電大學(xué) 計(jì)算機(jī)學(xué)院, 陜西 西安 710121)

基于LSM的輕量級(jí)透明加密設(shè)計(jì)與實(shí)現(xiàn)

陳莉君, 于運(yùn)超

(西安郵電大學(xué) 計(jì)算機(jī)學(xué)院, 陜西 西安 710121)

為了防止數(shù)據(jù)失竊需要對(duì)敏感數(shù)據(jù)進(jìn)行加解密處理,提出一種基于Linux安全模塊框架的輕量級(jí)透明加密方法。該方法主要是對(duì)文件進(jìn)行寫操作時(shí),使用LSM鉤子實(shí)現(xiàn)對(duì)文件的加密操作;當(dāng)用戶試圖讀取文件時(shí)觸發(fā)內(nèi)核讀系統(tǒng)調(diào)用服務(wù)例程并在該例程中實(shí)現(xiàn)文件的解密操作。測試結(jié)果發(fā)現(xiàn)基于LSM的透明加密在確保數(shù)據(jù)安全的情況下對(duì)讀寫性能影響不大。

數(shù)據(jù)安全;Linux安全模塊(LSM);用戶空間;透明加密

透明加密技術(shù)[1-3]是數(shù)據(jù)泄漏防護(hù)系統(tǒng)中常用的一種技術(shù),用于實(shí)現(xiàn)對(duì)文件系統(tǒng)中文件的加解密操作。Windows上實(shí)現(xiàn)透明加密主要通過應(yīng)用層和內(nèi)核層實(shí)現(xiàn)。在應(yīng)用層通過系統(tǒng)提供的鉤子函數(shù)實(shí)現(xiàn),當(dāng)特定的消息發(fā)出后并且在沒有達(dá)到目的窗口前,鉤子函數(shù)率先捕獲并進(jìn)行相應(yīng)的處理。內(nèi)核層實(shí)現(xiàn)透明加密主要通過文件系統(tǒng)過濾驅(qū)動(dòng)[4-5]來實(shí)現(xiàn),對(duì)操作系統(tǒng)的I/O[6]進(jìn)行攔截,從而進(jìn)行相應(yīng)的加解密處理。

借鑒Windows實(shí)現(xiàn)透明加密的思想,可以在Linux用戶層和內(nèi)核層實(shí)現(xiàn)透明加密。用戶層實(shí)現(xiàn)主要考慮用戶態(tài)與內(nèi)核態(tài)切換時(shí)帶來的時(shí)間上的損失,例如加密文件系統(tǒng)(Cryptographic File System,CFS)[7]就是在用戶層面上實(shí)現(xiàn)的。相比來說,內(nèi)核層實(shí)現(xiàn)在安全性與讀寫性能上都比較有優(yōu)勢。由于CFS運(yùn)行在用戶模式下,在上下文切換和數(shù)據(jù)在內(nèi)核和用戶空間交互時(shí),帶來性能上的損失,而透明加密文件系統(tǒng)(Transparent Cryptographic File system,TCFS)是CFS的擴(kuò)展,只適用于2.2.17內(nèi)核或者更早的內(nèi)核,所以針對(duì)CFS以及其擴(kuò)展TCFS文件系統(tǒng)的不足,將基于Linux安全模塊(Linux Security Modules,LSM)的鉤子技術(shù)與加解密技術(shù)相結(jié)合,實(shí)現(xiàn)一種內(nèi)核態(tài)輕量級(jí)并且適用新內(nèi)核的文件加密系統(tǒng)。

1 透明加密設(shè)計(jì)與實(shí)現(xiàn)

1.1 透明加密設(shè)計(jì)

基于LSM的透明加密是通過LSM框架加解密操作結(jié)合實(shí)現(xiàn)文件的透明加密。Linux安全模塊是一種輕量級(jí)、通用的訪問控制框架,適用于安全增強(qiáng)Linux(Security Enhanced Linux,SELinux)、Linux入侵檢測系統(tǒng)(Linux Intrusion Detection System,LIDS)等訪問控制策略,在它上面以內(nèi)核可加載模塊的形式實(shí)現(xiàn)[8]。在加密文件中結(jié)合LSM,可以更細(xì)粒度的對(duì)文件進(jìn)行訪問控制限制,從而更好的實(shí)現(xiàn)文件的安全。透明文件加密設(shè)計(jì)圖見圖1。

圖1 透明加密實(shí)現(xiàn)

透明加密由LSM加載模塊和內(nèi)核修改兩部分構(gòu)成。在LSM加載模塊里面完成對(duì)文件的保護(hù)。文件保護(hù)涉及到用戶合法性判斷、合法用戶執(zhí)行進(jìn)程的合法性、執(zhí)行權(quán)限的合法性以及加密操作。其對(duì)應(yīng)的保護(hù)規(guī)則見圖2。

圖2 文件保護(hù)規(guī)則

文件的解密操作在內(nèi)核實(shí)現(xiàn)。通過分析讀系統(tǒng)的調(diào)用過程,找到執(zhí)行磁盤數(shù)據(jù)拷貝到內(nèi)核緩沖區(qū)的函數(shù)do_generic_file_read(),然后在該函數(shù)中添加解密操作。

1.2 透明加密實(shí)現(xiàn)

1.2.1 加密算法的選擇

在對(duì)稱密碼體系里確保文件安全的因素是密鑰的長度。密鑰的長度越長,破解密碼的時(shí)間也就越長。在確保安全性的同時(shí)也要提高算法的加解密速度。表1[9]給出了常用算法的加解密數(shù)據(jù)。其中Blowfish算法是一種分組密碼,主要特點(diǎn)是快速、易于實(shí)現(xiàn)以及安全性可變;數(shù)據(jù)加密算法 (Data Encryption Standard ,DES)是以64位為分組對(duì)數(shù)據(jù)進(jìn)行加密的分組算法;三重DES加密算法(Triple Data Encryption Standard,3DES)具有足夠的安全性;DESX是DES的另一種改進(jìn),利用一個(gè)隨機(jī)的二進(jìn)制數(shù)與加密前的數(shù)據(jù)以及解密后數(shù)據(jù)異或;國際數(shù)據(jù)加密標(biāo)準(zhǔn) (International Data Encryption Algorithm,IDEA)屬于數(shù)據(jù)塊加密算法;CAST是由Carlisle Adams和Stafford Tavares共同設(shè)計(jì)的一種分組算法;RC2是由密碼學(xué)家Ron Rivest設(shè)計(jì)的一種傳統(tǒng)分組加密算法,可以作為DES的替代算法。

表1 常用算法加解密數(shù)據(jù)時(shí)間 /s

通過表1可以看出,RC4算法[10]加解密速度最好,但是RC4是公鑰密碼中RSA[11]的演變,RC4算法的安全取決于密鑰生成器生成密鑰的隨機(jī)性,如果生成的偽隨機(jī)密碼存在弱密鑰,則會(huì)對(duì)算法安全構(gòu)成很大威脅。所以選擇高級(jí)加密標(biāo)準(zhǔn)(Advanced Encryption Standard,AES),該算法是典型的迭代式分組密碼,其分組長度和密鑰長度可以獨(dú)立指定為128位,192位和256位。并且選擇128位密鑰需要進(jìn)行10輪加密;選擇192位密鑰需要進(jìn)行12輪加密;并且選擇256位密鑰需要進(jìn)行14輪加密。

在每輪操作中主要執(zhí)行以下幾個(gè)函數(shù):ByteSubs(state)將消息x與S盒進(jìn)行字節(jié)代換操作;ShiftRows(State)對(duì)消息矩陣State做行移位操作;MixColumns(State)對(duì)消息矩陣做列混合操作;AddRoundkey(State,Roundkey)將消息矩陣State與輪密鑰Roundkey進(jìn)行密鑰異或運(yùn)算。

1.2.2 加解密實(shí)現(xiàn)

當(dāng)用戶要對(duì)文件進(jìn)行寫操作時(shí),通過系統(tǒng)調(diào)用之后進(jìn)行自主訪問控制和LSM hook file_permission()實(shí)現(xiàn)更細(xì)粒度的權(quán)限檢查,file_permission()鉤子函數(shù)主要對(duì)打開文件的訪問權(quán)限進(jìn)行控制,函數(shù)執(zhí)行過程如圖3。

圖3 file_permission函數(shù)執(zhí)行過程

應(yīng)用程序進(jìn)行讀數(shù)據(jù)時(shí),由于不能從LSM框架內(nèi)部獲得加密數(shù)據(jù),所以不能在LSM鉤子函數(shù)中實(shí)現(xiàn)。通過兩種方法解決,其一是系統(tǒng)調(diào)用截獲,通過系統(tǒng)調(diào)用返回用戶態(tài)之前截獲解密消息并返回給用戶[12],這樣做利用了內(nèi)核加載模塊的漏洞,不是一個(gè)安全的方法。其二是修改內(nèi)核,通過分析讀操作系統(tǒng)調(diào)用服務(wù)例程SYSCALL_DEFINE3(read, unsigned int, fd, char __user*, buf, size_t, count)。內(nèi)核對(duì)讀操作處理也分為兩種情況,其一是與存儲(chǔ)介質(zhì)直接交互數(shù)據(jù),這種常見于數(shù)據(jù)庫的應(yīng)用,函數(shù)do_blockdev_direct_IO()是處理直接數(shù)據(jù)存儲(chǔ)的函數(shù)。其二是讀操作與系統(tǒng)中頁緩存結(jié)合,要讀取數(shù)據(jù)時(shí),系統(tǒng)先在內(nèi)核頁緩存中查看是否有數(shù)據(jù)保存,如果緩存中存在,則直接返回應(yīng)用程序,否則需要從磁盤獲取數(shù)據(jù)并將數(shù)據(jù)存放至緩存中以備數(shù)據(jù)下次被訪問。這種情況最終通過函數(shù)do_generic_file_read()讀取數(shù)據(jù)并將數(shù)據(jù)發(fā)送到用戶緩沖區(qū)。

2 性能測試

該系統(tǒng)的安全性已經(jīng)通過選取的加密算法AES保證安全,接下來性能測試需要關(guān)注的重點(diǎn)就是加解密對(duì)文件操作延遲的影響。測試系統(tǒng)環(huán)境為4G內(nèi)存,500G硬盤,CPU:Intel(R) Pentium(R) 2.60GHz,主要測試未加密的日志式文件系統(tǒng)EXT3[14](Third Extended File System)和實(shí)現(xiàn)透明加密的文件系統(tǒng)中讀寫速率。測試使用Linux下的dd塊拷貝命令測試文件的讀寫速率。

要對(duì)寫速率進(jìn)行測試,可以通過

time dd

if=/dev/zero

of=test

bs=**KB

count=100

實(shí)現(xiàn),同樣使用

time dd

if=/dev/sda

of=/dev/null

bs=**KB

count=100

可實(shí)現(xiàn)對(duì)文件讀速率進(jìn)行測試。其中if=輸入文件名,of=輸出文件名,bs=bytes 讀入/輸出字節(jié)大小,count=blocks 拷貝blocks個(gè)塊且每個(gè)塊的大小為bytes字節(jié)。比如要對(duì)4M的數(shù)據(jù)進(jìn)行寫速率測試,只需使用

time dd

if=/dev/zero

of=test

bs=4KB

count=1024

測試讀寫速率時(shí)也可以使用FIO工具進(jìn)行測試[13]。測試結(jié)果如表2所示。

表2 文件讀寫速率對(duì)比 /s

(1)通過數(shù)據(jù)發(fā)現(xiàn)文件的寫操作時(shí)間明顯大于文件讀操作時(shí)間。這是因?yàn)樵趯懳募r(shí)需要對(duì)文件進(jìn)行同步加鎖保護(hù),防止多個(gè)進(jìn)程同時(shí)對(duì)文件操作,破壞數(shù)據(jù)的一致性。所以在對(duì)文件進(jìn)行大量寫操作時(shí)會(huì)延長加密的時(shí)間。

(2) 對(duì)文件進(jìn)行讀寫操作時(shí),文件系統(tǒng)緩存機(jī)制發(fā)揮了積極的作用。比如對(duì)1024×4KB文件進(jìn)行讀操作時(shí),第一次耗時(shí)0.0518s,第二、三次分別耗時(shí)0.0018s和0.0016s,相比第一次耗時(shí)減少,說明對(duì)第二次和第三次文件的讀取使用到了文件系統(tǒng)緩存機(jī)制。適當(dāng)?shù)睦貌僮飨到y(tǒng)的緩存機(jī)制,在文件安全的前提下可以實(shí)現(xiàn)文件的快速操作。

通過對(duì)測試結(jié)果數(shù)據(jù)進(jìn)行分析,在文件安全的情況下可以得出加解密對(duì)文件的讀寫時(shí)間影響是有限的,可以通過合理的使用系統(tǒng)緩存機(jī)制改善加解密帶來的時(shí)間延遲。

3 結(jié)論

設(shè)計(jì)并實(shí)現(xiàn)了基于LSM的文件透明加密系統(tǒng)。該系統(tǒng)的實(shí)現(xiàn)降低了文件加解密的復(fù)雜度,避免了CFS上下文切換和數(shù)據(jù)在內(nèi)核和用戶空間交互帶來性能上的損失。同時(shí)對(duì)文件元數(shù)據(jù)的加密操作,進(jìn)一步提高了文件的安全,改善了TCFS未對(duì)元數(shù)據(jù)進(jìn)行加解密的缺陷。通過性能測試,結(jié)果表明文件透明加密系統(tǒng)對(duì)文件操作影響不是很大,可以對(duì)核心文件進(jìn)行加密處理。

[1] 鄒家銀,李培峰.透明加解密系統(tǒng)原理與實(shí)現(xiàn)分析[J]. 計(jì)算機(jī)與現(xiàn)代化,2012,199(3):86-90.

[2] Li Shaobo, Jia Xiaohui . Research and Application of Transparent Encrypting File System Based on Windows Kernel[C]//Computational Intelligence and Software Engineering(CiSE).Wuhan:IEEE, 2010:1-4.

[3] Lee Jacheung, Heo Junyoung, Park Jaemin,et al. Buffer cache level encryption for embedded secure operating system[C]//FIB International Conferenece on Embedded and Ubiquitous Computing, EUC Taipei,Taiwan:IFIP International Federation for Information Processing, 2007:346-355.

[4] 錢濤, 鄭扣根. 驅(qū)動(dòng)模式的Windows進(jìn)程合法性驗(yàn)證[J].計(jì)算機(jī)應(yīng)用, 2009, 29(12): 3398-3402.

[5] Xie Liling. Research and Application of theTransparent Docunment Encryption Gataway in Information Leakage Prevention[C]//Internet Technology and Applications. Wuhan: IEEE, 2010:1-3.

[6] 譚文,楊瀟,邵堅(jiān)磊. 寒江獨(dú)釣:Windows內(nèi)核安全編程[M]. 北京:電子工業(yè)出版社,2009:163-280.

[7] Blaze M. A Cryptographic File System for Unix[C]//Computer & Comm. Security. NY,USA:ACM, 1993:9-16.

[8] 蘇錦繡.基于LSM的文件系統(tǒng)安全機(jī)制的研究[D].西安:西安郵電大學(xué),2012:15-20.

[9] 劉富星,高輝.常用加解密算法及其時(shí)間分析[J].科技信息,2008(1):84.

[10] William S. 密碼編碼學(xué)與網(wǎng)絡(luò)安全[M]. 劉玉珍,王麗娜,傅建明,等譯.3版.北京:電子工業(yè)出版社, 2004:141-144.

[11] 范九倫,張雪鋒,劉宏月,等. 密碼學(xué)基礎(chǔ)[M].西安:西安電子科技大學(xué)出版社,2008:77-82.

[12] 蘇錦繡,陳莉君.基于系統(tǒng)調(diào)用的日志系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].西安郵電學(xué)院學(xué)報(bào),2011,16(4):59-65.

[13] 陳莉君,王森,康華.日志結(jié)構(gòu)云存儲(chǔ)中緩存的設(shè)計(jì)與實(shí)現(xiàn)[J].西安郵電大學(xué)學(xué)報(bào),2013,18(5):76-80.

[14] 金霞. EXT3文件系統(tǒng)結(jié)構(gòu)研究及入侵檢測的實(shí)現(xiàn)[D]. 鄭州:解放軍信息工程大學(xué),2004:1-4.

[責(zé)任編輯:祝劍]

Study of transparent encryption technology based on LSM

CHEN Lijun, YU Yunchao

(School of Computer Science and Technology,Xi’an University of Posts and Telecommunications,Xi’an 710121, China)

A lightweight transparent encryption method based on the framework of Linux security modules (LSM) is proposed to meet the need for encrypting and decrypting on sensitive data from being stolen.The method uses the LSM hooks to encryption file while writing file, and triggers the kernel read system call service routine to decrypt file in the routine when user attempts to reading file. Testing results show that this method not only can ensure data security but also have little influence on reading and writing file.

data security, Linux security modules (LSM), user space, transparent encryption

10.13682/j.issn.2095-6533.2014.01.017

2013-10-24

陜西省教育廳基金資助項(xiàng)目(11JK1037)

陳莉君(1964-),女,碩士,教授,從事Linux操作系統(tǒng)研究。E-mail:cljcore@126.com 于運(yùn)超(1987-),男,碩士研究生,研究方向?yàn)榍度胧较到y(tǒng)設(shè)計(jì)與開發(fā)。E-mail: yuyun_chao@126.com

TP309.7

A

2095-6533(2014)01-0078-04

數(shù)中實(shí)現(xiàn)解密操作的主要流程都是一樣的。先判斷文件標(biāo)志flags是否為1,如果為1表明要讀取的文件經(jīng)過加密操作,需要調(diào)用解密函數(shù);否則直接讀取并返回用戶緩沖區(qū)。

猜你喜歡
加解密內(nèi)核密鑰
多內(nèi)核操作系統(tǒng)綜述①
幻中邂逅之金色密鑰
強(qiáng)化『高新』內(nèi)核 打造農(nóng)業(yè)『硅谷』
活化非遺文化 承啟設(shè)計(jì)內(nèi)核
密碼系統(tǒng)中密鑰的狀態(tài)與保護(hù)*
Linux內(nèi)核mmap保護(hù)機(jī)制研究
TPM 2.0密鑰遷移協(xié)議研究
一種對(duì)稱密鑰的密鑰管理方法及系統(tǒng)
PDF中隱私數(shù)據(jù)的保護(hù)方法
電子取證中常見數(shù)據(jù)加解密理論與方法研究