TWI620092B - 用於在載入期間驗證軟體之裝置及用於在載入於裝置內期間驗證軟體之方法 - Google Patents

用於在載入期間驗證軟體之裝置及用於在載入於裝置內期間驗證軟體之方法 Download PDF

Info

Publication number
TWI620092B
TWI620092B TW105109746A TW105109746A TWI620092B TW I620092 B TWI620092 B TW I620092B TW 105109746 A TW105109746 A TW 105109746A TW 105109746 A TW105109746 A TW 105109746A TW I620092 B TWI620092 B TW I620092B
Authority
TW
Taiwan
Prior art keywords
software
verification
authentication
tag
new
Prior art date
Application number
TW105109746A
Other languages
English (en)
Other versions
TW201706898A (zh
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 TW201706898A publication Critical patent/TW201706898A/zh
Application granted granted Critical
Publication of TWI620092B publication Critical patent/TWI620092B/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/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/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • 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/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • 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
    • 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
    • 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/3247Cryptographic 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 involving digital signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software

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)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Power Engineering (AREA)
  • Storage Device Security (AREA)
  • Stored Programmes (AREA)

Abstract

在首次載入軟體以供一裝置執行時,鑑認儲存於非安全儲存器中之該軟體。鑑認該軟體可涉及對該軟體及該軟體之一數位簽名之一密碼編譯操作。若對該軟體之鑑認成功,則可產生用於該軟體之一驗證標籤,該驗證標籤係基於該軟體及至少一裝置特定秘密資料。該驗證標籤可儲存於該裝置內。隨後每當載入該軟體以供執行時,可藉由使用該驗證標籤來驗證(並非鑑認)該軟體,以確認正在載入之軟體與用以產生該驗證標籤之軟體相同,同時避免對該軟體之鑑認。

Description

