TW200919196A - Memory protection for embedded controllers - Google Patents

Memory protection for embedded controllers Download PDF

Info

Publication number
TW200919196A
TW200919196A TW097133504A TW97133504A TW200919196A TW 200919196 A TW200919196 A TW 200919196A TW 097133504 A TW097133504 A TW 097133504A TW 97133504 A TW97133504 A TW 97133504A TW 200919196 A TW200919196 A TW 200919196A
Authority
TW
Taiwan
Prior art keywords
memory
access
address
logic
initialization
Prior art date
Application number
TW097133504A
Other languages
English (en)
Other versions
TWI402682B (zh
Inventor
Alan D Berenbaum
Raphael Weiss
Original Assignee
Standard Microsyst Smc
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 Standard Microsyst Smc filed Critical Standard Microsyst Smc
Publication of TW200919196A publication Critical patent/TW200919196A/zh
Application granted granted Critical
Publication of TWI402682B publication Critical patent/TWI402682B/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/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • G06F12/1441Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a range

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Description

200919196 九、發明說明: 【發明所屬之技術領域】 啦明一般涉及計算設備的領域..B ^ ΒΛ , /5,,. 貝域’尤其疋涉及保護記憶 體’例如在被包括在電腦系 或程式指令。 式扑八 、死令的系統单晶片中的資料及/ 【先前技術】 體系統包括中央處理單元(cpu),即,主處理器 ::處理器’以及用於執行系統的輔助功能例如初始
化、輸入/輸出(1/〇)、瞢王f每 A 重设功能的一個或更多嚴入 式控制器。例人式控制器可為系統單晶片(soc)的 一部分,系統單晶片也可包括耗合㈣人式控制器的各種 附加的7C件,例如記憶體等。這樣㈣統可能例如在系統 CPU的啟動之前的系統初始化期間易受惡意用戶或外部代 理(agent)的未授權的存取或篡改。 在阻止這樣的未授權的存取的一些方法中,"秘密 (secret)”被儲存在例如s〇c記憶體中的安全位置中,並由 控制器執行的軟體來使用’根據該秘密的授權或使用該秘 密本身來啟用功能,例如以驗證s〇c所處於的系統是經授 權的且沒有通過篡改而被更改,或啟用或禁止系統的某個 方面例如元件或功能,及其他應用。在大多數費用敏感的 設計中,秘密僅僅被保存在SoC記憶體中,並且假定攻擊 者沒有足夠的動機或不夠聰明來以未授權的方式讀取該秘 密。具有較低費用敏感性的方法經常使用強大的加密技 術,包括硬體TPM(可信任平臺模組)的使用。 134199.doc 200919196 然而,通過簡單的隱匿來保密可能不足以抵禦足夠專門 的攻擊,同時基於硬體的解決方案,例如τρΜ的使用可能 太昂貴。而且,加密的強大的演算法可能需要比廉價的嵌 入式控制器可提供的計算能力更多的計算能力。因此,期 望用於為嵌入式控制器保護資料的改進的系統和方法。 在比車乂了現有技術與這裏描述的本發明的實施方式之 後’與這樣的現有技術有關的其他相應的問題對本領域中 具有通常知識者將變得明顯。 【發明内容】 …用於為系統中的嵌入式控制器保護資料的系統和 方法的各種實施方式。系統,例如電腦系統可包括主處理 器或主機處理器,以及你丨如a 及例如包括在系統單晶片(SoC)中的 礙入式處理器和記恒體,立由4日 u體其中根據一個實施方式,資料可 由嵌入式控制器使用央,点,丨丄+ < 例如在系統的主處理器或主機處 理器的啟動之兩執行安全極徒 ,. 文铜作例如系統驗證、登錄、功 能或元件啟動。 首先’回應於開機曹呀「p n D、 π (POR),可啟用對記憶體的存 取。該啟用可通過各籀古土丄& 谷種方法中的任何-個來完成。如上所 述’在一個實施方式中,糸 糸、洗可包括肷入式控制器,例如 嵌入式微控制器,其中抻制 ,. 工子5己如體的存取包括通過嵌入 式&制或系統的其他元件)來控制對記憶體的存取。 對§己憶體的存取可通 τ ^ 心保濩邏輯和遮罩邏輯(masking 】〇g1C)來控制或保護,邏輯 的例子在下面被描述。在一個 實施方式中,通過嵌入式 個 式控制器允許對記憶體的存取可包 134199.doc 200919196 括向相合到記憶體的遮罩邏輯提供第_控制值,例 罩邏輯插在嵌入式控制器和記憶體之間。遮罩邏輯可;作 來使用第-控制值和從記憶體讀取的資料執行邏輯操作, $中邏輯操作維持從記憶體讀取的資料不變。換句話說, 第控制值可為不遮蔽從記憶體讀取的資料的”傳遞”值。 如上指出的’在一些實施方式中’嵌入式控制器和記情 括在系統單晶片(SGC)中。例如,嵌q控制器可 為電腦糸統的週邊設偌如^也丨$ 迓備控制益,例如鍵盤控制器。在各種 實施方式中,記情I#可· w β + 。己r意體τ以疋或包括_個或更多下列項:隨 機存取記憶體(RAM、、# π _揮♦性§己憶體例如唯讀記情於 (_卜或暫存器’及其他類型的記憶體。因此,峨可 用對口己隐體,例如對儲存在記憶體中的秘密資料的存 取C疋應;主思,在其他實施方式中,可使用任何褒置或 元件來執行這裏所描述的功能。 第一資料例如秘密資料可# f 山貝针τ接考回應於上面的啟用而從記 憶體:被讀取’其中第—資料可用於例如在主處理器的啟 動^對系統執4丁 t全操作。第一資料例如秘密資料可為 可由嵌入式控制器使用來對系統執行安全操作的任何類型 的資料。例如,在-些實施方式中,這樣的系統的廠商可 能希望驗證電腦系統的其他元件作為soc的引導順序的一 部分是被廢商授權的。可使用例如密碼或密錄交換的方 法,這需要將某個秘密的密輪或密碼儲存在soc上,即, 第-資料可包括密錄或密碼。因此,例如,在一些實施方 式中’(秘密)資料可包括為了驗證系統元件而用在密碼或 134199.doc 200919196 掛餘父換中的密錄或密碼,或用於系統的限制登錄的密 例如其中用戶可能需要提供匹配的密碼來開始主處理 f的啟動,因此嵌入式控制器可針對密碼提示用戶,並且 當用戶提供正確的密碼時開始主系統引導過程。當然,在 2他實施方式中’第—資料可用在和用於所期望的任何安 全操作1’第一資料可為期望保護的任何類型的資料。 可禁止對記憶體的存取,其中在禁止之後記憶體是不可 存取的。例如,在一個實施方式中,禁止存取可包括向遮 罩邏輯提供第二控制值,其中遮罩邏輯可操作來使用第二 控制值和從記憶體讀取的資料執行邏輯操作,且其中邏輯 刼作遮蔽從記憶體讀取的資料。如上所討論的,在一些實 施方式中,系統包括後入式控制器,其中遮罩邏輯插在礙 入式控制器和記橋辦々 用對記,_存:=:在一些實施方式中,啟 、過肷入式控制器來啟用對記憶體 ::::::中讀取第一資料_—記 人式_來禁止對=:::憶體的存取™ 统㈣施方式中,喪入式控制器使用第一資料來對系 統執订一個岑爭夕6 λ 碼,以及禁止對記夕=的操/可包括對系統執行初始化代 之後來執行。“的存取可在對系統執行初始化代碼 P〇二::憶體的存取可在另-_之前保持禁止, 意,以上=對把憶體的存取被啟用,如上所述。還應注 田述的方式限制對秘密資料的存取可通過,例 134199.doc 200919196 如阻止任何内部或外部媒介存取秘密資料,來防止未授權 2存取,例如篡改或繞過系統初始化過程,其中秘密資料 對系統的成功初始化可能是需要的。 因此,在-些實施方式中,在這裏可稱為讀_保護位元 的控制靖使它包括資料的多位元)一旦被設定㈣,就 可阻止對第-資料例如秘密的任何存取,第一資料可儲存 在晶片上記憶體的一部分中或暫存器中。控制值(例如位 W可由舰電路清零,並可在任何時候由軟體進行設定。 然而-旦被設定,除了晶片的完整的電源週期,即,另一 p〇R之外’就較佳地沒有其他機制來使它再次清零。在嵌 入式控制器初始化代碼有任何機會被(例如’由主機)修改 之,、’作為在嵌入式控制器上運行的第一代碼的嵌入式控 制器初始化代碼可使用秘密並接著通過設定讀-保護位元 來鎖定它。 然而應注意’上面方法的實施方式可用於實現更複雜的 安全過程。例^在一些系統中,第一資料例如秘密可保 存在與系統的初始化代碼相同的記憶體的區域中,例如在 晶片被製造之後秘密被編程到非揮發性記憶體中的系統 中,且晶片製造商不知道有多少記憶體將包含秘密。此 外,廠商可能希望保護初始化代碼本身不被攻擊者存取, 因為反轉地設計代碼可能給攻擊者關於如何獲得秘密的暗 不。在這樣的系、统中,可能需要修改上面的方法和機制。 例如,需要處理的主要問題是,寫讀_保護位元的代碼 可在讀-保護區域内,所以嵌入式控制器可能不能執行在 134199.doc -10- 200919196 設定元讀-俾譜以 已經生效了。因曰7之後的指令,因為上面的保護方案 式其中讀-伴使用讀_保護-啟用位元(或等效形 …在本實施方式中,讀-保護位元較佳:=入。 ^體^人’而相反可被設^,只要讀保護·啟用位元^ :且,:控制器執行被保護區域外的任 二: :另:設定,則讀-保護位元就不能被清零,除非經 實=式下:描述的是上面用於保護初始化代碼的方法的 的指定區域:些實施方式特別旨在保護系統中記憶體 °° 5並利用額外的控制位元,例如讀-保護_啟用 值(例如位7L或有相等值的項目)來控制讀 定。換句話說,在下面的實施方式中,記憶體的^的: =储存犯圍指定的系統的初始化代碼可被保護。然而應 H斤描述的實施方式僅為示例性的,以及所描述的方 法不限於使用任何特定的技術或㈣,也不限於任 的記憶體或記憶體内容。 如上所討論的,在一些實施方式中,系統可包括叙 控制器。而且’在—些實施方式中,第-資料可包括系統 的初始化代碼’其中初始化代碼具有位址範圍。啟用對記 憶體的存取可包括啟用對記憶體内的位址範圍的存取,L 及禁止對記憶體的存取可包括禁止對記憶體的位址範圍的 存取。因此’在-些實施方式中’初始化代碼可為上面描 述的秘密資料(其也可包括一個或更多密鑰及/或密碼 134199.doc -11 - 200919196 在一個實施方式中,上面的方法可進一步包括確定由嵌 入式控制器產生的位址是否在初始化位址範圍之外,以及 回應於確定由嵌入式控制器產生的位址在初始化位址範圍 之外而啟用記憶體的保護。注意,啟用保護在禁止存取之 前執行,其中記憶體在啟用保護之後和禁止存取之前是可 存取的,且其中禁止存取對所產生的在初始化位址範圍内 位址執行,其中所述禁止在所述啟用保護之後執行。 換句話說,啟用保護實際上不建立記憶體的保護,而是 更確切地配置系統,以便在特定的條件下建立記憶體的保 護(見上面被鎖的門類比)。因此所述禁止在產生了處於初 始化位址範圍之外的至少一個位址之後阻止嵌入式控制器 存取初始化位址範圍。換句話說,實際上觸發對位址範圍 中記憶體存取的禁止的條件是當嵌入式處理器在離開位址 範圍之後再次進入位址範圍時。注意,雖然對在位址範圍 内的記憶體的存取被禁止’但是對於所產生的在初始化位 址範圍之外的位址啟用對記憶體的存取。 在一個實施方式中’讀保護啟用值可在啟用記憶體的保 護之前在記憶體元件中被設定’其中設定讀保護啟用值准 S午啟用記憶體的保護。換句話說,可設定準許對地址範圍 的隨後保護的啟用(但還不是現行的保護)的值,例如位 元。注意’該讀保護啟用值可由嵌入式控制器設定,而嵌 入式控制器仍然操作在位址範圍内。因此該值可用於建立 或啟用上面的保護啟用,這本身將系統置於用於觸發記憶 體的現行保護的條件中。 134199.doc -12- 200919196 以稍微不同的方式描述,纟—個實 :=二控制值(見上面的禁止)可包括設定第= 口上面提到的讀-保護-啟用位元,以啟用提供第二 控制值,接著,在設定第三控制值之後,確定嵌入式控: 2試存取在位址範圍之外的記憶體,並產生^式控制 裔y式存取在位址範圍之外的記憶體的指示。接著可回應 於第三控制值和該指示來禁止對記憶體的位址範圍的存 取。 /
=另一方式敍述,第二控制值和指示可用於控制記憶體 内指定的位址範圍是否和何時被保護。更具體地,當p〇R 時,可通過换入式控制器啟用存取,例如以便在系統的主 處理态或CPU的啟動之前,嵌入式控制器可執行初始化代 碼來檢查或檢驗系統安全。嵌入式控制器可接著執行在指 定位址範圍中的(初始化代碼)程式指令,例如可執行一些 或所有初始化代碼。嵌入式控制器可接著設定第二控制 值,例如讀-保護-啟用位元(或功能上等效的形式),以啟 用第二控制值的使用,例如以啟用讀_保護位元(或功能上 等效的形式)的設定’但是應注意,這麼做本質上不保護 記憶體,即,設定第三控制值/讀-保護-啟用位元不禁止對 S己憶體的存取’而是更確切地使系統準備或啟用這樣的禁 止。然後,當嵌入式控制器執行指定範圍之外的指令時, 此事件與第三控制值/讀-保護-啟用位元結合可使第二控制 值,例如讀-保護位元被設定,禁止了對記憶體内指定位 址範圍的存取。注意’較佳地,對指定位址範圍之外的記 134199.doc 13 200919196 憶體位址的存取沒有被禁止。例如,在較佳實施方式中, 如果被執行的指令在位址範圍之外,則 供第二控制值。下面是所描 遮罩 电沾Α τ見上面的s己憶體保護方 案的-個貫施方式的示例性詳細的系統的實施方式。 一啟用對S己憶體的存取,就 的記憶體的讀取,例如,在指定位址範圍内 浐八^ 知疋位址範圍内的初始化代碼 式7可’例如由嵌入式控制器讀取和執行 圍=器1操作來確定程式指令何時在指定位元元元址範 ==其中產生指示。更具體地,比較器可操作來 接收嵌入式控制器程式指 兀兀址和初始化代碼的 疋位址範圍,並產生關於位址在指定範圍内或外的指 制值可允許系統隨後’例如當比較器確 疋位址在範圍之外時,保護記憶體。 此w PQR例如啟動或重設時,可啟用對記憶體的存 化代it:許嵌入式控制器執行來自指定位址範圍的初始 ^ 7例如以執行各種安全操作中的任何-個。接 著,回應於讀-保鳟糾田从_、丄 _ 文用位几被設定和遇到具有在指定範 二2位7^址的程式指令’可禁止對指定範圍内的記 Γ豆、子取’雖然仍然可獲得對具有在該範圍之外的位元 7址的指令的存取。對指定㈣的存取僅可由另-廳 啟用。 =機制的自使用中’嵌入式控制器當在初始化塊内 =時可設定讀_保護·啟用位元。㈣在初始化塊範圍内 的下—指今可Α μ、 马到仞始化塊範圍之外的位置的轉移。一旦 134199.doc -14- 200919196 —j /轉移就可鎖住或保護初始化塊。注意,在沒有設 “-保#•啟用位元的情況下,敌人式控制器將不能在執 丁初始化塊内的指令時設定初始化塊保護,但在執行初始 I之外的L令a夺必須這麼做,這可為人侵者打開掌握嵌 ·★'工_!器的控制並危害記憶體的被保護内容的機會的視 窗。 除錯中斷 / 女可°、識到的’為了維持系統安全,應不允許外部除錯 、1力能來存取内部秘密,例如由上所述的第-資料,因為二 擊者可靶使用除錯機制來竊取它。因此,在一個實施方式 ^中為了阻止除錯攻擊,所有的除錯存取(例如,聯合測 4仃動組(JTAG)埠、串列除錯埠或來自主機的匯流排存 取)可在POR之後初始化成不活動的狀態。接著可僅在秘密 被保遵之後,例如通過設定讀_保護位力(例如,通過將# 制值設定為遮蔽值)來啟用除錯存取。注意,可由嵌入^ 1,控制器通過編程寫人配置暫存器而明確地啟用存取,^ 讀-保護位元本身可用於啟用除錯存取。在後面的情況 當禁止讀-保護(讀-保護的初始狀態)時_斷所有的除 錯存取,以及當啟用讀-保護時啟用除錯存取(例如,通過 這裏描述的-個過程)。因此,本方法可進一步包括回應 於舰而禁止除錯存取,並回應於通過嵌入式控制器禁止 對記憶體的該存取而啟用除錯存取。 因此,這裏描述的本發明的各種實施方式可有助於系統 内的嵌入式微控制器的資料及/或程式指令的保護。'、、、 -J5- 134199.doc 200919196 【實施方式】 通過引用的合併 下面的參考資料在此通過引用被全部併入,如在這裏充 分和完整闡述的: 年 8月 31 日中請的名為"c〇nfigUrabie Signature for Seating Data or Program Code" > 序列號為 1 l/848,854的美國專利申請。 f
介V〇 了用於保護系統,例如電腦系統内的資料或程式指 的系、,'先和方法的各種實施方式,其中系統包括主處理器 或中央處理器,即,主機處理器以及具有記憶體的微控制 益,其中微控制器在主處理器的啟動之前執行一個或更多 安全操作。 注意,所使用的任何標題僅為了組織的目的而不是意指 用於限制或解釋說明書或中請專利範圍。此外,應注意, 在整個巾請中所使㈣"可以”的用詞含有許可的意義(即, 有可能,能夠)而不是強制的意義(即,必須)。術語”包括,, 及其衍生詞意指”包括但不限於,,。術語1合的"意指"直接 或間接連接的"。 而且,如這裏使用的,”指令隼„ 7杲可指一個或更多指令。 更具體地,在一些實施方式中,”指 7 了彳Θ知式碼、軟體 及/或以代碼形式實現的功能,該代踩7k AI M Z代碼可由控制器、微處 理器及/或適合於執行這些指令的 ^ J目疋義邏輯電路來執 行。在一些實施方式中,這些指今 7 了包括設備驅動器、和 制軟體及/或機器代碼。 Λ 134199.doc 200919196 處=裏使用的"控制器,,指任何類型的處理器,例如中央 早几(CPU)、微處理器、微控制器、 或微控制器等。 飞瓜入式控制器 概述 驗 蛾這裏描述的本發明的各種實施方式可提供用於維持或 也系統安全的貧料及/或程式指令的保護。 圖1-示例性電腦系統 圖1是示例性電腦系統82的高層結構圖,該系統被配置 成實現本發明的—個實施方式,特別地通過在“初始化 期間’例如在系統CPU的啟動之前,限制對資料的存取來 ,4身料(和/或程式指令),例如,,秘密,’資料或僅僅是"秘 '、、圖1的系統包括電腦系統,例如個人電腦(pC),雖然 在其他實施方式中,這裏描述的技術和系統可如期望的以 任何其他系統實現。 如圖1所不,電腦系統82包括根據本發明的實施方式被 保遵的記憶體104。在較佳實施方式巾,電腦系統82包括 主處理器或中央處理器,即,主機處理器,以及一個或更 多微控制H ’例如每個微控制器都在各自的系統單晶片 (SoC)中,例如用於管理或控制鍵盤和主處理器之間的通 信的鍵盤控制器。記憶體較佳地包括在具有嵌入式控制器 的SoC上’且在各種實施方式中可如期望地為非揮發性記 憶體例如ROM(唯讀記憶體),或揮發性記憶體例如11人]^或 暫存器。下面參考圖2、4和5提供了關於系統的示例性實 施方式的進一步的細節。 134199.doc -17- 200919196 佳實施方式令’秘密可被儲存在Μ(片上系統)的 °“、體中’以使在soc中嵌入式控制器上運行的軟體可存 、、吏用秘冑例如,根據該秘密的授權或使用該秘密本 身來啟動功能,驗證SgC所在的系統是經授權的幻支有通 過基改被更改,或啟用或禁止系統的某個方面,及其它用 途。對儲存秘密的要求可包括:υ秘密必須不㈣漏給在 嵌入式控制器之外的任何實體;2)如果在嵌入式控制器之 外的任何實體可能讀取或修改s〇c中的記憶體是可能的, 對秘密的存取應被限制’使得甚至嵌入式控制器也不能讀 取它;以及3)不能使用專用(且因此是昂貴的)硬體技術, 例如OTP(一次可編程的)記憶體或熔絲,只有標準邏輯和 記憶體技術是可利用的。因A,電腦系統82可包括可操作 來管理和保護對Soc内記憶體的存取的系統。 在一個實施方式中,系統可包括第一記憶體和第二記憶 體,第一 S己憶體儲存資料,例如秘密資料,例如用於檢查 或檢驗系統的安全性的密鑰或密碼,第二記憶體可操作來 儲存阻止對第一記憶體的存取的第一值,其中第二記憶體 包括輸入,該輸入可操作來接收指示在系統内產生的開機 重设(POR)的信號。系統還可包括耦合到第一記憶體和第 二記憶體的第一邏輯,其中第一邏輯可操作來根據儲存在 第二記憶體中的值而控制對第一記憶體内的資料的存取。 回應於所產生的開機重設,第二記憶體可操作來儲存第二 值,其中第一邏輯回應於儲存在第二記憶體中的第二值而 啟用對第一記憶體的存取。如上所述,在一些實施方式 134199.doc 200919196 中’系統包括耦合到第一記憶體的嵌入式控制器,其中控 制對資料的存取包括通過嵌入式控制器來控制對資料的存 取。 在一個實施方式中,第一邏輯可操作來確定由嵌入式控 制器產生的位址是否在初始化位址範圍内。第一邏輯可操 作來對於由嵌入式控制器產生的處於初始化位址範圍内的 位址啟用對第-記憶體的存取,#中,在後人式控制器產 生處於邳始化位址範圍之外的至少一個位址之後,第一邏 輯可操作來對於由嵌人式控制器產生的處於初始化位址範 圍内的隨後的位址禁止對第—記憶體的存取。例如,在一 個實施方式中’第一邏輯可包括比較器,#中比較器具有 可操作來接收由嵌人式控制器產生的位址的第—輸入,以 及其中比較器可操作來將由傲入式控制器產生的位址與初 始化位址範圍相比較。
=稍微不同的方式陳述,在一個實施方式中,系統可包 :,入式控制斋;耦合到嵌入式控制器的第一記憶體,第 y記憶體為該嵌人式控制器儲存初始化代瑪及/或數據; 陰第。己隐體,第二記憶體可操作來儲存啟用對第一記 =的存取的阻止的第一值,其中第二記憶體包括輸入, ::2可操作來接收指示在系統内產生的開機重設的信 5羅《/、:還可包括耦合到第一記憶體和第二記憶體的第-^而和Γ丨中第—邏輯可操作來根據儲存在第二記憶體中的 ㈣第,體内的資料的存取。回應於所產生的 開機重第二記憶體可操作來健存第二值,㈣一邏 134199.doc -19· 200919196 輯響應於儲存在第二記憶體中的第二值而啟用對第一記慎 體的存取。第一邏輯可操作來確定由嵌入式控制器產生的 位址是否處於初始化位址範圍内’並且對於由嵌入式控制 器產生的處於初始化位址範圍内的位址啟用對第一記憶體 的存取。在開機重設之後和在嵌入式控制器產生處於初始 化位址範圍之外的至少一個位址之後,第一邏輯可操作來 對由嵌入式控制器產生的處於初始化位址範圍内的隨後的 位址禁止對第一記憶體的存取。在一個實施方式中,第一 邏輯可操作來對於所產生的處於初始化位址範圍之外的位 址啟用對記憶體的存取。 換句話說,當p0R時,系統可操作來例如通過嵌入式控 制啟用對記憶體的存取,准許嵌入式控制器執行來自記憶 體的初始化代碼,其中初始化代碼處於指定的位址範圍 内。系統可接著配置成當嵌入式處理器呈現(present)在位 址範圍之外的位址時禁止對記憶體的存取。當嵌入式控制 器呈現在地址範圍之外的地址時,例如,當嵌入式控制器 離開該地址範圍時,就中斷對該位址範圍内的記憶體的内 容的存取,雖然仍然允許對該範圍之外的記憶體的存取。 作為類比,考慮在具有包含檔(秘密資料)的房間(記憶 體)的房屋内接通電流的用戶,其中當電流被接通時’通 向房間的門自動打開(P 〇 R啟用對記憶體的存取)。用戶進 入房間並閱讀文件(嵌人式控制器存取記憶體和執行初始 化代碼),亚按下門上的鎖定按鈕(配置系統以當嵌入式處 理益呈現在位址範圍之外的位址時禁止對記憶體的存 134199.doc -20- 200919196 取),这樣還沒有將用戶鎖在外面,因為用戶仍然在房間 内(肷入式處理器仍然存取在位址範圍内的記憶體)。接 著,用戶離開房間並關閉門,從而鎖上門並阻止用戶再次 進入房間(嵌入式處理器呈現在位址範圍之外的位址,且 對位址範圍内的記憶體的内容的存取被中斷,雖然仍然允 泎對β亥範圍之外的記憶體的存取)^用戶在關機並再次開 機之岫不旎再次進入房間(當另一 p〇R時啟用對位址範圍内 的記憶體的存取)。
因此,對指定位址範圍的存取可被限制為從立即在p〇R 之後到當嵌入式處理器呈現在指定位址範圍之外的位址時 的時期,從而出現未經授權的存取’例如篡改或繞過 (circumvention)系統的初始化過程。 現在描述這樣的系統的具體的實施方式。 圖2 -示例性系統的高層結構圖 圖2是根據一個實施方式的示例性系統的高層結構圖。 更具體地,圖2示出實現本發明的實施方式的示例性系統 的主要元件。 如圖2所示,系統可包括耦合到記憶體2〇4的嵌入式控制 器202,並可通過I/O設備2〇7與外部系統或元件通信, 設備207可通過一個或更多匯流排例如所示的處理器資料 匯流排和處理器位址來耦合到嵌入式控制器2〇2。在較佳 實施方式中,遮罩邏輯(mask logic)2〇3可插在嵌入式控制 器202和記憶體204之間,例如,嵌入式控制器和處理器資 料匯流排之間。此外’在一些實施方式中,保護邏輯2 = 134199.doc 200919196 也可插在寂入式控制器逝和記憶體204之間Hu 式控制器和處理器位址匯流排之間。遮罩邏輯可操作來 據提供給遮罩邏輯203的控制值遮罩或傳遽( i VPass through) • 從記憶體204讀取的資料,如將在下面更詳細插述的 , 護邏輯201可操作來如期望的根據系統的具體狀況,^呆 根據開機重設(POR)、記憶體存取等來確定控制值,例如 在下面更詳細解釋的。 將 , 如圖2所示,在較佳實施方式中,系統可以或包㈣ 、、统早晶片(SGC)2GG,所以記憶體、遮罩邏輯,和保護邏輯 201對嵌入式控制器202來說可以是本地的。 圖3 -用於保護系統中的資料的方法 a圖3是用於保護系統,例如電腦中的資料的方法的高層 =圖,該系統可包括主處理器或主機處理器,以及例二 = 中的嵌入式處理器和記憶體,其中根據—個實 £㈣由嵌八式控制器使用來t "之前,資 I 用來執仃文全性操作,例如李絲私 證、登錄等。在各種實 u系統驗 按與所示出的不同的順序-h件可 如期望的執行額外的 ^也可 作。 〇方法7"件°如所示,該方法可如下操 在302中,回應於開 取。該啟用可經由各#1),可啟用對記憶體的存 述和如圖2所示,在 ^的任何一個來實現。如上所 控制器例如嵌入式微控制式卜系統可包括嵌入式 二制盗,其中控制對記憶體的存取包 134199.doc -22· 200919196 括通過嵌入式控制器(或系統的其他元件)來控制對記憶體 的存取。 同樣如圖2所示,在一些實施方式中,對記憶體1〇4的存 取可由保護邏輯201和遮罩203控制或保護,下面描述其例 子。 在一個實施方式中,通過嵌入式控制器啟用對記憶體的 存取可包括向耦合到記憶體的遮罩邏輯提供第一控制值, 該遮罩邏輯例如插在嵌入式控制器和記憶體之間。遮罩邏 輯可操作來使用第一控制值和從記憶體讀取的資料執行邏 輯操作,其中邏輯操作維持從記憶體讀取的資料不變。換 說第控制值可為不遮蔽從記憶體讀取的資料的I, 傳遞值。例如,在一些實施方式中,向遮罩邏輯提供第 一控制值可包括接收P0R並在回應中輸出初始控制值的正 反器(flip-flop)、反轉初始控制值以產生第一控制值的反 相器,以及該反相器向遮罩邏輯提供第一控制值。遮罩邏 輯可以為或包括"及"閘,其中第一控制值是"及"閘的傳遞 值,且其中遮罩邏輯可操作來使第一控制值和從記憶體讀 取的貝料進行邏輯乘,維持從記憶體讀取的資料不變。 圖4疋用於控制對記憶體丨〇4的存取的示例性介面的結構 圖’但是應注意,在其他實施方式中,不同的裝置或元件 可用於實現這裏描述的功能。 々圖4所不,在本實施方式中,11及''閘403(例如遮罩邏 2 )可插在δ己憶體i 〇4和嵌入式控制器之間,更具體地,在 肷入式控制器和嵌入式控制器的讀匯流排(其被標註為例 I34199.doc -23- 200919196 如圖2的處理器資料匯流排)之間,由此後入式控 一 體中的讀取。”及”閘4°3可操作來接收兩個輸入仃 :憶體104的資料和控制值,例如來自可用於梅 自記憶體ΠΜ的資料的介面的布林控制值,例如―:蔽來 如所示’記憶體1G4儲存資料,例如秘密405,嵌人式^ 要例如在主處理器的啟動之前執行用於系統:安 =二,所示,及閘可操作來在每次操作中遮蔽 (得遞)貝枓的η位元,即,及間开6 夂閘可包括多個及閘。更且體 ^在每次讀週期中通過η個及閑可遮蔽來自記憶體: 料的η位元。因此,及閘403可包括多個及閉。 如可看到的,在本實施方式中,介面可通過正反器402 和反相器4〇7產生控制值,在這種情況下正反器術是設定 /重設⑽)正反器,其可稱為讀.保護正反器,其中正u 可操作來接收開機重設(職)例如信號或位元,以使正反 器重設’以及接收寫入-1(或等效形式)值,例如信號或位 凡’以使正反器設定。根據哪個信號最近被設定為有效 (咖正反器可按下面的方式輸出布林值,例如位元。 因此,當開機重設(P0R)時,正反器可被重設,從而在正 反器的輸出Q呈現"〇”;以及當接收寫入]值,例如”丨”(例 如,或其他非零值)時,正反器可在輸出q呈現"厂。 注意,在所示實施方式中,來自Q的輸出位元在被(作為 控制值)提供給及閘彻之前被反轉。因此,p〇R導致在及 閘403的T的控制值’以及在正反器的寫入」設定有效導 致在及閘403的"1"的控制值。及閘4()3可接著根據控制值 134199.doc -24- 200919196 傳遞或遮蔽從記憶體讀取的資料。例如,回應於p〇R,呈 現給及閘403的控制值是,在與從記憶體1()4讀取的 位元例如秘密405進行邏輯乘時維持被讀取的位元不變, 因而啟用對記憶體1 04的存.取 現給及閘403的控制值是"〇”, 相反’回應於寫入_丨,呈 〇"在與從記憶體1〇4讀取的 位元,例如秘密405進行邏輯乘時導致全零,因而禁止對 記憶體104的存取。換句話說,從記憶體1〇4讀取的任何資 料轉變為零’ SJ而使通過嵌人式控制器進行的讀取操作變 得不成功。當然,等效的功能可通過邏輯元件和操作的不 同組合來獲得,上面僅僅是這樣的介面的—個示例性的實 施方式。 如上所指出的’在一些實施方式中,嵌入式控制器和記 憶體可包括在系統單晶片(SgC)中。例如,嵌人式控制器 可為電腦系統的週邊設備控制器,例如鍵盤控制器。在各 種實施方式中,記憶體可以為或包括一個或更多下列項: 隨機存取記憶體(RAM)、非揮發性記憶體例如唯讀記憶體 (ROM) ’或暫存器,及其它類型的記憶體。 因此,在正反器4〇2處的POR可啟用對記憶體1〇4,例如 對儲存在記憶體1 〇4中的秘密資料405的存取。 。4中,回應於302的啟用,第一資料例如秘密資料 ΤΙ可從記憶體中讀取,其中第一資料可用來例如在主處 =益的啟動之前執行用於系統的安全性操作。如上所述, 料,例如秘密資料405可為可由嵌入式控制器使用 〜用於系統的安全性操作的任何類型的資料。例如, 134199.doc -25- 200919196 在-些實施方式中,這樣的系統的廠商可能希望,作為 Soc的引導順序的一部分,驗證電腦系統的其他元件是被 其授權的。可使用例如密喝或密鑰交換的方法,這需要將 某個秘密的密餘或密碼館存在soc上,即,第一資料可包 括密鑰或密碼。因此,例如,在—些實施方式中、,(秘: 資料405可包括為了驗證系統元件而用在密碼或密餘交換 中的密鑰或密碼’或用於限制對系統的登錄的密碼,例如 其中用戶可能被要求提供匹配的密碼來開始主處理器的啟 動,並且因此嵌入式控制器可針對密碼提示用戶,並且當 用戶提供正確的密碼時開始主系統引導過程。當然,在: 他實施方式中,第-資料可用在和用於所期望的任何安^ 操作’即,第一資料可為期望保護的任何類型的資料。 在306中,可禁止對記憶體的存取,其中在禁止之後纪 憶體是不可存取的。例如,在-個實施方式中,禁止存取 可包括向遮罩邏輯提供第二控制值,其中遮罩邏輯可操作 來使用第二控制值和從記憶體讀取的資料執行邏輯操作, 且其令邏輯操作遮蔽從記憶體讀取的資料。如上所討論 ^在-些實施方式中’系統包括嵌入式控制器,其中遮 罩料插在喪入式控制器和記憶體之間。因此,在一 施方式中’啟用對記憶體的存取包括通過嵌人式控制;^ 啟用對記憶體的存取’從記憶體讀取第一資料包括^式 控制器從記憶體中讀取第一資料 取勺枯、…; 及禁止對記憶體的存 取包括通過肷入式控制器來禁止對記憶體的存取。 如上所述,遮罩邏輯可以為或包括例如插在嵌入式控制 134 丨 99.doc -26- 200919196
器和記憶體之間的及閘。在一個實施方式中’為了禁止對 記憶體的存取,第二控制值可為用於該及閘的遮蔽值,其 中該遮罩邏輯可操作來使第二控制值和從記憶體讀取的資 料進行邏輯乘,以遮蔽從記憶體讀取的資料。在一個實施 方式中,向遮罩邏輯提供第一控制值可包括正反器(例 如3 02中的正反器)接收設定值(set ”1此)並在回應中輸 出初始控制值’反相器反轉該初始控制值以產生第二控制 值,以及該反相器向遮罩邏輯提供該第二控制值。 再·人回到圖4的實例系統,一旦秘密資料4〇5(即,第一 資料)被從記憶體104中讀取,則寫入-U或等效形式)位元 (」列如可被寫到正反器402,從而將正反器的狀態設 ^為1其可接著在Q被輸出,被反相器407反轉(為 )並被提供給及間4G3,其後,如上所述,從記憶體 1〇4讀取的任何資料可轉變為零,因而禁止存取例如來自 5己fe體10 4的讀取資料。 在一個實施方式中,撫 甲耿入式控制器使用第一資料來執行 用於系統的-個或更多安全性操作可包括對系統執行初始 /、’、、 $止對5己憶體的存取可包括嵌人式控制器在對 糸統執行初始化代碼之後將設定值寫到正反器中。 注意,對記憶體1〇4的存取可在另—p〇R之前保持被禁 ,主广可再次使對記憶體的存取被啟用,如上所述。還應 /思以上面描述的方式限制料— 飞民制對秘密資料405的存取可例 如通過阻止任何内部或 權的存取,例如篡改^ 存取秘密資料來防止未授 Α 3、%過系統初始化過程,其中秘密資 134199.doc -27- 200919196 料對系統的成功初始化可以是必需的。 因此’在圖4的系統中,正反器(結合反相器407)可提供 讀-保護位元(或等效形式),一旦該讀-保護位元被啟用其 就遮蔽秘密資料。換句話說,正反器可在p〇R時被重設為 〇狀態,這允許秘密在EC資料匯流排上是可讀的。將1寫到 讀-保護正反器就使正反器設定為1狀態。因為正反器的重 設輸入僅僅連接到P0R電路,所以只要施加了電源它將不 返回到0狀態。在1狀態,正反器可遮蔽秘密的所有位元, 所以它總是讀為〇。因為沒有其他方法來讀取秘密,因此 一旦讀-保護位元被設定,就可隱藏秘密。
因此,在一些實施方式中,在這裏可稱為讀-保護位元 的控制值(即使它包括資料的多個位元)一旦被設定,就可 阻止對第一資料,例如秘密的任何存取,第一資料可儲存 在曰曰片上§己憶體的一部分中或暫存器中。控制值(例如位 兀)可由POR電路清零,並可在任何時候由軟體進行設定。 d而除了晶片的完整的電源週期(power cycle),即,另 一POR之外,一旦被設定,就較佳地沒有其他機制來使它 再_人清零。在嵌入式控制器初始化代碼有任何機會被(例 如,由主機)修改之前,作為在故入式控制器上運行的第 代碼的嵌入式控制器初始化代碼可使用秘密並接著通過 設定讀保護位元來鎖定它。 保護初始化代石馬 然而應注意, 安全性過程。例 上面方法的實施方式可用於實現更複雜的 如,在一些系統中,第一資料例如秘密可 134199.doc -28- 200919196 保存在記憶體的相同區域’作為系統的初始化代碼,其中 的系統例如在晶片被製造之後秘密被編程到非揮發性記憶 體中的系統中’且晶片製造商不知道有多少記憶體將包含 秘密。此外,廠商可能希望初始化代碼本身被保護不被攻 擊者存取’因為反轉地(reverse)設計代碼可能給攻擊者關 於如何獲得秘密的暗示。在這樣的系統中,可能需要修改 上面的方法和機制。 例如,需要處理的主要問題是,待寫入讀-保護位元的 代碼可在頃保護區域内’所以嵌入式控制器可能不能執行 在設定讀保護的指令之後的指令,因為上面的保護方案已 經生效了。因此可使用讀-保護_啟用位元(或等效形式), 其中項-保護-啟用位元(或等效形式)可以是軟體可寫的。 注意,在本實施方式中,讀-保護位元較佳地不是直接由 軟體可寫的,而相反可被設定,只要讀_保護-啟用位元被 设定且嵌入式控制器執行被保護區域外的任何代碼。如同 圖3的方法—樣,一旦被設定’讀_保護位元就不能被清 零,除非通過另一 P〇R。 因此’下面所描述的是用於保護初始化代碼的上面方法 的實轭方式,即,這些實施方式特別旨在保護系統中記憶 體的指定區域,並利用額外的控制位元,例如讀_保護—啟 用值(例如位兀或有相等值的項)來控制讀-保護位元的設 疋換句活說,在下面的實施方式中,記憶體的内容,例 如由儲存關指定的系統的初始化代碼可被保護。然而應 ^所把述的實施方式意為僅是示例性的,以及所描述 134199.doc -29- 200919196 的方法不限於使用任何特定的技術或元件,也不限於任何 特定的記憶體或記憶體内容。 如上所討論的’在一些實施方式中,系統可包括嵌入式 控制器。而且,在一些實施方式中,第一資料可包括系統 的初始化代碼,其中初始化代碼具有位址範圍。啟用對記 憶體的存取可包括啟用對記憶體内的位址範圍的存取,以 及禁止對記憶體的存取可包括禁止對記憶體的位址範圍的 存取。因此,在一些實施方式中,初始化代碼可為上面描 述的秘密資料(其也可包括一個或更多密鑰及/或密碼)。 在一個實施方式中’圖3的方法可進一步包括確定由嵌 入式控制器產生的位址是否在初始化位址範圍之外,以及 回應於確定了由嵌入式控制器產生的位址在初始化位址範 圍之外而啟用記憶體的保護。注意,啟用保護在禁止存取 之前執行,其中記憶體在啟用保護之後和禁止存取之前是 可存取的,且其中禁止存取對所產生的在初始化位址範圍 内的位址執行,其中所述禁止在所述啟用保護之後執行。 換句話說,啟用保護實際上不建立記憶體的保護,而是 更確切地配置系統,以便在特定的條件下建立記憶體的保 4 (見上面被鎖的門的類比)。因此在產生了處於初始化位 址範圍之外的至少一個位址之後,所述禁止阻止嵌入式控 制态存取初始化位址範圍。換句話說,實際上觸發對在位 址fe圍内的记憶體的存取的禁止的條件是當嵌入式處理器 在離開位址範圍之後再次進入位址範圍時。注意,雖然對 在位址範圍中的記憶體的存取被禁止,但是對於所產生的 134199.doc -30- 200919196 在初始化位址範圍之外產生的位址允許對記憶體的存取。 在個實施方式中,讀保護啟用值可在記憶體的啟用保 濩之岫在記憶體元件中被設定,其中設定讀保護啟用值准 許記憶體的啟用保護。換句話說,可設定準許對地址範圍 隨後的保護啟用(但還不是現時的保護)的值,例如位元。 注意,該讀保護啟用值可由嵌入式控制器設定,同時嵌入 式控制器仍然在位址範圍内操作。因此該值可用於設立或 啟用上面的保護啟用,這本身將系統置於用於觸發記憶體 的現時保護的條件中。 以稍微不同的方式描述,在一個實施方式中,向遮罩邏 輯提供第二控制值(見上面的306)可包括設定第三控制值, 例如上面提到的讀-保護-啟用位元,以啟用提供第二控制 值,接著,在設定第三控制值之後,確定嵌入式控制器試 圖存取在位址範圍之外的記憶體,並產生嵌入式控制器試 圖存取在位址範圍之外的記憶體的指示。接著可回應於第 三控制值和該指示來禁止對記憶體的位址範圍的存取。 例如,下麵示出了足以設定讀-保護位元的示例性的兩 個指令代碼序列:
Protect Region: STORE Read-Protect-Enable,1 ;set the enable bit JUMP Unprotected—Region ;pr〇ceed 注意,到被保護區域之外的代碼的轉移(JUMp)將設定 明-保濩位元,並且代碼,即秘密資料將被保護。 用另一方式敍述,第二控制值和指示可用於控制記憶體 134199.doc 31 200919196
7指定的位址範圍是否和何時被保護。更具體地,當p〇R 時(見上面的302),可啟動通過嵌入式控制器的存取,例如 以便在系統的主處理器或CPU的啟動之前,嵌入式控制器° 可執行初始化代碼來檢查或檢驗系統安全性。嵌入式控制 器可接著執行在指定位址範圍中的(初始化代碼)程式指 7例如可執行一些或所有初始化代碼。嵌入式控制器可 接者設定第二控制值,例如讀_保護_啟用位元(或功能上等 文的形式)’以啟用第二控制值的使用,例如啟用設定讀― 保護位元(或功能上等效的形式),但是應注意,這麼做本 質上不保言蒦記憶體’ gp ’設定第三控制值/讀-保護-啟用位 元不禁止對記憶體的存取,而是更確切地使系統準備或啟 用延樣的禁止。然後’當嵌入式控制器執行指定範圍之外 的扣7日个,此事件與第三控制值/讀_保護_啟用位元結合可 使第二控制值,例如讀-保護位元被設定,禁止了對記憶 體内指定位址範圍的存取。注意,較佳地,對指定位址範 圍之外的記憶體位址的存取沒有被禁止。例如,在較佳實 方式中如果被執行的指令在位址範圍之外,則可不向 料邏輯提供第二控制值。下面所描述的是實現上面的記 L體保屢方案的一個實施方式的示例性詳細的系統的實施 方式。 實現及忒憶體保護方案的系統的一個實施方式在圖5中 不出,其中圖5的系統包括與圖4的電路比較的額外的電 路。如可看到的,在本實施方式中,正反器4〇2通過”反及 閘435耦合到及閘403(與圖4的反相器407對比)。正反器 134l99.doc -32- 200919196 402還可耦合到及閘503 ,及閘5〇3本身可耦合到正反器 和比較器440,這兩個在下面被更詳細的描述。反及閘$ 也了搞合到反相器507,反相器507可進一步耦合到比較器 440。如圖5進一步示出的,反及閘435可操作來向遮罩邏 輯’在這種情況下為及閘4〇3提供值,例如第一和第二 值,以控制對記憶體1 04的存取,其中在圖5中,這些值由 標記"nCLR”,即,”清零、低態有效”表示,意味著當信號 ” nCLR"為〇時,一些其他信號被迫為〇(資料被遮蔽,如下 所述)。當’’nCLR’’為1時,則其他信號被沒有更改地傳遞 (資料沒有被遮蔽)。下面描述圖5的系統的操作。 在一個實施方式中,向遮罩邏輯提供第一控制值包括正 反器,例如圖5的正反器402接收POR並在回應中輸出初始 控制值。反及閘,例如反及閘435可根據該初始控制值產 生第一控制值,並向遮罩邏輯,例如及閘4〇3提供該第一 控制值。注意,如果提供給反及閘的初始控制值為〇,則 反及閘總是向遮罩邏輯提供第一控制值,而不管哪些其他 值被與初始控制值同時輸入到反及閘。 一旦啟用對記憶體的存取,就可執行從指定位址範圍内 記憶體的讀取(見上面的304),例如,在指定位址範圍内的 初始化代碼程式指令可例如由嵌入式控制器讀取和執行。 如圖5所示,比較器440可操作來確定程式指令何時在指 定位元元元址範圍之外,並產生其指示。更具體地,比較 器可操作來接收在這裏被標記為”Ec位址"的嵌入式控制器 程式指令位元元元址和被標記為"初始化位址範圍,,的初始 134199.doc 33· 200919196 化代碼的指定位址範圍,並產生關於EC位址在指定範圍内 或外的指示,例如” 1 ”,指示EC地址在範圍外,或”〇",指 不EC地址在指定範圍内。同樣如所示,此指示器可被提供 給及閘503用於控制正反器4〇2的設定,並提供給反及閘 435 (在反轉指示器值之後,即,將"丨"反轉為"〇",或將 反轉為"1")以控制下面描述的遮蔽。 關於禁止對記憶體的存取,在一個實施方式中,向遮罩 邏輯k供第二控制值(見3〇6)可包括正反器,例如正反器 402接收设定值並在回應中輸出初始控制值;反及閘,例 如反及閘43 5根據初始控制值和指示產生第二控制值;以 及反及間向遮罩邏輯提供第二控制值。 在一些實施方式中’正反器接收設定值可包括將另一正 反器,例如正反器502設定為第三控制值,例如設定讀_保 護-啟用位元(或等效形式);及閘,例如及閘503從另一正 反器(例如正反器502)接收第三控制值;及閘接收該指示, 且根據第三控制值和指示產生設定值;以及正反器從及閘 接收設定值。如上所述’設定該第三控制值可允許系統, 例如當比較器440確定了 EC位址在範圍外時,隨後保護記 憶體。 因此’例如’一旦第三控制值,例如讀-保護_啟用位元 (或等效形式)被設定,則當比較器44〇指示Ec位址在指定 位址範圍之外時,反及閘根據初始控制值和指示產生第二 控制值可包括:反相器,例如反相器5〇7反轉該指示,並 向反及閘提供反轉的指示;以及反及閘使初始控制值和反 134199.doc -34- 200919196 轉的指示進行反及邏輯運算以產生第二控制值,第二控制 值可接著被提供給遮罩邏輯,例如及閘4〇3以遮蔽從記憶 體104讀取的資料。 因此,總結上文,當P0R,例如啟動或重設時,可啟用 對記憶體的存取,例如准許嵌入式控制器執行來自指定位 址範圍的初始化代碼指令,以例如執行各種安全操作中的 任何一個。接著,回應於讀_保護啟用位元被設定和遇到 具有在指定範圍之外的位元元址的程式指令,可禁止對指 疋範圍内δ己憶體的存取,雖然仍然可獲得對具有在該範圍 之外的位元元元址的指令的存取。可僅通過另一 p〇R來啟 用對指定範圍的存取。 以另一方式陳述’在圖5的系統中,在一個實施方式 中,讀-保護位元僅當讀-保護啟用位元被設定且嵌入式控 制器發佈在§己憶體的初始化塊之外的位址時被設定。一旦 讀-保護位元被設定,則它就可保持設定,直到下一電源 週期為止。當讀-保護位元被設定時,讀-保護位元可中斷 在初始化塊内的位址處記憶體104(嵌入式控制器記憶體)的 任何項取。在本實施方式中,通過^個及閘來遮蔽來自記 憶體104的資料的η位元。當讀-保護位元被設定且ec地址 位於初始化塊地址範圍内時’反及閘的輸出,如nCLR將 為0。因此每當EC位址在初始化塊位址範圍内時,信號 nCLR可遮蔽從記憶體讀取的所有資料位元。 在本機制的一個使用中’嵌入式控制器當在初始化塊内 執行時可設定讀-保護-啟用位元。仍然在初始化塊範圍内 134199.doc •35- 200919196 " |>' -}:t —-p »» :"、到初始化塊範圍之外的位置的轉移。—旦 i仃β轉移’’沈可鎖住或保護該初始化塊,如上所述。注 η。、 有°又疋瀆-保護-啟用位元的情況下,嵌入式控制 Γ':不此在執行初始化塊内的指令時設定初始化塊保護, 在執仃初始化塊之外的指令時必須這麼做,這可為入侵 丁開軍握對肷入式控制器的控制並危害記憶體的被保護 内谷的機會的視窗。 除錯中斷 f A可〜識到的,為了維持系統安全,應不允許外部除錯 I來存取内部秘密’例如由上所述的第—資料,因為攻 擊者可此使用除錯機制來竊取它。因此,在一個實施方式 二中/為了阻止除錯攻擊,所有的除錯存取(例如,聯合測 式行動、-且(JTAG)埠、串列除錯埠或來自主機的匯流排存 、)可在POR之後初始化成不活動的狀態。接著可僅在秘密 、’、蔓之後例如通過設定讀-保護位元(例如,通過將控 (...)㈣值叹疋為遮蔽值)來啟用除錯存取。注意,可由嵌入式 二j °° I過、、扁耘的寫入配置暫存器來明確地啟用存取,或 貝保^蔓位TL本身可用於啟用除錯存取。在後面的情況 中田不止5貝保護(讀-保護的初始狀態)時,中斷所有的除 :=取以及虽啟用讀_保護時啟用除錯存取(例如,通過 裏^述的過程之—)。因此,本方法可進-步包括回應 '而不止除錯存取,並回應於通過嵌入式控制器禁止 對記憶體的所述存取而啟用除錯存取。 。上面的解決方案的實施方式可避免使用複雜的加 134199.doc •36- 200919196 密機制,這可減少對專用硬體的需要,並相當大地降低對 嵌入式控制器的計算能力的要求。例%,如上所討論的, 所需要的專用硬體可限制為少量簡單的閘、正反器和反相 器。 因此,使用上面据琉的古、土 & @ (的方法的只施方式,可控制或管理 對資料及/或程式指今的在&,,、,„ τ的存取,以阻止對秘密資料,例如 密錄、密碼或甚至初妒介冲版& 土, 邳始化代碼的未經授權的存取、使用或 繞過、或篡改用在系續的;μ、a υ 于…死的初始化過程之中的秘密資料,例 如密输、密碼或甚至初始化枝踩 々刀谢化代碼,例如以在系統中主處理 器的啟動之前維持或驗證系統的安全。 【圖式簡單說明】 义當與圖式-起閱讀時’參考下面的詳細描述,本發明的 前述以及其他目的、特點和優點將被更全面地理解,盆 中: 〆、 圖1示出配置為實現本發 腦系統; 明的一個實施方式的示例性電 圖2是根據本發明的一個眘故+ J 1U貫靶方式的示例性高層系統結 構圖; 統中的微控制器保護 資料的系統的示例性 圖3是根據一個實施方式用於為系 資料的方法的流程圖; 圖4是根據一個實施方式用於保護 結構圖; 圖5是根據一個實施方式用於保 性結構圖。 護記憶體的系統的 示例 134199.doc 200919196 儘管本發明易於進 綱實例示出”且”替代形式,但是通過圖 這些具體實施方式^方式’並且這裏將詳細描述 一 "…、'而,應該理解,對此的這些圖式和 ?:二“並不旨在將本發明限制為所公開的特定形式,而 本發明旨在包含落入由隨附的申請專利範圍界定 =本明精神和範圍内的所有更改、等效形式和替^ 式。 【主要元件符號說明】 82 104 ' 204 200 201 202 203 207 302 402 403 405 304 、 306 502 503 407 ' 507 435 440 電腦系統 記憶體 系統單晶片 保護邏輯 嵌入式控制器 遮罩 I/O設備 步驟 正反器 及閘 秘密 反相器 反及閘 比較器 134199.doc 38-

Claims (1)

  1. 200919196 十、申請專利範圍: L 一種㈣保㈣統内的資料的方法,該方法包括以下步 驟: 回應於—開機該,啟料-記憶體的存取; 回應於該啟用而從該記憶體讀取一第一資料,其中該 第-資料可用於在該系統中的—主處理器的啟動之前;; 該系統執行安全操作; 在該第-資料用於對該系統執行一個或更多安全操作 之後’禁止對該記憶體的存取,其中在該禁止之後,該 記憶體至少在一隨後的開機重設之前是不可存取的。" 2.如申請專利範圍第i項所述的方法,其中該第—資料包 括一個或更多下列項: 一密碼;或 —密鑰。 3·如申請專利範圍第1項所述的方法,進一步包括: 使用該第一資料來對該系統執行一個或更多安全操作 包括對該系統執行初始化代碼;以及 其中禁止對該記憶體的存取的該步驟包括在對該系統 執行該初始化代碼之後將一設定值寫到一記憶體元件, 以禁止對該記憶體的存取。 4.如中請專利項所述的方法,其中啟用對該記憶 體的存取的該步驟包括: 向耦合到該記憶體的一遮罩邏輯提供—第—控制值, 其中該遮罩邏輯可操作來使用該第一控制值和從該記憶 134199.doc 200919196 體讀取的資料執行一邏輯操作,以及其中該邏輯操作維 持從該記憶體讀取的該資料不變。 5. 的存取的該步驟包括: 向該遮罩邏輯提供一第二控制值’其中該遮罩邏輯可 操作來使用該第二控制值和從該記憶體讀取的資料執行 一邏輯操作,以及其中該邏輯操作遮蔽從該記憶體讀取 的該資料。 6. 用於該系統的初始化代碼,其中該初始化代碼具有—位 址範圍,其中啟用對該記憶體的存取的該步驟包括啟用 對該記憶體内的該位址範圍的存取,其中禁止對該記憶 體的存取的該步驟包括禁止對該記憶體的該位址範圍的 存取’以及其中向該遮罩邏輯提供該第二控制值的該步 驟包括: 設定一第三控制值以啟用提供該第二控制值的該步 驟;以及 在設定該第三控制值的該步驟之後,確定該嵌入式控 制器嘗試存取該位址範圍之外的該記憶體,並產生該嵌 入式控制器嘗試存取該位址範圍之外的該記憶體的一指 示;以及 回應於該第三控制值和該指示而禁止對該記憶體的該 位址範圍的存取。 7. 如申凊專利範圍第1項所述的方法,其中該系統包括一 嵌入式控制器’其中啟用對該記憶體的存取的該步驟包 括通過遠嵌入式控制器來啟用對該記憶體的存取,其中 134199.doc 200919196 從記憶體讀取_ '取邊弟一負料的該步驟包括該 從該記憶體讀取^ 、 ^入式控制益 的存取的該+ χ 、貝’卩及其中禁止對該記憶體 Μ V驟包括通過該嵌入式控 憶體的存取。 益术不止對5亥5己 8·如申料利範圍第7項所述的方法,進一步包括·· 確疋由該嵌入式控制器 化位址範圍之外; 絲疋否處於一初始 回應於禮定由該後入式控制器產生的該位址處於該初 始Γ位址範圍之外而啟用該記憶體的保護,其中該啟用 保s蒦在§亥禁止存取之前勃# 執订’其中该記憶體在該啟用保 護之後和在該禁止存取之前是可存取的; 其中該禁止存取對所產生的在該初始化位址範圍内的 位址執行,其令該禁止在該啟用保護之後執行。 9.如申請專利範圍第8項所述的方法, 其中該禁止阻止該傲入式控制器在已經產生處於該初 始化位址範圍之外的至少―個位址之後存取該初始化位 址範圍。 1 〇·如申請專利範圍第8項所述的方法, 其中對在該初始化位址範圍外所產生的位址啟用對該 記憶體的存取。 11.如申請專利範圍第8項所述的方法,進一步包括: 在s亥啟用§玄s己憶體的保護之前,設定一記憶體元件中 的一讀保護啟用值,其中該設定該讀保護啟用值准許該 啟用該記憶體的保護。 134199.doc 200919196 1如申請專利範㈣6項所述的方法,進—步包括: 回應於POR而禁止除錯存取;以及 回應於通過該嵌入式控制哭 利DO求禁止對該記憶體的存取 的s亥步驟而啟用除錯存取。 13 ·如申凊專利範圍第6項所述& f $ 貝所述的方法,其中該嵌入式控制 器是用於-電腦系統的一週邊設備控制器。 14.如申請專利範圍第6項所述的方法 器和3亥a己憶體被包括在一系統單晶 1 5. —種系統,包括: ’其中該欲入式控制 片(S〇C)中。 一第一記憶體,其儲存資料; 一第二記憶體’其中該第 對該第一記憶體的存取的一 包括一輸入,該輸入可操作 的一開機重設的—信號; 二記憶體可操作來儲存阻止 第一值,其中該第二記憶體 來接收指示在該系統内產生
    16. -第-邏輯,其輕合到該第一記憶體和該第二記憶 體’其中該第-邏輯可操作來根據儲存在㈣二記㈣ 中的值而控制對該第一記憶體内的該資料的存取; 其中回應於所產生的一開機重設,該第二記憶體可操 ^來儲存帛—值,其中該第—邏輯響應於儲存在該第 二記憶體内的該第二值而啟用對該第一記憶體的存取。 如申請專利範圍第15項所述的系統,進一步包括: -嵌入式控制器’其耦合到該第一記憶體,其令控制 對該資料的存取包括通過該嵌人式控制器來 料的存取。 貝 Z34199.doc 200919196 17.如申請專利範圍第丨亏項 ^ ^ _ 的系冼,進一步包括耦合到 “ - s憶體的一嵌入式控制器; 其中該第—邏輯可操作來確定由該般入式控制器產生 的:位址是否在—初始化位址範圍内; 其中該第一邏輯可操作來對由該截入式控制器產生的 在該初始化位址鉻囹向& 座生的 . 视圍内的位址啟用對該第一記憶體的存 取, 其中’在該嵌入式控制器產生處於該初始化位址範圍 :外的至少—個位址之後’該第一邏輯可操作來對由該 肷入式控制器產生的在該初始化位址範圍内的隨後的位 址禁止對該第—記憶體的存取。 18.如申請專利範圍第17項所述的系統,其中該第一邏輯包 括· 一比較器’其中該比較器具有可操作來接收由該嵌入 式控制器產生的位址的一第一輸入,其中該比較器可操 作來比較由該嵌人式控制器產生的該位址與該初 址範圍。 19. 一種系統,包括: 一嵌入式控制器; -第-記憶體’其耦合到該嵌入式控制器,該第—記 憶體^存初始化代碼及/或用於該嵌以控制ϋ的資料| 第。己L體#中3亥第二記憶體可操作來館存—第 一值’該第一值啟用對該第一記憶體存取的阻止,其中 該第二記憶體包括-輸人,該輸人可操作來接收指示在 \34l99.doc 200919196 該系統内產生的一開機重設的一信號; 一第一邏輯,J:叙人5丨好结 八耦口到該第一記憶體和該第二記憶 體’其中該第一邏輯可摔作來 于斗〗铞怍不根據儲存在該第二記憶俨 中的該值而控制對該第-記憶體内的該資料的存取厂, 其中回應於所產生的一開機重設,該第二記憶體可操 作來儲存-第二值,其中該第—邏輯回應於儲存在該第 二記憶體内的該第二值而啟用對該第-記憶體的存取; 其中該第-邏輯可操作來確定由該嵌入式控制器產生 的一位址是否處於一初始化位址範圍内; 其中該第-邏輯可操作來對由該欲入式控制器產生的 在該初始化位址範圍内的位址啟用對該第一記憶體的存 取; 20. 其中,在该開機重設之後和在該嵌入式控制器產生處 於該初始化位址範圍之外的至少一個位址之後,該第一 访輯了操作來對由該嵌入式控制器產生的處於該初始化 位址範圍内的隨後的位址禁止對該第一記憶體的存取。 如申請專利範圍第丨9項所述的系統, 其中該第一邏輯可操作來對在該初始化位址範圍之外 所產生的位址啟用對該記憶體的存取。 134199.doc
TW097133504A 2007-08-31 2008-09-01 對嵌入式控制器的記憶體保護 TWI402682B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11/848,808 US7917716B2 (en) 2007-08-31 2007-08-31 Memory protection for embedded controllers

Publications (2)

Publication Number Publication Date
TW200919196A true TW200919196A (en) 2009-05-01
TWI402682B TWI402682B (zh) 2013-07-21

Family

ID=40409318

Family Applications (1)

Application Number Title Priority Date Filing Date
TW097133504A TWI402682B (zh) 2007-08-31 2008-09-01 對嵌入式控制器的記憶體保護

Country Status (2)

Country Link
US (1) US7917716B2 (zh)
TW (1) TWI402682B (zh)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ATE491999T1 (de) * 2006-10-06 2011-01-15 Agere Systems Inc Schutz von geheiminformationen in einem programmierten elektronischen gerät
US8250354B2 (en) * 2007-11-29 2012-08-21 GlobalFoundries, Inc. Method and apparatus for making a processor sideband interface adhere to secure mode restrictions
US8726364B2 (en) * 2008-06-30 2014-05-13 Intel Corporation Authentication and access protection of computer boot modules in run-time environments
DE102008048066B4 (de) 2008-09-19 2018-02-01 Texas Instruments Deutschland Gmbh Zugriffssteuerschaltung zur Verwendung mit einer Überwachungs-Logikschaltungsanordnung in einem Verfahren zum Schutz von Software für eingebettete Anwendungen vor unerlaubtem Zugriff
US10012403B2 (en) * 2009-05-21 2018-07-03 Lennox Industries Inc. Wiring connector housing
US20100303239A1 (en) * 2009-05-27 2010-12-02 Fujitsu Limited Method and apparatus for protecting root key in control system
US8707053B2 (en) * 2011-02-09 2014-04-22 Apple Inc. Performing boolean logic operations using arithmetic operations by code obfuscation
US8949638B2 (en) 2012-04-25 2015-02-03 Hewlwtt-Packard Development Company, L.P. Embedded controller with an internal timer
GB2513727B (en) 2012-06-27 2015-06-24 Nordic Semiconductor Asa Memory protection
US8938796B2 (en) 2012-09-20 2015-01-20 Paul Case, SR. Case secure computer architecture
TWI564747B (zh) * 2012-10-19 2017-01-01 威盛電子股份有限公司 電子裝置與安全開機方法
US9230081B2 (en) 2013-03-05 2016-01-05 Intel Corporation User authorization and presence detection in isolation from interference from and control by host central processing unit and operating system
WO2014209322A1 (en) 2013-06-27 2014-12-31 Intel Corporation Continuous multi-factor authentication
US8955144B2 (en) * 2013-06-28 2015-02-10 Intel Corporation Protecting information processing system secrets from debug attacks
US9696772B2 (en) 2014-02-21 2017-07-04 Arm Limited Controlling access to a memory
US10152331B2 (en) * 2014-05-16 2018-12-11 Wind River Systems, Inc. Method and system for enforcing kernel mode access protection
US10073964B2 (en) 2015-09-25 2018-09-11 Intel Corporation Secure authentication protocol systems and methods
US11170109B2 (en) * 2019-04-16 2021-11-09 Nxp Usa, Inc. Boot ROM gating circuit
US11550733B2 (en) * 2020-07-01 2023-01-10 Arm Limited Method, system and circuit for managing a secure memory partition
US12050784B2 (en) * 2022-04-27 2024-07-30 Micron Technology, Inc. Data masking for memory

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2675602B1 (fr) * 1991-04-16 1995-04-14 Hewlett Packard Co Procede et dispositif de protection d'un systeme informatique.
US5513337A (en) * 1994-05-25 1996-04-30 Intel Corporation System for protecting unauthorized memory accesses by comparing base memory address with mask bits and having attribute bits for identifying access operational mode and type
JPH0954725A (ja) * 1995-08-11 1997-02-25 Nec Eng Ltd 記憶装置
US6151678A (en) * 1997-09-09 2000-11-21 Intel Corporation Anti-theft mechanism for mobile computers
EP1572463B1 (en) * 2002-12-02 2011-04-06 Silverbrook Research Pty. Ltd Dead nozzle compensation
US7940932B2 (en) * 2004-04-08 2011-05-10 Texas Instruments Incorporated Methods, apparatus, and systems for securing SIM (subscriber identity module) personalization and other data on a first processor and secure communication of the SIM data to a second processor
US8713667B2 (en) * 2005-07-08 2014-04-29 Hewlett-Packard Development Company, L.P. Policy based cryptographic application programming interface in secure memory
US20070022243A1 (en) * 2005-07-22 2007-01-25 John Rudelic Method and apparatus capable of disabling authenticated operations and guaranteed secure boot in a wireless platform
US7613891B2 (en) * 2006-05-04 2009-11-03 Intel Corporation Methods and apparatus for providing a read access control system associated with a flash device
US7698523B2 (en) * 2006-09-29 2010-04-13 Broadcom Corporation Hardware memory locks
US8763110B2 (en) * 2006-11-14 2014-06-24 Sandisk Technologies Inc. Apparatuses for binding content to a separate memory device

Also Published As

Publication number Publication date
US7917716B2 (en) 2011-03-29
US20090063799A1 (en) 2009-03-05
TWI402682B (zh) 2013-07-21

Similar Documents

Publication Publication Date Title
TW200919196A (en) Memory protection for embedded controllers
US10516533B2 (en) Password triggered trusted encryption key deletion
JP6137499B2 (ja) 方法および装置
US7917741B2 (en) Enhancing security of a system via access by an embedded controller to a secure storage device
US7900252B2 (en) Method and apparatus for managing shared passwords on a multi-user computer
US7149854B2 (en) External locking mechanism for personal computer memory locations
US7010684B2 (en) Method and apparatus for authenticating an open system application to a portable IC device
US5887131A (en) Method for controlling access to a computer system by utilizing an external device containing a hash value representation of a user password
US6397337B1 (en) Unified password prompt of a computer system
US7337323B2 (en) Boot-up and hard drive protection using a USB-compliant token
US20060036851A1 (en) Method and apparatus for authenticating an open system application to a portable IC device
US7392398B1 (en) Method and apparatus for protection of computer assets from unauthorized access
TW201535145A (zh) 使用保護讀取儲存器安全地儲存韌體數據之系統及方法
US20120124663A1 (en) Storage device access authentication upon resuming from a standby mode of a computing device
US7395434B2 (en) Method for secure storage and verification of the administrator, power-on password and configuration information
JP2000347942A (ja) 情報処理装置
WO2003090051A2 (en) Protection against memory attacks following reset
TW201137660A (en) Method and system for protecting an operating system against unauthorized modification
Götzfried et al. Mutual authentication and trust bootstrapping towards secure disk encryption
KR101160391B1 (ko) 토큰 이용 가능한 컴퓨터 시스템을 평가하는 메카니즘
CN104361298B (zh) 信息安全保密的方法和装置
Kharade et al. Setting barrier to removable drive through password protection for data security
CN109918918B (zh) 一种基于固态盘主控的可信计算系统实现方案
KR100606196B1 (ko) 모바일 플랫폼 트랜잭션을 위한 신뢰 입력
WO2018040678A1 (zh) 一种存储器数据保护方法、集成电路芯片及存储介质