TWI474257B - 微處理器、保密方法以及撤銷第一密碼之方法 - Google Patents

微處理器、保密方法以及撤銷第一密碼之方法 Download PDF

Info

Publication number
TWI474257B
TWI474257B TW100129500A TW100129500A TWI474257B TW I474257 B TWI474257 B TW I474257B TW 100129500 A TW100129500 A TW 100129500A TW 100129500 A TW100129500 A TW 100129500A TW I474257 B TWI474257 B TW I474257B
Authority
TW
Taiwan
Prior art keywords
microprocessor
special module
module register
password
address
Prior art date
Application number
TW100129500A
Other languages
English (en)
Other versions
TW201209710A (en
Inventor
G Glenn Henry
Terry Parks
Original Assignee
Via Tech Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Via Tech Inc filed Critical Via Tech Inc
Publication of TW201209710A publication Critical patent/TW201209710A/zh
Application granted granted Critical
Publication of TWI474257B publication Critical patent/TWI474257B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/30101Special purpose registers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)

Description

微處理器、保密方法以及撤銷第一密碼之方法
本發明係關於限制存取微處理器之特別模組暫存器(Model Specific Register,MSR),特別係透過密碼限制對特別模組暫存器進行存取。
處理器具有許多內部控制暫存器,其通常僅可由微碼(microcode)進行存取。以匯流排控制暫存器當作例子,其可控制,例如,處理器匯流排上的時序(timing)、欲使用之精準匯流排協定等詳細動作。在對具有正在使用中之處理器的系統進行測試及除錯時,測試員/除錯員通常想要能夠執行外部的程序來設定(或讀取)處理器內部的控制暫存器。舉例來說,測試員/除錯員可能想要在處理器匯流排上嘗試不同的時序。此外,測試員/除錯員通常也想要存取這些處理器的內部暫存器以作為製造測試程序的一部分。
舉例來說,x86結構之指令集包括讀取特別模組暫存器(read from MSR,RDMSR)指令及寫入特別模組暫存器(write to MSR,WRMSR)指令來對特別模組暫存器(MSR)進行讀取或寫入。測試員/除錯員可透過RDMSR指令及WRMSR指令來存取x86處理器的內部控制暫存器。然而,假如使用不正確的話,存取某些內部控制暫存器的動作將會導致處理器工作不正確、工作緩慢或是不完全工作。再者,存取某些內部控制暫存器的動作將會導致使用者不受安全機制保護,例如允許在用戶態(ring 3)對核心態(ring 0)進行存取。此外,這些控制暫存器可能會洩露處理器設計者想要保有所有權之資訊。因此,不同x86處理器的製造廠商不會公開地提供任何描述某些控制特別模組暫存器之位址或是功能的文件。
然而,未公開之控制特別模組暫存器的位址或是其存在很容易被程式設計員所發現,然後程式設計員傳統上會將他們的發現公開給別人來使用。再者,處理器製造廠商可能需要將控制特別模組暫存器的位址及相關描述揭露給客戶,以供客戶進行測試及除錯程序。然而,揭露給客戶的資訊可能會導致控制特別模組暫存器的機密會變成眾所皆知,於是任何人或是任何處理器都可使用這些控制特別模組暫存器。
在執行RDMSR/WRMSR指令來對受保護之特別模組暫存器進行存取之前,更嚴格的方法係需要在暫存器內放置機密的存取鑰(access key)。假如存取鑰的值不正確,則RDMSR/WRMSR指令會失敗(fail),而且處理器不能對所指定的特別模組暫存器進行讀取/寫入。理論上,存取鑰的值係從處理器的製造廠商所獲得。不幸地,在製造廠商提供存取鑰的值給客戶之後,很快地存取鑰的值將會被公開,而未被授權的其他人便可使用已被公開的存取鑰來對控制暫存器進行存取。
本發明提供一種微處理器,包括一密鑰、一特別模組暫存器、複數保險絲以及一微碼。密鑰製造於微處理器的內部。特別模組暫存器具有由微處理器執行之一指令所指定之一位址。微碼用以接收要求對特別模組暫存器進行存取之指令,其中指令用以指定特別模組暫存器之位址;對所指定之特別模組暫存器之位址與讀取自保險絲之數值執行一函數運算,用以產生一第一結果;使用密鑰對第一結果進行加密,用以產生一第二結果;比較第二結果與指令所指定之一密碼;以及若第二結果與密碼匹配,允許指令對特別模組暫存器進行存取,否則拒絕指令對特別模組暫存器進行存取。
本發明另提供一種保密方法,適用於一微處理器用以提供具選擇性之存取至微處理器之一特別模組暫存器,方法包括接收要求對特別模組暫存器進行存取之一指令,其中指令用以指定特別模組暫存器之位址;對微處理器所指定之特別模組暫存器之位址以及讀取自處理器之複數保險絲之一數值執行一函數運算,用以產生一第一結果;使用製造於微處理器的內部之一密鑰對第一結果進行加密,用以產生一第二結果;比較第二結果與指令所指定之一密碼;以及若第二結果與密碼匹配,允許指令對特別模組暫存器進行存取,否則拒絕指令對特別模組暫存器進行存取。
本發明另提供一種微處理器包括一特別模組暫存器、複數保險絲以及一控制暫存器。特別模組暫存器具有一位址。複數保險絲使用一第一既定值所製造。微處理器用以在初始時自保險絲將第一既定值載入控制暫存器,並在第一既定值載入至控制暫存器之後,將來自一電腦系統之系統軟體的一第二既定值寫入至控制暫存器,電腦系統包括微處理器。其中當一指令係提供由微處理器之一第一版本中的一密鑰對第一既定值與特別模組暫存器之位址用以執行加密函數運算後所產生之一第一密碼時,微處理器禁止指令對特別模組暫存器進行存取,當指令係提供由密鑰對第二既定值與特別模組暫存器之位址用以執行加密函數運算後產生之一第二密碼時,微處理器致能指令對特別模組暫存器進行存取。
本發明另提供一種撤銷一第一密碼之方法,其中第一密碼用以存取一微處理器之一特別模組暫存器,方法包括藉由微處理器從微處理器之複數保險絲,將一第一既定值載入至微處理器之一輊制暫存器中;寫入一第二既定值至控制暫存器,其中第二既定值係在第一既定值載入至控制暫存器之後,經由一電腦系統之系統軟體寫入控制暫存器,並且電腦系統包括微處理器;當一指令提供由一密鑰對第一既定值與特別模組暫存器之位址用以執行加密函數運算後所產生之一第一密碼時,微處理器禁止指令對特別模組暫存器進行存取;以及當指令係提供由密鑰對第二既定值與特別模組暫存器之位址用以執行加密函數運算後所產生之一第二密碼時,微處理器致能指令對特別模組暫存器進行存取。
本發明另提供一種保密方法包括製造一微處理器之一第一版本,微處理器之第一版本之複數保險絲具有一第一數值,其中微處理器之第一版本用以禁止一指令對一特別模組暫存器進行存取,除非指令提供一第一密碼,而第一密碼係使用製造於微處理器之第一版本內部的一密鑰對第一數值與特別模組暫存器之位址以執行一加密函數運算所產生的;使用密鑰對第一數值與特別模組暫存器之位址執行一加密函數運算,用以產生第一密碼,並且提供第一密碼給微處理器之第一版本的使用者;以及製造微處理器之一第二版本,微處理器之第二版本中之保險絲具有一第二數值,其中微處理器之第二版本用以禁止指令對特別模組暫存器進行存取,除非指令提供一第二密碼,而第二密碼係使用密鑰對第二數值與特別模組暫存器之位址執行一加密函數運算所產生的。
本發明亦提供一種保密方法適用於一微處理器,提供具有選擇性存取微處理器之一特別模組暫存器之方法,方法包括接收要求對特別模組暫存器進行存取之一指令,其中特別模組暫存器具有被指令所指定之一位址,並且指令用以指定一密碼;執行所指定之特別模組暫存器之位址與讀取自微處理器之複數保險絲之一數值的一函數運算,用以產生一第一結果;使用製造於微處理器的內部之一密鑰對密碼進行解密,用以產生一第二結果;比較第一結果以及第二結果;以及當第一結果與第二結果匹配,允許指令對特別模組暫存器進行存取,否則拒絕指令對特別模組暫存器進行。
以下將詳細討論本發明各種實施例之製造及使用方法。然而值得注意的是,本發明所提供之許多可行的發明概念可實施在各種特定範圍中。這些特定實施例僅用於舉例說明本發明之製造及使用方法,但非用於限定本發明之範圍。
案號為12/781,087之美國專利案(CNTR.2293)描述了一種微處理器製造廠商可限制特別模組暫存器之存取的方法,上述限定存取之方法係藉由要求使用者從製造廠商獲得一密碼後,使用該密碼對特定模式暫存器(MSR)進行存取。微處理器包括一製造識別符(manufacturing ID),製造識別符獨一無二地定義了處理器部份(processor part)。另外,微處理器具有製造於微處理器內部之一密鑰,其中密鑰係無法由上述微處理器的外部所觀視並且僅由微處理器之製造廠商所知曉。製造廠商使用密鑰對製造識別符進行加密,以便產生該密碼。因此,密碼對於特定處理器而言皆為獨有的。在執行RDMSR/WRMSR指令來對特別模組暫存器進行存取之前,一使用者程式將從製造廠商接收之密碼寫入微處理器之一暫存器。當處理器接收(encounter)RDMSR/WRMSR指令時,伴隨處理器之一加密引擎使用密鑰對密碼進行解碼,用以產生一明文結果(plaintext result)。若明文包括製造識別符,處理器則完成RDMSR/WRMSR指令,即允許RDMSR/WRMSR指令對特定模組暫存器進行存取;否則,處理器則終止(abort)RDMSR/WRMSR指令,即拒絕RDMSR/WRMSR指令對特定模組暫存器進行存取。
案號為12/781,087之美國專利案(CNTR.2293)描述了一種更嚴謹之方法用以限制特別模組暫存器進行存取,案號為12/781,087之美國專利案之方法係對製造識別符以及特別模組暫存器位址皆進行加密,用以限制特別模組暫存器之存取動作,使得密碼不止對於特定處理器係獨有的,同時對於特定被存取之特別模組暫存器也是獨有的。微處理器係根據RDMSR/WRMSR指令以及明文是否同時包括製造識別符以及特別模組暫存器位址,選擇性地允許存取動作進行。
本案發明人揭露一種保密方法提供給微處理器製造廠商,其保密方法係藉由提供每一特別模組暫存器不同之總體(global)密碼,用以限制特別模組暫存器進行存取。因此,本發明之實施例係由製造廠商對特別模組暫存器位址進行加密,使得特定被存取之特別模組暫存器皆具有獨有之密碼。因為獨有之製造識別符不隨著特別模組暫存器位址進行加密,故其密碼對於微處理器不是獨有的,因此制定一個對於特別模組暫存器係獨有,但對於製造廠商同類型之微處理器係統一(global)制定之密碼。
進一步而言,總體之特定的特別模組暫存器密碼(the global MSR-specific password)可為公眾所知。因此,本發明提供撤銷總體之特定的特別模組暫存器密碼的方法。更詳細來說,微處理器包括一個或多個保險絲,在微處理器之製程中可選擇性地燒斷保險絲。製造廠商對保險絲之數值與特別模組暫存器之號碼執行加密函數(例如,互斥或XOR)運算,用以產生總體之特定的特別模組暫存器密碼提供給使用者。當使用者企圖使用密碼對特別模組暫存器進行存取時,微處理器讀取保險絲之數值,接著對保險絲數值以及使用者定義之特別模組暫存器位址執行加密函數運算,並且在比較使用者提供之密碼以及加密的結果後,根據其比較結果選擇性地允許特別模組暫存器進行存取。在這種方式下,製造廠商將不同數值燒入後續製成微處理器之保險絲中,用以進行撤銷後續製成之微處理器中的總體之特定的特別模組暫存器密碼。由於使用嚴謹的加密方式(例如,128-位元之先進加密標準AES),使得惡意攻擊者雖然擁有舊的密碼以及舊的保險絲數值,只要保險絲數值改變了一個單一位元,惡意攻擊者即無法獲得密鑰。因此,惡意攻擊者無法預測新的密碼。例如,當代工廠(Original equipment manufacturer,OEM)希望新版本微處理器之總體之特定的特別模組暫存器密碼係不為眾人所知的時候,即當代工廠想要為自己微處理器的版本撤銷密碼的時候,特別模組暫存器具有撤銷總體之特定的特別模組暫存器密碼的能力。
在一實施例中,當微處理器重置時,微處理器將保險絲之數值重新載入一特性控制暫存器,接著當微處理器對保險絲數值以及特別模組暫存器位址之函數運算執行加密運算時,微處理器從特性控制暫存器讀取保險絲之數值。值得注意的是,特性控制暫存器亦可由微處理器所執行的軟體寫入,此本實施例提供一撤銷總體之特定的特別模組暫存器密碼之替代方法,即藉由系統軟體(例如基本輸出輸入系統(BIOS))來撤銷總體之特定的特別模組暫存器密碼。
參考第1圖,第1圖所示為本發明之一微處理器100的方塊圖。微處理器100相似於案號為12/781,087之美國專利案(CNTR.2293)中第1圖所示之微處理器100,而美國專利案案號12/781,087(CNTR.2293)中第1圖所示之微處理器100亦相似於案號為7,321,910之美國專利案(CNTR.2224)中第6圖所示之微處理器600,上述所提及之專利申請案之全文特此以引用之方式併入本文中,且構成說明書的一部分,因此微處理器100之部分說明請參考上述之專利申請案,為簡短說明不再贅述。而本發明第1圖所示之微處理器100亦包括一特性控制暫存器(Feature control register,FCR)142耦接至執行單元632。微處理器100亦包括保險絲(fuses)144耦接至特性控制暫存器142。在一實施例中,保險絲144係耦接至執行單元632,並且在重置時,微處理器100將隨著保險絲144之數值而修正的初始值(default values)填入(populates)特性控制暫存器142中。在一實施例中,初始值(default values)為對保險絲144之數值進行布林互斥或(XOR)運算的結果。在一實施例中,微碼唯讀記憶體604讀取保險絲144之數值,並且將隨著保險絲144之數值而修正的初始值填入特性控制暫存器142。本發明實施例之藉由保險絲144填充特性控制暫存器142的方法,如同案號為5,889,679之美國專利案(CNTR.1328)以及案號為12/609,207之美國專利申請案(CNTR.2490)所述,為簡短說明,在此不再贅述。微處理器100之製造廠商可在製造階段選擇性地燒斷保險絲144。
部份特別模組暫存器132具有密碼保護,而另一部份之特別模組暫存器132不具有密碼保護。在一實施例中,微碼唯讀記憶體(read only memory,ROM)604用以儲存受密碼保護之特別模組暫存器132的一清單,其中為了判斷是否限制存取,即要求有效(valid)的密碼,微碼會衡量何時執行RDMSR/WRMSR指令。在一實施例中,每一特別模組暫存器132具有數種不同密碼保護類型中之一種。以下敘述一種根據一總體之特定的特別模組暫存器密碼來保護特定的特別模組暫存器132的類型,總體之特定的特別模組暫存器密碼係由特別模組暫存器132之號碼以及保險絲144之數值產生的,而上述特別模組暫存器132之號碼以及保險絲144之數值與微處理器100之特定版本相關。上述類型係保護特定之特別模組暫存器(MSR-specific),但不是特定之元件(part-specific),或者至少不是具有相同的保險絲數值之一組元件(a set of parts)的特定元件(part-specific)。如本發明所述,根據第一組保險絲144的數值進行燒斷之第一組(或者第一版本的)微處理器所具有的特定之特別模組暫存器密碼,將不同於根據第二組保險絲144的數值進行燒之第二組(或者第二版本的)微處理器所具有的特定之特別模組暫存器密碼。此類型除了案號為12/781,087之美國專利申請案(CNTR.2293)中所述的類型外,其中特別模組暫存器132係根據一特定之部分密碼所保護,並且此特定之部分密碼使用微處理器100之製造識別符所產生的,或者同時使用製造識別符以及特別模組暫存器位址206所產生的。此外,每一特別模組暫存器132可基於其是否為讀取保護(Protected for Read,例如特別模組暫存器132係用來讀出微處理器100的微碼)、寫入保護(Protected for Write,例如控制匯流排之時序或協定、或是控制微處理器100之不同特性或省電特徵的內部控制暫存器)或者讀取以及寫入同時保護(Protected for both Read and Write)使用上述類型分類。
製造識別符134係製造於微處理器100硬體內部的序號,其係每一微處理器100所獨有(unique)的一個序號。因為製造識別符134為序號,因此相對地製造識別符134為可預料的號碼(predictable number)。在一實施例中,製造識別符134係燒入在微處理器100之保險絲144的50位元號碼,並且可供使用者可觀視(visible)。在一實施例中,使用者可透過RDMSR指令來讀取製造識別符134。
密鑰136係製造於微處理器硬體內的一機密值(secret value),其無法從外部觀視到。密鑰136僅由製造廠商之少部分被授權的員工所知曉。密鑰136可由微處理器100之微碼被內部地讀取,但是無法從微處理器100外部被讀出。因此,密鑰136無法由執行於微處理器100之任何外部程式所獲得。然而,只有知道密鑰136的某一人員洩漏它,或是有人分析微處理器100之實體的(physical)矽及/或金屬層並發現製造於微處理器100之硬體內的密鑰136之位置及排列,才可獲知密鑰136。在一實施例中,對相同製造廠商之微處理器的全部的版本(all instances)而言,密鑰136係相同的。在一實施例中,密鑰136為128位元。
參考第4圖,第4圖係根據本發明一實施例所述之流程圖,第4圖包括第4A圖以及第4B圖。第4A圖包括步驟401至步驟406以及步驟492,第4B圖包括步驟408到步驟432。第4A圖之步驟402到步驟406所示之步驟亦描述於第2圖的方塊圖中,而第4B圖之步驟408到步驟432所示之許多步驟亦描述於第3圖的方塊圖中。因此,第2圖以及第3圖之描述亦伴隨著第4圖所示。流程開始於步驟401。
在步驟401中,微處理器100之製造廠商製造一組微處理器100之第一版本。第一版本包括一第一保險絲數值204,而第一保險絲數值204用以(如第2圖所示)選擇性地燒斷第1圖所示之保險絲144。接著,流程進入步驟402。
在步驟402中,使用者想要對微處理器100的特別模組暫存器132進行讀取/寫入,因此使用者提供特別模組暫存器132的號碼或者位址給微處理器100之製造廠商,並且要求一特別模組暫存器密碼138。使用者亦提供微處理器100之版本給製造廠商,使得製造廠商可查明當初燒入使用者之微處理器100的版本內之保險絲數值204。接著,流程進入步驟404。
在步驟404中,製造廠商使用密鑰136與函數運算208對步驟402所接收之特別模組暫存器132之號碼與第一保險絲數值204(其中第一保險絲數值204係關於第一版本(即使用者之版本)進行加密,用以藉由一加密函數202產生第一特別模組暫存器密碼138,如第2圖所示。在一實施例中,函數運算208為一布林互斥或(XOR)函數運算,雖然本實施例揭露如上,但本發明亦可包括其它函數之設計。舉例而言,在其它實施例中,係採用序連串接之方式(concatenation)。在一實施例中,製造廠商所使用的加密函數202為先進加密標準(AES)加密,然而其他實施例亦可以被考慮,例如數據加密標準(Data Encryption Standard,DES)。值得注意的是,先進加密標準加密中的明文(plain text)輸入以及密文(cypher text)輸出具有相同數量的位元數。因此,本發明之實施例中之特別模組暫存器位址206以及第一保險絲數值204相對於特別模組暫存器密碼138具有較少之位元數時,製造廠商在對特別模組暫存器位址206以及第一保險絲數值204函數運算208執行先進加密標準加密之前,會將特別模組暫存器位址206以及第一保險絲數值204,填滿到與特別模組暫存器密碼138具有相同的位元數,再用以產生特別模組暫存器密碼138。使用密鑰136對特別模組暫存器位址206以及第一保險絲數值204進行使用一嚴謹加密演算的加密,例如先進加密標準(AES),其提供密碼保護之特別模組暫存器132極高(extremely high)的安全性,因為對於任何不知道密鑰136的人而言,就算他知道加密的演算法,或者知道特別模組暫存器位址206以及第一保險絲數值204,統計上根本不可能使用正確的計算方法去計算特別模組暫存器密碼138。在一實施例中,密鑰136為128位元而所產生的特別模組暫存器密碼138亦為128位元,然而具有其他位元數之密鑰的實施例亦可以被考慮。再者,即使某人知道製造廠商所提供的特別模組暫存器位址206、第一保險絲數值204以及所產生之特別模組暫存器密碼138,統計上根本不可能使用正確的計算方法來找出密鑰136。在一實施例中,製造廠商使用被寫入的程式來對特別模組暫存器位址206以及第一保險絲數值204經過函數運算208所產生的數值進行加密,用以產生特別模組暫存器密碼138。該程式可執行於任何系統中,其中該系統包括能執行前述之加密演算法的處理器。雖然不必要,該系統亦可包括根據本發明所述之微處理器100,其包括用以執行上述加密演算法之密碼編譯單元617。接著,流程進入步驟406。
在步驟406中,製造廠商提供在步驟404中產生之特別模組暫存器密碼138給使用者,例如經由電話、電子郵件、網站、檔案傳送協定(FTP)、紙郵件等方式。值得注意的是,雖然特別模組暫存器密碼138係針對特定之特別模組暫存器(MSR-specific),而不是針對特定之元件(part-specific)。因此,若特別模組暫存器密碼138成為大眾所知的資訊,製造廠商有提供特別模組暫存器密碼138的使用者以外之其他人,亦可在一組微處理器100之第一版本上,使用特別模組暫存器密碼138來存取特別模組暫存器132。當這種方式為一般使用者以及廠商所採用,如上述討論,可能出現使用者以及廠商希望撤銷經由特別模組暫存器密碼138對特定之特別模組暫存器132進行存取的情況。使用者以及廠商可以整合(incorporating)保險絲144的數值,用以撤銷後來版本的微處理器100經由第一特別模組暫存器密碼138對特定之特別模組暫存器132進行存取,如本發明所述。接著,流程進入步驟408。
在步驟408中,使用者程式會將來自製造廠商於步驟406中所接收之特別模組暫存器密碼138載入至微處理器100的暫存器中。在一實施例中,該暫存器為x86資料流SIMD延伸(Streaming SIMD extensions,SSE)編程環境中的XMM7暫存器。在另一實施例中,使用者程式會將特別模組暫存器密碼138載入至系統記憶體中,並將一指標載入微處理器100之通用暫存器中,其中該指標用以指示儲存特別模組暫存器密碼138之記憶體位置。接著,流程進入步驟412。
在步驟412中,使用者程式執行RDMSR指令或WRMSR指令,其會指定欲被讀取或是寫入的特定特別模組暫存器132。接著,流程進入步驟414。
在步驟414中,處理器對RDMSR指令或WRMSR指令進行解碼,並轉移控制至在第1圖中微碼唯讀記憶體604的微碼常式。微碼會決定該特定特別模組暫存器132是否存在於受密碼保護之特別模組暫存器的清單中。在一實施例中,架構性之(architected)特別模組暫存器並未包含在受密碼保護之特別模組暫存器的清單內。在一實施例中,藉由燒斷微處理器內的保險絲可更改受密碼保護之特別模組暫存器的清單,如2009年2月24日申請且案號為第12/391,781號之美國專利申請案所描述。另外,微碼更決定與特別模組暫存器132所關係之密碼保護的類型,即不論被存取的特別模組暫存器132是否已具有特定之特別模組暫存器密碼、一特定之部分密碼或者同時特定於特別模組暫存器密碼以及部分之密碼。接著,流程進行到步驟416。
在步驟416中,假如由RDMSR指令或WRMSR指令所指定的特別模組暫存器132並未出現在受密碼保護之特別模組暫存器的清單中,則流程進入步驟432。否則,接著,流程進行到步驟423。
在步驟423中,假如特別模組暫存器132要求一特定之特別模組暫存器密碼(MSR-specific password),接著,流程進行到步驟425。否則,流程進入步驟424。
在步驟425中,假如特別模組暫存器132要求一特定之元件密碼(part-specific password),接著,流程進行到步驟427。否則,流程進入步驟429。
在步驟424中,微碼唯讀記憶體604致使密碼編譯單元617使用密鑰136對製造識別符134進行加密。接著,流程進入步驟431。
在步驟427中,微碼唯讀記憶體604致使密碼編譯單元617使用密鑰136對製造識別符134以及特別模組暫存器位址206進行加密。接著,流程進入步驟431。
在步驟429中,微碼唯讀記憶體604致使密碼編譯單元617使用密鑰136對特別模組暫存器位址206與以及讀取自特性控制暫存器142之保險絲數值的之函數運算208進行加密,如第3圖所示。接著,流程進入步驟431。
在步驟431中,整數單元610適當地比較使用者提供之特別模組暫存器密碼138與在步驟429、步驟424或者步驟427(如第3圖所示)產生之加密結果。如第3圖所示,整數單元610會產生有效的指標(valid indicator)302,其會指示已加密的特別模組暫存器132之號碼以及讀取自特性控制暫存器142之保險絲數值之函數運算208(即指示函數運算208的加密結果)是否匹配特別模組暫存器密碼138。接著,流程進行到步驟426。
在步驟426中,假如在步驟431的比較中,特別模組暫存器位址206之已加密的函數運算208以及讀取自特性控制暫存器142之保險絲數值(即函數運算208的加密結果)確實匹配特別模組暫存器密碼138,接著,流程進入步驟432。否則,流程進入步驟428。
在步驟428中,微處理器100會中止(abort)RDMSR/WRMSR指令。在一實施例中,微處理器100會產生一般保護的錯誤(general protection fault)。接著,流程進入步驟492。
在步驟432,處理器會執行使用者程序所要求之RDMSR指令或WRMSR指令。接著,流程進入步驟492。
在步驟492中,微處理器100之製造廠商製造一組微處理器100之第二版本。微處理器100之第二版本包括一第二保險絲數值,第二保險絲數值用以選擇性地燒入第1圖所示之保險絲144,其不同於在步驟401所產生且燒入一組微處理器100之第一版本的第一保險絲數值。因此,使用者無法使用第一密碼,在微處理器100之第二版本上存取特別模組暫存器132。因此,對微處理器100之第二版本而言,第一密碼已被撤銷了。本發明所述之嚴謹的加密方式(例如使用先進加密標準進行加密),對於不知道密鑰136的人而言,就算知道了在步驟404中產生之第一個特別模組暫存器密碼138、特別模組暫存器位址206、第一保險絲數值以及加密演算法,統計上也根本不可能使用正確的計算方法計算出第二個特別模組暫存器密碼138,因目前必須使用微處理器100之第二版本方能存取特別模組暫存器132。另外,就算某人知道特別模組暫存器132密碼、第一個保險絲數值、第一個特別模組暫存器密碼138,第二個保險絲數值以及第二個特別模組暫存器密碼138,統計上根本也不可能使用正確的計算方法計算出密鑰136。流程結束於步驟492。
在另一實施例中,為了決定使用者提供之特別模組暫存器密碼138是否有效,微處理器100並不對特別模組暫存器位址206與讀取自特性控制暫存器142之保險絲數值經函數運算處理後之數值進行加密,再將所產生的加密結果與使用者提供之特別模組暫存器密碼138進行比較,而是對使用者提供之特別模組暫存器密碼138進行解密,並且比較其解密結果與特別模組暫存器位址206以及讀取自特性控制暫存器142之保險絲數值在經過函數運算208處理後之數值。此實施例如第6圖所繪示。
請參考第5圖,第5圖為本發明所揭露之另一實施例的說明操作流程圖。第5圖描述一種除了第4圖步驟492所示之第一方式外的第二方式,第二方式可不經由燒入一個新的數值到第1圖之保險絲144而撤銷特定之特別模組暫存器密碼。流程開始於步驟592。
在步驟592中,微處理器100之製造廠商提供一新釋出的基本輸入輸出系統(BIOS)。新釋出的基本輸入輸出系統(BIOS)包括程式碼,程式碼包括執行於系統啟動時間(system boot time)以及寫入一數值至第1圖之特性控制暫存器142,上述數值包括用以燒入第1圖之保險絲144之第二保險絲數值,其第二保險絲數值不同於在第4圖之步驟401中使用的第一保險絲數值。雖然保險絲144本身不會物理性改變(physically altered),但由於微處理器100根據第4圖之步驟429對讀取自特性控制暫存器142之保險絲數值進行加密操作,因此基本輸出輸入系統可藉由編寫特性控制暫存器142有效地重新配置微處理器100為第二版本,使得使用者不再能使用於第4圖之步驟404中產生的第一特別模組暫存器密碼去存取特定之特別模組暫存器。換言之,在具有新釋放之基本輸出輸入系統之系統中的微處理器100中,基本輸出輸入系統(BIOS)能有效的撤銷第一特定之特別模組暫存器密碼。值得注意的是,特性控制暫存器142亦可根據任何本發明所述之特別模組暫存器密碼類型而具有密碼保護。流程結束於步驟592。
雖然本發明以及本發明之物件、特徵以及優勢已詳述如上,其他不違反本發明之精神以及範圍之實施例亦包涵於本發明之中。例如,保險絲144的數值亦可使用關於第4圖中之步驟424以及427之特定之元件密碼的數值。雖然需要撤銷特定之元件密碼的部份不相似,其可簡化微處理器100之設計以達成目的,即微碼的設計。另外,雖然本發明之實施例已詳述如上,其中使用128位元之密鑰(encryption keys),然而本發明之其他實施例亦包括其他大小之密鑰。並且雖然本發明之實施例已詳述如上,其中使用先進加密標準(AES)進行加密,然而本發明之其他實施例亦可包括其他之加密標準。
本發明的不同實施例已於本文敘述,但本領域具有通常知識者應能瞭解這些實施例僅作為範例,而非限定於此。本領域具有通常知識者可在不脫離本發明之精神的情況下,對形式與細節上做不同的變化。例如,軟體可致能本發明實施例所述的裝置與方法之功能、組建(fabrication)、塑造(modeling)、模擬、描述(description)、以及/或測試,亦可透過一般程式語言(C、C++)、硬體描述語言(Hardware Description Languages,HDL)(包括Verilog HDL、VHDL等等)、或其他可利用的程式語言來完成。此軟體可配置在任何已知的電腦可使用媒介,例如磁帶、半導體、磁碟,或是光碟(例如CD-ROM、DVD-ROM等等)、網際網路、有線、無線、或其他通訊媒介的傳輸方式之中。本發明所述之裝置與方法實施例可被包括於半導體智慧財產核心,例如微處理器核心(以HDL來實現),並轉換成積體電路產品的硬體。此外,本發明所述之裝置與方法透過硬體與軟體的結合來實現。因此,本發明不應侷限於所揭露之實施例,而是依後附之申請專利範圍與等效實施所界定。特別是,本發明可實施在使用於一般用途電腦中的微處理器裝置內。最後,本發明雖以較佳實施例揭露如上,然其並非用以限定本發明的範圍,任何所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可做些許的更動與潤飾,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。
100...微處理器
132...特別模組暫存器
134...製造識別符
136...密鑰
138...特別模組暫存器密碼
142...特性控制暫存器
144...保險絲
601...提取邏輯單元
602...轉譯邏輯單元
603...轉譯器
604...微碼唯讀記憶體
605...暫存器
606...位址
607...載入
608...執行
609、611、613、615...微指令佇列
610...整數單元
612...浮點單元
614...多媒體擴展(MultiMedia eXensions,MMX)單元
616...SSE單元
617...密碼編譯單元
618...儲存
619...寫回
620...載入匯流排
621...閒置信號
622...儲存匯流排
623...匯流排
624...EFLAGS暫存器
625...X位元
626...中斷邏輯單元
627...微指令
628...MSR暫存器
629...E位元
630...FCR暫存器
631...D位元
632...執行單元
202...加密函數
204...保險絲數值
206...特別模組暫存器位址
208...函數運算
302...有效的指標
第1圖為根據本發明所揭露之微處理器的方塊圖;
第2圖為描述於本發明第4圖之步驟402的操作方塊圖;
第3圖為描述於本發明第4圖之步驟432的操作方塊圖;
第4圖為根據本發明之一種實施例的操作流程圖;
第5圖為根據本發明之另一種實施例的操作流程圖;以及
第6圖為本發明相似於第3圖之另一實施例的操作方塊圖。
100...微處理器
132...特別模組暫存器
134...製造識別符
136...密鑰
138...特別模組暫存器密碼
142...特性控制暫存器
144...保險絲
601...提取邏輯單元
602...轉譯邏輯單元
603...轉譯器
604...微碼唯讀記憶體
605...暫存器
606...位址
607...載入
608...執行
609、611、613、615...微指令佇列
610...整數單元
612...浮點單元
614...多媒體擴展(MultiMedia eXensions,MMX)單元
616...SSE單元
617...密碼編譯單元
618...儲存
619...寫回
620...載入匯流排
621...閒置信號
622...儲存匯流排
623...匯流排
624...EFLAGS暫存器
625...X位元
626...中斷邏輯單元
627...微指令
628...MSR暫存器
629...E位元
630...FCR暫存器
631...D位元
632...執行單元

Claims (16)

  1. 一種微處理器,包括:一密鑰,製造於上述微處理器的內部;一特別模組暫存器,具有可由上述微處理器執行之一指令所指定之一位址;複數保險絲;以及一微碼,用以:接收要求對上述特別模組暫存器進行存取之上述指令,其中上述指令用以指定上述特別模組暫存器之位址;利用所指定之上述特別模組暫存器之位址與讀取自上述保險絲之一數值執行一函數運算,用以產生一第一結果;使用上述密鑰對上述第一結果進行加密,用以產生一第二結果;比較上述第二結果與上述指令所指定之一密碼;以及若上述第二結果與上述密碼匹配,允許上述指令對上述特別模組暫存器進行存取,否則拒絕上述指令對上述特別模組暫存器進行存取。
  2. 如申請專利範圍第1項所述之微處理器,其中所指定之上述特別模組暫存器之位址與讀取自上述保險絲之數值的函數運算,包括所指定之上述特別模組暫存器之位址與讀取自上述保險絲之數值的布林互斥或運算。
  3. 如申請專利範圍第1項所述之微處理器,其中所 指定之上述特別模組暫存器之位址與讀取自上述保險絲之數值的函數運算,包括所指定之上述特別模組暫存器之位址與讀取自上述保險絲之上述數值的一序連串接(concatenation)。
  4. 如申請專利範圍第1項所述之微處理器,其中上述密鑰係無法由上述微處理器的外部所觀視的。
  5. 如申請專利範圍第1項所述之微處理器,其中上述微處理器根據一先進加密標準(AES),使用上述密鑰對上述第一結果進行加密,用以產生上述第二結果。
  6. 一種保密方法,適用於一微處理器,用以提供具選擇性之存取至上述微處理器之一特別模組暫存器,上述方法包括:接收要求對上述特別模組暫存器進行存取之一指令,其中上述指令用以指定上述特別模組暫存器之位址;利用上述微處理器所指定之上述特別模組暫存器之位址以及讀取自上述處理器之複數保險絲之一數值執行一函數運算,用以產生一第一結果;使用製造於上述微處理器的內部之一密鑰對上述第一結果進行加密,用以產生一第二結果;比較上述第二結果與上述指令所指定之一密碼;以及若上述第二結果與上述密碼匹配,允許上述指令對上述特別模組暫存器進行存取,否則拒絕上述指令對上述特別模組暫存器進行存取。
  7. 如申請專利範圍第6項所述之保密方法,其中所指定之上述特別模組暫存器之位址與讀取自上述保險絲之 數值的函數運算,包括所指定之上述特別模組暫存器之位址與讀取自上述保險絲之數值的布林互斥或運算。
  8. 如申請專利範圍第6項所述之保密方法,其中所指定之上述特別模組暫存器之位址與讀取自上述保險絲之數值的上述函數運算,包括所指定之上述特別模組暫存器之位址與讀取自上述保險絲之上述數值的一序連串接。
  9. 如申請專利範圍第6項所述之保密方法,其中上述密鑰係無法由上述微處理器的外部所觀視的。
  10. 如申請專利範圍第6項所述之保密方法,其中上述加密步驟包括使用先進加密標準進行加密。
  11. 一種保密方法,包括:製造一微處理器之一第一版本,上述微處理器之上述第一版本之複數保險絲具有一第一數值,其中上述微處理器之上述第一版本用以禁止一指令對一特別模組暫存器進行存取,除非上述指令提供一第一密碼,而上述第一密碼係使用製造於上述微處理器之上述第一版本內部的一密鑰對上述第一數值與上述特別模組暫存器之位址進行一函數運算所產生的;使用上述密鑰對上述第一數值與上述特別模組暫存器之位址以執行函數運算,用以產生上述第一密碼,並且提供上述第一密碼給上述微處理器之上述第一版本的使用者;以及製造上述微處理器之一第二版本,上述微處理器之第二版本中之上述保險絲具有一第二數值,其中上述微處理器之上述第二版本用以禁止(prohibit)上述指令對上述特別 模組暫存器進行存取,除非上述指令提供一第二密碼,而上述第二密碼係使用上述密鑰對上述第二數值與上述特別模組暫存器之位址以執行一函數運算所產生的。
  12. 如申請專利範圍第11項所述之保密方法,其中上述函數運算包括執行在上述第一/第二數值與上述特別模組暫存器之位址的一布林互斥或(XOR)運算。
  13. 如申請專利範圍第11項所述之保密方法,其中上述函數運算包括執行在上述第一/第二數值與上述特別模組暫存器之位址的一序連串接(concatenation)。
  14. 如申請專利範圍第11項所述之保密方法,其中上述密鑰係無法由上述微處理器的外部所觀視的。
  15. 如申請專利範圍第11項所述之保密方法,其中上述加密步驟係使用一先進加密標準(AES)。
  16. 一種保密方法,適用於一微處理器,提供具有選擇性存取上述微處理器之一特別模組暫存器之方法,上述方法包括:接收要求對上述特別模組暫存器進行存取之一指令,其中上述特別模組暫存器具有被上述指令所指定之一位址,並且上述指令用以指定一密碼;對所指定之上述特別模組暫存器之位址與讀取自上述微處理器之複數保險絲之一數值執行一函數運算,用以產生一第一結果;使用製造於上述微處理器的內部之一密鑰對上述密碼進行解密,用以產生一第二結果;比較上述第一結果以及上述第二結果;以及 當上述第一結果與上述第二結果匹配,允許上述指令對上述特別模組暫存器進行存取,否則拒絕上述指令對上述特別模組暫存器進行。
TW100129500A 2010-08-20 2011-08-18 微處理器、保密方法以及撤銷第一密碼之方法 TWI474257B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US37525010P 2010-08-20 2010-08-20
US13/034,062 US8590038B2 (en) 2010-08-20 2011-02-24 Revokeable MSR password protection

Publications (2)

Publication Number Publication Date
TW201209710A TW201209710A (en) 2012-03-01
TWI474257B true TWI474257B (zh) 2015-02-21

Family

ID=45595001

Family Applications (2)

Application Number Title Priority Date Filing Date
TW103131854A TWI522914B (zh) 2010-08-20 2011-08-18 微處理器以及撤銷第一密碼之方法
TW100129500A TWI474257B (zh) 2010-08-20 2011-08-18 微處理器、保密方法以及撤銷第一密碼之方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
TW103131854A TWI522914B (zh) 2010-08-20 2011-08-18 微處理器以及撤銷第一密碼之方法

Country Status (3)

Country Link
US (2) US8590038B2 (zh)
CN (1) CN102306253B (zh)
TW (2) TWI522914B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9614666B2 (en) * 2014-12-23 2017-04-04 Intel Corporation Encryption interface
US20210026950A1 (en) * 2016-03-07 2021-01-28 Crowdstrike, Inc. Hypervisor-based redirection of system calls and interrupt-based task offloading
CN107040534B (zh) * 2017-04-05 2019-09-03 南京优尼科软件有限公司 一种通信加密方法及系统
US20190007212A1 (en) * 2017-06-30 2019-01-03 Intel Corporation Secure unlock systems for locked devices
CN108428187A (zh) * 2017-12-21 2018-08-21 中国平安人寿保险股份有限公司 地址匹配方法、装置及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6154818A (en) * 1997-11-20 2000-11-28 Advanced Micro Devices, Inc. System and method of controlling access to privilege partitioned address space for a model specific register file
US7043616B1 (en) * 2002-04-18 2006-05-09 Advanced Micro Devices, Inc. Method of controlling access to model specific registers of a microprocessor
US20090119748A1 (en) * 2007-08-30 2009-05-07 Jiewen Yao System management mode isolation in firmware
TW200949687A (en) * 2008-05-24 2009-12-01 Via Tech Inc Termination of secure execution mode in a microprocessor providing for execution of secure code
US20100064117A1 (en) * 2008-09-09 2010-03-11 Via Technologies, Inc. Apparatus and method for updating set of limited access model specific registers in a microprocessor

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5889679A (en) 1997-07-15 1999-03-30 Integrated Device Technology, Inc. Fuse array control for smart function enable
US6345347B1 (en) * 1999-09-27 2002-02-05 International Business Machines Corporation Address protection using a hardware-defined application key
US7076663B2 (en) * 2001-11-06 2006-07-11 International Business Machines Corporation Integrated system security method
US7840803B2 (en) * 2002-04-16 2010-11-23 Massachusetts Institute Of Technology Authentication of integrated circuits
US7321957B2 (en) * 2003-10-24 2008-01-22 Intel Corporation Debugging a trusted component in a system
EP2096568A1 (en) * 2008-02-27 2009-09-02 Koninklijke KPN N.V. Mobile data handling device
US7663957B2 (en) * 2008-05-27 2010-02-16 Via Technologies, Inc. Microprocessor with program-accessible re-writable non-volatile state embodied in blowable fuses of the microprocessor

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6154818A (en) * 1997-11-20 2000-11-28 Advanced Micro Devices, Inc. System and method of controlling access to privilege partitioned address space for a model specific register file
US7043616B1 (en) * 2002-04-18 2006-05-09 Advanced Micro Devices, Inc. Method of controlling access to model specific registers of a microprocessor
US20090119748A1 (en) * 2007-08-30 2009-05-07 Jiewen Yao System management mode isolation in firmware
TW200949687A (en) * 2008-05-24 2009-12-01 Via Tech Inc Termination of secure execution mode in a microprocessor providing for execution of secure code
US20100064117A1 (en) * 2008-09-09 2010-03-11 Via Technologies, Inc. Apparatus and method for updating set of limited access model specific registers in a microprocessor
TW201011643A (en) * 2008-09-09 2010-03-16 Via Tech Inc Apparatus and method for updating set of limited access model specific registers in a microprocessor

Also Published As

Publication number Publication date
TW201209710A (en) 2012-03-01
US8793785B2 (en) 2014-07-29
TW201502979A (zh) 2015-01-16
US20140059358A1 (en) 2014-02-27
US8590038B2 (en) 2013-11-19
US20120047369A1 (en) 2012-02-23
TWI522914B (zh) 2016-02-21
CN102306253A (zh) 2012-01-04
CN102306253B (zh) 2016-01-20

Similar Documents

Publication Publication Date Title
US11664994B2 (en) Secure unlock systems for locked devices
US9842212B2 (en) System and method for a renewable secure boot
US9390291B2 (en) Secure key derivation and cryptography logic for integrated circuits
US20170288869A1 (en) Secure key storage using physically unclonable functions
JP5607546B2 (ja) 保護された動作モードの間にシステムアクセスを制御するための方法および装置
US20070162964A1 (en) Embedded system insuring security and integrity, and method of increasing security thereof
TW200937249A (en) Handling of secure storage key in always on domain
TWI474257B (zh) 微處理器、保密方法以及撤銷第一密碼之方法
US8316243B2 (en) Apparatus and method for generating unpredictable processor-unique serial number for use as an encryption key
TWI405125B (zh) 一種具有特別模組暫存器之微處理器以及用以保護特別模組暫存器之存取的存取保護方法
EP3788536A1 (en) Cryptographic key distribution
US8341419B2 (en) Apparatus and method for limiting access to model specific registers in a microprocessor
Mohammad et al. Required policies and properties of the security engine of an SoC
Kumar et al. A novel holistic security framework for in-field firmware updates
TWI428824B (zh) 微處理器及限制存取的方法
JP5798007B2 (ja) マイクロコンピュータおよびデータ処理装置
US12099593B2 (en) Authentication of integrated circuits
TWI497344B (zh) 微處理器及產生不可預測之鑰的方法
Millar et al. Memory Protection with Dynamic Authentication Trees
TW202240591A (zh) 唯讀記憶體(rom)安全性
CN117099105A (zh) 只读存储器(rom)安全