用於在載入期間驗證軟體之裝置及用於在載入於裝置內期間驗證軟體之方法 相關申請案之交叉參考
本申請案主張2015年4月15日在美國專利商標局提交申請之非臨時申請案第14/687,783號的優先權及權益。
本文中所揭示之各種特徵大體係關於對軟體之鑑認以減少對缺少安全儲存器的裝置中的軟體之駭客攻擊,且更特定言之,係關於一種在首次執行軟體時執行軟體鑑認且此後執行更高效之軟體驗證的方法
諸如行動電話、行動裝置、呼叫器、無線數據機、個人數位助理、平板電腦、個人資訊管理器(PIM)、個人媒體播放器、掌上型電腦、膝上型電腦或具有處理器之任何其他裝置的裝置正變得愈來愈風行且普遍存在。在此類裝置處產生、鍵入、儲存及/或接收之資料應被保護,以免受到未經授權之存取。對裝置中之資料之未經授權存取的一種此類風險包括:在該裝置上執行之軟體可能已經被修改(例如,被駭客攻擊),從而准許此類未經授權的存取。因此,應鑑認在裝置上操作之軟體以確保其未被修改。對裝置上之軟體的鑑認用以防止經修改軟體在彼等裝置上執行。亦即,可在載入軟體時,在執行之前鑑認該軟體,以驗證該軟體未被破解(例如,被修改)。軟體鑑認在裝置不具有用以安全地儲存軟體之安全或受信任內部儲存器之情況下 尤其重要。軟體開發人員可使用密碼術用數位方式對其軟體進行簽名,隨後將該軟體散發至裝置。在使用對稱密鑰對軟體進行簽名之情況下,各裝置接收此類對稱密鑰以鑑認軟體。然而,對所有裝置上之軟體使用同一對稱密鑰係有風險的,此係因為若破解了單個裝置而獲得此類對稱密鑰,則會暴露所有其他裝置。儘管可使用按裝置之對稱密鑰來對各裝置之軟體進行簽名,但此方法可需要管理大量對稱密鑰且因此實施起來繁重。或者,可使用私密/公共密鑰密碼術,其中用私密密鑰對軟體進行簽名且將對應公共密鑰散發至裝置以鑑認軟體。然而,使用公共密鑰進行鑑認係處理密集的,且對於諸多低功率或具有極小處理能力/資源之裝置而言係困難的。因此,私密/公共密鑰方法並非切實可行的解決方案。
因此,需要一種准許有效地鑑認在具有不同處理能力之裝置上操作之軟體的解決方案。
第一態樣提供一種用於在載入於一裝置內期間驗證軟體之方法。獲得儲存於在該裝置內或在該裝置外部之一非安全儲存器中之一軟體。在一個實例中,該軟體可為在該裝置之開機時間載入之一作業系統的一部分。當載入軟體以供執行時,可嘗試藉由使用預先產生之驗證標籤來驗證軟體,以確認正在載入之軟體與用以產生預先產生之驗證標籤之軟體相同,同時避免對軟體之鑑認。可自對軟體之先前鑑認獲得該預先產生之驗證標籤。若驗證成功,則執行軟體。
否則,若驗證失敗或無預先產生之驗證標籤可用,則在載入軟體以供裝置執行時鑑認該軟體。應注意,與鑑認軟體相比,驗證該軟體可為費時較少的及/或資源密集程度較低的。若對軟體之鑑認成功,則基於該軟體及裝置特定秘密資料產生用於該軟體之新驗證標籤。該秘密資料可僅對該裝置已知及/或在該裝置外部不可存取。舉 例而言,可基於該裝置內之實體不可複製函數獲得秘密資料。接著可儲存614新驗證標籤。在一些實例中,可將預先產生之驗證標籤及/或新驗證標籤儲存於在該裝置內或該裝置外部之非安全儲存器或不同的非安全儲存器中。
在一個實例中,可鑑認軟體,且在成功鑑認後,即可產生預先產生之(例如,初始、第一、先前,等)驗證標籤。可儲存預先產生之驗證標籤以供在對軟體之後續驗證中使用。
在一個實例中,鑑認該軟體可涉及對軟體及軟體之密碼編譯簽名之密碼編譯操作。舉例而言,鑑認該軟體可包括使用對軟體之簽名使用公共密鑰鑑認該軟體。
在另一實例中,產生新驗證標籤可包括產生關於軟體且使用裝置特定秘密資料的訊息鑑認碼(MAC)。
在一些實施中,可基於每當獲得軟體之新版本時發生改變之裝置資料而另外產生新驗證標籤。當產生用於裝置中之軟體之新驗證標籤時,裝置資料可從不重複。
若對軟體之鑑認失敗,則中止軟體之執行。在一個實施中,僅當對軟體之驗證成功或對軟體之鑑認成功時才執行該軟體。
可獲得軟體之新版本。可在載入軟體以供裝置執行時鑑認軟體之新版本。若對軟體之新版本之鑑認成功,則產生用於軟體之新版本之另一驗證標籤(例如第二驗證標籤),其中該另一驗證標籤可基於該軟體之該新版本以及至少裝置特定秘密資料或另一裝置特定資料。亦可儲存該另一驗證標籤以供後續使用。隨後,可在載入軟體以供執行時,藉由使用該另一驗證標籤來驗證軟體之新版本,以確認正在載入之軟體之新版本與用以產生該另一驗證標籤之軟體之版本相同,同時避免對該軟體之新版本之再鑑認。
根據另一特徵,驗證標籤可另外受可用以停用驗證標籤之可撤 銷憑證束縛。舉例而言,可在執行驗證後即由裝置檢查該可撤銷憑證。該裝置可查詢憑證撤銷資料庫,且驗證將在已經撤銷該憑證之情況下失敗。因此,即使軟體未經修改,在已經撤銷對應憑證之情況下,驗證仍將失敗。
另一態樣提供一種經組態以在執行之前執行混合式軟體鑑認與驗證之裝置。該裝置可包含儲存裝置及處理電路。該儲存裝置可用以儲存鑑認指令及/或驗證標籤產生指令以及驗證標籤比較指令。該處理電路可經組態以獲得(例如,經由匯流排或自通信介面擷取、讀取,等)儲存於在裝置內或在裝置外部之非安全儲存器中之軟體。
驗證標籤比較器模組/電路可用以嘗試在載入軟體以供執行時,藉由使用預先產生之驗證標籤(例如,儲存於軟體驗證標籤當中)來驗證軟體,以確認正在載入之軟體與用以產生驗證標籤之軟體相同,同時避免對軟體之鑑認。若驗證失敗或無預先產生之驗證標籤可用,則軟體鑑認模組/電路可用以在載入軟體以供裝置執行時鑑認該軟體。若對軟體之鑑認成功,則驗證標籤產生器模組/電路可用以基於軟體及裝置特定秘密資料而產生用於軟體之新驗證標籤。新驗證標籤接著可儲存於一或多個軟體驗證標籤當中。此處理程序達成效率上之改進,此係因為與對軟體之鑑認相比,對軟體之驗證係費時較少的及/或資源密集程度較低的。因此,儘管鑑認最初可消耗較多時間或資源,但軟體之後續載入由於使用驗證而非鑑認係較迅速且高效的。
該裝置亦可包括耦接至處理電路之複數個一次熔斷熔絲,其中另外基於來自該等一次熔斷熔絲之狀態而產生新驗證標籤及/或預先產生之驗證標籤,且每當獲得軟體之更新版本時,該複數個一次熔斷熔絲發生改變。
102‧‧‧主機裝置
104‧‧‧軟體散發者
200‧‧‧主機裝置/裝置
202‧‧‧處理電路
204‧‧‧通信介面
206‧‧‧儲存裝置/內部儲存裝置
208‧‧‧軟體
210‧‧‧傳輸器電路
212‧‧‧接收器電路
214‧‧‧初步鑑認指令/鑑認指令
216‧‧‧驗證標籤產生指令
218‧‧‧驗證標籤比較指令
220‧‧‧軟體鑑認模組/電路
222‧‧‧驗證標籤產生器模組/電路
224‧‧‧驗證標籤比較器模組/電路
226‧‧‧軟體驗證標籤/驗證標籤
228‧‧‧可一次熔斷熔絲
230‧‧‧秘密資料/裝置特定秘密資料
232‧‧‧匯流排
234‧‧‧外部儲存裝置
圖1說明用於鑑認在具有限處理資源之主機裝置上之軟體的例示 性方法。
圖2為說明經調適以執行軟體鑑認之例示性主機裝置之方塊圖。
圖3說明用於執行混合式軟體鑑認與驗證之第一例示性方法。
圖4(包含圖4A及圖4B)說明用於執行混合式軟體鑑認與驗證之第二例示性方法。
圖5說明用於在載入於裝置內期間驗證軟體之第三例示性方法。
圖6說明用於在載入於裝置內期間驗證軟體之第四例示性方法。
在以下描述中,給出具體細節以提供對所描述實施之透徹理解。然而,一般技術者將理解,可在無需此等具體細節之情況下實踐該等實施。舉例而言,可以方塊圖展示電路,從而避免以不必要的細節混淆該等實施。在其他情況下,可詳細展示熟知電路、結構及技術以免混淆該等實施。
詞語「例示性」在本文中用以意謂「充當實例、例子或說明」。在本文中描述為「例示性」之任何實施或實施例未必解釋為比其他實施例或實施較佳或有利。同樣,術語「實施例」並不要求所有實施例包含所論述特徵、優勢或操作模式。
綜述
一種特徵係藉由在主機裝置上使用混合式鑑認與驗證處理程序提供軟體之安全載入及執行。軟體可儲存於非安全儲存器中。最初,在首次載入軟體以供執行時,可以密碼編譯方式鑑認該軟體。接著可使用軟體及裝置特定秘密資料產生驗證標籤。當隨後載入軟體以供執行時,使用驗證標籤以在載入軟體時驗證該軟體。若此驗證失敗,則可中止軟體之載入及/或執行。
在一個實例中,可獲得(例如擷取、讀取,等)儲存於在裝置內或在裝置外部之非安全儲存器中之軟體。當載入軟體以供(處理電路)執 行時,可嘗試藉由使用預先產生之驗證標籤來驗證該軟體,以確認正在載入之軟體與用以產生預先產生之驗證標籤之軟體相同,同時避免對軟體之鑑認。舉例而言,處理電路可嘗試使用可供其使用之任何及/或所有驗證標籤來驗證軟體。或者,處理電路可在嘗試驗證軟體之前檢查是否有任何驗證標籤可用。若驗證失敗或無預先產生之驗證標籤可用,則可在載入軟體以供裝置執行時鑑認該軟體。若對軟體之鑑認成功,則可基於該軟體及裝置特定秘密資料產生用於該軟體之新驗證標籤。可儲存新驗證標籤以用於後續驗證。僅當對軟體之驗證成功或對軟體之鑑認成功時才執行該軟體。與對軟體之鑑認相比,對軟體之驗證係費時較少的及/或資源密集程度較低的。
例示性軟體鑑認及驗證
圖1說明用於鑑認在主機裝置(例如具有限處理資源之主機裝置)上之軟體的例示性方法。軟體散發者104可產生公共/私密密鑰對106。在散發軟體(例如軟體應用程式、作業系統、驅動程式軟體、可執行程式碼/指令,等)之前或與之同時,軟體散發者104可用私密密鑰以密碼編譯方式對軟體進行簽名108。接著將經簽名軟體發送110至主機裝置102(例如將在其中執行軟體之裝置)。另外,軟體散發者104可將公共密鑰(對應於私密密鑰)遞送112至主機裝置102。
在接收到經簽名軟體後,主機裝置102即可執行對軟體114之初步鑑認109。舉例而言,對軟體之初步鑑認114可涉及使用所接收之公共密鑰確定所接收之經簽名軟體係有效的或未經篡改/修改。
主機裝置102可包括或獲得裝置特定秘密資料116。一旦初步鑑認成功地完成,便可儲存軟體118於主機裝置102內。可基於軟體及裝置特定秘密資料產生驗證標籤120。該裝置特定秘密資料116在主機裝置102外部可係未知的。可儲存驗證標籤122於主機裝置102內(例如,非安全位置內)。
在軟體之後續執行123期間,主機裝置102可擷取軟體124。然而,在執行之前,亦擷取驗證標籤126。接著可使用驗證標籤驗證軟體128。亦即,可使用裝置特定秘密資料及所擷取之軟體產生新驗證標籤。新驗證標籤可與先前儲存之驗證標籤進行比較,以確定該等驗證標籤是否相同(亦即,若新驗證標籤與先前儲存之驗證標籤相同,則驗證成功)。若驗證成功,則可由主機裝置102執行130軟體。否則,若驗證失敗,則主機裝置102可推斷所儲存之軟體已經修改(例如,對軟體之未經授權的修改)。
在一個實例中,對軟體之初步鑑認可涉及使用公共密鑰之密碼編譯鑑認。若軟體成功地經鑑認,則可使用裝置特定秘密資料產生關於軟體之訊息鑑認碼(MAC)。MAC可基於兩種輸入:訊息,以及僅對訊息之產生器已知之秘密密鑰。在一個實例中,主機裝置可使用軟體作為訊息,且使用裝置特定秘密資料作為秘密密鑰。在一個實例中,接著可使用可用以將任意大小之數位資料映射至固定大小之數位資料的雜湊函數獲得MAC。接著可使用秘密資料將此MAC繫結至裝置且因此獲得驗證標籤。
與資源密集程度相當高之使用公共密鑰執行密碼編譯鑑認相反,使用驗證標籤(例如MAC)驗證軟體係資源密集程度較低的。
在一些實例中,裝置特定秘密資料可包括用於主機裝置102之實體不可複製函數(PUF)、儲存於主機裝置102內之秘密密鑰、及/或儲存於一或多個可一次熔斷熔絲中之可在更新軟體時被修改/改變之資料。應注意,一旦熔斷,此等可一次熔斷熔絲便無法再接(unblow)或重設。
帶有軟體鑑認的例示性主機裝置
圖2為說明經調適以執行軟體鑑認之例示性主機裝置200之方塊圖。主機裝置200可包括處理電路202,其經由匯流排232耦接至通信 介面204及內部儲存裝置206。
處理電路202可經配置以獲得、處理及/或發送資料,控制資料存取及儲存,發出命令,及/或控制存取裝置之其他所要操作。在至少一個實施例中,處理電路202可包含經組態以實施由合適媒體提供之所要程式設計的電路。舉例而言,處理電路202可實施為經組態以執行包含(例如)軟體及/或韌體指令之可執行指令之處理器、控制器、複數個處理器及/或其他結構、及/或硬體電路中之一或多者。處理電路202之實施例可包括經設計以執行本文中所描述之功能的通用處理器、數位信號處理器(DSP)、特殊應用積體電路(ASIC)、場可程式化閘陣列(FPGA)或其他可程式化邏輯組件、離散閘或電晶體邏輯、離散硬體組件、或其任何組合。通用處理器可為微處理器,但在替代方案中,處理器可為任何習知處理器、控制器、微控制器或狀態機。處理器亦可實施為計算組件之組合,諸如DSP與微處理器之組合、多個微處理器、一或多個微處理器結合DSP核心,或任何其他此類組態。處理電路202之此等實例係為了說明,且亦預期本發明之範疇內之其他合適組態。
通信介面204可經組態以促進經由一或多個網路至/自主機裝置200的通信。通信介面204可包括至少一個傳輸器電路210及/或至少一個接收器電路212(例如,一或多個傳輸器/接收器鏈)。此外,一或多個天線(未示出)可電耦接至通信介面204。
儲存裝置206可表示用於儲存程式設計及/或資料(諸如處理器可執行程式碼或指令(例如,軟體、韌體)、電子資料、資料庫或其他數位資訊)之一或多個裝置。根據至少一個實施例,此類裝置中之一或多者可包含儲存裝置206。儲存裝置206可為可由通用或專用處理器存取之任何可用媒體。藉由實例方式(且非限制),儲存裝置206可包括唯讀記憶體(例如ROM、EPROM、EEPROM)、隨機存取記憶體 (RAM)、磁碟儲存媒體、光學儲存媒體、快閃記憶體裝置及/或用於儲存資訊之其他非暫時性電腦可讀媒體。儲存裝置206可耦接至處理電路202,以使得處理電路202可自儲存裝置206讀取資訊及向儲存裝置206寫入資訊。在替代方案中,儲存裝置206或其至少一部分可與處理電路202成一體式或與處理電路202分離。
在一個實例中,儲存裝置206可包括處理電路202將執行之軟體208(例如,實施作業系統之指令或程式碼、一或多個應用程式及/或針對主機裝置200之任務/功能)。在其他實施中,該軟體208可儲存於外部儲存裝置234中。在各種實施中,軟體208可儲存於安全儲存器或非安全儲存器中。安全儲存器可為受保護以免被未經授權使用者/應用程式存取之裝置或儲存區。非安全儲存器可為(例如)使用者或未經授權應用程式可存取之裝置或儲存區。
根據一個態樣,主機裝置200可包括用以在載入軟體208以供處理電路202執行時鑑認軟體208之初步鑑認指令214。軟體208可儲存於在裝置20內或在裝置200外部之非安全儲存器中。在一些情況下,總是首先執行驗證,且若驗證失敗,則執行鑑認。因此,在首次使用或載入軟體時,可嘗試驗證,該驗證可能會由於尚未產生用於該軟體之驗證標籤而失敗。在發生該驗證失敗後,即可執行鑑認。
在其他情況下,可在首次載入軟體以供在裝置200或處理電路202上執行時執行初步鑑認指令214。鑑認可涉及驗證軟體之密碼編譯簽名以確定軟體之有效性、完整性及/或真實性。
在成功鑑認後,驗證標籤產生指令216即可用以產生並儲存驗證標籤226,驗證標籤226隨軟體208及裝置特定秘密資料230而變。驗證標籤226可儲存於儲存裝置206或外部儲存裝置234(例如,儲存軟體208之同一外部儲存裝置,或不同外部儲存裝置)中。在各種實施中,驗證標籤226可儲存於安全儲存器或非安全儲存器中。安全儲存器可 為受保護以免被未經授權使用者/應用程式存取之裝置或儲存區。非安全儲存器可為(例如)使用者或未經授權應用程式可存取之裝置或儲存區。
在藉由主機裝置200對同一軟體208之後續執行或載入時,避免初步鑑認處理程序。而是,驗證標籤比較指令218可驗證先前經儲存以用於軟體之驗證標籤匹配正在被擷取以供執行之軟體之驗證標籤的新版本。應注意,各軟體(例如作業系統、驅動程式、使用者應用程式,等)可具有與其相關聯之不同驗證標籤。在對標籤之成功驗證後,即可執行軟體208。
在一個實例中,主機裝置200可經組態以在載入軟體208時或在執行之前執行對軟體208之初步鑑認。軟體鑑認模組/電路220可經調適以在由主機裝置200載入或使用軟體208時,根據儲存於儲存裝置206中之初步鑑認指令214執行對軟體208之初步鑑認(及/或對該軟體之後續鑑認)。若鑑認成功,則驗證標籤產生器模組/電路222可經調適以藉由使用秘密資料230或在秘密資料230保護下計算關於軟體208(例如,關於軟體程式碼)之值(例如訊息鑑認碼或MAC)而形成、產生及/或獲得軟體208之驗證標籤。軟體驗證標籤226接著可儲存於儲存裝置206中。
在同一軟體208之後續載入或執行時,主機裝置200不必再次執行對該軟體之鑑認。而是,驗證標籤比較器模組/電路224可僅執行對先前所儲存之驗證標籤226之驗證以確定軟體208是否已經改變或修改。
應注意,與鑑認軟體相比,驗證軟體可為費時較少的及/或資源密集程度較低的。因此,藉由執行軟體驗證而非執行軟體鑑認來獲得效率。
根據一個態樣,在更新軟體208後,即可產生新驗證標籤。為保 證將不再使用舊驗證標籤,可在產生驗證標籤時使用可一次熔斷熔絲228。每當更新或改變軟體208時,便執行對軟體之再鑑認並依據一或多個可一次熔斷熔絲228及/或秘密資料230產生新驗證標籤。每當發生軟體更新時,可改變一或多個可一次熔斷熔絲228(例如,使一或多個熔絲熔斷)。此保證每當更新軟體時,驗證標籤將改變。
在一個態樣中,若使用驗證標籤之軟體驗證失敗,則主機裝置200可恢復執行使用公共密鑰的軟體鑑認。
用於軟體鑑認及驗證之第一例示性方法
根據第一例示性實施,對於不具有安全內部儲存器或受信任永久性儲存器之裝置而言,安全開機處理程序可涉及嘗試驗證軟體,且若該驗證失敗,則嘗試鑑認該軟體。圖3說明用於執行混合式軟體鑑認與驗證之第一通用方法。裝置擷取、接收及/或獲得軟體302。舉例而言,該軟體可為軟體之特定開機映像。
當載入軟體以供在裝置上執行或使用時,嘗試對照驗證標籤來驗證軟體。在一個實例中,可做出關於是否(在裝置上)已經存在用於軟體之驗證標籤的判定303。若該軟體先前在裝置上經鑑認,則可發現並擷取用於該軟體之驗證標籤304。接著可使用驗證標籤驗證該軟體306。在一個實例中,可獲得用於該軟體之新產生之驗證標籤並與所擷取之驗證標籤進行比較。若成功地驗證該軟體308,則執行軟體310。
若不存在用於該軟體之驗證標籤303及/或若軟體驗證失敗308,則可執行對該軟體之鑑認312。在一個實例中,鑑認軟體312可包括使用(例如)由軟體散發者提供之公共密鑰鑑認軟體之數位簽名。若成功地鑑認軟體314,則產生用於軟體之驗證標籤316。接著可將驗證標籤儲存(例如)於在裝置內或在裝置外部之安全或非安全儲存器中318。否則,若軟體鑑認314失敗,則中止軟體之執行315。接著可執行320 軟體。
根據一個實例,可依據軟體及內嵌式秘密資料或功能等效物(例如實體不可複製函數)產生驗證標籤。可使用此驗證標籤以使軟體之後續執行(例如,在第一次開機之後的軟體之開機時間驗證)最佳化。在一個實例中,驗證標籤可包括使用裝置特定秘密密鑰(亦即,僅對裝置已知)或受該裝置特定秘密密鑰束縛之關於軟體之經鑑認映像的訊息鑑認碼(MAC)。
在一個實例中,與使用公共密鑰鑑認軟體之數位簽名相比,使用與秘密資料組合或受該秘密資料束縛之驗證標籤(例如MAC)係顯著地較高效的。應注意,驗證標籤可由秘密資料簽名或受其束縛,且可儲存於任何位置(包括裝置內之不安全或非安全儲存器)中。當隨後載入或使用軟體時,產生用於正在載入之軟體之新驗證標籤(例如新MAC)且將該新驗證標籤與先前所儲存之驗證標籤(例如MAC)進行比較。若所儲存之驗證標籤經篡改,則使用秘密資料進行驗證將導致在與新驗證標籤進行比較時失敗。
用於軟體鑑認及驗證之第二例示性方法
圖4(包含圖4A及圖4B)說明用於執行混合式軟體鑑認與驗證之第二一般方法。裝置擷取、接收及/或獲得軟體402。接著(例如)在軟體載入至裝置時執行對該軟體之鑑認404。在一個實例中,鑑認該軟體可包括使用(例如)由軟體散發者提供之公共密鑰鑑認該軟體之數位簽名。若成功地鑑認軟體406,則產生用於軟體之驗證標籤408。接著可將該驗證標籤儲存(例如)於在裝置內或在裝置外部之安全或非安全儲存器中410。否則,若軟體鑑認406失敗,則中止軟體之執行407。
隨後,當該軟體正載入於該裝置上或由該裝置使用時,擷取用於該軟體之驗證標籤412。根據一個實例,可使用軟體及內嵌式秘密資料或功能等效物(例如實體不可複製函數)以產生驗證標籤。可使用 此驗證標籤以使軟體之後續執行(例如,在第一次開機之後的軟體之開機時間驗證)最佳化。在一個實例中,驗證標籤可包括使用裝置特定秘密密鑰(亦即,僅對裝置已知)或受該裝置特定秘密密鑰束縛之關於軟體之經鑑認映像的訊息鑑認碼(MAC)。
接著使用驗證標籤(例如,藉由將所擷取之驗證標籤與軟體的新產生之驗證標籤進行比較)來驗證軟體414。若成功地驗證軟體416,則執行軟體420,否則,中止軟體執行418。
在更一般意義上,驗證標籤可為組合軟體之特性與秘密資料之任一值。舉例而言,驗證標籤可為接著受秘密資料保護之關於軟體的雜湊。在另一實例中,以准許後續驗證之方式組合軟體與秘密密鑰之位元。
另一態樣提供防復原(anti-rollback)特徵,因此攻擊者無法簡單地用軟體之舊映像更新主機裝置之儲存器(快閃記憶體)。此攻擊將使用由軟體散發者提供之公共密鑰執行鑑認,若軟體已經被破解,則該鑑認將失敗。然而,攻擊者可能亦儲存舊驗證標籤(來自所安裝之軟體之先前版本)。若攻擊者可使該驗證標籤對軟體之經修改版本起作用,則可繞過完整鑑認處理程序。然而,防復原特徵可使用防復原熔絲(或等效物)作為使用於驗證標籤產生功能中之輸入的一部分。每當更新軟體時,可使另一熔絲熔斷,使得由於熔絲狀態(其充當至驗證標籤產生之輸入)已經改變,因此無法複寫任何先前驗證標籤。此防止軟體之舊映像及驗證標籤起作用。
用於軟體鑑認及驗證之第三例示性方法
圖5說明用於在載入於裝置內期間驗證軟體之另一例示性方法。該軟體可儲存於在該裝置內或在該裝置外部之安全或非安全儲存器中。可在載入軟體以供該裝置執行時鑑認該軟體,其中該軟體儲存於在裝置內或在裝置外部之非安全儲存器中502。鑑認該軟體可涉及對 軟體及軟體之數位簽名之密碼編譯操作。舉例而言,鑑認該軟體可包括使用對軟體之簽名使用由軟體散發者提供之公共密鑰鑑認該軟體。應注意,軟體散發者可為產生或散發軟體之團體或實體。該軟體可為在裝置之開機時間載入之作業系統的一部分。
若對軟體之鑑認成功,則可產生用於軟體之驗證標籤,該驗證標籤係基於軟體及至少一裝置特定秘密資料504。可儲存驗證標籤506。舉例而言,可將驗證標籤儲存於在該裝置內或在該裝置外部之安全或非安全儲存器中。在一個實例中,產生驗證標籤可包括產生關於軟體且使用裝置特定秘密資料的訊息鑑認碼(MAC)。在另一實例中,驗證標籤可為接著受秘密資料保護或束縛之軟體之雜湊。在各種實例中,秘密資料可僅對裝置已知且/或可能在裝置外部不可存取。亦可基於裝置內之實體不可複製函數(PUF)獲得秘密資料。
隨後,可在載入軟體以供執行時,藉由使用驗證標籤來驗證(並非鑑認)該軟體,以確認正在載入之軟體與用以產生驗證標籤之軟體相同,同時避免對軟體之鑑認,其中與鑑認軟體相比,驗證軟體係費時較少的且/或資源密集程度較低的508。
可基於每當獲得軟體之新版本時發生改變之裝置資料而另外產生驗證標籤。當產生用於裝置中之軟體之新驗證標籤時,裝置資料從不重複。
與驗證軟體相比,鑑認軟體可消耗裝置之較多處理資源或較長時間。
在一個實例中,若使用驗證標籤對軟體之驗證失敗509,則嘗試對軟體之再鑑認510。僅當再鑑認510成功時才執行該軟體512。否則,若對軟體之再鑑認失敗,則中止軟體之執行514。
根據一個態樣,並非在載入軟體時鑑認該軟體,而是裝置可嘗試利用可供其使用之預先存在之驗證標籤中的一或多者來執行驗證。 若該驗證失敗或無驗證標籤可用,則執行對軟體之鑑認。
在另一態樣中,可獲得軟體之新版本。當載入軟體之新版本以供裝置執行時,鑑認軟體之新版本。若對軟體之新版本之鑑認成功,則產生新驗證標籤,該新驗證標籤係基於該軟體之新版本以及至少裝置特定秘密資料。儲存新驗證標籤(例如,在裝置內或在裝置外部)。隨後,當載入軟體之新版本以供執行時,藉由使用新驗證標籤來驗證該軟體之該新版本,以確認正在載入之軟體之新版本與用以產生新驗證標籤之軟體之版本相同,同時避免對該軟體之新版本之再鑑認。應注意,與再鑑認軟體之新版本相比,驗證軟體之新版本可為費時較少的及/或資源密集程度較低的。
用於軟體鑑認及驗證之第四例示性方法
圖6說明用於在載入於裝置內期間驗證軟體之又一例示性方法。獲得儲存於在裝置內或在裝置外部之非安全儲存器中之軟體602。在一個實例中,該軟體可為在裝置之開機時間載入之作業系統的一部分。當載入軟體以供執行時,可嘗試藉由使用預先產生之驗證標籤來驗證軟體,以確認正在載入之軟體與用以產生預先產生之驗證標籤之軟體相同,同時避免對軟體之鑑認604。可自對軟體之先前鑑認獲得預先產生之驗證標籤。若該驗證成功606,則執行軟體608。
否則,若驗證失敗或無預先產生之驗證標籤可用,則可在載入軟體以供裝置執行時鑑認該軟體610。應注意,與鑑認軟體相比,驗證軟體可為費時較少的及/或資源密集程度較低的。若對軟體之鑑認成功,則基於該軟體及裝置特定秘密資料產生用於該軟體之新驗證標籤612。秘密資料可僅對裝置已知且/或在裝置外部不可存取。舉例而言,可基於裝置內之實體不可複製函數獲得秘密資料。接著可儲存新驗證標籤614。在一些實例中,可將預先產生之驗證標籤及/或新驗證標籤儲存於在裝置內或在裝置外部之非安全儲存器或不同的非安全儲 存器中。
在一個實例中,可鑑認軟體,且在成功鑑認後,即可產生預先產生之(例如,初始、第一、先前,等)驗證標籤。可儲存預先產生之驗證標籤以供在對軟體之後續驗證中使用。
在一個實例中,鑑認該軟體可涉及對軟體及軟體之密碼編譯簽名之密碼編譯操作。舉例而言,鑑認該軟體可包括使用對軟體之簽名使用公共密鑰鑑認該軟體。
在另一實例中,產生新驗證標籤可包括產生關於軟體且使用裝置特定秘密資料的訊息鑑認碼(MAC)。
在一些實施中,可基於每當獲得軟體之新版本時發生改變之裝置資料而另外產生新驗證標籤。當產生用於裝置中之軟體之新驗證標籤時,裝置資料可從不重複。
若對軟體之鑑認失敗,則中止軟體之執行。在一個實施中,僅當對軟體之驗證成功或對軟體之鑑認成功時才執行該軟體。
可獲得軟體之新版本。可在載入軟體以供裝置執行時鑑認軟體之新版本。若對軟體之新版本之鑑認成功,則產生用於軟體之新版本之另一驗證標籤,其中該另一驗證標籤可基於該軟體之該新版本以及至少裝置特定秘密資料或另一裝置特定資料。亦可儲存該另一驗證標籤以供後續使用。隨後,可在載入軟體以供執行時,藉由使用該另一驗證標籤來驗證軟體之新版本,以確認正在載入之軟體之新版本與用以產生該另一驗證標籤之軟體之版本相同,同時避免對該軟體之新版本之再鑑認。
根據另一態樣,驗證標籤可另外受可用以停用驗證標籤之可撤銷憑證束縛。舉例而言,可在執行驗證後即由裝置檢查該可撤銷憑證。該裝置可查詢憑證撤銷資料庫,且驗證將在已經撤銷該憑證之情況下失敗。因此,即使軟體未經修改,在已經撤銷對應憑證之情況 下,驗證仍將失敗。
另一實例提供一種諸如主機裝置200之裝置,其經組態以在執行之前執行混合式軟體鑑認與驗證。可提供包含儲存裝置206及處理電路202之裝置200(圖2)。儲存裝置206可用以儲存鑑認指令214及/或驗證標籤產生指令216以及驗證標籤比較指令218。處理電路202可經組態以獲得(例如,經由匯流排232或自通信介面204擷取、讀取,等)儲存於在裝置200內或在裝置200外部之非安全儲存器中之軟體。
驗證標籤比較器模組/電路224可用以嘗試在載入軟體以供執行時,藉由使用預先產生之驗證標籤(例如,儲存於軟體驗證標籤226當中)來驗證軟體,以確認正在載入之軟體與用以產生驗證標籤之軟體相同,同時避免對軟體之鑑認。若驗證失敗或無預先產生之驗證標籤可用,則軟體鑑認模組/電路220可用以在載入軟體以供裝置執行時鑑認該軟體。若對軟體之鑑認成功,則驗證標籤產生器模組/電路222可用以基於軟體及裝置特定秘密資料而產生用於軟體之新驗證標籤。新驗證標籤接著可儲存於一或多個軟體驗證標籤226當中。此處理程序達成效率上之改進,此係因為與對軟體之鑑認相比,對軟體之驗證係費時較少的及/或資源密集程度較低的。因此,儘管鑑認最初可消耗較多時間或資源,但軟體之後續載入由於使用驗證而非鑑認而係較迅速及高效的。
該裝置亦可包括耦接至處理電路之複數個一次熔斷熔絲228,其中另外基於來自該等一次熔斷熔絲之狀態而產生新驗證標籤及/或預先產生之驗證標籤,且每當獲得軟體之更新版本時,該複數個一次熔斷熔絲發生改變。
在圖1、圖2、圖3、圖4、圖5及/或圖6中說明之組件、步驟、特徵及/或功能中之一或多者可重新配置及/或組合成單個組件、步驟、特徵或功能,或以數個組件、步驟或功能體現。亦可在不背離本發明 之範疇的情況下添加額外元件、組件、步驟及/或功能。在圖2中說明之設備、裝置及/或組件可經組態以執行在圖1、圖3、圖4、圖5及/或圖6中描述之方法、特徵或步驟中之一或多者。本文中所描述之新穎演算法亦可有效地實施於軟體中及/或內嵌於硬體中。
此外,應注意,至少一些實施經描述為處理程序,該處理程序經描繪為流程圖、結構圖或方塊圖。儘管流程圖可能將操作描述為順序處理程序,但許多操作可並行地或同時執行。另外,可重新配置操作之次序。當處理程序之操作完成時,該處理程序終止。處理程序可對應於方法、函式、程序、次常式、子程式等。當處理程序對應於函式時,處理程序之終止對應於函式返回至呼叫函式或主函式。
此外,實施例可由硬體、軟體、韌體、中間軟體、微碼或其任何組合實施。當以軟體、韌體、中間軟體或微碼實施時,用以執行必要任務之程式碼或碼段可儲存於機器可讀媒體(諸如儲存媒體或一或多個其他儲存器)中。處理器可執行必要任務。碼段可表示程序、函式、子程式、程式、常式、次常式、模組、軟體套件、類別,或指令、資料結構或程式陳述式的任何組合。一個碼段可藉由傳遞及/或接收資訊、資料、引數、參數或記憶體內容耦接至另一碼段或硬體電路。可經由包括記憶體共用、訊息傳遞、符記傳遞、網路傳輸等任何合適的方式傳遞、轉發或傳輸資訊、引數、參數、資料等。
術語「機器可讀媒體」、「電腦可讀媒體」及/或「處理器可讀媒體」可包括(但不限於)可攜式或固定儲存裝置、光學儲存裝置,以及能夠儲存、容納或攜載一或多個指令及/或資料之各種其他非暫時性媒體。因此,本文中描述之各種方法可以部分或完全地由可儲存於「機器可讀媒體」、「電腦可讀媒體」及/或「處理器可讀媒體」中且由一或多個處理器、機器及/或裝置執行之指令及/或資料來實施。
結合本文中所揭示之實例描述的方法或演算法可以處理單元、 程式設計指令或其他指示之形式直接體現於硬體、可由處理器執行之軟體模組或兩者之組合中,且可含於單個裝置中或跨越多個裝置而分佈。軟體模組可駐存於RAM記憶體、快閃記憶體、ROM記憶體、EPROM記憶體、EEPROM記憶體、暫存器、硬碟、抽取式磁碟、CD-ROM,或此項技術中已知之任何其他形式的儲存媒體中。儲存媒體可耦接至處理器,以使得處理器可自儲存媒體讀取資訊及向儲存媒體寫入資訊。在替代方案中,儲存媒體可整合至處理器。
熟習此項技術者將進一步瞭解,結合本文中所揭示之實施例描述的各種說明性邏輯區塊、模組、電路及演算法步驟可實施為電子硬體、電腦軟體或兩者之組合。為了清楚地說明硬體與軟體之此可互換性,各種說明性組件、區塊、模組、電路及步驟已在上文大體按其功能性加以描述。此功能性實施為硬體抑或軟體取決於特定應用及強加於整個系統上之設計約束。
本文中所描述之實施例之各種特徵可在不背離本發明之範疇的情況下實施於不同系統中。應注意,前述實施例僅為實例,且不應解釋為限制本發明。實施例之描述意欲為說明性的,且不限制申請專利範圍之範疇。因而,本發明之教示可容易應用於其他類型之裝置,且許多替代例、修改及變化對於熟習此項技術者而言將顯而易見。

