專利名稱:保護(hù)口令免受未授權(quán)訪問(wèn)的方法和數(shù)據(jù)處理單元的制作方法
技術(shù)領(lǐng)域:
本發(fā)明大體上涉及一種保護(hù)口令免受未授權(quán)(unauthorized)訪問(wèn)的方法和 娜處理單元。
圖1示出了根據(jù)本發(fā)明實(shí)施例的 流程圖; 圖2示出了根據(jù)本發(fā)明實(shí)施例的翻M單元; 圖3示出了根據(jù)本發(fā)明實(shí)施例的方法的^f呈圖; 圖4示出了根據(jù)本發(fā)明另一個(gè)實(shí)施例的方法的流程圖;具體實(shí)施方式
以下的詳細(xì)描述解釋了本發(fā)明的示例性實(shí)施例。此描述不應(yīng)理解為限制, 而僅為了說(shuō)明本發(fā)明的一般原理。然而,本發(fā)明的范圍僅由^i利要求定義并且 不意在受以下描述的示例性實(shí)施例柳歸ij。術(shù)語(yǔ)"口令"通常意為一些被保密的并且必須被提供以獲得對(duì)一些其它信息 或資源的訪問(wèn)的信息。此處的術(shù)語(yǔ)"口令"也被用于表示信息的表示或編碼。例 如,口令可以由字母、數(shù)字和特殊符號(hào)的序列來(lái)定義。其它也能被稱為口令的 序列可以由另一個(gè),制f^列,示或編碼。根據(jù)本發(fā)明的一個(gè)實(shí)施例,所提供的保護(hù)口令免^授權(quán)訪問(wèn)的方,括: 在存儲(chǔ)器中存儲(chǔ)表示至少部分口令的數(shù)據(jù),將數(shù)據(jù)分配給多個(gè)指令中的至少一 個(gè),將所述多個(gè)指令作為處理器可執(zhí)行代碼存儲(chǔ)在存儲(chǔ)器中,以及阻止將處理 器可執(zhí)行代碼作為 從存儲(chǔ)器讀出。根據(jù)本發(fā)明的另一個(gè)實(shí)施例,所提供的保護(hù)口令免^*授權(quán)訪問(wèn)的方&^ 括將 至少部分口令的 分布(distribute)至哆個(gè)翻部分中,將*數(shù) 據(jù)部分與多個(gè)指令中的至少一個(gè)進(jìn)行組合,將包括組合的數(shù)據(jù)部分的多個(gè)指令 作為M器可執(zhí)行代碼存儲(chǔ)在存儲(chǔ)器中,以及阻止將處理器可執(zhí)行代碼作為數(shù) 據(jù)從存儲(chǔ)^^讀出。根據(jù)本發(fā)明的另一個(gè)實(shí)施例,所提供的數(shù)據(jù)處理單元包括存儲(chǔ)器,用于 存儲(chǔ)g至少部分口令的數(shù)據(jù),所述存儲(chǔ)器進(jìn)一步將多個(gè)指令作為處理器可執(zhí) 行代碼進(jìn)行存儲(chǔ);控制單元,用于將 分配至多個(gè)指令中的至少一個(gè);以及電路裝置(arrangement),用于阻止將處理器可執(zhí)行代蹄乍為 從存儲(chǔ)器讀出。根據(jù)本發(fā)明的另一個(gè)實(shí)施例,所提供的數(shù)據(jù)處理單元包括控制單元,用 于將表示至少部分口令的數(shù)據(jù)分布到多個(gè)數(shù)據(jù)部分中,所述控制單^it一步將 每個(gè)翻部分與多個(gè)指令中的一個(gè)進(jìn)^m合;存儲(chǔ)器,用于將包括組合的數(shù)據(jù) 部分的多個(gè)指令作為處理器可執(zhí)行代碼進(jìn)行存儲(chǔ);以及電路裝置,用于阻止將 處理器可執(zhí)行代碼作為翻從存儲(chǔ)器讀出。說(shuō)明性地,口令和/或關(guān)于如何獲取(retrieve) 口令的一些信息與被作為處 理器可執(zhí)行代碼存儲(chǔ)在存儲(chǔ)器中的多個(gè)指令相聯(lián)系(link)。由于將處理器可執(zhí) 行代碼作為 從存儲(chǔ)器讀出被阻止,所以口令被保護(hù)免受^^授^^訪問(wèn)。根據(jù)本發(fā)明的一個(gè)實(shí)施例,允許將處理器可執(zhí)行代碼作為將由處理m行 的代碼讀出,并且允許將可允許讀出的處理器可執(zhí)行代碼轉(zhuǎn)移至處理器。根據(jù)本發(fā)明的一個(gè)實(shí)施例,通過(guò)執(zhí)行處理器可執(zhí)行代碼來(lái)獲取^口令的 翻。表示口令的數(shù)據(jù)可以被作為 器可執(zhí)行代碼的部分來(lái)存儲(chǔ)。它們可以被 構(gòu)建(build)到處理器可執(zhí)行代碼的指令中。根據(jù)本發(fā)明的實(shí)施例,多個(gè)指令 中的至少一個(gè)是立即指令。處理器可執(zhí)行代碼可以包括附加指令以用于執(zhí)行安全相關(guān)過(guò)程。表示口令 的數(shù)據(jù)所分配到的多個(gè)指令可以被分布于整個(gè)處理器可執(zhí)行代碼內(nèi)。這樣,口 令就具有更強(qiáng)的免^授^l訪問(wèn)的保護(hù)。在其中安全和不安全代碼由單個(gè)處理 1行的數(shù)據(jù)處理系統(tǒng)中,需要安全 方法,制對(duì)關(guān)鍵硬件資源的訪問(wèn)。這樣的關(guān)鍵硬件資源的例子可以是用于加 密(cryptographic)操作的基于保密硬件(secret hardware)的密鑰。對(duì)硬件資源 的訪問(wèn)應(yīng)僅當(dāng)確定的安^f戈碼片段(piece)在系統(tǒng)中執(zhí)行時(shí)才是可能的。這能夠例如通過(guò)使用用于安全訪問(wèn)的單獨(dú)的(附加的)處理器、通過(guò)fOT 具有硬件安全線程的鵬器、或通過(guò)^f柳狀態(tài)機(jī)控制對(duì)指令和數(shù)據(jù)存儲(chǔ)器的訪 問(wèn)來(lái)實(shí)現(xiàn)??商鎿Q地,口令可以被用于控制對(duì)硬件資源的訪問(wèn)。
當(dāng)使用口令來(lái)控制對(duì)資源的訪問(wèn)時(shí),通常希望保持口令保密以便其僅對(duì)被 授權(quán)4頓資源者是已知的而對(duì)其它人不可用。例如,在其中安全和非安全代碼由單個(gè)處理繊行的繊處理系統(tǒng)中,對(duì)資源安^i方問(wèn)的形成可以通過(guò)4頓僅當(dāng)安全代碼被執(zhí)行時(shí)才能被訪問(wèn)的口令來(lái)提供。因?yàn)樵谀骋稽c(diǎn)需要使用口令, 所以口令必須在系統(tǒng)中是可用的,但是必須保護(hù)對(duì)口令的訪問(wèn)免受攻擊者讀取 和fOT。換句話說(shuō),必須f對(duì)戶口令免未授權(quán)訪問(wèn)。圖1示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的 ^|呈圖。口令101由存儲(chǔ)在存儲(chǔ)器中的數(shù)據(jù)102表示。數(shù)據(jù)102包括多個(gè)數(shù)據(jù)部分 103、 104、 105、 106和107。 M部分被單3魁也分配給多個(gè)指令108、 109和110 中的一個(gè)。在所示的例子中,翻部分103分配給第一指令108 ("指令l"), 部分104被分配給第二指令109 ("指令2")等等。指令被作為^h理^l可執(zhí)行代碼存儲(chǔ)在存儲(chǔ)器中。這意瞎代m能夠被執(zhí)行而不能作為翻讀出。分 配給指令108、 109和110的M部分可以作為處理器可執(zhí)行代碼的部^fe存儲(chǔ)。 為達(dá)此目的,在所描述的實(shí)施例中使用所謂的立即指令。這些是其中指令 所弓間的數(shù)據(jù)被構(gòu)超鵬令中的指令,并且不需要取繊。指令108、 109和110 可以是允許使用內(nèi)部指令常量的匯編指令,其能夠在不使用附加數(shù)據(jù)總線的情 況下被加載到微處理器的寄存器中。ARM926是旨漱按這種方式f頓的處理器 的例子。立即指令中所f頓的娜通常很短并且可能僅為1字節(jié)。在所示的例 子中,第一指令108包括分配的數(shù)據(jù)111和112,第二指令109包括分配的 113和114,第三指令110包括分配的數(shù)據(jù)115。在該瞎況下,分配的數(shù)據(jù)111 對(duì)應(yīng)于數(shù)據(jù)部分103,分配的數(shù)據(jù)112對(duì)應(yīng)于繊部分105等等。可替換地,立 即指令可以不包括 部分103、 104、 105、 106和107,取而代之其它信息可 用于獲取密碼,例如至'J其中存儲(chǔ)M 102的其創(chuàng)旨令^^儲(chǔ)位置的鏈接(link) 或指針。由于包含立即指令的代碼被微處理器執(zhí)行,所以微處理器在內(nèi)部寄存器中 Kz:完全(complete) 口令,即g口令的數(shù)據(jù)。這可以通過(guò)在將口令加載到內(nèi) 部寄存器時(shí)^fOT移位(shift)操作和"或"操作來(lái)實(shí)現(xiàn)。這育,,一個(gè)或多個(gè) 完全32位寄存器已經(jīng)被加載口令才完成。在一個(gè)實(shí)施例中,表示口令101的數(shù)據(jù)102被分布于立即指令108、 109和 110中的M^安全訪問(wèn)代碼內(nèi)。安全訪問(wèn)代石馳括一個(gè)或多個(gè)附加指令116以用
于執(zhí)行安全相關(guān)過(guò)程。由于口令訪問(wèn)命令被分布于整個(gè)安全訪問(wèn)代碼內(nèi),所以如果代碼沒(méi)有被完全執(zhí)行,則完全口令對(duì)微處理器而言不可用。安^ri方問(wèn)代碼 育多執(zhí)行安方問(wèn),例如檢查中斷被禁止(disabled),以及檢查調(diào)用(call)例 程的源。參考圖2,示意性的框圖示出了以下將要討論的根據(jù)本發(fā)明另一個(gè)實(shí)施例的 娜處理單元。 處理單元200包括微,器201和存儲(chǔ)器202,所述微處理器201和存 儲(chǔ)器202經(jīng)由數(shù)據(jù)總線203及指令總線204相率給。指令總線連接至微處理器 的指令輸入端口205。
處理單元還包括安全關(guān)^1更件資源206,例如用于加 密操作的基于保密硬件的密鑰。對(duì)該硬件資源的訪問(wèn)受安全訪問(wèn)信號(hào)207保護(hù), 其繼而受口令保護(hù)。每當(dāng)iC^W單元200 lttg和弓l導(dǎo)時(shí),口令都會(huì)被賦予新值。實(shí)5賦目 的的好方法^/人隨機(jī)數(shù)字發(fā)生器208中取值。隨機(jī)數(shù)字發(fā)生器208所皿的口 令被微處理器201編程到不能被讀出的硬件寄存器209中,例如當(dāng)緊接在初始 化之后,數(shù)據(jù)處理單元處于安全狀態(tài)時(shí)。當(dāng)系統(tǒng)仍處于安^:狀態(tài)時(shí),口令也被 i^A存儲(chǔ)在存儲(chǔ)器202中的一段安^ri方問(wèn)代碼210。為了實(shí)5賦目的,j頓立即 指令。口令或密鑰必須分割成指令適合的片段。大小由所{柳的指令集來(lái)確定, 例如加載記憶區(qū)(load mnemonic)中常量字段的大小。表示口令的M被"^A 多個(gè)立即指令,其形成安全訪問(wèn)代碼210的一部分。此處微,器201擔(dān)當(dāng)向 多個(gè)指令中的至少一個(gè)分配數(shù)據(jù)的控制單元。微處理器201也肯,被視為將表 示至少部分口令的翻分布至多個(gè)數(shù)據(jù)部分中的控制單元,控制單碰一步將 部分與多個(gè)指令中的一4且合。安全訪問(wèn)代碼210通過(guò)硬件來(lái)保護(hù)??偩€監(jiān)視器(watcher) 211僅允許針 對(duì)其中旨令總線204 j斜戶安全訪問(wèn)代碼的存儲(chǔ)器的總線訪問(wèn)。這意味代碼 僅育,被微M器201執(zhí)行,并且不能被作為 從存儲(chǔ)器讀出。M總線監(jiān) 視器211針對(duì)來(lái)自任何總線的數(shù)據(jù)訪問(wèn)對(duì)相應(yīng)的存儲(chǔ)區(qū)域進(jìn)行保護(hù)和閉鎖 (lock)??偩€監(jiān)視器211的硬件育,被視為用于阻止將,器可執(zhí)行代碼作為數(shù) 據(jù)從存儲(chǔ)器202讀出的電路裝置。因此口令在微處理器對(duì)非安全代碼的執(zhí)行期 間被保護(hù)。如果安全訪問(wèn)代碼被非法訪問(wèn)(被重寫(xiě),或作為數(shù)據(jù)讀取)或試圖 這樣做,貝IJ總線監(jiān)視器211的檢測(cè)電路^絵產(chǎn)生安全警報(bào),鎖定(lock off)對(duì)安全硬件資源206的訪問(wèn)直至下一次重置,或簡(jiǎn)單地重置系統(tǒng)(例如數(shù)據(jù)處理 單元)。也可以使對(duì)口令的訪問(wèn)依賴于集成電路的特定安全狀態(tài)。這可以通過(guò)硬件 來(lái)實(shí)現(xiàn)。禾,不正確的安全狀態(tài)訪問(wèn)口令會(huì)弓l發(fā)安全警報(bào)。當(dāng)要求訪問(wèn)硬件資源206的應(yīng)用或例程需要{頓口令時(shí),安^i方問(wèn)代碼210 經(jīng)由指令總線204和指令輸入端口 205被加載到微^S器中并被立即執(zhí)行。當(dāng) 安封方問(wèn)代碼被執(zhí)行時(shí),微處理驗(yàn)內(nèi)部寄存器212中構(gòu)建完全口令,即表示 口令的數(shù)據(jù)。這可以iffil在將口令加載至內(nèi)部寄存器212中時(shí){柳,和"或" 操作來(lái)實(shí)現(xiàn)。這育,直至一個(gè)或多個(gè)完全32位寄存器已經(jīng)被加載口令才完成。 之后微處理器將口令寫(xiě)入比較硬件寄存器213 。安全訪問(wèn)電路214糊更件寄存器 209的內(nèi)容和比較硬件寄存器213的內(nèi)容進(jìn)行比較。僅當(dāng)比較硬件寄存器213 包含口令的正確值并且沒(méi)有從警報(bào)信號(hào)215檢測(cè)到總線監(jiān)視器211的安全警報(bào) 條件時(shí),才m^活安全訪問(wèn)信號(hào)207。安全訪問(wèn)代碼210包含附加指令116以用于執(zhí)行安^i方問(wèn),例如檢查中斷 被禁止,以及檢查調(diào)用例程的源。授權(quán)幀(feme)可以,艦行,此處調(diào)用模土央 ffi^讀出鏈接寄存器(例如ARM系統(tǒng)上的R14)并且將其與允許地址的列表相 比較來(lái)確定。另外,可以針對(duì)未授權(quán)返回地址來(lái)檢查本地堆棧幀。這確保了獲 取口令的功能僅能夠被授權(quán)的軟件部分使用。調(diào)用安全訪問(wèn)代碼的例程可以完 ^fflii硬件來(lái)保護(hù)。表示口令的數(shù)據(jù)可以在以預(yù)定方式加擾(scramble)的多個(gè) 部分中返回調(diào)用例程,從而要求調(diào)用例程必須在育,使用它之前以已定義方式 對(duì)i^進(jìn)行去擾(descramble)。由于口令訪問(wèn)命令(指令108、 109、 110)被分布于旨安全訪問(wèn)代碼內(nèi), 所以如果代碼不被完全執(zhí)行,則完全口令將對(duì)于微處理器而言不可用。在安全 訪問(wèn)代碼210的執(zhí)行時(shí),娜處理單元200育,被強(qiáng)制iSA安全狀態(tài)。因此能 夠?qū)崿F(xiàn)僅當(dāng)安全代碼被微處理器201執(zhí)行時(shí)才準(zhǔn)予對(duì)硬件資源206的訪問(wèn)。安全訪問(wèn)信號(hào)207僅會(huì),通過(guò)將正確值寫(xiě)入硬件比較寄存器213來(lái)激活。 將錯(cuò)誤值寫(xiě)入寄存器將會(huì)弓胞安射方問(wèn)信號(hào)被鎖趙至對(duì)數(shù)據(jù)M單元200的 下一7 置。只要口令具有合理的長(zhǎng)度,試圖隨機(jī)猜測(cè)口令的攻擊者極可能失 敗。這是因?yàn)楣粽邇H能猜一次,之后 ,單元200必須被重置才能有另 一次嘗試。在這一點(diǎn),f頓隨機(jī)數(shù)字發(fā)生器208產(chǎn)生新口令。這意味強(qiáng)力攻擊
比口令長(zhǎng)度暗示(imply)花費(fèi)長(zhǎng)得多的時(shí)間,系統(tǒng)性的(systematic)攻擊也不 起作用??诹畹摹搅矔?huì)^利用附加硬件來(lái)保護(hù)。在這種情況下,硬件檢査口令是 否已經(jīng)被全部讀取。如果沒(méi)有,貝lJ口令不能被4柳,并且將!飾絕。這樣,硬件資源206 M31硬件和軟件的組合刺斜戶,其優(yōu)點(diǎn)在于軟件能 夠依據(jù)所需的保護(hù)等級(jí)而增強(qiáng)。 ,單元200倉(cāng),是單元或集成至單, 成電路中的系統(tǒng)。其也可以是包括若干集成電路和/或其它件設(shè)備的系統(tǒng)。圖3示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的方法的,圖。在301中,表示至少部分口令的數(shù)據(jù)被存儲(chǔ)在存儲(chǔ)器中。例如,這會(huì),由 與 存儲(chǔ)器202相耦合的微處理器201來(lái)執(zhí)行。耦合可以由數(shù)據(jù)總線203提 供。在302中,翻被分SeS多個(gè)指令中的至少一個(gè)。艦可以由微處理器201 來(lái)執(zhí)行。指令可以是立即指令,其允許使用內(nèi)部指令常量。利用這些,可以執(zhí) 行匯編指令以便在不 ^則頓附加 總線的情況下將數(shù)據(jù)加載到微處理器 的寄存器中。在303中,將多個(gè)指令作為雌器可執(zhí)行代碼存儲(chǔ)在存儲(chǔ)器中。如圖1所 示,所分配的數(shù)據(jù)lll、 112、 113、 114和115可以與指令108、 109和110—起 存儲(chǔ)。在這個(gè)例子中,它們形鵬儲(chǔ)器202中的艦器可執(zhí)行代碼210的一部 分??商鎿Q地,所分配的數(shù)據(jù)可以保持或育,被存儲(chǔ)在另一個(gè)存儲(chǔ)離置。提 供各數(shù)據(jù)和其被分配到的指令之間聯(lián)系的一些信息可以包括在指令中。在304中,阻止將處理器可執(zhí)行代碼作為 從存儲(chǔ)器讀出。例如,總線 監(jiān)視器211控制對(duì)存儲(chǔ)器202中存儲(chǔ)^bS器可執(zhí)行代碼210的區(qū)域的總線訪問(wèn)。 任何數(shù)據(jù)讀或?qū)懺L問(wèn)都ffiM總線監(jiān)視器硬件被阻止??偩€監(jiān)視器阻止任何經(jīng)由 數(shù)據(jù)總線203訪問(wèn),器可執(zhí)行代碼210的嘗試。因此口令I(lǐng)OI,更確切地,表 示口令的數(shù)據(jù)102,被保護(hù)免受未授禾又訪問(wèn)。圖4示出了根據(jù)本發(fā)明另一個(gè)實(shí)施例的方法的流程圖。在401中,表示至少部分口令的數(shù)據(jù)被分布到多個(gè),部分中。例如,這 育,由微M器201來(lái)執(zhí)行。g口令101的 102被分割為片段103、 104、 105、 106和107。在402中,將^^數(shù)據(jù)部分與多個(gè)指令中的至少一^t行組合。這也可以
由微鵬器201 1行。數(shù)據(jù)部分可以與指令一起被安排或與指令相聯(lián)系。如 果指令是立即指令,那么纖部分能夠被構(gòu)建成立即指令。在403中,將包括組合的W部分的多個(gè)指令作為處理器可執(zhí)行代碼存儲(chǔ) 在存儲(chǔ)器中。圖l中的數(shù)據(jù)lll、 112、 113、 114和115可以被視為與指令108、 109和110組合的數(shù)據(jù)部分。指令和組合的數(shù)據(jù)部分旨,被一起存儲(chǔ)在存儲(chǔ)器 202中并且之后形成,器可執(zhí)行代碼210的一部分。在404中,阻止將處理器可執(zhí)行代碼作為 從存儲(chǔ)器讀出。例如,總線 監(jiān)視器211控制對(duì)存儲(chǔ)器202中存儲(chǔ)M器可執(zhí)行代碼210的區(qū)域的總線訪問(wèn)。 任何數(shù)據(jù)讀或?qū)懺L問(wèn)都通過(guò)總線監(jiān)視器硬件被阻止??偩€監(jiān)視器卩Ilh任何經(jīng)由 數(shù)據(jù)總線203訪問(wèn)處理器可執(zhí)行代碼210的嘗試。因此口令101,更確切地g 口令的數(shù)據(jù)102,被i^戶免^授權(quán)訪問(wèn)。雖然已經(jīng)特別參考附圖詳細(xì)描述了前述一些實(shí)施例,但發(fā)明者考慮到不同 的實(shí)施例。在本發(fā)明的一個(gè)實(shí)施例中,控帝樹(shù)其中存儲(chǔ)處理器可執(zhí)行代碼的存儲(chǔ)器地 址范圍或存儲(chǔ)器的訪問(wèn)包括〗OT硬件單元。本發(fā)明的一個(gè)實(shí)施例包括當(dāng)處理器可執(zhí)行代碼被作為數(shù)據(jù)讀出或被改變 時(shí)產(chǎn)生安全警報(bào)。在本發(fā)明的一個(gè)實(shí)施例中,處理器可執(zhí)行代碼包括附加指令以用于執(zhí)行安 全相關(guān)過(guò)程。在本發(fā)明的一個(gè)實(shí)施例中,多個(gè)指令中的至少一個(gè)被分布于,處理器可 執(zhí)行代碼內(nèi)。在本發(fā)明的一個(gè)實(shí)施例中,為了完全獲取表示至少部分口令的數(shù)據(jù),需要 基本上執(zhí)行所有鵬器可執(zhí)行代碼。本發(fā)明的一個(gè)實(shí)施例包括每當(dāng)集成電路被重置和引導(dǎo)時(shí),向表示至少部 分口令的 分配新值。在本發(fā)明的一個(gè)實(shí)施例中,向表示至少部分口令的 分配新值包括^頓 隨機(jī)數(shù)字發(fā)生器。本發(fā)明的一個(gè)實(shí)施例包括將標(biāo)至少部分口令的M編程至'J不能被讀出的硬件寄存器中;將所獲取的數(shù)據(jù)寫(xiě)入硬件比較寄存器;以及如剩更件比較寄 存器包含 至少部分口令的 的正確^,貝U激活安^i方問(wèn)信號(hào)。
本發(fā)明的一個(gè)實(shí)施例包括在、撒活安^i方問(wèn)信號(hào)時(shí),使能(enable)對(duì)安全 硬件資源的訪問(wèn)。本發(fā)明的一個(gè)實(shí)施例包括如果硬件比較寄存器包含標(biāo)至少部分口令的 娜的不正確表示,貝,、定安^i方問(wèn)信號(hào)。本發(fā)明的一個(gè)實(shí)施例包括保持鎖定的安射方問(wèn)信號(hào)被鎖定直至集成電路被重置或引導(dǎo)。本發(fā)明的一個(gè)實(shí)施例包括執(zhí)行軟件例程,所述軟件例程需要安全訪問(wèn), 所述安全訪問(wèn)需要^至少部分口令的數(shù)據(jù);以及^ffi硬件單元檢查軟件例程 的完整性(integrity)禾口/或授權(quán)。本發(fā)明的一個(gè)實(shí)施例包括在以預(yù)定方式加擾的多個(gè)部分中返回 至少 部分口令的數(shù)據(jù)。在本發(fā)明的一個(gè)實(shí)施例中,總線監(jiān)視電路被配置成限制數(shù)據(jù)讀訪問(wèn)對(duì)其中 存儲(chǔ)處理器可執(zhí)行代碼的存儲(chǔ)器地址范圍或存儲(chǔ)器的訪問(wèn)。在本發(fā)明的一個(gè)實(shí)施例中,總線監(jiān)視電路被配置成允許指令讀訪問(wèn)對(duì)其中 存儲(chǔ),器可執(zhí)行代碼的存儲(chǔ)器地址范圍或存儲(chǔ)器的訪問(wèn)。在本發(fā)明的一個(gè)實(shí)施例中,電路體包括檢測(cè)電路,所述檢測(cè)電路用于當(dāng) 自器可執(zhí)行代碼被作為數(shù)據(jù)讀出或被改變時(shí)產(chǎn)生安全警報(bào)。在本發(fā)明的一個(gè)實(shí)施例中,處理器可執(zhí)行代碼包括附加指令以用于執(zhí)行安 全相鄉(xiāng)呈。在本發(fā)明的一個(gè)實(shí)施例中,多個(gè)指令中的至少一個(gè)被分布于齡處理器可 執(zhí)行代碼內(nèi)。本發(fā)明的一個(gè)實(shí)施例包括具有引導(dǎo)電路的集成電路,所述引導(dǎo)電路用于每 當(dāng)集成電路被重置和引導(dǎo)時(shí),向表示至少部分口令的 分配新值。 本發(fā)明的一個(gè)實(shí)施例包括隨機(jī)數(shù)字發(fā)生器以用于產(chǎn)生新值。本發(fā)明的一個(gè)實(shí)施例包括硬件寄存器,用于接收表示至少部分口令的數(shù)據(jù),所述硬件寄存^l皮配置為不能被讀出;硬件比較寄存器,用于將所獲取的數(shù)據(jù)寫(xiě)入其中;以及安全訪問(wèn)電路,用于在硬件比較寄存器包含 至少部分口令的數(shù)據(jù)的正確 的情況下歡活安^1方問(wèn)信號(hào)。
本發(fā)明的一個(gè)實(shí)施例包括安全硬件資源并且被配置為在激活安全訪問(wèn)信號(hào) 時(shí)使會(huì)樹(shù)安全硬件資源的訪問(wèn)。本發(fā)明的一個(gè)實(shí)施例配置為如果硬件比較寄存器包含表示至少部分口令 的纖的不正確表示,貝,、定安^i方問(wèn)信號(hào)。本發(fā)明的一個(gè)實(shí)施例包括具有引導(dǎo)電路的集成電路并且配置為保持鎖定的 安封方問(wèn)信號(hào)被鎖定直至集成電路被重置或弓l導(dǎo)。本發(fā)明的一個(gè)實(shí)施例包括完整性檢測(cè)電路,用于在軟件例程在被處理微 行時(shí)需要安全訪問(wèn)的情況下檢查軟件例程的完整性,所述安全訪問(wèn)需要表示至 少部分口令的數(shù)據(jù)。
權(quán)利要求
1、保護(hù)口令免受未授權(quán)訪問(wèn)的方法,包括在存儲(chǔ)器中存儲(chǔ)表示至少部分口令的數(shù)據(jù);將數(shù)據(jù)分配給多個(gè)指令中的至少一個(gè);將多個(gè)指令作為處理器可執(zhí)行代碼存儲(chǔ)在存儲(chǔ)器中;以及阻止將處理器可執(zhí)行代碼作為數(shù)據(jù)從存儲(chǔ)器讀出。
2、 如權(quán)利要求l所述的方法,進(jìn)一步包括 允許將處理器可執(zhí)行代碼作為將由處理m行的代碼讀出; 允許將可允許讀出的處理器可執(zhí)行代碼轉(zhuǎn)移至處理器。
3、 如禾又利要求1所述的方法,進(jìn)一步包摘每 作為處理器可執(zhí)行代碼 的部鄉(xiāng)亍存儲(chǔ)。
4、 如權(quán)利要求1所述的方法,進(jìn)一步包摘每,構(gòu)建到多個(gè)指令中的至一個(gè)巾。
5、 如權(quán)利要求l所述的方法,其中多個(gè)指令中的至少一個(gè)是立即指令。
6、 如豐又利要求1所述的方法,進(jìn)一步包括執(zhí)行處理器可執(zhí)行代碼以獲取 ,至少部分口令。
7、 如權(quán)利要求1所述的方法,其中PIih將處理器可執(zhí)行代碼作為娜從 存儲(chǔ)器中讀出包括控制對(duì)其中存儲(chǔ)鵬器可執(zhí)行代碼的存儲(chǔ)器地址范圍或存 儲(chǔ)器的訪問(wèn)。
8、 如權(quán)利要求1所述的方法,其中P祉將處理器可執(zhí)行代碼作為數(shù)據(jù)從存儲(chǔ)器中讀出包括限制數(shù)據(jù)讀訪問(wèn)對(duì)其中存儲(chǔ)處理器可執(zhí)行代碼的存儲(chǔ)器地址范圍或存儲(chǔ)器的訪問(wèn)。
9、 如權(quán)利要求2所述的方法,其中允許將處理器可執(zhí)行代碼作為將由處理器執(zhí)行的代碼讀出包括允許指令讀訪問(wèn)對(duì)其中存儲(chǔ)處理器可執(zhí)行代碼的存儲(chǔ)器地址范圍或存儲(chǔ)器的訪問(wèn)。
10、 保護(hù)口令免訪問(wèn)的方法,包括將表示至少部分口令的分布到多個(gè)數(shù)據(jù)部分中; 將數(shù)據(jù)部分與多個(gè)指令中的至少一行組合; 將包括組合的數(shù)據(jù)部分的多個(gè)指令作為處理器可執(zhí)行代碼存儲(chǔ)在存儲(chǔ)器 中;以及阻止將處理器可執(zhí)行代碼作為 從存儲(chǔ)器讀出。
11、 如權(quán)利要求10所述的方法,進(jìn)一步包括 允許將處理器可執(zhí)行代碼作為將由處理mM亍的代碼讀出;以及 允許將可允許讀出的處理器可執(zhí)行代碼轉(zhuǎn)移至,器。
12、 如權(quán)利要求10所述的方法,其中組合包括將^h數(shù)據(jù)部分^A多個(gè)指 令中的一個(gè)。
13、 如禾又利要求10所述的方法,進(jìn)一步包括執(zhí)《亍處理器可執(zhí)4亍代碼以獲取 標(biāo)至少部分口令的數(shù)據(jù)。
14、 如權(quán)利要求10所述的方法,進(jìn)一步包糊每組合的數(shù)據(jù)部分分布于在整 個(gè)鵬器可執(zhí)行代碼內(nèi)。
15、 翻處理單元,包括存儲(chǔ)器,用于存儲(chǔ)表示至少部分口令的數(shù)據(jù),所述存儲(chǔ)器進(jìn)一步將多個(gè)指 令作為處理器可執(zhí)行代碼進(jìn)行存儲(chǔ);控制單元,用于將 分配給多個(gè)指令中的至少一個(gè);以及 電路裝置,用于阻止將自器可執(zhí)行代碼作為 從存儲(chǔ)器讀出。
16、 如權(quán)利要求15所述的娜艦單元,電路裝置進(jìn)一步允許將處理器可執(zhí)行代碼作為將由 1行的代碼讀出;并且電路^a進(jìn)一步允許將可允許讀出的^S器可執(zhí)行代碼轉(zhuǎn)移至處理器。
17、 如權(quán)利要求15所述的娜M單元,存儲(chǔ)器進(jìn)一步將數(shù)據(jù)作為處理器 可執(zhí)行代碼的部^it行存儲(chǔ)。
18、 如權(quán)利要求15所述的娜鵬單元,控制單繊一步將數(shù)據(jù)構(gòu)建到多個(gè)指令中的至少一個(gè)中。
19、 如權(quán)利要求15所述的繊艦單元,其中多個(gè)指令中的至少一個(gè)是立 即指令。
20、 如權(quán)利要求15所述的 處理單元,還包括處理器,用于處理指令并且具有指令輸入端口, M器進(jìn)一步執(zhí)行處理器 可執(zhí)4亍代碼以便當(dāng)經(jīng)由指令輸入端口接收處理器可執(zhí)4亍代碼時(shí)獲取表示至少部 分口令的數(shù)據(jù);電路^g進(jìn)一步將可允許讀出的處理器可執(zhí)行代碼轉(zhuǎn)移至處理器的指令輸 入端口。
21、 如權(quán)利要求15所述的繊鵬單元,電路裝置還包括用于將存儲(chǔ)器耦 合到M器的總線裝置,所述總線裝置具有總線監(jiān)視電路以用于控制對(duì)其中存 儲(chǔ)M器可執(zhí)行代碼的存儲(chǔ)器地址范圍^儲(chǔ)器的訪問(wèn)。
22、 1單元,包括控制單元,用于將表示至少部分口令的數(shù)據(jù)分布至'侈個(gè)數(shù)據(jù)部分中,控制 單皿一步將^^ 部分與多個(gè)指令中的一^^4行組合;存儲(chǔ)器,用于將包括組合的數(shù)據(jù)部分的多個(gè)指令作為處理器可執(zhí)行代碼進(jìn)行存儲(chǔ);以及電路裝置,用于阻止將自器可執(zhí)4亍代碼作為 從存儲(chǔ)器讀出。
23、 如權(quán)利要求22所述的娜鵬單元,電路驢進(jìn)一步允許將鵬器可 執(zhí)行代碼作為將由M^l行的代碼讀出;并且電路裝置進(jìn)一步允許將可允許讀出的M器可執(zhí)碎亍代碼轉(zhuǎn)移至處理器。
24、 如權(quán)利要求22所述的M鵬單元,其中控制單元被隨劇每^h數(shù)據(jù)部^mx多個(gè)指令中的一個(gè)。
25、 如權(quán)利要求22所述的織處理單元,還包括處理器,用于處理指令并且具有指令輸入端口,并且進(jìn)一步執(zhí)行處理器可 執(zhí)行代碼以便當(dāng)經(jīng)由指令輸入端口接收處理器可執(zhí)行代碼時(shí)獲取表示至少部分 口令的數(shù)據(jù);電路裝置,進(jìn)一步將可允許讀出的處理器可執(zhí)行代碼轉(zhuǎn)移至處理器的指令
全文摘要
本申請(qǐng)?zhí)峁┝吮Wo(hù)口令免受未授權(quán)訪問(wèn)的方法和數(shù)據(jù)處理單元。保護(hù)口令免受未授權(quán)訪問(wèn)的方法的一個(gè)實(shí)施例包括在存儲(chǔ)器中存儲(chǔ)表示至少部分口令的數(shù)據(jù),將數(shù)據(jù)分配給多個(gè)指令中的至少一個(gè),將多個(gè)指令作為處理器可執(zhí)行代碼存儲(chǔ)在存儲(chǔ)器中,以及阻止將處理器可執(zhí)行代碼作為數(shù)據(jù)從存儲(chǔ)器讀出。
文檔編號(hào)G06F21/00GK101398872SQ20081017149
公開(kāi)日2009年4月1日 申請(qǐng)日期2008年9月26日 優(yōu)先權(quán)日2007年9月26日
發(fā)明者G·D·詹寧斯, J·巴斯托, M·戈德克, P·埃德, R·奈特 申請(qǐng)人:英飛凌科技股份公司