本發(fā)明涉及固態(tài)硬盤存儲可信性技術(shù)領(lǐng)域,具體涉及一種提高嵌入式系統(tǒng)固態(tài)硬盤存儲可信性的方法及系統(tǒng)。
背景技術(shù):
近年來,基于閃存的存儲器(例如固態(tài)硬盤,SSD)逐漸取代了傳統(tǒng)的基于磁的存儲器(例如硬盤驅(qū)動器,HDD),由于其快的I/O性能、耐沖擊性強(qiáng)、小的形式因素、重量輕等優(yōu)點(diǎn),固態(tài)硬盤被廣泛應(yīng)用到到各種移動設(shè)備,例如工作站和服務(wù)器中。然而,固態(tài)硬盤中使用的閃存技術(shù)使其數(shù)據(jù)組織與硬盤驅(qū)動器完全不同,為了保持兼容性,使主機(jī)系統(tǒng)訪問閃存設(shè)備時和訪問硬盤驅(qū)動器時一樣,通常采用閃存轉(zhuǎn)換層(FTL)將主機(jī)請求所使用的邏輯地址翻譯成固態(tài)硬盤使用的物理地址。
但是閃存轉(zhuǎn)換層是固態(tài)硬盤控制器的核心部分,對主機(jī)系統(tǒng)不可見。同時,閃存轉(zhuǎn)換層是制造廠商的專利,并不對外公開。閃存轉(zhuǎn)換層的這種不可見性對上層主機(jī)系統(tǒng)的可信性造成了嚴(yán)重的威脅。因?yàn)榭赡艽嬖趷阂鈱?shí)現(xiàn)閃存轉(zhuǎn)換層功能的情況。惡意實(shí)現(xiàn)閃存轉(zhuǎn)換層造成的安全威脅可能包括:數(shù)據(jù)丟失、數(shù)據(jù)篡改、使用壽命降低、性能降低和未經(jīng)授權(quán)的數(shù)據(jù)拷貝。
雖然一種異構(gòu)冗余架構(gòu)被提出來解決這些威脅,但是由于嵌入式系統(tǒng)本身存在成本和空間等嚴(yán)格的限制,所以無法負(fù)擔(dān)異構(gòu)冗余架構(gòu)這樣的解決方案。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明旨在至少解決現(xiàn)有技術(shù)中存在的技術(shù)問題,特別創(chuàng)新地提出了一種基于權(quán)威主體的終端設(shè)備的逆向認(rèn)證方法及系統(tǒng)。
為了實(shí)現(xiàn)本發(fā)明的上述目的,根據(jù)本發(fā)明的第一個方面,本發(fā)明提供了一種提高嵌入式系統(tǒng)固態(tài)硬盤存儲可信性的方法,其包括如下步驟:
S1,獲取主機(jī)發(fā)出的寫請求,提取需要復(fù)制的寫請求;
S2,將需要復(fù)制的寫請求的明文A分為m個單元A0、A1、……、Am-1,所述m為正整數(shù);
S3,對于單元A0,利用初始向量IV和單元A0進(jìn)行異或操作,將異或操作的結(jié)果利用雙射函數(shù)F加密,得到復(fù)制后的單元A0’,對于單元Ap,將單元Ap-1’作為初始向量,利用初始向量和單元Ap進(jìn)行異或操作,將異或操作的結(jié)果利用雙射函數(shù)F加密,處理得到復(fù)制后的單元Ap’,所述p為1至(m-1)之間的正整數(shù),得到寫請求復(fù)制文件A’,將寫請求的明文A和復(fù)制后的文件A’均發(fā)送給SSD;
S4,獲取主機(jī)發(fā)出的讀請求,提取其對應(yīng)數(shù)據(jù)在寫入時被復(fù)制、加密過的讀請求;
S5,從SSD中獲取寫請求的明文A和復(fù)制后的文件A’;
S6,將復(fù)制后的文件A’中的m個單元A0’、A1’、……、Am-1’分別利用初始向量和雙射函數(shù)的逆函數(shù)F-1解密,對于單元A0’,利用雙射函數(shù)的逆函數(shù)F-1進(jìn)行解密,用解密得到的數(shù)據(jù)和初始向量IV進(jìn)行異或運(yùn)算得到A0”;對于Ap’,利用雙射函數(shù)的逆函數(shù)F-1進(jìn)行解密,將Ap-1’作為初始向量,用解密得到的數(shù)據(jù)和初始向量進(jìn)行異或運(yùn)算得到Ap”,所述p為1至(m-1)之間的正整數(shù),將寫請求的明文A與復(fù)原的文件A”進(jìn)行對比,如果一致,則說明SSD可信,否則SSD不可信。
本發(fā)明的提高嵌入式系統(tǒng)固態(tài)硬盤存儲可信性的方法,提高了應(yīng)用SSD的嵌入式系統(tǒng)的可信性,通過選擇性兩倍或者三倍復(fù)制,降低了系統(tǒng)負(fù)擔(dān),提高了系統(tǒng)的效率。
在本發(fā)明的一種優(yōu)選實(shí)施方式中,對重要且重啟會帶來重大損失的寫請求進(jìn)行三倍復(fù)制;對重要但是能夠從遠(yuǎn)程檢查點(diǎn)服務(wù)器中恢復(fù)的寫請求采用雙倍復(fù)制。
通過有選擇的兩倍或者三倍復(fù)制,降低了嵌入式系統(tǒng)的負(fù)擔(dān)。
在本發(fā)明的另一種優(yōu)選實(shí)施方式中,當(dāng)進(jìn)行三倍復(fù)制時,兩個復(fù)制版本采用不同的雙射函數(shù)進(jìn)行處理。保證了三倍復(fù)制時,兩個復(fù)制版本的不同,提高了檢測的準(zhǔn)確性。
在本發(fā)明的另一種優(yōu)選實(shí)施方式中,其特征在于,所述步驟S2中還包括明文填充加密步驟,具體為:
S41,填充明文:在明文尾部添加128-bit的正整型數(shù)字length,用于表明明文的實(shí)際長度,然后在明文和正整型數(shù)字length之間填充k-bit長的數(shù)據(jù)使得最終的明文長度為16比特的整數(shù)倍,填充數(shù)據(jù)以1開始,后面接(k-1)-bit的0;
S42,將填充后的明文以16bit為單位劃分為多個單元,然后進(jìn)行加密。
通過填充和加密,保證數(shù)據(jù)結(jié)構(gòu)一致,保證后續(xù)算法的順利進(jìn)行。
為了實(shí)現(xiàn)本發(fā)明的上述目的,根據(jù)本發(fā)明的第一個方面,本發(fā)明提供了一種提高嵌入式系統(tǒng)固態(tài)硬盤存儲可信性的系統(tǒng),其包括多個嵌入式操作系統(tǒng),所有嵌入式操作系統(tǒng)均與遠(yuǎn)程檢查點(diǎn)服務(wù)器相連,每個嵌入式操作系統(tǒng)包括主機(jī)和SSD,所述主機(jī)利用本發(fā)明的方法驗(yàn)證SSD的可信性;嵌入式操作系統(tǒng)將主機(jī)發(fā)出的請求傳輸給遠(yuǎn)程檢查點(diǎn)服務(wù)器,在遠(yuǎn)程檢查點(diǎn)服務(wù)器內(nèi)存儲。
本發(fā)明提高了應(yīng)用SSD的嵌入式系統(tǒng)的可信性,通過選擇性兩倍或者三倍復(fù)制,降低了系統(tǒng)負(fù)擔(dān),提高了系統(tǒng)的效率。
本發(fā)明的附加方面和優(yōu)點(diǎn)將在下面的描述中部分給出,部分將從下面的描述中變得明顯,或通過本發(fā)明的實(shí)踐了解到。
附圖說明
本發(fā)明的上述和/或附加的方面和優(yōu)點(diǎn)從結(jié)合下面附圖對實(shí)施例的描述中將變得明顯和容易理解,其中:
圖1是本發(fā)明提高嵌入式系統(tǒng)固態(tài)硬盤存儲可信性的方法的流程圖;
圖2為利用雙射函數(shù)F對明文進(jìn)行復(fù)制的過程圖;
圖3為利用雙射函數(shù)的逆函數(shù)F-1還原明文的過程圖。
具體實(shí)施方式
下面詳細(xì)描述本發(fā)明的實(shí)施例,所述實(shí)施例的示例在附圖中示出,其中自始至終相同或類似的標(biāo)號表示相同或類似的元件或具有相同或類似功能的元件。下面通過參考附圖描述的實(shí)施例是示例性的,僅用于解釋本發(fā)明,而不能理解為對本發(fā)明的限制。
在本發(fā)明的描述中,除非另有規(guī)定和限定,需要說明的是,術(shù)語“安裝”、“相連”、“連接”應(yīng)做廣義理解,例如,可以是機(jī)械連接或電連接,也可以是兩個元件內(nèi)部的連通,可以是直接相連,也可以通過中間媒介間接相連,對于本領(lǐng)域的普通技術(shù)人員而言,可以根據(jù)具體情況理解上述術(shù)語的具體含義。
本發(fā)明提供了一種基于權(quán)威主體的終端設(shè)備的逆向認(rèn)證方法,如圖1所示,其包括如下步驟:
S1,獲取主機(jī)發(fā)出的寫請求,提取需要復(fù)制的寫請求。在本實(shí)施方式中,對重要且重啟會帶來重大損失的寫請求進(jìn)行三倍復(fù)制;對重要但是能夠從遠(yuǎn)程檢查點(diǎn)服務(wù)器中恢復(fù)的寫請求采用雙倍復(fù)制。在本實(shí)施方式中,重要性的劃分在此不做硬性規(guī)定,可以由上層應(yīng)用來指定。
S2,將需要復(fù)制的寫請求的明文A分為m個單元A0、A1、……、Am-1,m為正整數(shù)。在本實(shí)施方式中,步驟S2中還包括明文填充加密步驟,具體為:
填充明文:在明文尾部添加128-bit的正整型數(shù)字length,用于表明明文的實(shí)際長度,然后在明文和正整型數(shù)字length之間填充k-bit長的數(shù)據(jù)使得最終的明文長度為16比特的整數(shù)倍,填充數(shù)據(jù)以1開始,后面接(k-1)-bit的0;
將填充后的明文以16bit為單位劃分為多個單元,然后進(jìn)行加密。
S3,如圖2所示,對于單元A0,利用初始向量IV和單元A0進(jìn)行異或操作,將異或操作的結(jié)果利用雙射函數(shù)F加密,得到復(fù)制后的單元A0’,對于單元Ap,將單元Ap-1’作為初始向量,利用初始向量和單元Ap進(jìn)行異或操作,將異或操作的結(jié)果利用雙射函數(shù)F加密,處理得到復(fù)制后的單元Ap’,所述p為1至(m-1)之間的正整數(shù),得到寫請求復(fù)制文件A’,將寫請求的明文A和復(fù)制后的文件A’均發(fā)送給SSD。
S4,獲取主機(jī)發(fā)出的讀請求,提取其對應(yīng)數(shù)據(jù)在寫入時被復(fù)制、加密過的讀請求。
S5,從SSD中獲取寫請求的明文A和復(fù)制后的文件A’。
S6,如圖3所示,將復(fù)制后的文件A’中的m個單元A0’、A1’、……、Am-1’分別利用初始向量和雙射函數(shù)的逆函數(shù)F-1解密,對于單元A0’,利用雙射函數(shù)的逆函數(shù)F-1進(jìn)行解密,用解密得到的數(shù)據(jù)和初始向量IV進(jìn)行異或運(yùn)算得到A0”;對于Ap’,利用雙射函數(shù)的逆函數(shù)F-1進(jìn)行解密,將Ap-1’作為初始向量,用解密得到的數(shù)據(jù)和初始向量進(jìn)行異或運(yùn)算得到Ap”,所述p為1至(m-1)之間的正整數(shù),將寫請求的明文A與復(fù)原的文件A”進(jìn)行對比,如果一致,則說明SSD可信,否則SSD不可信。
在本實(shí)施方式中,當(dāng)進(jìn)行三倍復(fù)制時,兩個復(fù)制版本采用不同的雙射函數(shù)進(jìn)行處理。保證了三倍復(fù)制時,兩個復(fù)制版本的不同,提高了檢測的準(zhǔn)確性。
在本發(fā)明的一個優(yōu)選實(shí)施方式中,雙射函數(shù)采用一對數(shù)組A{0,1…n},A’{0,1…n},其中,n的大小為2^16-1,即65535。數(shù)組中的元素A[i]=x(i>=0且i<n),x是[0,n]之間隨機(jī)生成的一個整數(shù),并且A[0],A[1]…A[n-1]各不相同。則A’[x]=i。
填充明文:在明文尾部添加128-bit的正整型數(shù)字length,以表明明文的實(shí)際長度(以bit為單位),然后在明文和length之間填充k-bit長的數(shù)據(jù)使得最終的明文長度為16比特的整數(shù)倍,填充數(shù)據(jù)以1開始,后面接(k-1)-bit的0。將明文以16bit即2byte為單位劃分為多個單元,然后加密,例如以CBC加密模式進(jìn)行加密。
在本實(shí)施方式中,以三倍復(fù)制為例說明,兩倍復(fù)制只采用一對雙射函數(shù)即可。三倍復(fù)制時,兩對雙射函數(shù)(B,B’),(C,C’),如下所示。將雙射函數(shù)簡化為長度為16的數(shù)組,則16-bit的數(shù)據(jù)單元簡化為4-bit。
B={3,0,8,6,1,5,11,12,10,14,15,13,4,9,2,7}
B’={1,4,14,0,12,5,3,0,2,13,8,6,7,11,9,10}
C={15,2,14,3,10,11,1,13,8,12,9,0,4,5,7,6}
C’={11,6,1,3,12,13,0,14,8,10,4,5,9,7,2,0}
如果明文M為:001001010111,以4-bit為單位劃分后用十進(jìn)制表示為2,5,7。
復(fù)制2份明文M1=001001010111,M2=001001010111。
如圖2所示,初始向量IV1取為:0101,十進(jìn)制為5。IV2為:1110,十進(jìn)制為14。
加密M1過程:
明文填充后為:001001010111 1000 1100,以4-bit為單位劃分后用十進(jìn)制表示為2,5,7,8,12。
加密2:2與IV1異或后為0111,十進(jìn)制為7,7通過B變換為B[7]=12;IV1=12。
加密5:5與IV1異或后為1001,十進(jìn)制為9,9通過B變換為B[9]=14;IV1=14。
加密7:7與IV1異或后為1001,十進(jìn)制為9,9通過B變換為B[9]=14;IV1=14。
加密8:8與IV1異或后為0110,十進(jìn)制為6,6通過B變換為B[6]=11;IV1=11。
加密12:12與IV1異或后為0111,十進(jìn)制為7,7通過B變換為B[7]=12;IV1=12。
即加密后的密文為12,14,14,11,12。二進(jìn)制表示為11001110111010111100。
加密M2過程:
明文填充后為:001001010111 1000 1100,以4-bit為單位劃分后用十進(jìn)制表示為2,5,7,8,12。
加密2:2與IV2異或后為1100,十進(jìn)制為12,12通過C變換為C[12]=4;IV2=4。
加密5:5與IV2異或后為0001,十進(jìn)制為1,1通過C變換為C[1]=2;IV2=2。
加密7:7與IV2異或后為0101,十進(jìn)制為5,5通過C變換為C[5]=11;IV2=11。
加密8:8與IV2異或后為0011,十進(jìn)制為3,3通過C變換為C[3]=3;IV2=3。
加密12:12與IV2異或后為1111,十進(jìn)制為15,15通過C變換為C[15]=6;IV2=6。
即加密后的密文為4,2,11,3,6。二進(jìn)制表示為01000010101100110110。
以解密M1加密后的密文為12,14,14,11,12為例進(jìn)行說明。二進(jìn)制表示為1100 1110 1110 1011 1100。
解密12:12通過B’變換為B’[12]=7,7與IV1異或后為0010,二進(jìn)制為2。
解密第一個14:14通過B’變換為B’[14]=9,9與IV1’(12)異或后為0101,二進(jìn)制為5。
解密第二個14:14通過B’變換為B’[14]=9,9與IV1’(14)異或后為0111,二進(jìn)制為7。
解密11:11通過B’變換為B’[11]=6,6與IV1’(14)異或后為1000,二進(jìn)制為8。
解密12:12通過B’變換為B’[12]=7,7與IV1’(11)異或后為1100,二進(jìn)制為12。由此得到十進(jìn)制數(shù)為2,5,7,8,12。進(jìn)行解密,取出從左開始的12bit的數(shù)據(jù),即得到明文為2,5,7,二進(jìn)制數(shù)為001001010111。
在本實(shí)施方式中(只以解密001001010111為例),如果得到的數(shù)據(jù)為001001010111,則說明SSD可信,否則,SSD不可信。
本發(fā)明的提高嵌入式系統(tǒng)固態(tài)硬盤存儲可信性的方法,提高了應(yīng)用SSD的嵌入式系統(tǒng)的可信性,通過選擇性兩倍或者三倍復(fù)制,降低了系統(tǒng)負(fù)擔(dān),提高了系統(tǒng)的效率。
為了實(shí)現(xiàn)本發(fā)明的上述目的,根據(jù)本發(fā)明的第一個方面,本發(fā)明提供了一種提高嵌入式系統(tǒng)固態(tài)硬盤存儲可信性的系統(tǒng),其包括多個嵌入式操作系統(tǒng),所有嵌入式操作系統(tǒng)均與遠(yuǎn)程檢查點(diǎn)服務(wù)器相連,每個嵌入式操作系統(tǒng)包括主機(jī)和SSD,所述主機(jī)利用本發(fā)明的方法驗(yàn)證SSD的可信性;嵌入式操作系統(tǒng)將主機(jī)發(fā)出的請求傳輸給遠(yuǎn)程檢查點(diǎn)服務(wù)器,在遠(yuǎn)程檢查點(diǎn)服務(wù)器內(nèi)存儲。
本發(fā)明提高了應(yīng)用SSD的嵌入式系統(tǒng)的可信性,通過選擇性兩倍或者三倍復(fù)制,降低了系統(tǒng)負(fù)擔(dān),提高了系統(tǒng)的效率。
在本說明書的描述中,參考術(shù)語“一個實(shí)施例”、“一些實(shí)施例”、“示例”、“具體示例”、或“一些示例”等的描述意指結(jié)合該實(shí)施例或示例描述的具體特征、結(jié)構(gòu)、材料或者特點(diǎn)包含于本發(fā)明的至少一個實(shí)施例或示例中。在本說明書中,對上述術(shù)語的示意性表述不一定指的是相同的實(shí)施例或示例。而且,描述的具體特征、結(jié)構(gòu)、材料或者特點(diǎn)可以在任何的一個或多個實(shí)施例或示例中以合適的方式結(jié)合。
盡管已經(jīng)示出和描述了本發(fā)明的實(shí)施例,本領(lǐng)域的普通技術(shù)人員可以理解:在不脫離本發(fā)明的原理和宗旨的情況下可以對這些實(shí)施例進(jìn)行多種變化、修改、替換和變型,本發(fā)明的范圍由權(quán)利要求及其等同物限定。