Claims (22)

  1. 一種用於在載入於一裝置內期間驗證軟體之方法,其包含:在該裝置獲得儲存於在該裝置內或在該裝置外部之一非安全儲存器中之軟體;在該裝置之一驗證標籤比較器電路嘗試在載入該軟體以供執行時,藉由使用一預先產生之驗證標籤來驗證該軟體,以確認正在載入之該軟體與用以產生該預先產生之驗證標籤之軟體相同,同時避免對該軟體之一鑑認;若驗證失敗或無預先產生之驗證標籤可用,則在載入該軟體以供該裝置執行時在一軟體鑑認電路鑑認該軟體,若對該軟體之鑑認成功,則在該裝置之一驗證標籤產生器電路產生用於該軟體之一新驗證標籤,該新驗證標籤係基於該軟體、裝置特定秘密資料、及包括來自一或多個一次可熔斷熔絲之狀態之裝置資料,其中每次獲得該軟體之一新版本時該一或多個一次可熔斷熔絲中至少一者熔斷以改變該裝置資料,及在一儲存裝置儲存該新驗證標籤;且其中與鑑認該軟體相比,驗證該軟體係費時較少的及/或資源密集程度較低的。
  2. 如請求項1之方法,其中自對該軟體之一先前鑑認獲得該預先產生之驗證標籤。
  3. 如請求項1之方法,其進一步包含:在該軟體鑑認電路鑑認該軟體且在該驗證標籤產生器電路產生該預先產生之驗證標籤;及 在該儲存裝置儲存該預先產生之驗證標籤以供在對該軟體之後續驗證中使用。
  4. 如請求項1之方法,其中鑑認該軟體涉及對該軟體及該軟體之一密碼編譯簽名之一密碼編譯操作。
  5. 如請求項1之方法,其中鑑認該軟體包括使用對該軟體之一簽名使用一公共密鑰鑑認該軟體。
  6. 如請求項1之方法,其中產生該新驗證標籤包括產生關於該軟體且使用該裝置特定秘密資料之一訊息鑑認碼(MAC)。
  7. 如請求項1之方法,其中該裝置特定秘密資料僅對該裝置已知。
  8. 如請求項1之方法,其中該裝置特定秘密資料在該裝置外部不可存取。
  9. 如請求項1之方法,其中將該預先產生之驗證標籤及/或該新驗證標籤儲存於在該裝置內或在該裝置外部之該非安全儲存器或一不同的非安全儲存器中。
  10. 如請求項1之方法,其中該軟體係在該裝置之開機時間載入之一作業系統的一部分。
  11. 如請求項1之方法,其中基於在該裝置內之一實體不可複製函數獲得該裝置特定秘密資料。
  12. 如請求項1之方法,其進一步包含:若對該軟體之鑑認失敗,則在該裝置中止該軟體之執行。
  13. 如請求項1之方法,其進一步包含:當對該軟體之該鑑認成功時在該裝置執行該軟體。
  14. 如請求項1之方法,其進一步包含:在該裝置獲得該軟體之一新版本;在載入該軟體以供該裝置執行時在該軟體鑑認電路鑑認該軟體之該新版本, 若對該軟體之該新版本之鑑認成功,則在該驗證標籤產生器電路產生用於該軟體之該新版本之另一驗證標籤,該另一驗證標籤係基於該軟體之該新版本、該裝置特定秘密資料、及經改變之裝置資料,及在該儲存裝置儲存該另一驗證標籤。
  15. 如請求項14之方法,其進一步包含:嘗試在載入該軟體以供執行時在該驗證標籤比較器電路藉由使用該另一驗證標籤來驗證該軟體之該新版本,以確認正在載入之該軟體之該新版本與用以產生該另一驗證標籤之該軟體之版本相同,同時避免對該軟體之該新版本之一再鑑認。
  16. 如請求項14之方法,其中該新驗證標籤係另外基於一可撤銷憑證,且該方法進一步包含:在執行該軟體之前在該裝置確定該可撤銷憑證是否仍為有效的。
  17. 一種用於在載入期間驗證軟體之裝置,其包含:一儲存裝置,其用於儲存鑑認及驗證指令;一處理電路,其耦接至該儲存裝置,該處理電路經組態以:獲得儲存於在該裝置內或在該裝置外部之一非安全儲存器中之軟體;嘗試在載入該軟體以供執行時,藉由使用一預先產生之驗證標籤來驗證該軟體,以確認正在載入之該軟體與用以產生該預先產生之驗證標籤之軟體相同,同時避免對該軟體之一鑑認;若驗證失敗或無預先產生之驗證標籤可用,則在載入該軟體以供該裝置執行時鑑認該軟體,若對該軟體之鑑認成功,則產生用於該軟體之一新驗證 標籤,該新驗證標籤係基於該軟體、裝置特定秘密資料、及包括來自一或多個一次可熔斷熔絲之狀態之裝置資料,其中每次獲得該軟體之一新版本時該一或多個一次可熔斷熔絲中至少一者熔斷以改變該裝置資料,及儲存該新驗證標籤;且其中與對該軟體之鑑認相比,對該軟體之驗證係費時較少的及/或資源密集程度較低的。
  18. 如請求項17之裝置,其中該處理電路進一步經組態以:鑑認該軟體且產生該預先產生之驗證標籤;及儲存該預先產生之驗證標籤以供在對該軟體之後續驗證中使用。
  19. 如請求項17之裝置,其中該預先產生之驗證標籤及/或該新驗證標籤儲存於在該裝置內或在該裝置外部之該非安全儲存器或一不同的非安全儲存器中。
  20. 如請求項17之裝置,其中該裝置特定秘密資料在該裝置外部係未知的且不可存取。
  21. 一種用於在載入期間驗證軟體之裝置,其包含:用於獲得儲存於在該裝置內或在該裝置外部之一非安全儲存器中之軟體的構件;用於嘗試在載入一軟體以供執行時,藉由使用一預先產生之驗證標籤來驗證該軟體,以確認正在載入之該軟體與用以產生該預先產生之驗證標籤之軟體相同,同時避免對該軟體之一鑑認的構件;用於在驗證失敗或無預先產生之驗證標籤可用之情況下,在載入該軟體以供該裝置執行時鑑認該軟體的構件;用於在對該軟體之鑑認成功之情況下產生用於該軟體之一新 驗證標籤的構件,該新驗證標籤係基於該軟體、裝置特定秘密資料、及包括來自一或多個一次可熔斷熔絲之狀態之裝置資料,其中每次獲得該軟體之一新版本時該一或多個一次可熔斷熔絲中至少一者熔斷以改變該裝置資料,及用於儲存該新驗證標籤的構件;且其中與鑑認該軟體相比,驗證該軟體係費時較少的及/或資源密集程度較低的。
  22. 一種用於在載入期間驗證軟體之裝置,其包含:一儲存裝置,其用於儲存鑑認及驗證指令;一處理電路,其耦合至該儲存裝置,該處理電路經組態以:獲得儲存於在該裝置內或在該裝置外部之一非安全儲存器中之軟體;嘗試在載入該軟體以供執行時,藉由使用一預先產生之驗證標籤來驗證該軟體,以確認正在載入之該軟體與用以產生該預先產生之驗證標籤之軟體相同,同時避免對該軟體之一鑑認;若驗證失敗或無預先產生之驗證標籤可用,則在載入該軟體以供該裝置執行時鑑認該軟體,若對該軟體之鑑認成功,則產生用於該軟體之一新驗證標籤,該新驗證標籤係基於該軟體、裝置特定秘密資料、及包括來自一或多個硬體組件之狀態之裝置資料,其中每次獲得該軟體之一新版本時該裝置資料改變,且其中當該新驗證標籤產生時該裝置資料並未重複,及儲存該新驗證標籤;且其中與對該軟體之鑑認相比,對該軟體之驗證係費時較少的及/或資源密集程度較低的。
