TW201941065A - 積體電路資料保護 - Google Patents

積體電路資料保護 Download PDF

Info

Publication number
TW201941065A
TW201941065A TW108107909A TW108107909A TW201941065A TW 201941065 A TW201941065 A TW 201941065A TW 108107909 A TW108107909 A TW 108107909A TW 108107909 A TW108107909 A TW 108107909A TW 201941065 A TW201941065 A TW 201941065A
Authority
TW
Taiwan
Prior art keywords
programmable memory
bits
software
time programmable
integrated circuit
Prior art date
Application number
TW108107909A
Other languages
English (en)
Inventor
文森 皮爾 勒羅伊
拜拉尼達倫 穆圖庫馬蘭
大衛 塔馬尼奧
Original Assignee
美商高通公司
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 美商高通公司 filed Critical 美商高通公司
Publication of TW201941065A publication Critical patent/TW201941065A/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/123Restricting unauthorised execution of programs by using dedicated hardware, e.g. dongles, smart cards, cryptographic processors, global positioning systems [GPS] devices
    • 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/44Program or device 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/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • 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
    • G06F21/73Protecting 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 by creating or determining hardware identification, e.g. serial numbers
    • 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
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3226Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
    • H04L9/3228One-time or temporary data, i.e. information which is sent for every authentication or authorization, e.g. one-time-password, one-time-token or one-time-key
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3242Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Technology Law (AREA)
  • Multimedia (AREA)
  • Remote Sensing (AREA)
  • Power Engineering (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Mathematical Physics (AREA)
  • Stored Programmes (AREA)
  • Storage Device Security (AREA)

Abstract

本發明提供用於提供一積體電路之資料保護的技術。根據此等技術之一實例方法包括判定與該積體電路相關聯的軟體或韌體已經進行一未授權更新,及回應於判定該軟體或該韌體已經進行該未授權更新,破壞維持於該積體電路之一一次性可程式化記憶體中且由該積體電路使用以保護一非揮發性記憶體之內容的一防重放計數器(ARC)值。

Description

積體電路資料保護
計算器件通常藉由計算器件或安全模組製造商擁有之計算器件上的韌體或作業系統軟體儲存使用者或企業擁有之敏感資料。韌體或軟體擁有者可將軟體載入至計算器件,該軟體改變安全措施,例如移除蠻力攻擊防護功能,停用安全啟動/信任啟動,及/或將其他韌體或軟體載入於計算器件上。
一種根據本發明之用於在一積體電路中提供資料保護之實例方法包括判定與該積體電路相關聯的軟體或韌體已經進行一未授權更新;及回應於判定軟體或韌體已經進行該未授權更新,破壞維持於該積體電路之一一次性可程式化記憶體中且由該積體電路使用以保護一非揮發性記憶體之內容的一防重放計數器(ARC)值。
此方法之實施可包括以下特徵中之一或多者。判定與該積體電路相關聯的軟體或韌體已經進行該未授權更新包括偵測該積體電路上之軟體的一變化;回應於偵測到該積體電路上之軟體的該變化,鑑認一使用者及軟體中的至少一者;及作為該使用者及軟體中的至少一者未經鑑認之回應,判定該積體電路上之軟體的該變化未經授權。鑑認該使用者包括判定該使用者是否已經鑑認;及回應於該使用者尚未經鑑認,執行至少一個鑑認程序以鑑認該使用者。鑑認軟體包括藉由使用自與該積體電路相關聯的一硬體唯一金鑰(HUK)導出之一金鑰將一基於密碼之訊息鑑認碼(CMAC)演算法應用於軟體來判定軟體之一訊息鑑認碼(MAC);及比較該MAC與一經先前判定MAC以判定該MAC是否匹配該經先前判定MAC。破壞該ARC值進一步包括藉由維持於揮發性記憶體中之一當前ARC值更新儲存於一次性可程式化記憶體中的一ARC值。破壞該ARC值包括判定儲存該ARC值之該一次性可程式化記憶體的待設定之第一數目個位元;判定包含該第一數目個位元之該一次性可程式化記憶體之一第一組位元的位置;及藉由設定該一次性可程式化記憶體之該第一組位元更新儲存於該一次性可程式化記憶體中之該ARC值。判定一次性可程式化記憶體之將設定的第一數目個位元進一步包括基於在該一次性可程式化記憶體中已設定之一第二數目個位元判定該一次性可程式化記憶體之將設定的第一數目個位元。判定一次性可程式化記憶體之待設定的第一組位元進一步包括自該一次性可程式化記憶體中尚未經設定之一第二組位元隨機地選擇該一次性可程式化記憶體的該第一組位元。
一種根據本發明之實例積體電路包括用於判定與該積體電路相關聯的軟體或韌體已經進行一未授權更新的構件;及用於回應於判定軟體或韌體已經進行該未授權更新,破壞維持於該積體電路之一一次性可程式化記憶體中且由該積體電路使用以保護一非揮發性記憶體之內容的一防重放計數器(ARC)值的構件。
此積體電路之實施可包括以下特徵中之一或多者。用於判定軟體或韌體已經進行該未授權更新的構件包括用於偵測該積體電路上之軟體的一變化的構件;用於回應於偵測到該積體電路上之軟體的該變化,鑑認一使用者及軟體中的至少一者的構件;及用於作為該使用者及軟體中的至少一者未經鑑認之回應,判定該積體電路上之軟體的該變化未經授權的構件。用於鑑認該使用者之構件包括用於判定該使用者是否已經鑑認的構件;及用於回應於該使用者尚未經鑑認執行至少一個鑑認程序以鑑認該使用者的構件。用於鑑認軟體的構件包括用於藉由使用自與該積體電路相關聯的一硬體唯一金鑰(HUK)導出之一金鑰將一基於密碼之訊息鑑認碼(CMAC)演算法應用於軟體來判定軟體之一訊息鑑認碼(MAC)的構件;及用於比較該MAC與一經先前判定MAC以判定該MAC是否匹配該經先前判定MAC的構件。用於破壞該ARC值的構件包括用於藉由維持於該積體電路之揮發性記憶體中的一第二ARC值更新儲存於一次性可程式化記憶體中之一第一ARC值的構件。該積體電路進一步包括用於判定該一次性可程式化記憶體之待設定的一第一數目個位元的構件;用於判定包含第一數目個位元之該一次性可程式化記憶體之一第一組位元的位置的構件;及用於藉由設定一次性可程式化記憶體之該第一組位元更新儲存於該一次性可程式化記憶體中之該ARC值的構件。用於判定該一次性可程式化記憶體之將設定的第一數目個位元的構件包括基於在該一次性可程式化記憶體中已設定之一第二數目個位元判定該一次性可程式化記憶體之將設定的第一數目個位元。用於判定設定該一次性可程式化記憶體之判定位元的構件包括用於自該一次性可程式化記憶體中尚未經設定之一第二組位元隨機地選擇該一次性可程式化記憶體的該第一組位元。
一種根據本發明之實例積體電路包括一一次性可程式化記憶體及耦接至該一次性可程式化記憶體的一處理器。該處理器經組態以判定與該積體電路相關聯的軟體或韌體已經進行一未授權更新;及回應於判定軟體或韌體已經進行該未授權更新,破壞維持於該積體電路之一一次性可程式化記憶體中且由該積體電路使用以保護一非揮發性記憶體之內容的一防重放計數器(ARC)值。
此積體電路之實施可包括以下特徵中之一或多者。經組態以判定軟體或韌體已經進行該未授權更新的該處理器進一步經組態以偵測該積體電路上之軟體的一變化;回應於偵測到該積體電路上之軟體的該變化,鑑認一使用者及軟體中的至少一者;及作為該使用者及軟體中的至少一者未經鑑認之回應,判定該積體電路上之軟體的該變化未經授權。經組態以鑑認該使用者之該處理器進一步經組態以判定該使用者是否已經鑑認;及回應於該使用者尚未經鑑認,執行至少一個鑑認程序以鑑認該使用者。經組態以鑑認軟體之該處理器進一步經組態以藉由使用自與該積體電路相關聯的一硬體唯一金鑰(HUK)導出之一金鑰將一基於密碼之訊息鑑認碼(CMAC)演算法應用於軟體來判定軟體之一訊息鑑認碼(MAC);及比較該MAC與一經先前判定MAC以判定該MAC是否匹配該經先前判定MAC。經組態以破壞該ARC值之該處理器進一步經組態以藉由維持於該積體電路之揮發性記憶體中的一第二ARC值更新儲存於該一次性可程式化記憶體中的一第一ARC值。處理器進一步經組態以判定儲存該ARC值之該一次性可程式化記憶體的待設定之一第一數目個位元;判定包含該第一數目個位元之該一次性可程式化記憶體之一第一組位元的位置;及藉由設定該一次性可程式化記憶體之該第一組位元更新儲存於該一次性可程式化記憶體中之該ARC值。經組態以判定該一次性可程式化記憶體之將設定的第一數目個位元的處理器進一步經組態以基於一次性可程式化記憶體中已設定之一第二數目個位元判定該一次性可程式化記憶體之將設定的該第一數目個位元。經組態以判定設定一次性可程式化記憶體之哪些位元的處理器進一步經組態以自該一次性可程式化記憶體中尚未經設定之一第二組位元隨機地選擇該一次性可程式化記憶體的該第一組位元。
一種根據本發明之上面儲存有用於在一積體電路中提供資料保護之電腦可讀指令的實例非暫時性電腦可讀媒體包括經組態以使電腦進行以下操作之指令:判定與該積體電路相關聯的軟體或韌體已經進行一未授權更新;及回應於判定軟體或韌體已經進行該未授權更新,破壞維持於該積體電路之一一次性可程式化記憶體中且由該積體電路使用以保護一非揮發性記憶體之內容的一防重放計數器(ARC)值。
此非暫時性電腦可讀媒體之實施可包括以下特徵中的一或多者。經組態以使該電腦判定軟體或韌體已經進行該未授權更新的該等指令包括經組態以使電腦進行以下操作之指令:偵測該積體電路上之軟體的一變化;回應於偵測到該積體電路上之軟體的該變化,鑑認一使用者及軟體中的至少一者;及作為該使用者及軟體中的至少一者未經鑑認之回應,判定該積體電路上之軟體的該變化未經授權。經組態以使該電腦破壞該ARC值的該等指令包括經組態以使該電腦藉由維持於該積體電路之揮發性記憶體中的一第二ARC值更新儲存於一次性可程式化記憶體中之一第一ARC值的指令。非暫時性電腦可讀媒體包括經組態以使電腦進行以下操作之指令:判定儲存該ARC值之該一次性可程式化記憶體的待設定之一第一數目個位元;判定包含該第一數目個位元之該一次性可程式化記憶體之一第一組位元的位置;及藉由設定該一次性可程式化記憶體之該第一組位元更新儲存於該一次性可程式化記憶體中之該ARC值。經組態以使該電腦判定該一次性可程式化記憶體之將設定的該第一數目個位元之該等指令包括經組態以使電腦基於一次性可程式化記憶體中已設定之一第二數目個位元判定一次性可程式化記憶體之將設定的該第一數目個位元的指令。經組態以使該電腦判定設定該一次性可程式化記憶體之哪些位元之該等指令包括經組態以使電腦自一次性可程式化記憶體中尚未設定之一第二組位元隨機地選擇一次性可程式化記憶體之第一組位元的指令。
相關申請案之交叉參考
本申請案主張2018年3月9日申請之題為「TECHNIQUES FOR INSIDER ATTACK RESISTANCE TO PROTECT USER DATA」的美國臨時專利申請案第62/640,942號的優先權,該申請案之全部揭示內容出於所有目的在此以引用之方式併入。
本文中揭示用於防止對計算器件上之敏感資料之資料保護的未授權規避的技術。此等技術可藉由替代計算器件上之韌體及/或軟體來減輕韌體或軟體擁有者規避此等資料保護之嘗試。具有對計算器件之實體存取的未授權使用者可能試圖產生顯得合法且在執行時可存取儲存於計算器件上之敏感資料的經簽名韌體影像。本文中所揭示之技術可用於偵測與計算器件相關聯的軟體及/或韌體之未授權更新,且敏感資料可顯現為不可回收以防止未授權軟體或韌體獲得敏感資料。
計算器件可包含積體電路,諸如系統單晶片(SoC),及非揮發性記憶體(NVM) (在本文中亦被稱作「外部NVM」),由積體電路使用之敏感資料可儲存於該非揮發性記憶體中。NVM之內容可經加密以防止對NVM之內容的未授權存取。具有對計算器件之實體存取的攻擊者可能試圖產生顯得合法且在執行時可存取儲存於NVM中之敏感資料的經簽名韌體影像。本文中所揭示之技術可用於偵測計算器件的軟體及/或韌體之未授權更新,且NVM之內容可顯現為不可回收以防止未授權軟體或韌體獲得NVM之內容。
NVM之內容可受防重放機制保護。防重放機制可為基於熔絲之防重放機制,其中計算器件之積體電路之一次性可程式化記憶體的熔絲用於維持防重放計數器(ARC),該防重放計數器可用於防止對儲存於非揮發性記憶體(NVM)中之資料的重放攻擊。ARC可用於經由使用訊息鑑認或其他方式提供NVM之內容的資料完整性。當與硬體唯一金鑰(HUK)或秘密資訊一起使用以產生可用於加密NVM之內容的密碼鍵時,ARC可用於提供NVM之內容(在本文中亦被稱作「有效負載」資料)的資料機密性。ARC由安全處理子系統使用以在有效負載經加密及儲存於NVM中之前恢復有效負載的值。
ARC可維持於積體電路之一次性可程式化記憶體中,該一次性可程式化記憶體可能被藉由攻擊者引入至器件之未授權軟體及/或韌體更新存取。本文中所揭示之技術可用於偵測此未授權更新且破壞一次性可程式化記憶體中之ARC,以使得攻擊者將不能恢復儲存於NVM中之內容。攻擊者可能夠自NVM獲得有效負載。但用作加密金鑰之ARC值將已經顯現為不可回收,因此防止攻擊者恢復有效負載之未加密內容。雖然本文中所揭示之實例被稱為「基於熔絲之」防重放機制,但本文中所揭示之技術不限於使用熔絲之一次性可程式化記憶體的實施。其他實施可使用反熔絲或可設定一次且可用於表示資料位元而非熔絲的其他組件。
1 為實例計算器件100之功能方塊圖。計算器件100包含安全處理子系統(SPSS) 110及在安全處理子系統110外部之可由安全處理子系統110使用以儲存資料的外部非揮發性記憶體(NVM) 150。安全處理子系統110可實施為系統單晶片(SoC)或包括實施於積體電路上之處理器元件及記憶體的其他類似器件。安全處理子系統110可實施於積體電路上,且NVM 150可實施為未實施於與安全處理子系統110相同的積體電路上的晶片外記憶體或外部記憶體。安全處理子系統110可通信地與NVM 150耦接(直接地或間接地連接)且經組態以將資料儲存於NVM 150中且自NVM 150存取資料。
安全處理子系統之處理器190可實施本文中關於安全處理子系統110所論述的不同功能及功能元件。舉例而言,以下功能元件:(雜湊訊息鑑認碼) HMAC區塊130、HMAC區塊135及/或匹配區塊145,可由安全處理子系統110之處理器190實施。HMAC區塊130、HMAC區塊135及匹配區塊145之功能在下文更詳細描述。 1 中所說明的實例實施包括用於使用寫入至具有有效負載155之NVM 150的訊息鑑認碼(MAC) 160驗證儲存於NVM 150中之有效負載155的完整性的此等功能區塊。然而,其他實施可將不同技術用於驗證儲存於NVM 150中之有效負載155的完整性。此外,安全處理子系統110可經組態以產生待寫入至外部NVM 150的資料之至少一部分的密碼簽名或資料之摘要。舉例而言,安全處理子系統110之處理器190可經組態以產生資料之至少部分的雜湊或資料之摘要及加密資料之雜湊或摘要。經加密雜湊可儲存於替代MAC 160或除MAC 160以外具有資料之外部NVM 150中。
安全處理子系統亦可由通用處理器,諸如計算器件100之處理器190實施,該通用處理器可經組態以將安全處理資源及記憶體與用於非安全應用程式之一般處理資源及記憶體分隔。安全處理子系統110可為處理器可執行程式碼及安全資料儲存器提供安全執行環境,該安全執行環境可防止對儲存於其中之資料的未授權存取及/或防止安全處理子系統110之處理器對處理器可執行程式指令的未授權執行。安全處理子系統110可實施包含處理器190之安全區域的受信任執行環境(TEE)。TEE可為TEE內之程式碼及資料提供隔離的操作環境,該隔離的操作環境為TEE內之程式碼及資料提供機密性及完整性。計算器件100可包括非安全處理子系統(未示出),不受信任程式碼可在該非安全處理子系統中執行且非敏感資料可儲存於該非安全處理子系統。處理器190可提供此非安全處理子系統,或計算器件100可包括提供與安全處理子系統110分隔之非安全處理環境的一或多個額外處理器(未示出)。
安全處理子系統110可包括揮發性記憶體120及非揮發性記憶體,諸如一次性可程式化記憶體125。揮發性記憶體120可包含記憶體,其經組態以在電力經提供至揮發性記憶體120時維持儲存於其中之資料。若供應到安全處理子系統110之電力丟失,則揮發性記憶體120之內容將丟失。一次性可程式化記憶體125包含持續記憶體,即使至安全處理子系統110之電力丟失,該持續記憶體保留儲存於其中之資料。一次性可程式化記憶體125可包含各自表示資料位元的複數個熔絲,且特定位元之值可藉由使對應熔絲熔斷而設定。熔絲值一旦設定則不能改變。熔絲在其原始狀態下之值可用於表示位元值零(「0」),且一旦熔斷,則熔絲值可用於表示位元值一(「1」)。在其他實施例中,熔絲在其原始狀態下之值可用於表示位元值一(「1」),且一旦熔斷,則熔絲值可用於表示位元值一(「0」)。此外,可使用其他類型的一次性可程式化記憶體125。一次性可程式化記憶體125可包含反熔絲或可設定一次且可用於表示資料位元而非熔絲之其他組件。一次性可程式化記憶體125之一次性可程式化性質意謂一次性可程式化記憶體125最終可耗盡。本文中所揭示之技術降低ARC在一次性可程式化記憶體125中遞增所需之頻率,因此降低一次性可程式化記憶體125消耗的速率。
安全處理子系統110可包括內部電源195。內部電源可用作次級電源,其可在來自外部電源185之電力丟失的情況下向安全處理子系統提供電力。內部電源195可包含電容器、電池或可儲存電力之其他器件,其可在來自外部電源185之電力丟失的情況下在至少一較短時間段內為安全處理子系統110供電。內部電源195可經組態以給安全處理子系統110提供充足電力,以允許安全處理子系統110將儲存於揮發性記憶體120中之當前防重放計數器(ARC) 140寫成儲存於一次性可程式化記憶體125中之ARC 165,以使得ARC並不因計算器件丟失電力而丟失。
外部電源185為與安全處理子系統110分離且可自計算器件100拆卸之電源。外部電源185可包含電池或可向計算器件100之組件提供電力的其他器件。計算器件100可包括感測器( 1 中未示出),其可回應於感測器偵測到計算器件之實體入侵將信號提供至安全處理子系統110。外部電源185可為可拆卸的,使得外部電源185可經移除且經另一外部電源185替換。計算器件100之使用者可用另一外部電源185調換外部電源185,例如,在電源耗盡或器件之使用者希望強制計算器件100重啟時。
安全處理子系統110可經組態以回應於電力丟失事件將防重放計數器(ARC)值(被稱作ARC 165)儲存於一次性可程式化記憶體125中。如本文中所使用之術語「電力丟失」指示外部電源185不再向安全處理子系統110提供電力,提供不足以使安全處理子系統110進行操作之電力位準,或外部電源185之剩餘功率位準已達到安全處理子系統之電力丟失即將發生的臨限值。電力丟失可能由自計算器件100移除外部電源185引起,其中外部電源185包含電池或其他可拆卸電源。在此情形中之電力丟失事件可藉由以下各者偵測到:外部電源185不再向安全處理子系統110提供電力,外部電源185不再提供使安全處理子系統110進行操作之充足電力位準,外部電源185達至預定位準,基於來自實體入侵感測器之指示計算器件100之電池隔室或殼體已打開的信號,或此等因素中之兩者或更多者之組合。
一或多個其他事件亦可觸發安全處理子系統110之處理器190將來自非揮發性記憶體之ARC 140作為ARC 165儲存於一次性可程式化記憶體125中。此等觸發事件可包括但不限於:(1)安全處理子系統110作出外部電源185之剩餘功率位準已達至指示來自外部電源185之電力可能即將丟失的預定臨限值及/或外部電源可能不再能夠提供足以使安全處理子系統110進行操作之電力位準的判定(2)計算器件100正關閉或再啟動且來自非揮發性記憶體之ARC 140若未作為ARC 165寫入一次性可程式化記憶體125則將丟失,及(3)安全處理子系統110自計算器件100之感測器接收到指示電池或其他外部電源可能自計算器件100移除之信號。
計算器件100之安全處理子系統110可使用ARC 140以防止重放攻擊,在重放攻擊中攻擊者試圖將過期但另外有效之資料置放於外部NVM 150中以試圖獲得對安全處理子系統110之存取或使安全處理子系統110執行某一未授權動作。為避免重放攻擊,安全處理子系統110依賴於ARC 140以確保儲存於NVM 150中之資料在不偵測的情況下無法操縱。安全處理子系統可在安全處理子系統110之揮發性記憶體120中產生在本文中被稱作有效負載資料115之資料。然而,可用作積體電路之晶載記憶體的非揮發性記憶體的量通常受大小及成本限制,且安全處理子系統110可能需要將有效負載資料115卸載至外部NVM 150以便為處理任務釋放記憶體。安全處理子系統110可將有效負載資料115卸載至外部NVM 150,該有效負載資料可為稍後所需且可寫入外部NVM 150以供持久性儲存,此係由於一次性可程式化記憶體125之大小通常有限且一次性可程式化記憶體125之每一位元可僅寫入一次。
安全處理子系統110之處理器190可自一次性可程式化記憶體125擷取ARC 165,例如在計算器件100通電時,且將ARC 140儲存於揮發性記憶體120中。ARC 140可維持於揮發性記憶體120中直至使得安全處理子系統110之處理器190用儲存於揮發性記憶體120中之ARC 140的當前值來更新一次性可程式化記憶體中之ARC 165的觸發事件發生為止。觸發事件為指示安全處理子系統110之外部電源可能或已經丟失或不再能夠向安全處理子系統110提供充足能量位準以使安全處理子系統110進行操作,且因此揮發性記憶體120之內容除非備份否則將丟失的事件。將ARC 140維持於揮發性記憶體120中直至此觸發事件發生為止使得安全處理子系統110顯著減少否則將用於將ARC 165維持於一次性可程式化記憶體125中之熔絲的數目。ARC 140在每當資料寫入外部NVM 150時更新。若ARC 165維持於一次性可程式化記憶體125中,則一次性可程式化記憶體125之至少一個熔絲將在每當至NVM之寫入事件發生時熔斷。歸因於用於製造安全處理子系統110在上面實施之積體電路的大小及成本考量,包含一次性可程式化記憶體125的熔絲數目通常相對較小。一次性可程式化記憶體125之熔絲可能迅速耗盡,使安全處理子系統110不具有用於將ARC安全地儲存於持續記憶體中之晶載儲存,該等ARC在計算器件100斷電或再啟動時將不會丟失。
ARC 140可由安全處理子系統110使用以產生可寫入具有待儲存於其中之有效負載155的外部NVM 150之訊息鑑認碼(MAC) 160。MAC 160可用於向有效負載155提供完整性保護。當有效負載155經存取時,MAC可由處理器190重新計算。若有效負載155待修改,則儲存有有效負載155之MAC 160將不匹配重新計算的MAC值。
HMAC 區塊130可經組態以藉由將帶金鑰HMAC演算法應用於儲存在揮發性記憶體120中之待寫入外部NVM 150的有效負載資料115而產生MAC 160。HMAC 區塊130可將ARC 140的至少一部分用作HMAC演算法之金鑰參數。安全處理子系統110可在計算MAC 160之前加密或以其他方式處理有效負載資料115。安全處理子系統110可經組態以將MAC 160及有效負載155寫入外部NVM 150。安全處理子系統110可經組態以經由匯流排或計算器件100之其他通信路徑與外部NVM 150通信。
安全處理子系統110可經組態以自外部NVM 150擷取有效負載155及MAC 160。HMAC區塊135可自揮發性記憶體120接收有效負載155及ARC 140之當前值且基於當前ARC 140重新計算有效負載155之MAC。匹配區塊145可比較新計算之MAC值與MAC 160。若MAC 160匹配新計算之MAC值,則有效負載155尚未經修改或此處不存在過期有效負載資料及過期MAC插入於外部NVM 150中之重放攻擊。若MAC 160並不匹配新計算之MAC值,則有效負載155已經修改或損壞或此處存在過期有效負載資料及/或過期MAC插入於外部NVM 150中之重放攻擊。與過期有效負載資料相關聯的MAC 160將不匹配藉由HMAC區塊135重新計算之MAC,此係由於儲存於揮發性記憶體120中之ARC 140在每當資料寫入外部NVM 150時更新。ARC 140將已遞增一或多次,此係由於MAC 160針對有效負載155經判定,因此基於ARC 140之當前值新判定的MAC將不匹配MAC 160。
HMAC 區塊130、HMAC區塊135及匹配區塊145之功能可實施於安全處理子系統之硬體中,或可實施為藉由安全處理子系統110之處理器190執行之處理器可執行程式碼。HMAC 區塊130、HMAC區塊135及匹配區塊145之功能亦可實施為處理器可執行程式碼及硬體之組合。
1 中所說明,安全處理子系統110之處理器190經組態以計算待寫入外部NVM 150之有效負載155的MAC 160。MAC 160可使用帶金鑰雜湊訊息鑑認碼(HMAC)產生。HMAC演算法經組態以接收將產生MAC值之資料及用於自資料產生MAC值之秘密金鑰。 1 說明包括HMAC區塊130之安全處理子系統110的實例,該HMAC區塊接收有效負載資料及儲存於安全處理子系統110之揮發性記憶體120中的ARC 140。ARC 140的至少一部分可由HMAC區塊130選擇以用於針對將寫入外部NVM 150之資料產生MAC 160,該資料在 1 中被稱為有效負載155。儲存於揮發性記憶體120中之ARC 140的值在MAC 160遞增以防止重放攻擊之前可遞增至新的值。ARC 140之值可使用不同技術遞增,其中ARC 140的至少一部分可使用隨機演算法或組合演算法經選擇。下文論述之 4 6 說明其中ARC之值使用不同技術遞增的實例程序。
1 中所說明的實例計算器件100亦可適用於考慮不同大小之有效負載資料115。舉例而言,有效負載大小可包含包含整個外部NVM 150之資料、對應於記憶體頁面之資料或已經標記為敏感之任何大小的資料。在無MAC 160或可經提供用於有效負載155之其他此類相關聯保護的情況下,未標記為敏感之資料可儲存於外部NVM 150中。
實例計算器件100可包括內部非揮發性記憶體127。在一些態樣中,內部非揮發性記憶體127可實施為安全處理子系統110之組件。舉例而言,安全處理子系統110可實施為系統單晶片,且內部非揮發性記憶體127可在安全處理子系統110內部。相比之下,外部NVM 150與安全處理子系統110分離實施。相比於揮發性記憶體120,其在至記憶體之電力丟失或下降至低於使記憶體120進行操作所需的位準時將丟失儲存於其中之內容,內部NVM 127 (如同外部NVM 150)為經組態以在至記憶體之電力丟失時保留該記憶體之內容的持續記憶體。相比於每一位元僅可寫入一次之一次性可程式化記憶體125,內部NVM 127及外部NVM 150可包含快閃記憶體及/或可多次寫入之其他類型的持續記憶體。內部NVM 127可儲存可藉由處理器190執行的可執行程式碼,諸如 1 中所說明之可執行程式碼(EXP) 129。外部NVM 150亦可用於儲存可藉由處理器190執行之可執行程式碼,諸如 1 中所說明之EXP 128。
計算器件100可包括與計算器件相關聯的硬體唯一金鑰(HUK) 199。HUK 199可包含儲存於一次性可程式化記憶體125中及/或計算器件100之另一安全記憶體位置中的位元串,該位元串可由處理器190存取但可由計算器件100之某些受信任組件存取但不可由不受信任程式碼存取。HUK 199可由計算器件100之原始設備製造商(OEM)產生且程式化至一次性可程式化記憶體125中。OEM可將HUK 199提供至受信任實體,該等受信任實體可將軟體及/或韌體更新提供至計算器件100以更新與計算器件100相關聯的軟體及/或韌體,以使得計算器件100可鑑認此等更新。術語「與……相關聯」在此上下文中之使用係指安裝於內部NVM 127中之軟體及/或韌體,諸如EXP 129,及/或安裝於外部NVM中軟體及/或韌體,諸如EXP 128。軟體及/或韌體且可載入至揮發性記憶體120中以由計算器件100之處理器190執行。
軟體及/或韌體之更新可包含包括已使用基於密碼之訊息鑑認碼(CMAC)演算法計算之MAC值的影像檔案。影像檔案可經由網路連接下載至計算器件100,自諸如快閃驅動器之可拆卸媒體複製至器件,及/或經由其他方式提供至計算器件100。若韌體及/或軟體更新經鑑認為真品,則包括於影像檔案中之MAC應已使用與計算器件100相關聯之HUK 199計算。處理器190可基於包括韌體及/或軟體更新之影像檔案的至少一部分且藉由將基於HUK 199之金鑰提供至CMAC演算法來計算MAC。基於HUK 199之金鑰可使用藉由處理器190執行之金鑰導出演算法自HUK 199導出。處理器190可經組態以判定若包括於影像檔案中之MAC並不匹配由處理器190計算之MAC,則更新未授權。處理器190可經組態以回應於此未授權更新破壞ARC 165且自揮發性記憶體清除ARC 140。在一些實施中,處理器190可將針對EXP 129計算之MAC 126儲存於內部NVM 127中,且可使用MAC 126來判定EXP 129是否已由於MAC 126已經計算而修改。類似地,處理器190可將針對EXP 128計算之MAC 124儲存於外部NVM 150中,且可使用MAC 124來判定EXP 129是否已由於MAC 124已經計算而修改。
影像檔案可包含二進位目標碼及/或中間碼。二進位目標碼通常包含直至二進位目標碼經連結以形成可執行檔案或資料庫檔案才可能可直接由處理器190執行之可再定位格式機器碼。二進位目標碼可包含機器語言或可包含諸如暫存器轉移語言(register transfer language,RTL)之中間語言。二進位目標碼可以不同格式分佈,諸如但不限於通用目標檔案格式(Common Object File Format,COFF)及可執行及可連結格式(Executable and Linkable Format,ELF)。中間碼可包含位元組碼。位元組碼亦可被稱作攜帶型程式碼,此係由於不同於二進位目標碼,位元組碼通常為平台無關的。中間碼通常藉由在計算器件100上執行之解譯器(或具有提前編譯器或即時編譯器之運行時間環境)執行。解譯器可在位元組碼未編譯成機器碼的情況下直接執行位元組碼。在一些實施中,位元組碼可藉由計算器件100上之編譯器(未示出)編譯成二進位目標碼。
計算器件100之安全處理子系統110可包括儲存於唯讀記憶體(ROM) 105中之安全開機載入程式119,該唯讀記憶體經組態以使用各種安全啟動機制技術鑑認一或多個韌體影像檔案及/或計算器件100之一或多個關鍵軟體分量的影像檔案。安全開機載入程式亦可經組態以在使計算器件100啟動之前計算EXP 129及/或EXP 128之CMAC。若藉由開機載入程式計算之CMAC值並不匹配先前經計算且與待由開機載入程式鑑認之可執行程式碼(例如EXP 128及/或EXP 129)相關聯的預期CMAC值(例如MAC 126及/或MAC 124),則安全開機載入程式可判定針對EXP 128及/或EXP 129之軟體及/或韌體的未授權更新已發生。
2 為說明計算器件200之功能方塊圖,該計算器件為 1 中所說明之實例計算器件100的替代性實施, 1 中所說明之計算器件100的實例實施經組態以將有效負載155及MAC 160之單個例項儲存於外部NVM 150中。 2 說明計算器件200可將多個有效負載(例如有效負載155a至155n)儲存於NVM 150中之一替代性實施,其中每一有效負載具有相關聯MAC (例如MAC 160a至160n),其中a至n表示自0至整數值n的整數值範圍。若無使用本文中所揭示之技術之安全的資料儲存於NVM 150中,則n之下限可為零,且n值的上限可由包含揮發性記憶體120、NVM 150之大小及/或其他因素之記憶體的量限制。
2 中之計算器件100之實例實施所使用的技術與用於 1 中之計算器件100之實例實施中的技術略微不同,以便於將多個有效負載(例如有效負載155a至155n)及多個MAC (例如MAC 160a至160n)儲存於NVM 150中。在 1 及圖 2 中所說明之實例實施之間不同的一個態樣為ARC儲存於安全處理子系統110之揮發性記憶體120中之方式相對於上文關於 1 描述者。關於 1 中所說明之實例實施,包含靜態基線分量及瞬態分量之單個ARC 140可儲存於揮發性記憶體120中。相比之下,在 2 中所說明的實施中,可為儲存於NVM 150中之多個有效負載(例如有效負載155a至155n)維持多個ARC值。每一有效負載155可與不同瞬態分量值相關聯。一旦經判定,ARC之靜態基線分量280保持相同直至計算器件100再次通電、再啟動或經歷使得靜態基線分量遞增之另一事件為止。相比之下,在 1 中所說明之實施中ARC之瞬態分量可在每當有效負載155寫入NVM 150時更新。在 2 中所說明的實施中,一單獨瞬態分量與寫入NVM 150之每一有效負載155a至155n相關聯。該瞬態分量可在每當一新的有效負載寫入NVM 150或現有有效負載中之一者更新時遞增。下文論述之 4 6 說明可用於遞增由計算器件100維持之ARC值的瞬態分量的各種技術。
1 中所說明之實施及 2 中所說明之實施兩者中,與有效負載相關聯之瞬態分量的值維持於揮發性記憶體120中,以使得處理器190能夠恢復儲存於NVM中之有效負載155的內容。舉例而言,安全處理子系統110可經組態以維持使儲存於NVM 150中之有效負載155a至155n中之每一有效負載的瞬態分量270a至270n中之各別一者相關聯的一查找表。該查找表可使儲存於NVM 150中之各別有效負載155a至155n的位址與用於保護有效負載155a至155n之ARC (包含瞬態分量270a至270n中之一瞬態分量及一靜態基線分量280)相關聯。安全處理子系統110可將查找表儲存於揮發性記憶體120中。安全處理子系統110可防止非受信任軟體存取查找表及儲存於其中之ARC資訊。
2 中所說明之實施中,與複數個有效負載中之每一者相關聯的ARC可共用相同靜態基線分量280。然而,各別有效負載之瞬態分量270 (由 2 中之瞬態分量270a至270n表示)可針對儲存於NVM 150中之複數個有效負載155a至155n中之每一者不同。安全處理子系統110可將多個瞬態分量(例如瞬態分量270a至270n)以及靜態基線分量280儲存於揮發性記憶體120中。有效負載資料在寫入NVM 150之前最初可儲存於揮發性記憶體120中。若靜態基線分量280尚未經計算,則安全處理子系統110之處理器190可經組態以基於儲存於一次性可程式化記憶體125中之ARC 165判定靜態基線分量280。
靜態基線值經儲存且藉由 1 及圖 2 中所說明之實施略微不同地使用。在 1 中所說明之實例中,靜態基線分量用於建立儲存於揮發性記憶體120中之ARC 140的初始值。相比之下,在 2 中所說明之實例實施中,靜態基線分量初始化為揮發性記憶體120中之靜態基線分量280。處理器190組合靜態基線分量280與瞬態分量270a至270n中之各別一者以判定與儲存於NVM 150中之各別有效負載155a至155n相關聯的各別ARC。
1 或圖 2 中所說明之實施中之任一者的靜態基線值可自儲存於一次性可程式化記憶體125中之ARC 165導出。可在計算器件100再啟動或通電時及在任何其他韌體或軟體程式執行之前判定靜態基線值。ARC 165在靜態基線值經判定時改變。此方法可阻止重放攻擊分級,其中自計算器件100或200移除電池或其他外部電源以試圖重設由安全處理子系統110使用之計數器值。此方法亦可防止未授權軟體執行及獲得對NVM 150之敏感內容的存取,該等敏感內容先前經加密或使用儲存於一次性可程式化記憶體125中之前一ARC值以其他方式受保護。靜態基線值之判定可藉由在處理器190之唯讀記憶體(ROM)中實施之無法由韌體或軟體更新改變的開機載入程式執行。圖4 6 中所說明之實例(其在下文中經詳細論述)提供可如何計算靜態基線及一旦靜態基線已經更新可如何遞增ARC的實例。每當觸發判定新靜態基線值之事件發生時,安全處理子系統110之處理器190選擇在一次性可程式化記憶體125中尚未設定的至少一個位元。至少一個位元可隨機地選擇或可使用組合演算法選擇。處理器190藉由使適當熔絲、反熔絲或其他組件熔斷設定一次性可程式化記憶體125中之所選至少一個位元的值以遞增儲存於一次性可程式化記憶體125中之ARC 165。
靜態基線分量280可維持於NVM 150中直至使得安全處理子系統110之處理器190更新一次性可程式化記憶體125中之ARC 165的至少一個觸發事件發生為止。此等觸發事件可類似於上文關於 1 所論述的彼等。在一些實施中,安全處理子系統110可將靜態基線分量280作為ARC 165寫入一次性可程式化記憶體125。處理器190可經組態以組合瞬態分量270與靜態基線分量280 (例如,如 4 至圖 6 中所說明)以產生待寫成儲存於一次性可程式化記憶體125中之ARC 165的ARC。處理器190可經組態以選擇瞬態分量270之最近判定的值以用於產生待寫成儲存於一次性可程式化記憶體125中之ARC 165的ARC或可選擇揮發性記憶體120中之瞬態分量270a至270n中之一者的值。
2 中所說明之安全處理子系統110的實施中,處理器190可針對每一有效負載(例如155a至155n)計算MAC值(例如MAC 160a至160n)。瞬態分量(例如瞬態分量275a至275n)亦可儲存有有效負載及MAC。安全處理子系統110可經組態以任選地將瞬態分量270a至270n (作為瞬態分量275a至275n)以及有效負載155a至155n及MAC 160a至160n寫入NVM 150。安全處理子系統110可經組態以將瞬態分量270a至270n之複本維持於揮發性記憶體120中且將瞬態分量275a至275n儲存於NVM 150中。有效負載155a至155n中之各別一者的MAC 160a至160n可使用與該有效負載155a至155n相關聯之ARC計算,該ARC包含靜態基線分量280及與有效負載155a至155n相關聯之瞬態分量270a至270n的各別瞬態分量之位元的並集。可使用如上文關於 1 所論述之HMAC演算法使用與有效負載相關聯之ARC的至少一部分計算MAC。處理器190可使用與用於計算儲存於NVM 150中之MAC相同的技術重新計算有效負載中之各別一者的MAC,且比較所計算MAC值與儲存於NVM 150中之值以判定有效負載是否已損壞或由於有效負載寫入NVM 150而操縱。
3 為可用於實施 1 及圖 2 中所說明之計算器件100及200之實例計算器件300的簡化方塊圖。 3 為說明實例計算器件300之各種組件的示意圖,該實例計算器件可與 1 及圖 2 中所描繪之計算器件100及200類似或相同。如由箭頭所說明, 3 的示意性框中所說明之各種特徵/組件/功能以可操作方式耦接至一起,亦即直接地或間接地(例如經由一或多個中間組件)連接。計算器件300之組件可經由一或多個匯流排(未示出)可通信地彼此連接。可提供其他連接、機制、特徵、功能或其類似者且在必要時對其進行調適而以可操作方式耦合並組態攜帶型無線器件。此外, 3 之實例中所說明之特徵或功能中的一或多者可進一步再分,或 3 中所說明之特徵或功能中之兩者或更多者可組合。另外,可排除 3 中所說明的特徵或功能中的一或多者。
如所展示,計算器件300可包括可連接至一或多個天線302之一或多個區域網路收發器306。該一或多個區域網路收發器306包含合適的器件、電路、硬體及/或軟體以用於與無線區域存取網路(WLAN)存取點中之一或多者通信及/或偵測至/自無線區域存取網路存取點中之一或多者的信號,及/或直接地與網路內之其他無線器件通信。區域網路收發器306可包含適用於與一或多個無線存取點通信之WiFi (802.11x)通信收發器。此外,或替代地,區域網路收發器306可經組態以與其他類型的區域網路、個人網路(例如BluetoothÒ 無線技術網路)等通信。另外或替代地,可使用一或多種其他類型之短程無線網路連接技術,例如超寬頻帶、紫蜂、無線USB等。
計算器件300可包括可連接至一或多個天線302之一或多個廣域網路收發器304。廣域網路收發器304可包含合適的器件、電路、硬體及/或軟體以用於與例如WWAN存取點通信及/或偵測來自WWAN存取點中的一或多者的信號,及/或直接與網路內之其他無線器件通信。廣域網路收發器304可包含適用於與無線基地台之CDMA網路通信的CDMA通信系統。此外,或替代地,無線通信系統可包含其他類型之蜂巢式電話網路,例如TDMA、GSM、WCDMA、LTE等。另外或替代地,可使用一或多種其他類型之無線網路連接技術,包括(例如)WiMax (802.16)等。
在一些實施例中,衛星定位系統(SPS)接收器(亦被稱作全球導航衛星系統(GNSS)接收器) 308亦可與計算器件300包括在一起。SPS接收器308可連接至一或多個天線302以用於接收衛星信號。SPS接收器308可包含用於接收並處理SPS信號的任何合適硬體及/或軟體。SPS接收器308可在適當時自其他系統請求資訊,且可部分地使用藉由任何合適的SPS程序獲得的量測值執行判定計算器件300之位置所必要的計算。
外部電源385可包含電池或可向計算器件300之組件提供電力的其他器件。外部電源385可自計算器件拆卸。外部電源385可包含可拆卸式電池或可由計算器件300之使用者移除且調換為另一外部電源385的其他電源。舉例而言,計算器件300之使用者可用另一外部電源385調換外部電源385,例如,在電源耗盡或器件之使用者希望強制計算器件300重啟時。
計算器件300可包括內部電源395。內部電源395可用作次級電源,在來自外部電源385之電力丟失或由外部電源385提供之電力的位準下降至低於將使處理器310進行操作之位準的情況下,該次級電源可向處理器310,或至少向處理器310之組件(諸如TEE 390及/或一次性可程式化記憶體325)、揮發性記憶體392及記憶體314提供電力。內部電源395可包含電容器、電池或可儲存電力之其他器件,其可在來自外部電源385之電力丟失的情況下在至少一較短時間段內為處理器310及記憶體314供電。內部電源395可經組態以給處理器310提供充足電力以將儲存於揮發性記憶體392中之當前防重放計數器(ARC)值(例如ARC 140、瞬態分量270a至270n及/或靜態基線分量280)寫入一次性可程式化記憶體325,以使得ARC值並不因計算器件300丟失電力而丟失。
3 中進一步說明,實例計算器件300包括耦接至控制器/處理器310的一或多個感測器312a至312g。舉例而言,感測器312a至312g可包括用以提供相對移動及/或定向資訊(其獨立於自由廣域網路收發器304、區域網路收發器306及/或SPS接收器308接收之信號導出的運動資料)之運動感測器。藉助於實例(但非限制),運動感測器可包括加速度計312a、陀螺儀312b及地磁(磁力計)感測器312c (例如,羅盤),該等器件中之任一者可基於微機電系統(MEMS)或基於某一其他技術而實施。一或多個感測器312a至312g可進一步包括實體入侵感測器312d、溫度計(例如熱敏電阻器) 312e、音訊感測器312f (例如麥克風)及/或其他感測器。一或多個感測器312a至312g之輸出可以傳輸至遠端器件或伺服器(經由廣域網路收發器304及/或區域網路收發器306,或經由計算器件300之某一網路埠或介面)之資料(以及與計算器件300通信及/或以此資料作為位置資料之節點的天線資訊)的部分之形式提供,以供儲存或進一步處理(例如與計算器件300通信之AP的天線資訊可藉由匹配由行動器件之感測器量測的感測器資料與維持於伺服器處且包括各種無線節點之天線資訊及由一或多個無線器件先前獲得之相關聯感測器資料紀錄來推斷)。如 3 中進一步所展示,在一些實施例中,一或多個感測器312a至312g亦可包括攝影機312g (例如電荷耦合器件(CCD)類攝影機、基於CMOS之影像感測器等),其可產生可顯示於使用者介面器件(諸如顯示器或螢幕)上且可進一步用於判定環境照明位準及/或與色彩有關之資訊及UV及/或紅外照明之存在及位準的靜止或移動影像(例如視訊序列)。
實體入侵感測器可經組態以回應於偵測到對計算器件300之實體篡改而輸出信號。對計算器件100之實體篡改可指示計算器件300之使用者試圖移除計算器件300之電池或外部電源,且安全處理系統之電力丟失可能即將發生。處理器310可經組態以監測來自實體入侵感測器312d之信號且回應於來自實體入侵感測器312d之此信號將ARC自揮發性記憶體392寫入一次性可程式化記憶體。在安全處理子系統並不包括用以在自計算器件300移除外部電源之情況下提供電力的次級內部電源,諸如內部電源195的情況下,可包括實體入侵感測器。
實體入侵感測器312d可包含機械開關,該機械開關在計算器件300之殼體打開或其中安置有外部電源185之隔室打開時經觸發,且經組態以回應於該殼體或隔室已打開而產生信號。實體入侵感測器312d亦可包括光感測器,該光感測器在計算器件300之殼體打開或其中安置有外部電源185之隔室打開時可偵測進入計算器件300之光,且可產生指示光位準之變化的信號。實體入侵感測器312d亦可包括電容性傳感器,該電容性傳感器經組態以回應於計算器件300之使用者觸摸實體入侵感測器312d或靠近感測器位置而產生信號,該信號可指示使用者可自計算器件300移除外部電源185。其他類型的感測器亦可用於回應於可指示計算器件300之外部電源185可經移除之事件產生信號。
處理器(亦被稱作控制器) 310可連接至區域網路收發器306、廣域網路收發器304、SPS接收器308及一或多個感測器312。處理器可包括提供處理功能以及其他計算及控制功能性的一或多個微處理器、微控制器及/或數位信號處理器。處理器310可耦接至非暫時性電腦可讀儲存媒體(例如記憶體314)以用於儲存用於執行行動器件內之程式化功能的資料及軟體指令。記憶體314可在處理器310上(例如在相同IC封裝內),及/或記憶體可為處理器之外部記憶體且經由資料匯流排功能上耦合。記憶體314可包含可由處理器310使用以儲存可執行程式碼之非揮發性電腦可讀媒體,該非揮發性電腦可讀媒體可用於實施 1 及圖 2 中所說明之計算器件的NVM 150。處理器310亦可耦接至揮發性記憶體392,該揮發性記憶體可用以實施 1 及圖 2 中所說明之計算器件的揮發性記憶體120。揮發性記憶體392包含當至電腦可讀記憶體之電力丟失時將丟失其中儲存之內容的電腦可讀記憶體。處理器310亦可包括非揮發性記憶體(未示出),該非揮發性記憶體可用於實施 1 及圖 2 中所說明之計算器件的NVM 127,且可用於儲存可執行程式碼,諸如EXP 129。
多個軟體單元及資料表可駐留於記憶體314中且可由310處理器使用以便管理與遠端器件/節點兩者之通信,執行定位判定功能及/或執行器件控制功能。如 3 中所說明,在一些實施例中,記憶體314可包括使用者鑑認單元316及軟體鑑認單元318。單元及/或數據結構之功能可取決於計算器件300之實施以不同方式組合、分離及/或結構化。舉例而言,使用者鑑認單元316及/或軟體鑑認單元318各自可至少部分地作為基於硬體之實施實現。記憶體314亦可包括可用於在計算器件300上實施一或多個應用程式、服務、程式等的可執行程式碼(EXP) 320。EXP 320可藉由處理器310執行且可用於實施儲存於 1 及圖 2 中所說明之計算器件的NVM 150中之EXP 128。
使用者鑑認單元316及/或軟體鑑認單元318可為在計算器件300之處理器310上運行之程序。使用者鑑認單元316可經組態以使用各種方式鑑認計算器件300之使用者。使用者鑑認單元316可經組態以藉由要求使用者輸入密碼、PIN、滑動圖案或應僅為計算器件之經授權使用者所知的其他此類輸入來鑑認使用者。使用者鑑認單元316可經組態以使用自感測器312中的一或多者獲得之生物統計資料鑑認使用者。計算器件300可包括經組態以掃描計算器件300之使用者的一或多個實體特性的感測器,諸如經組態以捕捉使用者之虹膜及/或視網膜、面部特徵及/或可用於鑑認計算器件300之使用者的其他解剖學資訊的影像的感測器。行動器件之感測器312a至312g亦可包括經組態以收集使用者之話音資料的感測器,該話音資料可由處理器190分析以判定計算器件300之當前使用者之話音的特性是否匹配行動器件之經授權使用者之話音的特性。若計算器件300之使用者經判定並非計算器件300之經授權使用者,則使用者鑑認單元316可經組態以向處理器310提供計算器件之使用者並非計算器件300之經授權使用者的指示。處理器310可經組態以回應於此指示破壞儲存於一次性可程式化記憶體325中之ARC且清除儲存於揮發性記憶體392中之任何ARC分量。
軟體鑑認單元318可經組態以鑑認計算器件300之韌體及/或軟體的更新。如關於 1 所論述,軟體及/或韌體更新可作為一或多個影像檔案經接收。韌體及/或軟體之更新可自各種來源接收到。韌體及/或軟體之合法來源可包括但不限於原始設備製造商(OEM)、作業系統及/或器件驅動器提供商、網路提供商及/或企業提供商,其已補貼器件及/或對器件之安置及/或組態施加控制。惡意方可藉由嘗試安裝或藉由欺騙器件之使用者以在器件上安裝惡意韌體及/或軟體更新來試圖獲得對計算器件300之控制。
軟體鑑認單元318可經組態以鑑認與計算器件300相關聯之韌體及/或軟體的更新。術語「與……相關聯」在此上下文中之使用係指安裝於計算器件300之非揮發性記憶體中且可載入至揮發性記憶體392以供計算器件300之處理器310執行的軟體及/或韌體。軟體及/或韌體可為可藉由TEE 380執行之受信任韌體或軟體。
軟體鑑認單元318可經組態以使用HUK (諸如上文關於 1 及圖 2 所論述的HUK 199)來計算與更新之軟體相關聯的MAC值,且比較該值與同包括韌體及/或軟體更新之影像檔案包括在一起的MAC值。若所計算MAC值與來自影像檔案之值並不匹配,則軟體鑑認單元318可經組態以向處理器310產生更新未鑑認之指示。處理器310可經組態以回應於此指示破壞儲存於一次性可程式化記憶體325中之ARC且清除儲存於揮發性記憶體392中之任何ARC分量。
處理器310可包括受信任執行環境(TEE) 380,及/或計算器件300可包括安全元件390。受信任執行環境380及/或安全元件390可用於實施圖1中所說明之安全處理子系統110,且外部NVM 150可藉由記憶體314或計算器件300之另一記憶體(未示出)實施。
處理器310亦可包括受信任執行環境380。受信任執行環境380可實施為可用於處理敏感資料且將敏感資料儲存於與富執行環境分隔之環境中的處理器310之安全區域,作業系統及/或應用程式(諸如軟體鑑認單元318之彼等)可在該富執行環境中執行。受信任執行環境380可經組態以執行受信任應用程式,其藉由增強儲存於其中之敏感資料的機密性、整合性及保護,為敏感資料提供端對端安全性。可信執行環境380可用於儲存加密金鑰、防重放計數器資料及/或其他敏感資料。處理器310亦可包括可用於實施 1 及圖 2 中所說明之計算器件100之一次性可程式化記憶體125的一次性可程式化記憶體。
處理器310亦可包括一次性可程式化記憶體325,其可實施 1 及圖 2 中所說明之計算器件100及200的一次性可程式化記憶體125。一次性可程式化記憶體325包含即使至記憶體之電力丟失亦保留儲存於其中之資料的持續記憶體。一次性可程式化記憶體325可包含各自表示資料位元之複數個熔絲,且特定位元之值可藉由使對應熔絲熔斷而設定。熔絲之值一旦設定則無法改變。此外,可使用其他類型的一次性可程式化記憶體325。一次性可程式化記憶體325可包含反熔絲或可設定一次且可用於表示資料位元而非熔絲之其他組件。
計算器件300可包括安全元件390 (在本文中亦被稱作受信任組件)。計算器件300除受信任執行環境380之外或作為代替可包括安全組件390。安全元件390可包含可用於執行安全應用程式及與此類應用程式相關聯之機密資料的自主及防篡改硬體。安全元件390可用於儲存加密金鑰、防重放計數器資料及/或其他敏感資料。安全元件390亦可包括一次性可程式化記憶體,其可用於實施 1 及圖 2 中所說明之計算器件的一次性可程式化記憶體125。安全元件390可包含近場通信(NFC)標籤、用戶識別模組(SIM)卡或可用於安全地儲存資料之其他類型的硬體器件。安全元件390可以永久性或半永久性方式與計算器件300之硬體整合,或在一些實施中,可為可用於安全地儲存資料及/或為應用程式提供安全執行環境的計算器件300之可拆卸式組件。
計算器件300可進一步包括提供合適介面系統之使用者介面350,諸如允許使用者與計算器件300之交互的麥克風/揚聲器352、小鍵盤354及顯示器356。麥克風/揚聲器352 (其可與音訊感測器312f相同或不同)提供話音通信服務(例如使用廣域網路收發器304及/或區域網路收發器306)。小鍵盤354可包含用於使用者輸入的合適按鈕。顯示器356可包括合適的顯示器,諸如背光液晶顯示器(LCD),且可進一步包括用於額外使用者輸入模式之觸控式螢幕顯示器。
1 及圖 2 中所說明之計算器件的處理器190或計算器件300之處理器310提供用於判定與積體電路相關聯之軟體或韌體已經進行未授權更新的構件,及用於回應於判定如上文關於 1 至圖 3 所論述之軟體或韌體已經進行未授權更新,破壞維持於積體電路之一次性可程式化記憶體中且由積體電路使用以保護非揮發性記憶體之內容的防重放計數器(ARC)值的構件。
處理器190或310提供用於判定軟體或韌體已經進行未授權更新的構件,構件包括用於偵測積體電路上之軟體的變化的構件;用於回應於偵測到積體電路上之軟體的變化,判定使用者或軟體中的至少一者是否經鑑認為真品的構件;及用於作為使用者或軟體中的至少一者經鑑認為非真品的回應,判定積體電路上之軟體的變化未經授權的構件。使用者鑑認單元316及/或軟體鑑認單元318亦提供用於回應於偵測到積體電路上之軟體的變化判定使用者或軟體中的至少一者是否經鑑認為真品的構件。處理器190及處理器310亦提供用於判定使用者是否已經鑑認的構件,及用於回應於使用者尚未經鑑認執行至少一個鑑認程序以鑑認使用者的構件。使用者鑑認單元316亦可提供用於判定使用者是否已經鑑認的構件,及用於回應於使用者尚未經鑑認執行至少一個鑑認程序以鑑認使用者的構件。
處理器190或處理器310提供用於鑑認軟體的構件,構件包括用於藉由使用自與積體電路相關聯的硬體唯一金鑰(HUK)導出之金鑰將基於密碼之訊息鑑認碼(CMAC)演算法應用於軟體來判定軟體之訊息鑑認碼(MAC)的構件,及用於比較MAC與經先前判定MAC以判定該MAC是否匹配經先前判定MAC的構件。使用者鑑認單元316亦可提供用於藉由使用自與積體電路相關聯的硬體唯一金鑰(HUK)導出之金鑰將基於密碼之訊息鑑認碼(CMAC)演算法應用於軟體來判定軟體之訊息鑑認碼(MAC)的構件,及用於比較MAC與經先前判定MAC以判定該MAC是否匹配經先前判定MAC的構件。
處理器190或處理器310提供用於破壞ARC值的構件,構件包括用於藉由維持於積體電路之揮發性記憶體中的第二ARC值更新儲存於一次性可程式化記憶體中之第一ARC值的構件。處理器190或310亦提供用於判定一次性可程式化記憶體之待設定的第一數目個位元的構件;用於判定包含第一數目個位元之一次性可程式化記憶體之第一組位元的位置的構件;及用於藉由設定一次性可程式化記憶體之第一組位元更新儲存於一次性可程式化記憶體中之ARC值的構件。處理器190或處理器310亦提供用於判定一次性可程式化記憶體的第一數目個位元的構件,其包括用於基於在一次性可程式化記憶體中已設定之第二數目個位元判定一次性可程式化記憶體之將設定的第一數目個位元的構件。處理器190或處理器310亦提供用於判定一次性可程式化記憶體之哪些位元的構件,其包含用於自一次性可程式化記憶體中尚未經設定的第二組位元隨機地選擇一次性可程式化記憶體的第一組位元的構件。
4 6 說明可用於表示ARC之實例熔絲映射405、410、415、420、425、430,該ARC可包含儲存於揮發性記憶體120中的 1 中之ARC 140或 2 中之瞬態分量270a至270n及靜態基線分量280。在 1 中所說明之實例實施中,單個ARC 140儲存於揮發性記憶體120中。相比之下,在 2 中所說明之實例實施中,包含瞬態分量及靜態基線分量之多個ARC儲存於有效負載155a至155n中之每一者的揮發性記憶體,該等有效負載儲存於NVM 150中。每一ARC包含由所有ARC共用之靜態基線分量280及特定針對於NVM 150中之特定有效負載155a至155n的瞬態分量270a至270n。
每一熔絲映射最初表示位元值之陣列,該等位元值表示特定熔絲、反熔絲或與該位元相關聯之其他組件在一次性可程式化記憶體125中是否已熔斷。熔絲映射可使用一維或多維陣列表示,本文中熔絲映射405、410、415、420、425、430為二維陣列。熔絲映射可儲存於揮發性記憶體120中,且處理器190可經組態以在每當資料待寫入外部NVM 150時存取揮發性記憶體120且遞增儲存於揮發性記憶體120中的ARC。經更新ARC的至少一部分可用於判定MAC 160,該MAC可用於由於資料寫入外部NVM 150判定有效負載155 (寫入外部NVM 150之資料)尚未經修改。在 2 中所說明之實施中,每一有效負載155a至155n與其自身各別MAC 160a至160n及瞬態分量275a至275n相關聯。各別瞬態分量275a至275n可與靜態基線分量280組合以判定與各別瞬態分量275a至275n相關聯之各別有效負載155a至155n的MAC 160a至160n。
此等技術可用於由於ARC用於產生MAC而防止重放攻擊。若攻擊者將舊MAC之複本及有效負載155引入至外部NVM 150中,則安全處理子系統110將辨識有效負載155已經修改或損壞,此係由於儲存有有效負載155之MAC 160將未匹配針對有效負載計算之MAC的期望值。安全處理子系統110可使用當前ARC計算有效負載155之MAC且比較該MAC值與MAC 160。若兩個MAC並不匹配,則外部NVM 150中之資料已經損壞或修改。
4 為說明用於根據本文中所揭示之技術維持防重放計數器(ARC)的基於隨機數之技術之熔絲映射的圖式。 4 中所說明之技術可藉由 1 及圖 2 中所說明之計算器件100及200實施。 4 中所說明之技術使用一系列熔絲映射來說明:熔絲映射405、熔絲映射410、熔絲映射415、熔絲映射420、熔絲映射425及熔絲映射430,該一系列熔絲映射表示安全處理子系統110之一次性可程式化記憶體125中之熔絲陣列。熔絲映射中之每一方形表示可熔斷以設定對應位元值之一個熔絲或反熔絲。已經設定之位元值在該方形中由數字「1」表示。然而,在其他實施中,位元值可由位元值零表示。方形之陰影表示設定特定位元之方式。在 4 中所說明之實例中,具有全黑背景之方形指示位元經設定為與(ARC)相關聯之靜態基線值的部分,具有以棋盤圖案加陰影之背景的方形指示除已經選擇以防止回退攻擊之靜態基線以外位元經設定,且具有以菱形圖案加陰影之背景的方形指示位元經設定為隨機選擇之部分。
4 中所說明之技術可減少用於維持一次性可程式化記憶體125中之ARC之熔絲的數目。如上文所論述,當計算器件100自電池或其他電源接收電力時,ARC可維持於安全處理子系統110之揮發性記憶體120中。儲存於揮發性記憶體120中之ARC可在每當資料寫入外部NVM 150時遞增。當電源已經耗盡時及/或當實體入侵感測器312d偵測到可能指示電池或其他電源可自計算器件100移除之至計算器件100中之實體入侵時,維持於揮發性記憶體120中之ARC可寫入安全處理子系統110的一次性可程式化記憶體125。安全處理子系統110之一次性可程式化記憶體125的儲存容量通常大小受限且為有限的。包括於安全處理子系統110之一次性可程式化記憶體125中之熔絲的數目可由於實施安全處理子系統110之積體電路的成本及大小限制而受限。此外,一次性可程式化記憶體125可僅程式化一次,且因此,無法類似於可用於計算器件中之其他類型的記憶體重複使用。
4 中所說明之程序可在計算器件100通電時開始。在計算器件100斷電時,ARC之基線值可能已寫入一次性可程式化記憶體125之熔絲。安全處理子系統110之處理器190可經組態以存取一次性可程式化記憶體125且在計算器件100通電時讀取儲存於其中之ARC 165。熔絲映射405表示包含先前已寫入一次性可程式化記憶體125之ARC基線值之熔絲的6×6陣列。 4 的實例中所說明之熔絲映射的大小及組態意欲說明本文中所揭示之程序且並不意欲將此等程序限於特定大小或組態的熔絲映射。可使用熔絲映射之其他大小及/或組態(例如不同數目個列及/或行)。包括於安全處理子系統110之一次性可程式化記憶體125中之熔絲或反熔絲的數目可與 4 中所說明之實例不同(例如更多或更少)。 4 6 中所說明之技術提供將ARC儲存於在一次性可程式化記憶體125中可用的受限數目個熔絲中以使得熔絲之受限供應並未在小數目個電力循環或觸發ARC寫入一次性可程式化記憶體125的實體入侵事件中耗盡的方式。
實例熔絲映射405具有先前設定為靜態基線值的4個位元。靜態基線值可能已使用 4 6 中所說明之技術中之一者判定或可為最初用作ARC之所選種子值。用於儲存ARC之一次性可程式化記憶體125的部分最初可為空白的,其中無熔絲或反熔絲熔斷,熔絲映射405中所說明之儲存的最初且靜態基線值可能表示自揮發性記憶體120寫入一次性可程式化記憶體125的前一ARC值。安全處理子系統110之處理器可存取一次性可程式化記憶體125,自一次性可程式化記憶體125讀取熔絲映射值,且將熔絲映射之表示儲存於安全處理子系統110之揮發性記憶體120中。
在自一次性可程式化記憶體125載入前一基線值之後,安全處理子系統110之處理器190可選擇至少一個位元以添加至相比於熔絲映射405如熔絲映射410中所說明之前一基線。處理器190可經組態以自熔絲映射之尚未設定的位元隨機地選擇至少一個位元。處理器可經組態以熔斷與已在一次性可程式化記憶體125中經選擇之一或多個位元相關聯的熔絲以建立新的靜態基線值。新的基線值防止重放攻擊,其中攻擊者試圖將舊資料置放至外部NVM 150中且使安全處理子系統110處理舊資料。參考 1 中所說明之實例,儲存於外部NVM 150中之資料包括有效負載155及MAC 160。可使用儲存於揮發性記憶體120中之當前ARC為有效負載155重新計算MAC 160。若舊資料置放於外部NVM 150中,由於維持於揮發性記憶體120中之ARC在每當資料寫入外部NVM 150時遞增,則重新計算之MAC的值與MAC 160將不再匹配。
熔絲映射410亦說明程序之另一態樣。藉由處理器190選擇至少一個額外位元作為ARC之隨機選擇分量。至少一個位元係選自在儲存於揮發性記憶體120中之熔絲映射中尚未設定之熔絲。在 4 中所說明之實例中,隨機分量包括三個位元,但隨機分量可包括更多或更少數目個位元。隨機選擇在每當資料寫入外部NVM 150時再次選擇。ARC之隨機選擇部分並未寫入一次性可程式化記憶體125之熔絲。隨機選擇部分僅維持於儲存在揮發性記憶體120中之熔絲映射的表示中。
熔絲映射415說明揮發性記憶體120中已回應於資料寫入外部NVM 150而更新的熔絲映射405之一實例。更新的靜態基線值包括添加至自一次性可程式化記憶體125擷取之靜態基線的至少一個位元。但,ARC之隨機選擇部分經一或多個位元之新隨機選擇置換。在熔絲映射415中所說明之實例中,三個位元隨機地選自並非經更新靜態基線之部分的熔絲映射的位元。每當ARC之隨機分量在資料寫入外部NVM 150時經重新判定時,更多或更少數目個位元可選自並非經更新靜態基線之部分的可用位元。
熔絲映射420說明揮發性記憶體120中已回應於資料寫入外部NVM 150而更新的熔絲映射415之一實例。同樣,來自熔絲映射之位元的新隨機選擇係選自並非經更新靜態基線之部分的位元。在熔絲映射420中所說明之實例中,四個位元係選自可用位元,但更多或更少數目個位元可選自在每當ARC之隨機分量在資料寫入外部NVM 150時經重新判定時並非經更新靜態基線之部分的可用位元。
處理器190判定電源已經耗盡及/或判定實體入侵感測器312d已偵測到至計算器件100中之實體入侵。處理器接著存取揮發性記憶體120中之當前熔絲映射且將彼等值作為新的靜態基線值寫入一次性可程式化記憶體125之熔絲。在 4 的實例中,揮發性記憶體120中之熔絲映射處於由熔絲映射420說明之狀態。在此映射中設定之熔絲將變為新的靜態基線值,該新的靜態基線值藉由如由熔絲映射425表示之處理器寫入一次性可程式化記憶體125。
熔絲映射430說明揮發性記憶體120中之實例熔絲映射,其中熔絲映射425中所說明之靜態基線已經更新以包括額外位元。處理器190可將額外位元寫入一次性可程式化記憶體125之熔絲。處理器亦可選擇一組一或多個隨機選擇之位元,其將來自熔絲映射之並非經更新靜態基線之部分的位元包括於非揮發性記憶體中。選擇ARC之新隨機分量的此程序可在每當資料寫入外部NVM 150時出現,且可繼續直至觸發處理器將來自揮發性記憶體120之當前熔絲映射寫入至包含一次性可程式化記憶體125之熔絲中的事件為止。
5 為說明用於根據本文中所揭示之技術維持防重放計數器之另一技術的圖式。此技術類似於 4 中所說明之技術,但使用部分隨機方法,其中在ARC之瞬態分量使用組合方法來判定時,添加至靜態基線分量之ARC的部分可經隨機選擇。 5 中所說明之技術使用一系列熔絲映射來說明:熔絲映射505、熔絲映射510、熔絲映射515、熔絲映射520及熔絲映射525,該一系列熔絲映射表示安全處理子系統110之一次性可程式化記憶體125中之熔絲陣列。在 5 中所說明之實例中,具有全黑背景之方形指示位元經設定為與(ARC)相關聯之靜態基線值的部分,具有以棋盤圖案加陰影之背景的方形指示位元經設定添加至已經選擇以防止回退攻擊的靜態基線,且具有以菱形圖案加陰影之背景的方形指示位元經設定為ARC之瞬態分量的組合選擇分量之部分。
5 中所說明之程序可在計算器件100通電時類似於上文所論述之 4 的程序開始。在計算器件100斷電時,ARC之基線值可能已寫入一次性可程式化記憶體125之熔絲。安全處理子系統110之處理器可存取一次性可程式化記憶體125,自一次性可程式化記憶體125讀取熔絲映射值,且將熔絲映射之表示儲存於安全處理子系統110之揮發性記憶體120中以產生熔絲映射505。熔絲映射505與上文論述的熔絲映射1005完全相同,但如上文關於 4 所論述,程序可以不同靜態基線開始或完全無靜態基線值。
新靜態基線值亦可如上文關於 4 所論述而判定。安全處理子系統110之處理器可如熔絲映射510中所說明選擇至少一個位元以添加至前一基線。處理器可經組態以自熔絲映射之尚未設定的位元隨機地選擇至少一個位元。處理器可經組態以熔斷與已在一次性可程式化記憶體125中經選擇之一或多個位元相關聯的熔絲以建立新的靜態基線值。儲存於一次性可程式化記憶體125中之靜態基線值最初可在無位元設定的情況下開始。
熔絲映射510亦說明程序之另一態樣。至少一個額外位元經選擇作為ARC之組合選擇分量。 5 中所說明之ARC的組合選擇分量不同於 4 中所說明之ARC的隨機選擇分量。組合選擇分量並非隨機選擇之一組位元。實際上,在位元映射中選擇起點。起點可為來自熔絲映射的尚未經選擇之任何位元。舉例而言,熔絲映射之右下側角中的位元已在實例熔絲映射510中經選擇,但可選擇尚未設定之任何位元。
5 中所說明之技術最小化在每當ARC在資料寫入外部NVM 150之前遞增時針對ARC之組合選擇分量選擇的位元的數目。舉例而言, 5 中所說明之程序可經由可能的組合中之每一者迭代,其中組合選擇分量包含1位元。一旦1位元選項已耗盡,程序即可經由2位元選項中之每一者迭代直至2位元選項已耗盡為止。此程序可繼續,在串聯n位元選項中之每一者耗盡時添加另一位元,直至所有可能的組合耗盡為止或直至ARC寫入一次性可程式化記憶體125為止。直至事件觸發處理器將當前熔絲映射自揮發性記憶體120寫入至包含一次性可程式化記憶體125之熔絲中,ARC之單調選擇部分才寫入一次性可程式化記憶體125之熔絲。單調選擇部分僅維持於儲存在揮發性記憶體120中之熔絲映射之表示中直至此寫入事件發生為止。
熔絲映射515說明說明在資料已寫入外部NVM 150八次之後熔絲映射510可如何變化之一實例。ARC之組合選擇分量已遞增八個位元。所有1位元選項尚未耗盡。在 5 的實例中,ARC自左至右且自下至上遞增,但其他演算法可用以判定組合選擇分量之各種排列受訪之次序。
熔絲映射520說明說明在資料已寫入外部NVM 150三十二次之後熔絲映射515可如何變化之一實例。ARC之組合選擇分量已遞增三十二個位元。所有1位元選項已經耗盡,且程序以ARC之2位元組合選擇分量繼續。在 5 的實例中,ARC自左至右且自下至上遞增,但其他演算法可用以判定組合選擇分量之各種排列受訪之次序。
處理器接著判定電源已經耗盡及/或判定實體入侵感測器312d已偵測到至計算器件100中之實體入侵。處理器接著存取揮發性記憶體120中之當前熔絲映射且將彼等值作為新的靜態基線值寫入一次性可程式化記憶體125之熔絲。在 5 的實例中,揮發性記憶體120中之熔絲映射處於由熔絲映射520說明之狀態。在此映射中設定之熔絲將變為新的靜態基線值,該新的靜態基線值藉由如由熔絲映射525表示之處理器寫入一次性可程式化記憶體125。
6 為說明用於根據本文中所揭示之技術維持防重放計數器之另一技術的圖式。技術類似於 4 及圖 5 中所說明之該技術,但使用確定性組合方法以判定添加至靜態基線分量之ARC的部分以及ARC之瞬態分量。 6 中所說明之技術使用一系列熔絲映射來說明:熔絲映射605、熔絲映射610、熔絲映射615、熔絲映射620、熔絲映射625及熔絲映射630,該一系列熔絲映射表示安全處理子系統110之一次性可程式化記憶體125中之熔絲陣列。在圖6 中所說明之實例中,具有全黑背景之方形指示位元經設定為與(ARC)相關聯之靜態基線值的部分,具有以棋盤圖案加陰影之背景的方形指示位元經設定添加至已經選擇以防止回退攻擊的靜態基線,且具有以菱形圖案加陰影之背景的方形指示位元經設定為ARC之組合分量之部分。
6 中所說明之技術使用組合方法以判定添加至ARC之靜態基線分量的ARC之組合分量。包括於組合分量中之位元的數目可取決於器件可能斷電之頻率而變化。在與 4 及圖 5 中所說明之技術相比較時, 6 中所說明之技術可減少在每一斷電週期內寫入之一次性可程式化記憶體125之熔絲的數目。技術類似於 5 之該技術,但 6 中所說明之技術中之熔絲映射的更新中之每一者為確定性的且在 6 之技術中並不進行位元之隨機選擇。
6 中所說明之技術使用組合方法以判定添加至ARC之靜態基線分量的ARC之組合分量。包括於組合分量中之位元的數目可取決於器件可能斷電之頻率而變化。在與 4 及圖 5 中所說明之技術相比較時, 6 中所說明之技術可減少在每一斷電週期內寫入之一次性可程式化記憶體125之熔絲的數目。技術類似於 5 之該技術,但 6 中所說明之技術中之熔絲映射的更新中之每一者為確定性的且在 6 之技術中並不進行位元之隨機選擇。
ARC之組合分量為X個位元以及一次性可程式化記憶體125之尚未設定為靜態基線之部分的可用位元之確定性選擇。針對資料至外部NVM 150之每一寫入判定ARC的組合分量。可包括於組合分量中之可用位元及可用位元的總數目可使用以下方程式判定:
可用位元 = 最大位元 - 靜態基線中之位元 ,其中最大位元數目表示包含由熔絲映射表示之一次性可程式化記憶體125之部分的位元之總數目,且其中靜態基線中之位元表示在至少一個額外位元已經熔斷的經更新靜態基線值中已經熔斷之熔絲(如熔絲映射610中所說明)。因此,可用位元為尚未設定之彼等位元且可包括於ARC之組合分量中。
可用位元數目 = 最大位元數目 - 靜態基線中之位元數目 ,其中最大位元數目表示包含由熔絲映射表示之一次性可程式化記憶體125之部分的位元之總數目,且其中靜態基線中之位元的數目表示在至少一個額外位元已經熔斷的經更新靜態基線值中已經熔斷之熔絲的數目(如熔絲映射610中所說明)。因此,可用位元的數目為尚未設定之彼等位元的數目及可包括於ARC之組合分量中的位元的總數目。
6 中所說明之程序可在計算器件100通電時類似於上文所論述之 4 及圖 5 的程序開始。在計算器件100斷電時,ARC之基線值可能已寫入一次性可程式化記憶體125之熔絲。安全處理子系統110之處理器可存取一次性可程式化記憶體125,自一次性可程式化記憶體125讀取熔絲映射值,且將熔絲映射之表示儲存於安全處理子系統110之揮發性記憶體120中以產生熔絲映射605。取決於是否已經使用本文中所論述之技術來產生且維持ARC,程序可以不同靜態基線或完全無靜態基線值開始。
新靜態基線值亦可如上文關於 4 及圖 5 所論述而判定。安全處理子系統110之處理器可如熔絲映射610中所說明選擇至少一個位元以添加至前一基線。處理器可使用確定性方法(相比於 4 及圖 5 中所說明之方法,其中可隨機地選擇添加至靜態基線值之至少一個位元)自熔絲映射之可用位元選擇至少一個位元。處理器可經組態以熔斷與已在一次性可程式化記憶體125中經選擇之一或多個位元相關聯的熔絲以建立新的靜態基線值。儲存於一次性可程式化記憶體125中之靜態基線值最初可在無位元設定的情況下開始。
熔絲映射615說明說明在經更新靜態基線經判定後在資料已寫入外部NVM 150一次之後熔絲映射610可如何變化之一實例。在熔絲映射615中所說明之實例中,ARC之組合部分在此階段包含一個額外位元。一旦包含X個位元之位元的所有組合已耗盡,ARC之組合部分的大小(「X」)以1位元遞增增長。在 6 中所說明之實例中,確定性組合演算法自左至右且自下至上遞增,但確定性組合演算法之其他實施可經組態以經由處於與 6 中所說明之一者不同的次序的X個位元組合之各種排列遞增。舉例而言, 6 中所說明之程序可經由可能的組合中之每一者迭代,其中組合選擇分量包含1位元。一旦1位元選項已耗盡,程序即可經由2位元選項中之每一者迭代直至2位元選項已耗盡為止。此程序可繼續,在串聯n位元選項中之每一者耗盡時添加另一位元,直至所有可能的組合耗盡為止或直至ARC寫入一次性可程式化記憶體125為止。直至事件觸發處理器將當前熔絲映射自揮發性記憶體120寫入至包含一次性可程式化記憶體125之熔絲中,ARC之組合選擇部分才寫入一次性可程式化記憶體125之熔絲。單調選擇部分僅維持於儲存在揮發性記憶體120中之熔絲映射之表示中直至此寫入事件發生為止。
熔絲映射620說明說明遵循熔絲映射615中所說明之熔絲映射的狀態在資料已寫入外部NVM 150許多次之後熔絲映射610可如何變化之一實例。在熔絲映射625中所說明之實例中,ARC之組合部分的所有1位元選項已經耗盡,且組合演算法現經由2位元選項迭代,其將用於在每當資料寫入外部NVM 150時判定ARC之組合部分。將研究2位元選項直至耗盡為止。
熔絲映射625說明說明遵循熔絲映射620中所說明之熔絲映射的狀態在資料已寫入外部NVM 150許多次之後熔絲映射610可如何變化之一實例。在熔絲映射625中所說明之實例中,ARC之組合部分的所有1位元選項及2位元選項已經耗盡,且組合演算法現經由3位元選項迭代,其將用於在每當資料寫入外部NVM 150時判定ARC之組合部分。將研究3位元選項直至耗盡為止。
處理器接著判定電源已經耗盡及/或判定實體入侵感測器312d已偵測到至計算器件100中之實體入侵。處理器接著存取揮發性記憶體120中之當前熔絲映射且將彼等值作為新的靜態基線值寫入一次性可程式化記憶體125之熔絲。在 6 的實例中,揮發性記憶體120中之熔絲映射處於由熔絲映射625說明之狀態。在此映射中設定之熔絲將變為新的靜態基線值,該新的靜態基線值藉由如由熔絲映射630表示之處理器寫入一次性可程式化記憶體125。
7 為用於在積體電路中提供資料保護之實例程序700的流程圖。程序700可用於藉由破壞用於保護NVM 150之內容的ARC有效地抹除NVM 150之內容。有效負載155可藉由安裝於計算器件100上之未授權韌體或軟體獲得。但在無與儲存於NVM 150中之資料的有效負載相關聯之正確ARC值的情況下,無法解密有效負載之內容。 7 中所說明之程序可用於防止計算器件之韌體及/或軟體分量的未授權更新存取儲存於NVM 150中之敏感資料。 7 中所說明之程序可藉由 1 及圖 2 中所說明之計算器件100的安全處理子系統110之處理器190實施。程序700在任何軟體或韌體可執行之前藉由計算器件執行,軟體或韌體包括於軟體或韌體之未授權更新中,其可能至少已讀取-存取儲存於一次性可程式化記憶體125及計算器件100之揮發性記憶體120中的ARC。
可作出與積體電路相關聯之軟體或韌體已經進行未授權更新之判定(階段705)。處理器190判定是否已經進行計算器件100之韌體及/或軟體的未授權更新。處理器190監測儲存於計算器件之安全處理子系統的記憶體及/或外部NVM中之韌體及/或軟體。
一種用於判定軟體及/或韌體之未授權更新是否已發生之方法在於監測計算器件100之韌體及/或其他關鍵軟體分量之變化且要求在韌體及/或其他關鍵軟體分量更新之前或回應於韌體在計算器件100上更新來鑑認計算器件100之使用者。計算器件之經授權使用者可批准韌體及/或軟體分量之更新,韌體及/或軟體分量之該更新可存取可能能夠存取儲存於其中之敏感使用者資料或企業資料的計算器件上之使用者或企業擁有之資料。在計算器件100與企業相關聯的情況下,為了更新韌體及/或軟體分量,可能需要鑑認系統管理員、網路管理員或由企業授權之其他使用者。計算器件100之一般企業使用者可能不具有對計算器件100上之韌體及/或軟體分量的安裝及/或更新之完全控制。
處理器190可執行鑑認程序以判定計算器件之使用者是否試圖更新計算器件100之韌體及/或其他關鍵軟體分量。處理器可針對計算器件100之韌體及/或其他關鍵軟體分量執行使用者鑑認,該等分量為可存取儲存於揮發性記憶體120中之ARC 140、瞬態分量270a至270n及/或靜態基線分量280或儲存於一次性可程式化記憶體125中之ARC 165的受信任軟體分量。若使用者鑑認失敗,則處理器190可判定計算器件100之韌體及/或其他關鍵軟體分量未經授權,且抑制韌體及/或其他關鍵軟體分量之儲存及/或使用。
處理器190可使用各種鑑認技術來鑑認使用者,且用於安全地抹除本文中所揭示之安全非揮發性記憶體之內容的技術不限於特定類型之鑑認技術。使用者可能需要輸入密碼、PIN、滑動圖案或應僅為計算器件之經授權使用者所知的其他此類輸入。計算器件300可包括使用者可藉以提供輸入之小鍵盤、鍵盤及/或觸摸屏使用者介面。處理器190可將輸入與藉由計算器件300儲存於計算器件300之安全記憶體位置中的授權資訊相比較。
使用者亦可藉由處理器190使用生物統計資料鑑認。計算器件300之感測器312a至312g可包括經組態以自計算器件300之使用者收集生物統計資料的一或多個感測器。舉例而言,計算器件300可包括用於自計算器件300之使用者捕捉一或多個指紋的指紋感測器。計算器件300可包括經組態以掃描計算器件300之使用者的一或多個實體特性的感測器,諸如經組態以捕捉使用者之虹膜及/或視網膜、面部特徵及/或可用於鑑認計算器件300之使用者的其他解剖學資訊的影像的感測器。行動器件之感測器312a至312g亦可包括經組態以收集使用者之話音資料的感測器,該話音資料可由處理器190分析以判定計算器件300之當前使用者之話音的特性是否匹配行動器件之經授權使用者之話音的特性。
鑑認可藉由受信任執行環境執行,諸如計算器件300之實例實施中所說明之TEE 380,以防止攻擊者嘗試規避鑑認程序。用於計算器件100之經授權使用者的鑑認資訊可儲存於計算器件之持續記憶體中且可經加密或以其他方式受保護,以防止對由受信任執行環境及/或計算器件100之其他組件用以執行使用者鑑認之鑑認資訊的未授權存取及/或修改。計算器件100之處理器190亦可維持要求使用者鑑認之一系列韌體及/或關鍵軟體分量以便更新計算器件100之此等元件。
除要求在任何軟體更新之前鑑認經授權使用者以外或代替要求鑑認可使用之另一方法在於鑑認計算器件100之韌體及/或關鍵軟體分量之更新的程式碼。可鑑認軟體更新之一種方式為藉由處理器190判定更新之訊息鑑認碼(MAC)。可藉由處理器190藉由將基於密碼之訊息鑑認碼(CMAC)演算法應用於更新及/或其一或多個分量之影像檔案來計算MAC。CMAC演算法可提供自與計算器件相關聯之硬體唯一金鑰(HUK) 199導出之金鑰。HUK 199可包含儲存於一次性可程式化記憶體125中及/或計算器件100之另一安全記憶體位置中的位元串。HUK 199可由處理器190存取且可由計算器件100之某些受信任組件存取。HUK 199不可由不可信程式碼存取,諸如但不限於在TEE外部操作之程式碼。HUK 199可藉由計算器件100之製造商產生且程式化至一次性可程式化記憶體125中。
計算器件100之處理器190使用CMAC以判定與相關聯於計算器件100之韌體及/或軟體的關鍵分量相關聯之一或多個軟體影像檔案是否已由計算器件100之未授權使用者改變。處理器190可經組態以要求計算器件100之使用者在基於HUK 199產生CMAC之前經鑑認。如上文所論述,處理器190可經組態以執行鑑認程序,以便鑑認計算器件100之使用者。若鑑認失敗,則處理器190可經組態以判定軟體更新未經授權。替代地,若鑑認失敗,則處理器190可產生並非基於HUK 199之假CMAC值。假CMAC值將並不匹配先前產生且與計算器件100之韌體及/或關鍵分量相關聯的預期CMAC值,且處理器190可判定更新未經授權。然而,若使用者已恰當地經鑑認,且由處理器190產生之CMAC值匹配預期CMAC值,則軟體更新可判定為經授權。
計算器件100之安全處理子系統110可包括儲存於唯讀記憶體(ROM) 105中之安全開機載入程式119,該唯讀記憶體經組態以使用各種安全啟動機制技術鑑認一或多個韌體影像檔案及/或計算器件100之一或多個關鍵軟體分量的影像檔案。安全開機載入程式亦可經組態以在使器件啟動之前計算CMAC影像。若藉由開機載入程式計算CMAC值並不匹配先前計算且與藉由安全開機載入程式鑑認之分量相關聯的預期CMAC影像值,則安全開機載入程式可判定軟體更新未經授權。
維持於積體電路之一次性可程式化記憶體125中且由積體電路使用以保護非揮發性記憶體之內容的防重放計數器(ARC)值165可回應於判定軟體或韌體已經進行未授權更新而損壞(階段710)。非揮發性記憶體可與積體電路110分離(例如NVM 150)或可為積體電路之一部分(在一些態樣中,例如NVM 127)。回應於處理器190偵測到軟體及/或韌體之未授權更新,處理器190破壞儲存於計算器件100之一次性可程式化記憶體125中的ARC 165。處理器190可清除儲存於揮發性記憶體120中之ARC 140、瞬態分量270a至270n及/或靜態基線分量280。破壞ARC 165且自揮發性記憶體120清除ARC分量防止包括於未授權更新中之軟體及/或韌體恢復能夠儲存於NVM 150中之未加密的有效負載內容。
軟體及/或韌體之未授權更新的偵測可充當處理器基於儲存於揮發性記憶體120中維持於揮發性記憶體120中之ARC 140、瞬態分量270a至270n及/或靜態基線分量280來更新儲存於一次性可程式化記憶體125中之ARC 165的觸發事件。處理器將儲存於揮發性記憶體120中之ARC 140作為ARC 165寫入一次性可程式化記憶體125。處理器190將靜態基線分量280作為ARC 165寫入一次性可程式化記憶體125。處理器190可組合瞬態分量270與靜態基線分量280 (例如,如 4 至圖 6 及圖 9 至圖 11 中所說明)以產生待寫成儲存於一次性可程式化記憶體125中之ARC 165的ARC。安全處理子系統110亦可經組態以選擇瞬態分量270之最近判定的值以用於產生待寫成儲存於一次性可程式化記憶體125中之ARC 165的ARC或可選擇揮發性記憶體120中的瞬態分量270值中之一者。一旦ARC已儲存於一次性可程式化記憶體中,儲存於揮發性記憶體120中之ARC 140、瞬態分量270a至270n及/或靜態基線分量280可經刪除,且儲存於一次性可程式化記憶體125中之ARC 165可藉由設定儲存ARC 165之一次性可程式化記憶體125的額外位元而損壞。
8 中所說明之程序提供可用於破壞ARC 165之一種此類方法的一實例,且 9 11 說明應用於來自前述實例之熔絲映射之此破壞技術的實例。計算器件之安全處理子系統的處理器可經組態以回應於軟體及/或韌體之未授權更新破壞ARC 165,以防止攻擊者能夠存取儲存於NVM中的敏感資料。儲存於計算器件100之一次性可程式化記憶體125中的ARC 165可經損壞,且儲存於計算器件100之揮發性記憶體120中的ARC 140、瞬態分量270a至270n及/或靜態基線分量280可在包括於軟體及/或韌體之未授權更新中的軟體中之任一者執行之前經清除。
8 為根據本文中所揭示之技術的用於破壞防重放計數器之實例程序800的流程圖。 8 中所說明之程序可藉由 1 及圖 2 中分別說明之計算器件100及200之安全處理子系統110的處理器實施。此外, 8 中所說明之程序可用於至少部分地實施 7中所說明之程序的階段710。 8 中所說明之程序可用於改變ARC 165,防止攻擊者獲得對儲存於NVM 150中之敏感資料的存取。儲存於計算器件100之一次性可程式化記憶體125中之ARC 165將不再匹配在加密儲存於NVM 150中之有效負載155時使用的ARC。即使攻擊者能夠將能夠存取儲存於其中之ARC 165的新韌體及/或軟體組件安裝於計算器件上,ARC將已經損壞。此方法有效地抹除計算器件之NVM 150的受保護內容,此係由於解密及鑑認儲存於NVM 150中之有效負載之內容所需的ARC將不再存在於計算器件100之記憶體中。
可判定儲存ARC值之一次性可程式化記憶體的待設定之第一數目個位元(階段805)。計算器件之安全處理子系統110之處理器190可經組態以判定將添加至ARC 165以致使ARC 165無效之多個位元。安全處理子系統110可經組態以判定儲存於一次性可程式化記憶體125中之ARC 165是否包括已經設定之臨限數目個位元。
位元的臨限數目可基於關於ARC 165之損壞所需之熵級經選擇。較高所要熵級與一次性可程式化記憶體125之經設定的位元的較大數目相關聯,而較低所要熵級與一次性可程式化記憶體125之經設定的較少位元相關聯。一次性可程式化記憶體125之經設定的更多位元使得攻擊者更難以試圖推斷ARC 165在損壞之前應如何。安全處理子系統110可經組態以作出此判定以確保額外位元之設定將充足量之熵引入至ARC 165中,使得猜測哪些位元為ARC 165之部分且哪些位元已經添加破壞ARC 165將為過分計算上密集的。
在一實例實施中,安全處理子系統110經組態以回應於一次性可程式化記憶體125中已經設定之位元的當前數目小於或等於預定臨限值判定位元的第一數目將在一次性可程式化記憶體125中設定。在此實例中實施,安全處理子系統110經組態以回應於一次性可程式化記憶體125中已經設定之位元的當前數目超過預定臨限值判定位元的第二數目將在一次性可程式化記憶體125中設定。位元之第一數目大於位元之第二數目。針對其中一次性可程式化記憶體具有當前設定之較少數目個位元以判定在ARC經有意損壞之前ARC更計算上密集的情形選擇位元的第一數目。此外,位元的第一及第二數目可定義為位元範圍,且安全處理子系統110可經組態以選擇屬於該適當位元範圍內之待設定的多個位元。
為了以第一實例說明此概念,假定臨限數目個之位元為64個位元,第一數目個位元包含128個位元,第二數目個位元包含64個位元,且當前儲存於一次性可程式化記憶體125中之ARC 165包含40個位元。在此實例中,在一次性可程式化記憶體125之ARC 165中經設定之當前數目個位元為40個位元,其小於64個位元之臨限值。因此,安全處理子系統110將第一數目個位元(在此實例中128個位元)添加至ARC 165之當前值。
為了以第二實例說明此概念,假定臨限數目個位元為64個位元,第一數目個位元包含128個位元,且第二數目個位元包含64個位元,且當前儲存於一次性可程式化記憶體125中之ARC 165包含100個位元。在此實例中,在一次性可程式化記憶體之ARC 165中經設定之當前數目個位元為100個位元,其超過64個位元之臨限值。因此,安全處理子系統將第二數目個位元(在此實例中64個位元)添加至ARC 165之當前值。
待添加至一次性可程式化記憶體125中之ARC 165的位元及用於此等實例中之臨限值意欲說明本文中所揭示之概念且並不意欲將此等技術限於此等特定值。所揭示之技術可經組態以將不同數目個位元添加至一次性可程式化記憶體125中之ARC 165。此外,此等技術可使用不同臨限值及/或多個臨限值實施以判定待添加至一次性可程式化記憶體中之ARC的位元的數目。此等技術亦可經實施以利用位元值範圍,且安全處理子系統110可經組態以隨機地選擇屬於與位元的數目相關聯的特定範圍內之多個位元,該等位元當前在一次性可程式化記憶體125之ARC 165中經設定。
可判定包含第一數目個位元之一次性可程式化記憶體的第一組位元的位置(階段810)。階段805包含判定包含ARC之一次性可程式化記憶體之待設定的位元的數目。階段810包含判定將選擇設定一次性可程式化記憶體125之哪些位元以便破壞儲存於一次性可程式化記憶體125中之ARC 165。處理器190判定待設定之位元的位置。處理器190可使用隨機或偽隨機演算法來選擇包含ARC 165之一次性可程式化記憶體125的尚未設定之位元。接著,攻擊者將需要不僅判定在一次性可程式化記憶體中設定之位元的數目,而且判定設定哪些位元以便判定ARC 165在值有意地損壞之前如何。
儲存於一次性可程式化記憶體125中之ARC可藉由設定一次性可程式化記憶體之第一組位元而更新(階段815)。處理器190可設定一次性可程式化記憶體125之第一組位元的值。儲存於一次性可程式化記憶體125中之ARC 165可藉由將值寫入在階段810中選定之位元而損壞。在階段810中選定之位元可藉由處理器190藉由使熔絲、反熔絲或用於表示資料之個別位元的一次性可程式化記憶體125之其他組件熔斷而設定。 8 中所說明之程序可回應於偵測到軟體及/或韌體的未授權更新且在軟體執行之前執行。因此,攻擊者將不能夠存取有效ARC 165且將不能夠解密儲存於NVM 150中之資料。此方法藉由使內容歸因於ARC之損壞不可恢復而有效地抹除NVM 150之內容。
9 11 提供基於上文所論述之 4 6 中所說明之實例的用於破壞防重放計數器的技術的實例。 9 採用 4 中所說明之實例以包括偵測到軟體及/或韌體之未授權更新,且破壞儲存於一次性可程式化記憶體中之ARC。熔絲映射905、910、915及920反映 4 中所說明之熔絲映射405、410、415及420之彼等。然而,在引起判定熔絲映射920中所說明之ARC的NVM更新之後,偵測到軟體及/或韌體之未授權更新,且觸發安全抹除。熔絲映射925說明除熔絲映射920中表示之值以外亦已選定兩個新位元。在此階段,固定或隨機數目個位元可藉由處理器190在來自表示儲存有ARC之一次性可程式化記憶體之熔絲的位元映射的隨機位置處經選擇。在此實例中,為了清楚起見,選擇僅兩個位元,但本文中所揭示之技術不限於添加三個新位元。選擇更多數目個位元使得更難以判定位元之數目及添加至之前的ARC之位元。接著藉由處理器190將基於最近ARC及額外位元以混淆ARC之新靜態基線值(熔絲映射930)寫入一次性可程式化記憶體。儲存於NVM中之依賴於舊ARC的任何資料將由於ARC遞增且儲存於揮發性記憶體120中之ARC經移除而顯現為不可恢復。儲存於NVM 150中之任何瞬態分量275a至275n亦可自NVM 150刪除及/或藉由處理器190損壞。在器件下次通電時,表示於熔絲映射930中之新靜態基線值將充當NVM內容之後續更新的基礎(參見熔絲映射935)。無儲存於NVM中之敏感資料將可已由攻擊者恢復。此外,儲存於計算器件之揮發性記憶體中的任何ARC資料亦可經刪除以使得攻擊者難以判定ARC之先前狀態。
10 進一步說明由 5 中所說明之實例採用以包括偵測到軟體及/或韌體之未授權更新且破壞儲存於一次性可程式化記憶體125中之ARC的此等概念。熔絲映射1005、1010、1015及1020反映 5 中所說明之熔絲映射505、510、515及520之彼等。然而,在引起判定熔絲映射1020中所說明之ARC的NVM更新之後,由處理器190偵測到軟體及/或韌體之未授權更新,且藉由處理器190觸發安全抹除。熔絲映射1025說明除熔絲映射1020中表示之位元值以外亦已選定三個新位元。在此實例中,為了清楚起見,選擇僅三個位元,但本文中所揭示之技術不限於添加三個新位元。接著藉由處理器190將基於最近ARC及額外位元以混淆ARC之新靜態基線值(熔絲映射1030)寫入一次性可程式化記憶體125。儲存於NVM中之依賴於舊ARC的任何資料將顯現為不可由攻擊者恢復。此外,儲存於揮發性記憶體120及/或計算器件之NVM 150中的任何ARC資料亦可經刪除及/或損壞以使得攻擊者難以判定ARC之先前狀態。
11 進一步說明由 6 中所說明之實例採用以包括偵測到軟體及/或韌體之未授權更新且破壞儲存於一次性可程式化記憶體125中之ARC的此等概念。熔絲映射1105、1110、1115、1120及1125反映 6 中所說明之熔絲映射605、610、615、620及625之彼等。然而,在引起判定熔絲映射1125中所說明之ARC的NVM更新之後,偵測到未授權更新,且觸發安全抹除。熔絲映射1130說明除熔絲映射1125中表示之位元值以外亦已藉由處理器190選擇三個新位元。在此實例中,為了清楚起見,選擇僅三個位元,但本文中所揭示之技術不限於添加三個新位元。接著藉由處理器190將基於最近ARC及額外位元以混淆ARC之新靜態基線值(熔絲映射1135)寫入一次性可程式化記憶體125。儲存於NVM中之依賴於舊ARC的任何資料將顯現為不可由攻擊者恢復。此外,儲存於揮發性記憶體120及/或計算器件之NVM 150中的任何ARC資料亦可經刪除及/或損壞以使得攻擊者難以判定ARC之先前狀態。
9 11 之前述實例意欲說明用於防止攻擊者在計算器件上安裝未授權軟體以便獲得對儲存於NVM 150中之敏感資料的存取的概念。添加至ARC之位元的特定數目及所選擇之特定位元意欲說明此等概念而非將本文中所揭示之技術限於此等特定實例實施。
12 為實例積體電路1200之方塊圖。積體電路包含處理器1290及一次性可程式化記憶體1225。一次性可程式化記憶體1225可通信地與處理器1290耦接。在一些實施中,一次性可程式化記憶體1225可實施為處理器1290之部分,且可視為處理器1290之內部記憶體。處理器1290可經組態以判定與積體電路相關聯的軟體或韌體已經進行未授權更新。軟體可儲存於在積體電路1200內部或在積體電路外部之電腦可讀記憶體中,諸如非揮發性記憶體1250。處理器1290可經組態以破壞維持於積體電路1200之一次性可程式化記憶體1225中且由積體電路1200使用以保護非揮發性記憶體1250之內容的防重放計數器(ARC)值,諸如ARC 1265。處理器1290可經組態以回應於判定軟體或韌體已經進行未授權更新而破壞ARC 1265。
積體電路1200可類似於上文所論述之 1 及圖 2 中所說明之安全處理子系統110,該安全處理子系統可實施於包含但不限於SoC之積體電路上。積體電路1200可由 3 中所說明的計算器件300實施。處理器1290可類似於 1 及圖 2 中所說明之處理器190或可類似於 3 中所說明之處理器310。一次性可程式化記憶體1225可類似於一次性可程式化記憶體125或 3 中所說明之一次性可程式化記憶體325。類似於上文所論述之彼等ARC 165,ARC 1265可表示為一次性可程式化記憶體125之位元的一維或二維陣列。
取決於應用,可由各種構件實施本文中所描述之方法。 舉例而言,此等方法可以硬體、韌體、軟體或其任何組合來實施。對於硬體實施,處理單元可在一或多個特殊應用積體電路(ASIC)、數位信號處理器(DSP)、數位信號處理器件(DSPD)、可程式化邏輯器件(PLD)、場可程式化閘陣列(FPGA)、處理器、控制器、微控制器、微處理器、電子器件、經設計以執行本文中所描述之功能的其他電子單元或其組合內實施。
對於韌體及/或軟體實施,可藉由執行本文所描述之功能的模組(例如,程序、函數,等等)來實施該等方法。 在實施本文中所描述之方法時,可使用任何有形地體現指令的機器可讀媒體。 舉例而言,軟體程式碼可儲存於記憶體中,並由處理器單元來執行。 記憶體可實施於處理器單元內或處理器單元外部。 如本文中所使用,術語「記憶體」係指任何類型之長期、短期、揮發性、非揮發性或其他記憶體,且並不限於任何特定類型之記憶體或特定數目的記憶體或特定類型的媒體。有形媒體包括機器可讀媒體之一或多個實體物品,諸如隨機存取記憶體、磁性儲存器、光學儲存媒體等等。
若在韌體及/或軟體中實施,則函數可作為一或多個指令或程式碼儲存於電腦可讀媒體上。 實例包括編碼有資料結構之電腦可讀媒體及編碼有電腦程式之電腦可讀媒體。 電腦可讀媒體包括實體電腦儲存媒體。 儲存媒體可為可由電腦存取之任何可用媒體。 藉助於實例而非限制,此類電腦可讀媒體可包含RAM、ROM、EEPROM、CD-ROM或其他光碟儲存器,磁碟儲存器或其他磁性儲存器件,或任何其他可用以儲存呈指令或資料結構形式的所需程序碼且可由電腦存取的媒體;如本文中所使用,磁碟及光碟包括緊密光碟(CD)、雷射光碟、光學光碟、數位多功能光碟(DVD)、軟碟及藍光光碟,其中磁碟通常以磁性方式再生資料,而光碟藉由雷射以光學方式再生資料。 以上各者的組合亦應包括於電腦可讀媒體之範疇內。 此等媒體亦提供可為機器可讀之非暫時性媒體的實例,且其中電腦為可自此類非暫時性媒體讀取的機器之實例。
此外,上文所論述之方法、系統及器件為實例。各種組態可適當地省略、取代或添加各種程序或組件。 舉例而言,在替代性組態中,方法可以不同於所描述之次序的次序來執行,且可添加、省略或組合各種步驟。 另外,可在各種其他組態中組合關於某些組態所描述之特徵。 可以類似方式組合組態不同態樣及元件。並且,技術在發展,且因此元件中之多個為實例,且可使用其他元件,包括未來開發之元件。
本文中所論述之一般原理可應用於其他實施。
100‧‧‧計算器件
105‧‧‧唯讀記憶體
110‧‧‧安全處理子系統
115‧‧‧有效負載資料
119‧‧‧安全開機載入程式
120‧‧‧揮發性記憶體
124‧‧‧MAC
125‧‧‧一次性可程式化記憶體
126‧‧‧MAC
127‧‧‧內部非揮發性記憶體
128‧‧‧EXP
129‧‧‧EXP
130‧‧‧HMAC區塊
135‧‧‧HMAC區塊
140‧‧‧ARC
145‧‧‧匹配區塊
150‧‧‧外部非揮發性記憶體
155‧‧‧有效負載
155a‧‧‧有效負載
155n‧‧‧有效負載
160‧‧‧MAC
160a‧‧‧MAC
160n‧‧‧MAC
165‧‧‧ARC
185‧‧‧外部電源
190‧‧‧處理器
195‧‧‧內部電源
199‧‧‧HUK
200‧‧‧計算器件
270‧‧‧瞬態分量
270a‧‧‧瞬態分量
270n‧‧‧瞬態分量
275a‧‧‧瞬態分量
275n‧‧‧瞬態分量
280‧‧‧靜態基線分量
300‧‧‧計算器件
302‧‧‧天線
304‧‧‧廣域網路收發器
306‧‧‧區域網路收發器
308‧‧‧衛星定位系統接收器
310‧‧‧處理器
312‧‧‧感測器
312a‧‧‧加速度計
312b‧‧‧陀螺儀
312c‧‧‧地磁感測器
312d‧‧‧實體入侵感測器
312e‧‧‧溫度計
312f‧‧‧音訊感測器
312g‧‧‧攝影機
314‧‧‧記憶體
316‧‧‧使用者鑑認單元
318‧‧‧軟體鑑認單元
320‧‧‧可執行程式碼
325‧‧‧一次性可程式化記憶體
350‧‧‧使用者介面
352‧‧‧麥克風/揚聲器
354‧‧‧小鍵盤
356‧‧‧顯示器
380‧‧‧TEE
385‧‧‧外部電源
390‧‧‧安全元件
392‧‧‧揮發性記憶體
395‧‧‧內部電源
405‧‧‧熔絲映射
410‧‧‧熔絲映射
415‧‧‧熔絲映射
420‧‧‧熔絲映射
425‧‧‧熔絲映射
430‧‧‧熔絲映射
505‧‧‧熔絲映射
510‧‧‧熔絲映射
515‧‧‧熔絲映射
520‧‧‧熔絲映射
525‧‧‧熔絲映射
605‧‧‧熔絲映射
610‧‧‧熔絲映射
615‧‧‧熔絲映射
620‧‧‧熔絲映射
625‧‧‧熔絲映射
630‧‧‧熔絲映射
700‧‧‧程序
705‧‧‧階段
710‧‧‧階段
800‧‧‧程序
805‧‧‧階段
810‧‧‧階段
815‧‧‧階段
905‧‧‧熔絲映射
910‧‧‧熔絲映射
915‧‧‧熔絲映射
920‧‧‧熔絲映射
925‧‧‧熔絲映射
930‧‧‧熔絲映射
935‧‧‧熔絲映射
1005‧‧‧熔絲映射
1010‧‧‧熔絲映射
1015‧‧‧熔絲映射
1020‧‧‧熔絲映射
1025‧‧‧熔絲映射
1030‧‧‧熔絲映射
1105‧‧‧熔絲映射
1110‧‧‧熔絲映射
1115‧‧‧熔絲映射
1120‧‧‧熔絲映射
1125‧‧‧熔絲映射
1130‧‧‧熔絲映射
1135‧‧‧熔絲映射
1200‧‧‧積體電路
1225‧‧‧一次性可程式化記憶體
1250‧‧‧非揮發性記憶體
1265‧‧‧ARC
1290‧‧‧處理器
1 為實例電腦系統之功能方塊圖。
2 1 中所說明的實例電腦系統之替代實施的功能方塊圖。
3 為可用於實施 1 及圖 2 中所說明之電腦系統的實例電腦系統之方塊圖。
4 為說明用於維持防重放計數器之基於隨機數之技術的圖式。
5 為說明用於維持防重放計數器之另一技術的圖式。
6 為說明用於維持防重放計數器之另一技術的圖式。
7 為用於安全地抹除安全非揮發性記憶體之內容的實例程序之流程圖。
8 為用於破壞防重放計數器之實例程序的流程圖。
9 為說明用於破壞防重放計數器之技術的圖式。
10 為說明用於破壞防重放計數器之技術的圖式。
11 為說明用於破壞防重放計數器之技術的圖式。
12 為說明實例積體電路之圖式。

Claims (30)

  1. 一種用於在一積體電路中提供資料保護之方法,該方法包含: 判定與該積體電路相關聯之軟體或韌體已經進行一未授權更新;及 回應於判定該軟體或該韌體已經進行該未授權更新,破壞維持於該積體電路之一一次性可程式化記憶體中且由該積體電路使用以保護一非揮發性記憶體之內容的一防重放計數器(ARC)值。
  2. 如請求項1之方法,其中判定與該積體電路相關聯之該軟體或該韌體已經進行該未授權更新包含: 偵測該軟體或該韌體之一變化; 回應於偵測到該軟體或該韌體之該變化,判定一使用者或該軟體或該韌體中的至少一者是否經鑑認為真品;及 作為該使用者或該軟體中的該至少一者經鑑認為非真品之回應,判定該軟體或該韌體之該變化未經授權。
  3. 如請求項2之方法,其中該方法包含鑑認該使用者,且鑑認該使用者包含: 判定該使用者是否已經鑑認;及 回應於該使用者尚未經鑑認,執行至少一個鑑認程序以鑑認該使用者。
  4. 如請求項2之方法,其中該方法包含鑑認該軟體或該韌體,且鑑認該軟體或該韌體包含: 藉由使用自與該積體電路相關聯的一硬體唯一金鑰(HUK)導出之一金鑰將一基於密碼之訊息鑑認碼(CMAC)演算法應用於該軟體或該韌體來判定該軟體或該韌體之一訊息鑑認碼(MAC);及 比較該MAC與一經先前判定MAC以判定該MAC是否匹配該經先前判定MAC。
  5. 如請求項1之方法,其中破壞該ARC值包含: 藉由維持於揮發性記憶體中之一當前ARC值更新儲存於該一次性可程式化記憶體中的一ARC值。
  6. 如請求項5之方法,其進一步包含: 判定儲存該ARC值之該一次性可程式化記憶體的待設定之一第一數目個位元; 判定包含該第一數目個位元之該一次性可程式化記憶體之一第一組位元的位置;及 藉由設定該一次性可程式化記憶體之該第一組位元更新儲存於該一次性可程式化記憶體中之該ARC值。
  7. 如請求項6之方法,其中判定該一次性可程式化記憶體之將設定的該第一數目個位元包含: 基於在該一次性可程式化記憶體中已設定之一第二數目個位元判定該一次性可程式化記憶體之將設定的該第一數目個位元。
  8. 如請求項6之方法,其中判定該一次性可程式化記憶體之待設定的該第一組位元包含: 自該一次性可程式化記憶體中尚未經設定之一第二組位元隨機地選擇該一次性可程式化記憶體之該第一組位元。
  9. 一種提供資料保護之積體電路,該積體電路包含: 用於判定與該積體電路相關聯之軟體或韌體已經進行一未授權更新的構件;及 用於回應於判定該軟體或該韌體已經進行該未授權更新,破壞維持於該積體電路之一一次性可程式化記憶體中且由該積體電路使用以保護一非揮發性記憶體之內容的一防重放計數器(ARC)值的構件。
  10. 如請求項9之積體電路,其中用於判定與該積體電路相關聯之該軟體或該韌體已經進行該未授權更新的該構件包含: 用於偵測該軟體或該韌體之一變化的構件; 用於回應於偵測到該軟體或該韌體之該變化,判定一使用者或該軟體或該韌體中的至少一者是否經鑑認為真品的構件;及 用於作為該使用者或該軟體或該韌體中的該至少一者經鑑認為非真品之回應,判定該軟體或該韌體之該變化未經授權的構件。
  11. 如請求項10之積體電路,其中用於判定該使用者或該軟體或該韌體中的至少一者是否經鑑認為真品的該構件包含: 用於判定該使用者是否已經鑑認的構件;及 用於回應於該使用者尚未經鑑認,執行至少一個鑑認程序以鑑認該使用者的構件。
  12. 如請求項10之積體電路,其中用於判定該使用者或該軟體或該韌體中的至少一者是否經鑑認為真品的該構件包含: 用於藉由使用自與該積體電路相關聯的一硬體唯一金鑰(HUK)導出之一金鑰將一基於密碼之訊息鑑認碼(CMAC)演算法應用於該軟體或該韌體來判定該軟體或該韌體之一訊息鑑認碼(MAC)的構件;及 用於比較該MAC與一經先前判定MAC以判定該MAC是否匹配該經先前判定MAC的構件。
  13. 如請求項9之積體電路,其中用於破壞該ARC值的該構件進一步包含: 用於藉由維持於該積體電路之揮發性記憶體中之一第二ARC值更新儲存於該一次性可程式化記憶體中的一第一ARC值的構件。
  14. 如請求項13之積體電路,其進一步包含: 用於判定該一次性可程式化記憶體之待設定的一第一數目個位元的構件; 用於判定包含該第一數目個位元之該一次性可程式化記憶體之一第一組位元的位置的構件;及 用於藉由設定該一次性可程式化記憶體之該第一組位元更新儲存於該一次性可程式化記憶體中之該ARC值的構件。
  15. 如請求項14之積體電路,其中用於判定該一次性可程式化記憶體之將設定的該第一數目個位元的該構件進一步包含: 用於基於在該一次性可程式化記憶體中已設定之一第二數目個位元判定該一次性可程式化記憶體之將設定的該第一數目個位元的構件。
  16. 如請求項14之積體電路,其中用於判定該一次性可程式化記憶體之哪些位元將設定的該構件進一步包含: 用於自該一次性可程式化記憶體中尚未經設定之一第二組位元隨機地選擇該一次性可程式化記憶體之該第一組位元的構件。
  17. 一種提供資料保護之積體電路,該積體電路包含: 一一次性可程式化記憶體; 一處理器,其可通信地耦接至該一次性可程式化記憶體,該處理器經組態以: 判定與該積體電路相關聯之軟體或韌體已經進行一未授權更新;及 回應於判定該軟體或該韌體已經進行該未授權更新,破壞維持於該積體電路之該一次性可程式化記憶體中且由該積體電路使用以保護一非揮發性記憶體之內容的一防重放計數器(ARC)值。
  18. 如請求項17之積體電路,其中該處理器經組態以藉由經組態以進行以下操作判定該軟體或該韌體已經進行該未授權更新: 偵測該軟體或該韌體之一變化; 回應於偵測到該軟體或該韌體之該變化,鑑認一使用者及該軟體或該韌體中的至少一者;及 作為該使用者及該軟體中的該至少一者未經鑑認之回應,判定該軟體或該韌體之該變化未經授權。
  19. 如請求項18之積體電路,其中該處理器經組態以藉由經組態以進行以下操作來鑑認該使用者: 判定該使用者是否已經鑑認;及 回應於該使用者尚未經鑑認,執行至少一個鑑認程序以鑑認該使用者。
  20. 如請求項18之積體電路,其中該處理器經組態以藉由經組態以進行以下操作來鑑認該軟體: 藉由使用自與該積體電路相關聯的一硬體唯一金鑰(HUK)導出之一金鑰將一基於密碼之訊息鑑認碼(CMAC)演算法應用於該軟體來判定該軟體之一訊息鑑認碼(MAC);及 比較該MAC與一經先前判定MAC以判定該MAC是否匹配該經先前判定MAC。
  21. 如請求項17之積體電路,其中經組態以破壞該ARC值之該處理器進一步經組態以: 藉由維持於該積體電路之揮發性記憶體中之一第二ARC值更新儲存於該一次性可程式化記憶體中的一第一ARC值。
  22. 如請求項21之積體電路,其中該處理器進一步經組態以: 判定儲存該ARC值之該一次性可程式化記憶體的待設定之一第一數目個位元; 判定包含該第一數目個位元之該一次性可程式化記憶體之一第一組位元的位置;及 藉由設定該一次性可程式化記憶體之該第一組位元更新儲存於該一次性可程式化記憶體中之該ARC值。
  23. 如請求項22之積體電路,其中經組態以判定該一次性可程式化記憶體之將設定的該第一數目個位元之該處理器進一步經組態以: 基於在該一次性可程式化記憶體中已設定之一第二數目個位元判定該一次性可程式化記憶體之將設定的該第一數目個位元。
  24. 如請求項22之積體電路,其中經組態以判定該一次性可程式化記憶體之哪些位元將設定的該處理器進一步經組態以: 自該一次性可程式化記憶體中尚未經設定之一第二組位元隨機地選擇該一次性可程式化記憶體之該第一組位元。
  25. 一種上面儲存有用於在一積體電路中提供資料保護之電腦可讀指令的非暫時性電腦可讀媒體,其包含經組態以使一電腦進行以下操作之指令: 判定與該積體電路相關聯之軟體或韌體已經進行一未授權更新;及 回應於判定該軟體或該韌體已經進行該未授權更新,破壞維持於該積體電路之一一次性可程式化記憶體中且由該積體電路使用以保護一非揮發性記憶體之內容的一防重放計數器(ARC)值。
  26. 如請求項25之非暫時性電腦可讀媒體,其中經組態以使該電腦判定該軟體或該韌體已經進行該未授權更新之該等指令進一步包含經組態以使該電腦進行以下操作之指令: 偵測該軟體或該韌體之一變化; 回應於偵測到該軟體或該韌體之該變化,鑑認一使用者及該軟體或該韌體中的至少一者;及 作為該使用者及該軟體或該韌體中的該至少一者未經鑑認之回應,判定該軟體或該韌體之該變化未經授權。
  27. 如請求項25之非暫時性電腦可讀媒體,其中經組態以使該電腦破壞該ARC值之該等指令進一步包含經組態以使該電腦進行以下操作之指令: 藉由維持於該積體電路之揮發性記憶體中之一第二ARC值更新儲存於該一次性可程式化記憶體中的一第一ARC值。
  28. 如請求項27之非暫時性電腦可讀媒體,其進一步包含經組態以使該電腦進行以下操作之指令: 判定儲存該ARC值之該一次性可程式化記憶體的待設定之一第一數目個位元; 判定包含該第一數目個位元之該一次性可程式化記憶體之一第一組位元的位置;及 藉由設定該一次性可程式化記憶體之該第一組位元更新儲存於該一次性可程式化記憶體中之該ARC值。
  29. 如請求項28之非暫時性電腦可讀媒體,其中經組態以使該電腦判定該一次性可程式化記憶體之將設定的該第一數目個位元之該等指令進一步包含經組態以使該電腦進行以下操作之指令: 基於在該一次性可程式化記憶體中已設定之一第二數目個位元判定該一次性可程式化記憶體之將設定的該第一數目個位元。
  30. 如請求項29之非暫時性電腦可讀媒體,其中經組態以使該電腦判定設定該一次性可程式化記憶體之哪些位元的該等指令進一步包含經組態以使該電腦進行以下操作之指令: 自該一次性可程式化記憶體中尚未經設定之一第二組位元隨機地選擇該一次性可程式化記憶體之該第一組位元。
TW108107909A 2018-03-09 2019-03-08 積體電路資料保護 TW201941065A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201862640942P 2018-03-09 2018-03-09
US62/640,942 2018-03-09
US16/296,066 US11321466B2 (en) 2018-03-09 2019-03-07 Integrated circuit data protection
US16/296,066 2019-03-07

Publications (1)

Publication Number Publication Date
TW201941065A true TW201941065A (zh) 2019-10-16

Family

ID=67844072

Family Applications (1)

Application Number Title Priority Date Filing Date
TW108107909A TW201941065A (zh) 2018-03-09 2019-03-08 積體電路資料保護

Country Status (8)

Country Link
US (1) US11321466B2 (zh)
EP (1) EP3762852A1 (zh)
KR (1) KR20200129103A (zh)
CN (1) CN111819561B (zh)
BR (1) BR112020018229A2 (zh)
SG (1) SG11202007282YA (zh)
TW (1) TW201941065A (zh)
WO (1) WO2019173670A1 (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9703950B2 (en) * 2012-03-30 2017-07-11 Irdeto B.V. Method and system for preventing and detecting security threats
US10853309B2 (en) 2018-08-13 2020-12-01 Micron Technology, Inc. Fuseload architecture for system-on-chip reconfiguration and repurposing
US11210238B2 (en) * 2018-10-30 2021-12-28 Cypress Semiconductor Corporation Securing data logs in memory devices
US20220156411A1 (en) * 2019-08-29 2022-05-19 Google Llc Securing External Data Storage for a Secure Element Integrated on a System-on-Chip
FR3100905B1 (fr) * 2019-09-16 2022-03-04 Idemia Identity & Security France Système sur puce et procédé garantissant la fraicheur des données stockées dans une mémoire extérieure
US11681536B2 (en) * 2019-12-06 2023-06-20 Lattice Semiconductor Corporation Fast boot systems and methods for programmable logic devices
US20230109011A1 (en) * 2021-10-04 2023-04-06 Hewlett-Packard Development Company, L.P. Placing a device in secure mode
EP4312136A1 (en) * 2022-07-25 2024-01-31 Nxp B.V. Apparatuses and methods for verification of updated data-set
WO2024049141A1 (ko) * 2022-09-02 2024-03-07 삼성전자주식회사 암호화된 데이터를 비휘발성 메모리 내에 저장하기 위한 전자 장치 및 그 방법

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1427343A (zh) * 2001-12-18 2003-07-02 阳庆电子股份有限公司 防止设备及软件内的设定被非授权人员使用或更改的装置
JP4875126B2 (ja) * 2002-06-06 2012-02-15 エヌヴィディア コーポレイション Iscsiおよびipsecプロトコルをサポートするギガビットイーサネットアダプタ
US20030233562A1 (en) * 2002-06-12 2003-12-18 Sachin Chheda Data-protection circuit and method
CN100504818C (zh) * 2003-07-07 2009-06-24 巨视股份有限公司 调控对非易失性存储区访问的方法和判定访问的自动方法
CN1300697C (zh) * 2003-09-15 2007-02-14 英业达股份有限公司 软件保护方法及系统
US20060143600A1 (en) * 2004-12-29 2006-06-29 Andrew Cottrell Secure firmware update
IL171963A0 (en) 2005-11-14 2006-04-10 Nds Ltd Secure read-write storage device
US20080127356A1 (en) * 2006-11-27 2008-05-29 Mediatek Inc. Embedded systems and methods for securing firmware therein
US7886150B2 (en) * 2007-05-11 2011-02-08 Mips Technologies, Inc. System debug and trace system and method, and applications thereof
US20090193261A1 (en) * 2008-01-25 2009-07-30 Mediatek Inc. Apparatus and method for authenticating a flash program
US8677144B2 (en) * 2008-02-25 2014-03-18 Cavium, Inc. Secure software and hardware association technique
JP5434203B2 (ja) * 2009-04-02 2014-03-05 大日本印刷株式会社 認証装置、認証プログラム、認証システム、パスワード生成装置、携帯型セキュリティデバイス、およびパスワード生成プログラム
US9479509B2 (en) * 2009-11-06 2016-10-25 Red Hat, Inc. Unified system for authentication and authorization
EP3518128B1 (en) * 2011-03-30 2021-04-28 Irdeto B.V. Enabling a software application to be executed on a hardware device
US20140075522A1 (en) * 2012-09-07 2014-03-13 Red Hat, Inc. Reliable verification of hypervisor integrity
US9124434B2 (en) * 2013-02-01 2015-09-01 Microsoft Technology Licensing, Llc Securing a computing device accessory
CN103544413B (zh) * 2013-10-31 2017-02-15 宇龙计算机通信科技(深圳)有限公司 一种在智能终端中校验软件版权的方法及装置
US9690922B2 (en) * 2014-07-28 2017-06-27 Avago Technologies General Ip (Singapore) Pte. Ltd. System, apparatus, and method for anti-replay protection of data stored in a non-volatile memory device
US9830479B2 (en) * 2014-09-16 2017-11-28 Nxp Usa, Inc. Key storage and revocation in a secure memory system
WO2016075865A1 (ja) * 2014-11-12 2016-05-19 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 更新管理方法、更新管理装置及び制御プログラム
US10353638B2 (en) * 2014-11-18 2019-07-16 Microsemi SoC Corporation Security method and apparatus to prevent replay of external memory data to integrated circuits having only one-time programmable non-volatile memory
US9563765B2 (en) * 2015-02-10 2017-02-07 Apple Inc. Baseband secure boot with remote storage
US9697359B2 (en) 2015-04-15 2017-07-04 Qualcomm Incorporated Secure software authentication and verification
US9729330B2 (en) * 2015-08-21 2017-08-08 Samsung Electronics Co., Ltd. Secure pairing of eHealth devices and authentication of data using a gateway device having secured area
US9767318B1 (en) * 2015-08-28 2017-09-19 Frank Dropps Secure controller systems and associated methods thereof
US9953167B2 (en) * 2015-10-12 2018-04-24 Microsoft Technology Licensing, Llc Trusted platforms using minimal hardware resources
US9917687B2 (en) * 2015-10-12 2018-03-13 Microsoft Technology Licensing, Llc Migrating secrets using hardware roots of trust for devices
EP3437248A4 (en) * 2016-03-30 2019-11-06 The Athena Group, Inc. KEY UPDATE FOR KEY MASTERS
US10127405B2 (en) 2016-05-10 2018-11-13 Qualcomm Incorporated Techniques for determining an anti-replay counter for preventing replay attacks
US9916452B2 (en) * 2016-05-18 2018-03-13 Microsoft Technology Licensing, Llc Self-contained cryptographic boot policy validation
US10924277B2 (en) * 2018-01-25 2021-02-16 Micron Technology, Inc. Certifying authenticity of stored code and code updates

Also Published As

Publication number Publication date
US11321466B2 (en) 2022-05-03
SG11202007282YA (en) 2020-09-29
KR20200129103A (ko) 2020-11-17
BR112020018229A2 (pt) 2020-12-29
EP3762852A1 (en) 2021-01-13
US20190278914A1 (en) 2019-09-12
CN111819561B (zh) 2023-11-03
CN111819561A (zh) 2020-10-23
WO2019173670A1 (en) 2019-09-12

Similar Documents

Publication Publication Date Title
CN111819561B (zh) 集成电路数据保护
JP4912879B2 (ja) プロセッサの保護された資源へのアクセスに対するセキュリティ保護方法
KR101795457B1 (ko) 보안 기능이 강화된 디바이스의 초기화 방법 및 디바이스의 펌웨어 업데이트 방법
KR102445518B1 (ko) 장치 키 보호
EP3455779B1 (en) Techniques for determining an anti-replay counter for preventing replay attacks
US10126960B2 (en) Fuse-based anti-replay mechanism
US20120066515A1 (en) Electronic device, key generation program, recording medium, and key generation method
US10680814B2 (en) Device key security
TW201500960A (zh) 在配有適用統一可延伸韌體介面(uefi)之韌體之計算裝置中的安全性變數變化檢測技術
WO2002027441A1 (en) System for protecting static and dynamic data against unauthorised manipulation
US20080130875A1 (en) Low-cost pseudo-random nonce value generation system and method
CN103370718A (zh) 使用分布式安全密钥的数据保护
Kostiainen et al. Credential disabling from trusted execution environments
Unterstein et al. SCA secure and updatable crypto engines for FPGA soc bitstream decryption
JP5099895B2 (ja) 通信端末及びアクセス制御方法
CN111357003A (zh) 预操作系统环境中的数据保护
US11799662B2 (en) Efficient data item authentication
KR101781970B1 (ko) 자가 대응 전자문서 불법 유출 방지 장치 및 방법
Altuwaijri et al. Computer and Information Sciences
CN115237343A (zh) 一种芯片、计算设备及数据存储方法
Ju et al. The Issue of Data Transfer for the Embedded SE on Mobile Devices