基于Linux的擴(kuò)展文件系統(tǒng)加密方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于信息安全技術(shù)領(lǐng)域,具體涉及一種基于Linux的擴(kuò)展文件系統(tǒng)加密方法,采用特定算法在文件系統(tǒng)層面對(duì)路徑或單個(gè)文件進(jìn)行加密操作,對(duì)用戶重要信息進(jìn)行保護(hù)。
【背景技術(shù)】
[0002]文件加密是指,以某種特殊的算法改變?cè)械男畔?shù)據(jù),使未經(jīng)授權(quán)的用戶無(wú)法獲取文件信息,保護(hù)用戶的重要數(shù)據(jù)。文件加密技術(shù)應(yīng)考慮加密軟件的穩(wěn)定性、安全性和方便性。常用加密實(shí)現(xiàn)方式有:
[0003]數(shù)據(jù)庫(kù)加密,對(duì)庫(kù)后臺(tái)存儲(chǔ)數(shù)據(jù)進(jìn)行加密保護(hù),技術(shù)包括視圖觸發(fā)器、預(yù)解密處理以及密文索引技術(shù)。
[0004]工具加密,使用應(yīng)用軟件對(duì)指定路徑和文件進(jìn)行加解密,操作流程全部在應(yīng)用層完成。
[0005]驅(qū)動(dòng)加密,調(diào)用驅(qū)動(dòng)模塊在內(nèi)核層面對(duì)指定路徑和文件進(jìn)行加解密。
[0006]國(guó)密算法,即國(guó)家密碼局認(rèn)定的國(guó)產(chǎn)密碼算法,也叫商用密碼(SM)。目前成熟在用的有SM1、SM2、SM3和SM4,最新為SM9。主要應(yīng)用于企業(yè)內(nèi)部敏感數(shù)據(jù)的傳輸、存儲(chǔ)進(jìn)行加密保護(hù),防止信息被非法獲取,廣泛應(yīng)用于各類安全認(rèn)證、網(wǎng)上銀行和數(shù)字簽名等。
[0007]目前基于Linux的擴(kuò)展文件系統(tǒng)加密,比較常見(jiàn)的是dm_crypt技術(shù)。該技術(shù)速度快,適用面廣,能運(yùn)行于各種塊設(shè)備之上。主要使用dm-crypt與快設(shè)備(或區(qū))進(jìn)行關(guān)聯(lián),對(duì)用戶在掛載點(diǎn)內(nèi)編輯的內(nèi)容進(jìn)行加密操作,塊設(shè)備中的內(nèi)容需要獲取密鑰后才能解讀。但該技術(shù)目前只支持AES等通用算法,無(wú)法使用國(guó)密算法,并且在架構(gòu)上沒(méi)有對(duì)硬件加密進(jìn)行擴(kuò)展。
【發(fā)明內(nèi)容】
[0008]為了克服現(xiàn)有技術(shù)的上述缺點(diǎn),本發(fā)明提供了一種基于Linux的擴(kuò)展文件系統(tǒng)加密方法,采用驅(qū)動(dòng)加密方式,用戶運(yùn)行應(yīng)用軟件設(shè)置密鑰和加密方式,通過(guò)信號(hào)量傳遞至內(nèi)核層中的加密模塊,模塊配置加解密算法。并通過(guò)擴(kuò)展文件系統(tǒng)(EXT)的節(jié)點(diǎn)映射,對(duì)其物理存儲(chǔ)頁(yè)面進(jìn)行加解密操作。
[0009]本發(fā)明解決其技術(shù)問(wèn)題所采用的技術(shù)方案是:一種基于Linux的擴(kuò)展文件系統(tǒng)加密方法,加密設(shè)置工具在用戶態(tài)運(yùn)行,提供策略設(shè)置工具和密鑰管理工具;內(nèi)核模塊按照算法策略,在文件系統(tǒng)底層執(zhí)行加解密操作;所述加密設(shè)置工具運(yùn)行時(shí)與內(nèi)核模塊的key模塊建立臨時(shí)會(huì)話。
[0010]與現(xiàn)有技術(shù)相比,本發(fā)明的積極效果是:
[0011]1、直接與擴(kuò)展文件系統(tǒng)對(duì)接,加解密操作在Linux內(nèi)核層完成。
[0012]加密過(guò)程完全對(duì)用戶態(tài)透明,用戶不關(guān)心加解密過(guò)程,操作過(guò)程與普通文件完全一致。
[0013]2、“國(guó)密算法”(SM1\SM2\SM3\SM4)接口配置。
[0014]使用國(guó)密算法加密芯片,加密過(guò)程更具效率和安全性,適用于有國(guó)密要求的應(yīng)用場(chǎng)景。另外,接口可配置內(nèi)核軟算法,適配無(wú)加密卡平臺(tái)。
[0015]3、文件名和文件內(nèi)容均進(jìn)行加密操作。
[0016]保護(hù)區(qū)內(nèi),文件名用HASH (哈希值)表示,文件內(nèi)容以密文形式保存在物理頁(yè)上,無(wú)權(quán)限用戶無(wú)法獲取文件名或文件信息。在內(nèi)核態(tài)中實(shí)現(xiàn)對(duì)文件的安全保護(hù)。
[0017]4、密鑰存儲(chǔ)于內(nèi)核密鑰環(huán),非持有用戶不可見(jiàn)(包括root用戶)。
[0018]5、組件少、空間開(kāi)銷小、可移植性強(qiáng),通用或嵌入式系統(tǒng)均適用。
【附圖說(shuō)明】
[0019]本發(fā)明將通過(guò)例子并參照附圖的方式說(shuō)明,其中:
[0020]圖1是本發(fā)明的文件名的加密示意圖;
[0021]圖2是本發(fā)明的文件內(nèi)容的加解密示意圖。
【具體實(shí)施方式】
[0022]本發(fā)明包括兩部分內(nèi)容:
[0023]1、加密設(shè)置工具:在用戶態(tài)運(yùn)行,提供策略設(shè)置和密鑰管理工具。
[0024]策略設(shè)置工具根據(jù)用戶輸入,創(chuàng)建加密的路徑或文件,并與指定的密鑰進(jìn)行綁定。
[0025]密鑰管理工具,用于導(dǎo)入、更新、查詢和銷毀密鑰。
[0026]工具運(yùn)行時(shí)會(huì)與內(nèi)核的key模塊(/proc/keys)建立臨時(shí)會(huì)話。
[0027]2、e4crypt 內(nèi)核模塊。
[0028]按照算法策略,在文件系統(tǒng)底層執(zhí)行加解密操作,使用了臨時(shí)頁(yè)面和讀回調(diào)技術(shù),分別對(duì)物理頁(yè)中密文進(jìn)行加密和解密操作。
[0029]以下是本發(fā)明方法的詳細(xì)介紹:
[0030]—種基于Linux的擴(kuò)展文件系統(tǒng)加密方法,如圖1和圖2所示,具體包括如下內(nèi)容:
[0031]2-1.密鑰管理工具
[0032]本專利中,對(duì)密鑰存放添加了安全性設(shè)計(jì),用戶密鑰只能存放在內(nèi)核中。管理密鑰的模塊為內(nèi)核密鑰環(huán)(security-keyring),密鑰環(huán)本質(zhì)上是一個(gè)循環(huán)鏈表。管理接口進(jìn)行了封裝,用戶只能使用密鑰管理工具存取密鑰,且只能查看自己創(chuàng)建的密鑰。
[0033]2-2.策略設(shè)置工具
[0034]記錄用戶的密鑰、加密算法和文件名。設(shè)置完成后,工具將把密鑰環(huán),加密算法和文件名進(jìn)行綁定,同時(shí)將結(jié)果傳遞給內(nèi)核。當(dāng)持有密鑰的用戶對(duì)綁定文件進(jìn)行編輯時(shí),內(nèi)核將命中關(guān)聯(lián)的策略,在讀寫回調(diào)中進(jìn)行加解密操作。該設(shè)計(jì),使本專利在策略上更具備靈活性,用戶可采用多種密碼算法對(duì)文件進(jìn)行加密處理。
[0035]3-3、持有密鑰用戶和普通用戶訪問(wèn)文件:
[0036](1)持有密鑰的用戶進(jìn)入文件夾,創(chuàng)建或訪問(wèn)文件名、對(duì)文件內(nèi)容進(jìn)行讀寫操作:
[0037]用戶創(chuàng)建文件名并加密后,內(nèi)核根據(jù)綁定的策略,對(duì)文件名加密后保存至磁盤,并將加密的文件名映射到文件節(jié)點(diǎn)索引區(qū)。寫文件到物理區(qū)時(shí),內(nèi)核模塊先創(chuàng)建臨時(shí)加密區(qū),使用關(guān)聯(lián)的密鑰和算法加密文件信息,密文寫入物理頁(yè)。寫操作完成后內(nèi)核銷毀臨時(shí)區(qū)。
[0038]用戶訪問(wèn)文件名時(shí),內(nèi)核命中綁定策略,使用關(guān)聯(lián)的密碼算法對(duì)磁盤文件名和索引域文件名解密。從物理區(qū)讀文件時(shí),讀回調(diào)使用關(guān)聯(lián)的密鑰和算法,提取物理頁(yè)上的密文解密,并返回明文信息至用戶層。
[0039](2)普通用戶讀寫操作:
[0040]由于普通用戶不持有該文件綁定的密鑰,因此內(nèi)核不會(huì)命中任何已有策略,不能訪問(wèn)該文件內(nèi)容,內(nèi)核僅返回加密后的文件名(直接在磁盤或索引區(qū)讀取已加密的文件名)。
[0041]該設(shè)計(jì)對(duì)用戶層完全透明,并且與權(quán)限管理完全分離。通過(guò)密鑰、算法和文件的綁定機(jī)制,保證加密文件僅由持有密鑰的用戶訪問(wèn)。
【主權(quán)項(xiàng)】
1.一種基于Linux的擴(kuò)展文件系統(tǒng)加密方法,其特征在于:加密設(shè)置工具在用戶態(tài)運(yùn)行,提供策略設(shè)置工具和密鑰管理工具;內(nèi)核模塊按照算法策略,在文件系統(tǒng)底層執(zhí)行加解密操作;所述加密設(shè)置工具運(yùn)行時(shí)與內(nèi)核模塊的key模塊建立臨時(shí)會(huì)話。2.根據(jù)權(quán)利要求1所述的基于Linux的擴(kuò)展文件系統(tǒng)加密方法,其特征在于:所述策略設(shè)置工具根據(jù)用戶輸入,創(chuàng)建加密的路徑或文件,并與指定的密鑰進(jìn)行綁定;所述密鑰管理工具用于導(dǎo)入、更新、查詢和銷毀密鑰。3.根據(jù)權(quán)利要求2所述的基于Linux的擴(kuò)展文件系統(tǒng)加密方法,其特征在于:持有密鑰的用戶創(chuàng)建文件名并加密后,內(nèi)核模塊根據(jù)綁定的策略,對(duì)文件名加密后保存至磁盤,并將加密的文件名映射到文件節(jié)點(diǎn)索引區(qū)。4.根據(jù)權(quán)利要求3所述的基于Linux的擴(kuò)展文件系統(tǒng)加密方法,其特征在于:持有密鑰的用戶寫文件到物理區(qū)時(shí),內(nèi)核模塊先創(chuàng)建臨時(shí)加密區(qū),使用關(guān)聯(lián)的密鑰和算法加密文件信息,密文寫入物理頁(yè),寫操作完成后內(nèi)核銷毀臨時(shí)區(qū)。5.根據(jù)權(quán)利要求3所述的基于Linux的擴(kuò)展文件系統(tǒng)加密方法,其特征在于:持有密鑰的用戶訪問(wèn)文件名時(shí),內(nèi)核模塊命中綁定策略,使用關(guān)聯(lián)的密碼算法對(duì)磁盤文件名和索引域文件名解密;從物理區(qū)讀文件時(shí),讀回調(diào)使用關(guān)聯(lián)的密鑰和算法,提取物理頁(yè)上的密文解密,并返回明文信息至用戶層。6.根據(jù)權(quán)利要求2所述的基于Linux的擴(kuò)展文件系統(tǒng)加密方法,其特征在于:沒(méi)有密鑰的用戶進(jìn)行讀寫操作時(shí),內(nèi)核模塊不會(huì)命中任何已有策略,不能訪問(wèn)該文件內(nèi)容,僅返回加密后的文件名。
【專利摘要】本發(fā)明公開(kāi)了一種基于Linux的擴(kuò)展文件系統(tǒng)加密方法,加密設(shè)置工具在用戶態(tài)運(yùn)行,提供策略設(shè)置工具和密鑰管理工具;內(nèi)核模塊按照算法策略,在文件系統(tǒng)底層執(zhí)行加解密操作;所述加密設(shè)置工具運(yùn)行時(shí)與內(nèi)核模塊的key模塊建立臨時(shí)會(huì)話。與現(xiàn)有技術(shù)相比,本發(fā)明的積極效果是:直接與擴(kuò)展文件系統(tǒng)對(duì)接,加解密操作在Linux內(nèi)核層完成,加密過(guò)程完全對(duì)用戶態(tài)透明,用戶不關(guān)心加解密過(guò)程,操作過(guò)程與普通文件完全一致;“國(guó)密算法”(SM1\SM2\SM3\SM4)接口配置;文件名和文件內(nèi)容均進(jìn)行加密操作;密鑰存儲(chǔ)于內(nèi)核密鑰環(huán),非持有用戶不可見(jiàn)(包括root用戶);組件少、空間開(kāi)銷小、可移植性強(qiáng),通用或嵌入式系統(tǒng)均適用。
【IPC分類】G06F21/62
【公開(kāi)號(hào)】CN105373744
【申請(qǐng)?zhí)枴緾N201510724615
【發(fā)明人】李曦灝
【申請(qǐng)人】成都衛(wèi)士通信息產(chǎn)業(yè)股份有限公司
【公開(kāi)日】2016年3月2日
【申請(qǐng)日】2015年10月29日