本發(fā)明涉及電子技術(shù)領(lǐng)域,特別涉及一種信息處理方法及電子設(shè)備。
背景技術(shù):
信息技術(shù)和信息產(chǎn)業(yè)正在改變傳統(tǒng)的生產(chǎn)、經(jīng)營和生活方式,信息已成為社會發(fā)展的重要戰(zhàn)略資源。電子商務(wù)、電子政務(wù)、電子稅務(wù)、電子銀行、電子海關(guān)、電子證券、網(wǎng)上交易、網(wǎng)上選舉等網(wǎng)絡(luò)信息系統(tǒng)將在政治、軍事、金融、商業(yè)、交通等方面發(fā)揮越來越大的作用,社會對網(wǎng)絡(luò)信息系統(tǒng)的以來也日益增強。
在計算機應(yīng)用日益廣泛和深入的同時,網(wǎng)絡(luò)的脆弱性和復雜性增加了威脅和攻擊的可能性,計算機網(wǎng)絡(luò)的安全問題日益復雜和突出。
在現(xiàn)有技術(shù)中,為了維護計算機系統(tǒng)的安全,其中,對緩沖區(qū)溢出的安全防范常采用在某些處理器(CPU)內(nèi)部增加某些硬件機制,進而對內(nèi)存地址段加以保護,防止在數(shù)據(jù)段執(zhí)行指令等造成的緩沖區(qū)溢出攻擊。此外,通過對CPU內(nèi)部自帶的地址空間進行特權(quán)劃分,進而實現(xiàn)對用戶程序訪問地址進行分級限制。
本申請發(fā)明人在發(fā)明本申請實施例中技術(shù)方案的過程中,發(fā)現(xiàn)上述現(xiàn)有技術(shù)至少存在如下技術(shù)問題:
現(xiàn)有技術(shù)中,對計算機系統(tǒng)的安全保護主要用于桌面領(lǐng)域。在移動領(lǐng)域中,一方面,當用CPU IP做SOC集成時,多數(shù)已經(jīng)開發(fā)完畢,很難再改變集成在CPU里面的安全方案,另一方面,主要是針對處理器內(nèi)部的虛擬地址進行的保護,比如,在對處理器自帶的地址分級時,現(xiàn)有技術(shù)中存在將不同級別的虛擬地址映射到同一塊物理內(nèi)存上的情況,從而造成不同程序會訪問越界,所以,現(xiàn)有技術(shù)中存在計算機系統(tǒng)安全性差的技術(shù)問題。
技術(shù)實現(xiàn)要素:
本發(fā)明實施例提供一種信息處理方法及電子設(shè)備,用于解決現(xiàn)有技術(shù)中存在計算機系統(tǒng)安全性差的技術(shù)問題,實現(xiàn)了對計算機系統(tǒng)安全保護的技術(shù)效果。
一方面,本申請實施例提供了一種信息處理方法,所述方法應(yīng)用于一電子設(shè)備中,所述方法包括:
在所述電子設(shè)備中的處理器與W個功能模塊通過總線建立連接,并通過所述總線訪問所述N個功能模塊中的第一功能模塊時,獲得第一訪存地址,其中,W為正整數(shù);
基于一地址查找表判斷所述第一訪存地址是否為有效訪存地址,獲得第一判斷結(jié)果;
在所述第一判斷結(jié)果為是時,所述處理器基于所述第一訪存地址執(zhí)行第一操作。
可選地,所述基于一地址查找表判斷所述第一訪存地址是否為有效訪存地址,獲得第一判斷結(jié)果,具體包括:
獲得一地址查找表;
基于所述地址查找表對所述第一訪存地址進行地址檢查,獲得第一檢測結(jié)果;
基于所述第一檢測結(jié)果判斷所述第一訪存地址是否為有效訪存地址,獲得第一判斷結(jié)果。
可選地,所述基于所述第一檢測結(jié)果判斷所述第一訪存地址是否為有效訪存地址,獲得第一判斷結(jié)果,具體包括:
確定所述地址查找表中的M個表項中包含的N個有效表項,其中,M為正整數(shù),N為小于等于M的正整數(shù);
判斷所述第一訪存地址是否和所述N個有效表項中的K個表項中的物理地址相對應(yīng),獲得第二判斷結(jié)果,其中,K為小于等于N的正整數(shù);
在所述第二判斷結(jié)果為是時,判斷表征所述第一訪存地址的第一地址屬性是否和所述物理地址對應(yīng)的第二地址屬性相匹配,獲得第一判斷結(jié)果。
可選地,所述判斷所述第一訪存地址是否和所述N個有效表項中的K個表項中的物理地址相對應(yīng),獲得第二判斷結(jié)果,具體為:
判斷所述第一訪存地址是否和所述K個表項中的第一物理地址相同,獲得第二判斷結(jié)果。
可選地,所述判斷所述第一訪存地址是否和所述N個有效表項中的K個表項中的物理地址相對應(yīng),獲得第二判斷結(jié)果,具體為:
判斷所述第一訪存地址是否位于所述K個表項中的第一物理地址段中,獲得第二判斷結(jié)果。
可選地,在所述判斷所述第一訪存地址是否和所述N個有效表項中的K個表項中的物理地址相對應(yīng),獲得第二判斷結(jié)果之后,所述方法還包括:
在所述第二判斷結(jié)果為否時,確定所述第一訪存地址為無效訪存地址;
在確定所述第一訪存地址為所述無效訪存地址時,所述處理器中斷所述第一操作。
可選地,在所述第一地址屬性具體為數(shù)據(jù)或指令的第一讀取指令,或為一程序的第一運行指令;且所述第二地址屬性具體為表征所述物理地址中存儲有數(shù)據(jù)或指令的第一類型存儲地址時,在所述第二判斷結(jié)果為是時,判斷表征所述第一訪存地址的第一地址屬性是否和所述物理地址對應(yīng)的第二地址屬性相匹配,獲得第一判斷結(jié)果,具體為:
在所述第二判斷結(jié)果為是時,判斷所述第二地址屬性是否為與所述第一讀取指令相匹配的用于表征所述物理地址為用于存儲數(shù)據(jù)或指令的第一類型內(nèi)存地址,獲得第一判斷結(jié)果;或
在所述第二判斷結(jié)果為是時,判斷所述第二地址屬性是否為與所述第一運行指令相匹配的用于表征所述物理地址為用于運行程序的第二類型內(nèi)存地址。
可選地,在所述第一地址屬性具體為所述第一訪存地址的第一訪存級別,所述第二地址屬性具體為所述物理地址的第二訪存級別時,在所述第二判斷結(jié)果為是時,判斷表征所述第一訪存地址的第一地址屬性是否和所述物理地址對應(yīng)的第二地址屬性相匹配,獲得第一判斷結(jié)果,具體為:
在所述第二判斷結(jié)果為是時,判斷所述第一訪存級別是否高于所述第二訪存級別,獲得第一判斷結(jié)果。
可選地,在所述基于一地址查找表判斷所述第一訪存地址是否為有效訪存地址,獲得第一判斷結(jié)果之后,所述方法還包括:
在所述第一判斷結(jié)果為是否時,確定所述第一訪存地址為無效訪存地址;
在確定所述第一訪存地址為所述無效訪存地址時,所述處理器中斷所述第一操作。
另一方面,本申請實施例還提供了一種電子設(shè)備,包括:
處理器;
W個功能模塊,其中,W為正整數(shù);
總線,所述W個功能模塊與所述處理器間通過所述總線連接;
地址檢查模塊,通過所述總線與所述處理器和所述W個功能模塊連接;
其中,所述地址檢查模塊用于在所述處理器通過所述總線訪問所述W個功能模塊中的第一功能模塊時,獲得第一訪存地址;
所述地址檢查模塊基于一地址查找表判斷所述第一訪存地址是否為有效訪存地址,獲得第一判斷結(jié)果;
在所述第一判斷結(jié)果為是時,所述處理器基于所述第一訪存地址執(zhí)行第一操作。
可選地,所述地址檢查模塊具體用于:
獲得一地址查找表;
基于所述地址查找表對所述第一訪存地址進行地址檢查,獲得第一檢測結(jié) 果;
基于所述第一檢測結(jié)果判斷所述第一訪存地址是否為有效訪存地址,獲得第一判斷結(jié)果。
可選地,所述地址檢查模塊具體用于:
確定所述地址查找表中的M個表項中包含的N個有效表項,其中,M為正整數(shù),N為小于等于M的正整數(shù);
判斷所述第一訪存地址是否和所述N個有效表項中的K個表項中的物理地址相對應(yīng),獲得第二判斷結(jié)果,其中,K為小于等于N的正整數(shù);
在所述第二判斷結(jié)果為是時,判斷表征所述第一訪存地址的第一地址屬性是否和所述物理地址對應(yīng)的第二地址屬性相匹配,獲得第一判斷結(jié)果。
可選地,所述地址檢查模塊具體用于:
判斷所述第一訪存地址是否和所述K個表項中的第一物理地址相同,獲得第二判斷結(jié)果。
可選地,所述地址檢查模塊具體用于:
判斷所述第一訪存地址是否位于所述K個表項中的第一物理地址段中,獲得第二判斷結(jié)果。
可選地,所述地址檢查模塊在判斷所述第一訪存地址是否和所述N個有效表項中的K個表項中的物理地址相對應(yīng),獲得第二判斷結(jié)果之后,還用于:
在所述第二判斷結(jié)果為否時,確定所述第一訪存地址為無效訪存地址;
在確定所述第一訪存地址為所述無效訪存地址時,所述處理器中斷所述第一操作。
可選地,所述地址檢查模塊在所述第一地址屬性具體為數(shù)據(jù)或指令的第一讀取指令,或為一程序的第一運行指令;且所述第二地址屬性具體為表征所述物理地址中存儲有數(shù)據(jù)或指令的第一類型存儲地址時,具體用于:
在所述第二判斷結(jié)果為是時,判斷所述第二地址屬性是否為與所述第一讀取指令相匹配的用于表征所述物理地址為用于存儲數(shù)據(jù)或指令的第一類型內(nèi) 存地址,獲得第一判斷結(jié)果;或
在所述第二判斷結(jié)果為是時,判斷所述第二地址屬性是否為與所述第一運行指令相匹配的用于表征所述物理地址為用于運行程序的第二類型內(nèi)存地址。
可選地,所述地址檢查模塊在所述第一地址屬性具體為所述第一訪存地址的第一訪存級別,所述第二地址屬性具體為所述物理地址的第二訪存級別時,具體用于:
在所述第二判斷結(jié)果為是時,判斷所述第一訪存級別是否高于所述第二訪存級別,獲得第一判斷結(jié)果。
可選地,所述地址檢查模塊在所述基于一地址查找表判斷所述第一訪存地址是否為有效訪存地址,獲得第一判斷結(jié)果之后,還用于:
在所述第一判斷結(jié)果為是否時,確定所述第一訪存地址為無效訪存地址;
其中,在確定所述第一訪存地址為所述無效訪存地址時,所述處理器中斷所述第一操作。
本申請實施例中的上述一個或多個技術(shù)方案,至少具有如下一種或多種技術(shù)效果:
在本申請的技術(shù)方案中,當CPU產(chǎn)生一組訪存地址時,通過采用在所述電子設(shè)備中的處理器與W個功能模塊通過總線建立連接,并通過所述總線訪問所述N個功能模塊中的第一功能模塊時,獲得第一訪存地址,基于一地址查找表判斷所述第一訪存地址是否為有效訪存地址,獲得第一判斷結(jié)果;在所述第一判斷結(jié)果為是時,所述服務(wù)器基于所述第一訪存地址執(zhí)行第一操作的技術(shù)手段,從而通過在總線系統(tǒng)上對所述第一訪存地址做內(nèi)存地址段檢測,當檢測結(jié)果表明所述第一訪存地址為有效訪存地址時,CPU才會執(zhí)行與訪存地址相對應(yīng)的操作指令,所以,實現(xiàn)了對計算機系統(tǒng)安全保護的技術(shù)效果。
進一步地,由于采用了本申請的技術(shù)方案,能夠直接針對物理地址進行大段地址的保護,而不像現(xiàn)有技術(shù)中那樣,通過在CPU內(nèi)部增加硬件保護機制, 一旦使用已有的CPU IP在做片上系統(tǒng)(System on a Chip,即SoC)集成時,就很難改變集成在CPU里面的安全策略,而實際的SoC中的物理內(nèi)存的設(shè)置可能差別很大,進而導致現(xiàn)有技術(shù)中的保護方案無法移植到移動領(lǐng)域,而本申請的技術(shù)方案,可以根據(jù)實際物理內(nèi)存的設(shè)置來設(shè)置內(nèi)存保護,所以,實現(xiàn)了根據(jù)實際物理內(nèi)存來設(shè)置內(nèi)存保護的技術(shù)效果。
進一步地,由于采用了本申請的技術(shù)方案,能夠直接針對物理地址進行大段地址的保護,而不像現(xiàn)有技術(shù)中那樣,通過在CPU內(nèi)部增加硬件保護機制,并針對虛擬地址進行保護,且需要對每一個頁地址都要做相應(yīng)設(shè)置的較為繁瑣的處理流程,所以,實現(xiàn)了保護流程較為簡潔的技術(shù)效果。
進一步地,由于采用了本申請的技術(shù)方案,能夠直接針對物理地址進行大段地址的保護,而不像現(xiàn)有技術(shù)中那樣,需要針對CPU內(nèi)部虛擬地址自帶的地址分級來實現(xiàn)對地址空間分級訪問的限制,卻存在不同級別的虛擬地址會映射到同一塊物理內(nèi)存上,比如,虛擬地址分別是核心空間、超級用戶空間、用戶空間,但實際卻映射到同一塊物理內(nèi)存上,進而沒有達到預期的安全性,所以,本申請的技術(shù)方案中的直接針對物理地址的保護,極大實現(xiàn)了對地址空間分級訪問進行有效限制的技術(shù)效果。
附圖說明
為了更清楚地說明本申請實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例。
圖1為本申請實施例一中一種信息處理方法的流程圖;
圖2為本申請實施例一中一種信息處理方法中步驟S102的方法流程圖;
圖3為本申請實施例一中一種信息處理方法中步驟S203的方法流程圖;
圖4為本申請實施例一中一種信息處理方法中步驟S302之后的方法流程圖;
圖5為本申請實施例一中一種信息處理方法中步驟S103之后的方法流程 圖;
圖6為本申請實施例二提供的一種電子設(shè)備的功能結(jié)構(gòu)方框圖。
具體實施方式
本發(fā)明實施例提供一種信息處理方法及電子設(shè)備,用于解決現(xiàn)有技術(shù)中存在計算機系統(tǒng)安全性差的技術(shù)問題,實現(xiàn)了對計算機系統(tǒng)安全保護的技術(shù)效果。
本申請實施例中的技術(shù)方案為解決上述的技術(shù)問題,總體思路如下:
一種信息處理方法,應(yīng)用于一電子設(shè)備中,所述方法包括:
在所述電子設(shè)備中的處理器與W個功能模塊通過總線建立連接,并通過所述總線訪問所述W個功能模塊中的第一功能模塊時,獲得第一訪存地址,其中,W為正整數(shù);
基于一地址查找表判斷所述第一訪存地址是否為有效訪存地址,獲得第一判斷結(jié)果;
在所述第一判斷結(jié)果為是時,所述服務(wù)器基于所述第一訪存地址執(zhí)行第一操作。
在本申請的技術(shù)方案中,當CPU產(chǎn)生一組訪存地址時,通過采用在所述電子設(shè)備中的處理器與W個功能模塊通過總線建立連接,并通過所述總線訪問所述N個功能模塊中的第一功能模塊時,獲得第一訪存地址,基于一地址查找表判斷所述第一訪存地址是否為有效訪存地址,獲得第一判斷結(jié)果;在所述第一判斷結(jié)果為是時,所述服務(wù)器基于所述第一訪存地址執(zhí)行第一操作的技術(shù)手段,從而通過在總線系統(tǒng)上對所述第一訪存地址做內(nèi)存地址段檢測,當檢測結(jié)果表明所述第一訪存地址為有效訪存地址時,CPU才會執(zhí)行與訪存地址相對應(yīng)的操作指令,所以,實現(xiàn)了對計算機系統(tǒng)安全保護的技術(shù)效果。
為了更好的理解上述技術(shù)方案,下面通過附圖以及具體實施例對本發(fā)明技術(shù)方案做詳細的說明,應(yīng)當理解本申請實施例以及實施例中的具體特征是對 本發(fā)明技術(shù)方案的詳細的說明,而不是對本發(fā)明技術(shù)方案的限定,在不沖突的情況下,本申請實施例以及實施例中的技術(shù)特征可以相互結(jié)合。
實施例一
在具體實施過程中,該信息處理方法可應(yīng)用于一電子設(shè)備,所述電子設(shè)備具體來講,可以是手機,平板電腦,筆記本電腦,也可以是別的電子設(shè)備,在此就不一一舉例了。在上述電子設(shè)備中,可集成SoC或者微機系統(tǒng)以及其他的計算機系統(tǒng),在本申請中不作具體的限制。所述處理器可以具體為MIPS CPU,也可以是ARM CPU,在此就不一一舉例了。
請參考圖1,本申請實施例提供了一種信息處理方法,所述方法包括:
S101:在所述電子設(shè)備中的處理器與W個功能模塊通過總線建立連接,并通過所述總線訪問所述W個功能模塊中的第一功能模塊時,獲得第一訪存地址,其中,W為正整數(shù);
S102:基于一地址查找表判斷所述第一訪存地址是否為有效訪存地址,獲得第一判斷結(jié)果;
S103:在所述第一判斷結(jié)果為是時,所述服務(wù)器基于所述第一訪存地址執(zhí)行第一操作。
在本申請實施例中的總線可以是AHB、AXI、OCP一種,也可以是三種任意類型的組合,當然也可以是其他的形式的總線,在此就不一一舉例了。下面的實施例中將以AHB總線為例,進行詳細的說明。
首先手機中的處理器與W個功能模塊之間通過總線建立連接,本申請實施例中的所述W個功能模塊可以是多個MPU、DSP、MCU或者其它復合的IP核,比如,SRAM、DRAM、SDRAM、寄存器等,在此就不一一贅述了。舉個具體的例子來說,CPU需要訪問物理地址是oxfa000的單元,那么在x86處理器平臺上,會產(chǎn)生一個PCI總線上對0xfa000地址的訪問,其中,0xfa000即為獲得的第一訪存地址,該訪存地址或者在內(nèi)存中,比如DRAM,或者是在某個卡上的存儲單元,甚至可能這個地址上沒有對應(yīng)的存儲器。
在本申請實施例中,請參考圖2,步驟102:基于一地址查找表判斷所述第一訪存地址是否為有效訪存地址,獲得第一判斷結(jié)果,具體包括:
S201:獲得一地址查找表;
S202:基于所述地址查找表對所述第一訪存地址進行地址檢查,獲得第一檢測結(jié)果;
S203:基于所述第一檢測結(jié)果判斷所述第一訪存地址是否為有效訪存地址,獲得第一判斷結(jié)果。
在具體實施過程中,步驟S201至步驟S203具體實現(xiàn)過程如下,首先,獲得一地址查找表,所述地址查找表依據(jù)電子設(shè)備中處理器具體的操作系統(tǒng)而確定的,其中,操作系統(tǒng)可以是32位,也可以是64位,等等。所述地址查找表中所設(shè)置的表項的個數(shù)則由具體的操作系統(tǒng)對指令,或數(shù)據(jù),或地址空間所劃分的地址空間塊數(shù)所決定的。舉個具體的例子來說,以32位操作系統(tǒng)為例,且該操作系統(tǒng)所劃分地址空間塊數(shù)為22塊,則表項個數(shù)有32個,而且在這種情況下,該處理器的內(nèi)存尋址空間為2的32次方,即4G左右。此外,每一項表項的長度由因系統(tǒng)而異。在本申請實施例中,地址查找表的每一個表項中具體包括有地址段,有效位以及地址屬性這三項內(nèi)容。其中,地址段可以有2種形式,第一種形式為每一項只有1個地址的情況,且該地址表示物理內(nèi)存的基地址,而且對于SoC系統(tǒng)來說,地址段的具體長度會因SoC系統(tǒng)而異。比如,10bits地址可以表示以“K”為邊界的地址,20bits地址可以表示以“M”為邊界的地址。第二種形式為,每一項可以有兩個地址,1個表示高地址,1個表示低地址。有效位主要用來標示每一個表項是否有效。地址屬性則用來標識對應(yīng)的地址段是用于指令段,還是數(shù)據(jù)段,或者是用于標示對應(yīng)的地址段的級別屬性。對于本領(lǐng)域的普通技術(shù)人員,可以根據(jù)實際需要,來決定表項個數(shù)及每個表項的長度,在此就不一一贅述了。
在本申請實施例中,在獲得地址查找表之后,執(zhí)行步驟S202:基于所述地址查找表對第一訪存地址進行地址檢查,獲得第一檢測結(jié)果。繼續(xù)以訪存地址 0xfa000為例,也就是說,將該訪存地址與地址查找表中的每一個表項進行地址檢測,進而獲得相應(yīng)的檢測結(jié)果。
在本申請實施例中,請參考圖3,步驟S203:基于所述第一檢測結(jié)果判斷所述第一訪存地址是否為有效訪存地址,獲得第一判斷結(jié)果,具體包括:
S301:確定所述地址查找表中的M個表項中包含的N個有效表項,其中,M為正整數(shù),N為小于等于M的正整數(shù);
S302:判斷所述第一訪存地址是否和所述N個有效表項中的K個表項中的物理地址相對應(yīng),獲得第二判斷結(jié)果,其中,K為小于等于N的正整數(shù);
S303:在所述第二判斷結(jié)果為是時,判斷表征所述第一訪存地址的第一地址屬性是否和所述物理地址對應(yīng)的第二地址屬性相匹配,獲得第一判斷結(jié)果。
在本申請實施例中,首先從地址查找表中所有的表項中確定出有效表項,舉個具體的例子來說,以32位操作系統(tǒng)為例,且該操作系統(tǒng)所劃分地址空間塊數(shù)為22塊,則表項個數(shù)有32個,其中有效表項為22個,無效表項為10個,其中,對于表項是否有效可以設(shè)置valid bit為1bit,如,“0”表示無效,“1”表示有效。在確定出22個有效表項后,則做地址段檢查,也就是說,判斷訪存地址0xfa000是否和22個有效表項中的物理地址相對應(yīng),獲得第二判斷結(jié)果。如果存在有與訪存地址0xfa000對應(yīng)的物理地址,那么在進行地址段檢查之后則做地址屬性檢查,判斷訪存地址0xfa000對應(yīng)的第一地址屬性是否和表項中與之對應(yīng)的物理地址的第二地址屬性相匹配,獲得第一判斷結(jié)果,進而可以確定出該訪存地址是否為有效訪存地址。
在本申請實施例中,步驟S302:判斷所述第一訪存地址是否和所述N個有效表項中的K個表項中的物理地址相對應(yīng),獲得第二判斷結(jié)果,具體有以下兩種實現(xiàn)方式,當不僅限于以下兩種實現(xiàn)方式,本領(lǐng)域的普通技術(shù)人員可以根據(jù)具體的需要進行相應(yīng)的改進。
第一種實現(xiàn)方式
當?shù)刂凡檎冶碇忻總€表項中的地址段只有一個地址,且該地址為表示物理內(nèi)存的基地址時,第一種實現(xiàn)方式具體為:判斷所述第一訪存地址是否和所述K個表項中的第一物理地址相同,獲得第二判斷結(jié)果。繼續(xù)以訪存地址為0xfa000,有效表項為22個為例,如果22個有效表項中有一個表項的物理地址為0xfa000,則該訪存地址和該表項的物理地址相同,也就是說,二者地址段匹配。
第二種實現(xiàn)方式
當?shù)刂凡檎冶碇忻總€表項中的地址段由2個分別表示高地址和高地址組成時,第二種實現(xiàn)方式具體為:判斷所述第一訪存地址是否位于所述K個表項中的第一物理地址段中,獲得第二判斷結(jié)果。也就是說,判斷第一訪存地址是否位于有效表項中其中一個表項所對應(yīng)地址空間內(nèi)。繼續(xù)以訪存地址為0xfa000,有效表項為22個為例,如果22個有效表項中有一個表項的地址空間為0xf000-0xff00,那么該訪存地址位于該地址空間內(nèi),則認為該訪存地址和該表項地址段匹配。
在本申請實施例中,請參考圖4,在步驟S302:判斷所述第一訪存地址是否和所述N個有效表項中的K個表項中的物理地址相對應(yīng),獲得第二判斷結(jié)果之后,執(zhí)行步驟:
S401:在所述第二判斷結(jié)果為否時,確定所述第一訪存地址為無效訪存地址;
S402:在確定所述第一訪存地址為所述無效訪存地址時,所述處理器中斷所述第一操作。
在具體實施過程中,無論采用哪種地址段是否匹配的實現(xiàn)方式,當?shù)谝辉L存地址和表項中的任意一個表項所對應(yīng)的地址空間都不匹配,那么第一訪存地址則為無效訪存地址。當?shù)谝辉L存地址為無效訪存地址時,CPU對當前的第一訪存地址則返回無效訪問結(jié)果,并中斷與第一訪存地址相對應(yīng)的第一操作,通知CPU進行后續(xù)處理。
在本申請實施例中,步驟S303:在所述第二判斷結(jié)果為是時,判斷表征所述第一訪存地址的第一地址屬性是否和所述物理地址對應(yīng)的第二地址屬性相匹配,獲得第一判斷結(jié)果,具體有以下兩種判斷方式,但不僅限于以下兩種判斷方式,本領(lǐng)域的普通技術(shù)人員可以根據(jù)具體的需要來設(shè)計相應(yīng)的判斷方式。
第一種判斷方式
第一種判斷方式在所述第一地址屬性具體為數(shù)據(jù)或指令的第一讀取指令,或為一程序的第一運行指令;且所述第二地址屬性具體為表征所述物理地址中存儲有數(shù)據(jù)或指令的第一類型存儲地址時,在所述第二判斷結(jié)果為是時,判斷表征所述第一訪存地址的第一地址屬性是否和所述物理地址對應(yīng)的第二地址屬性相匹配,獲得第一判斷結(jié)果,具體為:
在所述第二判斷結(jié)果為是時,判斷所述第二地址屬性是否為與所述第一讀取指令相匹配的用于表征所述物理地址為用于存儲數(shù)據(jù)或指令的第一類型內(nèi)存地址,獲得第一判斷結(jié)果;或
在所述第二判斷結(jié)果為是時,判斷所述第二地址屬性是否為與所述第一運行指令相匹配的用于表征所述物理地址為用于運行程序的第二類型內(nèi)存地址。
在具體實施過程中,當CPU通過總線并基于第一訪存地址去內(nèi)存中取指令,或者數(shù)據(jù),所述第一訪存地址對應(yīng)的第一地址屬性具體為數(shù)據(jù)或者指令的第一讀取指令。那么,此時,為了將所述第一訪存地址的第一地址屬性和有效表項中的第二地址屬性進行地址屬性匹配,相應(yīng)地,地址查找表中每個表項存儲的地址屬性具體為表征其內(nèi)的地址段是用于指令段,還是數(shù)據(jù)段。繼續(xù)以訪存地址為0xfa000,有效表項為22個,且與其中的一個表項的地址段匹配為例,如果該訪存地址0xfa000對應(yīng)為數(shù)據(jù)段,而與之匹配的表項的地址段屬性為指令段,則二者地址屬性不匹配,如果與之匹配的表項的地址段屬性為數(shù)據(jù)段,則二者地址屬性匹配。其中,在具體實現(xiàn)中,對于地址查找表中每個表項中地址屬性的設(shè)置可以設(shè)置valid bit為1bit,如,“0”表示數(shù)據(jù),“1”表示指令, 當然也可以是,“0”表示指令,“1”表示數(shù)據(jù)。
在本申請實施例中,當CPU通過總線并基于第一訪存地址去內(nèi)存運行一程序時,所述第一訪存地址對應(yīng)的第一地址屬性具體為第一運行指令,那么,此時,為了將所述第一訪存地址的第一地址屬性和有效表項中的第二地址屬性進行地址屬性匹配,相應(yīng)地,地址查找表中每個表項存儲的第二地址屬性為與所述第一運行指令相匹配的用于表征與第一訪存地址地址段匹配的表項中的物理地址為用于運行該程序的第二類型內(nèi)存地址。
第二種判斷方式
第二種判斷方式在所述第一地址屬性具體為所述第一訪存地址的第一訪存級別,所述第二地址屬性具體為所述物理地址的第二訪存級別時,在所述第二判斷結(jié)果為是時,判斷表征所述第一訪存地址的第一地址屬性是否和所述物理地址對應(yīng)的第二地址屬性相匹配,獲得第一判斷結(jié)果,具體為:
在所述第二判斷結(jié)果為是時,判斷所述第一訪存級別是否高于所述第二訪存級別,獲得第一判斷結(jié)果。
為了實現(xiàn)CPU對地址空間分級訪問,從而達到較高的安全,仍然可以采用本申請?zhí)峁┑募夹g(shù)方案。在具體實施過程中,針對CPU訪問內(nèi)存的總線設(shè)置地址查找表,地址查找表的每一項包含地址段,有效位,地址屬性。每當CPU產(chǎn)生一組訪存地址時,針對上述的地址查找表中的每一個表項做地址檢查,其中對表項有效性的檢查以及地址段匹配的檢查和第一種判斷方式中所采用的方案相同,關(guān)于地址屬性匹配的檢查則需要針對不同的CPU進行相應(yīng)的檢查??傮w上,所采用的檢查規(guī)則為:每一種訪存地址屬性,可以訪問不高于它的屬性的地址空間。比如:對于MIPS CPU通常劃分為三級特權(quán)空間,分別是核心空間(Kernel)、超級用戶空間(Supervisor)、用戶空間(User),此時第二地址空間屬性主要有這三級訪存級別。當操作系統(tǒng)自己的代碼運行時,MIPS CPU就為核心級,當用戶的程序運行時就只讓它在用戶級運行,這樣如果用戶的程序如果想要做破壞系統(tǒng)的事情的話,則沒辦法做到,這樣就極大地 提高了計算機系統(tǒng)的安全性。依照檢查規(guī)則核心級訪存地址屬性可以訪問核心級,以及超級用戶級,以及用戶級的地址屬性所對應(yīng)的地址空間。超級用戶級訪存地址屬性則可以訪問超級用戶級以及用戶級的地址屬性所對應(yīng)的地址空間。而用戶級訪存地址屬性則只能訪問用戶級的地址屬性所對應(yīng)的地址空間。再比如,ARM Cortex-M3CPU有兩級特權(quán)操作,分別是特權(quán)級和用戶級,那么對第二地址屬性的設(shè)置主要為特權(quán)級訪存級別和用戶級訪存級別。也就是說,對于不同的CPU所劃分的特權(quán)空間不同,對應(yīng)的表項中的物理地址對應(yīng)的第二地址屬性也不同,并不局限于以上提到的兩種劃分方法,對于本領(lǐng)域的普通技術(shù)人員可以根據(jù)需要進行相應(yīng)的設(shè)計,在此就不一一舉例了。
在具體實施過程中,繼續(xù)以訪存地址為0xfa000為例,處理器為MIPS CPU時,如果該訪存地址的屬性為User,與22個有效表項中某一有效表項地址匹配,但是該表項的地址屬性為Kernel,則意味著第一訪存級別低于第二訪存級別,則該訪問地址為無效訪存地址。如果該訪存地址的屬性為Kernel,與22個有效表項中某一有效地址匹配,且該表項的地址屬性為Kernel,則意味著第一訪存級別和第二訪存級別為同一級別,可以進行有效訪問。在具體實現(xiàn)過程中,對于本領(lǐng)域的普通技術(shù)人員,根據(jù)不同的CPU所劃分的特權(quán)等級個數(shù)來具體設(shè)置第二訪存屬性。比如,MIPS CPU有三個特權(quán)等級,用兩位就可以表示這三個特權(quán)等級所對應(yīng)的第二訪存屬性,舉個具體的例子來說,“00”表示Kernel,“01”表示Supervisor,“10”表示“User”,當然還可以有其它的實現(xiàn)形式,在此就不一一贅述了。
在本申請實施例中,請參考圖5,在步驟S103之后,執(zhí)行步驟:
S501:在所述第一判斷結(jié)果為是否時,確定所述第一訪存地址為無效訪存地址;
S502:在確定所述第一訪存地址為所述無效訪存地址時,所述處理器中斷所述第一操作。
在具體實施過程中,繼續(xù)以訪存地址為0xfa000為例,當?shù)刂范尾黄ヅ洌? 或者是地址段匹配,但是地址屬性不匹配時,則該訪存地址為無效訪存地址,此時CPU將不能進行第一讀取指令或者第一運行指令所對應(yīng)的操作。
實施例二
基于本申請實施例一中信息處理方法同樣的發(fā)明構(gòu)思,請參考圖6,本申請實施例還提供了一種電子設(shè)備,包括:
處理器60;
W個功能模塊,其中,W為正整數(shù);
總線,所述W個功能模塊與處理器60間通過總線連接;
地址檢查模塊61,通過總線與處理器60和所述W個功能模塊連接;
其中,地址檢查模塊61用于在處理器60通過總線訪問所述W個功能模塊中的第一功能模塊62時,獲得第一訪存地址;
地址檢查模塊61基于一地址查找表判斷所述第一訪存地址是否為有效訪存地址,獲得第一判斷結(jié)果;
在所述第一判斷結(jié)果為是時,處理器60基于所述第一訪存地址執(zhí)行第一操作。
在本申請實施例中,地址檢查模塊61具體用于:
獲得一地址查找表;
基于所述地址查找表對所述第一訪存地址進行地址檢查,獲得第一檢測結(jié)果;
基于所述第一檢測結(jié)果判斷所述第一訪存地址是否為有效訪存地址,獲得第一判斷結(jié)果。
在本申請實施例中,地址檢查模塊61具體用于:
確定所述地址查找表中的M個表項中包含的N個有效表項,其中,M為正整數(shù),N為小于等于M的正整數(shù);
判斷所述第一訪存地址是否和所述N個有效表項中的K個表項中的物理地址相對應(yīng),獲得第二判斷結(jié)果,其中,K為小于等于N的正整數(shù);
在所述第二判斷結(jié)果為是時,判斷表征所述第一訪存地址的第一地址屬性 是否和所述物理地址對應(yīng)的第二地址屬性相匹配,獲得第一判斷結(jié)果。
在本申請實施例中,地址檢查模塊61對地址段是否匹配的判斷具體有兩種實現(xiàn)方式,但又不僅限于以下兩種實現(xiàn)方式。
第一種實現(xiàn)方式,地址檢查模塊61具體用于:
判斷所述第一訪存地址是否和所述K個表項中的第一物理地址相同,獲得第二判斷結(jié)果。
第二種實現(xiàn)方式,地址檢查模塊61具體用于:
判斷所述第一訪存地址是否位于所述K個表項中的第一物理地址段中,獲得第二判斷結(jié)果。
在本申請實施例中,地址檢查模塊61在判斷所述第一訪存地址是否和所述N個有效表項中的K個表項中的物理地址相對應(yīng),獲得第二判斷結(jié)果之后,還用于:
在所述第二判斷結(jié)果為否時,確定所述第一訪存地址為無效訪存地址;
在確定所述第一訪存地址為所述無效訪存地址時,處理器60中斷所述第一操作。
在本申請實施例中,地址檢查模塊61對地址屬性是否匹配的判斷主要以下兩種判斷方式,但又不僅限于以下兩種判斷方式。
第一種判斷方式
地址檢查模塊61在所述第一地址屬性具體為數(shù)據(jù)或指令的第一讀取指令,或為一程序的第一運行指令;且所述第二地址屬性具體為表征所述物理地址中存儲有數(shù)據(jù)或指令的第一類型存儲地址時,具體用于:
在所述第二判斷結(jié)果為是時,判斷所述第二地址屬性是否為與所述第一讀取指令相匹配的用于表征所述物理地址為用于存儲數(shù)據(jù)或指令的第一類型內(nèi)存地址,獲得第一判斷結(jié)果;或
在所述第二判斷結(jié)果為是時,判斷所述第二地址屬性是否為與所述第一運行指令相匹配的用于表征所述物理地址為用于運行程序的第二類型內(nèi)存地址。
第二種判斷方式
地址檢查模塊61在所述第一地址屬性具體為所述第一訪存地址的第一訪存級別,所述第二地址屬性具體為所述物理地址的第二訪存級別時,具體用于:
在所述第二判斷結(jié)果為是時,判斷所述第一訪存級別是否高于所述第二訪存級別,獲得第一判斷結(jié)果。
在本申請實施例中,地址檢查模塊61在所述基于一地址查找表判斷所述第一訪存地址是否為有效訪存地址,獲得第一判斷結(jié)果之后,還用于:
在所述第一判斷結(jié)果為是否時,確定所述第一訪存地址為無效訪存地址;
其中,在確定所述第一訪存地址為所述無效訪存地址時,處理器60中斷所述第一操作。
通過本申請實施例中的一個或多個技術(shù)方案,可以實現(xiàn)如下一個或多個技術(shù)效果:
在本申請的技術(shù)方案中,當CPU產(chǎn)生一組訪存地址時,通過采用在所述電子設(shè)備中的處理器與W個功能模塊通過總線建立連接,并通過所述總線訪問所述N個功能模塊中的第一功能模塊時,獲得第一訪存地址,基于一地址查找表判斷所述第一訪存地址是否為有效訪存地址,獲得第一判斷結(jié)果;在所述第一判斷結(jié)果為是時,所述服務(wù)器基于所述第一訪存地址執(zhí)行第一操作的技術(shù)手段,從而通過在總線系統(tǒng)上對所述第一訪存地址做內(nèi)存地址段檢測,當檢測結(jié)果表明所述第一訪存地址為有效訪存地址時,CPU才會執(zhí)行與訪存地址相對應(yīng)的操作指令,所以,實現(xiàn)了對計算機系統(tǒng)安全保護的技術(shù)效果。
進一步地,由于采用了本申請的技術(shù)方案,能夠直接針對物理地址進行大段地址的保護,而不像現(xiàn)有技術(shù)中那樣,通過在CPU內(nèi)部增加硬件保護機制,一旦使用已有的CPU IP在做片上系統(tǒng)(System on a Chip,即SoC)集成時,就很難改變集成在CPU里面的安全策略,而實際的SoC中的物理內(nèi)存的設(shè)置可能差別很大,進而導致現(xiàn)有技術(shù)中的保護方案無法移植到移動領(lǐng)域,而本申 請的技術(shù)方案,可以根據(jù)實際物理內(nèi)存的設(shè)置來設(shè)置內(nèi)存保護,所以,實現(xiàn)了根據(jù)實際物理內(nèi)存來設(shè)置內(nèi)存保護的技術(shù)效果。
進一步地,由于采用了本申請的技術(shù)方案,能夠直接針對物理地址進行大段地址的保護,而不像現(xiàn)有技術(shù)中那樣,通過在CPU內(nèi)部增加硬件保護機制,并針對虛擬地址進行保護,且需要對每一個頁地址都要做相應(yīng)設(shè)置的較為繁瑣的處理流程,所以,實現(xiàn)了保護流程較為簡潔的技術(shù)效果。
進一步地,由于采用了本申請的技術(shù)方案,能夠直接針對物理地址進行大段地址的保護,而不像現(xiàn)有技術(shù)中那樣,需要針對CPU內(nèi)部虛擬地址自帶的地址分級來實現(xiàn)對地址空間分級訪問的限制,卻存在不同級別的虛擬地址會映射到同一塊物理內(nèi)存上,比如,虛擬地址分別是核心空間、超級用戶空間、用戶空間,但實際卻映射到同一塊物理內(nèi)存上,進而沒有達到預期的安全性,所以,本申請的技術(shù)方案中的直接針對物理地址的保護,極大實現(xiàn)了對地址空間分級訪問進行有效限制的技術(shù)效果。
本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本發(fā)明的實施例可提供為方法、系統(tǒng)、或計算機程序產(chǎn)品。因此,本發(fā)明可采用完全硬件實施例、完全軟件實施例、或結(jié)合軟件和硬件方面的實施例的形式。而且,本發(fā)明可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(zhì)(包括但不限于磁盤存儲器、CD-ROM、光學存儲器等)上實施的計算機程序產(chǎn)品的形式。
本發(fā)明是參照根據(jù)本發(fā)明實施例的方法、設(shè)備(系統(tǒng))、和計算機程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計算機程序指令實現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合。可提供這些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個機器,使得通過計算機或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
這些計算機程序指令也可存儲在能引導計算機或其他可編程數(shù)據(jù)處理設(shè) 備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
這些計算機程序指令也可裝載到計算機或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計算機或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計算機實現(xiàn)的處理,從而在計算機或其他可編程設(shè)備上執(zhí)行的指令提供用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
具體來講,本申請實施例中的信息處理方法對應(yīng)的計算機程序指令可以被存儲在光盤,硬盤,U盤等存儲介質(zhì)上,當存儲介質(zhì)中的與信息處理方法對應(yīng)的計算機程序指令被一電子設(shè)備讀取或被執(zhí)行時,包括如下步驟:
一種信息處理方法,所述方法應(yīng)用于一電子設(shè)備中,所述方法包括:
在所述電子設(shè)備中的處理器與W個功能模塊通過總線建立連接,并通過所述總線訪問所述W個功能模塊中的第一功能模塊時,獲得第一訪存地址,其中,W為正整數(shù);
基于一地址查找表判斷所述第一訪存地址是否為有效訪存地址,獲得第一判斷結(jié)果;
在所述第一判斷結(jié)果為是時,所述服務(wù)器基于所述第一訪存地址執(zhí)行第一操作。
可選地,所述存儲介質(zhì)中存儲的與步驟,所述基于一地址查找表判斷所述第一訪存地址是否為有效訪存地址,獲得第一判斷結(jié)果,對應(yīng)的計算機程序指令在被執(zhí)行時,具體包括:
獲得一地址查找表;
基于所述地址查找表對所述第一訪存地址進行地址檢查,獲得第一檢測結(jié)果;
基于所述第一檢測結(jié)果判斷所述第一訪存地址是否為有效訪存地址,獲得第一判斷結(jié)果。
可選地,所述存儲介質(zhì)中存儲的與步驟,所述基于所述第一檢測結(jié)果判斷所述第一訪存地址是否為有效訪存地址,獲得第一判斷結(jié)果,對應(yīng)的計算機程序指令在被執(zhí)行時,對應(yīng)的計算機程序指令在被執(zhí)行時,具體包括:
確定所述地址查找表中的M個表項中包含的N個有效表項,其中,M為正整數(shù),N為小于等于M的正整數(shù);
判斷所述第一訪存地址是否和所述N個有效表項中的K個表項中的物理地址相對應(yīng),獲得第二判斷結(jié)果,其中,K為小于等于N的正整數(shù);
在所述第二判斷結(jié)果為是時,判斷表征所述第一訪存地址的第一地址屬性是否和所述物理地址對應(yīng)的第二地址屬性相匹配,獲得第一判斷結(jié)果。
可選地,所述存儲介質(zhì)中存儲的與步驟,所述判斷所述第一訪存地址是否和所述N個有效表項中的K個表項中的物理地址相對應(yīng),獲得第二判斷結(jié)果,對應(yīng)的計算機程序指令在被執(zhí)行時,具體為:
判斷所述第一訪存地址是否和所述K個表項中的第一物理地址相同,獲得第二判斷結(jié)果。
可選地,所述存儲介質(zhì)中存儲的與步驟,所述判斷所述第一訪存地址是否和所述N個有效表項中的K個表項中的物理地址相對應(yīng),獲得第二判斷結(jié)果,對應(yīng)的計算機程序指令在被執(zhí)行時,具體為:
判斷所述第一訪存地址是否位于所述K個表項中的第一物理地址段中,獲得第二判斷結(jié)果。
可選地,所述存儲介質(zhì)中存儲的與步驟,在所述判斷所述第一訪存地址是否和所述N個有效表項中的K個表項中的物理地址相對應(yīng),獲得第二判斷結(jié)果之后,對應(yīng)的計算機程序指令在被執(zhí)行時,所述方法還包括:
在所述第二判斷結(jié)果為否時,確定所述第一訪存地址為無效訪存地址;
在確定所述第一訪存地址為所述無效訪存地址時,所述處理器中斷所述第一操作。
可選地,所述存儲介質(zhì)中存儲的與步驟,在所述第一地址屬性具體為數(shù)據(jù) 或指令的第一讀取指令,或為一程序的第一運行指令;且所述第二地址屬性具體為表征所述物理地址中存儲有數(shù)據(jù)或指令的第一類型存儲地址時,在所述第二判斷結(jié)果為是時,判斷表征所述第一訪存地址的第一地址屬性是否和所述物理地址對應(yīng)的第二地址屬性相匹配,獲得第一判斷結(jié)果,對應(yīng)的計算機程序指令在被執(zhí)行時,具體為:
在所述第二判斷結(jié)果為是時,判斷所述第二地址屬性是否為與所述第一讀取指令相匹配的用于表征所述物理地址為用于存儲數(shù)據(jù)或指令的第一類型內(nèi)存地址,獲得第一判斷結(jié)果;或
在所述第二判斷結(jié)果為是時,判斷所述第二地址屬性是否為與所述第一運行指令相匹配的用于表征所述物理地址為用于運行程序的第二類型內(nèi)存地址。
可選地,所述存儲介質(zhì)中存儲的與步驟,在所述第一地址屬性具體為所述第一訪存地址的第一訪存級別,所述第二地址屬性具體為所述物理地址的第二訪存級別時,在所述第二判斷結(jié)果為是時,判斷表征所述第一訪存地址的第一地址屬性是否和所述物理地址對應(yīng)的第二地址屬性相匹配,獲得第一判斷結(jié)果,對應(yīng)的計算機程序指令在被執(zhí)行時,具體為:
在所述第二判斷結(jié)果為是時,判斷所述第一訪存級別是否高于所述第二訪存級別,獲得第一判斷結(jié)果。
可選地,所述存儲介質(zhì)中存儲的與步驟,在所述基于一地址查找表判斷所述第一訪存地址是否為有效訪存地址,獲得第一判斷結(jié)果之后,對應(yīng)的計算機程序指令在被執(zhí)行時,所述方法還包括:
在所述第一判斷結(jié)果為是否時,確定所述第一訪存地址為無效訪存地址;
在確定所述第一訪存地址為所述無效訪存地址時,所述處理器中斷所述第一操作。
盡管已描述了本發(fā)明的優(yōu)選實施例,但本領(lǐng)域內(nèi)的技術(shù)人員一旦得知了基 本創(chuàng)造性概念,則可對這些實施例作出另外的變更和修改。所以,所附權(quán)利要求意欲解釋為包括優(yōu)選實施例以及落入本發(fā)明范圍的所有變更和修改。
顯然,本領(lǐng)域的技術(shù)人員可以對本發(fā)明進行各種改動和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動和變型在內(nèi)。