張 帥 劉 勇 孔 堅 馮詞童 安錦程 白 鑫 高曉紅
1(奇安信科技集團(tuán)股份有限公司 北京 100020) 2(中國科學(xué)院信息工程研究所 北京 100093)
隨著計算機(jī)信息技術(shù)的普及和發(fā)展,U盤、移動硬盤等移動存儲設(shè)備的應(yīng)用越來越廣泛,由此帶來的數(shù)據(jù)泄露也經(jīng)常發(fā)生.為了防止移動存儲惡意泄露保密、敏感等數(shù)據(jù)事件的發(fā)生,各種對移動存儲設(shè)備的加密和權(quán)限控制技術(shù)層出不窮.主流的方式是對移動存儲的禁用、寫、讀等訪問操作進(jìn)行訪問權(quán)限控制,根據(jù)需要的意圖可配置策略,限制攜帶敏感重要數(shù)據(jù)的訪問權(quán)限和數(shù)據(jù)流向權(quán)限.目前移動存儲設(shè)備介質(zhì)訪問控制方面的研究主要針對數(shù)據(jù)流入與流出的方向和數(shù)據(jù)內(nèi)容本身的訪問權(quán)限控制,根據(jù)數(shù)據(jù)訪問者的角色賦予其對應(yīng)的訪問控制權(quán)限等.根據(jù)預(yù)定義的敏感關(guān)鍵詞庫[1]進(jìn)行匹配,匹配到則停止傳輸與訪問,該方法的匹配關(guān)鍵詞的內(nèi)容檢測算法會很大程度地影響移動存儲設(shè)備介質(zhì)的使用體驗和數(shù)據(jù)交換速度.基于用戶角色的訪問權(quán)限控制可以實現(xiàn)對訪問者的自身角色進(jìn)行多級的策略劃分,通常做法是用戶身份與其角色類型相關(guān)聯(lián),角色類型和落地具體訪問操作權(quán)限值相關(guān)聯(lián),這樣的方案設(shè)計會大大增加移動存儲系統(tǒng)管理建設(shè)和使用難度,同時也會大幅度增加系統(tǒng)的性能開銷.上述主流方案中,所有數(shù)據(jù)在存儲介質(zhì)設(shè)備中是明文存儲,因此存在數(shù)據(jù)存儲信息的安全性問題.鑒于此,移動存儲介質(zhì)的加密技術(shù)便成為另一個主流研究方向.目前移動存儲介質(zhì)的加密方式有2種實現(xiàn):軟件模擬加密和硬件介質(zhì)加密,軟加解密是將加密軟件程序內(nèi)置到存儲介質(zhì)中,將加解密程序存放在設(shè)備端.硬件介質(zhì)加密是指通過存儲介質(zhì)的控制芯片進(jìn)行加解密,實現(xiàn)實時加解密運輸,整個加解密過程在存儲介質(zhì)內(nèi)部完成,該方案的安全級別高,設(shè)計比較復(fù)雜,硬件成本比較高,而且加解密算法都比較單一.無論上述何種方案,主流的加密存儲介質(zhì)技術(shù)方案均無法使得一個加密移動存儲磁盤可以同時在Windows系統(tǒng)和Linux系統(tǒng)下跨平臺下兼容運行.
因此本文提出了一種基于跨平臺下解決移動存儲設(shè)備的加解密技術(shù)方案.該方案是將移動存儲設(shè)備集身份認(rèn)證與數(shù)據(jù)加解密于一體,存儲區(qū)域被劃分為多個功能區(qū)域[2],加密數(shù)據(jù)區(qū)域的磁盤只有經(jīng)過口令認(rèn)證才能被系統(tǒng)識別并掛載,數(shù)據(jù)的加解密均在主機(jī)端實現(xiàn)而且對用戶透明.本文首先針對1個磁盤進(jìn)行扇區(qū)區(qū)域功能劃分介紹,進(jìn)而介紹不同分區(qū)下的功能,然后重點引出加密磁盤跨平臺通用技術(shù);其次構(gòu)建分析移動存儲介質(zhì)下底層數(shù)據(jù)加密、解密模塊的技術(shù)原理,跟進(jìn)Windows系統(tǒng)和Linux系統(tǒng)的不同特點,分別構(gòu)建磁盤加密的不同系統(tǒng)模型;綜合基于上述技術(shù)原理和模塊,分別在Windows系統(tǒng)和Linux系統(tǒng)上實現(xiàn)了加密移動存儲系統(tǒng),并對同一移動存儲磁盤設(shè)備進(jìn)行了實驗技術(shù)方案驗證,最后對加密移動存儲的實現(xiàn)方案進(jìn)行了功能性測試和性能性指標(biāo)測試.
通用跨平臺的加密磁盤設(shè)計包括通用磁盤的扇區(qū)區(qū)域功能布局劃分、加密磁盤識別模塊和數(shù)據(jù)加解密模塊.U盤識別模塊主要功能是對加密U盤頭部信息進(jìn)行解析,如果加密U盤能夠通過認(rèn)證那么就允許掛載,這里稱為內(nèi)部系統(tǒng)識別.相對于內(nèi)部系統(tǒng)識別,外部系統(tǒng)識別指的就是當(dāng)加密U盤插入到非本系統(tǒng)時加密U盤是不會被識別的.數(shù)據(jù)加解密模塊的主要功能是在不需要用戶干預(yù)的情況下,自動完成數(shù)據(jù)的透明加解密.
加密磁盤的扇區(qū)劃分為若干個區(qū)域部分,如圖1所示:
各地應(yīng)依據(jù)水法和水污染防治法等法律法規(guī),根據(jù)不同的保護(hù)目標(biāo)、保護(hù)功能,同時考慮保護(hù)區(qū)的地理位置、地形地貌、地層巖性、水文地質(zhì)條件、供水量、開采方式和污染源的分布等情況,建立各自地區(qū)的地下水保護(hù)區(qū),確定相應(yīng)的地下水保護(hù)管理級別,并通過法律和行政手段加以確認(rèn)。在條件成熟時,應(yīng)在南水北調(diào)受水區(qū)內(nèi)統(tǒng)一劃定地下水保護(hù)區(qū),系統(tǒng)保護(hù)地下水水質(zhì)和水量。
圖1 加密磁盤扇區(qū)區(qū)域布局劃分
加密磁盤的扇區(qū)結(jié)構(gòu)布局劃分6個區(qū)域:第1是分區(qū)表,容量為1 MB,記錄磁盤的分區(qū)信息;第2是FAT分區(qū),容量為5 MB,這塊區(qū)域是被格式化的Windows FAT32文件系統(tǒng),存儲一個帶可執(zhí)行的Windows認(rèn)證程序,在Windows系統(tǒng)下接收用戶點擊輸入口令;第3是exFat分區(qū),存儲可執(zhí)行的Linux存儲認(rèn)證程序,在Linux系統(tǒng)下接收用戶點擊輸入認(rèn)證口令;第4是空閑區(qū)域,留作后續(xù)功能業(yè)務(wù)拓展;第5是價值數(shù)據(jù)信息存儲數(shù)據(jù)塊區(qū)域,主要用于存儲加密移動存儲設(shè)備的身份信息、權(quán)限信息、加密因子等加密算法信息;第6是核心大容量數(shù)據(jù)安全存儲數(shù)據(jù)區(qū)域,占據(jù)整個磁盤最大的99.9%以上的物理容量,該區(qū)域存儲加密過的用戶數(shù)據(jù),是基于磁盤扇區(qū)級的加密.在Windows系統(tǒng)下,加密移動磁盤插入主機(jī)后,系統(tǒng)自動掛載第2部分的FAT分區(qū),接收用戶密碼輸入,并進(jìn)行基本合法性輸入判斷,登錄程序獲取身份認(rèn)證存儲數(shù)據(jù)區(qū)域的信息進(jìn)行身份認(rèn)證比對校驗,正確比對成功之后掛載大容量數(shù)據(jù)磁盤數(shù)據(jù)塊,經(jīng)過上述核心步驟,Windows驅(qū)動程序可完成加密移動存儲系統(tǒng)對介質(zhì)設(shè)備的識別和加密數(shù)據(jù)區(qū)掛載訪問;在Linux系統(tǒng)上加密移動磁盤插入主機(jī)后,系統(tǒng)自動掛載第3部分的exFAT分區(qū),接收密碼輸入,并進(jìn)行基本的合法性校驗,程序獲取身份認(rèn)證存儲區(qū)域的身份信息,與輸入的密碼進(jìn)行認(rèn)證對比校驗,比對成功之后,Linux下的fuse程序?qū)ふ铱臻eloop設(shè)備,實現(xiàn)虛擬磁盤與物理設(shè)備關(guān)聯(lián),并對其掛載訪問,經(jīng)過上述步驟,可完成Linux下加密存儲設(shè)備介質(zhì)的系統(tǒng)識別和加密大容量數(shù)據(jù)區(qū)掛載訪問.
加密移動存儲介質(zhì)對比普通移動存儲介質(zhì),普通移動存儲介質(zhì)僅僅是一塊大容量數(shù)據(jù)區(qū),當(dāng)普通移動存儲介質(zhì)設(shè)備接入到主機(jī)系統(tǒng)上時,主機(jī)系統(tǒng)會根據(jù)系統(tǒng)的機(jī)制加載其數(shù)據(jù)存儲區(qū)并實現(xiàn)自動掛載,用戶的價值數(shù)據(jù)直接裸奔展示出來,存在數(shù)據(jù)泄露風(fēng)險[3].加密移動存儲介質(zhì)定義了其自身的數(shù)據(jù)存儲格式,只有接收了輸入密碼身份認(rèn)證信息并且正確校驗成功才會被識別并且訪問大容量價值數(shù)據(jù),保障了數(shù)據(jù)的安全性.
本文提出了基于通用跨平臺加密移動磁盤的方案,所謂通用跨平臺,即經(jīng)過軟件系統(tǒng)注冊之后的移動磁盤,在主流的系統(tǒng)下,即Windows和Linux系統(tǒng)上都可以完美的兼容使用,且口令和數(shù)據(jù)一致性是需要得到保證的,用戶無感知差異;因此需保證注冊區(qū)域扇區(qū)存儲的數(shù)據(jù)是通用的,該區(qū)域容量為2 KB,記錄存儲設(shè)備(唯一標(biāo)識ID、單位、用戶、時間、初始密碼、密鑰數(shù)據(jù)key、序列號、PID、VID、權(quán)限、特殊標(biāo)志位)等信息;具體設(shè)計結(jié)構(gòu)如圖2所示.
加密算法采用的是基于SM4優(yōu)化的加密算法,其特點是對稱加解密[4],對于明文和密碼長度一致;采用1個扇區(qū)大小(512 B)對齊的方式,使用注冊信息區(qū)域的密鑰與口令計算的值,對磁盤扇區(qū)數(shù)據(jù)塊進(jìn)行512 B的整數(shù)倍加密與解密計算,圖3和圖4分別為加密數(shù)據(jù)塊大小和對稱加密算法原理.
圖2 通用數(shù)據(jù)結(jié)構(gòu)定義
圖3 扇區(qū)大小整數(shù)倍加解密
圖4 SM4對稱數(shù)據(jù)加密算法
為了使注冊處理后的移動存儲能夠同時兼容Windows和Linux系統(tǒng),即加密存儲區(qū)域的磁盤數(shù)據(jù)塊能夠在解密之后被系統(tǒng)識別,并且可以文件系統(tǒng)的方式對磁盤內(nèi)的數(shù)據(jù)進(jìn)行實時讀寫和管理;在充分研究Windows和Linux系統(tǒng)底層機(jī)制上,利用系統(tǒng)固有的機(jī)制;采用一種基于NTFS文件系統(tǒng)的自定義加密格式作為移動磁盤的加密數(shù)據(jù)區(qū),對打開,SEEK,讀取,寫入等訪問操作移動存儲扇區(qū)數(shù)據(jù)進(jìn)行HOOK攔截,將邏輯訪問地址計算轉(zhuǎn)化為實際偏移地址.
在Windows系統(tǒng)[5]上,上層對加密磁盤區(qū)域的數(shù)據(jù)塊進(jìn)行NTFS文件系統(tǒng)格式化和讀寫訪問,通過磁盤過濾驅(qū)動技術(shù)可以攔截所有對該磁盤操作的IRP操作請求,驅(qū)動在準(zhǔn)確計算完偏移之后,如果收到寫操作需要對數(shù)據(jù)進(jìn)行加密之后再寫入磁盤扇區(qū),如果收到是讀操作需要先讀取對應(yīng)扇區(qū)的數(shù)據(jù),按照要求進(jìn)行解密操作,將解密之后的數(shù)據(jù)返回給上層業(yè)務(wù).
在Linux系統(tǒng)上,Linux內(nèi)核fuse技術(shù)支持統(tǒng)一接口的文件系統(tǒng)的訪問,如圖5所示.
基于Linux[6]原生的ntfs-3g文件解析系統(tǒng)進(jìn)行改造優(yōu)化,重寫mount/open/read/write/seek等系列函數(shù),對加密磁盤區(qū)域的掛載、打開、讀寫等訪問進(jìn)行偏移計算,如圖6所示.
圖5 Linux虛擬盤框架技術(shù)圖
圖6 一致的數(shù)據(jù)處理流圖
從圖5和圖6可以看出[7],任何對加密區(qū)域的設(shè)備塊訪問都會被攔截,因此當(dāng)進(jìn)行寫磁盤數(shù)據(jù)塊時需要按照注冊區(qū)域通用的口令和密鑰以及算法,對數(shù)據(jù)塊進(jìn)行對稱加密再寫入磁盤;當(dāng)進(jìn)行讀磁盤數(shù)據(jù)塊時需要先讀取對應(yīng)的磁盤數(shù)據(jù)塊,再進(jìn)行解密,將解密之后的數(shù)據(jù)返回給應(yīng)用層,創(chuàng)新性地通過這樣的文件系統(tǒng)設(shè)計,即完成了在Windows/Linux系統(tǒng)下的體驗和數(shù)據(jù)一致性使用.
從磁盤扇區(qū)劃分布局中能看出加密的磁盤數(shù)據(jù)區(qū)域是磁盤物理起始地址+分區(qū)表大小+FAT分區(qū)大小+exFat分區(qū)大小+空閑分區(qū)大小+注冊信息區(qū)域大小,該計算所得結(jié)果就是我們稱為加密磁盤的偏移大小.
由上我們也得出了如下計算公式:
實際的訪問物理地址=邏輯訪問地址+加密磁盤的偏移大小(如圖7所示).
圖7 偏移計算
加密U盤的實現(xiàn)包括3部分:加密U盤用戶信息區(qū)的創(chuàng)建;虛擬磁盤的創(chuàng)建;加密U盤的管理.
基于第2節(jié)的理論研究,在Linux系統(tǒng)下本文進(jìn)行了方案設(shè)計和技術(shù)實現(xiàn).
整體設(shè)計圖如圖8所示.
在Linux系統(tǒng)下,首先獲取磁盤設(shè)備的設(shè)備路徑(記為/dev/sda)和磁盤設(shè)備的序列號、pid、vid等重要信息;使用分區(qū)命令對該磁盤扇區(qū)進(jìn)行重新分區(qū)整理,需要特別注意的是這里會對磁盤原數(shù)據(jù)造成破壞,需提前對重要數(shù)據(jù)作好備份,命令為parted -s /dev/sda mklabel msdos;再對磁盤按照第2節(jié)的理論進(jìn)行分區(qū)劃分[8],這里注意需要從整個磁盤的首地址進(jìn)行,并且指定分區(qū)的起始、終止的扇區(qū)位置,命令如下:parted -s /dev/sda mkpart primary fat16 2048s 12287s和parted -s /dev/sda mkpart primary 12288s 28671s這樣把移動磁盤按照第2節(jié)理論分出了5 MB的分區(qū)和10 MB的分區(qū).
圖8 加密移動磁盤設(shè)計結(jié)構(gòu)
對如上分區(qū)進(jìn)行文件系統(tǒng)格式化[9],只有格式化之后的分區(qū)才可以被用戶訪問存儲文件,命令如下:mkfs.fat -n QWIN -F32 /dev/sda1與mkfs.ext4 -F -L QLINUX -b 2048/dev/sda2 -m 5.上述命令執(zhí)行完成后,這2個分區(qū)已經(jīng)可以用來存放文件,將在Windows下設(shè)計實現(xiàn)的登錄認(rèn)證程序storeLoginWin.exe復(fù)制到第1個分區(qū)QWIN里,這樣在Windows系統(tǒng)下,用戶可以通過該程序輸入口令將加密數(shù)據(jù)盤掛載起來;將Linnux下的登錄認(rèn)證程序storeLoginLinux ELF文件復(fù)制到另外的分區(qū)QLINUX里,這樣用戶在Linux系統(tǒng)下可以通過該程序輸入口令將加密數(shù)據(jù)盤掛載起來.
基于fuse的ntfs-3g文件系統(tǒng)攔截重寫open函數(shù)、read函數(shù)、write函數(shù)[10],對要操作的數(shù)據(jù)塊的位置均加固定偏移大小轉(zhuǎn)化為真實的物理地址,再進(jìn)行運算操作;需要注意的是加解密算法是按照512 B一個扇區(qū)的整數(shù)倍進(jìn)行運算的,因此在進(jìn)行寫磁盤時,如果偏移不是512 B整數(shù)倍時進(jìn)行對齊矯正;矯正方法是通過讀取臨近當(dāng)前偏移距離最近的512 B對齊的磁盤偏移位置數(shù)據(jù),長度為包含本次要寫入的最小的512 B倍數(shù),按照數(shù)據(jù)對齊的方式進(jìn)行數(shù)據(jù)復(fù)制,一次性全部加密寫入;在進(jìn)行讀磁盤時,如果偏移或者長度不是512 B則對齊矯正;矯正方法是通過讀取臨近當(dāng)前偏移距離最近的512 B對齊的磁盤偏移位置數(shù)據(jù),長度為包含本次要讀取的最小的512 B倍數(shù),按照數(shù)據(jù)對齊的方式進(jìn)行數(shù)據(jù)復(fù)制,返回需要讀取的數(shù)據(jù).
在設(shè)備掛載時,由于/dev/sda1與/dev/sda1已經(jīng)掛載,mount如果使用設(shè)備/dev/sda路徑掛載,系統(tǒng)調(diào)用會返回設(shè)備占用無法掛載,為此,巧妙地采用了虛擬空閑loop設(shè)備關(guān)聯(lián)綁定:先查詢當(dāng)前系統(tǒng)的空閑loop設(shè)備,獲取后將空閑的loop設(shè)備與真實的物理設(shè)備路徑./dev/sda進(jìn)行設(shè)備關(guān)聯(lián),這樣在掛載mount執(zhí)行時,以/dev/loop設(shè)備為參數(shù)進(jìn)行掛載訪問[11],根據(jù)讀寫不同操作,加密移動存儲系統(tǒng)會根據(jù)512 B的扇區(qū)計算單位進(jìn)行加密與解密處理.
在Linux下注冊的移動存儲磁盤接入到Windows系統(tǒng)后,只會顯示第1個分區(qū)啟動區(qū),啟動區(qū)存放storeLogonWin.exe程序,打開storeLogonWin.exe后,輸入密碼,驗證通過后,掛載加密數(shù)據(jù)區(qū),加密數(shù)據(jù)區(qū)可以作為普通U盤使用.
為了使移動存儲加密之后可以跨平臺實現(xiàn),因此注冊區(qū)域的信息必須保證是一致公用的,使用該區(qū)域可以獲取到存儲的用戶身份信息、標(biāo)志信息、權(quán)限信息、關(guān)鍵的密鑰信息等,在Windows下使用扇區(qū)讀取API接口,讀取該區(qū)域的數(shù)據(jù),進(jìn)行數(shù)據(jù)清洗;口令認(rèn)證成功后,當(dāng)用戶態(tài)應(yīng)用程序?qū)υ摯疟P數(shù)據(jù)塊進(jìn)行讀寫訪問時,使用獲取的密鑰對加密數(shù)據(jù)區(qū)域進(jìn)行動態(tài)加解密;這樣就保證了在加密數(shù)據(jù)區(qū)域與Linux下是一致的.
對比Linux下的方案設(shè)計實現(xiàn),Windows同理,如果是重新注冊也需要對磁盤進(jìn)行相同的分區(qū)和格式化,區(qū)別在于所使用的命令和函數(shù)不同,在Windows下需要使用對應(yīng)的API和命令進(jìn)行,對應(yīng)的函數(shù)可以在MSDN中查到[12],比如diskpart等;
在CreateFile的函數(shù)原型中,由于訪問的是事實上已經(jīng)存在的磁盤扇區(qū).通過API函數(shù)SetFilePointer實現(xiàn)文件操作指針尋址移動,定位信息認(rèn)證數(shù)據(jù)存儲區(qū)域的具體的存儲扇區(qū),通過ReadFile與WriteFile函數(shù)對該區(qū)域的數(shù)據(jù)進(jìn)行相應(yīng)的讀寫訪問操作,其操作與普通的文件讀寫調(diào)用方法一致.經(jīng)過上述步驟可以實現(xiàn)完成數(shù)據(jù)訪問的操作,調(diào)用API函數(shù)CloseHandle關(guān)閉文件操作句柄,進(jìn)行釋放資源,綜上可以實現(xiàn)完整的Windows下磁盤扇區(qū)數(shù)據(jù)讀寫訪問操作.磁盤過濾驅(qū)動對打開、讀寫IRP請求的攔截,圖9為Windows虛擬磁盤驅(qū)動設(shè)備棧結(jié)構(gòu).
圖9 Windows虛擬磁盤驅(qū)動設(shè)備棧結(jié)構(gòu)
在磁盤文件過濾驅(qū)動中,磁盤上的文件打開和讀寫行為,都會在磁盤卷過濾驅(qū)動中,對落地到磁盤驅(qū)動上的IRP_MJ_WRITE,IRP_MJ_READ讀寫請求進(jìn)行攔截,并從該請求中獲得當(dāng)前邏輯地址和扇區(qū)數(shù)據(jù)內(nèi)容以及數(shù)據(jù)內(nèi)容長度大??;分別根據(jù)讀與寫,使用提前獲得注冊信息的DataKey對數(shù)據(jù)進(jìn)行加解密運算,如圖10所示.
圖10 加解密運算過程
該設(shè)計方案對任何寫入該移動存儲磁盤區(qū)域的數(shù)據(jù)都是進(jìn)行對稱加密的[13],且算法保持與Linux一致,屬于扇區(qū)級別的加密,破解難度非常大,因此數(shù)據(jù)安全性很高.另外需要說明的是,本文選擇以512 B為單位的整數(shù)倍進(jìn)行加解密處理,是因為一般情況下,Windows系統(tǒng)對磁盤的操作都是以扇區(qū)為單位進(jìn)行的,即512 B的整數(shù)倍,這樣保持一致,對于提高大文件的復(fù)制,讀寫速度可以達(dá)到最優(yōu).
磁盤的卸載或者強(qiáng)力拔除:為了保持磁盤數(shù)據(jù)的一致性和安全性,本文設(shè)計了移動磁盤的安全退出機(jī)制,提高了主動退出磁盤卸載的機(jī)制[14],可以安全卸載加密磁盤的分區(qū),當(dāng)發(fā)生強(qiáng)力插拔時,驅(qū)動和應(yīng)用層程序也有對應(yīng)的回收機(jī)制,將正在讀寫的請求進(jìn)行中斷廢棄,文件操作句柄進(jìn)行安全關(guān)閉,避免造成內(nèi)存泄露和異常發(fā)生.
本文根據(jù)上面的理論研究和方案設(shè)計,以一個U盤為移動存儲介質(zhì)設(shè)備,在Linux下進(jìn)行加密注冊制作,登錄使用[15];同一U盤在Windows下進(jìn)行登錄使用,2個系統(tǒng)下看到的加密U盤區(qū)域內(nèi)的數(shù)據(jù)是一致的;在功能上進(jìn)行了實現(xiàn)之外,還進(jìn)行了數(shù)據(jù)復(fù)制讀寫、性能對比測試分析、驗證加密之后的U盤使用體驗的影響.
主機(jī):Pentium?Dual-Core,2 GB內(nèi)存;
Linux操作系統(tǒng):Kylin3.2.1系統(tǒng)Linux內(nèi)核版本:2.6.32;
Windows:Win7操作系統(tǒng);
U盤規(guī)格:Kingston(DT101 G2) 8 GB.
普通U盤與加密之后的U盤性能對比如圖11所示.
從圖11可以看出,相同的移動存儲U盤讀的速度在加密之后降低,寫的速度稍有提高.
圖11 性能對比
本文針對目前市場上加密移動存儲磁盤的不足,提出一種基于通用技術(shù)的移動存儲軟件加密技術(shù)方案,在技術(shù)原理和理論上進(jìn)行了研究和可行性分析,在通用的Linux系統(tǒng)和Windows系統(tǒng)上以一個移動存儲U盤為例進(jìn)行了加密注冊,并在2類架構(gòu)完全不同的系統(tǒng)上進(jìn)行了驗證,實現(xiàn)了基于身份密碼認(rèn)證的數(shù)據(jù)加密與解密的完整移動存儲磁盤介質(zhì)技術(shù)方案.該方案采用國密SM4的加密對稱算法,提高了非認(rèn)證用戶對加密移動存儲介質(zhì)的數(shù)據(jù)竊取,大幅度提高了獲取機(jī)密重要數(shù)據(jù)的難度,使用軟件的方式加強(qiáng)了Linux系統(tǒng)和Windows跨平臺下移動存儲介質(zhì)設(shè)備盤攜帶數(shù)據(jù)的安全性,由于技術(shù)方案的通用性,使得一個加密處理之后的移動存儲介質(zhì)可以在任何系統(tǒng)上使用,為用戶提供了便利性[16],降低了成本,該方案極具創(chuàng)新和通用性;實驗結(jié)果表明,經(jīng)過通用加密移動存儲技術(shù)處理之后的物理介質(zhì)操作方便,加解密算法安全可靠,基本上性能不受影響,具有較高的可靠性和有效性.