TW105109746A 2015-04-15 2016-03-28 用於在載入期間驗證軟體之裝置及用於在載入於裝置內期間驗證軟體之方法 TWI620092B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/687,783 US9697359B2 (en) 2015-04-15 2015-04-15 Secure software authentication and verification
US14/687,783 2015-04-15

Publications (2)

Publication Number Publication Date
TW201706898A TW201706898A (zh) 2017-02-16
TWI620092B true TWI620092B (zh) 2018-04-01

Family

ID=55646917

Family Applications (1)

Application Number Title Priority Date Filing Date
TW105109746A TWI620092B (zh) 2015-04-15 2016-03-28 用於在載入期間驗證軟體之裝置及用於在載入於裝置內期間驗證軟體之方法

Country Status (7)

Country Link
US (1) US9697359B2 (zh)
EP (1) EP3284000B1 (zh)
JP (1) JP6371919B2 (zh)
KR (1) KR101904303B1 (zh)
CN (1) CN107430658B (zh)
TW (1) TWI620092B (zh)
WO (1) WO2016167926A1 (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9953167B2 (en) * 2015-10-12 2018-04-24 Microsoft Technology Licensing, Llc Trusted platforms using minimal hardware resources
US10984136B2 (en) * 2017-04-21 2021-04-20 Micron Technology, Inc. Secure memory device with unique identifier for authentication
US11321466B2 (en) * 2018-03-09 2022-05-03 Qualcomm Incorporated Integrated circuit data protection
EP3782058B1 (en) * 2018-04-20 2024-03-20 Vishal Gupta Decentralized document and entity verification engine
CN110096887B (zh) * 2019-03-22 2020-06-30 阿里巴巴集团控股有限公司 一种可信计算方法及服务器
KR20220026079A (ko) 2020-08-25 2022-03-04 삼성전자주식회사 스토리지 장치
TWI759874B (zh) * 2020-09-22 2022-04-01 明泰科技股份有限公司 分散式的軟體驗證系統
US11423154B2 (en) * 2020-10-26 2022-08-23 Micron Technology, Inc. Endpoint authentication based on boot-time binding of multiple components
KR102387685B1 (ko) * 2020-11-03 2022-05-30 유비벨록스(주) 보안 부트 검증 방법 및 이를 위한 보안 칩
US11520895B2 (en) * 2020-12-07 2022-12-06 Samsung Electronics Co., Ltd. System and method for dynamic verification of trusted applications
JP2023084913A (ja) * 2021-12-08 2023-06-20 株式会社リコー 情報処理システム、情報処理装置、情報処理方法、及びプログラム
US20230244790A1 (en) * 2022-02-01 2023-08-03 Aptiv Technologies Limited Accelerated Secure Boot for Embedded Controllers
EP4228187A1 (en) 2022-02-15 2023-08-16 Aptiv Technologies Limited Integrity tests for mixed analog digital systems

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101073045A (zh) * 2004-10-11 2007-11-14 艾利森电话股份有限公司 数据处理装置中的数据的安全加载和存储
US20090193211A1 (en) * 2008-01-24 2009-07-30 Broadcom Corporation Software authentication for computer systems
US8627086B2 (en) * 2004-10-11 2014-01-07 Telefonaktiebolaget Lm Ericsson (Publ) Secure loading and storing of data in a data processing device
US9009328B2 (en) * 2007-11-30 2015-04-14 International Business Machines Corporation System and method for dynamic negotiation of device name with wildcard character

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5734819A (en) * 1994-10-12 1998-03-31 International Business Machines Corporation Method and apparatus for validating system operation
US6961852B2 (en) * 2003-06-19 2005-11-01 International Business Machines Corporation System and method for authenticating software using hidden intermediate keys
US8290150B2 (en) * 2007-05-11 2012-10-16 Validity Sensors, Inc. Method and system for electronically securing an electronic device using physically unclonable functions
US7911857B1 (en) * 2009-06-10 2011-03-22 Juniper Networks, Inc. Preamble detection and postamble closure for a memory interface controller
CN101610452B (zh) 2009-07-15 2011-06-01 西安西电捷通无线网络通信股份有限公司 一种传感器网络鉴别与密钥管理机制的融合方法
US8386800B2 (en) 2009-12-04 2013-02-26 Cryptography Research, Inc. Verifiable, leak-resistant encryption and decryption
EP2348454A1 (en) * 2010-01-20 2011-07-27 Thomson Licensing A method of and a system for execution of a software application
US8539610B2 (en) * 2010-10-29 2013-09-17 Nokia Corporation Software security
DE102011054410B4 (de) * 2011-10-12 2014-09-25 Infineon Technologies Ag Vorrichtung und Verfahren zur Erzeugung einer Bitfolge
US8745371B2 (en) 2011-12-29 2014-06-03 Unisys Corporation Unified network architecture having storage devices with secure boot devices
US9281948B2 (en) * 2012-02-09 2016-03-08 Microsoft Technology Licensing, Llc Revocation information for revocable items
US8792645B2 (en) 2012-12-18 2014-07-29 Honeywell International Inc. Authentication and data security for wireless networks
US20140250290A1 (en) 2013-03-01 2014-09-04 St-Ericsson Sa Method for Software Anti-Rollback Recovery
US9201642B2 (en) * 2013-03-15 2015-12-01 International Business Machines Corporation Extending platform trust during program updates
US9088574B2 (en) * 2013-07-18 2015-07-21 International Business Machines Corporation Subscriber identity module-based authentication of a wireless device and applications stored thereon
JP2015049785A (ja) * 2013-09-03 2015-03-16 株式会社デンソー プログラム処理装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101073045A (zh) * 2004-10-11 2007-11-14 艾利森电话股份有限公司 数据处理装置中的数据的安全加载和存储
US8627086B2 (en) * 2004-10-11 2014-01-07 Telefonaktiebolaget Lm Ericsson (Publ) Secure loading and storing of data in a data processing device
US9009328B2 (en) * 2007-11-30 2015-04-14 International Business Machines Corporation System and method for dynamic negotiation of device name with wildcard character
US20090193211A1 (en) * 2008-01-24 2009-07-30 Broadcom Corporation Software authentication for computer systems

Also Published As

Publication number Publication date
JP6371919B2 (ja) 2018-08-08
CN107430658A (zh) 2017-12-01
KR101904303B1 (ko) 2018-10-04
JP2018512010A (ja) 2018-04-26
EP3284000A1 (en) 2018-02-21
US20160306976A1 (en) 2016-10-20
WO2016167926A1 (en) 2016-10-20
US9697359B2 (en) 2017-07-04
EP3284000B1 (en) 2018-09-05
KR20170118972A (ko) 2017-10-25
CN107430658B (zh) 2018-11-23
TW201706898A (zh) 2017-02-16

Similar Documents

Publication Publication Date Title
TWI620092B (zh) 用於在載入期間驗證軟體之裝置及用於在載入於裝置內期間驗證軟體之方法
US10721080B2 (en) Key-attestation-contingent certificate issuance
US10484185B2 (en) Method and system for distributing attestation key and certificate in trusted computing
JP5703391B2 (ja) 耐タンパー性ブート処理のためのシステム及び方法
TW201732669A (zh) 受控的安全碼鑑認
US9064129B2 (en) Managing data
US20080077592A1 (en) method and apparatus for device authentication
US10984107B2 (en) Secure boot
TWI708159B (zh) 包含安全處理器之裝置平台、裝置中之安全處理器、以及相關儲存媒體
TW201502855A (zh) 使用安全加強晶片之用於資料之安全儲存之系統、方法及裝置
TW201735578A (zh) 受控的安全碼認證
US11985247B2 (en) Network device authentication
WO2018112482A1 (en) Method and system for distributing attestation key and certificate in trusted computing
JP2019192231A (ja) コンピュータシステム及びコンピュータシステムを初期化する方法
JP2017011491A (ja) 認証システム
US20160335453A1 (en) Managing Data
CN107924440B (zh) 用于管理容器的方法、系统和计算机可读介质
US10461926B2 (en) Cryptographic evidence of persisted capabilities
KR20150089696A (ko) 접근제어와 우선순위기반 무결성 검증 시스템 및 그 방법
CN116964580A (zh) 数字设备的可信计算
US10067770B2 (en) Platform key hierarchy
WO2021037344A1 (en) Trusted device and computing system
JP2015015542A (ja) 情報処理システム
CN116582255A (zh) 一种基于固态硬盘命令的锁定方法、系统及存储介质
CN116388992A (zh) 针对分布式tee应用的远程认证方法及装置

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees