本技術(shù)實(shí)施例涉及計(jì)算機(jī),具體涉及一種內(nèi)存控制器、數(shù)據(jù)寫(xiě)入、讀取方法及計(jì)算機(jī)系統(tǒng)。
背景技術(shù):
1、安全內(nèi)存隔離管理單元(simu,secure?memory?isolation?management?unit)是用于為加密虛擬機(jī)提供加密虛擬機(jī)的內(nèi)存隔離功能的硬件模塊。但是,simu的使用會(huì)對(duì)加密虛擬機(jī)的內(nèi)存分配造成一定的限制和影響。
2、在此背景下,如何提供技術(shù)方案,提高加密虛擬機(jī)的內(nèi)存空間分配的靈活性,成為了本領(lǐng)域技術(shù)人員亟需解決的技術(shù)問(wèn)題。
技術(shù)實(shí)現(xiàn)思路
1、有鑒于此,本發(fā)明實(shí)施例提供一種內(nèi)存控制器、數(shù)據(jù)寫(xiě)入、讀取方法及計(jì)算機(jī)系統(tǒng),以提高加密虛擬機(jī)的內(nèi)存空間分配的靈活性。
2、為實(shí)現(xiàn)上述目的,本發(fā)明實(shí)施例提供如下技術(shù)方案。
3、第一方面,本發(fā)明實(shí)施例提供一種內(nèi)存控制器,包括:
4、請(qǐng)求獲取模塊,用于獲取加密虛擬機(jī)的內(nèi)存訪問(wèn)請(qǐng)求,所述內(nèi)存訪問(wèn)請(qǐng)求用于對(duì)加密虛擬機(jī)對(duì)應(yīng)的安全內(nèi)存空間進(jìn)行數(shù)據(jù)訪問(wèn)操作,其中,所述安全內(nèi)存空間為任意分配的物理內(nèi)存空間;所述內(nèi)存訪問(wèn)請(qǐng)求攜帶有加密虛擬機(jī)的地址空間標(biāo)識(shí);
5、密鑰確定模塊,用于根據(jù)所述地址空間標(biāo)識(shí)確定與所述加密虛擬機(jī)對(duì)應(yīng)的完整性驗(yàn)證密鑰,所述密鑰確定模塊由安全處理器配置;
6、內(nèi)存完整性驗(yàn)證信息確定模塊,用于基于所述內(nèi)存訪問(wèn)請(qǐng)求的物理訪問(wèn)地址、訪問(wèn)數(shù)據(jù)以及所述密鑰確定模塊確定的完整性驗(yàn)證密鑰確定出內(nèi)存完整性驗(yàn)證信息;所述內(nèi)存完整性驗(yàn)證信息用于對(duì)所述安全內(nèi)存空間的完整性進(jìn)行驗(yàn)證。
7、第二方面,本發(fā)明實(shí)施例提供一種數(shù)據(jù)寫(xiě)入方法,應(yīng)用于如第一方面所述的內(nèi)存控制器,包括:
8、獲取加密虛擬機(jī)的數(shù)據(jù)寫(xiě)入請(qǐng)求;
9、基于所述數(shù)據(jù)寫(xiě)入請(qǐng)求攜帶的地址空間標(biāo)識(shí)確定與所述加密虛擬機(jī)對(duì)應(yīng)的寫(xiě)入完整性驗(yàn)證密鑰;
10、根據(jù)所述數(shù)據(jù)寫(xiě)入請(qǐng)求確定的寫(xiě)數(shù)據(jù)、所述寫(xiě)入完整性驗(yàn)證密鑰以及所述數(shù)據(jù)寫(xiě)入請(qǐng)求的物理寫(xiě)地址確定出寫(xiě)入內(nèi)存完整性驗(yàn)證信息,所述寫(xiě)入內(nèi)存完整性驗(yàn)證信息用于驗(yàn)證加密虛擬機(jī)的安全內(nèi)存空間的完整性;
11、至少將所述寫(xiě)入內(nèi)存完整性驗(yàn)證信息、所述寫(xiě)數(shù)據(jù)寫(xiě)入至所述物理寫(xiě)地址中。
12、第三方面,本發(fā)明實(shí)施例提供一種數(shù)據(jù)讀取方法,包括:
13、獲取加密虛擬機(jī)的數(shù)據(jù)讀取請(qǐng)求;
14、基于所述數(shù)據(jù)讀取請(qǐng)求攜帶的地址空間標(biāo)識(shí)確定與所述加密虛擬機(jī)對(duì)應(yīng)的讀取完整性驗(yàn)證密鑰;
15、根據(jù)由所述數(shù)據(jù)讀取請(qǐng)求的物理讀地址讀取到的讀數(shù)據(jù)、所述讀取完整性驗(yàn)證密鑰以及所述物理讀地址,重新確定出讀取內(nèi)存完整性驗(yàn)證信息;
16、在判斷出所述讀取內(nèi)存完整性驗(yàn)證信息,和基于所述物理讀地址讀取到的寫(xiě)入內(nèi)存完整性驗(yàn)證信息相等時(shí),確定所述加密虛擬機(jī)的安全內(nèi)存空間的完整性驗(yàn)證通過(guò);
17、發(fā)送讀數(shù)據(jù);
18、其中,所述寫(xiě)入內(nèi)存完整性驗(yàn)證信息基于第二方面所述的數(shù)據(jù)寫(xiě)入方法寫(xiě)入,所述讀數(shù)據(jù)基于第二方面所述的數(shù)據(jù)寫(xiě)入方法寫(xiě)入。
19、第四方面,本發(fā)明實(shí)施例提供一種數(shù)據(jù)寫(xiě)入裝置,包括:
20、數(shù)據(jù)寫(xiě)入請(qǐng)求獲取模塊,用于獲取加密虛擬機(jī)的數(shù)據(jù)寫(xiě)入請(qǐng)求,所述數(shù)據(jù)寫(xiě)入請(qǐng)求攜帶有加密虛擬機(jī)的地址空間標(biāo)識(shí);
21、寫(xiě)入完整性驗(yàn)證密鑰確定模塊,用于基于所述數(shù)據(jù)寫(xiě)入請(qǐng)求攜帶的地址空間標(biāo)識(shí)確定與所述加密虛擬機(jī)對(duì)應(yīng)的寫(xiě)入完整性驗(yàn)證密鑰;
22、寫(xiě)入內(nèi)存完整性驗(yàn)證信息確定模塊,用于根據(jù)所述數(shù)據(jù)寫(xiě)入請(qǐng)求對(duì)應(yīng)的寫(xiě)數(shù)據(jù)、所述寫(xiě)入完整性驗(yàn)證密鑰以及所述數(shù)據(jù)寫(xiě)入請(qǐng)求的物理寫(xiě)地址,確定出寫(xiě)入內(nèi)存完整性驗(yàn)證信息;所述寫(xiě)入內(nèi)存完整性驗(yàn)證信息用于驗(yàn)證加密虛擬機(jī)的安全內(nèi)存空間的完整性;
23、寫(xiě)入模塊,用于至少將所述寫(xiě)入內(nèi)存完整性驗(yàn)證信息、所述寫(xiě)數(shù)據(jù)寫(xiě)入至所述物理寫(xiě)地址中;
24、其中,所述數(shù)據(jù)寫(xiě)入請(qǐng)求為加密虛擬機(jī)的內(nèi)存訪問(wèn)請(qǐng)求;所述內(nèi)存訪問(wèn)請(qǐng)求用于對(duì)加密虛擬機(jī)對(duì)應(yīng)的安全內(nèi)存空間進(jìn)行數(shù)據(jù)訪問(wèn)操作,所述安全內(nèi)存空間為任意分配的物理內(nèi)存空間。
25、第五方面,本發(fā)明實(shí)施例提供一種數(shù)據(jù)讀取裝置,包括:
26、數(shù)據(jù)讀取請(qǐng)求獲取模塊,用于獲取加密虛擬機(jī)的數(shù)據(jù)讀取請(qǐng)求,所述數(shù)據(jù)讀取請(qǐng)求攜帶有加密虛擬機(jī)的地址空間標(biāo)識(shí);
27、讀取完整性驗(yàn)證密鑰確定模塊,用于基于所述數(shù)據(jù)讀取請(qǐng)求攜帶的地址空間標(biāo)識(shí)確定與所述加密虛擬機(jī)對(duì)應(yīng)的讀取完整性驗(yàn)證密鑰;
28、讀取內(nèi)存完整性驗(yàn)證信息確定模塊,用于根據(jù)由所述數(shù)據(jù)讀取請(qǐng)求的物理讀地址讀取到的讀數(shù)據(jù)、所述讀取完整性驗(yàn)證密鑰以及所述物理讀地址,確定出讀取內(nèi)存完整性驗(yàn)證信息;
29、完整性驗(yàn)證模塊,用于在判斷出所述讀取內(nèi)存完整性驗(yàn)證信息,和基于所述物理讀地址讀取到的寫(xiě)入內(nèi)存完整性驗(yàn)證信息相等時(shí),確定所述加密虛擬機(jī)的安全內(nèi)存空間的完整性驗(yàn)證通過(guò);
30、發(fā)送模塊,用于發(fā)送讀數(shù)據(jù);
31、其中,所述寫(xiě)入內(nèi)存完整性驗(yàn)證信息和所述讀數(shù)據(jù)基于第四方面所述的數(shù)據(jù)寫(xiě)入裝置寫(xiě)入,所述數(shù)據(jù)讀取請(qǐng)求為所述數(shù)據(jù)寫(xiě)入裝置中所述的加密虛擬機(jī)的內(nèi)存訪問(wèn)請(qǐng)求。
32、第六方面,本發(fā)明實(shí)施例提供一種計(jì)算機(jī)系統(tǒng),包括:
33、如第一方面所述的內(nèi)存控制器;
34、安全處理器,用于配置所述內(nèi)存控制器的密鑰確定模塊;
35、內(nèi)存,包括安全內(nèi)存空間,所述安全內(nèi)存空間用于存儲(chǔ)或提供訪問(wèn)數(shù)據(jù),且所述安全內(nèi)存空間為任意分配的所述內(nèi)存中的物理內(nèi)存空間。
36、本發(fā)明實(shí)施例提供的一種內(nèi)存控制器,包括:請(qǐng)求獲取模塊,用于獲取加密虛擬機(jī)的內(nèi)存訪問(wèn)請(qǐng)求,所述內(nèi)存訪問(wèn)請(qǐng)求用于對(duì)加密虛擬機(jī)對(duì)應(yīng)的安全內(nèi)存空間進(jìn)行數(shù)據(jù)訪問(wèn)操作,其中,所述安全內(nèi)存空間為任意分配的物理內(nèi)存空間;所述內(nèi)存訪問(wèn)請(qǐng)求攜帶有加密虛擬機(jī)的地址空間標(biāo)識(shí);密鑰確定模塊,用于根據(jù)所述地址空間標(biāo)識(shí)確定與所述加密虛擬機(jī)對(duì)應(yīng)的完整性驗(yàn)證密鑰,所述密鑰確定模塊由安全處理器配置;內(nèi)存完整性驗(yàn)證信息確定模塊,用于基于所述內(nèi)存訪問(wèn)請(qǐng)求的物理訪問(wèn)地址、訪問(wèn)數(shù)據(jù)以及所述密鑰確定模塊確定的完整性驗(yàn)證密鑰確定出內(nèi)存完整性驗(yàn)證信息;所述內(nèi)存完整性驗(yàn)證信息用于對(duì)所述安全內(nèi)存空間的完整性進(jìn)行驗(yàn)證。
37、可以看出,本發(fā)明實(shí)施例提供的技術(shù)方案,在內(nèi)存控制器的請(qǐng)求獲取模塊,獲取到加密虛擬機(jī)的內(nèi)存訪問(wèn)請(qǐng)求之后,可以利用內(nèi)存控制器中的密鑰確定模塊和內(nèi)存完整性驗(yàn)證信息確定模塊,基于內(nèi)存訪問(wèn)請(qǐng)求進(jìn)行完整性驗(yàn)證密鑰和內(nèi)存完整性驗(yàn)證信息的確定,最終通過(guò)內(nèi)存控制器完成加密虛擬機(jī)的安全內(nèi)存空間完整性的驗(yàn)證;從而避免在使用simu對(duì)加密虛擬機(jī)的安全內(nèi)存空間的完整性進(jìn)行保護(hù)時(shí),受到由于simu的使用特性所導(dǎo)致的,加密虛擬機(jī)分配的安全內(nèi)存空間必須為地址連續(xù)的物理內(nèi)存空間的限制;即通過(guò)對(duì)內(nèi)存控制器的內(nèi)部結(jié)構(gòu)進(jìn)行設(shè)計(jì),由內(nèi)存控制器代替simu實(shí)現(xiàn)對(duì)加密虛擬機(jī)的安全內(nèi)存空間的完整性進(jìn)行保護(hù),使得為加密虛擬機(jī)分配安全內(nèi)存空間時(shí),不再受到必須分配地址連續(xù)的物理內(nèi)存空間的使用限制,從而可以提升加密虛擬機(jī)的安全內(nèi)存空間的分配靈活性。