數(shù)據(jù)安全互聯(lián)系統(tǒng)及數(shù)據(jù)安全互聯(lián)系統(tǒng)建立方法
【專利摘要】本發(fā)明提供一種數(shù)據(jù)安全互聯(lián)系統(tǒng)的建立方法,包括:步驟1、計(jì)算設(shè)備向注冊服務(wù)器發(fā)送注冊請求;步驟2、注冊服務(wù)器向計(jì)算設(shè)備發(fā)送詢問消息,詢問該計(jì)算設(shè)備是否同意通過安全存儲設(shè)備接管該計(jì)算設(shè)備所操作和訪問的數(shù)據(jù),或者詢問該計(jì)算設(shè)備是否同意部署數(shù)據(jù)安全存儲方法和數(shù)據(jù)安全讀取方法;步驟3、計(jì)算設(shè)備向注冊服務(wù)器發(fā)送應(yīng)答消息;和步驟4、注冊服務(wù)器檢查所述應(yīng)答消息;如果該應(yīng)答為不同意接管,注冊服務(wù)器拒絕該計(jì)算設(shè)備的注冊請求,結(jié)束建立方法;如果該應(yīng)答為同意接管,注冊服務(wù)器在計(jì)算設(shè)備上部署數(shù)據(jù)安全存儲方法和讀取方法,注冊服務(wù)器為該計(jì)算設(shè)備部署安全存儲設(shè)備,并且將該計(jì)算設(shè)備添加在注冊服務(wù)器上的注冊列表中。
【專利說明】數(shù)據(jù)安全互聯(lián)系統(tǒng)及數(shù)據(jù)安全互聯(lián)系統(tǒng)建立方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)安全領(lǐng)域,尤其涉及一種數(shù)據(jù)安全互聯(lián)系統(tǒng)及其建立方法。
【背景技術(shù)】
[0002]現(xiàn)有的電子信息安全領(lǐng)域包括系統(tǒng)安全、數(shù)據(jù)安全和設(shè)備安全三個(gè)子領(lǐng)域。
[0003]在數(shù)據(jù)安全領(lǐng)域內(nèi),一般采用下面三種技術(shù)確保數(shù)據(jù)安全:(I)數(shù)據(jù)內(nèi)容安全技術(shù),包括數(shù)據(jù)加密解密技術(shù)和端到端數(shù)據(jù)加密技術(shù),保障數(shù)據(jù)在存儲和傳輸過程中內(nèi)容不被非法讀??;(2)數(shù)據(jù)安全轉(zhuǎn)移技術(shù),包括防止非法拷貝、打印或其它輸出,保障數(shù)據(jù)在使用和轉(zhuǎn)移過程中的安全;(3)網(wǎng)絡(luò)阻斷技術(shù),包括網(wǎng)絡(luò)物理阻斷和設(shè)置網(wǎng)絡(luò)屏障等技術(shù)。
[0004]根據(jù)相關(guān)分析,目前針對計(jì)算機(jī)的所有危害總有效偵測能力最多在50%左右;由于上述技術(shù)在應(yīng)對計(jì)算機(jī)內(nèi)核病毒、木馬、操作系統(tǒng)漏洞、系統(tǒng)后門以及人為泄密時(shí)能力不足,事實(shí)上任何計(jì)算設(shè)備(例如計(jì)算機(jī)、手持通信設(shè)備等)都可能存在惡意代碼。一旦惡意代碼進(jìn)入終端系統(tǒng),上述的加密技術(shù)、防拷貝技術(shù)以及網(wǎng)絡(luò)阻斷技術(shù)在這種情況下將失去作用。現(xiàn)有的黑客技術(shù)可以利用系統(tǒng)漏洞或系統(tǒng)后門穿透上述安全技術(shù)并植入惡意代碼,并利用惡意代碼取得用戶數(shù)據(jù)。上述技術(shù)更無法防范涉密人員的主動或被動泄密,例如,內(nèi)部人員可以攜帶存儲設(shè)備,從內(nèi)部網(wǎng)絡(luò)或終端上下載所需的資料并帶走存儲設(shè)備,導(dǎo)致內(nèi)部泄密;又例如,內(nèi)部人員可以直接將計(jì)算設(shè)備帶走。
[0005]綜上,防拷貝技術(shù)無法保證涉密信息在終端不被非法存儲?;诰W(wǎng)絡(luò)過濾無法確保涉密信息不丟失。涉密人員可通過惡意代碼或惡意工具造成泄密,還可能因涉密設(shè)備或存儲介質(zhì)失控造成泄密。
【發(fā)明內(nèi)容】
[0006]本發(fā)明的目的是提供一種數(shù)據(jù)安全互聯(lián)系統(tǒng)及其建立方法,提高數(shù)據(jù)安全性。
[0007]根據(jù)本發(fā)明一個(gè)方面,提供一種數(shù)據(jù)安全互聯(lián)系統(tǒng)的建立方法,包括:
[0008]步驟1、計(jì)算設(shè)備向注冊服務(wù)器發(fā)送注冊請求;
[0009]步驟2、注冊服務(wù)器向計(jì)算設(shè)備發(fā)送詢問消息,詢問該計(jì)算設(shè)備是否同意通過安全存儲設(shè)備接管該計(jì)算設(shè)備所操作和訪問的數(shù)據(jù),或者詢問該計(jì)算設(shè)備是否同意部署數(shù)據(jù)安全存儲方法和數(shù)據(jù)安全讀取方法;
[0010]步驟3、計(jì)算設(shè)備向注冊服務(wù)器發(fā)送應(yīng)答消息;和
[0011]步驟4、注冊服務(wù)器檢查所述應(yīng)答消息;
[0012]如果該應(yīng)答為不同意接管,注冊服務(wù)器拒絕該計(jì)算設(shè)備的注冊請求,結(jié)束建立方法;
[0013]如果該應(yīng)答為同意接管,注冊服務(wù)器在計(jì)算設(shè)備上部署數(shù)據(jù)安全存儲方法和讀取方法,注冊服務(wù)器為該計(jì)算設(shè)備部署安全存儲設(shè)備,并且將該計(jì)算設(shè)備添加在注冊服務(wù)器上的注冊列表中;
[0014]其中,數(shù)據(jù)安全存儲方法包括:[0015]步驟al、接收硬件指令;
[0016]步驟a2、分析所述硬件指令;
[0017]步驟a3、如果所述硬件指令是存儲指令,修改所述存儲指令中的目標(biāo)地址為對應(yīng)的在所述安全存儲設(shè)備上的存儲地址;和
[0018]步驟a4、將修改后的存儲指令發(fā)送到硬件層;
[0019]其中,數(shù)據(jù)安全讀取方法包括:
[0020]步驟bl、接收硬件指令;
[0021 ] 步驟b2、分析所述硬件指令;
[0022]步驟b3、如果所述硬件指今是讀取指令,獲取讀取指令中的源地址;
[0023]步驟b4、查找第一映射位圖,并根據(jù)第一映射位圖的數(shù)據(jù)修改讀取指令中的讀取地址;所述第一映射位圖用于表示本地存儲地址的數(shù)據(jù)是否轉(zhuǎn)儲到所述安全存儲設(shè)備;和
[0024]步驟b5、將修改后的讀取指令發(fā)送到硬件層。
[0025]可選的,在步驟a3之后,數(shù)據(jù)安全存儲方法還包括:
[0026]更新第一映射位圖中所述目標(biāo)地址對應(yīng)的位;
[0027]將已經(jīng)更新的第一映射位圖同步到所述安全存儲設(shè)備,保存為第二映射位圖;所述第二映射位圖用于表示本地存儲地址的數(shù)據(jù)是否轉(zhuǎn)儲到所述安全存儲設(shè)備。
[0028]可選的,在步驟al之前,數(shù)據(jù)安全存儲方法還包括:
[0029]建立計(jì)算設(shè)備與所述安全存儲設(shè)備的通訊;
[0030]將所述安全存儲設(shè)備上的第二映射位圖同步到所述計(jì)算設(shè)備,保存為第一映射位圖。
[0031]可選的,在步驟b4之前,數(shù)據(jù)安全讀取方法還包括:
[0032]建立計(jì)算設(shè)備與所述安全存儲設(shè)備的通訊;
[0033]將所述安全存儲設(shè)備上的第二映射位圖同步到所述計(jì)算設(shè)備,保存為第一映射位圖。
[0034]可選的,在步驟al和bl中,所述硬件指令來自硬件映射層。
[0035]可選的,在步驟4中,注冊服務(wù)器還在計(jì)算設(shè)備上部署運(yùn)行時(shí)指令重組方法,該運(yùn)行時(shí)指令重組方法包括:
[0036]步驟c 1、緩存指令運(yùn)行環(huán)境;
[0037]步驟c2、獲取待調(diào)度的機(jī)器指令片段;在所述獲取的機(jī)器指令片段的最后一條指令前,插入第二跳轉(zhuǎn)指令,所述第二跳轉(zhuǎn)指令指向指令重組平臺的入口地址,生成重組指令片段;將所述緩存的指令運(yùn)行環(huán)境中的地址寄存器的值修改為重組指令片段的地址;
[0038]步驟c3、恢復(fù)所述指令運(yùn)行環(huán)境;所述指令運(yùn)行環(huán)境中的地址寄存器的值為修改后的值。
[0039]可選的,在步驟4中,注冊服務(wù)器還在計(jì)算設(shè)備上部署運(yùn)行時(shí)指令重組方法,該運(yùn)行時(shí)指令重組方法包括:
[0040]步驟dl、緩存指令運(yùn)行環(huán)境;
[0041]步驟d2、從第一存儲位置讀取目標(biāo)地址,根據(jù)目標(biāo)地址獲取待調(diào)度的機(jī)器指令片段;待調(diào)度的機(jī)器指令片段的最后一條指令為第一跳轉(zhuǎn)指令;
[0042]步驟d3、在第一存儲位置保存第一跳轉(zhuǎn)指令的目標(biāo)地址;[0043]步驟d4、將第一跳轉(zhuǎn)指令替換為第二跳轉(zhuǎn)指令,生成具有第二地址的重組指令片段;所述第二跳轉(zhuǎn)指令指向指令重組平臺的入口地址;和
[0044]步驟d5、恢復(fù)所述指令運(yùn)行環(huán)境,并跳轉(zhuǎn)到第二地址繼續(xù)執(zhí)行。
[0045]可選的,在步驟4中,注冊服務(wù)器還在計(jì)算設(shè)備上部署運(yùn)行時(shí)指令重組方法,該運(yùn)行時(shí)指令重組方法包括:
[0046]步驟e 1、緩存指令運(yùn)行環(huán)境;
[0047]步驟e2、獲取棧中保存的跳轉(zhuǎn)指令的地址和參數(shù),計(jì)算下一條即將運(yùn)行的指令地址,該地址為第一地址;
[0048]步驟e3、根據(jù)第一地址獲取待調(diào)度機(jī)器指令片段;其中,待調(diào)度機(jī)器指令片段的最后一條指令為第一跳轉(zhuǎn)指令;
[0049]步驟e4、替換第一跳轉(zhuǎn)指令為壓棧指令,在壓棧指令中記錄第一跳轉(zhuǎn)指令的地址和操作數(shù);
[0050]步驟e5、在壓棧指令之后加入第二跳轉(zhuǎn)指令,生成具有第二地址的重組指令片段;所述第二跳轉(zhuǎn)指令指向指令重組平臺的入口地址;和
[0051]步驟e6、恢復(fù)所述指令運(yùn)行環(huán)境,并跳轉(zhuǎn)到第二地址繼續(xù)執(zhí)行。
[0052]根據(jù)本發(fā)明另一個(gè)方面,提供一種應(yīng)用于上述方法建立的數(shù)據(jù)安全互聯(lián)系統(tǒng)的數(shù)據(jù)訪問方法,包括:
[0053]步驟1、第一計(jì)算設(shè)備向第二計(jì)算設(shè)備發(fā)送訪問請求;
[0054]步驟2、第二計(jì)算設(shè)備向注冊服務(wù)器發(fā)送安全地址詢問消息,詢問所述第一計(jì)算設(shè)備是否為安全地址;
[0055]步驟3、注冊服務(wù)器向第二計(jì)算設(shè)備發(fā)送安全地址應(yīng)答消息,告知該第一計(jì)算設(shè)備是否為安全地址;
[0056]步驟4、如果得到肯定的應(yīng)答消息,第二計(jì)算設(shè)備根據(jù)訪問請求讀取相應(yīng)的數(shù)據(jù),讀取過程為所述的數(shù)據(jù)安全讀取方法;如果得到否定的應(yīng)答消息,第二計(jì)算設(shè)備忽略所述訪問請求;和
[0057]步驟5、第二計(jì)算設(shè)備向第一計(jì)算設(shè)備發(fā)送訪問應(yīng)答。
[0058]可選的,所述的數(shù)據(jù)訪問方法在步驟5之后還包括:
[0059]步驟6、如果第一計(jì)算設(shè)備需要保存數(shù)據(jù),則根據(jù)所述的數(shù)據(jù)安全存儲方法保存數(shù)據(jù)。
[0060]根據(jù)本發(fā)明另一個(gè)方面,提供一種數(shù)據(jù)安全互聯(lián)系統(tǒng)建立及數(shù)據(jù)訪問方法,包括:
[0061]步驟1、第一計(jì)算設(shè)備向第二計(jì)算設(shè)備發(fā)送訪問請求;
[0062]步驟2、第二計(jì)算設(shè)備向第一計(jì)算設(shè)備發(fā)送部署詢問,詢問第一計(jì)算設(shè)備是否同意部署數(shù)據(jù)安全存儲方法和數(shù)據(jù)安全讀取方法,或者詢問第一計(jì)算設(shè)備是否同意通過安全存儲設(shè)備接管該第一計(jì)算設(shè)備所操作和訪問的數(shù)據(jù);
[0063]步驟3、第一計(jì)算設(shè)備向第二計(jì)算設(shè)備發(fā)送部署應(yīng)答;
[0064]步驟4、第二計(jì)算設(shè)備檢查所述部署應(yīng)答;
[0065]如果部署應(yīng)答是不同意部署,第二計(jì)算設(shè)備拒絕第一計(jì)算設(shè)備的訪問請求,結(jié)束所述方法;[0066]如果部署應(yīng)答是同意部署,第二計(jì)算設(shè)備在第一計(jì)算設(shè)備上部署數(shù)據(jù)安全存儲方法和讀取方法,第二計(jì)算設(shè)備為第一計(jì)算設(shè)備部署第一安全存儲設(shè)備,并將第一計(jì)算設(shè)備添加在第二計(jì)算設(shè)備的注冊列表中;
[0067]步驟5、第二計(jì)算設(shè)備利用安全讀取方法從其對應(yīng)的第二安全存儲設(shè)備讀取第一計(jì)算設(shè)備需要的數(shù)據(jù);和
[0068]步驟6、第二計(jì)算設(shè)備向第一計(jì)算設(shè)備發(fā)送訪問應(yīng)答;
[0069]其中,數(shù)據(jù)安全存儲方法包括:
[0070]步驟al、接收硬件指令;
[0071]步驟a2、分析所述硬件指令;
[0072]步驟a3、如果所述硬件指令是存儲指令,修改所述存儲指令中的目標(biāo)地址為對應(yīng)的在安全存儲設(shè)備上的存儲地址;和
[0073]步驟a4、將修改后的存儲指令發(fā)送到硬件層;
[0074]其中,數(shù)據(jù)安全讀取方法包括:
[0075]步驟bl、接收硬件指令;
[0076]步驟b2、分析所述硬件指令;
[0077]步驟b3、如果所述硬件指令是讀取指令,獲取讀取指令中的源地址;
[0078]步驟b4、查找第一映射位圖,并根據(jù)第一映射位圖的數(shù)據(jù)修改讀取指令中的讀取地址;所述第一映射位圖用于表示本地存儲地址的數(shù)據(jù)是否轉(zhuǎn)儲到所述安全存儲設(shè)備;和
[0079]步驟b5、將修改后的讀取指令發(fā)送到硬件層。
[0080]可選的,所述的數(shù)據(jù)安全互聯(lián)系統(tǒng)建立及數(shù)據(jù)訪問方法在步驟6之后還包括:
[0081]步驟7、如果第一計(jì)算設(shè)備需要保存數(shù)據(jù),第一計(jì)算設(shè)備利用數(shù)據(jù)安全存儲方法將獲得的訪問數(shù)據(jù)保存在其對應(yīng)的第一安全存儲設(shè)備中。
[0082]可選的,在步驟a3之后,數(shù)據(jù)安全存儲方法還包括:
[0083]更新第一映射位圖中所述目標(biāo)地址對應(yīng)的位;
[0084]將已經(jīng)更新的第一映射位圖同步到所述安全存儲設(shè)備,保存為第二映射位圖;所述第二映射位圖用于表示本地存儲地址的數(shù)據(jù)是否轉(zhuǎn)儲到所述安全存儲設(shè)備。
[0085]可選的,在步驟al之前,數(shù)據(jù)安全存儲方法還包括:
[0086]建立計(jì)算設(shè)備與所述安全存儲設(shè)備的通訊;
[0087]將所述安全存儲設(shè)備上的第二映射位圖同步到所述計(jì)算設(shè)備,保存為第一映射位圖。
[0088]可選的,在步驟b4之前,數(shù)據(jù)安全讀取方法還包括:
[0089]建立計(jì)算設(shè)備與所述安全存儲設(shè)備的通訊;
[0090]將所述安全存儲設(shè)備上的第二映射位圖同步到所述計(jì)算設(shè)備,保存為第一映射位圖。
[0091]可選的,在步驟al和bl中,所述硬件指令來自硬件映射層。
[0092]可選的,在步驟4中,第二計(jì)算設(shè)備還在第一計(jì)算設(shè)備上部署運(yùn)行時(shí)指令重組方法,該運(yùn)行時(shí)指令重組方法包括:
[0093]步驟Cl、緩存指令運(yùn)行環(huán)境;
[0094]步驟c2、獲取待調(diào)度的機(jī)器指令片段;在所述獲取的機(jī)器指令片段的最后一條指令前,插入第二跳轉(zhuǎn)指令,所述第二跳轉(zhuǎn)指令指向指令重組平臺的入口地址,生成重組指令片段;將所述緩存的指令運(yùn)行環(huán)境中的地址寄存器的值修改為重組指令片段的地址;
[0095]步驟c3、恢復(fù)所述指令運(yùn)行環(huán)境;所述指令運(yùn)行環(huán)境中的地址寄存器的值為修改后的值。
[0096]可選的,在步驟4中,第二計(jì)算設(shè)備還在第一計(jì)算設(shè)備上部署運(yùn)行時(shí)指令重組方法,該運(yùn)行時(shí)指令重組方法包括:
[0097]步驟dl、緩存指令運(yùn)行環(huán)境;
[0098]步驟d2、從第一存儲位置讀取目標(biāo)地址,根據(jù)目標(biāo)地址獲取待調(diào)度的機(jī)器指令片段;待調(diào)度的機(jī)器指令片段的最后一條指令為第一跳轉(zhuǎn)指令;
[0099]步驟d3、在第一存儲位置保存第一跳轉(zhuǎn)指令的目標(biāo)地址;
[0100]步驟d4、將第一跳轉(zhuǎn)指令替換為第二跳轉(zhuǎn)指令,生成具有第二地址的重組指令片段;所述第二跳轉(zhuǎn)指令指向指令重組平臺的入口地址;和
[0101]步驟d5、恢復(fù)所述指令運(yùn)行環(huán)境,并跳轉(zhuǎn)到第二地址繼續(xù)執(zhí)行。
[0102]可選的,在步驟4中,第二計(jì)算設(shè)備還在第一計(jì)算設(shè)備上部署運(yùn)行時(shí)指令重組方法,該運(yùn)行時(shí)指令重組方法包括:
[0103]步驟el、緩存指令運(yùn)行環(huán)境;
[0104]步驟e2、獲取棧中保存的跳轉(zhuǎn)指令的地址和參數(shù),計(jì)算下一條即將運(yùn)行的指令地址,該地址為第一地址;
[0105]步驟e3、根據(jù)第一地址獲取待調(diào)度機(jī)器指令片段;其中,待調(diào)度機(jī)器指令片段的最后一條指令為第一跳轉(zhuǎn)指令;
[0106]步驟e4、替換第一跳轉(zhuǎn)指令為壓棧指令,在壓棧指令中記錄第一跳轉(zhuǎn)指令的地址和操作數(shù);
[0107]步驟e5、在壓棧指令之后加入第二跳轉(zhuǎn)指令,生成具有第二地址的重組指令片段;所述第二跳轉(zhuǎn)指令指向指令重組平臺的入口地址;和
[0108]步驟e6、恢復(fù)所述指令運(yùn)行環(huán)境,并跳轉(zhuǎn)到第二地址繼續(xù)執(zhí)行。
[0109]可選的,所述的數(shù)據(jù)安全互聯(lián)系統(tǒng)建立及數(shù)據(jù)訪問方法在步驟I和步驟2之間還包括:
[0110]步驟H、第二計(jì)算終端向第一計(jì)算終端發(fā)送部署檢查消息,該消息用于檢查在第一計(jì)算終端上是否已經(jīng)部署了數(shù)據(jù)安全存儲方法和數(shù)據(jù)安全讀取方法;
[0111]步驟f2、第一計(jì)算終端向第二計(jì)算終端發(fā)送部署檢查反饋消息;和
[0112]步驟f3、第二計(jì)算終端根據(jù)該部署檢查反饋消息確定第一計(jì)算終端的部署狀態(tài):如果已經(jīng)部署,則將第一計(jì)算設(shè)備添加在第二計(jì)算設(shè)備的注冊列表中并執(zhí)行步驟5;如果尚未部署,繼續(xù)執(zhí)行步驟2。
[0113]根據(jù)本發(fā)明又一個(gè)方面,提供一種數(shù)據(jù)安全互聯(lián)系統(tǒng)建立及數(shù)據(jù)訪問方法,包括:
[0114]步驟1、第一計(jì)算設(shè)備向第二計(jì)算設(shè)備發(fā)送訪問請求;
[0115]步驟2、第一計(jì)算設(shè)備向第二計(jì)算設(shè)備發(fā)送部署告知消息,該消息用于表示在第一計(jì)算設(shè)備上已經(jīng)部署了數(shù)據(jù)安全存儲方法和數(shù)據(jù)安全讀取方法;
[0116]步驟3、第二計(jì)算設(shè)備基于部署告知消息,確定第一計(jì)算設(shè)備的部署狀態(tài)為已經(jīng)部署;
[0117]步驟4、第二計(jì)算設(shè)備利用安全讀取方法從其對應(yīng)的第二安全存儲設(shè)備讀取第一計(jì)算設(shè)備將要訪問的數(shù)據(jù);和
[0118]步驟5、第二計(jì)算設(shè)備向第一計(jì)算設(shè)備發(fā)送訪問應(yīng)答;
[0119]其中,數(shù)據(jù)安全存儲方法包括:
[0120]步驟al、接收硬件指令;
[0121]步驟a2、分析所述硬件指令;
[0122]步驟a3、如果所述硬件指令是存儲指令,修改所述存儲指令中的目標(biāo)地址為對應(yīng)的在安全存儲設(shè)備上的存儲地址;和
[0123]步驟a4、將修改后的存儲指令發(fā)送到硬件層;
[0124]其中,數(shù)據(jù)安全讀取方法包括:
[0125]步驟bl、接收硬件指令;
[0126]步驟b2、分析所述硬件指令;
[0127]步驟b3、如果所述硬件指今是讀取指令,獲取讀取指令中的源地址;
[0128]步驟b4、查找第一映射位圖,并根據(jù)第一映射位圖的數(shù)據(jù)修改讀取指令中的讀取地址;所述第一映射位圖用于表示本地存儲地址的數(shù)據(jù)是否轉(zhuǎn)儲到所述安全存儲設(shè)備;和
[0129]步驟b5、將修改后的讀取指令發(fā)送到硬件層。
[0130]可選的,所述的數(shù)據(jù)安全互聯(lián)系統(tǒng)建立及數(shù)據(jù)訪問方法在步驟5之后還包括:
[0131]步驟6、如果第一計(jì)算設(shè)備需要保存數(shù)據(jù),第一計(jì)算設(shè)備利用數(shù)據(jù)安全存儲方法將獲得的訪問數(shù)據(jù)保存在其對應(yīng)的第一安全存儲設(shè)備中。
[0132]可選的,在步驟a3之后,數(shù)據(jù)安全存儲方法還包括:
[0133]更新第一映射位圖中所述目標(biāo)地址對應(yīng)的位;
[0134]將已經(jīng)更新的第一映射位圖同步到所述安全存儲設(shè)備,保存為第二映射位圖;所述第二映射位圖用于表示本地存儲地址的數(shù)據(jù)是否轉(zhuǎn)儲到所述安全存儲設(shè)備。
[0135]可選的,在步驟al之前,數(shù)據(jù)安全存儲方法還包括:
[0136]建立計(jì)算設(shè)備與所述安全存儲設(shè)備的通訊;
[0137]將所述安全存儲設(shè)備上的第二映射位圖同步到所述計(jì)算設(shè)備,保存為第一映射位圖。
[0138]可選的,在步驟b4之前,數(shù)據(jù)安全讀取方法還包括:
[0139]建立計(jì)算設(shè)備與所述安全存儲設(shè)備的通訊;
[0140]將所述安全存儲設(shè)備上的第二映射位圖同步到所述計(jì)算設(shè)備,保存為第一映射位圖。
[0141]可選的,在步驟al和bl中,所述硬件指令來自硬件映射層。
[0142]可選的,所述部署告知消息還用于表示在第一計(jì)算設(shè)備上已經(jīng)部署了行時(shí)指令重組方法,該運(yùn)行時(shí)指令重組方法包括:
[0143]步驟Cl、緩存指令運(yùn)行環(huán)境;
[0144]步驟c2、獲取待調(diào)度的機(jī)器指令片段;在所述獲取的機(jī)器指令片段的最后一條指令前,插入第二跳轉(zhuǎn)指令,所述第二跳轉(zhuǎn)指令指向指令重組平臺的入口地址,生成重組指令片段;將所述緩存的指令運(yùn)行環(huán)境中的地址寄存器的值修改為重組指令片段的地址;[0145]步驟c3、恢復(fù)所述指令運(yùn)行環(huán)境;所述指令運(yùn)行環(huán)境中的地址寄存器的值為修改后的值。
[0146]可選的,所述部署告知消息還用于表示在第一計(jì)算設(shè)備上已經(jīng)部署了行時(shí)指令重組方法,該運(yùn)行時(shí)指令重組方法包括:
[0147]步驟dl、緩存指令運(yùn)行環(huán)境;
[0148]步驟d2、從第一存儲位置讀取目標(biāo)地址,根據(jù)目標(biāo)地址獲取待調(diào)度的機(jī)器指令片段;待調(diào)度的機(jī)器指令片段的最后一條指令為第一跳轉(zhuǎn)指令;
[0149]步驟d3、在第一存儲位置保存第一跳轉(zhuǎn)指令的目標(biāo)地址;
[0150]步驟d4、將第一跳轉(zhuǎn)指令替換為第二跳轉(zhuǎn)指令,生成具有第二地址的重組指令片段;所述第二跳轉(zhuǎn)指令指向指令重組平臺的入口地址;和
[0151]步驟d5、恢復(fù)所述指令運(yùn)行環(huán)境,并跳轉(zhuǎn)到第二地址繼續(xù)執(zhí)行。
[0152]可選的,所述部署告知消息還用于表示在第一計(jì)算設(shè)備上已經(jīng)部署了行時(shí)指令重組方法,該運(yùn)行時(shí)指令重組方法包括:
[0153]步驟el、緩存指令運(yùn)行環(huán)境;
[0154]步驟e2、獲取棧中保存的跳轉(zhuǎn)指令的地址和參數(shù),計(jì)算下一條即將運(yùn)行的指令地址,該地址為第一地址;
[0155]步驟e3、根據(jù)第一地址獲取待調(diào)度機(jī)器指令片段;其中,待調(diào)度機(jī)器指令片段的最后一條指令為第一跳轉(zhuǎn)指令;
[0156]步驟e4、替換第一跳轉(zhuǎn)指令為壓棧指令,在壓棧指令中記錄第一跳轉(zhuǎn)指令的地址和操作數(shù);
[0157]步驟e5、在壓棧指令之后加入第二跳轉(zhuǎn)指令,生成具有第二地址的重組指令片段;所述第二跳轉(zhuǎn)指令指向指令重組平臺的入口地址;和
[0158]步驟e6、恢復(fù)所述指令運(yùn)行環(huán)境,并跳轉(zhuǎn)到第二地址繼續(xù)執(zhí)行。
[0159]可選的,在步驟3中,如果第二計(jì)算設(shè)備沒有接收到部署告知消息,或第二計(jì)算設(shè)備基于部署告知消息不能確定第一計(jì)算設(shè)備的部署狀態(tài)為已經(jīng)部署,則忽略所述訪問請求。
[0160]根據(jù)本發(fā)明另一個(gè)方面,提供一種數(shù)據(jù)安全互聯(lián)系統(tǒng),包括:計(jì)算設(shè)備、安全存儲設(shè)備和注冊服務(wù)器;
[0161]其中,所述注冊服務(wù)器適于注冊計(jì)算設(shè)備,并為計(jì)算設(shè)備分配安全存儲設(shè)備;所述計(jì)算設(shè)備適于通過數(shù)據(jù)安全存儲方法和數(shù)據(jù)安全讀取方法將數(shù)據(jù)保存在安全存儲設(shè)備上或從安全存儲設(shè)備讀取數(shù)據(jù);
[0162]其中,數(shù)據(jù)安全存儲方法包括:步驟al、接收硬件指令;步驟a2、分析所述硬件指令;步驟a3、如果所述硬件指令是存儲指令,修改所述存儲指令中的目標(biāo)地址為對應(yīng)的在所述安全存儲設(shè)備上的存儲地址;和步驟a4、將修改后的存儲指令發(fā)送到硬件層;
[0163]其中,數(shù)據(jù)安全讀取方法包括:步驟bl、接收硬件指令;步驟b2、分析所述硬件指令;步驟b3、如果所述硬件指令是讀取指令,獲取讀取指令中的源地址;步驟b4、查找第一映射位圖,并根據(jù)第一映射位圖的數(shù)據(jù)修改讀取指令中的讀取地址;所述第一映射位圖用于表示本地存儲地址的數(shù)據(jù)是否轉(zhuǎn)儲到所述安全存儲設(shè)備;和步驟b5、將修改后的讀取指令發(fā)送到硬件層。[0164]可選的,所述注冊服務(wù)器適于:
[0165]接收來自計(jì)算設(shè)備的注冊請求;
[0166]向計(jì)算設(shè)備發(fā)送詢問消息,詢問該計(jì)算設(shè)備是否同意通過安全存儲設(shè)備接管該計(jì)算設(shè)備所操作和訪問的數(shù)據(jù),或者詢問該計(jì)算設(shè)備是否同意部署數(shù)據(jù)安全存儲方法和數(shù)據(jù)安全讀取方法;
[0167]接收并檢查來自計(jì)算設(shè)備的應(yīng)答消息;如果應(yīng)答為不同意接管,拒絕該計(jì)算設(shè)備的注冊請求;如果應(yīng)答為同意接管,在計(jì)算設(shè)備上部署數(shù)據(jù)安全存儲方法和讀取方法,為該計(jì)算設(shè)備部署安全存儲設(shè)備,并且將該計(jì)算設(shè)備添加在注冊服務(wù)器上的注冊列表中。
[0168]可選的,所述注冊服務(wù)器還適于在計(jì)算設(shè)備上部署運(yùn)行時(shí)指令重組方法,該運(yùn)行時(shí)指令重組方法包括:
[0169]步驟Cl、緩存指令運(yùn)行環(huán)境;
[0170]步驟c2、獲取待調(diào)度的機(jī)器指令片段;在所述獲取的機(jī)器指令片段的最后一條指令前,插入第二跳轉(zhuǎn)指令,所述第二跳轉(zhuǎn)指令指向指令重組平臺的入口地址,生成重組指令片段;將所述緩存的指令運(yùn)行環(huán)境中的地址寄存器的值修改為重組指令片段的地址;
[0171]步驟c3、恢復(fù)所述指令運(yùn)行環(huán)境;所述指令運(yùn)行環(huán)境中的地址寄存器的值為修改后的值。
[0172]可選的,所述注冊服務(wù)器還適于在計(jì)算設(shè)備上部署運(yùn)行時(shí)指令重組方法,該運(yùn)行時(shí)指令重組方法包括:
[0173]步驟dl、緩存指令運(yùn)行環(huán)境;
[0174]步驟d2、從第一存儲位置讀取目標(biāo)地址,根據(jù)目標(biāo)地址獲取待調(diào)度的機(jī)器指令片段;待調(diào)度的機(jī)器指令片段的最后一條指令為第一跳轉(zhuǎn)指令;
[0175]步驟d3、在第一存儲位置保存第一跳轉(zhuǎn)指令的目標(biāo)地址;
[0176]步驟d4、將第一跳轉(zhuǎn)指令替換為第二跳轉(zhuǎn)指令,生成具有第二地址的重組指令片段;所述第二跳轉(zhuǎn)指令指向指令重組平臺的入口地址;和
[0177]步驟d5、恢復(fù)所述指令運(yùn)行環(huán)境,并跳轉(zhuǎn)到第二地址繼續(xù)執(zhí)行。
[0178]可選的,所述注冊服務(wù)器還適于在計(jì)算設(shè)備上部署運(yùn)行時(shí)指令重組方法,該運(yùn)行時(shí)指令重組方法包括:
[0179]步驟el、緩存指令運(yùn)行環(huán)境;
[0180]步驟e2、獲取棧中保存的跳轉(zhuǎn)指令的地址和參數(shù),計(jì)算下一條即將運(yùn)行的指令地址,該地址為第一地址;
[0181]步驟e3、根據(jù)第一地址獲取待調(diào)度機(jī)器指令片段;其中,待調(diào)度機(jī)器指令片段的最后一條指令為第一跳轉(zhuǎn)指令;
[0182]步驟e4、替換第一跳轉(zhuǎn)指令為壓棧指令,在壓棧指令中記錄第一跳轉(zhuǎn)指令的地址和操作數(shù);
[0183]步驟e5、在壓棧指令之后加入第二跳轉(zhuǎn)指令,生成具有第二地址的重組指令片段;所述第二跳轉(zhuǎn)指令指向指令重組平臺的入口地址;和
[0184]步驟e6、恢復(fù)所述指令運(yùn)行環(huán)境,并跳轉(zhuǎn)到第二地址繼續(xù)執(zhí)行。
[0185]根據(jù)本發(fā)明又一個(gè)方面,提供一種數(shù)據(jù)安全互聯(lián)系統(tǒng),包括:第一計(jì)算設(shè)備、第二計(jì)算設(shè)備和安全存儲設(shè)備;其中,所述第一計(jì)算設(shè)備和第二計(jì)算設(shè)備適于相互注冊,并通過數(shù)據(jù)安全存儲方法和數(shù)據(jù)安全讀取方法將數(shù)據(jù)保存在安全存儲設(shè)備上或從安全存儲設(shè)備讀取數(shù)據(jù);
[0186]其中,數(shù)據(jù)安全存儲方法包括:步驟al、接收硬件指令;步驟a2、分析所述硬件指令;步驟a3、如果所述硬件指令是存儲指令,修改所述存儲指令中的目標(biāo)地址為對應(yīng)的在所述安全存儲設(shè)備上的存儲地址;和步驟a4、將修改后的存儲指令發(fā)送到硬件層;
[0187]其中,數(shù)據(jù)安全讀取方法包括:步驟bl、接收硬件指令;步驟b2、分析所述硬件指令;步驟b3、如果所述硬件指令是讀取指令,獲取讀取指令中的源地址;步驟b4、查找第一映射位圖,并根據(jù)第一映射位圖的數(shù)據(jù)修改讀取指令中的讀取地址;所述第一映射位圖用于表示本地存儲地址的數(shù)據(jù)是否轉(zhuǎn)儲到所述安全存儲設(shè)備;和步驟b5、將修改后的讀取指今發(fā)送到硬件層。
[0188]可選的,所述第一計(jì)算設(shè)備或第二計(jì)算設(shè)備還適于被部署運(yùn)行時(shí)指令重組方法,該運(yùn)行時(shí)指令重組方法包括:
[0189]步驟Cl、緩存指令運(yùn)行環(huán)境;
[0190]步驟c2、獲取待調(diào)度的機(jī)器指令片段;在所述獲取的機(jī)器指令片段的最后一條指令前,插入第二跳轉(zhuǎn)指令,所述第二跳轉(zhuǎn)指令指向指令重組平臺的入口地址,生成重組指令片段;將所述緩存的指令運(yùn)行環(huán)境中的地址寄存器的值修改為重組指令片段的地址;
[0191]步驟c3、恢復(fù)所述指令運(yùn)行環(huán)境;所述指令運(yùn)行環(huán)境中的地址寄存器的值為修改后的值。
[0192]可選的,所述第一計(jì)算設(shè)備或第二計(jì)算設(shè)備還適于被部署運(yùn)行時(shí)指令重組方法,該運(yùn)行時(shí)指令重組方法包括:
[0193]步驟dl、緩存指令運(yùn)行環(huán)境;
[0194]步驟d2、從第一存儲位置讀取目標(biāo)地址,根據(jù)目標(biāo)地址獲取待調(diào)度的機(jī)器指令片段;待調(diào)度的機(jī)器指令片段的最后一條指令為第一跳轉(zhuǎn)指令;
[0195]步驟d3、在第一存儲位置保存第一跳轉(zhuǎn)指令的目標(biāo)地址;
[0196]步驟d4、將第一跳轉(zhuǎn)指令替換為第二跳轉(zhuǎn)指令,生成具有第二地址的重組指令片段;所述第二跳轉(zhuǎn)指令指向指令重組平臺的入口地址;和
[0197]步驟d5、恢復(fù)所述指令運(yùn)行環(huán)境,并跳轉(zhuǎn)到第二地址繼續(xù)執(zhí)行。
[0198]可選的,所述第一計(jì)算設(shè)備或第二計(jì)算設(shè)備還適于被部署運(yùn)行時(shí)指令重組方法,該運(yùn)行時(shí)指令重組方法包括:
[0199]步驟el、緩存指令運(yùn)行環(huán)境;
[0200]步驟e2、獲取棧中保存的跳轉(zhuǎn)指令的地址和參數(shù),計(jì)算下一條即將運(yùn)行的指令地址,該地址為第一地址;
[0201]步驟e3、根據(jù)第一地址獲取待調(diào)度機(jī)器指令片段;其中,待調(diào)度機(jī)器指令片段的最后一條指令為第一跳轉(zhuǎn)指令;
[0202]步驟e4、替換第一跳轉(zhuǎn)指令為壓棧指令,在壓棧指令中記錄第一跳轉(zhuǎn)指令的地址和操作數(shù);
[0203]步驟e5、在壓棧指令之后加入第二跳轉(zhuǎn)指令,生成具有第二地址的重組指令片段;所述第二跳轉(zhuǎn)指令指向指令重組平臺的入口地址;和
[0204]步驟e6、恢復(fù)所述指令運(yùn)行環(huán)境,并跳轉(zhuǎn)到第二地址繼續(xù)執(zhí)行。[0205]根據(jù)本發(fā)明再一個(gè)方面,提供一種數(shù)據(jù)安全互聯(lián)系統(tǒng),包括:
[0206]位于第一局域網(wǎng)的第一計(jì)算設(shè)備和第一安全存儲設(shè)備;
[0207]位于第二局域網(wǎng)的第二計(jì)算設(shè)備和第二安全存儲設(shè)備;和
[0208]虛擬安全存儲服務(wù)器,位于第一局域網(wǎng)和第二局域網(wǎng);
[0209]其中,所述虛擬安全存儲服務(wù)器適于注冊第一和第二計(jì)算設(shè)備,并為第一和第二計(jì)算設(shè)備分別分配第一和第二安全存儲設(shè)備;所述第一和第二計(jì)算設(shè)備適于通過數(shù)據(jù)安全存儲方法和數(shù)據(jù)安全讀取方法將數(shù)據(jù)分別保存在第一和第二安全存儲設(shè)備上或分別從第一和第二安全存儲設(shè)備讀取數(shù)據(jù);
[0210]其中,數(shù)據(jù)安全存儲方法包括:步驟al、接收硬件指令;步驟a2、分析所述硬件指令;步驟a3、如果所述硬件指令是存儲指令,修改所述存儲指令中的目標(biāo)地址為對應(yīng)的在所述安全存儲設(shè)備上的存儲地址;和步驟a4、將修改后的存儲指令發(fā)送到硬件層;
[0211]其中,數(shù)據(jù)安全讀取方法包括:步驟bl、接收硬件指令;步驟b2、分析所述硬件指令;步驟b3、如果所述硬件指令是讀取指令,獲取讀取指令中的源地址;步驟b4、查找第一映射位圖,并根據(jù)第一映射位圖的數(shù)據(jù)修改讀取指令中的讀取地址;所述第一映射位圖用于表示本地存儲地址的數(shù)據(jù)是否轉(zhuǎn)儲到所述安全存儲設(shè)備;和步驟b5、將修改后的讀取指令發(fā)送到硬件層。
[0212]可選的,所述第一計(jì)算設(shè)備或第二計(jì)算設(shè)備還適于被部署運(yùn)行時(shí)指令重組方法,該運(yùn)行時(shí)指令重組方法包括:
[0213]步驟Cl、緩存指令運(yùn)行環(huán)境;
[0214]步驟c2、獲取待調(diào)度的機(jī)器指令片段;在所述獲取的機(jī)器指令片段的最后一條指令前,插入第二跳轉(zhuǎn)指令,所述第二跳轉(zhuǎn)指令指向指令重組平臺的入口地址,生成重組指令片段;將所述緩存的指令運(yùn)行環(huán)境中的地址寄存器的值修改為重組指令片段的地址;
[0215]步驟c3、恢復(fù)所述指令運(yùn)行環(huán)境;所述指令運(yùn)行環(huán)境中的地址寄存器的值為修改后的值。
[0216]可選的,所述第一計(jì)算設(shè)備或第二計(jì)算設(shè)備還適于被部署運(yùn)行時(shí)指令重組方法,該運(yùn)行時(shí)指令重組方法包括:
[0217]步驟dl、緩存指令運(yùn)行環(huán)境;
[0218]步驟d2、從第一存儲位置讀取目標(biāo)地址,根據(jù)目標(biāo)地址獲取待調(diào)度的機(jī)器指令片段;待調(diào)度的機(jī)器指令片段的最后一條指令為第一跳轉(zhuǎn)指令;
[0219]步驟d3、在第一存儲位置保存第一跳轉(zhuǎn)指令的目標(biāo)地址;
[0220]步驟d4、將第一跳轉(zhuǎn)指令替換為第二跳轉(zhuǎn)指令,生成具有第二地址的重組指令片段;所述第二跳轉(zhuǎn)指令指向指令重組平臺的入口地址;和
[0221]步驟d5、恢復(fù)所述指令運(yùn)行環(huán)境,并跳轉(zhuǎn)到第二地址繼續(xù)執(zhí)行。
[0222]可選的,所述第一計(jì)算設(shè)備或第二計(jì)算設(shè)備還適于被部署運(yùn)行時(shí)指令重組方法,該運(yùn)行時(shí)指令重組方法包括:
[0223]步驟el、緩存指令運(yùn)行環(huán)境;
[0224]步驟e2、獲取棧中保存的跳轉(zhuǎn)指令的地址和參數(shù),計(jì)算下一條即將運(yùn)行的指令地址,該地址為第一地址;
[0225]步驟e3、根據(jù)第一地址獲取待調(diào)度機(jī)器指令片段;其中,待調(diào)度機(jī)器指令片段的最后一條指令為第一跳轉(zhuǎn)指令;
[0226]步驟e4、替換第一跳轉(zhuǎn)指令為壓棧指令,在壓棧指令中記錄第一跳轉(zhuǎn)指令的地址和操作數(shù);
[0227]步驟e5、在壓棧指令之后加入第二跳轉(zhuǎn)指令,生成具有第二地址的重組指令片段;所述第二跳轉(zhuǎn)指令指向指令重組平臺的入口地址;和
[0228]步驟e6、恢復(fù)所述指令運(yùn)行環(huán)境,并跳轉(zhuǎn)到第二地址繼續(xù)執(zhí)行。
[0229]根據(jù)本發(fā)明另一個(gè)方面,提供一種數(shù)據(jù)安全互聯(lián)系統(tǒng),包括:
[0230]位于第一局域網(wǎng)的第一計(jì)算設(shè)備;
[0231]位于第二局域網(wǎng)的第二計(jì)算設(shè)備;和
[0232]集中式安全存儲服務(wù)器,位于第一局域網(wǎng)和第二局域網(wǎng),包括第一安全存儲設(shè)備和第二安全存儲設(shè)備;
[0233]其中,所述集中式安全存儲服務(wù)器適于注冊第一和第二計(jì)算設(shè)備,并為第一和第二計(jì)算設(shè)備分別分配第一和第二安全存儲設(shè)備;所述第一和第二計(jì)算設(shè)備適于通過數(shù)據(jù)安全存儲方法和數(shù)據(jù)安全讀取方法將數(shù)據(jù)分別保存在第一和第二安全存儲設(shè)備上或分別從第一和第二安全存儲設(shè)備讀取數(shù)據(jù);
[0234]其中,數(shù)據(jù)安全存儲方法包括:步驟al、接收硬件指令;步驟a2、分析所述硬件指令;步驟a3、如果所述硬件指令是存儲指令,修改所述存儲指令中的目標(biāo)地址為對應(yīng)的在所述安全存儲設(shè)備上的存儲地址;和步驟a4、將修改后的存儲指令發(fā)送到硬件層;
[0235]其中,數(shù)據(jù)安全讀取方法包括:步驟bl、接收硬件指令;步驟b2、分析所述硬件指令;步驟b3、如果所述硬件指令是讀取指令,獲取讀取指令中的源地址;步驟b4、查找第一映射位圖,并根據(jù)第一映射位圖的數(shù)據(jù)修改讀取指令中的讀取地址;所述第一映射位圖用于表示本地存儲地址的數(shù)據(jù)是否轉(zhuǎn)儲到所述安全存儲設(shè)備;和步驟b5、將修改后的讀取指令發(fā)送到硬件層。
[0236]可選的,所述第一計(jì)算設(shè)備或第二計(jì)算設(shè)備還適于被部署運(yùn)行時(shí)指令重組方法,該運(yùn)行時(shí)指令重組方法包括:
[0237]步驟Cl、緩存指令運(yùn)行環(huán)境;
[0238]步驟c2、獲取待調(diào)度的機(jī)器指令片段;在所述獲取的機(jī)器指令片段的最后一條指令前,插入第二跳轉(zhuǎn)指令,所述第二跳轉(zhuǎn)指令指向指令重組平臺的入口地址,生成重組指令片段;將所述緩存的指令運(yùn)行環(huán)境中的地址寄存器的值修改為重組指令片段的地址;
[0239]步驟c3、恢復(fù)所述指令運(yùn)行環(huán)境;所述指令運(yùn)行環(huán)境中的地址寄存器的值為修改后的值。
[0240]可選的,所述第一計(jì)算設(shè)備或第二計(jì)算設(shè)備還適于被部署運(yùn)行時(shí)指令重組方法,該運(yùn)行時(shí)指令重組方法包括:
[0241]步驟dl、緩存指令運(yùn)行環(huán)境;
[0242]步驟d2、從第一存儲位置讀取目標(biāo)地址,根據(jù)目標(biāo)地址獲取待調(diào)度的機(jī)器指令片段;待調(diào)度的機(jī)器指令片段的最后一條指令為第一跳轉(zhuǎn)指令;
[0243]步驟d3、在第一存儲位置保存第一跳轉(zhuǎn)指令的目標(biāo)地址;
[0244]步驟d4、將第一跳轉(zhuǎn)指令替換為第二跳轉(zhuǎn)指令,生成具有第二地址的重組指令片段;所述第二跳轉(zhuǎn)指令指向指令重組平臺的入口地址;和[0245]步驟d5、恢復(fù)所述指令運(yùn)行環(huán)境,并跳轉(zhuǎn)到第二地址繼續(xù)執(zhí)行。
[0246]可選的,所述第一計(jì)算設(shè)備或第二計(jì)算設(shè)備還適于被部署運(yùn)行時(shí)指令重組方法,該運(yùn)行時(shí)指令重組方法包括:
[0247]步驟el、緩存指令運(yùn)行環(huán)境;
[0248]步驟e2、獲取棧中保存的跳轉(zhuǎn)指令的地址和參數(shù),計(jì)算下一條即將運(yùn)行的指令地址,該地址為第一地址;
[0249]步驟e3、根據(jù)第一地址獲取待調(diào)度機(jī)器指令片段;其中,待調(diào)度機(jī)器指令片段的最后一條指令為第一跳轉(zhuǎn)指令;
[0250]步驟e4、替換第一跳轉(zhuǎn)指令為壓棧指令,在壓棧指令中記錄第一跳轉(zhuǎn)指令的地址和操作數(shù);
[0251]步驟e5、在壓棧指令之后加入第二跳轉(zhuǎn)指令,生成具有第二地址的重組指令片段;所述第二跳轉(zhuǎn)指令指向指令重組平臺的入口地址;和
[0252]步驟e6、恢復(fù)所述指令運(yùn)行環(huán)境,并跳轉(zhuǎn)到第二地址繼續(xù)執(zhí)行。
[0253]根據(jù)本發(fā)明另一個(gè)方面,提供一種計(jì)算終端/計(jì)算設(shè)備,包括:
[0254]I/O接口,適于與注冊服務(wù)器建立連接并通信;
[0255]注冊單元,與I/O接口耦接,適于在注冊服務(wù)器上注冊和/或接受注冊服務(wù)器的部署檢查;
[0256]黑洞單元,與I/O接口耦接,適于接收注冊服務(wù)器部署的數(shù)據(jù)黑洞系統(tǒng);和
[0257]查詢單元,適于向注冊服務(wù)器發(fā)送詢問消息,詢問第二計(jì)算設(shè)備是否已經(jīng)注冊;
[0258]其中,數(shù)據(jù)黑洞系統(tǒng)包括數(shù)據(jù)安全讀取方法和數(shù)據(jù)安全存儲方法;
[0259]其中,數(shù)據(jù)安全存儲方法包括:
[0260]步驟al、接收硬件指令;
[0261]步驟a2、分析所述硬件指令;
[0262]步驟a3、如果所述硬件指令是存儲指令,修改所述存儲指令中的目標(biāo)地址為對應(yīng)的在所述安全存儲設(shè)備上的存儲地址;和
[0263]步驟a4、將修改后的存儲指令發(fā)送到硬件層;
[0264]其中,數(shù)據(jù)安全讀取方法包括:
[0265]步驟bl、接收硬件指令;
[0266]步驟b2、分析所述硬件指令;
[0267]步驟b3、如果所述硬件指令是讀取指令,獲取讀取指令中的源地址;
[0268]步驟b4、查找第一映射位圖,并根據(jù)第一映射位圖的數(shù)據(jù)修改讀取指令中的讀取地址;所述第一映射位圖用于表示本地存儲地址的數(shù)據(jù)是否轉(zhuǎn)儲到所述安全存儲設(shè)備;和
[0269]步驟b5、將修改后的讀取指令發(fā)送到硬件層。
[0270]可選的,所述數(shù)據(jù)黑洞系統(tǒng)還包括運(yùn)行時(shí)指令重組方法,該運(yùn)行時(shí)指令重組方法包括:
[0271]步驟Cl、緩存指令運(yùn)行環(huán)境;
[0272]步驟c2、獲取待調(diào)度的機(jī)器指令片段;在所述獲取的機(jī)器指令片段的最后一條指令前,插入第二跳轉(zhuǎn)指令,所述第二跳轉(zhuǎn)指令指向指令重組平臺的入口地址,生成重組指令片段;將所述緩存的指令運(yùn)行環(huán)境中的地址寄存器的值修改為重組指令片段的地址;和[0273]步驟c3、恢復(fù)所述指令運(yùn)行環(huán)境;所述指令運(yùn)行環(huán)境中的地址寄存器的值為修改后的值。
[0274]可選的,所述數(shù)據(jù)黑洞系統(tǒng)還包括運(yùn)行時(shí)指令重組方法,該運(yùn)行時(shí)指令重組方法包括:
[0275]步驟dl、緩存指令運(yùn)行環(huán)境;
[0276]步驟d2、從第一存儲位置讀取目標(biāo)地址,根據(jù)目標(biāo)地址獲取待調(diào)度的機(jī)器指令片段;待調(diào)度的機(jī)器指令片段的最后一條指令為第一跳轉(zhuǎn)指令;
[0277]步驟d3、在第一存儲位置保存第一跳轉(zhuǎn)指令的目標(biāo)地址;
[0278]步驟d4、將第一跳轉(zhuǎn)指令替換為第二跳轉(zhuǎn)指令,生成具有第二地址的重組指令片段;所述第二跳轉(zhuǎn)指令指向指令重組平臺的入口地址;和
[0279]步驟d5、恢復(fù)所述指令運(yùn)行環(huán)境,并跳轉(zhuǎn)到第二地址繼續(xù)執(zhí)行。
[0280]可選的,所述數(shù)據(jù)黑洞系統(tǒng)還包括運(yùn)行時(shí)指令重組方法,該運(yùn)行時(shí)指令重組方法包括:
[0281]步驟el、緩存指令運(yùn)行環(huán)境;
[0282]步驟e2、獲取棧中保存的跳轉(zhuǎn)指令的地址和參數(shù),計(jì)算下一條即將運(yùn)行的指令地址,該地址為第一地址;
[0283]步驟e3、根據(jù)第一地址獲取待調(diào)度機(jī)器指令片段;其中,待調(diào)度機(jī)器指令片段的最后一條指令為第一跳轉(zhuǎn)指令;
[0284]步驟e4、替換第一跳轉(zhuǎn)指今為壓棧指令,在壓棧指今中記錄第一跳轉(zhuǎn)指令的地址和操作數(shù);
[0285]步驟e5、在壓棧指令之后加入第二跳轉(zhuǎn)指令,生成具有第二地址的重組指令片段;所述第二跳轉(zhuǎn)指令指向指令重組平臺的入口地址;和
[0286]步驟e6、恢復(fù)所述指令運(yùn)行環(huán)境,并跳轉(zhuǎn)到第二地址繼續(xù)執(zhí)行。
[0287]根據(jù)本發(fā)明又一個(gè)方面,提供一種注冊服務(wù)器,包括:
[0288]I/O接口,適于與計(jì)算設(shè)備連接并進(jìn)行通信;
[0289]部署檢查單元,與I/O接口耦接,適于向計(jì)算設(shè)備發(fā)送部署檢查消息,檢查計(jì)算設(shè)備是否已經(jīng)部署了數(shù)據(jù)黑洞系統(tǒng);
[0290]部署詢問單元,與I/O接口耦接,適于向計(jì)算設(shè)備發(fā)送詢問消息,詢問該計(jì)算設(shè)備是否同意通過安全存儲設(shè)備接管該計(jì)算設(shè)備所操作和訪問的數(shù)據(jù);和
[0291]程序部署單元,與I/O接口耦接,適于向計(jì)算設(shè)備部署數(shù)據(jù)黑洞系統(tǒng),當(dāng)部署結(jié)束之后,還適于將該計(jì)算設(shè)備添加進(jìn)入注冊列表中。
[0292]可選的,如果部署檢查單元檢查發(fā)現(xiàn)所述計(jì)算設(shè)備已經(jīng)部署了數(shù)據(jù)黑洞系統(tǒng),部署檢查單元還適于更新注冊列表,將該計(jì)算設(shè)備添加進(jìn)入注冊列表中;如果部署檢查單元發(fā)現(xiàn)該計(jì)算設(shè)備尚未部署數(shù)據(jù)黑洞系統(tǒng),啟動部署詢問單元。
[0293]可選的,如果來自計(jì)算設(shè)備的應(yīng)答消息表示不同意接管,部署詢問單元適于拒絕該計(jì)算設(shè)備的注冊請求;如果該應(yīng)答為同意接管,部署詢問單元適于調(diào)用程序部署單元部署數(shù)據(jù)黑洞系統(tǒng)。
[0294]可選的,所述的注冊服務(wù)器還包括:
[0295]注冊查詢單元,與I/O接口耦接,適于接收來自計(jì)算終端的查詢,通過查詢注冊列表來檢查某個(gè)特定的計(jì)算終端是否已經(jīng)注冊,并向計(jì)算設(shè)備反饋查詢結(jié)果。
[0296]根據(jù)本發(fā)明另一個(gè)方面,提供一種計(jì)算終端,包括:
[0297]注冊單元,適于在注冊服務(wù)器上注冊和/或接受注冊服務(wù)器的部署檢查;
[0298]黑洞單元,適于接收注冊服務(wù)器部署的數(shù)據(jù)黑洞系統(tǒng);和
[0299]查詢單元,適于向注冊服務(wù)器發(fā)送詢問消息,詢問某計(jì)算設(shè)備是否已經(jīng)注冊。
[0300]根據(jù)本發(fā)明另一個(gè)方面,提供一種注冊服務(wù)器,包括:
[0301]部署詢問單元,適于向計(jì)算設(shè)備發(fā)送詢問消息,詢問該計(jì)算設(shè)備是否同意通過安全存儲設(shè)備接管該計(jì)算設(shè)備所操作和訪問的數(shù)據(jù);和
[0302]程序部署單元,適于向計(jì)算設(shè)備部署數(shù)據(jù)黑洞系統(tǒng),當(dāng)部署結(jié)束之后,還適于將該計(jì)算設(shè)備添加進(jìn)入注冊列表中。
[0303]可選的,該注冊服務(wù)器還包括:部署檢查單元,適于向計(jì)算設(shè)備發(fā)送部署檢查消息,檢查計(jì)算設(shè)備是否已經(jīng)部署了數(shù)據(jù)黑洞系統(tǒng);
[0304]與現(xiàn)有技術(shù)相比,本發(fā)明的裝置和方法提高了數(shù)據(jù)的安全性。通過指令重組方法,在指令運(yùn)行狀態(tài)下監(jiān)控計(jì)算設(shè)備的指令;數(shù)據(jù)安全讀取方法配合數(shù)據(jù)安全存儲方法使數(shù)據(jù)始終存在于可控的安全范圍內(nèi);由于本地將不再保存在涉密狀態(tài)下的任何數(shù)據(jù),因此防止了涉密人員的主動泄密和被動泄密。
【專利附圖】
【附圖說明】
[0305]圖1是現(xiàn)有技術(shù)中計(jì)算設(shè)備的系統(tǒng)層次示意圖;
[0306]圖2是本發(fā)明一個(gè)實(shí)施例中提供的運(yùn)行時(shí)指令重組方法的流程圖;
[0307]圖3是本發(fā)明一個(gè)實(shí)施例中提供的重組指令片段的生成過程示意圖;
[0308]圖4是本發(fā)明另一個(gè)實(shí)施例中提供的圖2中步驟S102的流程圖;
[0309]圖5是本發(fā)明另一個(gè)實(shí)施例中提供的運(yùn)行時(shí)指令重組方法的流程圖,利用地址對應(yīng)表保存已經(jīng)重組過的指令片段;
[0310]圖6是本發(fā)明另一個(gè)實(shí)施例中提供的運(yùn)行時(shí)指令重組方法的流程圖,單獨(dú)開辟存儲位置保存第一跳轉(zhuǎn)指令的目標(biāo)地址;
[0311]圖7是本發(fā)明另一個(gè)實(shí)施例中提供的運(yùn)行時(shí)指令重組方法的流程圖,針對非固定長度指令集進(jìn)行反匯編和匯編處理;
[0312]圖8是本發(fā)明另一個(gè)實(shí)施例中提供的運(yùn)行時(shí)指令重組方法的流程圖,以壓棧指令替代或記錄第一跳轉(zhuǎn)指令;
[0313]圖9a是本發(fā)明另一個(gè)實(shí)施例中提供的運(yùn)行時(shí)指令重組方法的流程圖,其中的運(yùn)行時(shí)指令重組方法綜合之前多個(gè)實(shí)施例中的特征;
[0314]圖9b_9d是圖9a中的運(yùn)行時(shí)指令重組方法在X86體系處理器上運(yùn)行時(shí)的操作過程不意圖;
[0315]圖10是本發(fā)明一個(gè)實(shí)施例中提供的運(yùn)行時(shí)指令重組裝置結(jié)構(gòu)示意圖;
[0316]圖11是本發(fā)明另一個(gè)實(shí)施例中提供的運(yùn)行時(shí)指令重組裝置結(jié)構(gòu)示意圖;
[0317]圖12是本發(fā)明另一個(gè)實(shí)施例中提供的指令重組單元結(jié)構(gòu)示意圖;
[0318]圖13是本發(fā)明另一個(gè)實(shí)施例中提供的運(yùn)行時(shí)指令重組裝置結(jié)構(gòu)示意圖;
[0319]圖14是本發(fā)明另一個(gè)實(shí)施例中提供的運(yùn)行時(shí)指令重組裝置結(jié)構(gòu)示意圖;[0320]圖15是本發(fā)明一個(gè)實(shí)施例中計(jì)算設(shè)備的系統(tǒng)層次示意圖;
[0321]圖16是本發(fā)明一個(gè)實(shí)施例中提供的數(shù)據(jù)安全存取過程中的初始化過程的流程圖;
[0322]圖17是本發(fā)明一個(gè)實(shí)施例中的Bitmap示意圖;
[0323]圖18是本發(fā)明一個(gè)實(shí)施例中提供的數(shù)據(jù)安全存儲方法的流程圖;
[0324]圖19是本發(fā)明一個(gè)實(shí)施例中提供的數(shù)據(jù)安全讀取方法的流程圖;
[0325]圖20是本發(fā)明一個(gè)實(shí)施例中提供的數(shù)據(jù)安全存取方法的流程圖;
[0326]圖21是本發(fā)明一個(gè)實(shí)施例中提供的數(shù)據(jù)安全傳輸方法的流程圖;
[0327]圖22是本發(fā)明一個(gè)實(shí)施例中網(wǎng)絡(luò)環(huán)境示意圖;
[0328]圖23是本發(fā)明一個(gè)實(shí)施例中提供的數(shù)據(jù)安全存儲裝置的結(jié)構(gòu)示意圖;
[0329]圖24是本發(fā)明一個(gè)實(shí)施例中提供的數(shù)據(jù)安全讀取裝置的結(jié)構(gòu)示意圖;
[0330]圖25是本發(fā)明一個(gè)實(shí)施例中提供的數(shù)據(jù)安全存儲和讀取裝置的結(jié)構(gòu)示意圖;
[0331]圖26是本發(fā)明另一個(gè)實(shí)施例中提供的數(shù)據(jù)安全存儲和讀取裝置的結(jié)構(gòu)示意圖;
[0332]圖27是本發(fā)明一個(gè)實(shí)施例中的網(wǎng)絡(luò)環(huán)境;
[0333]圖28a是本發(fā)明一個(gè)實(shí)施例中提供的數(shù)據(jù)安全互聯(lián)系統(tǒng)的建立方法的時(shí)序圖;
[0334]圖28b是本發(fā)明一個(gè)實(shí)施例中提供的數(shù)據(jù)安全互聯(lián)系統(tǒng)內(nèi)計(jì)算設(shè)備的數(shù)據(jù)訪問方法的時(shí)序圖;
[0335]圖28c是本發(fā)明另一個(gè)實(shí)施例中提供的數(shù)據(jù)安全互聯(lián)系統(tǒng)內(nèi)計(jì)算設(shè)備的數(shù)據(jù)訪問方法的時(shí)序圖;
[0336]圖28d是本發(fā)明另一個(gè)實(shí)施例中提供的數(shù)據(jù)安全互聯(lián)系統(tǒng)內(nèi)計(jì)算設(shè)備的數(shù)據(jù)訪問方法的時(shí)序圖;
[0337]圖28e是本發(fā)明另一個(gè)實(shí)施例中提供的數(shù)據(jù)安全互聯(lián)系統(tǒng)內(nèi)計(jì)算設(shè)備的數(shù)據(jù)訪問方法的時(shí)序圖;
[0338]圖28f是本發(fā)明一個(gè)實(shí)施例中提供的計(jì)算終端的結(jié)構(gòu)示意圖;
[0339]圖28g是本發(fā)明一個(gè)實(shí)施例中提供的注冊服務(wù)器的結(jié)構(gòu)示意圖;
[0340]圖28h是本發(fā)明另一個(gè)實(shí)施例中提供的計(jì)算終端的結(jié)構(gòu)示意圖;
[0341]圖28i是本發(fā)明另一個(gè)實(shí)施例中提供的計(jì)算終端的結(jié)構(gòu)示意圖;
[0342]圖29是本發(fā)明一個(gè)實(shí)施例中提供的廣域網(wǎng)數(shù)據(jù)安全互聯(lián)系統(tǒng)的結(jié)構(gòu)示意圖;
[0343]圖30是本發(fā)明另一個(gè)實(shí)施例中提供的廣域網(wǎng)數(shù)據(jù)安全互聯(lián)系統(tǒng)的結(jié)構(gòu)示意圖;
[0344]圖31是本發(fā)明一個(gè)實(shí)施例中提供的網(wǎng)絡(luò)支付安全互聯(lián)系統(tǒng)的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0345]為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖,對本發(fā)明進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0346]公近
[0347]如圖1所示為現(xiàn)有技術(shù)中計(jì)算設(shè)備的系統(tǒng)層次示意圖,從上至下,計(jì)算設(shè)備包括:用戶界面層101,應(yīng)用層102,操作系統(tǒng)內(nèi)核層103,硬件映射層104以及硬件層105。
[0348]其中,用戶界面層101是用戶與設(shè)備之間的接口,用戶通過該層與設(shè)備(即設(shè)備的其他層次,例如應(yīng)用層102)進(jìn)行交互。應(yīng)用層102指應(yīng)用軟件層。
[0349]操作系統(tǒng)內(nèi)核層103是一種基于軟件的邏輯層,一般來講是由軟件數(shù)據(jù)和軟件代碼組成,相比于界面層101和應(yīng)用層102,操作系統(tǒng)內(nèi)核層103的代碼擁有更高的權(quán)限,可以對計(jì)算機(jī)系統(tǒng)中的各種軟硬件資源進(jìn)行完整的操作。
[0350]硬件映射層104是一種基于軟件的邏輯層,它一般工作在操作系統(tǒng)內(nèi)核層,擁有與內(nèi)核層相同的權(quán)限。硬件映射層主要是為了解決將不同類型的硬件的操作模式映射為一種統(tǒng)一的上層接口,向上屏蔽硬件的特殊性。一般來說,硬件映射層主要被操作系統(tǒng)內(nèi)核層103使用,來完成對各種硬件的操作。
[0351]硬件層105是指構(gòu)成計(jì)算機(jī)系統(tǒng)的所有硬件部件。
[0352]用戶通過用戶界面層101 (即處于用戶界面層101的用戶界面)對該計(jì)算設(shè)備進(jìn)行操作并得到圖形化或非圖形化反饋。以保存數(shù)據(jù)的操作為例,其過程包括:
[0353](I)用戶通過某應(yīng)用程序提供的用戶界面101,選擇“保存”功能;
[0354](2)應(yīng)用層102調(diào)用對應(yīng)代碼,將上述用戶操作轉(zhuǎn)化為一個(gè)或多個(gè)操作系統(tǒng)提供的接口函數(shù),即“保存”操作轉(zhuǎn)化成為對一系列操作系統(tǒng)內(nèi)核層103提供的接口函數(shù)的調(diào)用;
[0355](3)操作系統(tǒng)內(nèi)核層103將每一個(gè)操作系統(tǒng)接口函數(shù)轉(zhuǎn)化為一個(gè)或多個(gè)硬件映射層104提供的接口函數(shù);即“保存”操作轉(zhuǎn)化成為對一系列硬件映射層104提供的接口函數(shù)的調(diào)用;
[0356](4)硬件映射層104將每一個(gè)自己提供的接口函數(shù)轉(zhuǎn)化為一個(gè)或多個(gè)硬件指令調(diào)用;最后,
[0357](5)硬件層105 (例如CPU)接收上述硬件指令調(diào)用并執(zhí)行硬件指令。
[0358]針對該計(jì)算設(shè)備,當(dāng)其被惡意代碼侵入后,惡意代碼可以從計(jì)算設(shè)備中取得所需數(shù)據(jù),竊取數(shù)據(jù)后其行為模式包括:
[0359](I)存儲行為:將目標(biāo)數(shù)據(jù)內(nèi)容保存到某個(gè)存儲位置;
[0360](2)傳輸行為:將竊取的數(shù)據(jù)直接通過網(wǎng)絡(luò)傳輸?shù)街付ǖ哪繕?biāo)地址。
[0361]另外,使用上述計(jì)算設(shè)備或信息設(shè)備的人員進(jìn)行內(nèi)部泄密的行為模式包括:
[0362](I)主動泄密:涉密人員通過主動拷貝、通過惡意工具穿透安全系統(tǒng)、置入木馬等手段直接取得涉密數(shù)據(jù),并進(jìn)行泄密;
[0363](2)被動泄密:涉密人員使用的電腦或存儲介質(zhì)因保管不善丟失或使用不當(dāng)(例如將涉密裝備直接接入Internet)造成的泄密。
[0364]上述多種泄密方式使得該計(jì)算設(shè)備的數(shù)據(jù)安全無法保障。
[0365]發(fā)明人經(jīng)研究發(fā)現(xiàn),計(jì)算機(jī)運(yùn)行過程中,CPU地址寄存器保存下一條將要運(yùn)行的機(jī)器指令的地址,例如pc (program counter,程序計(jì)數(shù)器)指向的地址;獲取該寄存器中的數(shù)據(jù),并按照該數(shù)據(jù)指向的地址,讀取下一條或者多條將要運(yùn)行的機(jī)器指令,可以實(shí)現(xiàn)運(yùn)行時(shí)捕獲機(jī)器指令的目的。
[0366]并且,通過修改所述一條或多條機(jī)器指令所組成的待調(diào)度指令片段(例如在其中插入額外的跳轉(zhuǎn)指令,本文稱為指令重組),使得在該段指令運(yùn)行完畢之前重新獲得CPU執(zhí)行權(quán),并再次捕獲下一個(gè)待調(diào)度指令片段,可以實(shí)現(xiàn)運(yùn)行時(shí)連續(xù)捕獲機(jī)器指令的目的。
[0367]并且,在獲取到待調(diào)度指令片段后,還可以對其中的機(jī)器指令進(jìn)行分析以及處理,從而不僅可以實(shí)現(xiàn)運(yùn)行時(shí)指令捕獲、重組,還可以實(shí)現(xiàn)對預(yù)定的目標(biāo)指令的管理。
[0368]指令重組或指令追蹤
[0369]基于上述分析和發(fā)現(xiàn),本發(fā)明的一個(gè)實(shí)施例中提供了一種運(yùn)行時(shí)指令重組方法,該方法運(yùn)行時(shí)稱為指令重組平臺。如圖2所示,該方法SlOO包括:
[0370]S101,緩存指令運(yùn)行環(huán)境;所述指令運(yùn)行環(huán)境包括地址寄存器,地址寄存器保存下一條將要運(yùn)行的機(jī)器指令的地址,該地址為第一地址;
[0371]S102,獲取待調(diào)度的機(jī)器指令片段;其中,待調(diào)度的機(jī)器指令片段的最后一條指令為第一跳轉(zhuǎn)指令;
[0372]S103,在所述第一跳轉(zhuǎn)指令前,插入第二跳轉(zhuǎn)指令,生成具有第二地址的重組指令片段;所述第二跳轉(zhuǎn)指令指向指令重組平臺的入口地址,即執(zhí)行該第二跳轉(zhuǎn)指令后,執(zhí)行步驟 SlOl ;
[0373]S104,將所述地址寄存器中的第一地址修改為第二地址;和
[0374]S105,恢復(fù)所述指令運(yùn)行環(huán)境。
[0375]在本實(shí)施例中,上述運(yùn)行時(shí)指令重組方法在X86架構(gòu)的CPU上執(zhí)行;在本發(fā)明的其他實(shí)施例中,上述運(yùn)行時(shí)指令重組方法也可以在MIPS處理器或基于ARM架構(gòu)的處理器上執(zhí)行。本領(lǐng)域普通技術(shù)人員可以理解,上述方法可以在計(jì)算設(shè)備中的任何其他類型的指令處理單元上執(zhí)行。
[0376]其中,在步驟SlOl中,所述緩存指令運(yùn)行環(huán)境可以包括:
[0377]向緩存棧中壓入CPU機(jī)器指令運(yùn)行相關(guān)的寄存器數(shù)據(jù)。
[0378]在本發(fā)明的其他實(shí)施例中,緩存或保存指令運(yùn)行環(huán)境也可以在指定的、默認(rèn)的其他緩存數(shù)據(jù)結(jié)構(gòu)和地址中進(jìn)行。
[0379]在步驟SlOl中,所述地址寄存器可以為CPU地址寄存器。
[0380]在步驟S102中,待調(diào)度的機(jī)器指令片段中最后一條指令為第一跳轉(zhuǎn)指令,待調(diào)度的機(jī)器指令片段中只有一條跳轉(zhuǎn)指令,待調(diào)度的機(jī)器指令片段包括所述第一跳轉(zhuǎn)指令以及其之前的所有待調(diào)度的機(jī)器指令。
[0381]在步驟S103中,在所述待調(diào)度的機(jī)器指令片段的最后一條指令(即第一跳轉(zhuǎn)指令JPl)前,插入第二跳轉(zhuǎn)指令JP2,所述JP2指向指令重組平臺的入口地址,生成具有第二地址A"的重組指令片段。
[0382]插入第二跳轉(zhuǎn)指令是為了在CPU運(yùn)行所述待調(diào)度的機(jī)器指令片段時(shí),在JPl運(yùn)行前,重新開始運(yùn)行所述指令重組平臺,這樣,指令重組平臺就可以繼續(xù)分析下一段待調(diào)度的機(jī)器指令片段,從而通過重復(fù)本方法來完成對所有運(yùn)行時(shí)指令的重組。
[0383]在步驟S105中,恢復(fù)所述指令運(yùn)行環(huán)境可以包括:
[0384]從緩存棧中彈出指令運(yùn)行相關(guān)的寄存器數(shù)據(jù);其中地址寄存器保存的跳轉(zhuǎn)指令的目標(biāo)地址已經(jīng)修改為以第二地址A"為入口地址的新的機(jī)器指令片段。
[0385]步驟S105執(zhí)行后,恢復(fù)了所述指令運(yùn)行環(huán)境,指令重組平臺完成一次運(yùn)行,CPU執(zhí)行所述重組指令片段,即CPU將執(zhí)行以第二地址A"為入口地址的機(jī)器指令片段。重組指令片段執(zhí)行到第二跳轉(zhuǎn)指令JP2時(shí),所述指令重組平臺重新得到CPU控制權(quán)(即執(zhí)行步驟S101),此時(shí)第一跳轉(zhuǎn)指令的目標(biāo)地址已經(jīng)得到,該目標(biāo)地址為新的第一地址,繼而重新執(zhí)行步驟SlOl?步驟S105。[0386]下面結(jié)合圖3,進(jìn)一步說明指令重組過程和重組指令片段的生成過程。
[0387]圖3中包括待調(diào)度的機(jī)器指令集合401 (例如已經(jīng)載入內(nèi)存中的某程序的機(jī)器指令),其中指令4012為第一跳轉(zhuǎn)指令,如果指令4012的目標(biāo)地址為變量,則首先假設(shè)指令4012指向機(jī)器指令4013 ;從第一跳轉(zhuǎn)指令4012以前的包括第一跳轉(zhuǎn)指令4012的所有待調(diào)度的機(jī)器指令構(gòu)成了機(jī)器指令片段4011。
[0388]當(dāng)指令重組方法運(yùn)行后(指令重組平臺411),首先緩存指令運(yùn)行環(huán)境;然后獲取(例如拷貝)機(jī)器指令片段4011 ;指令重組平臺在第一跳轉(zhuǎn)指令4012前插入了第二跳轉(zhuǎn)指令4113,第二跳轉(zhuǎn)指今4113指向指令重組平臺411本身,從而生成了重組指令片段4111,重組指令片段的地址為A";將所述緩存的指令運(yùn)行環(huán)境中的地址寄存器的值A(chǔ)修改為地址A";最后恢復(fù)所述指令運(yùn)行環(huán)境。
[0389]指令重組平臺411結(jié)束運(yùn)行后,CPU執(zhí)行以A"為地址的重組指令片段,當(dāng)執(zhí)行到第二跳轉(zhuǎn)指令4113時(shí),指令重組平臺411會重新獲得CPU控制權(quán)。此時(shí),第一跳轉(zhuǎn)指令4012的目標(biāo)地址4013已經(jīng)生成,該目標(biāo)地址為新的第一地址,指令重組平臺根據(jù)該目標(biāo)地址重新開始執(zhí)行步驟SlOl?步驟S105,繼續(xù)分析后續(xù)的待調(diào)度的機(jī)器指令,從而完成了運(yùn)行時(shí)指令重組的方法。
[0390]根據(jù)本發(fā)明另一個(gè)實(shí)施例,如圖4所示,在步驟S102中,獲取待調(diào)度的機(jī)器指令片段可以包括:
[0391]S1021,從地址寄存器(例如CPU地址寄存器)讀取待調(diào)度的機(jī)器指令地址;
[0392]S1022,以跳轉(zhuǎn)指令為檢索目標(biāo),檢索所述機(jī)器指令地址指向的機(jī)器指令及其后續(xù)指令,直到發(fā)現(xiàn)第一個(gè)跳轉(zhuǎn)指令(稱為第一跳轉(zhuǎn)指令);所述跳轉(zhuǎn)指令指能夠改變機(jī)器指令順序執(zhí)行流程的機(jī)器指令,包括Jump指令、Call指令、Return指令等;
[0393]S1023,將所述第一跳轉(zhuǎn)指令以及其之前的所有待調(diào)度的機(jī)器指令作為一個(gè)待調(diào)度的機(jī)器指令片段;將該機(jī)器指令片段保存在指令重組平臺中,或其他指令重組平臺能夠讀取的存儲位置。
[0394]在本發(fā)明的其他實(shí)施例中,獲取待調(diào)度的機(jī)器指令片段也可以以非跳轉(zhuǎn)指令(例如寫入指令、讀取指令等)為檢索目標(biāo),進(jìn)一步切分機(jī)器指令片段。由于在這樣的實(shí)施例中,也需要保證在待調(diào)度跳轉(zhuǎn)指令執(zhí)行后指令重組平臺仍能夠獲取CPU控制權(quán)或執(zhí)行權(quán),所以跳轉(zhuǎn)指令需要作為第二檢索目標(biāo),從而得到粒度更小的機(jī)器指令片段。
[0395]根據(jù)本發(fā)明另一個(gè)實(shí)施例,在步驟S102和S103之間,所述運(yùn)行時(shí)指令重組方法還可以包括:
[0396]利用指令集匹配所述待調(diào)度的機(jī)器指令片段,得到目標(biāo)機(jī)器指令;所述指令集包括X86,MIPS和ARM指令集;和
[0397]按照預(yù)定的方式,修改所述目標(biāo)機(jī)器指令。
[0398]不僅可以完成運(yùn)行時(shí)指令監(jiān)控,還可以進(jìn)行其他處理過程,相關(guān)實(shí)施例將在后面詳細(xì)介紹。
[0399]進(jìn)一步的,為了提高指令重組方法的效率,可以將固定地址跳轉(zhuǎn)指令所指向的待調(diào)度指令在步驟S102中一并獲取。
[0400]根據(jù)本發(fā)明另一個(gè)實(shí)施例,提供一種運(yùn)行時(shí)指令重組方法,該方法S300包括:
[0401]S301,緩存指令運(yùn)行環(huán)境;所述指令運(yùn)行環(huán)境包括地址寄存器,地址寄存器保存下一條將要運(yùn)行的機(jī)器指令的地址,該地址為第一地址;
[0402]S302,獲取待調(diào)度的機(jī)器指令片段;其中,待調(diào)度的機(jī)器指令片段的最后一條指令為第一跳轉(zhuǎn)指令;
[0403]S303,在所述第一跳轉(zhuǎn)指令前,插入第二跳轉(zhuǎn)指令,生成具有第二地址的重組指令片段;所述第二跳轉(zhuǎn)指令指向指令重組平臺的入口地址,即執(zhí)行該第二跳轉(zhuǎn)指令后,執(zhí)行步驟 S301 ;
[0404]S304,將所述地址寄存器中的第一地址修改為第二地址;
[0405]S305,恢復(fù)所述指令運(yùn)行環(huán)境。
[0406]與之前的實(shí)施例中所提供的方法相比,區(qū)別在于:在步驟S302中,待調(diào)度的機(jī)器指令片段中可以包括多條跳轉(zhuǎn)指令;跳轉(zhuǎn)指令中只有一條參數(shù)地址跳轉(zhuǎn)指令,稱為第一跳轉(zhuǎn)指令。
[0407]需要說明的是,跳轉(zhuǎn)指令可以包括兩類,參數(shù)地址跳轉(zhuǎn)指令和常數(shù)地址跳轉(zhuǎn)指令,其中,常數(shù)地址跳轉(zhuǎn)指令的跳轉(zhuǎn)地址為常數(shù)(即立即數(shù)),而參數(shù)地址跳轉(zhuǎn)指令中的參數(shù)地址一般在跳轉(zhuǎn)指令之前的一條機(jī)器指令中計(jì)算得到。
[0408]相似地,待調(diào)度的機(jī)器指令片段的最后一條指令為第一跳轉(zhuǎn)指令;待調(diào)度的機(jī)器指令片段包括所述第一跳轉(zhuǎn)指令以及其之前的所有待調(diào)度的機(jī)器指令。
[0409]進(jìn)一步的,由于程序運(yùn)行過程中所生成的機(jī)器指令具有很高的重復(fù)性,為了提高指令重組方法的效率,節(jié)省計(jì)算設(shè)備的計(jì)算資源(CPU資源),可以利用少量的存儲空間來保存重組指令片段。
[0410]根據(jù)本發(fā)明另一個(gè)實(shí)施例,提供一種運(yùn)行時(shí)指令重組方法。如圖5所示,該方法S200包括:
[0411]S201,緩存指令運(yùn)行環(huán)境;所述指令運(yùn)行環(huán)境包括地址寄存器(例如CPU地址寄存器)(一般來說,指令運(yùn)行環(huán)境是指CPU的所有寄存器,包括通用寄存器,狀態(tài)寄存器,地址寄存器等),地址寄存器保存下一條將要運(yùn)行的機(jī)器指令的地址,該地址為第一地址;
[0412]S202,利用所述第一地址查找地址對應(yīng)表;所述地址對應(yīng)表用于表不第一地址A指向的待調(diào)度指令片段是否具有已保存的重組指令片段,地址對應(yīng)表的數(shù)據(jù)為地址對;
[0413]S203,如果找到相應(yīng)的記錄,將所述第一地址A(即地址寄存器的值A(chǔ))修改為已保存的重組指令片段的地址A’ ;
[0414]S204,如果沒有找到相應(yīng)的記錄,獲取待調(diào)度的機(jī)器指令片段;其中,待調(diào)度的機(jī)器指令片段的最后一條指令為第一跳轉(zhuǎn)指令;
[0415]S205,在所述第一跳轉(zhuǎn)指令前,插入第二跳轉(zhuǎn)指令,生成具有第二地址的重組指令片段;所述第二跳轉(zhuǎn)指令指向指令重組平臺的入口地址,即執(zhí)行該第二跳轉(zhuǎn)指令后,執(zhí)行步驟 S201 ;
[0416]S206,將所述地址寄存器中的第一地址修改為第二地址;
[0417]S207,恢復(fù)所述指令運(yùn)行環(huán)境。
[0418]進(jìn)一步的,步驟S206還包括:利用第二地址A"與第一地址A在所述地址對應(yīng)表中建立地址對(或一條記錄)。具有地址A"的重組指令片段被保存在重組指令平臺中,以
供重用。
[0419]本方法利用地址對應(yīng)表,節(jié)省計(jì)算資源,提高運(yùn)行時(shí)指令重組的效率。[0420]上述重組方法一般通過在待調(diào)度指令片段之中插入所需跳轉(zhuǎn)指令完成,在本發(fā)明其他實(shí)施例中,也可以通過其他方式完成重組指令片段的生成。下面將結(jié)合實(shí)施例詳細(xì)介紹。
[0421]根據(jù)本發(fā)明另一個(gè)實(shí)施例,提供一種指令重組方法,單獨(dú)開辟存儲位置保存第一跳轉(zhuǎn)指令的目標(biāo)地址。如圖6所示,該方法SllO包括:
[0422]S111,緩存指令運(yùn)行環(huán)境;
[0423]S112,從第一存儲位置讀取目標(biāo)地址,根據(jù)目標(biāo)地址獲取待調(diào)度(即待執(zhí)行)的機(jī)器指令片段;其中,待調(diào)度機(jī)器指令片段的最后一條指令為第一跳轉(zhuǎn)指令;
[0424]S113,在第一存儲位置保存第一跳轉(zhuǎn)指令的目標(biāo)地址;
[0425]S114,將第一跳轉(zhuǎn)指令替換為第二跳轉(zhuǎn)指令,生成具有第二地址的重組指令片段;所述第二跳轉(zhuǎn)指令指向指令重組平臺的入口地址,即執(zhí)行該第二跳轉(zhuǎn)指令后,執(zhí)行步驟Slll ;
[0426]S115,恢復(fù)所述指令運(yùn)行環(huán)境,并跳轉(zhuǎn)到第二地址繼續(xù)執(zhí)行。
[0427]其中,在步驟S112中,獲取待調(diào)度的機(jī)器指令片段可以包括:
[0428]S1121、以跳轉(zhuǎn)指令為檢索目標(biāo),檢索所述機(jī)器指令地址指向的機(jī)器指令及其后續(xù)指令,直到發(fā)現(xiàn)第一個(gè)跳轉(zhuǎn)指令(稱為第一跳轉(zhuǎn)指令);
[0429]所述跳轉(zhuǎn)指令指能夠改變機(jī)器指令順序執(zhí)行流程的機(jī)器指令,包括Jump指令、Call指令、Return指令等;
[0430]S1122、將所述第一跳轉(zhuǎn)指令以及其之前的所有待調(diào)度的機(jī)器指令作為一個(gè)待調(diào)度的機(jī)器指令片段;將該機(jī)器指令片段保存在指令重組平臺中,或其他指令重組平臺能夠讀取的存儲位置。
[0431]在步驟S113中,目標(biāo)地址即跳轉(zhuǎn)指令的目標(biāo)地址參數(shù),其可以是立即數(shù)或變量參數(shù),對于立即數(shù)保存其值,對于變量參數(shù)保存其地址/引用。當(dāng)處理器即將執(zhí)行某跳轉(zhuǎn)指令時(shí),其跳轉(zhuǎn)目標(biāo)地址已經(jīng)計(jì)算完畢。
[0432]根據(jù)本發(fā)明另一個(gè)實(shí)施例,提供一種指令重組方法,針對非固定長度指令集進(jìn)行反匯編和匯編處理。如圖7所示,該方法包括:
[0433]S121,緩存指令運(yùn)行環(huán)境;
[0434]S122,從第一存儲位置讀取目標(biāo)地址,根據(jù)目標(biāo)地址獲取待調(diào)度指令片段:
[0435]從目標(biāo)地址開始,獲取待調(diào)度的一段機(jī)器指令,將該段機(jī)器指令進(jìn)行反匯編,并將反匯編結(jié)果通過一個(gè)詞法分析器進(jìn)行處理并匹配是否其中包含跳轉(zhuǎn)指令,如果不包含則繼續(xù)獲取下一段待調(diào)度的機(jī)器指令重復(fù)上述操作,直到匹配到跳轉(zhuǎn)指令為止,該跳轉(zhuǎn)指令為第一跳轉(zhuǎn)指令;第一跳轉(zhuǎn)指令以及之前的所有指令組成待調(diào)度指令片段;
[0436]S123,在第一存儲位置保存第一跳轉(zhuǎn)指令的目標(biāo)地址;
[0437]S124,將第一跳轉(zhuǎn)指令替換為第二跳轉(zhuǎn)指令,生成具有第二地址的重組指令片段;所述第二跳轉(zhuǎn)指令指向指令重組平臺的入口地址;本實(shí)施例中,該第一跳轉(zhuǎn)指令和第二跳轉(zhuǎn)指令皆為匯編指令;
[0438]S125,將生成的重組后的匯編代碼通過匯編器生成對應(yīng)的機(jī)器碼;和
[0439]S126,恢復(fù)所述指令運(yùn)行環(huán)境,并跳轉(zhuǎn)到第二地址繼續(xù)執(zhí)行。
[0440]根據(jù)本發(fā)明另一個(gè)實(shí)施例,提供一種指令重組方法,以壓棧指令替代或記錄第一跳轉(zhuǎn)指令。如圖8所示,該方法S130包括:
[0441]S131,緩存指令運(yùn)行環(huán)境;
[0442]S132,獲取棧中保存的跳轉(zhuǎn)指令的地址和參數(shù),計(jì)算下一條即將運(yùn)行的指令地址,該地址為第一地址;
[0443]S133,根據(jù)第一地址獲取待調(diào)度/執(zhí)行的機(jī)器指令片段;其中,待調(diào)度機(jī)器指令片段的最后一條指令為第一跳轉(zhuǎn)指令;
[0444]S134,替換第一跳轉(zhuǎn)指令為壓棧指令,在壓棧指令中記錄第一跳轉(zhuǎn)指令的地址和操作數(shù);
[0445]S135,在壓棧指令之后加入第二跳轉(zhuǎn)指令,生成具有第二地址的重組指令片段;所述第二跳轉(zhuǎn)指令指向指令重組平臺的入口地址;和
[0446]S136,恢復(fù)所述指令運(yùn)行環(huán)境,并跳轉(zhuǎn)到第二地址繼續(xù)執(zhí)行。
[0447]本領(lǐng)域普通技術(shù)人員可以理解,上述各個(gè)實(shí)施例中提供的功能或特征可以根據(jù)實(shí)際的需要疊加在同一個(gè)實(shí)施例中,這里就不再一一組合給出,下面只舉一個(gè)例子進(jìn)行示例性說明。
[0448]根據(jù)本發(fā)明另一個(gè)實(shí)施例,提供一種指令重組方法,如圖9a所示,包括:
[0449](I)緩存指令運(yùn)行環(huán)境,所述指令運(yùn)行環(huán)境包括全部的CPU環(huán)境和內(nèi)存環(huán)境;獲取棧中保存的跳轉(zhuǎn)指令的地址和參數(shù),計(jì)算下一條即將運(yùn)行的指令地址(第零地址),將第一地址設(shè)置為第零地址;
[0450](2)利用第一地址來查找地址對應(yīng)表(也稱為地址查找表),如果找到記錄,恢復(fù)所緩存的指令運(yùn)行環(huán)境,并跳轉(zhuǎn)到找到的對應(yīng)地址(在地址對應(yīng)表中的地址對內(nèi))繼續(xù)執(zhí)行;
[0451](3)如果沒有找到記錄,從第一地址開始獲取待執(zhí)行的機(jī)器指令片段,指令片段的結(jié)尾為跳轉(zhuǎn)指令(跳轉(zhuǎn)指令所在地址為第三地址);
[0452](4)從第一地址開始,將機(jī)器碼進(jìn)行反匯編,并將反匯編結(jié)果通過一個(gè)詞法分析器進(jìn)行處理,生成重組后的匯編代碼,直到第三地址為止;
[0453](5)判斷第三地址處的代碼是否可以進(jìn)一步處理,即第三地址處的跳轉(zhuǎn)指令的目標(biāo)地址為已知量(例如,立即數(shù)),如果可以,將第一地址設(shè)置為第三地址(或第三地址的目標(biāo)地址),重新開始執(zhí)行(3);
[0454](6)如果不可以,在生成的重組后的匯編代碼最后,加入壓棧指令記錄當(dāng)前第三地址的原始地址位置(即第三地址的值)和操作數(shù),并在壓棧指令之后加入跳轉(zhuǎn)至重組平臺開始的指令,即能夠使步驟(I)再次開始執(zhí)行;
[0455](7)將生成的重組后的匯編代碼通過匯編器生成對應(yīng)的機(jī)器碼,并存儲于重組地址空間中分配出的地址(第二地址),并將第二地址和第零地址以對應(yīng)地址對的形式存儲于地址對應(yīng)表中;
[0456](8)恢復(fù)環(huán)境,并跳轉(zhuǎn)到第二地址繼續(xù)執(zhí)行。
[0457]為了方便理解,現(xiàn)以X86體系處理器運(yùn)行該實(shí)施例提供的方法進(jìn)行說明,參考圖9b-9d,指令重組的一個(gè)示例過程如下:
[0458](I)重組平臺開始工作后,首先緩存當(dāng)前指令運(yùn)行環(huán)境;獲取棧中保存的跳轉(zhuǎn)指令的地址和參數(shù),計(jì)算下一條即將運(yùn)行的指令地址,該地址為第一地址。[0459](2)利用第一地址來查找地址對應(yīng)表,如果找到記錄,恢復(fù)所緩存的指令運(yùn)行環(huán)境,并跳轉(zhuǎn)到找到的對應(yīng)地址繼續(xù)執(zhí)行(圖%);如果沒有找到記錄,進(jìn)行如下操作(圖9c)。
[0460](3) - (6)從第一地址開始,將機(jī)器碼進(jìn)行反匯編,并將反匯編結(jié)果通過一個(gè)詞法分析器進(jìn)行處理,生成重組代碼;
[0461]對該段匯編代碼進(jìn)行檢索,檢查是否包含跳轉(zhuǎn)指令;
[0462]對第一個(gè)跳轉(zhuǎn)指令進(jìn)行分析,判斷其跳轉(zhuǎn)目標(biāo)地址是否為已知量,如果是已知量,則繼續(xù)尋找,直到找到第一條參數(shù)地址跳轉(zhuǎn)指令,稱為第一跳轉(zhuǎn)指令,該指令的地址為第三地址;
[0463]在生成的匯編代碼(從第一地址到第三地址的機(jī)器指令,不包括第一跳轉(zhuǎn)指令)最后加入壓棧指令記錄當(dāng)前第三地址的第一跳轉(zhuǎn)的原始地址位置和操作數(shù);
[0464]在壓棧指令之后加入跳轉(zhuǎn)至重組平臺開始的指令(第二跳轉(zhuǎn)指令)。
[0465](7)將生成的匯編代碼通過匯編器生成對應(yīng)的機(jī)器碼,并存儲于重組地址空間中分配出的地址(第二地址);
[0466]將第二地址和第零地址以對應(yīng)地址對的形式存儲于地址對應(yīng)表中。
[0467](8)恢復(fù)環(huán)境,并跳轉(zhuǎn)到第二地址繼續(xù)執(zhí)行。
[0468](圖9d)處理器開始執(zhí)行第二地址的指令,之前的待重組指令片段中的跳轉(zhuǎn)指令已經(jīng)替換為壓棧指令和跳轉(zhuǎn)去重組平臺的指令,壓棧指令主要的目的是向重組平臺提供輸入?yún)?shù)。(圖9d)當(dāng)執(zhí)行到第二跳轉(zhuǎn)指令時(shí),重組平臺重新得到執(zhí)行,進(jìn)行上述的步驟(I),通過查看壓棧指令中保存的跳轉(zhuǎn)指令的地址和參數(shù),計(jì)算下一條即將運(yùn)行的指令地址,該地址為第一地址。
[0469]之后的處理即上述過程的循環(huán)。
[0470]進(jìn)一步的,為了從系統(tǒng)啟動后即執(zhí)行運(yùn)行時(shí)的指令監(jiān)控,實(shí)現(xiàn)計(jì)算設(shè)備運(yùn)行階段的運(yùn)行時(shí)指令全監(jiān)控,本發(fā)明另一個(gè)實(shí)施例中,修改計(jì)算機(jī)啟動時(shí)的load指令,在load指令執(zhí)行前調(diào)用本發(fā)明提供的指令重組平臺,執(zhí)行上述運(yùn)行時(shí)指令重組方法,由于load指令跳轉(zhuǎn)地址為已知的固定地址,指令重組平臺可以事先建立好地址對應(yīng)表及該第一條記錄,并建立好第一個(gè)重組指令片段。
[0471]進(jìn)一步的,根據(jù)本發(fā)明另一個(gè)實(shí)施例,提供一種計(jì)算機(jī)可讀介質(zhì),其中,所述可讀介質(zhì)中存儲有計(jì)算機(jī)可執(zhí)行的程序代碼,所述程序代碼用于執(zhí)行上述實(shí)施例中提供的運(yùn)行時(shí)指令重組方法的步驟。
[0472]進(jìn)一步的,根據(jù)本發(fā)明另一個(gè)實(shí)施例,提供一種計(jì)算機(jī)程序,其中,所述計(jì)算機(jī)程序包含上述實(shí)施例中提供的運(yùn)行時(shí)指令重組方法的步驟。
[0473]針對數(shù)據(jù)安全的指令重組
[0474]上述的運(yùn)行時(shí)指令重組方法為進(jìn)一步的應(yīng)用提供了基礎(chǔ)。下面的實(shí)施例中提供了各種針對不同機(jī)器指令進(jìn)行處理的運(yùn)行時(shí)指令重組方法,其中包括存儲/讀取指令,I/O指令,以及網(wǎng)絡(luò)傳輸指令:
[0475](I)存儲/讀取指令指計(jì)算機(jī)系統(tǒng)中所有對外部存儲設(shè)備(包括但不限于磁盤、移動存儲、光存儲)進(jìn)行存儲/讀取的指令或指令組合。
[0476](2) I/O指令指計(jì)算機(jī)系統(tǒng)中所有操作外設(shè)的地址空間的指令,這些指令最終會影響外設(shè)輸入輸出狀態(tài)、數(shù)據(jù)、信號等。這里的輸入輸出地址空間包括但不限于(I/O地址空間、內(nèi)存映射I/O設(shè)備地址空間)。
[0477](3)網(wǎng)絡(luò)傳輸指令指計(jì)算機(jī)系統(tǒng)中所有影響網(wǎng)絡(luò)設(shè)備的指今,這些指令最終會影響計(jì)算機(jī)系統(tǒng)網(wǎng)絡(luò)設(shè)備的傳輸、狀態(tài)、數(shù)據(jù)、信號等所有相關(guān)特性。
[0478]其中,存儲/讀取指令與I/O指令之間可以存在交集。
[0479]根據(jù)本發(fā)明一個(gè)實(shí)施例,提供一種針對存儲/讀取指令的運(yùn)行時(shí)指令重組方法S400,包括:
[0480]S401,緩存指令運(yùn)行環(huán)境;所述指令運(yùn)行環(huán)境包括地址寄存器,地址寄存器保存下一條將要運(yùn)行的機(jī)器指令的地址,該地址為第一地址;
[0481]S402,利用所述第一地址查找地址對應(yīng)表;
[0482]S403,如果找到相應(yīng)的記錄,將所述第一地址A修改為已保存的重組指令片段的地址A’ ;
[0483]S404,如果沒有找到相應(yīng)的記錄,重組指令片段的生成方法包括:
[0484]S4041,獲取待調(diào)度機(jī)器指令片段;其中,待調(diào)度的機(jī)器指令片段的最后一條指令為第一跳轉(zhuǎn)指令;與步驟S102相同;
[0485]S4042,反匯編所述待調(diào)度機(jī)器指令片段,得到匯編指令片段;
[0486]S4043,檢索目標(biāo)匯編指令,所述目標(biāo)匯編指令為存儲/讀取指令;
[0487]S4044,如果檢索得到所述匯編指令片段中的存儲/讀取指令,修改其中的存儲和讀取地址為安全存儲設(shè)備上的地址;修改方式可以為本地地址空間和安全存儲設(shè)備地址空間之間的直接映射;
[0488]S4045,在所述第一跳轉(zhuǎn)指令JPl前,插入第二跳轉(zhuǎn)指令JP2,所述JP2指向指令重組平臺的入口地址;
[0489]S4046,匯編修改過的匯編指令片段,生成具有地址A"的重組機(jī)器指令片段;
[0490]S4047,利用重組機(jī)器指令片段地址A"與第一地址A在所述地址對應(yīng)表中建立一條記錄(或地址對),具有地址A"的重組指令片段被保存在重組指令平臺中;
[0491]S4048,將第一地址A修改為第二地址A";
[0492]S405,恢復(fù)所述指令運(yùn)行環(huán)境。
[0493]本實(shí)施例是在反匯編步驟之后進(jìn)行指令處理的;在其他實(shí)施例中,也可以省略反匯編和對應(yīng)的匯編步驟,直接處理機(jī)器指令。
[0494]在步驟S4044中,針對存儲和讀取指令進(jìn)行操作,修改其中的目標(biāo)和源地址,以實(shí)現(xiàn)存儲重定位/重定向,確保數(shù)據(jù)安全。更具體的安全存儲/讀取的方法將在本發(fā)明提供的下面的實(shí)施例中介紹。
[0495]根據(jù)本發(fā)明一個(gè)實(shí)施例,提供一種針對I/O指令的運(yùn)行時(shí)指令重組方法S500,包括:
[0496]S501,緩存指令運(yùn)行環(huán)境;所述指令運(yùn)行環(huán)境包括地址寄存器,地址寄存器保存下一條將要運(yùn)行的機(jī)器指令的地址,該地址為第一地址;
[0497]S502,利用所述第一地址查找地址對應(yīng)表;
[0498]S503,如果找到相應(yīng)的記錄,將所述第一地址A修改為已保存的重組指令片段的地址A’ ;[0499]S504,如果沒有找到相應(yīng)的記錄,重組指令片段的生成方法包括:
[0500]S5041,獲取待調(diào)度機(jī)器指令片段;其中,待調(diào)度的機(jī)器指令片段的最后一條指令為第一跳轉(zhuǎn)指令;與步驟S102相同;
[0501]S5042,反匯編所述機(jī)器指令片段,得到匯編指令片段;
[0502]S5043,檢索目標(biāo)匯編指令,所述目標(biāo)匯編指令為I/O指令;
[0503]S5044,如果檢索得到所述匯編指令片段中的I/O指令,將所述I/O指令中的輸入指令全部阻止;
[0504]S5045,在所述第一跳轉(zhuǎn)指令JPl前,插入第二跳轉(zhuǎn)指令JP2,所述JP2指向指令重組平臺的入口地址;
[0505]S5046,匯編修改過的匯編指令片段,生成具有地址A"的重組機(jī)器指令片段;
[0506]S5047,利用重組機(jī)器指令片段地址A"與第一地址A在所述地址對應(yīng)表中建立一條記錄(或地址對),具有地址A"的重組指令片段被保存在重組指令平臺中;
[0507]S5048,將第一地址A修改為第二地址A";
[0508]S505,恢復(fù)所述指令運(yùn)行環(huán)境。
[0509]本實(shí)施例是在反匯編步驟之后進(jìn)行指令處理的;在其他實(shí)施例中,也可以省略反匯編和對應(yīng)的匯編步驟,直接處理機(jī)器指令。
[0510]在步驟S5044中,針對I/O指令進(jìn)行操作,將所述I/O指令中的輸入指令全部阻止,以實(shí)現(xiàn)徹底阻斷對本地硬件設(shè)備的寫操作;結(jié)合上一個(gè)實(shí)施例中的存儲指令處理過程,還可以實(shí)現(xiàn)對除存儲指令之外的輸入指令的阻止,可以提高計(jì)算設(shè)備中的數(shù)據(jù)安全性。
[0511]根據(jù)本發(fā)明一個(gè)實(shí)施例,提供一種針對網(wǎng)絡(luò)傳輸指令的運(yùn)行時(shí)指令重組方法S600,包括:
[0512]S601,緩存指令運(yùn)行環(huán)境;所述指令運(yùn)行環(huán)境包括地址寄存器,地址寄存器保存下一條將要運(yùn)行的機(jī)器指令的地址,該地址為第一地址;
[0513]S602,利用所述第一地址查找地址對應(yīng)表;
[0514]S603,如果找到相應(yīng)的記錄,將所述第一地址A修改為已保存的重組指令片段的地址A’ ;
[0515]S604,如果沒有找到相應(yīng)的記錄,重組指令片段的生成方法包括:
[0516]S6041,獲取待調(diào)度機(jī)器指令片段;其中,待調(diào)度的機(jī)器指令片段的最后一條指令為第一跳轉(zhuǎn)指令;與步驟S102相同;
[0517]S6042,反匯編所述待調(diào)度機(jī)器指令片段,得到匯編指令片段;
[0518]S6043,檢索目標(biāo)匯編指令,所述目標(biāo)匯編指令為網(wǎng)絡(luò)傳輸指令;
[0519]S6044,如果檢索得到所述匯編指令片段中的網(wǎng)絡(luò)傳輸指令,檢驗(yàn)所述網(wǎng)絡(luò)傳輸指令中的目標(biāo)地址對應(yīng)的遠(yuǎn)端計(jì)算設(shè)備是否為安全地址(即可訪問地址),如果不是,阻止所述網(wǎng)絡(luò)傳輸指令;
[0520]S6045,在所述第一跳轉(zhuǎn)指令JPl前,插入第二跳轉(zhuǎn)指令JP2,所述JP2指向指令重組平臺的入口地址;
[0521]S6046,匯編修改過的匯編指令片段,生成具有地址A"的重組機(jī)器指令片段;
[0522]S6047,利用重組機(jī)器指令片段地址A"與第一地址A在所述地址對應(yīng)表中建立一條記錄(或地址對),具有地址A"的重組指令片段被保存在重組指令平臺中;[0523]S6048,將第一地址A修改為第二地址A";
[0524]S605,恢復(fù)所述指令運(yùn)行環(huán)境。
[0525]在步驟S6044中,阻止/拒絕網(wǎng)絡(luò)傳輸指令可以通過在重組后的代碼中插入一到多條指令來將本身的傳輸指令替換為“取消當(dāng)前操作的指令”或直接替換為無效指令,要視硬件的不同而定。
[0526]本實(shí)施例是在反匯編步驟之后進(jìn)行指令處理的;在其他實(shí)施例中,也可以省略反匯編和對應(yīng)的匯編步驟,直接處理機(jī)器指令。
[0527]在步驟S6044中,針對網(wǎng)絡(luò)傳輸指令進(jìn)行操作,檢驗(yàn)所述網(wǎng)絡(luò)傳輸指令中的目標(biāo)地址對應(yīng)的遠(yuǎn)端計(jì)算設(shè)備是否為安全地址;如果不是,阻止所述網(wǎng)絡(luò)傳輸指令,以實(shí)現(xiàn)數(shù)據(jù)安全傳輸。
[0528]上述多個(gè)實(shí)施例中的地址對應(yīng)表是由指令重組平臺建立并維護(hù)的,可以是固定長度的數(shù)組結(jié)構(gòu),也可以是可變長度的鏈表結(jié)構(gòu),還可以是其他存儲二元數(shù)據(jù)的適當(dāng)?shù)臄?shù)據(jù)結(jié)構(gòu)。優(yōu)選的,其長度可調(diào)節(jié),并且其占用空間可釋放。釋放地址對應(yīng)表的操作可以隨機(jī)進(jìn)行,也可以周期進(jìn)行。在一些實(shí)施例中,所述的地址對應(yīng)表還可以包括記錄建立時(shí)間字段,用于在釋放空間刪除記錄時(shí),按照建立時(shí)間的長短刪除記錄。在一些實(shí)施例中,所述的地址對應(yīng)表還可以包括記錄使用次數(shù)字段,在查找地址對應(yīng)表步驟中,如果找到,將改變該字段的值;所述記錄使用次數(shù)字段也用于在釋放空間刪除記錄時(shí),按照使用次數(shù)的多少刪除記錄。
[0529]另外,本領(lǐng)域的技術(shù)人員可以理解,上述指令重組方法(即運(yùn)行時(shí)指令重組方法)可使用軟件或硬件的方法實(shí)現(xiàn):
[0530](I)如果以軟件實(shí)現(xiàn),則上述方法對應(yīng)的步驟以軟件代碼的形式存儲在計(jì)算機(jī)可讀介質(zhì)上,成為軟件產(chǎn)品;
[0531](2)如果以硬件實(shí)現(xiàn),則上述方法對應(yīng)的步驟以硬件代碼(例如Verilog)描述,并固化(經(jīng)過物理設(shè)計(jì)/布局布線/晶圓廠流片等過程)成為芯片產(chǎn)品(例如處理器產(chǎn)品)。下面將詳細(xì)介紹。
[0532]指令重組裝置
[0533]與上述運(yùn)行時(shí)指令重組方法SlOO相對應(yīng),根據(jù)本發(fā)明一個(gè)實(shí)施例,提供一種運(yùn)行時(shí)指令重組裝置。如圖10所示,指令重組裝置500包括:
[0534]指令運(yùn)行環(huán)境緩存和恢復(fù)單元501,適于緩存和恢復(fù)指令運(yùn)行環(huán)境;所述指令運(yùn)行環(huán)境包括地址寄存器,該地址寄存器保存下一條將要運(yùn)行的機(jī)器指令的地址,該地址為第一地址;
[0535]指令獲取單元502,適于在單元501緩存指令運(yùn)行環(huán)境后,獲取待調(diào)度的機(jī)器指令片段;其中,待調(diào)度的機(jī)器指令片段的最后一條指令為第一跳轉(zhuǎn)指令;
[0536]指令重組單元503,適于解析、修改所述待調(diào)度的機(jī)器指令片段,包括:在第一跳轉(zhuǎn)指令前,插入第二跳轉(zhuǎn)指令,生成具有第二地址A"的重組指令片段;所述第二跳轉(zhuǎn)指令指向裝置500,即執(zhí)行該第二跳轉(zhuǎn)指令后,裝置500的指令運(yùn)行環(huán)境緩存和恢復(fù)單元501進(jìn)行下一次處理;和
[0537]地址替換單元504,適于將所述緩存的指令運(yùn)行環(huán)境中的地址寄存器的值修改為重組指令片段的地址。[0538]所述指令運(yùn)行環(huán)境緩存和恢復(fù)單元501分別與指令獲取單元502以及地址替換單元504耦接,所述指令獲取單元502,指令重組單元503和地址替換單元504依次耦接。
[0539]裝置500執(zhí)行過程如下:
[0540]首先,指令運(yùn)行環(huán)境緩存和恢復(fù)單元501緩存指令運(yùn)行環(huán)境,例如向緩存棧中壓入指令運(yùn)行相關(guān)的寄存器數(shù)據(jù);
[0541]然后,所述指令獲取單元502從CPU地址寄存器511讀取待調(diào)度的機(jī)器指令地址,并從所述機(jī)器指令地址讀取機(jī)器指令片段,所述機(jī)器指令片段最后一條指令為跳轉(zhuǎn)指令;
[0542]例如,指令獲取單元502從CPU地址寄存器511讀取待調(diào)度的機(jī)器指令地址;以跳轉(zhuǎn)指令為檢索目標(biāo),檢索所述機(jī)器指令地址對應(yīng)的機(jī)器指令,直到發(fā)現(xiàn)第一個(gè)跳轉(zhuǎn)指令;所述跳轉(zhuǎn)指令包括例如Jump指令和Call指令等;將所述第一個(gè)跳轉(zhuǎn)指令及其之前的所有機(jī)器指令作為一個(gè)待調(diào)度的機(jī)器指令片段;將該機(jī)器指令片段保存在裝置500中,或其他的裝置500能夠讀取的存儲位置;
[0543]然后,指令重組單元503在所述獲取的機(jī)器指令片段的最后一條指令前,插入第二跳轉(zhuǎn)指令,所述第二跳轉(zhuǎn)指令指向裝置500的入口地址,生成具有地址A"的重組指令片段;
[0544]然后,地址替換單元504將所述緩存的指令運(yùn)行環(huán)境中的地址寄存器的值A(chǔ)修改為地址A";
[0545]最后,指令運(yùn)行環(huán)境緩存和恢復(fù)單元501恢復(fù)所述指令運(yùn)行環(huán)境,例如從緩存棧中彈出指令運(yùn)行相關(guān)的寄存器數(shù)據(jù)。
[0546]與上述運(yùn)行時(shí)指令重組方法S300相對應(yīng),所述指令獲取單元502可以將第一個(gè)非常數(shù)地址跳轉(zhuǎn)指令作為第一跳轉(zhuǎn)指令。以提高重組裝置的執(zhí)行效率。
[0547]與上述運(yùn)行時(shí)指令重組方法S200相對應(yīng),根據(jù)本發(fā)明另一個(gè)實(shí)施例,提供一種運(yùn)行時(shí)指令重組裝置,能夠充分利用運(yùn)行時(shí)指令重復(fù)性,提高效率,節(jié)省計(jì)算資源。
[0548]如圖11所示,指令重組裝置600包括:
[0549]指令運(yùn)行環(huán)境緩存和恢復(fù)單元601,適于緩存和恢復(fù)指令運(yùn)行環(huán)境;所述指令運(yùn)行環(huán)境包括地址寄存器,地址寄存器保存下一條將要運(yùn)行的機(jī)器指令的地址,該地址為第一地址;
[0550]指令獲取單元602,適于獲取待調(diào)度的機(jī)器指令片段;其中,待調(diào)度的機(jī)器指令片段的最后一條指令為第一跳轉(zhuǎn)指令;
[0551]指令重組單元603,適于解析、修改所述待調(diào)度機(jī)器指令片段,包括:在第一跳轉(zhuǎn)指令前插入第二跳轉(zhuǎn)指令,以生成具有第二地址的重組指令片段;所述第二跳轉(zhuǎn)指令指向裝置600,即執(zhí)行該第二跳轉(zhuǎn)指今后,裝置600的指令運(yùn)行環(huán)境緩存和恢復(fù)單元601進(jìn)行下一次處理;
[0552]地址替換單元604,適于將所述緩存的指令運(yùn)行環(huán)境中的地址寄存器的值修改為重組指令片段的地址;和
[0553]指令檢索單元605,適于利用所述第一地址查找地址對應(yīng)表;所述地址對應(yīng)表用于表示第一地址A指向的待調(diào)度指令片段是否具有已保存的重組指令片段,地址對應(yīng)表的數(shù)據(jù)為地址對;
[0554]如果找到相應(yīng)的記錄,指令檢索單元605適于調(diào)用地址替換單元604,將所述第一地址A(即地址寄存器的值A(chǔ))修改為已保存的重組指令片段的地址A’ ;如果沒有找到相應(yīng)的記錄,指令檢索單元適于利用第二地址A"與地址A在所述地址對應(yīng)表中建立一條記錄。
[0555]所述指令運(yùn)行環(huán)境緩存和恢復(fù)單元601分別與指令檢索單元605以及地址替換單元604耦接,所述指令檢索單元605分別與指令獲取單元602,指令重組單元603和地址替換單元604耦接,所述指令獲取單元602、指令重組單元603和地址替換單元604依次耦接。
[0556]裝置600的執(zhí)行過程如下:
[0557]首先,指令運(yùn)行環(huán)境緩存和恢復(fù)單元601緩存指令運(yùn)行環(huán)境,例如向緩存棧中壓入指令運(yùn)行相關(guān)的寄存器數(shù)據(jù);
[0558]然后,指令檢索單元605利用所述緩存的指令運(yùn)行環(huán)境中的地址寄存器的值A(chǔ)查找地址對應(yīng)表;
[0559]如果找到相應(yīng)的記錄,指令檢索單元605調(diào)用地址替換單元604,地址替換單元604將所述地址寄存器的值A(chǔ)修改為記錄中的值A(chǔ)’ ;地址替換單元604調(diào)用指令運(yùn)行環(huán)境緩存和恢復(fù)單元602,以恢復(fù)所述指令運(yùn)行環(huán)境,即從緩存棧中彈出指令運(yùn)行相關(guān)的寄存器數(shù)據(jù),本次重組操作結(jié)束;
[0560]如果沒有找到相應(yīng)的記錄,所述指令獲取單元602從CPU地址寄存器讀取待調(diào)度的機(jī)器指令地址,并從所述機(jī)器指令地址讀取機(jī)器指令片段,所述機(jī)器指令片段最后一條指令為跳轉(zhuǎn)指令。具體的,指令獲取單元602從CPU地址寄存器讀取待調(diào)度的機(jī)器指令地址;以跳轉(zhuǎn)指令為檢索目標(biāo),檢索所述機(jī)器指令地址對應(yīng)的機(jī)器指令,直到發(fā)現(xiàn)第一個(gè)跳轉(zhuǎn)指令;所述跳轉(zhuǎn)指令包括Jump指令和Call指令等;將所述第一個(gè)跳轉(zhuǎn)指令及其之前的所有機(jī)器指令作為一個(gè)待調(diào)度的機(jī)器指令片段;將該機(jī)器指令片段保存在裝置600中,或其他的裝置600能夠讀取的存儲位置;
[0561]然后,指令重組單元603在所述獲取的機(jī)器指令片段的最后一條指令前,插入第二跳轉(zhuǎn)指令,所述第二跳轉(zhuǎn)指令指向裝置600的入口地址,生成具有地址A"的重組指令片段;
[0562]然后,指令重組單元603將地址A"發(fā)送給指令檢索單元605,指令檢索單元605利用地址A"與地址A在其中的地址對應(yīng)表中建立一條記錄;以備后續(xù)指令重用;
[0563]然后,地址替換單元604將所述緩存的指令運(yùn)行環(huán)境中的地址寄存器的值A(chǔ)修改為地址A";
[0564]最后,指令運(yùn)行環(huán)境緩存和恢復(fù)單元601恢復(fù)所述指令運(yùn)行環(huán)境,即從緩存棧中彈出指令運(yùn)行相關(guān)的寄存器數(shù)據(jù)。
[0565]繼續(xù)參考圖11,其中,指令重組單元603還可以包括:
[0566]指令解析單元6031,適于利用指令集匹配所述機(jī)器指令片段,得到待處理的目標(biāo)機(jī)器指今(即利用目標(biāo)指令檢索待調(diào)度的機(jī)器指令片段);所述指令集包括X86,MIPS和ARM指令集;
[0567]指令修改單元6032,適于按照預(yù)定的方式,修改所述目標(biāo)機(jī)器指令。
[0568]例如,如果所述目標(biāo)指令為存儲/讀取指令,所述指令解析單元6031將負(fù)責(zé)獲取待調(diào)度的機(jī)器指令片段中的存儲/讀取指今,所述指令修改單元6032修改其中的存儲和讀取地址為安全存儲設(shè)備上的地址。其作用和效果與上述對應(yīng)的方法實(shí)施例S400相同,這里不再贅述。
[0569]又例如,如果所述目標(biāo)指令為I/O指令,所述指令解析單元6031將負(fù)責(zé)獲取待調(diào)度的機(jī)器指令片段中的I/o指令,所述指令修改單元6032將所述I/O指令中的輸入指令全部阻止。其作用和效果與上述對應(yīng)的方法實(shí)施例S500相同,這里不再贅述。
[0570]又例如,如果所述目標(biāo)指令為網(wǎng)絡(luò)傳輸指令,所述指令解析單元6031將負(fù)責(zé)獲取待調(diào)度的機(jī)器指令片段中的網(wǎng)絡(luò)傳輸指令,所述指令修改單元6032檢驗(yàn)所述網(wǎng)絡(luò)傳輸指令中的目標(biāo)地址對應(yīng)的遠(yuǎn)端計(jì)算設(shè)備是否為安全地址;如果不是,所述指令修改單元適于阻止所述網(wǎng)絡(luò)傳輸指令。其作用和效果與上述對應(yīng)的方法實(shí)施例S600相同,這里不再贅述。
[0571]根據(jù)本發(fā)明另一個(gè)實(shí)施例,上述指令重組單元還可以包括反匯編單元和匯編單元。如圖12所示,指令重組單元703包括:依次稱接的反匯編單元7031,指令解析單元7032,指令修改單元7033和匯編單元7034。
[0572]其中,反匯編單元7031適于在解析、修改所述待調(diào)度的機(jī)器指令片段之前,反匯編所述待調(diào)度的機(jī)器指令片段,生成待調(diào)度的匯編指令片段;發(fā)送給指令解析單元7032。
[0573]匯編單元7034適于在解析、修改所述待調(diào)度的機(jī)器指令片段之后,匯編重組后的匯編指令片段,得到機(jī)器碼表示的重組指令片段;發(fā)送給指令替換單元。
[0574]在該實(shí)施例中,所述指令解析單元7032和指令修改單元7033將操作待調(diào)度的匯編指令片段。
[0575]與上述運(yùn)行時(shí)指令重組方法SllO相對應(yīng),根據(jù)本發(fā)明另一個(gè)實(shí)施例,提供一種運(yùn)行時(shí)指令重組裝置。如圖13所示,指令重組裝置800包括:
[0576]指令運(yùn)行環(huán)境緩存和恢復(fù)單元801,適于緩存指令運(yùn)行環(huán)境;
[0577]指令獲取單元802和第一存儲位置803,其中,指令獲取單元802適于從第一存儲位置803讀取目標(biāo)地址,并根據(jù)目標(biāo)地址獲取待調(diào)度/執(zhí)行的機(jī)器指令片段;其中,待調(diào)度機(jī)器指令片段的最后一條指令為第一跳轉(zhuǎn)指令;以及
[0578]指令重組單元804,適于在第一存儲位置803保存第一跳轉(zhuǎn)指令的目標(biāo)地址,將第一跳轉(zhuǎn)指令替換為第二跳轉(zhuǎn)指令,生成具有第二地址的重組指令片段;所述第二跳轉(zhuǎn)指令指向裝置800的入口地址。
[0579]其中,指令運(yùn)行環(huán)境緩存和恢復(fù)單元801還適于在指令重組單元804替換指令之后,恢復(fù)所述指令運(yùn)行環(huán)境,并跳轉(zhuǎn)到第二地址繼續(xù)執(zhí)行。
[0580]裝置800的執(zhí)行過程如下:
[0581]首先,指令運(yùn)行環(huán)境緩存和恢復(fù)單元801緩存指令運(yùn)行環(huán)境;
[0582]然后,指令獲取單元802從第一存儲位置803讀取目標(biāo)地址(待調(diào)度指令地址),根據(jù)目標(biāo)地址獲取待調(diào)度機(jī)器指令片段;其中,待調(diào)度機(jī)器指令片段的最后一條指令為第一跳轉(zhuǎn)指令;
[0583]然后,指令重組單元804在第一存儲位置803保存第一跳轉(zhuǎn)指令的目標(biāo)地址;對于立即數(shù)保存其值,對于變量參數(shù)保存其地址/引用;
[0584]然后,指令重組單元804將第一跳轉(zhuǎn)指令替換為第二跳轉(zhuǎn)指令,生成具有第二地址的重組指令片段;
[0585]最后,指令運(yùn)行環(huán)境緩存和恢復(fù)單元801恢復(fù)所述指令運(yùn)行環(huán)境,并跳轉(zhuǎn)到第二地址繼續(xù)執(zhí)行。
[0586]根據(jù)本發(fā)明另一個(gè)實(shí)施例,提供一種運(yùn)行時(shí)指令重組裝置,與上述方法S130相對應(yīng),并且包含上述某些實(shí)施例中提供的裝置的特征。如圖14所示,該裝置900包括:
[0587]指令運(yùn)行環(huán)境緩存和恢復(fù)單元901,適于緩存和恢復(fù)指令運(yùn)行環(huán)境;
[0588]指令獲取單元902,適于通過輸入?yún)?shù)計(jì)算的方式獲取下一條即將運(yùn)行的指令地址,該地址為第一地址;還適于根據(jù)第一地址獲取待調(diào)度/執(zhí)行的機(jī)器指令片段;其中,待調(diào)度機(jī)器指令片段的最后一條指令為第一跳轉(zhuǎn)指令;
[0589]指令重組單元903,適于替換第一跳轉(zhuǎn)指令為壓棧指令,在壓棧指令中記錄第一跳轉(zhuǎn)指令的地址和操作數(shù);還適于在壓棧指令之后加入第二跳轉(zhuǎn)指令,生成具有第二地址的重組指令片段;所述第二跳轉(zhuǎn)指令指向裝置900的入口地址;還適于將重組指令片段的第二地址與第一地址在地址對應(yīng)表中建立一條記錄;
[0590]指令檢索單元904,適于利用所述第一地址查找地址對應(yīng)表;所述地址對應(yīng)表用于表示第一地址指向的待調(diào)度指令片段是否具有已保存的重組指令片段,地址對應(yīng)表的數(shù)據(jù)為地址對;
[0591]如果找到相應(yīng)的記錄,指令檢索單元904適于調(diào)用指令運(yùn)行環(huán)境緩存和恢復(fù)單元901恢復(fù)所緩存的指令運(yùn)行環(huán)境,并跳轉(zhuǎn)到找到的對應(yīng)地址繼續(xù)執(zhí)行(重組操作完成);
[0592]如果沒有找到相應(yīng)的記錄,調(diào)用指令重組單元903進(jìn)行重組操作。
[0593]其中,指令重組單元903還可以包括反匯編單元9031,指令解析單元9032,指令修改單元9033,和匯編單元9034。
[0594]其中,當(dāng)指令重組單元902完成重組后,適于調(diào)用指令運(yùn)行環(huán)境緩存和恢復(fù)單元901恢復(fù)所緩存的指令運(yùn)行環(huán)境,并跳轉(zhuǎn)到重組指令片段的地址繼續(xù)執(zhí)行(本次重組操作完成)。
[0595]根據(jù)本發(fā)明另一個(gè)實(shí)施例,上述反匯編單元9031可以位于指令獲取單元902之中,在獲取待調(diào)度的指令片段時(shí)由其進(jìn)行反匯編操作。
[0596]本領(lǐng)域技術(shù)人員可以理解,上述裝置實(shí)施例的附圖中的數(shù)據(jù)流的箭頭只是為了便于解釋上述實(shí)施例中的具體操作流程,并不限定圖中各個(gè)單元之間的數(shù)據(jù)流向或者連接方向,裝置中各個(gè)單元之間為耦接關(guān)系。
[0597]上面通過一些實(shí)施例詳細(xì)的介紹了運(yùn)行時(shí)指令重組方法和裝置,其與現(xiàn)有技術(shù)相t匕,具有以下優(yōu)點(diǎn):
[0598]通過指令重組方法,可以在指令運(yùn)行狀態(tài)下監(jiān)控計(jì)算設(shè)備的指令;
[0599]利用地址對應(yīng)表,提高了指令重組效率,節(jié)省了計(jì)算資源;
[0600]針對存儲和讀取指令進(jìn)行操作,修改其中的目標(biāo)和源地址,以實(shí)現(xiàn)存儲重定位/重定向,確保數(shù)據(jù)安全;
[0601]針對I/O指令進(jìn)行操作,將所述I/O指令中的輸入指令全部阻止,以實(shí)現(xiàn)徹底阻斷對本地硬件設(shè)備的寫操作;還可以實(shí)現(xiàn)對除存儲指令之外的輸入指令的阻止,可以提高計(jì)算設(shè)備中的數(shù)據(jù)安全性;
[0602]針對網(wǎng)絡(luò)傳輸指令進(jìn)行操作,檢驗(yàn)所述網(wǎng)絡(luò)傳輸指令中的目標(biāo)地址對應(yīng)的遠(yuǎn)端計(jì)算設(shè)備是否為安全地址;如果不是,阻止所述網(wǎng)絡(luò)傳輸指令,以實(shí)現(xiàn)數(shù)據(jù)安全傳輸。
_3] 數(shù)據(jù)安全存取過程[0604]圖15是本發(fā)明一個(gè)實(shí)施例中計(jì)算設(shè)備的系統(tǒng)層次示意圖。
[0605]其中,計(jì)算設(shè)備(例如計(jì)算機(jī)終端系統(tǒng))200包括:用戶界面層201,應(yīng)用層202,操作系統(tǒng)內(nèi)核層203,硬件映射層204,安全層205,和硬件層206。
[0606]其中,硬件層206進(jìn)一步包括CPU2061,硬盤2062(即本地存儲設(shè)備)以及網(wǎng)卡2063。
[0607]另外,計(jì)算設(shè)備200與存儲設(shè)備10 (又稱為安全存儲設(shè)備)耦接。
[0608]本實(shí)施例中,存儲設(shè)備10為遠(yuǎn)程磁盤陣列,通過網(wǎng)絡(luò)連接硬件層206的網(wǎng)卡2063,與計(jì)算設(shè)備200交換數(shù)據(jù)。在本發(fā)明的其他實(shí)施例中,存儲設(shè)備10也可以是其他已知或未知類型的存儲設(shè)備。
[0609]其中,硬盤2062也可以替換為其他類型的本地存儲設(shè)備,例如u盤和光盤等,這里只是舉例說明,并無限制目的。
[0610]結(jié)合上述層次結(jié)構(gòu),本實(shí)施例提供的數(shù)據(jù)安全存取過程包括:
[0611]S1000,初始化;
[0612]S2000,數(shù)據(jù)寫入;和
[0613]S3000,數(shù)據(jù)讀取。
[0614]參考圖16,上述的初始化過程S1000包括:
[0615]S1010,建立計(jì)算機(jī)終端系統(tǒng)200與安全存儲設(shè)備10的通訊;
[0616]S1020,從安全存儲設(shè)備10上同步映射位圖(Bitmap)至當(dāng)前計(jì)算機(jī)終端系統(tǒng)200,例如保存在計(jì)算機(jī)終端系統(tǒng)200內(nèi)存中;所述映射位圖用于表示本地存儲設(shè)備的數(shù)據(jù)是否已經(jīng)存儲到安全存儲設(shè)備;
[0617]S1030,如果步驟S1020的同步操作失敗,在安全存儲設(shè)備10上建立Bitmap并初始化,然后同步到計(jì)算機(jī)終端系統(tǒng)200。
[0618]其中,為了區(qū)分計(jì)算機(jī)終端200上的Bitmap與存儲設(shè)備10上的Bitmap,下文中,除非另有說明,將計(jì)算機(jī)終端系統(tǒng)200(也可以稱為計(jì)算設(shè)備)上的Bitmap稱為映射位圖或第一映射位圖,將安全存儲設(shè)備10上的Bitmap稱為第二映射位圖。
[0619]在步驟S1020中,如果從存儲設(shè)備10上同步第二映射位圖至當(dāng)前計(jì)算機(jī)終端系統(tǒng)200的操作失敗,說明存儲設(shè)備10與計(jì)算機(jī)終端系統(tǒng)200之間是第一次連接。
[0620]其中,步驟S1030可以包括:
[0621]將計(jì)算機(jī)終端系統(tǒng)200中的本地存儲空間映射到存儲設(shè)備10上,映射關(guān)系為以I扇區(qū)(或其他存儲的基本單位)為單位的一一映射,并且建立映射位圖(Bitmap)。
[0622]在本發(fā)明的其他實(shí)施例中,也可以使用其他基本容量為單位建立本地存儲空間到存儲設(shè)備100上的Bitmap。
[0623]圖17為本發(fā)明一個(gè)實(shí)施例中的Bitmap示意圖。圖中包括本地存儲設(shè)備(例如圖15中的硬盤2062)上的存儲介質(zhì)3000,與本地存儲設(shè)備網(wǎng)絡(luò)連接的存儲設(shè)備10上的存儲介質(zhì)4000。
[0624]建立Bitmap的過程描述如下。對存儲介質(zhì)3000,在存儲介質(zhì)4000上建立與其大小相同的存儲空間4010,作為——映射空間。在存儲空間4010中保存Bitmap4020,Bitmap4020為一張位圖,其中I位代表I扇區(qū),每一位的數(shù)據(jù)(0或I)標(biāo)識/指示存儲介質(zhì)3000上對應(yīng)的扇區(qū)是否轉(zhuǎn)儲或?qū)?yīng)存儲在存儲介質(zhì)4000上的存儲空間4010中,所以映射位圖也可以稱為轉(zhuǎn)儲表。存儲設(shè)備10上的Bitmap4020建立完成之后同步到計(jì)算機(jī)終端系統(tǒng)200中。
[0625]更新Bitmap的過程描述如下。在Bitmap4020中,轉(zhuǎn)儲的扇區(qū)標(biāo)記為I,非轉(zhuǎn)儲的扇區(qū)沒有標(biāo)記(轉(zhuǎn)儲扇區(qū)和非轉(zhuǎn)儲扇區(qū)所使用的標(biāo)記可以自由選擇)。當(dāng)應(yīng)用程序或操作系統(tǒng)保存一個(gè)數(shù)據(jù)(例如文件時(shí)),操作系統(tǒng)內(nèi)部的文件系統(tǒng)將在本地存儲設(shè)備的存儲介質(zhì)3000上開辟一定量的存儲空間,例如扇區(qū)3040和扇區(qū)3050,并分配給該文件使用,并改寫本地的文件分配表。該文件轉(zhuǎn)儲時(shí)(即寫入扇區(qū)3040和扇區(qū)3050的數(shù)據(jù)被存儲到存儲設(shè)備10上時(shí)),在存儲介質(zhì)4000上相同的位置分配扇區(qū)4040和4050,并在其中保存轉(zhuǎn)儲數(shù)據(jù),最后將Bitmap4020中扇區(qū)3040和扇區(qū)3050對應(yīng)的位數(shù)據(jù)改為I。
[0626]結(jié)合圖15,上述的數(shù)據(jù)寫入過程S2000進(jìn)一步包括:
[0627]S2010,應(yīng)用層202通過操作系統(tǒng)內(nèi)核層203的文件系統(tǒng)發(fā)出寫文件操作請求,或操作系統(tǒng)內(nèi)核層203直接發(fā)出寫文件操作請求;或
[0628]應(yīng)用層202直接向硬件映射層204發(fā)出寫數(shù)據(jù)操作請求,或操作系統(tǒng)內(nèi)核層203直接向硬件映射層204發(fā)出寫數(shù)據(jù)操作請求;
[0629]S2020,操作系統(tǒng)內(nèi)核層203將寫文件請求解析成硬件端口指令(即硬件指令),下發(fā)至硬件映射層204,其中端口指令包含需要寫存儲設(shè)備的位置(例如扇區(qū));
[0630]需要注意的是,如果步驟S2010是直接向硬件映射層204發(fā)出寫數(shù)據(jù)操作請求,則該請求已經(jīng)為硬件端口指令;
[0631]S2030,安全層205接收來自硬件映射層204的硬件端口指令,并且將端口指令中的寫入位置(即扇區(qū))改寫為位于存儲設(shè)備10上的對應(yīng)存儲地址,然后更新第一映射位圖,例如將所述扇區(qū)對應(yīng)的位數(shù)據(jù)修改為1,表示該扇區(qū)已經(jīng)轉(zhuǎn)儲;安全層205將修改后的端口指令發(fā)送給硬件層206。
[0632]寫入過程執(zhí)行完成之后,計(jì)算機(jī)終端系統(tǒng)200并沒有存儲寫入的數(shù)據(jù),相應(yīng)的數(shù)據(jù)已經(jīng)重定位存儲在安全存儲設(shè)備10上。
[0633]在本發(fā)明的另一個(gè)實(shí)施例中,如果寫本地硬盤指令本身與寫網(wǎng)絡(luò)硬盤指令不同,那么不僅需要改地址,還需要改存儲指令。
[0634]根據(jù)本發(fā)明另一個(gè)實(shí)施例,寫入過程S2000還可以包括:
[0635]S2040,將第一映射位圖同步到存儲設(shè)備10上,保存為第二映射位圖,從而確保計(jì)算機(jī)終端系統(tǒng)200上的第一映射位圖與存儲設(shè)備上的第二映射位圖一致。
[0636]在本發(fā)明的其他實(shí)施例中,為了節(jié)省系統(tǒng)資源,S2040也可以在本地的計(jì)算機(jī)終端系統(tǒng)200關(guān)機(jī)前統(tǒng)一進(jìn)行一次。
[0637]結(jié)合圖15,上述的數(shù)據(jù)讀取過程S3000進(jìn)一步包括:
[0638]S3010,將存儲設(shè)備10上的第二映射位圖同步到計(jì)算機(jī)終端系統(tǒng)200上,保存為第一映射位圖;
[0639]S3020,應(yīng)用層202通過操作系統(tǒng)內(nèi)核層203的文件系統(tǒng)發(fā)出讀文件操作請求,或操作系統(tǒng)內(nèi)核層203直接發(fā)出讀文件操作請求;或
[0640]應(yīng)用層202直接向硬件映射層204發(fā)出讀數(shù)據(jù)操作請求,或操作系統(tǒng)內(nèi)核層203直接向硬件映射層204發(fā)出讀數(shù)據(jù)操作請求;
[0641]S3030,安全層205接收來自硬件映射層204的數(shù)據(jù)讀取指令,獲取其中的讀取地址(源地址),查找第一映射位圖,如果第一映射位圖中的位數(shù)據(jù)表示所述讀取地址為轉(zhuǎn)儲地址,安全層205修改端口指令的讀取地址為存儲設(shè)備10上的地址;安全層205將修改后的端口指令發(fā)送給硬件層206。
[0642]該讀取過程沒有影響用戶既有的操作模式,實(shí)現(xiàn)了對于安全存儲設(shè)備(即存儲設(shè)備10)上已經(jīng)轉(zhuǎn)儲的數(shù)據(jù)的讀取。
[0643]在步驟S3010中,從存儲設(shè)備10同步第二映射位圖到本地的過程是為了在計(jì)算機(jī)終端系統(tǒng)200重新啟動了以后,保持本地?cái)?shù)據(jù)與安全存儲設(shè)備上的數(shù)據(jù)的一致性。
[0644]本領(lǐng)域技術(shù)人員可以理解,對于上述的數(shù)據(jù)寫入、讀取過程以及初始化過程,根據(jù)實(shí)際需要執(zhí)行所需的過程或步驟即可。
[0645]數(shù)據(jù)安全存取方法
[0646]基于上述數(shù)據(jù)寫入過程和讀取過程,下面詳細(xì)描述本發(fā)明提供的數(shù)據(jù)安全存儲和讀取方法。
[0647]本領(lǐng)域技術(shù)人員可以理解,上面結(jié)合圖15來說明數(shù)據(jù)的讀取和存儲過程是為了方便理解,并不是限定,在本發(fā)明其他實(shí)施例中,可以在計(jì)算設(shè)備的適合層次上執(zhí)行以上描述的各個(gè)步驟。
[0648]根據(jù)本發(fā)明一個(gè)實(shí)施例,提供一種數(shù)據(jù)安全存儲方法;如圖18所示,該方法包括如下步驟:
[0649]S4010,接收硬件指令;
[0650]S4020,分析并判斷該硬件指令是否為存儲指令;
[0651]S4030,如果該硬件指令是存儲指令,修改存儲指令中的目標(biāo)地址為對應(yīng)的存儲設(shè)備(即安全存儲設(shè)備)上的存儲地址;
[0652]S4040,將修改后的存儲指令發(fā)送到硬件層。
[0653]在步驟S4010中,所述硬件指令可以是來自硬件映射層的硬件指令。接收來自硬件映射層的硬件指令可以100%的篩查所有發(fā)送到CPU等處理器的硬件指令(接口指令)。
[0654]其中,在計(jì)算機(jī)終端系統(tǒng)上,可以運(yùn)行Windows操作系統(tǒng),Windows系統(tǒng)中的硬件抽象層HAL為硬件映射層。在其他實(shí)施例中,計(jì)算機(jī)終端也可以運(yùn)行其他操作系統(tǒng),例如Linux, Unix或嵌入式操作系統(tǒng)等,硬件映射層為Linux或Unix或嵌入式操作系統(tǒng)對應(yīng)的硬件映射層。
[0655]在步驟S4010中,結(jié)合上述運(yùn)行時(shí)指令重組方法,接收硬件指令的過程可以包括:采用運(yùn)行時(shí)指令重組方法(例如S101-S105)獲取硬件指令。換一種說法,就是可以在運(yùn)行時(shí)指令重組方法獲取到機(jī)器指令時(shí),處理存儲和讀取指令(例如S404,S504,或S604)。通過運(yùn)行時(shí)指令重組方法,可以不僅將計(jì)算最終結(jié)果重定位存儲到安全存儲設(shè)備,還能夠?qū)⒂?jì)算的中間過程(包括操作系統(tǒng)產(chǎn)生的中間過程)全部重定位存儲到安全存儲設(shè)備。
[0656]在步驟S4010和S4020中,硬件指令可以為X86指令、ARM指令、MIPS指令等類型,可以在計(jì)算終端中內(nèi)置分析機(jī)制,以處理不同類型的CPU指令。
[0657]根據(jù)本發(fā)明另一個(gè)實(shí)施例,在步驟S4030之后,還可以包括:
[0658]S4050、更新第一映射位圖,將目標(biāo)地址(扇區(qū))在第一映射位圖中對應(yīng)的“位”設(shè)置為轉(zhuǎn)儲標(biāo)記,例如“ I ”;并且,將已經(jīng)更新的映射位圖同步到所述安全存儲設(shè)備,保存為第二映射位圖。[0659]本實(shí)施例中,轉(zhuǎn)儲操作對于上層應(yīng)用以及用戶完全透明,不影響現(xiàn)有計(jì)算機(jī)操作、應(yīng)用系統(tǒng)的工作流程。
[0660]本實(shí)施例提供的上述方法不僅可以在計(jì)算機(jī)終端系統(tǒng)中使用,還可以應(yīng)用在任何包含應(yīng)用層、操作系統(tǒng)內(nèi)核層、硬件層的計(jì)算設(shè)備和智能終端上,在硬件層執(zhí)行指令前,實(shí)現(xiàn)指今級存儲重定位/重定向(即基于硬件存儲指令的存儲重定位/重定向)。
[0661]根據(jù)本發(fā)明一個(gè)實(shí)施例,提供一種數(shù)據(jù)安全讀取方法;參考圖19,該方法包括:
[0662]S5010,接收硬件指今;
[0663]S5020,分析并判斷該硬件指令是否為讀取指令;
[0664]S5030,如果是讀取指令,獲取讀取指令中的源地址,查找第一映射位圖,并根據(jù)映射位圖的數(shù)據(jù)修改讀取指令中的讀取地址;和
[0665]S5040,將修改后的硬件指令發(fā)送到硬件層。
[0666]步驟S5010之前,該方法還可以包括S5000:將存儲設(shè)備上的第二映射位圖同步到計(jì)算機(jī)終端系統(tǒng)200上,保存為第一映射位圖。
[0667]步驟S5010中,所述的硬件指令可以來自硬件映射層。
[0668]在步驟S5010中,結(jié)合上述運(yùn)行時(shí)指令重組方法,接收硬件指令的過程可以包括:采用運(yùn)行時(shí)指令重組方法(例如S101-S105)獲取硬件指令。換一種說法,就是可以在運(yùn)行時(shí)指令重組方法獲取到機(jī)器指令時(shí),處理存儲和讀取指令(例如S400)。
[0669]步驟S5020中,如果該硬件指令不是讀取指令,則可以直接將硬件指令發(fā)送給硬件層去執(zhí)行。
[0670]步驟S5030還可以進(jìn)一步分解為兩步驟:
[0671]S5031,如果是讀取指令,獲取讀取指令中的源地址,判斷所述源地址是否為存儲設(shè)備上的地址;
[0672]S5032,如果所述源地址不是存儲設(shè)備上的地址,查找第一映射位圖,并根據(jù)映射位圖的數(shù)據(jù)修改讀取指令中的讀取地址。
[0673]步驟S5031中,如果該讀取指令的源地址已經(jīng)為存儲設(shè)備上的地址,則計(jì)算設(shè)備(例如圖15中的安全層205)不用再次查找第一映射位圖中的數(shù)據(jù),可以直接將硬件指令發(fā)送給硬件層去執(zhí)行。
[0674]進(jìn)一步的,為了節(jié)約網(wǎng)絡(luò)資源,在本發(fā)明的一些實(shí)施例中,安全存儲設(shè)備10可以作為多個(gè)終端系統(tǒng)的共享資源。
[0675]上面曾經(jīng)提到可以將數(shù)據(jù)安全存儲和讀取方法與指令重組方法結(jié)合,為了方便理解,下面通過實(shí)施例詳細(xì)介紹。
[0676]根據(jù)本發(fā)明一個(gè)實(shí)施例,提供一種數(shù)據(jù)安全存取方法。如圖20所示,該方法S6000包括:
[0677]S6010,緩存指令運(yùn)行環(huán)境;
[0678]S6011,從第一存儲位置讀取目標(biāo)地址,根據(jù)目標(biāo)地址獲取待調(diào)度/執(zhí)行的機(jī)器指令片段;其中,待調(diào)度機(jī)器指令片段的最后一條指令為第一跳轉(zhuǎn)指令;
[0679]S6012,在第一存儲位置保存第一跳轉(zhuǎn)指令的目標(biāo)地址;
[0680]S6013,分析并判斷待調(diào)度機(jī)器指令中的每一條指令是否為存取指令;
[0681]S6014,如果是存取指令:[0682]對于存儲指令,修改存儲指令中的目標(biāo)地址為對應(yīng)的存儲設(shè)備(即安全存儲設(shè)備)上的存儲地址;并修改第一映射位圖;
[0683]對于讀取指令,獲取讀取指令中的源地址,查找第一映射位圖,并根據(jù)映射位圖的數(shù)據(jù)修改讀取指令中的讀取地址;
[0684]如果寫本地硬盤指令本身與寫網(wǎng)絡(luò)硬盤指令不同或者讀取本地硬盤指令本身與讀取網(wǎng)絡(luò)硬盤指令不同,那么不僅需要修改地址,還需要相應(yīng)的修改存儲指令或讀取指令;
[0685]S6015,將第一跳轉(zhuǎn)指令替換為第二跳轉(zhuǎn)指令,生成具有第二地址的重組指令片段;所述第二跳轉(zhuǎn)指令指向指令重組平臺的入口地址;
[0686]S6016,恢復(fù)所述指令運(yùn)行環(huán)境,并跳轉(zhuǎn)到第二地址繼續(xù)執(zhí)行。
[0687]本領(lǐng)域技術(shù)人員可以理解,該實(shí)施例只是為了說明而舉例,并不限制安全讀取方法、安全存儲方法和指令重組方法的組合方式,上述介紹的各種安全讀取方法、安全存儲方法和指令重組方法可以以各種所需的方式組合使用。
[0688]存儲和讀取一般是針對本地的存儲設(shè)備進(jìn)行的數(shù)據(jù)交換;傳輸一般是指通過網(wǎng)絡(luò)設(shè)備進(jìn)行的數(shù)據(jù)交換。
[0689]進(jìn)一步的,本發(fā)明一個(gè)實(shí)施例中提供一種數(shù)據(jù)安全傳輸方法。
[0690]如圖21所示,該方法包括:
[0691]S7010,接收(例如來自硬件映射層的)硬件指令;
[0692]S7020,分析并判斷該硬件指令是否為網(wǎng)絡(luò)傳輸指令;
[0693]S7030,如果該硬件指令是傳輸指令,讀取目標(biāo)地址;
[0694]S7040,判斷目標(biāo)地址是否為安全地址;
[0695]S7050,如果是安全地址,將硬件指令發(fā)送到硬件層;如果不是安全地址,拒絕該指令;
[0696]S7060,硬件層發(fā)送傳輸指令和數(shù)據(jù)到目標(biāo)地址的終端系統(tǒng);
[0697]S7070,目標(biāo)地址的終端系統(tǒng)接收并利用數(shù)據(jù)安全存儲方法保存數(shù)據(jù)。
[0698]在步驟S7040中,判斷目標(biāo)地址是否為安全地址的方法如下。參考圖22,安全服務(wù)器820通過網(wǎng)絡(luò)與終端系統(tǒng)800、810連接,終端系統(tǒng)800、810在部署本發(fā)明上述實(shí)施例中提供的數(shù)據(jù)安全傳輸方法時(shí),都已經(jīng)向安全服務(wù)器820進(jìn)行了注冊操作。安全服務(wù)器820內(nèi)部維護(hù)一個(gè)安全地址表,記錄了已經(jīng)注冊的所有終端系統(tǒng)。
[0699]當(dāng)安全地址表有更改的時(shí)候,安全服務(wù)器820自動將更新的安全地址表發(fā)送給各個(gè)終端,終端系統(tǒng)800的架構(gòu)包括應(yīng)用層801,操作系統(tǒng)內(nèi)核層802,安全層803以及硬件層804,安全層803負(fù)責(zé)維護(hù)該安全地址表。
[0700]安全層803將根據(jù)目標(biāo)地址是否在安全地址表中,判斷目標(biāo)地址是否為安全地址。即在步驟S7040中,如果目標(biāo)地址列入了安全地址表,則目標(biāo)地址為安全地址。
[0701]上述安全傳輸方法的實(shí)施,使木馬或惡意工具即使取得了涉密信息也無法傳輸所取得的信息。安全傳輸方法將在下面的安全互聯(lián)部分結(jié)合實(shí)施例展開介紹。
[0702]雖然本發(fā)明一些實(shí)施例中以計(jì)算機(jī)終端系統(tǒng)作為應(yīng)用本發(fā)明提供的方法的主體,但是,任何手持設(shè)備、智能終端等能夠提供文件或數(shù)據(jù)編輯、保存或傳輸?shù)碾娮釉O(shè)備,都可以成為應(yīng)用本發(fā)明提供的數(shù)據(jù)安全存取及傳輸方法的載體。[0703]另外,本領(lǐng)域的技術(shù)人員可以理解,上述的數(shù)據(jù)安全存儲方法、讀取方法及傳輸方法可使用軟件或硬件的形式來實(shí)現(xiàn):
[0704](I)如果以軟件實(shí)現(xiàn),則上述方法對應(yīng)的步驟以軟件代碼的形式存儲在計(jì)算機(jī)可讀介質(zhì)上,成為軟件產(chǎn)品;
[0705](2)如果以硬件實(shí)現(xiàn),則上述方法對應(yīng)的步驟以硬件代碼(例如Verilog)的形式描述,并固化(經(jīng)過物理設(shè)計(jì)/布局布線/晶圓廠流片等過程)成為芯片產(chǎn)品(例如處理器產(chǎn)品)。
[0706]數(shù)據(jù)安全存取裝置
[0707]與上述的數(shù)據(jù)安全存儲方法相對應(yīng),根據(jù)本發(fā)明一個(gè)實(shí)施例,提供一種數(shù)據(jù)安全存儲裝置。
[0708]需要注意的是,數(shù)據(jù)安全存儲裝置在本發(fā)明中指:以硬件形式來實(shí)現(xiàn)數(shù)據(jù)安全存儲方法的裝置;安全存儲設(shè)備在本發(fā)明中指:用于轉(zhuǎn)儲信息或數(shù)據(jù)的存儲實(shí)體,例如磁盤
坐寸ο
[0709]參考圖23,數(shù)據(jù)安全存儲裝置7100包括:接收單元7110,指令分析單元7120,指令修改單元7130和發(fā)送單元7140。所述接收單元7110與指令分析單元7120耦接,指令分析單元7120分別與指令修改單元7130以及發(fā)送單元7140耦接,發(fā)送單元7140還與指令修改單元7130耦接。
[0710]其中,接收單元7110適于接收硬件指令,所述硬件指令可以來自硬件映射層;
[0711]指令分析單元7120適于分析所述硬件指令并判斷所述硬件指令是否為存儲指令;如果是存儲指令,指令分析單元7120還適于將其發(fā)送給指令修改單元7130,如果不是存儲指令,指令分析單元7120還適于將其發(fā)送給發(fā)送單元7140 ;
[0712]指令修改單元7130適于修改所述存儲指令中的目標(biāo)地址為對應(yīng)的在安全存儲設(shè)備上的存儲地址,然后將修改后的存儲指令發(fā)送給發(fā)送單元7140 ;
[0713]發(fā)送單元7150適于將接收到的指令轉(zhuǎn)發(fā)給硬件層7200。
[0714]進(jìn)一步的,該數(shù)據(jù)安全存儲裝置還可以包括:更新單元7150和同步單元7160。其中,更新單元7150與指令修改單元7130耦接;同步單元7160與更新單元7150耦接。
[0715]所述更新單元7150適于在指令修改單元7130修改所述存儲指令之后,更新映射位圖中所述目標(biāo)地址對應(yīng)的位。本實(shí)施例中,將存儲指令目標(biāo)地址包含的扇區(qū)在第一映射位圖中對應(yīng)的“位”數(shù)據(jù)置“ I ”,表示已經(jīng)轉(zhuǎn)儲。
[0716]所述同步單元7160適于建立計(jì)算終端系統(tǒng)與所述安全存儲設(shè)備的通訊,并將映射位圖在所述計(jì)算終端系統(tǒng)和所述安全存儲設(shè)備之間進(jìn)行同步。
[0717]具體的,在計(jì)算終端系統(tǒng)啟動時(shí),同步單元7160建立計(jì)算終端系統(tǒng)與所述安全存儲設(shè)備的通訊,并將所述安全存儲設(shè)備上的第二映射位圖同步到所述計(jì)算終端系統(tǒng),保存為第一映射位圖。
[0718]如果將所述安全存儲設(shè)備上的第二映射位圖同步到所述計(jì)算終端系統(tǒng)失敗,表示計(jì)算終端系統(tǒng)與安全存儲設(shè)備是第一次通訊,同步單元7160將計(jì)算機(jī)終端系統(tǒng)中的本地存儲空間映射到所述安全存儲設(shè)備上,并建立映射位圖和第二映射位圖。例如在本實(shí)施例中,先在安全存儲設(shè)備上建立第二映射位圖,然后同步到本地,成為第一映射位圖。
[0719]當(dāng)更新單元7150更新了第一映射位圖(即映射位圖)中所述目標(biāo)地址對應(yīng)的位,同步單元7160將把更新后的第一映射位圖發(fā)送給安全存儲設(shè)備,并在安全存儲設(shè)備上保存為第二映射位圖。
[0720]所述安全存儲設(shè)備可以為遠(yuǎn)程存儲設(shè)備或本地存儲設(shè)備,所述遠(yuǎn)程存儲設(shè)備可以為一個(gè)計(jì)算設(shè)備服務(wù),也可以被多個(gè)計(jì)算設(shè)備共享。
[0721]所述硬件指令可以為硬件端口 I/O指令。
[0722]與上述的數(shù)據(jù)安全讀取方法相對應(yīng),根據(jù)本發(fā)明另一個(gè)實(shí)施例,提供了一種數(shù)據(jù)安全讀取裝置。
[0723]參考圖24,數(shù)據(jù)安全讀取裝置8100包括:
[0724]接收單元8110,指令分析單元8120,指令修改單元8130以及發(fā)送單元8140。其中,接收單元8110與指令分析單元8120耦接,指令分析單元8120分別與指令修改單元8130以及發(fā)送單元8140耦接,指令修改單元8130還與發(fā)送單元8140耦接。發(fā)送單元8140與硬件層8200耦接。
[0725]所述接收單元8110適于接收硬件指令,本實(shí)施例中,所述硬件指令來自硬件映射層。
[0726]所述指令分析單元8120適于分析所述硬件指令并判斷所述硬件指令是否為讀取指令,如果所述硬件指令是讀取指令,獲取讀取指令的源地址并判斷所述源地址是否為安全存儲設(shè)備上的地址。
[0727]如果所述硬件指令不是讀取指令,或者所述源地址是安全存儲設(shè)備上的地址,指今分析單元8120將所述硬件指令發(fā)送到發(fā)送單元8140。
[0728]如果所述源地址不是安全存儲設(shè)備上的地址,指令修改單元8130查找映射位圖,并根據(jù)映射位圖的數(shù)據(jù)修改所述讀取指令中的讀取地址。
[0729]與上述實(shí)施例中的映射位圖相同,本實(shí)施例中所述映射位圖也用于表示本地存儲地址的數(shù)據(jù)是否轉(zhuǎn)儲到所述安全存儲設(shè)備。例如,指令修改單元8130查找源地址包含的扇區(qū)在第一映射位圖中對應(yīng)的位。如果“位”數(shù)據(jù)顯示為1,表示已經(jīng)發(fā)生轉(zhuǎn)儲,如果“位”數(shù)據(jù)顯示為0或NULL (空),表示沒有發(fā)生轉(zhuǎn)儲。如果已經(jīng)發(fā)生轉(zhuǎn)儲,指令修改單元8130將所述源地址(讀取地址)改為對應(yīng)的轉(zhuǎn)儲地址,并將修改后的硬件指令發(fā)送給發(fā)送單元8140。
[0730]進(jìn)一步的,所述數(shù)據(jù)安全讀取裝置還可以包括同步單元8150。所述同步單元8150與指令修改單元8130耦接。所述同步單元8150適于建立計(jì)算終端系統(tǒng)與所述安全存儲設(shè)備的通訊,并將映射位圖在所述計(jì)算終端系統(tǒng)和所述安全存儲設(shè)備之間進(jìn)行同步。具體的,同步單元8150在計(jì)算終端系統(tǒng)啟動時(shí),建立計(jì)算終端系統(tǒng)與所述安全存儲設(shè)備的通訊,并將所述安全存儲設(shè)備上的第二映射位圖同步到所述計(jì)算終端系統(tǒng),保存為第一映射位圖,提供指令修改單元8130使用。
[0731]所述安全存儲設(shè)備可以為遠(yuǎn)程存儲設(shè)備,所述遠(yuǎn)程存儲設(shè)備可以被多個(gè)計(jì)算終端系統(tǒng)共享。
[0732]在本發(fā)明的其他實(shí)施例中,所述的安全存儲設(shè)備也可以為本地存儲設(shè)備。
[0733]根據(jù)本發(fā)明另一個(gè)實(shí)施例,上述數(shù)據(jù)安全讀取裝置和數(shù)據(jù)安全存儲裝置可以合并為一個(gè)裝置,其中指令分析單元和指令修改單元既能處理存儲指令又能處理讀取指令,下面舉例介紹。
[0734]根據(jù)本發(fā)明另一個(gè)實(shí)施例,提供一種數(shù)據(jù)安全存儲和讀取裝置。如圖25,數(shù)據(jù)安全存儲和讀取裝置9100包括:
[0735]指令運(yùn)行環(huán)境緩存和恢復(fù)單元9101,適于緩存和恢復(fù)指令運(yùn)行環(huán)境;
[0736]指令獲取單元9102,適于獲取下一條即將運(yùn)行的指令地址,該地址為第一地址;還適于根據(jù)第一地址獲取待調(diào)度/執(zhí)行的機(jī)器指令片段;其中,待調(diào)度機(jī)器指令片段的最后一條指令為第一跳轉(zhuǎn)指令;獲取待調(diào)度機(jī)器指令片段的具體方式在前面的實(shí)施例中已經(jīng)詳細(xì)描述,這里不再贅述;
[0737]指令檢索單元9104,適于利用所述第一地址查找地址對應(yīng)表;所述地址對應(yīng)表用于表示第一地址指向的待調(diào)度指令片段是否具有已保存的重組指令片段,地址對應(yīng)表的數(shù)據(jù)為地址對;
[0738]如果找到相應(yīng)的記錄,指令檢索單元9104適于調(diào)用指令運(yùn)行環(huán)境緩存和恢復(fù)單元9101恢復(fù)所緩存的指令運(yùn)行環(huán)境,并跳轉(zhuǎn)到找到的對應(yīng)地址繼續(xù)執(zhí)行(本次重組完成);
[0739]如果沒有找到相應(yīng)的記錄,調(diào)用指令重組單元9103進(jìn)行重組操作。
[0740]其中,指令重組單元9103包括:
[0741]指令解析單元9111,是上述指令分析單元7120和指令分析單元8120的組合,適于分析所述硬件指令并判斷所述待調(diào)度/執(zhí)行的機(jī)器指令片段中的每一條硬件指令是否為存儲或讀取指令;
[0742]指令修改單元9112,如果指令解析單元9111發(fā)現(xiàn)存儲或讀取指令:
[0743]對于存儲指令,修改所述存儲指令中的目標(biāo)地址為對應(yīng)的在安全存儲設(shè)備上的存儲地址;
[0744]對于讀取指令,查找映射位圖,并根據(jù)映射位圖的數(shù)據(jù)修改所述讀取指令中的讀取地址;
[0745]更新單元9113,適于在指令修改單元9112修改所述存儲指令之后,更新映射位圖中所述目標(biāo)地址對應(yīng)的位,以體現(xiàn)已經(jīng)轉(zhuǎn)儲;
[0746]同步單元9114,適于建立計(jì)算終端系統(tǒng)與所述安全存儲設(shè)備的通訊,并將映射位圖在所述計(jì)算終端系統(tǒng)和所述安全存儲設(shè)備之間進(jìn)行同步。
[0747]在指令解析單元9111、指令修改單元9112、更新單元9113和同步單元9114操作完成后,指令重組單元9103適于替換第一跳轉(zhuǎn)指令為壓棧指令,在壓棧指令中記錄第一跳轉(zhuǎn)指令的地址和操作數(shù);還適于在壓棧指令之后加入第二跳轉(zhuǎn)指今,生成具有第二地址的重組指令片段;所述第二跳轉(zhuǎn)指令指向裝置9100的入口地址;還適于將重組指令片段的第二地址與第一地址在地址對應(yīng)表中建立一條記錄。
[0748]基于上一段的描述,指令重組單元9103在其他實(shí)施例中,也可以與指令解析單元9111、指令修改單元9112、更新單元9113和同步單元9114作為同一層次的并列單元(如圖26所示)ο
[0749]指令重組單元9103獲得重組指令片段后,還適于調(diào)用指令運(yùn)行環(huán)境緩存和恢復(fù)單元9101恢復(fù)所緩存的指令運(yùn)行環(huán)境,并跳轉(zhuǎn)到重組指令片段的地址繼續(xù)執(zhí)行(重組操作完成)。
[0750]本領(lǐng)域技術(shù)人員可以理解,該實(shí)施例只是為了說明而舉例,并不限制數(shù)據(jù)安全讀取裝置、數(shù)據(jù)安全存儲裝置和指令重組裝置合并方式,上述介紹的各種數(shù)據(jù)安全讀取裝置、數(shù)據(jù)安全存儲裝置和指令重組裝置可以以各種所需的方式合并。
[0751]另外,上述安全存儲方法和裝置還可以與云技術(shù)結(jié)合,確保云內(nèi)數(shù)據(jù)的安全,從而加快云計(jì)算(cloud computing)的應(yīng)用和普及。具體實(shí)施例在下面將給予介紹。
[0752]本領(lǐng)域技術(shù)人員可以理解,在安全層實(shí)現(xiàn)的上述方法也可以在操作系統(tǒng)內(nèi)核層至硬件層中的各個(gè)層內(nèi)完成。具體功能的實(shí)現(xiàn)位置并不脫離本發(fā)明的精神和范圍。
[0753]上述實(shí)施例中詳細(xì)的介紹了本發(fā)明提供的安全存儲方法和裝置,與現(xiàn)有技術(shù)相t匕,具有如下優(yōu)點(diǎn):
[0754]1、數(shù)據(jù)安全存儲方法實(shí)現(xiàn)了指令級數(shù)據(jù)轉(zhuǎn)儲即數(shù)據(jù)全轉(zhuǎn)儲,以此為基礎(chǔ),實(shí)現(xiàn)了計(jì)算終端系統(tǒng)全運(yùn)行周期的數(shù)據(jù)安全存儲方法,一方面,使木馬或惡意工具即使取得了涉密信息也無法保存所取得的信息,使數(shù)據(jù)始終存在于可控的安全范圍內(nèi);另一方面,本地不再保存在涉密狀態(tài)下的任何數(shù)據(jù),因此防止了涉密人員的主動泄密和被動泄密;
[0755]2、接收來自硬件映射層的硬件指令可以100%的篩查所有指令,進(jìn)一步提高數(shù)據(jù)安全性。
[0756]上述實(shí)施例中還詳細(xì)的介紹了本發(fā)明提供的安全讀取方法和裝置,與現(xiàn)有技術(shù)相t匕,具有如下優(yōu)點(diǎn):
[0757]1、數(shù)據(jù)安全讀取方法配合數(shù)據(jù)安全存儲方法使數(shù)據(jù)始終存在于可控的安全范圍內(nèi),并且保證在安全存儲數(shù)據(jù)(轉(zhuǎn)儲)之后,可以將轉(zhuǎn)儲數(shù)據(jù)讀出;由于本地將不再保存在涉密狀態(tài)下的任何數(shù)據(jù),因此防止了涉密人員的主動泄密和被動泄密;
[0758]2、安全存儲設(shè)備為遠(yuǎn)程存儲設(shè)備時(shí),可以為多個(gè)終端共享,提高安全存儲設(shè)備的空間使用效率。
[0759]數(shù)據(jù)安全互聯(lián)
[0760]根據(jù)上面介紹的數(shù)據(jù)安全讀取/存儲等方法及裝置,可以設(shè)計(jì)數(shù)據(jù)安全互聯(lián)系統(tǒng),實(shí)現(xiàn)網(wǎng)絡(luò)數(shù)據(jù)安全。
[0761]根據(jù)本發(fā)明一個(gè)實(shí)施例,提供一種網(wǎng)絡(luò)環(huán)境,如圖27所示,該網(wǎng)絡(luò)環(huán)境包括:
[0762]通過網(wǎng)絡(luò)I進(jìn)行互聯(lián)的終端系統(tǒng)A01、終端系統(tǒng)A02、...終端系統(tǒng)AOn (n為自然數(shù))以及存儲設(shè)備A80 ;
[0763]通過網(wǎng)絡(luò)2進(jìn)行互聯(lián)的終端系統(tǒng)All、終端系統(tǒng)A12、...終端系統(tǒng)Aln (n為自然數(shù))以及存儲設(shè)備A81 ;
[0764]通過網(wǎng)絡(luò)m進(jìn)行互聯(lián)的終端系統(tǒng)(未示出)以及存儲設(shè)備ASn ;
[0765]通過網(wǎng)絡(luò)X進(jìn)行互聯(lián)的網(wǎng)絡(luò)1、網(wǎng)絡(luò)2、...網(wǎng)絡(luò)m以及注冊服務(wù)器A90。
[0766]其中,存儲設(shè)備(即安全存儲設(shè)備)A80、A81、...A8n為上面實(shí)施例中介紹的安全存儲設(shè)備。
[0767]存儲設(shè)備A80與終端系統(tǒng)A01、終端系統(tǒng)A02、...終端系統(tǒng)AOn的本地存儲設(shè)備之間建立映射位圖;終端系統(tǒng)A01、終端系統(tǒng)A02、...終端系統(tǒng)AOn部署上面介紹的數(shù)據(jù)安全存儲/安全讀取方法,還可以部署上面介紹的運(yùn)行時(shí)指令重組方法。
[0768]存儲設(shè)備A81與終纟而系統(tǒng)八11、終纟而系統(tǒng)A12、...終纟而系統(tǒng)Aln的本地存儲設(shè)備之間建立映射位圖;終端系統(tǒng)All、終端系統(tǒng)A12、...終端系統(tǒng)Aln部署上面介紹的數(shù)據(jù)安全存儲/安全讀取方法,還可以部署上面介紹的運(yùn)行時(shí)指令重組方法。
[0769]存儲設(shè)備A8n與通過網(wǎng)絡(luò)m互聯(lián)的終端系統(tǒng)的本地存儲設(shè)備之間建立映射位圖;通過網(wǎng)絡(luò)m互聯(lián)的終端系統(tǒng)部署上面介紹的數(shù)據(jù)安全存儲/安全讀取方法,還可以部署上面介紹的運(yùn)行時(shí)指令重組方法。
[0770]網(wǎng)絡(luò)X可以是網(wǎng)絡(luò)1、網(wǎng)絡(luò)2、...網(wǎng)絡(luò)m中的一個(gè),也可以是不同于網(wǎng)絡(luò)1、網(wǎng)絡(luò)2、...網(wǎng)絡(luò)m的另一個(gè)網(wǎng)絡(luò)。換句話說,注冊服務(wù)器A90可位于網(wǎng)絡(luò)1、網(wǎng)絡(luò)2、...網(wǎng)絡(luò)m的一個(gè)中,網(wǎng)絡(luò)1、網(wǎng)絡(luò)2、...網(wǎng)絡(luò)m互聯(lián)即可。
[0771]網(wǎng)絡(luò)1、網(wǎng)絡(luò)2、...網(wǎng)絡(luò)m中還可以包括數(shù)據(jù)服務(wù)器或應(yīng)用服務(wù)器等,其與各個(gè)網(wǎng)絡(luò)內(nèi)的相應(yīng)的存儲設(shè)備建立映射位圖;服務(wù)器部署上面介紹的數(shù)據(jù)安全存儲/安全讀取方法,還可以運(yùn)行時(shí)指令重組方法。
[0772]注冊服務(wù)器A90可以有一個(gè),也可以有多個(gè)。注冊服務(wù)器A90用于提供終端系統(tǒng)接入認(rèn)證,即當(dāng)終端系統(tǒng)希望介入該網(wǎng)絡(luò)環(huán)境或網(wǎng)絡(luò)系統(tǒng)時(shí),注冊服務(wù)器A90接收其注冊請求并判斷是否允許其接入。注冊服務(wù)器A90的操作將在下面詳細(xì)描述。
[0773]根據(jù)本發(fā)明一個(gè)實(shí)施例,在該網(wǎng)絡(luò)環(huán)境中,終端系統(tǒng)的數(shù)據(jù)存儲和讀取操作可以按照上述的數(shù)據(jù)安全存儲和讀取方法進(jìn)行的。
[0774]具體的,終端系統(tǒng)(或數(shù)據(jù)服務(wù)器/應(yīng)用服務(wù)器)數(shù)據(jù)操作方法S800包括:
[0775]S801,初始化操作,包括:
[0776]S8011、從與本地存儲設(shè)備建立映射位圖的安全存儲設(shè)備同步映射位圖,保存為第一映射位圖;保存位直可以在內(nèi)存中;
[0777]S8012、從注冊服務(wù)器上同步安全地址表,保存為本地安全地址表(也可以稱為第一安全地址表);保存位置可以在內(nèi)存中;
[0778]S802,接收硬件指令;
[0779]S803,分析并判斷該硬件指令是否為讀取指令、存儲指令或傳輸指令;
[0780]S804,如果是該三種指令,進(jìn)行指令處理如下:
[0781]S8041,對于存儲指令,將存儲指令中的本地目標(biāo)地址修改為與本地存儲設(shè)備建立映射位圖的安全存儲設(shè)備上的對應(yīng)存儲地址;
[0782]S8042,對于讀取指令,獲取讀取指令中的源地址,利用源地址檢索第一映射位圖,并根據(jù)映射位圖的數(shù)據(jù)修改讀取指令中的讀取地址;
[0783]S8043,對于傳輸指令,獲取傳輸指令中的目標(biāo)地址,利用目標(biāo)地址檢索第一安全地址表,判斷目標(biāo)地址是否為安全地址,如果不是,拒絕該傳輸指令;
[0784]S805,將修改后的或未被拒絕的硬件指令發(fā)送到硬件層。
[0785]根據(jù)本發(fā)明另一個(gè)實(shí)施例,S8041還可以包括:
[0786]更新第一映射位圖,將目標(biāo)地址(扇區(qū))在第一映射位圖中對應(yīng)的“位”設(shè)置為I或其他指示轉(zhuǎn)儲的標(biāo)記;并且,將已經(jīng)更新的映射位圖同步到對應(yīng)的安全存儲設(shè)備,在安全設(shè)備中保存為第二映射位圖。
[0787]上述網(wǎng)絡(luò)環(huán)境中的計(jì)算設(shè)備即構(gòu)成了本發(fā)明提供的數(shù)據(jù)安全互聯(lián)系統(tǒng)的一種實(shí)施例。數(shù)據(jù)安全互聯(lián)系統(tǒng)的更多實(shí)施例將在下面詳細(xì)介紹。
[0788]根據(jù)本發(fā)明一個(gè)實(shí)施例,提供一種數(shù)據(jù)安全互聯(lián)系統(tǒng)的建立過程,如圖28a所示,該建立過程S900包括:
[0789]S901a、計(jì)算設(shè)備(圖中顯示為計(jì)算終端I)向注冊服務(wù)器發(fā)送注冊請求;
[0790]S901b、注冊服務(wù)器詢問該計(jì)算設(shè)備是否同意通過安全存儲設(shè)備接管該計(jì)算設(shè)備所操作和訪問的數(shù)據(jù);
[0791]S901C、計(jì)算設(shè)備向注冊服務(wù)器發(fā)送應(yīng)答消息;
[0792]S902a、如果該應(yīng)答為不同意接管,注冊服務(wù)器拒絕該計(jì)算設(shè)備的注冊請求,結(jié)束該建立過程;(該步驟未示出)
[0793]S902b、如果該應(yīng)答為同意接管,注冊服務(wù)器在計(jì)算設(shè)備上部署上述的數(shù)據(jù)安全存儲方法和讀取方法以及安全傳輸方法,注冊服務(wù)器同意該計(jì)算設(shè)備注冊;
[0794]S902c、注冊服務(wù)器為該計(jì)算設(shè)備部署安全存儲設(shè)備,完成建立過程,同時(shí)將會完整的切斷該計(jì)算設(shè)備與除安全存儲設(shè)備以外的任何存儲設(shè)備之間的交互,并且也將切斷與除安全互聯(lián)系統(tǒng)以外的所有網(wǎng)絡(luò)交互。
[0795]其中的“切斷”就是通過指令級別的操作、利用bitmap將所有的除安全存儲設(shè)備以外的存儲設(shè)備的操作重定向到安全存儲設(shè)備上來實(shí)現(xiàn)的。
[0796]該安全存儲設(shè)備的部署地域是沒有限制的,可以在計(jì)算設(shè)備本地,也可以位于計(jì)算設(shè)備所在的局域網(wǎng)中,也可以位于注冊服務(wù)器所在的局域網(wǎng)中,只要有網(wǎng)絡(luò)能夠物理連接就可以。
[0797]在本發(fā)明其他實(shí)施例中,注冊服務(wù)器還可以向該計(jì)算設(shè)備部署上述的運(yùn)行時(shí)指令重組方法,實(shí)現(xiàn)運(yùn)行時(shí)指令重組或追蹤。此時(shí),還可以實(shí)現(xiàn)例如上述運(yùn)行時(shí)指令重組方法和數(shù)據(jù)安全存取方法的結(jié)合S6000。
[0798]計(jì)算設(shè)備(例如計(jì)算機(jī)終端系統(tǒng)或智能終端)完成注冊后,通過上述的數(shù)據(jù)安全存儲和讀取方法,將向安全存儲設(shè)備中保存敏感數(shù)據(jù)或安全數(shù)據(jù)。
[0799]根據(jù)本發(fā)明一個(gè)實(shí)施例,安全互聯(lián)系統(tǒng)中已經(jīng)加入了數(shù)據(jù)服務(wù)器,該數(shù)據(jù)服務(wù)器也是根據(jù)S900注冊加入的,其對應(yīng)的安全存儲設(shè)備例如為安全存儲設(shè)備I。
[0800]當(dāng)一臺計(jì)算設(shè)備(例如計(jì)算終端2)需要訪問安全互聯(lián)系統(tǒng)內(nèi)的數(shù)據(jù)時(shí),首先,按照S900注冊加入安全互聯(lián)系統(tǒng),其對應(yīng)的安全存儲設(shè)備例如為安全存儲設(shè)備2。
[0801]然后,如圖28b所示,計(jì)算終端2在數(shù)據(jù)安全互聯(lián)系統(tǒng)內(nèi)的數(shù)據(jù)訪問過程S910包括:
[0802]S911、計(jì)算設(shè)備(例如計(jì)算終端2)向數(shù)據(jù)服務(wù)器發(fā)送訪問請求;
[0803]S912、數(shù)據(jù)服務(wù)器向注冊服務(wù)器發(fā)送安全地址詢問消息,詢問該計(jì)算終端2是否為安全地址;
[0804]S913、注冊服務(wù)器向數(shù)據(jù)服務(wù)器發(fā)送安全地址應(yīng)答消息,告知該計(jì)算終端2是否為安全地址;
[0805]S914、如果得到肯定應(yīng)答之后,數(shù)據(jù)服務(wù)器根據(jù)該請求讀取相應(yīng)的數(shù)據(jù),該讀取過程為上述數(shù)據(jù)安全讀取方法;如果得到否定應(yīng)答,則數(shù)據(jù)服務(wù)器忽略所述數(shù)據(jù)訪問請求;
[0806]S915、數(shù)據(jù)服務(wù)器向計(jì)算終端2發(fā)送數(shù)據(jù)應(yīng)答;和
[0807]S916、如果計(jì)算終端2需要保存數(shù)據(jù),則根據(jù)上述的數(shù)據(jù)安全存儲方法,向安全存儲設(shè)備2種保存數(shù)據(jù)。
[0808]在本發(fā)明另一個(gè)實(shí)施例中,上述實(shí)施例中注冊服務(wù)器所完成的內(nèi)容也可以在各個(gè)終端系統(tǒng)上完成,即每個(gè)終端系統(tǒng)都同時(shí)是一個(gè)注冊服務(wù)器。如果需要終端自己完成確認(rèn)來訪者是否安全的任務(wù),那么需要一種機(jī)制,能夠讓終端確認(rèn)任意一臺通過網(wǎng)絡(luò)連接到終端的機(jī)器上部署了數(shù)據(jù)黑洞系統(tǒng)(包括上述數(shù)據(jù)安全存儲/讀取方法,還可以包括上述運(yùn)行時(shí)指令重組方法,還可以包括上述數(shù)據(jù)安全傳輸方法),并且每個(gè)終端自己維護(hù)一個(gè)認(rèn)證
注冊表。
[0809]在有了這種機(jī)制之后,終端收到任何一個(gè)網(wǎng)絡(luò)請求時(shí),首先驗(yàn)證請求的發(fā)起者是否部署了數(shù)據(jù)黑洞系統(tǒng),驗(yàn)證通過則在終端的認(rèn)證注冊表里加入請求的發(fā)起者,這樣請求的發(fā)起者(另一臺機(jī)器)就被這個(gè)終端認(rèn)證了。驗(yàn)證請求的發(fā)起者是否部署了數(shù)據(jù)黑洞系統(tǒng)可以采用基于時(shí)間戳的互信驗(yàn)證算法來進(jìn)行,驗(yàn)證通過則在終端的認(rèn)證注冊表里加入請求的發(fā)起者,這樣請求的發(fā)起者(另一臺機(jī)器)就被這個(gè)終端認(rèn)證了。
[0810]相應(yīng)的,上述數(shù)據(jù)訪問方法S910需要進(jìn)行調(diào)整。根據(jù)本發(fā)明一個(gè)實(shí)施例,如圖28c所示,具有注冊功能的計(jì)算設(shè)備的數(shù)據(jù)訪問方法S940(同時(shí)也是一種數(shù)據(jù)安全互聯(lián)系統(tǒng)建立方法),包括:
[0811]S941、計(jì)算終端I向計(jì)算終端2發(fā)送訪問請求;
[0812]S942、計(jì)算終端2向計(jì)算終端I發(fā)送部署詢問,即詢問計(jì)算終端I是否同意部署上述數(shù)據(jù)安全存儲方法和讀取方法;
[0813]S943、計(jì)算終端I向計(jì)算終端2發(fā)送部署應(yīng)答;
[0814]為了說明整個(gè)訪問過程,本實(shí)施例中計(jì)算終端I發(fā)送肯定應(yīng)答;如果計(jì)算終端I發(fā)送否定應(yīng)答,則與計(jì)算終端2的信息交互結(jié)束,數(shù)據(jù)訪問不能完成;
[0815]S944、計(jì)算終端2向計(jì)算終端I部署方法并指定安全存儲設(shè)備;所述方法即上述的數(shù)據(jù)安全存儲和數(shù)據(jù)安全讀取方法,還可以包括上述數(shù)據(jù)安全傳輸方法和運(yùn)行時(shí)指令重組方法;所述安全存儲設(shè)備為安全存儲設(shè)備I ;
[0816]S945、計(jì)算終端2利用安全讀取方法從其對應(yīng)的安全存儲設(shè)備2讀取計(jì)算終端I將要訪問的數(shù)據(jù);
[0817]S946、計(jì)算終端2向計(jì)算終端I發(fā)送訪問應(yīng)答;和
[0818]S947、如果需要保存數(shù)據(jù),計(jì)算設(shè)備I利用數(shù)據(jù)安全存儲方法將獲得的訪問數(shù)據(jù)保存在其對應(yīng)的安全存儲設(shè)備I中。
[0819]可選的,在每個(gè)計(jì)算終端上維護(hù)一個(gè)注冊列表,例如,當(dāng)計(jì)算終端I部署了數(shù)據(jù)黑洞系統(tǒng)后,將計(jì)算終端I加入計(jì)算終端2的注冊列表,還可以同時(shí)將計(jì)算終端2加入計(jì)算終端I的注冊列表。
[0820]可選的,在步驟S942之前,可以首先檢查是否已經(jīng)部署了數(shù)據(jù)安全存儲方法和讀取方法(或數(shù)據(jù)黑洞系統(tǒng))。
[0821]如圖28d所示,根據(jù)本發(fā)明另一個(gè)實(shí)施例,提供一種具有注冊功能的計(jì)算設(shè)備的數(shù)據(jù)訪問方法S950,包括:
[0822]S951、計(jì)算終端I向計(jì)算終端2發(fā)送訪問請求;
[0823]S952、計(jì)算終端2向計(jì)算終端I發(fā)送部署檢查消息,該消息用于檢查在計(jì)算終端I上是否已經(jīng)部署了數(shù)據(jù)黑洞系統(tǒng)(或上述的數(shù)據(jù)安全存取方法);
[0824]S953、計(jì)算終端I向計(jì)算終端2發(fā)送部署檢查反饋消息;
[0825]該反饋消息包含一個(gè)或一組數(shù)值,根據(jù)該數(shù)值,計(jì)算終端2將能夠判斷計(jì)算終端I是否已經(jīng)部署了數(shù)據(jù)黑洞系統(tǒng);
[0826]S954、計(jì)算終端2確定計(jì)算終端I的部署狀態(tài),即判斷計(jì)算終端I是否部署了數(shù)據(jù)黑洞系統(tǒng);[0827](I)如果所述部署檢查反饋消息確定計(jì)算終端I已經(jīng)部署數(shù)據(jù)黑洞系統(tǒng),則繼續(xù)執(zhí)行:
[0828]S955、計(jì)算終端2利用安全讀取方法從其對應(yīng)的安全存儲設(shè)備2讀取計(jì)算終端I將要訪問的數(shù)據(jù);
[0829]S956、計(jì)算終端2向計(jì)算終端I發(fā)送訪問應(yīng)答;
[0830]S957、如果需要保存數(shù)據(jù),計(jì)算設(shè)備I利用數(shù)據(jù)安全存儲方法將獲得的訪問數(shù)據(jù)保存在其對應(yīng)的安全存儲設(shè)備I中。
[0831](2)如果所述部署檢查反饋消息確定計(jì)算終端I還沒有部署數(shù)據(jù)黑洞系統(tǒng),則執(zhí)行上述數(shù)據(jù)訪問方法S940:
[0832]S942、計(jì)算終端2向計(jì)算終端I發(fā)送部署詢問,即詢問計(jì)算終端I是否同意部署上述數(shù)據(jù)安全存儲方法和讀取方法;
[0833]S943、計(jì)算終端I向計(jì)算終端2發(fā)送部署應(yīng)答;
[0834]為了說明整個(gè)訪問過程,本實(shí)施例中計(jì)算終端I發(fā)送肯定應(yīng)答;如果計(jì)算終端I發(fā)送否定應(yīng)答,則與計(jì)算終端2的信息交互結(jié)束,數(shù)據(jù)訪問不能完成;
[0835]S944、計(jì)算終端2向計(jì)算終端I部署方法并指定安全存儲設(shè)備;所述方法即上述的數(shù)據(jù)安全存儲和數(shù)據(jù)安全讀取方法;所述安全存儲設(shè)備為安全存儲設(shè)備I ;
[0836]S945、計(jì)算終端2利用安全讀取方法從其對應(yīng)的安全存儲設(shè)備2讀取計(jì)算終端I將要訪問的數(shù)據(jù);
[0837]S946、計(jì)算終端2向計(jì)算終端I發(fā)送訪問應(yīng)答;和
[0838]S947、如果需要保存數(shù)據(jù),計(jì)算設(shè)備I利用數(shù)據(jù)安全存儲方法將獲得的訪問數(shù)據(jù)保存在其對應(yīng)的安全存儲設(shè)備I中。
[0839]上述步驟S953-S954可以包括:計(jì)算終端I和計(jì)算終端2利用基于時(shí)間戳的互信驗(yàn)證算法來判斷對方是否已經(jīng)部署了數(shù)據(jù)黑洞系統(tǒng)(過程類似CHAP協(xié)議)。
[0840]可選的,在每個(gè)計(jì)算終端上維護(hù)一個(gè)注冊列表,例如,當(dāng)計(jì)算終端I部署了數(shù)據(jù)黑洞系統(tǒng)后,將計(jì)算終端I加入計(jì)算終端2的注冊列表,還可以同時(shí)將計(jì)算終端2加入計(jì)算終端I的注冊列表。當(dāng)某個(gè)計(jì)算終端訪問本機(jī)時(shí),首先檢查注冊類表是否包含該計(jì)算終端,如果包含,說明已經(jīng)注冊,不必再進(jìn)行部署檢查或部署詢問等操作。
[0841]可選的,上述方法S950可以進(jìn)一步改進(jìn),由訪問發(fā)起方主動說明自身已經(jīng)部署數(shù)據(jù)黑洞系統(tǒng)。如圖28e所示,根據(jù)本發(fā)明另一個(gè)實(shí)施例,提供一種具有注冊功能的計(jì)算設(shè)備的數(shù)據(jù)訪問方法S960,包括:
[0842]S961、計(jì)算終端I向計(jì)算終端2發(fā)送訪問請求;
[0843]S962、計(jì)算終端I向計(jì)算終端2發(fā)送“部署告知消息”,該消息用于通知計(jì)算終端2在計(jì)算終端I上已經(jīng)部署了數(shù)據(jù)黑洞系統(tǒng)(或者上述數(shù)據(jù)安全存取方法);
[0844]S963、計(jì)算終端2確定計(jì)算終端I的部署狀態(tài),即判斷計(jì)算終端I是否部署了數(shù)據(jù)黑洞系統(tǒng);
[0845]S964、計(jì)算終端2利用安全讀取方法從其對應(yīng)的安全存儲設(shè)備2讀取計(jì)算終端I將要訪問的數(shù)據(jù);
[0846]S965、計(jì)算終端2向計(jì)算終端I發(fā)送訪問應(yīng)答;
[0847]S966、如果需要保存數(shù)據(jù),計(jì)算設(shè)備I利用數(shù)據(jù)安全存儲方法將獲得的訪問數(shù)據(jù)保存在其對應(yīng)的安全存儲設(shè)備I中。
[0848]進(jìn)一步的,在每個(gè)終端都是一個(gè)注冊服務(wù)器的實(shí)施例中,為了方便計(jì)算終端的使用并且為了使安全互聯(lián)系統(tǒng)具有單向?qū)牍δ?數(shù)據(jù)只進(jìn)不出),根據(jù)本發(fā)明另一個(gè)實(shí)施例,數(shù)據(jù)安全互聯(lián)系統(tǒng)中的計(jì)算設(shè)備(例如終端系統(tǒng)A01)具有兩個(gè)模式:
[0849]在第一模式下,又稱為安全模式,計(jì)算設(shè)備上的指令重組平臺運(yùn)行(即在計(jì)算設(shè)備上部署了上述的運(yùn)行時(shí)指令重組方法或應(yīng)用了上述的運(yùn)行時(shí)指令重組裝置),數(shù)據(jù)存儲和讀取都在其分配的安全存儲設(shè)備上完成,并且完整的切斷該計(jì)算設(shè)備與除安全存儲設(shè)備以外的任何存儲設(shè)備之間的交互,還切斷該計(jì)算設(shè)備與除安全互聯(lián)系統(tǒng)以外的所有網(wǎng)絡(luò)交互(通過上述運(yùn)行時(shí)指令重組平臺來屏蔽相關(guān)指令);
[0850]在第二模式下,又稱為普通模式,計(jì)算設(shè)備上的指令重組平臺不運(yùn)行,注冊服務(wù)功能不啟用,普通模式下的計(jì)算設(shè)備可以與普通的計(jì)算設(shè)備一樣使用,例如可以從其他網(wǎng)絡(luò)節(jié)點(diǎn)獲取數(shù)據(jù)。
[0851]另外,普通模式的計(jì)算設(shè)備與安全模式計(jì)算設(shè)備之間不能相互訪問。例如,假設(shè)計(jì)算終端I處于安全模式而計(jì)算終端2處于普通模式。計(jì)算終端2如果要訪問計(jì)算終端1,計(jì)算終端2將向計(jì)算終端I發(fā)送訪問請求,計(jì)算終端I將發(fā)送部署檢查消息,計(jì)算終端I無法得到計(jì)算終端2的有效應(yīng)答,訪問不能進(jìn)行。計(jì)算終端I如果要訪問計(jì)算終端2,計(jì)算終端I需要向計(jì)算終端2發(fā)送訪問請求,在發(fā)送之前計(jì)算終端I同樣會企圖獲取計(jì)算終端2的部署檢查信息,如果計(jì)算終端I無法得到計(jì)算終端2的有效應(yīng)答,訪問不能進(jìn)行。
[0852]上述兩種模式的切換可以通過進(jìn)行系統(tǒng)重啟來完成,具體的,在系統(tǒng)啟動之初將訊問系統(tǒng)使用者希望進(jìn)入哪種模式,系統(tǒng)使用者根據(jù)自己的使用需求決定進(jìn)入何種模式。
[0853]大體上與上面的描述的方法S900、S910相應(yīng)的,根據(jù)本發(fā)明一個(gè)實(shí)施例,提供一種計(jì)算終端(即計(jì)算設(shè)備)。如圖28f所示,該計(jì)算終端fOO包括:
[0854]I/O接口 fOl,適于與注冊服務(wù)器fll建立連接并通信;
[0855]與I/O接口 fOl分別連接的注冊單元f02、黑洞單元f03、查詢單元f04。
[0856]其中,注冊單元f02適于通過I/O接口 fOl向注冊服務(wù)器fll注冊;
[0857]注冊單元f02的工作過程包括與注冊服務(wù)器的信息交互,用于在注冊服務(wù)器上注冊或者接受注冊服務(wù)器的部署檢查,具體可以參考方法S900、S910以及S950。
[0858]其中,黑洞單元f03適于接收注冊服務(wù)器fll部署的數(shù)據(jù)黑洞系統(tǒng);所述數(shù)據(jù)黑洞系統(tǒng)已經(jīng)在前面的介紹中定義。例如,數(shù)據(jù)黑洞系統(tǒng)包括(即實(shí)現(xiàn)了)上述數(shù)據(jù)安全存儲方法和數(shù)據(jù)安全讀取方法,或者數(shù)據(jù)黑洞系統(tǒng)包括上述數(shù)據(jù)安全存儲裝置和數(shù)據(jù)安全讀取裝置;數(shù)據(jù)黑洞系統(tǒng)還可以包括上述運(yùn)行時(shí)指令重組方法,或者包括上述運(yùn)行時(shí)指令重組裝置;數(shù)據(jù)黑洞系統(tǒng)還可以包括上述數(shù)據(jù)安全傳輸方法等。
[0859]該黑洞單元f03還適于與其他計(jì)算終端或計(jì)算設(shè)備進(jìn)行數(shù)據(jù)交互,例如包括發(fā)送訪問請求等。
[0860]其中,查詢單元f04適于向注冊服務(wù)器fll發(fā)送詢問消息,詢問某計(jì)算設(shè)備是否已
經(jīng)注冊。
[0861]大體上與上面的描述的方法S900、S910相應(yīng)的,根據(jù)本發(fā)明一個(gè)實(shí)施例,提供一種注冊服務(wù)器。如圖28g所示,該注冊服務(wù)器g00包括:
[0862]1/0接口 g01,適于與計(jì)算設(shè)備(例如圖中的計(jì)算設(shè)備gll和計(jì)算設(shè)備gl2,又稱為計(jì)算設(shè)備a和計(jì)算設(shè)備b)連接并進(jìn)行通信;
[0863]部署檢查單元g02,適于向計(jì)算設(shè)備發(fā)送部署檢查消息,檢查計(jì)算設(shè)備是否已經(jīng)部署了數(shù)據(jù)黑洞系統(tǒng);檢查交互過程可以參考方法S950 ;如果部署檢查單元g02檢查發(fā)現(xiàn)該計(jì)算設(shè)備已經(jīng)部署了數(shù)據(jù)黑洞系統(tǒng),部署檢查單元g02還適于更新注冊列表g05,將該計(jì)算設(shè)備添加進(jìn)入注冊列表中;如果部署檢查單元g02發(fā)現(xiàn)該計(jì)算設(shè)備尚未部署數(shù)據(jù)黑洞系統(tǒng),啟動部署詢問單元g03 ;
[0864]部署詢問單元g03,適于向計(jì)算設(shè)備發(fā)送詢問消息,詢問該計(jì)算設(shè)備是否同意通過安全存儲設(shè)備接管該計(jì)算設(shè)備所操作和訪問的數(shù)據(jù);如果來自計(jì)算設(shè)備的應(yīng)答消息表示不同意接管,拒絕該計(jì)算設(shè)備的注冊請求,結(jié)束;如果該應(yīng)答為同意接管,調(diào)用程序部署單元g04部署數(shù)據(jù)黑洞系統(tǒng);
[0865]程序部署單元g04,適于向計(jì)算設(shè)備部署數(shù)據(jù)黑洞系統(tǒng),當(dāng)部署結(jié)束之后,還適于更新注冊列表g05,將該計(jì)算設(shè)備添加進(jìn)入注冊列表中。
[0866]該注冊服務(wù)器g00還包括:注冊查詢單元g06,用于接收來自計(jì)算終端例如計(jì)算設(shè)備gl2的查詢,通過查詢注冊列表g05來檢查某個(gè)特定的計(jì)算終端是否已經(jīng)注冊,并向計(jì)算設(shè)備gl2反饋查詢結(jié)果。
[0867]大體上與上面的描述的方法S940、S950相應(yīng)的,根據(jù)本發(fā)明另一個(gè)實(shí)施例,提供一種計(jì)算終端。如圖28h所示,該計(jì)算設(shè)備hOO包括:
[0868]I/O接口 hOl,適于與計(jì)算設(shè)備(例如圖中的計(jì)算設(shè)備hll,又稱為計(jì)算設(shè)備c)連接并進(jìn)行通信;
[0869]部署檢查單元h02,適于向計(jì)算設(shè)備(例如計(jì)算設(shè)備c)發(fā)送部署檢查消息,檢查計(jì)算設(shè)備是否已經(jīng)部署了數(shù)據(jù)黑洞系統(tǒng);檢查交互過程可以參考方法S950 ;如果部署檢查單元h02檢查發(fā)現(xiàn)該計(jì)算設(shè)備c已經(jīng)部署了數(shù)據(jù)黑洞系統(tǒng),部署檢查單元h02還適于更新注冊列表h06,將該計(jì)算設(shè)備c添加進(jìn)入注冊列表中;如果部署檢查單元h02發(fā)現(xiàn)該計(jì)算設(shè)備c尚未部署數(shù)據(jù)黑洞系統(tǒng),啟動部署詢問單元h03 ;
[0870]部署詢問單元h03,適于向計(jì)算設(shè)備(例如計(jì)算設(shè)備c)發(fā)送詢問消息,詢問該計(jì)算設(shè)備是否同意通過安全存儲設(shè)備接管該計(jì)算設(shè)備所操作和訪問的數(shù)據(jù);如果來自計(jì)算設(shè)備的應(yīng)答消息表示不同意接管,拒絕該計(jì)算設(shè)備的注冊請求,結(jié)束;如果該應(yīng)答為同意接管,調(diào)用程序部署單元h04部署數(shù)據(jù)黑洞系統(tǒng);
[0871]程序部署單元h04,適于向計(jì)算設(shè)備部署數(shù)據(jù)黑洞系統(tǒng),當(dāng)部署結(jié)束之后,還適于更新注冊列表h06,將該計(jì)算設(shè)備添加進(jìn)入注冊列表中。
[0872]該計(jì)算設(shè)備h00還包括:黑洞單元h05,適于部署數(shù)據(jù)黑洞系統(tǒng)。該黑洞單元h05還適于與其他計(jì)算終端或計(jì)算設(shè)備進(jìn)行數(shù)據(jù)交互,例如包括發(fā)送訪問請求等。
[0873]大體上與上面的描述的方法S960相應(yīng)的,根據(jù)本發(fā)明另一個(gè)實(shí)施例,提供一種計(jì)算終端/計(jì)算設(shè)備。如圖28i所示,該計(jì)算設(shè)備i00包括:
[0874]1/0接口 i01,適于與計(jì)算設(shè)備(例如圖中的計(jì)算設(shè)備ill,又稱為計(jì)算設(shè)備d)連接并進(jìn)行通信;
[0875]部署檢查單元i02,適于接收來自其他計(jì)算設(shè)備(例如計(jì)算設(shè)備ill)的訪問請求和部署告知消息;如果通過部署告知消息確定計(jì)算設(shè)備ill已經(jīng)部署了數(shù)據(jù)黑洞系統(tǒng),則更新注冊列表h06,將該計(jì)算設(shè)備d添加進(jìn)入注冊列表中;[0876]黑洞單元i03,適于部署數(shù)據(jù)黑洞系統(tǒng),還適于與其他計(jì)算終端或計(jì)算設(shè)備ill進(jìn)行數(shù)據(jù)交互,例如包括發(fā)送訪問請求、部署告知消息等。
[0877]另外,黑洞單元i03還適于部署上述運(yùn)行時(shí)指令重組方法。此時(shí),計(jì)算設(shè)備i00可以具有兩種模式,即上述的安全模式和普通模式。
[0878]另外,該計(jì)算設(shè)備i00還可以包括部署詢問單元和程序部署單元,當(dāng)部署檢查單元i02發(fā)現(xiàn)計(jì)算設(shè)備d沒有部署數(shù)據(jù)黑洞系統(tǒng)時(shí),進(jìn)行部署詢問和部署操作。
[0879]在本發(fā)明其他實(shí)施例中,上述實(shí)施例中的計(jì)算終端或注冊服務(wù)器內(nèi)的單元/部件數(shù)量可以根據(jù)需要進(jìn)行增減(例如,可以不包含IO接口,各個(gè)單元直接與目標(biāo)對象耦接),還可以重新組合各個(gè)實(shí)施例中提供的部件和功能,或者用已知部件替換實(shí)施例中的部件。
[0880]本領(lǐng)域技術(shù)人員可以理解,上述計(jì)算終端和注冊服務(wù)器的實(shí)施例都是舉例描述,并不作為限定之意,任何本領(lǐng)域普通技術(shù)人員對上述裝置可能進(jìn)行的變形都不脫離本發(fā)明權(quán)利要求所聲明的保護(hù)范圍。
[0881]廣域網(wǎng)數(shù)據(jù)安全互聯(lián)
[0882]繼續(xù)參考圖27,如果網(wǎng)絡(luò)1、網(wǎng)絡(luò)2和網(wǎng)絡(luò)m中的一個(gè)或多個(gè)不在同一個(gè)局域網(wǎng),下面將詳細(xì)討論這種情況下的數(shù)據(jù)安全互聯(lián)系統(tǒng)。
[0883]根據(jù)本發(fā)明一個(gè)實(shí)施例,提供一種廣域網(wǎng)數(shù)據(jù)安全互聯(lián)系統(tǒng)。如圖29所示,該廣域網(wǎng)數(shù)據(jù)安全互聯(lián)系統(tǒng)包括:
[0884]似于局域網(wǎng)I中的終系統(tǒng)BOl、終2而系統(tǒng)B02...、終2而系統(tǒng)BOn、存儲設(shè)備B80 ;
[0885]似于局域網(wǎng)2中的終2而系統(tǒng)BI 1、終2而系統(tǒng)B12...、終2而系統(tǒng)Bln、存儲設(shè)備B81 ;
[0886]似于局域網(wǎng)m中的終2而系統(tǒng)B21、終2而系統(tǒng)B22...、終2而系統(tǒng)B2n、存儲設(shè)備B82 ;
[0887]分別與局域網(wǎng)1、局域網(wǎng)2和局域網(wǎng)m互聯(lián)的虛擬安全存儲服務(wù)器B30。
[0888]其中,虛擬安全存儲服務(wù)器B30作為分布式文件系統(tǒng)的主干節(jié)點(diǎn),存儲設(shè)備B80-B82是分布式文件系統(tǒng)的各個(gè)分節(jié)點(diǎn)。終端Bll只需要訪問虛擬安全存儲服務(wù)器B30,即可通過虛擬安全存儲服務(wù)器B30獲取存儲設(shè)備B80、B81和B82的數(shù)據(jù)。所有一個(gè)局域網(wǎng)絡(luò)內(nèi)的數(shù)據(jù)訪問都是直接進(jìn)行的,所有局域網(wǎng)絡(luò)之間的數(shù)據(jù)訪問實(shí)際上都是通過虛擬安全服務(wù)器B30進(jìn)行中轉(zhuǎn)的。
[0889]另外,在廣域網(wǎng)安全互聯(lián)系統(tǒng)中,每個(gè)節(jié)點(diǎn)(包括存儲設(shè)備和終端系統(tǒng)甚至是虛擬安全存儲服務(wù)器)自主的建立訪問控制注冊(例如上述方法S950或S960)。
[0890]根據(jù)本發(fā)明另一個(gè)實(shí)施例,提供一種廣域網(wǎng)數(shù)據(jù)安全互聯(lián)系統(tǒng)。如圖30所示,該廣域網(wǎng)數(shù)據(jù)安全互聯(lián)系統(tǒng)包括:
[0891]似于局域網(wǎng)I中的終系統(tǒng)001、終2而系統(tǒng)C02...、終2而系統(tǒng)COn ;
[0892]似于局域網(wǎng)2中的終2而系統(tǒng)011、終2而系統(tǒng)C12...、終2而系統(tǒng)Cln ;
[0893]似于局域網(wǎng)m中的終2而系統(tǒng)021、終2而系統(tǒng)C22...、終2而系統(tǒng)C2n ;
[0894]分別與局域網(wǎng)1、局域網(wǎng)2和局域網(wǎng)m互聯(lián)的集中式安全存儲服務(wù)器C30,包括存儲設(shè)備C80、存儲設(shè)備C81和存儲設(shè)備C82等。
[0895]其中,集中式安全存儲服務(wù)器C30分別有相應(yīng)的網(wǎng)絡(luò)端口和局域網(wǎng)地址分配給各個(gè)局域網(wǎng)絡(luò)1、局域網(wǎng)絡(luò)2和局域網(wǎng)絡(luò)m。
[0896]集中式安全存儲服務(wù)器C30具有上述實(shí)施例中注冊服務(wù)器的功能。局域網(wǎng)1、局域網(wǎng)2和局域網(wǎng)m中的終端系統(tǒng)都已經(jīng)在集中式安全存儲服務(wù)器C30上注冊,并且已經(jīng)被部署了上述安全讀取/存儲等方法以及運(yùn)行時(shí)指令重組方法。
[0897]集中式安全存儲服務(wù)器C30包括多個(gè)存儲設(shè)備,例如存儲設(shè)備C80、存儲設(shè)備C81和存儲設(shè)備C82等。這些存儲設(shè)備已經(jīng)分配給安全互聯(lián)系統(tǒng)中各個(gè)局域網(wǎng)絡(luò)內(nèi)的系統(tǒng)終端,作為其安全存取方法中采用的安全存儲設(shè)備。具體的,在集中式安全存儲服務(wù)器C30向終端系統(tǒng)部署本發(fā)明前述實(shí)施例中提供的數(shù)據(jù)安全存儲和讀取方法的時(shí)候,存儲設(shè)備C80分配給局域網(wǎng)I中的終端系統(tǒng)作為安全存儲設(shè)備;存儲設(shè)備C81分配給局域網(wǎng)2中的終端系統(tǒng)作為安全存儲設(shè)備;存儲設(shè)備C82分配給局域網(wǎng)m中的終端系統(tǒng)作為安全存儲設(shè)備。
[0898]根據(jù)本發(fā)明一個(gè)實(shí)施例,上述廣域網(wǎng)數(shù)據(jù)安全互聯(lián)系統(tǒng)建立方法包括:
[0899]SA01、計(jì)算設(shè)備(例如系統(tǒng)終端C01)向安全存儲服務(wù)器B30或C30發(fā)送注冊請求;
[0900]SA02、安全存儲服務(wù)器B30或C30詢問該計(jì)算設(shè)備是否同意通過安全存儲設(shè)備接管該計(jì)算設(shè)備所操作和訪問的數(shù)據(jù);
[0901]SA03、計(jì)算設(shè)備向安全存儲服務(wù)器B30或C30發(fā)送應(yīng)答消息,例如內(nèi)容為同意接管的應(yīng)答消息;
[0902]SA04、安全存儲服務(wù)器B30或C30 (根據(jù)內(nèi)容為同意接管的應(yīng)答消息)在計(jì)算設(shè)備上部署數(shù)據(jù)黑洞系統(tǒng),并注冊該計(jì)算設(shè)備;
[0903]SA05、安全存儲服務(wù)器B30或C30為該計(jì)算設(shè)備部署安全存儲設(shè)備(例如存儲設(shè)備C80),完成建立過程。
[0904]如果安全存儲服務(wù)器B30或C30向該計(jì)算設(shè)備部署上述的運(yùn)行時(shí)指令重組方法,就能夠?qū)崿F(xiàn)運(yùn)行時(shí)指令重組或追蹤。此時(shí),還可以實(shí)現(xiàn)例如上述運(yùn)行時(shí)指今重組方法和數(shù)據(jù)安全存取方法的結(jié)合S6000。
[0905]計(jì)算設(shè)備(例如計(jì)算機(jī)終端系統(tǒng)或智能終端)完成注冊后,通過上述的數(shù)據(jù)安全存儲和讀取方法,將向安全存儲設(shè)備中保存數(shù)據(jù),或者從安全存儲設(shè)備中讀取數(shù)據(jù)。
[0906]網(wǎng)絡(luò)支付安全互聯(lián)系統(tǒng)
[0907]應(yīng)用上述數(shù)據(jù)安全互聯(lián)系統(tǒng),根據(jù)本發(fā)明一個(gè)實(shí)施例,提供一種網(wǎng)絡(luò)支付安全互聯(lián)系統(tǒng)。如圖31所示,該網(wǎng)絡(luò)支付安全互聯(lián)系統(tǒng)包括:
[0908]位于網(wǎng)絡(luò)I中的:注冊服務(wù)器D91,數(shù)據(jù)服務(wù)器DOl及其對應(yīng)的安全存儲設(shè)備D81,支付應(yīng)用服務(wù)器D02及其對應(yīng)的安全存儲設(shè)備D82 ;
[0909]位于與網(wǎng)絡(luò)I互聯(lián)的網(wǎng)絡(luò)2中的:注冊服務(wù)器D90,網(wǎng)絡(luò)終端D03(計(jì)算機(jī)),移動終端D04,及二者對應(yīng)的安全存儲設(shè)備D83 ;和
[0910]位于與支付應(yīng)用服務(wù)器D02互聯(lián)的網(wǎng)絡(luò)3中的:注冊服務(wù)器D92,結(jié)算服務(wù)器D05、賬戶數(shù)據(jù)服務(wù)器D06,及賬戶數(shù)據(jù)服務(wù)器和結(jié)算服務(wù)器對應(yīng)的安全存儲設(shè)備D84。
[0911]其中,支付應(yīng)用服務(wù)器接入網(wǎng)絡(luò)I的接口稱為應(yīng)用接口,接入網(wǎng)絡(luò)3的接口稱為支付接口。
[0912]其中,網(wǎng)絡(luò)I和網(wǎng)絡(luò)2可以為一個(gè)網(wǎng)絡(luò)。
[0913]其中,數(shù)據(jù)服務(wù)器D01、支付應(yīng)用服務(wù)器D02、網(wǎng)絡(luò)終端D03、移動終端D04都已經(jīng)按照上面介紹的S900的方法分別通過注冊服務(wù)器D90和注冊服務(wù)器D91注冊并加入了網(wǎng)絡(luò)I和網(wǎng)絡(luò)2的安全互聯(lián)系統(tǒng);支付應(yīng)用服務(wù)器D02、結(jié)算服務(wù)器D05、賬戶數(shù)據(jù)服務(wù)器D06都已經(jīng)按照上面介紹的S900的方法通過注冊服務(wù)器D92注冊加入了安全互聯(lián)系統(tǒng)。由于支付應(yīng)用服務(wù)器D02分別位于網(wǎng)絡(luò)I和網(wǎng)絡(luò)3之中,所以分別向注冊服務(wù)器D91和D92注
ΠΠ
/ttr O
[0914]其中,數(shù)據(jù)服務(wù)器D01、支付應(yīng)用服務(wù)器D02對應(yīng)的安全存儲設(shè)備也可以相同;網(wǎng)絡(luò)終端D03、移動終端D04對應(yīng)的安全存儲設(shè)備也可以不同;結(jié)算服務(wù)器D05、賬戶數(shù)據(jù)服務(wù)器D06對應(yīng)的安全存儲設(shè)備也可以不同。
[0915]其中,注冊服務(wù)器D90、D91和D92向各個(gè)注冊的設(shè)備部署了上述運(yùn)行時(shí)指令重組方法以及基于該方法的安全存儲/讀取/傳輸方法。
[0916]繼續(xù)參考圖31,在網(wǎng)絡(luò)支付安全互聯(lián)系統(tǒng)中,網(wǎng)絡(luò)終端D03或者移動終端D04可以訪問網(wǎng)絡(luò)I中的數(shù)據(jù)服務(wù)器DOl,并且可以在數(shù)據(jù)服務(wù)器DOl上建立使用賬戶保存訪問信息(當(dāng)然也可以在本地保存訪問信息,其過程與S910相同)。
[0917]網(wǎng)絡(luò)終端D03或者移動終端D04訪問網(wǎng)絡(luò)I中的數(shù)據(jù)服務(wù)器DOl的過程與S910相似,但增加了在數(shù)據(jù)服務(wù)器DOl上保存訪問信息的步驟。具體的,該過程(即計(jì)算終端的數(shù)據(jù)訪問請求的處理過程)S920包括:
[0918]S921、計(jì)算設(shè)備(網(wǎng)絡(luò)終端D03或者移動終端D04)向數(shù)據(jù)服務(wù)器DOl發(fā)送訪問請求;該訪問請求可以由計(jì)算設(shè)備直接發(fā)送給數(shù)據(jù)服務(wù)器D01,也可以通過其他應(yīng)用服務(wù)器轉(zhuǎn)發(fā)給數(shù)據(jù)服務(wù)器DOl ;
[0919]S922、數(shù)據(jù)服務(wù)器DOl向注冊服務(wù)器D90發(fā)送安全地址詢問消息,詢問該計(jì)算終端是否為安全地址;
[0920]S923、注冊服務(wù)器D90向數(shù)據(jù)服務(wù)器DOl發(fā)送安全地址應(yīng)答消息,告知該計(jì)算終端為安全地址;
[0921]S924、得到肯定應(yīng)答之后,數(shù)據(jù)服務(wù)器DOl根據(jù)該請求讀取相應(yīng)的數(shù)據(jù),該讀取過程為上述數(shù)據(jù)安全讀取方法;如果得到否定應(yīng)答,則數(shù)據(jù)服務(wù)器DOl忽略所述數(shù)據(jù)訪問請求;
[0922]S925、數(shù)據(jù)服務(wù)器DOl向計(jì)算終端發(fā)送數(shù)據(jù)應(yīng)答;
[0923]S926、計(jì)算終端決定將一部分訪問數(shù)據(jù)保存在數(shù)據(jù)服務(wù)器DOl上,根據(jù)上述的數(shù)據(jù)安全存儲方法,數(shù)據(jù)服務(wù)器DOl向安全存儲設(shè)備D81保存數(shù)據(jù)。
[0924]繼續(xù)參考圖31,在網(wǎng)絡(luò)支付安全互聯(lián)系統(tǒng)中,網(wǎng)絡(luò)終端D03或者移動終端D04可以通過網(wǎng)絡(luò)I中的支付應(yīng)用服務(wù)器D02購買訪問過的產(chǎn)品或服務(wù)。
[0925]網(wǎng)絡(luò)終端D03或者移動終端D04(通過應(yīng)用接口)訪問支付應(yīng)用服務(wù)器D02、然后通過支付應(yīng)用服務(wù)器D02訪問結(jié)算服務(wù)器D05的過程(即計(jì)算終端的支付請求的處理過程)S930包括:
[0926]S931、計(jì)算設(shè)備(網(wǎng)絡(luò)終端D03或者移動終端D04)向支付應(yīng)用服務(wù)器D02發(fā)送支付請求;
[0927]該支付請求可以由計(jì)算設(shè)備直接發(fā)送給支付應(yīng)用服務(wù)器D02,也可以通過其他應(yīng)用服務(wù)器轉(zhuǎn)發(fā)給支付應(yīng)用服務(wù)器D02 ;
[0928]該支付請求包含用戶的資金賬戶信息和交易信息;所述資金賬戶信息可以是實(shí)體銀行賬戶、虛擬銀行賬戶以及其他類型的資金賬戶信息,所述交易信息包括交易數(shù)量、單價(jià)等;
[0929]S932、支付應(yīng)用服務(wù)器D02向注冊服務(wù)器B90發(fā)送安全地址詢問消息,詢問該計(jì)算終端是否為安全地址;
[0930]S933、注冊服務(wù)器D90向支付應(yīng)用服務(wù)器D02發(fā)送安全地址應(yīng)答消息,告知該計(jì)算終端為安全地址;
[0931]S934、如果得到否定應(yīng)答,則支付應(yīng)用服務(wù)器D02忽略所述支付請求;如果得到肯定應(yīng)答,支付應(yīng)用服務(wù)器D02根據(jù)支付請求中的交易信息計(jì)算交易數(shù)據(jù)并生成結(jié)算信息;結(jié)算信息可以為一個(gè)具體數(shù)值(即所需支付金額),也可以為一系列用于計(jì)算結(jié)算信息的數(shù)據(jù);
[0932]S935、支付應(yīng)用服務(wù)器D02(通過支付接口)向結(jié)算服務(wù)器D05發(fā)送結(jié)算請求;所述結(jié)算請求包括用戶的資金賬戶信息和結(jié)算信息;
[0933]S936、結(jié)算服務(wù)器D05向注冊服務(wù)器D92發(fā)送安全地址詢問消息,詢問該支付應(yīng)用服務(wù)器D02是否為安全地址;
[0934]S937、注冊服務(wù)器D92向結(jié)算服務(wù)器D05發(fā)送安全地址應(yīng)答消息,告知該支付應(yīng)用服務(wù)器D02為安全地址;
[0935]S938、結(jié)算服務(wù)器D05根據(jù)結(jié)算信息中的資金賬戶信息(例如賬戶名和賬戶ID)調(diào)用對應(yīng)的資金賬戶數(shù)據(jù);
[0936]判斷資金賬戶數(shù)據(jù)是否能夠滿足結(jié)算信息的要求;
[0937]如果不能滿足,向支付應(yīng)用服務(wù)器D02發(fā)送失敗應(yīng)答;
[0938]如果能滿足,進(jìn)行結(jié)算操作(即將結(jié)算信息的金額從資金賬戶數(shù)據(jù)中扣除),將更新的資金賬戶數(shù)據(jù)保存在對應(yīng)的安全存儲設(shè)備D84,并向支付應(yīng)用服務(wù)器D02發(fā)送成功應(yīng)答;
[0939]S939、支付應(yīng)用服務(wù)器D02根據(jù)接收到的成功或失敗應(yīng)答向計(jì)算終端發(fā)送成功或失敗應(yīng)答,并且如果是成功應(yīng)答,在對應(yīng)的安全存儲設(shè)備D82上保存該支付請求信息。
[0940]其中,在步驟S938中,結(jié)算服務(wù)器D05還可以訪問賬戶數(shù)據(jù)服務(wù)器D06來獲取資金賬戶數(shù)據(jù)。
[0941]上述安全互聯(lián)系統(tǒng)(例如數(shù)據(jù)安全互聯(lián)系統(tǒng)/網(wǎng)絡(luò)支付安全互聯(lián)系統(tǒng))將數(shù)據(jù)安全特性(例如數(shù)據(jù)安全存儲/讀取/傳輸方法,以及基于運(yùn)行時(shí)指令重組方法的數(shù)據(jù)安全存儲/讀取/傳輸方法)植入了局域網(wǎng)或廣域網(wǎng)中,確保了局域網(wǎng)絡(luò)和廣域網(wǎng)絡(luò)中敏感數(shù)據(jù)的安全性。即使惡意程序入侵,其訪問的任何數(shù)據(jù)都不會被竊取,甚至連同惡意程序本身都將永遠(yuǎn)被禁錮在安全互聯(lián)系統(tǒng)的安全存儲設(shè)備之中。
[0942]上述安全互聯(lián)系統(tǒng)不僅對云計(jì)算中的數(shù)據(jù)安全提供了有力的支持,更為網(wǎng)絡(luò)支付和移動支付的普及奠定了安全的基礎(chǔ)。
[0943]應(yīng)該注意到并理解,在不脫離后附的權(quán)利要求所要求的本發(fā)明的精神和范圍的情況下,能夠?qū)ι鲜鲈敿?xì)描述的本發(fā)明做出各種修改和改進(jìn)。因此,要求保護(hù)的技術(shù)方案的范圍不受所給出的任何特定示范教導(dǎo)的限制。
【權(quán)利要求】
1.一種數(shù)據(jù)安全互聯(lián)系統(tǒng)的建立方法,包括: 步驟1、計(jì)算設(shè)備向注冊服務(wù)器發(fā)送注冊請求; 步驟2、注冊服務(wù)器向計(jì)算設(shè)備發(fā)送詢問消息,詢問該計(jì)算設(shè)備是否同意通過安全存儲設(shè)備接管該計(jì)算設(shè)備所操作和訪問的數(shù)據(jù),或者詢問該計(jì)算設(shè)備是否同意部署數(shù)據(jù)安全存儲方法和數(shù)據(jù)安全讀取方法; 步驟3、計(jì)算設(shè)備向注冊服務(wù)器發(fā)送應(yīng)答消息;和 步驟4、注冊服務(wù)器檢查所述應(yīng)答消息; 如果該應(yīng)答為不同意接管,注冊服務(wù)器拒絕該計(jì)算設(shè)備的注冊請求,結(jié)束建立方法; 如果該應(yīng)答為同意接管,注冊服務(wù)器在計(jì)算設(shè)備上部署數(shù)據(jù)安全存儲方法和讀取方法,注冊服務(wù)器為該計(jì)算設(shè)備部署安全存儲設(shè)備,并且將該計(jì)算設(shè)備添加在注冊服務(wù)器上的注冊列表中; 其中,數(shù)據(jù)安全存儲方法包括: 步驟al、接收硬件指令; 步驟a2、分析所述硬件指令; 步驟a3、如果所述硬件指令是存儲指令,修改所述存儲指令中的目標(biāo)地址為對應(yīng)的在所述安全存儲設(shè)備上的存儲地址;和 步驟a4、將修改后的存儲指令發(fā)送到硬件層; 其中,數(shù)據(jù)安全讀取方法包括:` 步驟bl、接收硬件指令; 步驟b2、分析所述硬件指令; 步驟b3、如果所述硬件指令是讀取指令,獲取讀取指令中的源地址; 步驟b4、查找第一映射位圖,并根據(jù)第一映射位圖的數(shù)據(jù)修改讀取指令中的讀取地址;所述第一映射位圖用于表示本地存儲地址的數(shù)據(jù)是否轉(zhuǎn)儲到所述安全存儲設(shè)備;和步驟b5、將修改后的讀取指令發(fā)送到硬件層。
2.如權(quán)利要求1所述的數(shù)據(jù)安全互聯(lián)系統(tǒng)的建立方法,其中,在步驟a3之后,數(shù)據(jù)安全存儲方法還包括: 更新第一映射位圖中所述目標(biāo)地址對應(yīng)的位; 將已經(jīng)更新的第一映射位圖同步到所述安全存儲設(shè)備,保存為第二映射位圖;所述第二映射位圖用于表示本地存儲地址的數(shù)據(jù)是否轉(zhuǎn)儲到所述安全存儲設(shè)備。
3.如權(quán)利要求2所述的數(shù)據(jù)安全互聯(lián)系統(tǒng)的建立方法,其中,在步驟al之前,數(shù)據(jù)安全存儲方法還包括: 建立計(jì)算設(shè)備與所述安全存儲設(shè)備的通訊; 將所述安全存儲設(shè)備上的第二映射位圖同步到所述計(jì)算設(shè)備,保存為第一映射位圖。
4.如權(quán)利要求1所述的數(shù)據(jù)安全互聯(lián)系統(tǒng)的建立方法,其中,在步驟b4之前,數(shù)據(jù)安全讀取方法還包括: 建立計(jì)算設(shè)備與所述安全存儲設(shè)備的通訊; 將所述安全存儲設(shè)備上的第二映射位圖同步到所述計(jì)算設(shè)備,保存為第一映射位圖。
5.如權(quán)利要求1所述的數(shù)據(jù)安全互聯(lián)系統(tǒng)的建立方法,其中,在步驟al和bl中,所述硬件指令來自硬件映射層。
6.如權(quán)利要求1所述的數(shù)據(jù)安全互聯(lián)系統(tǒng)的建立方法,其中,在步驟4中,注冊服務(wù)器還在計(jì)算設(shè)備上部署運(yùn)行時(shí)指令重組方法,該運(yùn)行時(shí)指令重組方法包括: 步驟Cl、緩存指令運(yùn)行環(huán)境; 步驟c2、獲取待調(diào)度的機(jī)器指令片段;在所述獲取的機(jī)器指令片段的最后一條指令前,插入第二跳轉(zhuǎn)指令,所述第二跳轉(zhuǎn)指令指向指令重組平臺的入口地址,生成重組指令片段;將所述緩存的指令運(yùn)行環(huán)境中的地址寄存器的值修改為重組指令片段的地址; 步驟c3、恢復(fù)所述指令運(yùn)行環(huán)境;所述指令運(yùn)行環(huán)境中的地址寄存器的值為修改后的值。
7.如權(quán)利要求1所述的數(shù)據(jù)安全互聯(lián)系統(tǒng)的建立方法,其中,在步驟4中,注冊服務(wù)器還在計(jì)算設(shè)備上部署運(yùn)行時(shí)指令重組方法,該運(yùn)行時(shí)指令重組方法包括: 步驟dl、緩存指令運(yùn)行環(huán)境; 步驟d2、從第一存儲位置讀取目標(biāo)地址,根據(jù)目標(biāo)地址獲取待調(diào)度的機(jī)器指令片段;待調(diào)度的機(jī)器指令片段的最后一條指令為第一跳轉(zhuǎn)指令;` 步驟d3、在第一存儲位置保存第一跳轉(zhuǎn)指令的目標(biāo)地址; 步驟d4、將第一跳轉(zhuǎn)指令替換為第二跳轉(zhuǎn)指令,生成具有第二地址的重組指令片段;所述第二跳轉(zhuǎn)指令指向指令重組平臺的入口地址;和 步驟d5、恢復(fù)所述指令運(yùn)行環(huán)境,并跳轉(zhuǎn)到第二地址繼續(xù)執(zhí)行。
8.如權(quán)利要求1所述的數(shù)據(jù)安全互聯(lián)系統(tǒng)的建立方法,其中,在步驟4中,注冊服務(wù)器還在計(jì)算設(shè)備上部署運(yùn)行時(shí)指令重組方法,該運(yùn)行時(shí)指令重組方法包括: 步驟el、緩存指令運(yùn)行環(huán)境; 步驟e2、獲取棧中保存的跳轉(zhuǎn)指令的地址和參數(shù),計(jì)算下一條即將運(yùn)行的指令地址,該地址為第一地址; 步驟e3、根據(jù)第一地址獲取待調(diào)度機(jī)器指令片段;其中,待調(diào)度機(jī)器指令片段的最后一條指令為第一跳轉(zhuǎn)指令; 步驟e4、替換第一跳轉(zhuǎn)指令為壓棧指令,在壓棧指令中記錄第一跳轉(zhuǎn)指令的地址和操作數(shù); 步驟e5、在壓棧指令之后加入第二跳轉(zhuǎn)指令,生成具有第二地址的重組指令片段;所述第二跳轉(zhuǎn)指令指向指令重組平臺的入口地址;和 步驟e6、恢復(fù)所述指令運(yùn)行環(huán)境,并跳轉(zhuǎn)到第二地址繼續(xù)執(zhí)行。
9.一種應(yīng)用于權(quán)利要求1-8中任一項(xiàng)所述方法建立的數(shù)據(jù)安全互聯(lián)系統(tǒng)的數(shù)據(jù)訪問方法,包括: 步驟1、第一計(jì)算設(shè)備向第二計(jì)算設(shè)備發(fā)送訪問請求; 步驟2、第二計(jì)算設(shè)備向注冊服務(wù)器發(fā)送安全地址詢問消息,詢問所述第一計(jì)算設(shè)備是否為安全地址; 步驟3、注冊服務(wù)器向第二計(jì)算設(shè)備發(fā)送安全地址應(yīng)答消息,告知該第一計(jì)算設(shè)備是否為安全地址; 步驟4、如果得到肯定的應(yīng)答消息,第二計(jì)算設(shè)備根據(jù)訪問請求讀取相應(yīng)的數(shù)據(jù),讀取過程為所述的數(shù)據(jù)安全讀取方法;如果得到否定的應(yīng)答消息,第二計(jì)算設(shè)備忽略所述訪問請求;和步驟5、第二計(jì)算設(shè)備向第一計(jì)算設(shè)備發(fā)送訪問應(yīng)答。
10.如權(quán)利要求9所述的數(shù)據(jù)訪問方法,在步驟5之后,還包括: 步驟6、如果第一計(jì)算設(shè)備需要保存數(shù)據(jù),則根據(jù)所述的數(shù)據(jù)安全存儲方法保存數(shù)據(jù)。
11.一種數(shù)據(jù)安全互聯(lián)系統(tǒng),包括:計(jì)算設(shè)備、安全存儲設(shè)備和注冊服務(wù)器; 其中,所述注冊服務(wù)器適于注冊計(jì)算設(shè)備,并為計(jì)算設(shè)備分配安全存儲設(shè)備;所述計(jì)算設(shè)備適于通過數(shù)據(jù)安全存儲方法和數(shù)據(jù)安全讀取方法將數(shù)據(jù)保存在安全存儲設(shè)備上或從安全存儲設(shè)備讀取數(shù)據(jù); 其中,數(shù)據(jù)安全存儲方法包括:步驟al、接收硬件指令;步驟a2、分析所述硬件指令;步驟a3、如果所述硬件指令是存儲指令,修改所述存儲指令中的目標(biāo)地址為對應(yīng)的在所述安全存儲設(shè)備上的存儲地址;和步驟a4、將修改后的存儲指令發(fā)送到硬件層; 其中,數(shù)據(jù)安全讀取方法包括:步驟bl、接收硬件指令;步驟b2、分析所述硬件指令;步驟b3、如果所述硬件指令是讀取指令,獲取讀取指令中的源地址;步驟b4、查找第一映射位圖,并根據(jù)第一映射位圖的數(shù)據(jù)修改讀取指令中的讀取地址;所述第一映射位圖用于表示本地存儲地址的數(shù)據(jù)是否轉(zhuǎn)儲到所述安全存儲設(shè)備;和步驟b5、將修改后的讀取指令發(fā)送到硬件層。
12.如權(quán)利要求11所述的數(shù)據(jù)安全互聯(lián)系統(tǒng),其中,所述注冊服務(wù)器適于: 接收來自計(jì)算設(shè)備的注冊請求; 向計(jì)算設(shè)備發(fā)送詢問消息,詢問該計(jì)算設(shè)備是否同意通過安全存儲設(shè)備接管該計(jì)算設(shè)備所操作和訪問的數(shù)據(jù),或者詢問該計(jì)算設(shè)備是否同意部署數(shù)據(jù)安全存儲方法和數(shù)據(jù)安全讀取方法; 接收并檢查來自計(jì)算設(shè)備的應(yīng)答消息;如果應(yīng)答為不同意接管,拒絕該計(jì)算設(shè)備的注冊請求;如果應(yīng)答為同意接管,在計(jì)算設(shè)備上部署數(shù)據(jù)安全存儲方法和讀取方法,為該計(jì)算設(shè)備部署安全存儲設(shè)備,并且將該計(jì)算設(shè)備添加在注冊服務(wù)器上的注冊列表中。
13.如權(quán)利要求11所述的數(shù)據(jù)安全互聯(lián)系統(tǒng),其中,所述注冊服務(wù)器還適于在計(jì)算設(shè)備上部署運(yùn)行時(shí)指令重組方法,該運(yùn)行時(shí)指令重組方法包括: 步驟Cl、緩存指令運(yùn)行環(huán)境; 步驟c2、獲取待調(diào)度的機(jī)器指令片段;在所述獲取的機(jī)器指令片段的最后一條指令前,插入第二跳轉(zhuǎn)指令,所述第二跳轉(zhuǎn)指令指向指令重組平臺的入口地址,生成重組指令片段;將所述緩存的指令運(yùn)行環(huán)境中的地址寄存器的值修改為重組指令片段的地址; 步驟c3、恢復(fù)所述指令運(yùn)行環(huán)境;所述指令運(yùn)行環(huán)境中的地址寄存器的值為修改后的值。
14.如權(quán)利要求11所述的數(shù)據(jù)安全互聯(lián)系統(tǒng),其中,所述注冊服務(wù)器還適于在計(jì)算設(shè)備上部署運(yùn)行時(shí)指令重組方法,該運(yùn)行時(shí)指令重組方法包括: 步驟dl、緩存指令運(yùn)行環(huán)境; 步驟d2、從第一存儲位置讀取目標(biāo)地址,根據(jù)目標(biāo)地址獲取待調(diào)度的機(jī)器指令片段;待調(diào)度的機(jī)器指令片段的最后一條指令為第一跳轉(zhuǎn)指令; 步驟d3、在第一存儲位置保存第一跳轉(zhuǎn)指令的目標(biāo)地址; 步驟d4、將第一跳轉(zhuǎn)指令替換為第二跳轉(zhuǎn)指令,生成具有第二地址的重組指令片段;所述第二跳轉(zhuǎn)指令指向指令重組平臺的入口地址;和步驟d5、恢復(fù)所述指令運(yùn)行環(huán)境,并跳轉(zhuǎn)到第二地址繼續(xù)執(zhí)行。
15.如權(quán)利要求11所述的數(shù)據(jù)安全互聯(lián)系統(tǒng),其中,所述注冊服務(wù)器還適于在計(jì)算設(shè)備上部署運(yùn)行時(shí)指令重組方法,該運(yùn)行時(shí)指令重組方法包括: 步驟el、緩存指令運(yùn)行環(huán)境; 步驟e2、獲取棧中保存的跳轉(zhuǎn)指令的地址和參數(shù),計(jì)算下一條即將運(yùn)行的指令地址,該地址為第一地址; 步驟e3、根據(jù)第一地址獲取待調(diào)度機(jī)器指令片段;其中,待調(diào)度機(jī)器指令片段的最后一條指令為第一跳轉(zhuǎn)指令; 步驟e4、替換第一跳轉(zhuǎn)指令為壓棧指令,在壓棧指令中記錄第一跳轉(zhuǎn)指令的地址和操作數(shù); 步驟e5、在壓棧指令之后加入第二跳轉(zhuǎn)指令,生成具有第二地址的重組指令片段;所述第二跳轉(zhuǎn)指令指向指令重組平臺的入口地址;和 步驟e6、恢復(fù)所述指令運(yùn)行環(huán)境,并跳轉(zhuǎn)到第二地址繼續(xù)執(zhí)行。
16.一種計(jì)算設(shè)備,包括: 注冊單元,適于在注冊服務(wù)器上注冊和/或接受注冊服務(wù)器的部署檢查; 黑洞單元,適于接收注冊服務(wù)器部署的數(shù)據(jù)黑洞系統(tǒng);和 查詢單元,適于向注 冊服務(wù)器發(fā)送詢問消息,詢問第二計(jì)算設(shè)備是否已經(jīng)注冊; 其中,數(shù)據(jù)黑洞系統(tǒng)包括數(shù)據(jù)安全讀取方法和數(shù)據(jù)安全存儲方法; 其中,數(shù)據(jù)安全存儲方法包括: 步驟al、接收硬件指令; 步驟a2、分析所述硬件指令; 步驟a3、如果所述硬件指令是存儲指令,修改所述存儲指令中的目標(biāo)地址為對應(yīng)的在所述安全存儲設(shè)備上的存儲地址;和 步驟a4、將修改后的存儲指令發(fā)送到硬件層; 其中,數(shù)據(jù)安全讀取方法包括: 步驟bl、接收硬件指令; 步驟b2、分析所述硬件指令; 步驟b3、如果所述硬件指令是讀取指令,獲取讀取指令中的源地址; 步驟b4、查找第一映射位圖,并根據(jù)第一映射位圖的數(shù)據(jù)修改讀取指令中的讀取地址;所述第一映射位圖用于表示本地存儲地址的數(shù)據(jù)是否轉(zhuǎn)儲到所述安全存儲設(shè)備;和步驟b5、將修改后的讀取指令發(fā)送到硬件層。
17.如權(quán)利要求16所述的計(jì)算設(shè)備,其中,所述數(shù)據(jù)黑洞系統(tǒng)還包括運(yùn)行時(shí)指令重組方法,該運(yùn)行時(shí)指令重組方法包括: 步驟Cl、緩存指令運(yùn)行環(huán)境; 步驟c2、獲取待調(diào)度的機(jī)器指令片段;在所述獲取的機(jī)器指令片段的最后一條指令前,插入第二跳轉(zhuǎn)指令,所述第二跳轉(zhuǎn)指令指向指令重組平臺的入口地址,生成重組指令片段;將所述緩存的指令運(yùn)行環(huán)境中的地址寄存器的值修改為重組指令片段的地址;和 步驟c3、恢復(fù)所述指令運(yùn)行環(huán)境;所述指令運(yùn)行環(huán)境中的地址寄存器的值為修改后的值。
18.如權(quán)利要求16所述的計(jì)算設(shè)備,其中,所述數(shù)據(jù)黑洞系統(tǒng)還包括運(yùn)行時(shí)指令重組方法,該運(yùn)行時(shí)指令重組方法包括: 步驟dl、緩存指令運(yùn)行環(huán)境; 步驟d2、從第一存儲位置讀取目標(biāo)地址,根據(jù)目標(biāo)地址獲取待調(diào)度的機(jī)器指令片段;待調(diào)度的機(jī)器指令片段的最后一條指令為第一跳轉(zhuǎn)指令; 步驟d3、在第一存儲位置保存第一跳轉(zhuǎn)指令的目標(biāo)地址; 步驟d4、將第一跳轉(zhuǎn)指令替換為第二跳轉(zhuǎn)指令,生成具有第二地址的重組指令片段;所述第二跳轉(zhuǎn)指令指向指令重組平臺的入口地址;和 步驟d5、恢復(fù)所述指令運(yùn)行環(huán)境,并跳轉(zhuǎn)到第二地址繼續(xù)執(zhí)行。
19.如權(quán)利要求16所述的計(jì)算設(shè)備,其中,所述數(shù)據(jù)黑洞系統(tǒng)還包括運(yùn)行時(shí)指令重組方法,該運(yùn)行時(shí)指令重組方法包括: 步驟el、緩存指令運(yùn)行環(huán)境; 步驟e2、獲取棧中保存的跳轉(zhuǎn)指令的地址和參數(shù),計(jì)算下一條即將運(yùn)行的指令地址,該地址為第一地址; 步驟e3、根據(jù)第一地 址獲取待調(diào)度機(jī)器指令片段;其中,待調(diào)度機(jī)器指令片段的最后一條指令為第一跳轉(zhuǎn)指令; 步驟e4、替換第一跳轉(zhuǎn)指令為壓棧指令,在壓棧指令中記錄第一跳轉(zhuǎn)指令的地址和操作數(shù); 步驟e5、在壓棧指令之后加入第二跳轉(zhuǎn)指令,生成具有第二地址的重組指令片段;所述第二跳轉(zhuǎn)指令指向指令重組平臺的入口地址;和 步驟e6、恢復(fù)所述指令運(yùn)行環(huán)境,并跳轉(zhuǎn)到第二地址繼續(xù)執(zhí)行。
20.一種注冊服務(wù)器,包括: 部署詢問單元,適于向計(jì)算設(shè)備發(fā)送詢問消息,詢問該計(jì)算設(shè)備是否同意通過安全存儲設(shè)備接管該計(jì)算設(shè)備所操作和訪問的數(shù)據(jù);和 程序部署單元,適于向計(jì)算設(shè)備部署數(shù)據(jù)黑洞系統(tǒng),當(dāng)部署結(jié)束之后,還適于將該計(jì)算設(shè)備添加進(jìn)入注冊列表中; 其中,數(shù)據(jù)黑洞系統(tǒng)包括數(shù)據(jù)安全讀取方法和數(shù)據(jù)安全存儲方法; 其中,數(shù)據(jù)安全存儲方法包括: 步驟al、接收硬件指令; 步驟a2、分析所述硬件指令; 步驟a3、如果所述硬件指令是存儲指令,修改所述存儲指令中的目標(biāo)地址為對應(yīng)的在所述安全存儲設(shè)備上的存儲地址;和 步驟a4、將修改后的存儲指令發(fā)送到硬件層; 其中,數(shù)據(jù)安全讀取方法包括: 步驟bl、接收硬件指令; 步驟b2、分析所述硬件指令; 步驟b3、如果所述硬件指令是讀取指令,獲取讀取指令中的源地址; 步驟b4、查找第一映射位圖,并根據(jù)第一映射位圖的數(shù)據(jù)修改讀取指令中的讀取地址;所述第一映射位圖用于表示本地存儲地址的數(shù)據(jù)是否轉(zhuǎn)儲到所述安全存儲設(shè)備;和步驟b5、將修改后的讀取指令發(fā)送到硬件層。
21.如權(quán)利要求20所述的注冊服務(wù)器,其中,如果來自計(jì)算設(shè)備的應(yīng)答消息表示不同意接管,部署詢問單元適于拒絕該計(jì)算設(shè)備的注冊請求;如果該應(yīng)答為同意接管,部署詢問單元適于調(diào)用程序部署單元部署數(shù)據(jù)黑洞系統(tǒng)。
22.如權(quán)利要求20所述的注冊服務(wù)器,還包括: 注冊查詢單元,適于接收來自計(jì)算設(shè)備的查詢,通過查詢注冊列表來檢查某個(gè)特定的計(jì)算設(shè)備是否已經(jīng)注冊,并向計(jì)算設(shè)備反饋查詢結(jié)果。
23.如權(quán)利要求20所述的注冊服務(wù)器,還包括: 部署檢查單元,適于向計(jì)算設(shè)備發(fā)送部署檢查消息,檢查計(jì)算設(shè)備是否已經(jīng)部署了數(shù)據(jù)黑洞系統(tǒng)。
24.如權(quán)利要求22所述的注冊服務(wù)器,其中,如果部署檢查單元檢查發(fā)現(xiàn)所述計(jì)算設(shè)備已經(jīng)部署了數(shù)據(jù)黑洞系統(tǒng),部署檢查單元還適于更新注冊列表,將該計(jì)算設(shè)備添加進(jìn)入注冊列表中;如果部署檢查單元發(fā)現(xiàn)該計(jì)算設(shè)備尚未部署數(shù)據(jù)黑洞系統(tǒng),啟動部署詢問單元。
【文檔編號】G06F21/62GK103729601SQ201210384083
【公開日】2014年4月16日 申請日期:2012年10月11日 優(yōu)先權(quán)日:2012年10月11日
【發(fā)明者】汪家祥, 楊瀟 申請人:北京中天安泰信息科技有限公司