TWI773199B - 安全運算裝置、安全運算方法、驗證器及裝置驗證方法 - Google Patents

安全運算裝置、安全運算方法、驗證器及裝置驗證方法 Download PDF

Info

Publication number
TWI773199B
TWI773199B TW110109649A TW110109649A TWI773199B TW I773199 B TWI773199 B TW I773199B TW 110109649 A TW110109649 A TW 110109649A TW 110109649 A TW110109649 A TW 110109649A TW I773199 B TWI773199 B TW I773199B
Authority
TW
Taiwan
Prior art keywords
key
layer
random number
given
authentication
Prior art date
Application number
TW110109649A
Other languages
English (en)
Other versions
TW202207664A (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 TW202207664A publication Critical patent/TW202207664A/zh
Application granted granted Critical
Publication of TWI773199B publication Critical patent/TWI773199B/zh

Links

Images

Classifications

    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0866Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
    • 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/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/45Structures or tools for the administration of 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/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/088Usage controlling of secret information, e.g. techniques for restricting cryptographic keys to pre-authorized uses, different access levels, validity of crypto-period, different key- or password length, or different strong and weak cryptographic algorithms
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • H04L9/0897Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage involving additional devices, e.g. trusted platform module [TPM], smartcard or USB
    • 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
    • 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/3263Cryptographic 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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • H04L9/3265Cryptographic 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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements using certificate chains, trees or paths; Hierarchical trust model
    • 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/3271Cryptographic 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 challenge-response

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Electrotherapy Devices (AREA)

Abstract

一種包括網路介面、記憶體和處理器的裝置。該網路介面被配置以經由通訊網路與驗證器通訊。該記憶體被配置以儲存多層可變程式碼,其中各層可由各別的測量值來識別。該處理器被配置以在一給定開機周期內產生一個僅與該開機週期關聯的隨機數,自該驗證器接收一挑戰以認證一給定層,基於(i)安全地儲存於該裝置中的唯一裝置密鑰(Unique Device Secret, UDS)、(ii)該給定層由另一層測量的測量值、以及(iii)對該給定開機週期產生的隨機數,計算一認證金鑰,藉由使用該認證金鑰對該挑戰簽章以對該挑戰計算一回應,並傳送該回應至該驗證器以驗證該給定層。

Description

安全運算裝置、安全運算方法、驗證器及裝置驗證方法
本說明書描述之實施例,總體而言係關於安全運算,特別關於運行分層式軟體的裝置之認證(attestation)。
在各種安全運算環境中,運算裝置必須向被稱為「驗證器」(verifier) 的實體證明(prove)或認證(attest)其狀態及身分。運算裝置的認證方法為本發明所屬技術領域所習知。例如,信賴運算組織(Trusted Computing Group, TCP)定義了裝置識別組合引擎(Device Identifier Composition Engine, DICE),並開發了基於DICE的裝置認證架構。基於DICE的裝置認證架構可採用對稱金鑰或非對稱金鑰加密。基於DICE的規範可參見例如本說明書引用的某些參考文獻。
DICE的硬體要求可參見2018年3月22日,Hardware Requirements for a Device Identifier Composition Engine, Family “2.0” Level 00, Revision 78 等文獻。
基於DICE並使用非對稱金鑰加密的認證架構,可參見2018年3月5日,Implicit Identity Based Device Attestation, Version 1.0, Revision 0.93 等文獻。
基於DICE並使用對稱金鑰加密的認證架構,可參見2020年1月7日,Symmetric Identity Based Device Attestation, Version 1.0, Revision 0.95 等文獻。
DICE層級架構可參見2020年3月19日,DICE Layering Architecture, Version 1.0, Revision 0.19 等文獻。
DICE憑證總則可參見2020年3月10日,DICE Certificate Profiles, Version 1.0, Revision 0.01 等文獻。
一個包括網路介面、記憶體與處理器的裝置。網路介面被配置以經由通訊網路與驗證器通訊。記憶體被配置以儲存多層可變程式碼,其中上述各層可由各別的測量值來識別。處理器被配置以在一個開機週期中,產生一個僅關聯於該開機週期的隨機數 (nonce),接收來自驗證器的一次挑戰以認證給定的一層可變程式碼,從(i)安全地儲存於裝置中的唯一裝置密鑰(Unique Device Secret, UDS)、(ii)該給定層由另一層測量的測量值、以及(iii)對該給定開機週期產生的隨機數,推導認證金鑰以計算認證,藉由用上述認證金鑰對該挑戰進行簽章來計算對該挑戰的回應,並傳送該回應至驗證器以驗證(verify)該給定層。
在某些實施例中,處理器被設置以依據隨機數計算認證金鑰,使得處理器在給定開機週期前用來認證的認證金鑰,在給定開機週期中變得無效而無法認證。在其他實施例中,處理器被配置以將認證金鑰設定為與處理器在給定開機週期前用來認證的認證金鑰不同,即使該給定層與在該給定層之前執行的各層可變程式碼於該給定開機週期中仍保持完整。在另等其他實施例中,認證金鑰包括依據隨機數決定的對稱金鑰,且處理器被配置以藉由使用該對稱金鑰,對至少該挑戰進行簽章來計算回應,並傳送該回應與該隨機數至驗證器。
在一實施例中,認證金鑰包括依據隨機數決定的非對稱金鑰,且處理器被配置以藉由使用該非對稱金鑰的私有金鑰,對該挑戰進行簽章來計算回應,並傳送該回應至驗證器,但不傳送該隨機數。在另一實施例中,處理器被配置以對每一層產生個別的非對稱金鑰,包括認證金鑰,每一非對稱金鑰皆包括個別的私有金鑰和公開金鑰,以產生一個憑證鏈(chain of certificates),在一個給定層中的憑證,會驗明(certify)隨後的一層產生的公開金鑰,並使用該給定層產生的私有金鑰進行簽章,並傳送該憑證鏈至驗證器,以使用該認證金鑰的已驗明公開金鑰進行驗證。在又一實施例中,憑證鏈包括由隨機數獨立產生的憑證,該憑證可證明裝置係由特定製造商所製造。
在某些實施例中,處理器被配置以在先於上述給定層執行的信任層(trusted layer)中產生隨機數,在信任層中基於該隨機數計算密鑰,並依據該密鑰計算認證金鑰。在其他實施例中,處理器被配置以預先定義的順序執行多層程式碼,並僅在選定的一層已被驗證器成功驗證後,才根據上述預先定義的順序從選定的一層前進到隨後的一層。在另等實施例中,處理器被配置以根據上述隨機數計算認證金鑰,以減輕零時差攻擊(zero-day attack)的危害。
本說明書亦根據於此敘述的一個實施例,提供一種方法,包括在經由通訊網路與驗證器通訊的裝置中,儲存多層可變程式碼至該裝置的記憶體,其中上述各層可由各別的測量值來識別。對於一個給定的開機週期,產生一個僅關聯於該開機週期的隨機數。給定的一層可變程式碼會接收來自驗證器的一次認證挑戰。從(i)安全地儲存於裝置中的唯一裝置密鑰(UDS)、(ii)該給定層由另一層測量的測量值、以及(iii)對該給定開機週期產生的隨機數,推導認證金鑰以計算認證。藉由用上述認證金鑰對該挑戰進行簽章,來計算對該挑戰的回應。該回應被傳送至驗證器以驗證該給定層。
本說明書亦根據於此敘述的一個實施例,提供一種驗證器,包括網路介面與處理器。網路介面被配置以經由通訊網路與裝置通訊,其中該裝置包括多層可變程式碼,並產生一個僅關聯於某一給定開機週期的隨機數。處理器被設置以傳送一次挑戰至該裝置,以驗證給定的一層可變程式碼,自該裝置接收由該裝置為回應上述挑戰而產生的回應訊息,其中上述回應訊息依據與該給定開機週期關聯的隨機碼產生,並使用上述回應訊息驗證上述給定的一層可變程式碼。
在某些實施例中,上述回應訊息包括至少包括由依據隨機數決定的認證金鑰進行簽章的挑戰,且處理器被配置以於傳送挑戰之前,安全地在驗證器的記憶體中儲存裝置訊息,其中該裝置訊息搭配隨機數即足以復原認證金鑰,自該裝置接收隨機數,使用上述裝置訊息與隨機數復原認證金鑰,並使用復原的認證金鑰驗證給定的一層可變程式碼。在其他實施例中,上述回應訊息包括(i)使用非對稱認證金鑰的私有金鑰進行簽章的挑戰的數位簽章,以及(ii)與上述給定層關聯的公開金鑰的憑證,且處理器被配置以驗證已在憑證中驗明的公開金鑰,其中該憑證使用與上述公開金鑰匹配的私有金鑰進行簽章,隨後使用已驗證的公開金鑰驗證數位簽章。
本說明書亦根據於此敘述的一個實施例,提供一種驗證裝置的方法,包括在經由通訊網路與裝置通訊的伺服器中,其中該裝置包括多層可變程式碼,並產生一個僅關聯於某一給定開機週期的隨機數,傳送一次挑戰至該裝置,以驗證給定的一層可變程式碼。為回應挑戰而由該裝置產生的回應訊息從該裝置被接收,其中該回應訊息依據與該給定開機週期關聯的隨機碼產生。使用上述回應訊息,上述給定的一層可變程式碼被驗證。
上述及其他實施例,於閱讀下列詳述,並搭配附隨的圖式一同閱讀後,將可達到更完整的理解。其中,該等圖式為:
[概論]
本說明書敘述的實施例,提供改良的裝置認證方法與系統,包括開機事件後認證金鑰的修改。
在雲端或其他運算環境,例如物聯網(Internet of Things, IoT)網路中,運算裝置運行包括多層程式碼的軟體。各層程式碼有時可能被修改(例如修正錯誤)或下載更新的版本。由於可變程式碼易受駭客攻擊,因此其安全要求可能需要驗證該運算裝置的身分與軟體狀態。
在某些實施例中,由外部驗證器使用挑戰-回應協定(challenge-response protocol)驗證上述運算裝置(例如一個給定的程式碼層)。驗證器傳送挑戰至該裝置,而該裝置會傳回認證回應至該驗證器,以便驗證該運算裝置的身分和完整性。上述裝置通常藉由對挑戰使用合適的加密操作來計算回應,例如使用秘密認證金鑰產生數位簽章。
在以下敘述及請求項中,「認證」(attestation)一詞乃指由一個被請求進行認證的裝置執行,以認證 (attest) 該裝置的動作;而「驗證」(verification)一詞則指由外部驗證器執行,以觸發上述裝置進行認證(attestation)、並驗證(verify)該裝置狀態的動作。一個同時包含驗證器與回應驗證器認證請求的裝置之架構,在本說明書中稱為「認證架構」(attestation scheme)。
在某些實施例中,認證金鑰是由程式碼層產生的密鑰推導而來,依該裝置的身分及上述程式碼層的測量值而定。一個給定程式碼層的測量值,可能包括對底層程式碼或韌體使用安全的雜湊函式(hash function)所得的結果。若有未經准許之人修改一個或多個程式碼層而無對應認證金鑰的存取權,則驗證將失敗。
在某些種類的攻擊中,裝置密鑰可能洩漏,並由未經准許的攻擊者用來進行認證,以冒充該裝置。在偵測到密鑰洩漏時,裝置擁有者可能下載更新軟體或韌體版本至該裝置,以對付洩漏來源。然而,修復洩漏並更新大量現場裝置可能花費相對較長的時間,在這些時間中攻擊者可能造成大量傷害。
應注意,攻擊可能成功執行,因在裝置重開機後、更新前,該裝置會產生相同的認證金鑰,而此一認證金鑰已為攻擊者所知。此種攻擊的一個範例,有時被稱為「零時差攻擊」(zero-day attack)。
在揭露的實施例中,上述裝置在每次開機事件後會產生不同的認證金鑰。其將導致重開機前的認證金鑰值在重開機後變得無效而無法認證。此一機制可加強認證-驗證架構的安全性,以防止各種攻擊,包括零時差攻擊。
考慮一個包括網路介面、記憶體和處理器的裝置。網路介面使此裝置可經由通訊網路與驗證器進行通訊。記憶體儲存多層可變程式碼,其中上述各層可由各別的測量值來識別。處理器對於一個給定的開機週期,產生一個僅關聯於該開機週期的隨機數。處理器自驗證器接收挑戰,以認證給定的一層可變程式碼,並計算認證金鑰,從(i)安全地儲存於裝置中的唯一裝置密鑰(UDS)、(ii)該給定層由另一層測量的測量值、以及(iii)對該給定開機週期產生的隨機數,推導認證金鑰。處理器藉由用上述認證金鑰對該挑戰進行簽章來計算對該挑戰的回應,並傳送該回應至驗證器以驗證該給定層的身分與完整性。在以下敘述及請求項中,「從某一給定因素推導認證金鑰」一語,代表若修改此因素,則認證金鑰亦隨之修改。然而,認證金鑰可能是從該因素直接或間接推導而來。
在揭露的實施例中,處理器沿各層產生密鑰鏈,從一個受信任的硬體層開始,該層被稱為裝置識別組合引擎(DICE)層。根據以上引用的DICE標準,上述DICE層安全地儲存一個唯一裝置密鑰(UDS)。此一UDS為包含上述DICE層和其他層的信任鏈的信任根(root of trust, RoT)。
在開機時,處理器無條件執行上述DICE層,該DICE層對第一可變層進行測量。基於上述UDS及該測量值,該DICE層對第一可變層產生一密鑰,稱為複合裝置標識符(Compound Device Identification, CDI)。以類似方式,每一可變層皆根據上一層產生的密鑰及對下一層的測量值,對下一層產生一密鑰。處理器從一給定層由前一層產生的密鑰,對該層推導認證金鑰。
在某些實施例中,處理器根據隨機數計算認證金鑰,使得處理器在給定開機週期前用來認證的認證金鑰,在給定開機週期中變得無效而無法認證。處理器將認證金鑰設定為與處理器在給定開機週期前用來認證的認證金鑰不同,即使該給定層與在該給定層之前執行的各層可變程式碼於該給定開機週期中仍保持完整。
在一個實施例中,上述認證金鑰包括依據隨機數決定的對稱金鑰,且處理器藉由使用該對稱金鑰,對至少該挑戰進行簽章來計算回應,並傳送該回應與該隨機數至驗證器。
在另一實施例中,上述認證金鑰包括依據隨機數決定的非對稱金鑰配對,且處理器藉由使用該非對稱金鑰配對的私有金鑰,對該挑戰進行簽章來計算回應,並傳送該回應至驗證器,但不傳送該隨機數。此時,處理器對每一層產生個別的非對稱金鑰,包括認證金鑰,每一非對稱金鑰配對皆包括個別的私有金鑰和公開金鑰。處理器產生一個憑證鏈,其中在一個給定層中的憑證,會驗明隨後的一層產生的公開金鑰,並使用該給定層產生的私有金鑰進行簽章。處理器傳送該憑證鏈至驗證器,以使用該認證金鑰的已驗明公開金鑰進行驗證。
在一個實施例中,上述憑證鏈包括一個由隨機數獨立產生的憑證,該憑證可證明裝置係由特定製造商所製造。此一憑證可開始上述憑證鏈,且該憑證可由外部的憑證授權機構(certification authority)製作。
在某些實施例中,處理器在先於該給定層(被驗證的一層)執行的信任層中產生隨機數,在該信任層中基於該隨機數計算密鑰,並依據該密鑰計算認證金鑰。
處理器通常以預先定義的順序執行各層程式碼。在一個實施例中,處理器依照上述給定順序執行每一層,並認證最後一層。在另一實施例中,處理器在選定的一層已被驗證器成功驗證後,才根據上述預先定義的順序從選定的一層前進到隨後的一層。
在本說明書揭露的技術中,描述一種認證架構,其中的裝置會產生一個隨機的、與開機週期關聯的隨機數,並間接地根據上述隨機數計算認證金鑰。在此架構中,在前一次開機週期中使用的認證金鑰,在下一次開機時即變為無效而無法認證。本說明書揭露的此一認證架構使裝置得以減輕攻擊(例如零時差攻擊)的危害。本說明書揭露的此一認證架構適用於對稱認證金鑰與非對稱認證金鑰。 [系統描述]
第1圖為一方塊圖,根據本說明書敘述的一個實施例,圖示一種支援安全裝置認證的運算系統20。
運算系統20包括多個運算裝置24,由管理伺服器28經由通訊網路32控制。通訊網路32可包括任何合適的封包網路,使用任何合適的通訊協定運作,例如乙太網路(Ethernet),或網際網路協定(Internet Protocol, IP)網路,例如網際網路(Internet)。通訊網路32可包括區域網路(Local Area Network, LAN)、廣域網路(Wide Area Network, WAN)、無線網路,或數種封包網路之組合。
運算系統20可用於驗證低成本裝置,例如物聯網(IoT)裝置(24)等。此外,其他種類的運算裝置,例如伺服器,亦可使用本說明書揭露的認證與驗證技術。
運算裝置24(為簡潔起見,亦僅稱「裝置」) 包括處理器40,經由匯流排52,例如高速外設組件互聯標準(Peripheral Component Interconnect Express, PCIe)匯流排,或任何其他合適的匯流排,耦接至可重複寫入記憶體44及唯讀記憶體(ROM)48。運算裝置24經由網路介面54,例如網路介面控制器(network interface controller, NIC),存取通訊網路32。
處理器 40 通常運行一個或多個應用程式。此等應用程式可與其他裝置或伺服器經由通訊網路32互動,而此等互動可能使裝置易受安全性攻擊。在各種任務中,處理器 40 運行認證函式 56 以證明其狀態與身分,如下述。應注意,為清晰起見,認證函式 56 在圖中被描繪為由處理器執行。然而,認證函式的程式碼通常儲存於記憶體44(或任何其他處理器可存取的合適記憶體,未圖示) 之中。
ROM 48儲存開機程式碼58,此一開機程式碼於重置(reset)或電源開啟時由處理器40無條件執行。記憶體44儲存多個軟體層60,此等軟體層可在需要時進行修改,例如修正功能錯誤或解決安全性漏洞。在第1圖的範例中,前三層60標記為L0 , L1 及L2 。開機程式碼58亦被稱為「DICE 層」。此一DICE層為不可變且具高度安全性,因此被認定為一信任層。
每一層可安全地與後一層或前一層交換秘密資訊,因而建構了一個由上述DICE層開始的信任鏈。例如,在某些實施例中,(例如從L0 …Ln 各層) 對UDS的存取在上述DICE層傳遞控制訊號至第0層前是被阻擋的。一般而言,每一層Li 在傳遞控制訊號至下一層Li+1 之前,會防止對其密鑰Si 及其他秘密資訊的存取。防止存取可能以阻擋存取或從記憶體中抹除Li 層的秘密資訊等方式實施。
在以下敘述中,若提及某一層進行某些操作,則意指處理器 40 藉由執行該層中的程式碼進行該任務。
一次開機程序始自處理器40執行開機程式碼58,接著依序執行軟體層60,直到底層作業系統與應用程式開始運行為止。此等依序執行之軟體層形成一個信任鏈,其中各個信任層提供密鑰予下一層。一個受信任的軟體層可被信任擁有某些屬性。例如,一個信任層可被信任持有由上一信任層產生的密鑰。
運算裝置24包括唯一裝置密鑰(UDS)62,作為認證的信任根。在某些實施例中,UDS 62為不可變且可被安全地嵌入於硬體中。例如,上述UDS可用一次性可程式化(one time programmable, OTP)記憶體或物理不可複製函數(physical unclonable function, PUF)實施。或者,上述UDF亦可燒錄於ROM 48中。又或者,任何其他合適的安全嵌入UDS 62於硬體中的方法亦可使用,例如使用OTP、PUF與ROM中部分或全部之組合。
上述UDS被推定為僅可由上述DICE層存取。在裝置開機時,該DICE層從UDS 62產生一個密鑰,此一密鑰在TCG規格中被稱為複合裝置標識符(CDI)66。該DICE層以安全的方式提供該CDI至第L0 層。
運算裝置24包括一密碼引擎70,支援各種密碼操作,例如加密、解密、雜湊、簽章之產生及驗證、產生隨機數等。在某些實施例中,密碼引擎70代替處理器40進行裝置認證所需的密碼計算。
密碼引擎70包括一個隨機數產生器(random number generator, RNG)72,產生一個隨機或偽隨機的密碼隨機數 (cryptographic nonce)74,供處理器 40用於驗證。如下所述,密碼隨機數74會內隱地修改認證金鑰,使得開機事件前的認證金鑰值在開機事件後變得無效而無法認證。
密碼隨機數74包括一個隨機或偽隨機數,並擁有足夠的位元數,以確保重複的隨機數值幾乎不產生。在揭露的認證架構中,密碼隨機數74與一個開機週期關聯而產生(例如每個開機週期一次),如下所述。
管理伺服器28包括主機處理器76及記憶體80。管理伺服器28使用網路介面84經由通訊網路32與運算裝置24通訊。在某些實施例中,記憶體80儲存該管理伺服器控制下的運算裝置24的資料庫(database, DB)88,以及政策90。記憶體80可包括例如隨機存取記憶體(random access memory)、非揮發性記憶體(nonvolatile memory)或其他任何合適的儲存設備種類。管理伺服器28可與運算裝置24進行各種目的之通訊,例如軟體服務開通(software provisioning)、向運算裝置24傳送指令以進行相關任務、以及從該等裝置接收報告。管理伺服器28使用驗證程式86驗證運算裝置24的身分及狀態;其中,為了簡潔起見,驗證程式86於本說明書中亦簡稱為「驗證器」。該驗證器(以及運算裝置 24)可實施合適的挑戰-回應方法,如下所述。
政策90向主機處理器76指明用於裝置24的安全政策。一個給定的政策可指明進行裝置驗證的時程表、各裝置中哪些層需要驗證、裝置驗證失敗時應採取何種行動、經認可的韌體版本等。
第1圖所示運算系統20、運算裝置24及管理伺服器28的設定僅為範例設定,僅為明確闡述概念而描繪。在其他實施例中,任何其他合適的運算系統、運算裝置及管理伺服器皆可使用。對理解揭露之技術非必要之元件,為清晰明確起見,於圖中皆被略去。
在各種實施例中,運算系統20的不同元件(例如運算裝置24)可用任何合適硬體實施,例如使用一個或多個離散元件、一個或多個特定應用積體電路(Application Specific Integrated Circuit, ASIC)及/或一個或多個現場可程式化邏輯閘陣列(Field Programmable Gate Array, FPGA)。某些電腦系統元件可用軟體實施,或使用軟體與硬體元件的組合。
在某些實施例中,處理器40與主機處理器76各包括一個通用可程式化處理器,此等通用可程式化處理器被以軟體程式化,以執行本說明書中敘述的功能。上述軟體可經由網路以電子形式下載至相關處理器,及/或儲存於非暫態有形媒體中,例如磁碟、光碟或電子記憶體。 [使用對稱金鑰密碼之認證架構]
第2圖為一圖表,根據本說明書敘述的一個實施例,圖示一種使用於對稱金鑰認證的裝置分層架構。
在第2圖中,使用運行驗證器104的管理伺服器102驗證運算裝置100。運算裝置100、管理伺服器102及驗證器104可用於實施第1圖中的運算裝置24、管理伺服器28及驗證程式86。
裝置100運行多個程式碼層,為簡潔起見亦以「層」稱之。第一層以「DICE 層」112表示,此層一般包括不可變程式碼。運行可變程式碼的其他各層以L0 …Ln 表示。在第2圖中,為清晰起見,僅顯示L0 層114及Ln 層116。上述DICE層作為信任層根,且一般在裝置開機時無條件執行。L0 …Ln 各層一般以一預先定義的順序 (例如依次逐個) 於DICE層之後執行。由運算裝置100實施的各種任務,包括L0 …Ln 各層及認證任務,是由處理器40執行。
裝置100包括密鑰鏈生成(secret chain generation, SCG)106模組,以及認證模組108。SCG 106中的各層產生一個密鑰序列,以S0 …Sn 表示。DICE層產生用於L0 層的第一密鑰S0 ,L0 層產生用於L1 層的第一密鑰S1 ,以此類推。在本範例中,認證模組108耦接於最後一層Ln 。基於上述信任鏈,此情況下的認證涵蓋了DICE層及各可變層L0 …Ln 。或者,認證模組108亦可耦接於從L0 …Ln-1 中選取的一個中間層Li ,此時認證將涵蓋DICE層及L0 …Li 各層。
在第2圖中,DICE層及L0 …Ln-1 各層包括一個單向函式(one-way function, OWF)120,該OWF產生一密鑰供對應的下一層L1 …Ln 使用。具體而言,DICE層112的OWF產生密鑰S0 供L0 使用、L0 的OWF產生密鑰S1 供L1 使用,以此類推。
L0 …Ln 各層可由對應的測量值(128)M0 …Mn 識別。一層的測量值可包括例如對該層程式碼進行計算的密碼雜湊函式(cryptographic hash function)、軟體映像(software image)、資料及/或韌體,或上述各項二者以上之組合。在某些實施例中,由一給定層Li 產生的密鑰Si+1 是基於該給定層對下一層進行測量所得的測量值Mi+1 以及由前一層Li-1 產生的密鑰Si 而產生。在某些實施例中,使用以上架構,每一層皆可被推定為可信任或先前已驗證為可信任的一層測量。
OWF 120應具備難以進行逆運算的特性,使得從該OWF的輸出密鑰Si+1 及輸入測量值Mi+1 推導輸入密鑰Si 成為不切實際的行為。在一個範例實施例中,OWF 120包括一個密碼學上安全的雜湊函數。OWF 120的範例函數包括但不限於訊息鑑別碼(Message Authentication Code, MAC)、雜湊訊息鑑別碼(Hashed-based MAC, HMAC)、密碼訊息鑑別碼(Cipher-based MAC, CMAC)及第三代安全雜湊演算法(SHA-3)函式Keccak訊息鑑別碼(Keccak MAC, KMAC)。
在本說明書揭露的某些實施例中,是以HMAC作為 OWF 120的範例;此一方法在1997年2月請求意見稿 (Request for Comments, RFC) 2104 標題為HMAC: Keyed-Hashing for Message Authentication 等文獻中已有說明。
為了產生密鑰S0 ,DICE 層會產生一個L0 層的測量值128A。DICE 層並無上一層,而是包括一個安全地嵌入的唯一裝置密鑰(UDS)124。UDS僅為DICE層及驗證器所知。依據實施方式的不同,UDS亦可能為裝置製造商所知。在一個實施例中,DICE 層使用HMAC函數藉由計算: S0 =HMAC(M0 ,UDS) 產生密鑰S0 ,其中UDS作為HMAC金鑰。在TCG使用的術語中,上述DICE層產生的密鑰S0 亦稱為複合裝置標識符(CDI)。
為了產生密鑰S1 ,L0 層會產生一個L1 層的測量值128B(以M1 表示),並從DICE層接收密鑰S0 。在本範例中,L0 層包括一個在裝置開機後產生一隨機數(以Na 表示)的隨機數產生器(RNG)132。在某些實施例中,L0 層的OWF接收(i)L1 層的測量值M1 、(ii)DICE層的密鑰S0 、以及(iii)使用RNG 132產生的隨機數Na 作為輸入。L0 層的OWF藉由計算: S1 =HMAC([M1 |Na ],S0 ) 產生密鑰S1 ,其中S0 包括HMAC金鑰,而串接資料[M1 |Na ]為該HMAC函數的資料輸入。在其他層中,密鑰Si+1 可由: Si+1 =HMAC([Mi+1 ],Si ) 計算而得。
在第2圖的範例中,隨機數Na 是L0 層OWF的輸入,此一隨機數Na 通常以一最小程式碼實施,此一最小程式碼被預期不發生錯誤(bug)而不需要(或者僅需要偶爾)更新,因此L0 被視為一個可信任層。然而,通常隨機數Na 可能亦是L1 …Ln 等其他各層中任何被視為可信任層的OWF的輸入。
在某些實施例中,L0 …Ln 之中的一層或多層各包括一個韌體安全描述符(Firmware Security Descriptor, FSD) 136。FSD 包括一層中自有或自行運算的自我測量值。例如,在第2圖中,L0 層包括 FSD 136A,而 Ln 層包括 FSD 136B。在L0 …Ln-1 各層中,FSD可能併入OWF的密鑰計算。例如,在第2圖的L0 層中,FSD 136A被提供給L0 層的OWF。此時,OWF以: S1 =HMAC([M1 |FSD|Na ],S0 ) 計算S1 。此時密鑰S1 依據L0 和L1 兩者測量而得的測量值M1 決定。
在第2圖的範例中,最後一層(Ln 116)使用認證模組108進行裝置認證協定。此一認證協定通常由裝置端執行,藉由(i)自驗證器104接收一挑戰、(ii)使用認證金鑰簽章該挑戰,以產生一回應、以及(iii)傳送該回應至驗證器以進行驗證,如本說明書所述。
Ln 層使用一金鑰推導函式(key derivation function, KDF)140,自密鑰Sn 產生一個對稱金鑰144(以SKn 表示) 供認證之用。數個使用偽隨機函數的金鑰推導函式族,在 Lily Chen,2009年10月,NIST special publication 800-108 ,標題為Recommendation for Key Derivation Using Pseudorandom Functions (Revised) 等文獻中已有敘述。認證模組108接收一個由驗證器產生的挑戰,以C表示(通常C包括一個隨機或偽隨機數),以及一個由RNG 160回應上述挑戰而產生的裝置隨機數,以Nd 表示。認證模組108藉由使用SKn 144簽章 [C|Nd ] 產生一回應,以R表示。
驗證器從裝置接收回應R,亦接收Na 和Nd ,並藉由使用與SKn 相同的金鑰值簽章[C|Nd ],在其內部計算 R’。在某些實施例中,該驗證器基於UDS及測量值Mi ,使用與該裝置在其內部計算其SKn 相同的架構、OWF和KDF函式,以計算SKn 。當R等於R’時,該裝置即被成功驗證。在裝置開機後,隨機數Na 產生,此一隨機數間接導致認證金鑰SKn 的值相較於其開機前的值有所改變。此一結果導致成功擷取開機前SKn 值的攻擊者無法於開機後將其用於認證。
第3A和3B圖為流程圖,根據本說明書敘述的實施例,圖示使用對稱金鑰加密的裝置認證及驗證方法。
上述認證架構可由第1圖中的裝置24及驗證器86執行。裝置24被推定實施第2圖中描繪的層級架構。進行上述認證協定時,裝置與驗證器可經由例如通訊網路32互相通訊。
第3A圖 (裝置部分) 的方法始自開機步驟200,裝置24的處理器40開始一個開機週期。進行開機時,處理器40開始執行DICE層112。在隨機數產生步驟 204 中,該處理器(例如使用RNG 132) 產生僅與當前開機週期關聯的隨機數Na ,並傳送Na 至該驗證器。或者,該處理器亦可安全地穿越L1 …Ln 之中至少數層傳送該隨機數Na ,並將該Na 由非L0 的一層(例如Ln )傳送至該驗證器。在一個實施例中,該處理器將該隨機數Na 與下文將敘述的步驟220中的回應一同傳送。
在金鑰產生步驟212中,上述處理器在Ln 層中產生一個對稱認證金鑰,以SKn 表示。例如,該處理器藉由對Ln 層的密鑰Sn 使用函式OWF 120,以產生SKn 。該認證金鑰SKn 經由始自某一層的密鑰鏈(其中Na 是該層OWF的輸入值)而依據隨機數Na 決定。
在挑戰接收步驟 216 中,上述處理器自上述驗證器接收一挑戰 C,以驗證最後一層Ln 。或者,該處理器亦可能接收一挑戰,以驗證L0 …Ln-1 中的另一層。
在回應計算步驟220中,上述處理器回應上述挑戰,藉由使用上述認證金鑰SKn 簽章該挑戰C(例如使用簽章函式 148),以產生一回應(以R表示)。例如,該處理器以: R=MAC(C,SKn ) 計算回應。在某些實施例中,該處理器對C產生一裝置隨機數Nd (例如使用RNG 160),並以: R=MAC([C|Nd ],SKn ) 計算回應。將隨機數Nd 併入回應R,可有助於克服試圖藉由傳送多個選定的挑戰值至該裝置以猜測SKn 的攻擊。更進一步地,在步驟220中,處理器40傳送上述回應R至上述驗證器。如上所述,在某些實施例中,該處理器在步驟220中傳送回應R與隨機數Na 至該驗證器。
在開機詢問步驟228中,上述處理器檢查重新開機是否必要或正在發生,若否,則回到步驟216以在同一開機週期內接收下一個挑戰,以驗證同一層或另一層。否則,該處理器回到步驟200以開始下一個開機週期,並重新產生與前一開機週期中使用的Na 數值不同的隨機數Na
在第3A圖的實施例中,上述處理器在一個開機週期中產生SKn 一次。在其他實施例中,該處理器可在接收一挑戰C時回應產生SKn 。在此一實施例中,第3A圖的步驟212可在步驟216後、步驟220前執行。
第3B圖(驗證器部分)的方法一般與第3A圖的方法平行進行。第3B圖的方法始自儲存步驟250,主機處理器76儲存裝置訊息在驗證器的資料庫(例如資料庫88)中。該裝置訊息可用於復原該裝置在對一給定挑戰產生回應時使用的對稱認證金鑰SKn 。為此,該主機處理器對每一裝置儲存裝置訊息,至少包括該裝置DICE層的UDS(62)、該裝置使用的層級設定、以及與各層關聯的測量值。該驗證器使用上述裝置訊息(以及一隨機數Na ) 以在其內部計算與獲許可的裝置計算的SKn 值相同的SKn 值,如下所述。
在隨機數接收步驟254中,上述驗證器接收一隨機數Na ,此一隨機數Na 由該裝置產生,與當前開機週期關聯。一般而言,該裝置在每一開機週期提供Na 予該驗證器一次。或者,該裝置亦可能在同一開機週期中多次產生Na ,並向該驗證器回報每一個更新的Na 。在某些實施例中,該驗證器並非在步驟254中接收上述Na ,而是在下文將敘述的步驟262中將Na 與回應一同接收。
在挑戰傳送步驟258中,上述驗證器產生一挑戰C以驗證該裝置的Ln 層,並傳送該挑戰至該裝置。該驗證器通常產生一個隨機或偽隨機數作為該挑戰。該驗證器每次皆發出一個不同挑戰,使得對前一次回應的知悉並無用處。使用不同挑戰對於例如減低重放攻擊(replay attack)的危害十分有用。該驗證器可在任何合適時間產生並傳送該挑戰,例如回應該裝置的請求、由管理員的請求控制、或定期進行。
在回應接收步驟262中,上述驗證器自該裝置接收一個對應於先前在步驟258中傳送的挑戰C的回應R。在金鑰復原步驟266中,該驗證器使用步驟250中儲存的裝置訊息與步驟254中接收的隨機數Na ,在其內部重製一個對稱認證金鑰SKn 的複本SKn ’。
在驗證步驟270中,上述驗證器使用上述回應R與上述復原的認證金鑰SKn ’ 驗證該裝置的Ln 層。由於該裝置中的信任鏈,因此藉由驗證Ln 層,即可同時驗證DICE層及L0 …Ln-1 各層。如上所述,由於認證金鑰SKn 依據隨機數Na 決定,因此攻擊者即使取得該認證金鑰SKn ,亦將於重新開機後認證失敗,因Na 的值已改變。
在步驟270後,上述驗證器回到步驟250、254或258。具體而言,該驗證器於該裝置更新後(例如更新軟體或韌體版本) 回到步驟250。或者,該驗證器在該裝置開機後回到步驟254,以接收與當前開機週期關聯的 Na 。又或者,該驗證器回到步驟258以傳送下一個不同的挑戰至該裝置。 [使用非對稱金鑰密碼之認證架構]
第4圖為一圖表,根據本說明書敘述的一個實施例,圖示一種使用於非對稱金鑰認證的裝置分層架構。
在第4圖中,使用運行驗證器304的管理伺服器302驗證運算裝置300。運算裝置300、管理伺服器302及驗證器304可用於實施第1圖中的運算裝置24、管理伺服器28及驗證程式86。
與第1圖的裝置100相似,裝置300運行多層程式碼,包括一個「DICE 層」312,以及可變程式碼層L0 …Ln 。在第4圖中,為清晰起見,僅顯示L0 314、L1 316及Ln 318等層。在一個實施例中,上述DICE層作為信任層根,並在裝置開機時無條件執行。L0 …Ln 各層以預先定義的順序 (例如依次逐個) 在DICE層後執行。裝置300中的層級和秘密金鑰生成架構,總體而言與上文所述裝置100中的架構相似。
裝置300包括密鑰鏈生成(Secret Chain Generation, SCG)模組306、認證模組308以及憑證模組310。與第2圖中的SCG 106相似,SCG 306使用OWF 320產生一個密鑰序列S0 …Sn 。DICE層的OWF基於UDS 324及L0 的測量值M0 (328A) 產生用於L0 層的密鑰S0 。L0 層的OWF產生用於L1 層的密鑰S1 ,以此類推。一給定層Li 的OWF根據層級順序,基於前一層Li-1 產生的密鑰Si 和後一層的測量值Mi+1 產生密鑰Si+1
在本範例中,認證模組308與最後一層Ln 耦接,使該裝置認證DICE層與各可變層L0 …Ln 。或者,認證模組308亦可與一個中間層L0 …Ln-1 耦接,以認證該中間層及其以下各層。
在本範例中,(與上文所述裝置100相似)L0 層包括在裝置開機後產生一個隨機數Na 的隨機數產生器(RNG)332。在某些實施例中,L0 層的OWF接收(i)L1 層的測量值M1 (328B)、(ii)來自DICE層的密鑰S0 、以及(iii)使用RNG 332產生的隨機數Na 作為輸入。L0 層的OWF藉由計算例如: S1 =HMAC([M1 |Na ],S0 ) 產生密鑰S1 供L1 使用,其中S0 包括HMAC金鑰,而串接資料 [M1 |Na ] 為該HMAC函數的資料輸入。在其他層中,密鑰Si+1 可由: Si+1 =HMAC([Mi+1 ],Si ) 計算而得。
憑證模組310產生一個憑證鏈CERT0 …CERTn ,分別對應L0 …Ln 各層。驗明憑證的過程包含使用產生於對應各層L0 …Ln 的非對稱金鑰AK0 …AKn 。在Li 層中,處理器40藉由對密鑰Si 使用合適的金鑰推導函式(KDF)340,推導一個非對稱金鑰AKi 。KDF 340可與上文所述KDF 140為相同(或相似)函式。每一個非對稱金鑰AKi 包括一個公開金鑰PKi 和一個對應的私有金鑰PRi 。在本範例中,L0 …Ln-1 各層皆包括一個嵌入憑證授權(Embedded Certificate Authorization, ECA)342。L0 層的 ECA0 產生憑證CERT1 ,L1 層的ECA1 產生憑證CERT2 ,以此類推。
在第2圖的範例中,Li 層的ECAi 接收同層Li 產生的私有金鑰PRi 和等於預期將產生於下一層Li+1 的非對稱金鑰AKi+1 的PKi+1 的公開金鑰PKi+1 ’ (在Li 產生)。在某些實施例中,ECAi 藉由使用私有金鑰PRi 簽章公開金鑰PKi+1 ,以產生憑證CERTi+1 。因此憑證CERTi+1 可提供其已被Li 層的私有金鑰PRi 簽章的證明。應注意,CERTi+1 亦經由密鑰Si 、Li 層的 KDF、AKi 及 ECAi ,隱含了對由Li-1 層測量的測量值Mi 的憑證。
在某些實施例中,裝置300使用提供憑證CERT0 至該裝置L0 層的外部憑證授權機構(Certification Authority, CA) 350,對L0 層的公開金鑰PK0 進行憑證。CERT0 又稱「裝置 ID」,對PK0 進行憑證。當製造商委任CA 350為該裝置的憑證授權機構時,CERT0 可證明該裝置係由該製造商製造。此外,CERT0 亦可由原始設備製造商(Original Equipment Manufacturer, OEM)提供予該裝置。在其他實施例中,L0 層可使用任何合適的自我憑證方法對PK0 進行憑證。在一個實施例中,在該裝置的Li 層中,AKi-1 的公開金鑰PKi-1 可用於使憑證CERTi 的簽章生效。
認證模組308接收Ln 層的密鑰Sn ,並使用KDF 340 自密鑰Sn 產生一個非對稱金鑰AKn ,其私有金鑰PRn 用於驗證。認證模組308自驗證器304接收一挑戰Nv ,並藉由使用私有金鑰PRn 對挑戰Nv 採用簽章函式354,產生一個數位簽章回應DS。適合實施函式354以進行簽章 (以及在驗證器中進行驗證) 的簽章產生與驗證的範例方法,在2013年7月,聯邦資訊處理標準公開文件 (FIPS PUB) 186-4 Digital Signature Standard (DSS) 等文獻中已有說明。認證模組308更接收沿L0 …Ln 各層積聚的憑證鏈CERT0 …CERTn 。驗證器在此一認證架構中所佔的部分,將於下文詳述。
第5A和5B圖為流程圖,根據本說明書敘述的實施例,圖示使用非對稱金鑰加密的裝置認證及驗證方法。
此一認證架構可由第1圖中的裝置24與驗證器86執行。裝置24被推定實施第4圖描繪的層級架構。進行此認證協定時,該裝置與該驗證器可經由例如通訊網路32互相通訊。
第5A圖(裝置部分)的方法始自裝置24的處理器40在開機步驟400開始一個開機週期。進行開機時,處理器40開始執行DICE層312。在隨機數產生步驟404中,該處理器產生(例如使用 RNG 332) 一個僅與當前開機週期關聯的隨機數Na 。或者,該處理器亦可(例如安全地)穿越L1 …Ln 中至少數層傳送隨機數Na ,並將該Na 由非L0 的一層(例如Ln )傳送至驗證器。
在憑證步驟408中,處理器根據預先定義的順序(例如依次逐個) 執行L0 …Ln 各層,並在各層Li 中基於在Li-1 產生的密鑰Si 產生非對稱金鑰AKi 。處理器更在Li 中(使用 ECAi )產生一個驗明Li+1 層中AKi+1 的公開金鑰PKi+1 、並由AKi 的私有金鑰PRi 簽章的憑證。
在挑戰接收步驟412中,處理器自驗證器接收一挑戰Nv 。在回應計算步驟420中,處理器回應上述挑戰,藉由使用非對稱金鑰AKn 的私有金鑰PRn 對挑戰Nv 進行簽章(例如使用簽章函數 354),計算數位簽章DS。
在回應傳輸步驟424中,處理器經由通訊網路32傳送回應DS及憑證CERT0 …CERTn 至驗證器。
在開機詢問步驟428中,處理器檢查重新開機是否必要或正在發生,若否,則回到步驟412以從驗證器接收下一個挑戰。否則,處理器回到步驟40 以開始下一個開機週期,並產生一個與前一次開機週期使用的Na 數值不同的隨機數Na
第5B圖(驗證器部分)的方法一般與第5A圖的方法平行進行。第5B圖的方法始自驗證器86在挑戰傳送步驟458中產生並傳送一個挑戰Nv 至裝置24,以驗證Ln 及其以下各層。驗證器可在任何合適時間產生並傳送該挑戰,例如回應裝置的服務請求、管理員請求、或定期進行。
在回應接收步驟462中,主機從該裝置接收一個對應步驟458中傳送的挑戰Nv 的數位簽章DS。驗證操作主要包括兩個階段:(i)驗證憑證,以及(ii)驗證數位簽章回應,如本文所述。
在憑證驗證步驟466中,主機驗證由該裝置在步驟424中傳送的CERT0 …CERTn 。該驗證器被推定持有製造商CA 350 的根憑證(Root Certificate),或者該驗證器可經由CERT0 憑證中的授權資訊存取(Authority Information Access, AIA)欄位存取根憑證。該驗證器使用上述根憑證驗證CERT0 。該驗證器更使用由CERT0 進行憑證的公開金鑰PK0 (裝置 ID) 驗證CERT1 ,以此類推,直到驗證對PKn 進行憑證的CERTn 為止。在結束憑證驗證後,PKn 即可被認定為可信任的。
在數位簽章驗證步驟470中,驗證器使用PKn 驗證DS回應。步驟470 中的DS驗證函式與裝置端使用的簽章生成函式354匹配。此一驗證階段驗證DICE層及L0 …Ln 各層的身分及狀態。
在步驟470後,依需要,該方法回到步驟458以傳送下一個不同挑戰Nv 至該裝置。
在某些實施例中,在一次裝置開機事件後,驗證器會等待裝置進行步驟400、404和408以及指示驗證器該裝置已準備好接收下一挑戰。
上述各實施例乃為範例,其他合適之實施例亦可使用。例如,儘管在上述實施例中,信任鏈使用DICE層作為信任根,然而在其他實施例中,其他種類的元素亦可作為信任根使用。
儘管本說明書描述的實施例主要針對連接至無線網路或陸上網路(land network)的裝置認證架構,然而本說明書描述的方法與系統亦可使用於其他用途,例如裝置與驗證器間以合適的匯流排(bus)連接(例如在一主機板上)或以纜線連接(例如在車輛中)的情況。
應注意,上述各實施例乃作為範例援用,而以下請求項並不限定於以上明示之內容。反之,其範圍包括上述各特徵之組合與子組合,以及本發明所屬領域具技術之人於閱讀上述內容後可知悉、且未揭露於先前技術之變化與改良。本發明申請中併入參照之文件,除該等併入文件中之詞彙定義與本說明書明示或暗示之定義有衝突之處外,應視為本發明申請整體之一部分,而於衝突之處應僅採取本說明書中所使用之定義。
20:運算系統 24、100、300:運算裝置(例如物聯網) 28、102、302:管理伺服器 32:通訊網路 40:處理器 44:記憶體 48:ROM 52:PCIe 54:網路介面 56:認證函式 58:開機程式碼(DICE層) 60:可變軟體層 62、124、324:唯一裝置密鑰(UDS) 66:CDI 70:密碼引擎 72、132、160:隨機數產生器 74:隨機數 76:主機處理器 80:記憶體 84:網路介面 86、104、304:驗證器 88:裝置資料庫 90:政策 106、306:密鑰鏈生成 108、308:認證 112:DICE 114、314:L0 116、318:Ln 120、320:單向函式 128A、328A:M0 128B、328B:M1 136A、136B:韌體安全描述符 140、340、344:金鑰推導函式 144:SKn 148、354:簽章 200、400:裝置開機 204:產生與當前開機週期關聯的隨機數Na ,並傳送Na 至驗證器 212:依據Na 產生對稱認證金鑰SKn 216:自驗證器接收挑戰C,以認證Ln 220:藉由使用SKn 簽章C計算回應R,並傳送R至驗證器 228、428:重新開機? 250:對每一裝置儲存其裝置訊息於資料庫中,以重製該裝置的相同 認證金鑰 裝置訊息包括:唯一裝置密鑰、層級結構、各層測量值 254:自裝置接收Na 258:傳送挑戰C至裝置,以認證Ln 層 262:自裝置接收回應R 266:基於儲存的裝置訊息與Na ,重製SKn 之複本SKn ’ 270:使用R與復原的SKn ’,驗證Ln 及之前各層 310:憑證 316:L1 328C:M2 342:ECA0 、ECA1 350:製造商憑證授權機構 404:產生與當前開機週期關聯的隨機數Na 408:在各層產生非對稱金鑰與對應公開金鑰的憑證 412:自驗證器接收挑戰Nv 420:藉由使用AKn 的私有金鑰PRn 簽章Nv ,計算回應數位簽章DS (AKn 依據Na 決定) 424:傳送數位簽章DS與憑證至驗證器 458:傳送挑戰Nv 至裝置,以驗證Ln 層 462:自裝置接收數位簽章DS與憑證 466:驗證憑證,包括驗明PKn 的憑證 470:使用已驗證的PKn 驗證DS,以驗證Ln 及之前各層
第1圖為一方塊圖,根據本說明書敘述的一個實施例,圖示一種支援安全裝置認證的運算系統; 第2圖為一圖表,根據本說明書敘述的一個實施例,圖示一種使用於對稱金鑰認證的裝置分層架構; 第3A和3B圖為流程圖,根據本說明書敘述的實施例,圖示使用對稱金鑰加密的裝置認證及驗證方法; 第4圖為一圖表,根據本說明書敘述的一個實施例,圖示一種使用於非對稱金鑰認證的裝置分層架構; 第5A和5B圖為流程圖,根據本說明書敘述的實施例,圖示使用非對稱金鑰加密的裝置認證及驗證方法。
20:運算系統
24:運算裝置(例如物聯網)
28:管理伺服器
32:通訊網路
40:處理器
44:記憶體
48:ROM
52:PCIe
54:網路介面
56:認證函式
58:開機程式碼(DICE層)
60:可變軟體層
62:唯一裝置密鑰(UDS)
66:CDI
70:密碼引擎
72:隨機數產生器
74:隨機數
76:主機處理器
80:記憶體
84:網路介面
86:驗證器
88:裝置資料庫
90:政策

Claims (26)

  1. 一種安全運算裝置,包括:一網路介面,被配置以經由一通訊網路與一驗證器通訊;一記憶體,被配置以儲存多層可變(mutable)程式碼,上述各層可由各別的測量值來識別;以及一處理器,被配置以:在一給定開機週期中,產生一個僅與該給定開機週期關聯的隨機數;自該驗證器接收一挑戰,以認證該可變程式碼的一給定層;根據(i)儲存於該安全運算裝置中的唯一裝置密鑰(UDS)、(ii)由另一層對該給定層測量而得的測量值、以及(iii)為該給定開機週期而產生的隨機數(nonce)進行推導,以計算一第一認證金鑰(attestation key);使用該第一認證金鑰對該挑戰進行簽章,以計算對應該挑戰的一回應;以及傳送該回應至該驗證器,以驗證該給定層;其中,該隨機數以一最小程式碼實施,使該給定層被視為一可信任層。
  2. 如請求項1之安全運算裝置,其中該處理器被配置以依據該隨機數計算該第一認證金鑰,使在該給定開機週期前由該處理器用於認證的第二認證金鑰,在該給定開機週期中變得無效而無法認證;以及其中該最小程式碼大致上不需要更新。
  3. 如請求項2之安全運算裝置,其中該處理器被配置以設定該第一認證金鑰為不同於在該給定開機週期前由該處理器用於認證的第二認證金鑰,即使該給定層及在該給定層之前執行的各層的該可變程式碼在該給定開機週期中仍保持完整。
  4. 如請求項1之安全運算裝置,其中該第一認證金鑰包括一依據該隨機數決定的對稱金鑰,且其中該處理器被配置以藉由使用該對稱金鑰對至少該挑戰進行簽章以計算該回應,並傳送該回應及該隨機數至該驗證器。
  5. 如請求項1之安全運算裝置,其中該第一認證金鑰包括一依據該隨機數決定的非對稱金鑰,且其中該處理器被配置以藉由使用該非對稱金鑰的一個私有金鑰對該挑戰進行簽章以計算該回應,並傳送該回應至該驗證器,但不傳送該隨機數。
  6. 如請求項5之安全運算裝置,其中該處理器被配置以對每一層各產生該非對稱金鑰,該第一認證金鑰包含該非對稱金鑰,每一該非對稱金鑰包括私有金鑰及公開金鑰,以產生一個憑證鏈,其中在該給定層中的憑證用以對下一層產生的該公開金鑰進行憑證,並該給定層中的該憑證係由該給定層中產生的私有金鑰簽章,並傳送該憑證鏈至該驗證器,以使用該第一認證金鑰的已憑證公開金鑰(certified public key)進行驗證。
  7. 如請求項6之安全運算裝置,其中該憑證鏈包括一由該隨機數獨立產生的憑證,該憑證用以證明該安全運算裝置係由一特定製造商製造。
  8. 如請求項1之安全運算裝置,其中該處理器被配置以在一在該給定層之前執行的信任層中產生該隨機數,基於該隨機 數在該信任層中計算一密鑰,並依據該密鑰計算該第一認證金鑰。
  9. 如請求項1之安全運算裝置,其中該處理器被配置以一預先定義之順序執行該等多層程式碼,並僅在一選定層已成功由該驗證器驗證後,方依該預先定義之順序自該選定層前進至下一層。
  10. 如請求項1之安全運算裝置,其中該處理器被配置以依據該隨機數計算該第一認證金鑰,以減低零時差攻擊(zero-day attack)之危害。
  11. 一種安全運算方法,包括:在一裝置的一記憶體中儲存多層可變程式碼,其中該裝置經由一通訊網路與一驗證器通訊,上述各層可由各別的測量值來識別;在一給定開機週期中,產生一個僅與該給定開機週期關聯的隨機數;自該驗證器接收一挑戰,以認證該可變程式碼的一給定層;根據(i)一個儲存於該裝置中的唯一裝置密鑰(UDS)、(ii)由另一層對該給定層測量而得的測量值、以及(iii)為該給定開機週期而產生的隨機數進行推導,以計算一第一認證金鑰;使用該第一認證金鑰對該挑戰進行簽章,以計算對應該挑戰的一回應;以及傳送該回應至該驗證器,以驗證該給定層;其中,該隨機數以一最小程式碼實施,使該給定層被視為一可信任層。
  12. 如請求項11之安全運算方法,其中計算該第一認 證金鑰之動作包括基於該隨機數計算該第一認證金鑰,使在該給定開機週期前由該處理器用以認證的第二認證金鑰,在該給定開機週期中變得無效而無法認證;以及其中該最小程式碼大致上不需要更新。
  13. 如請求項12之安全運算方法,其中計算該第一認證金鑰之動作包括:設定該第一認證金鑰為不同於在該給定開機週期前由該處理器用於認證的第二認證金鑰,即使該給定層及在該給定層之前執行的各層的該可變程式碼在該給定開機週期中仍保持完整。
  14. 如請求項11之安全運算方法,其中該第一認證金鑰包括一依據該隨機數決定的對稱金鑰,且其中計算該回應之動作包括:使用該對稱金鑰對至少該挑戰進行簽章以計算該回應,並傳送該回應及該隨機數至該驗證器。
  15. 如請求項11之安全運算方法,其中該第一認證金鑰包括一依據該隨機數決定的非對稱金鑰,且其中計算該回應之動作包括:使用該非對稱金鑰的一個私有金鑰對該挑戰進行簽章以計算該回應,並傳送該回應至該驗證器,但不傳送該隨機數。
  16. 如請求項15之安全運算方法,更包括:對每一層各產生該非對稱金鑰,其中該第一認證金鑰包含該非對稱金鑰,每一該非對稱金鑰包括私有金鑰及公開金鑰;產生一個憑證鏈;其中在一給定層中的憑證對下一層產生的公開金鑰進行憑證,並 該給定層中的該憑證係由該給定層中產生的私有金鑰簽章,並傳送該憑證鏈至該驗證器,以使用該第一認證金鑰的已憑證公開金鑰進行驗證。
  17. 如請求項16之安全運算方法,其中該憑證鏈包括一由該隨機數獨立產生的憑證,該憑證證明該裝置係由一特定製造商製造。
  18. 如請求項11之安全運算方法,其中產生該隨機數之動作包括在一在該給定層之前執行的信任層中產生該隨機數,且其中計算該第一認證金鑰之動作包括基於該隨機數在該信任層中計算一密鑰,並依據該密鑰計算該第一認證金鑰。
  19. 如請求項11之安全運算方法,更包括以一預先定義之順序執行該等多層程式碼,並僅在一選定層已成功由該驗證器驗證後,方依該預先定義之順序自該選定層前進至下一層。
  20. 如請求項11之安全運算方法,其中計算該第一認證金鑰之動作包括依據該隨機數計算該第一認證金鑰,以減低零時差攻擊(zero-day attack)之危害。
  21. 一種驗證器,包括:一網路介面,被配置以經由一通訊網路與一裝置通訊,該裝置包括多層可變程式碼,並產生一個僅與一給定開機週期關聯的隨機數;以及一處理器,被設定以:傳送一挑戰至該裝置,以驗證該可變程式碼之一給定層;自該裝置接收由該裝置回應該挑戰所產生之回應訊息,其中該回應訊息依據與該給定開機週期關聯之該隨機數決定;以及 使用該回應訊息,驗證該可變程式碼之該給定層;其中,該隨機數以一最小程式碼實施,使該給定層被視為一可信任層。
  22. 如請求項21之驗證器,其中該回應訊息至少包括由依據該隨機數決定的一認證金鑰簽章之挑戰,且其中該處理器被配置為在傳送該挑戰前安全地於該驗證器之記憶體中儲存裝置訊息,該裝置訊息搭配該隨機數即足以復原該認證金鑰;且該處理器被配置為自該裝置接收該隨機數,使用該裝置訊息與該接收之隨機數復原該認證金鑰,並使用該復原認證金鑰驗證該可變程式碼之該給定層;以及其中該最小程式碼大致上不需要更新。
  23. 如請求項21之驗證器,其中該回應訊息包括(i)該挑戰的一數位簽章,其中該挑戰由非對稱認證金鑰的私有金鑰簽章,以及(ii)與該給定層關聯的公開金鑰的憑證,且其中該處理器被配置以驗證在由與該公開金鑰匹配的私有金鑰簽章的憑證中已驗明的一公開金鑰,並隨即使用該已驗證之公開金鑰驗證該數位簽章;以及其中該最小程式碼大致上不需要更新。
  24. 一種裝置驗證方法,包括:在經由一通訊網路與包括多層可變程式碼並產生一個僅與一給定開機週期關聯的隨機數的一裝置進行通訊的一伺服器中,執行:傳送一挑戰至該裝置,以驗證該可變程式碼之一給定層;自該裝置接收由該裝置回應該挑戰所產生之回應訊息,其中該回應訊息依據與該給定開機週期關聯之隨機數決定;以及 使用該回應訊息,驗證該可變程式碼之該給定層;其中,該隨機數以一最小程式碼實施,使該給定層被視為一可信任層。
  25. 如請求項24之方法,其中該回應訊息至少包括由依據該隨機數決定的一認證金鑰簽章之挑戰,且其中該處理器被配置為在傳送該挑戰前安全地於該驗證器之記憶體中儲存裝置訊息,該裝置訊息搭配該隨機數即足以復原該認證金鑰;且該處理器被配置為自該裝置接收該隨機數,使用該裝置訊息與該接收之隨機數復原該認證金鑰,並使用該復原認證金鑰驗證該可變程式碼之該給定層;以及其中該最小程式碼大致上不需要更新。
  26. 如請求項24之方法,其中該回應訊息包括(i)該挑戰的一數位簽章,其中該挑戰由非對稱認證金鑰的私有金鑰簽章,以及(ii)與該給定層關聯的公開金鑰的一憑證,且其中該處理器被配置以驗證一個在由與該公開金鑰匹配的私有金鑰簽章的憑證中已驗明的公開金鑰,並隨即使用該已驗證之公開金鑰驗證該數位簽章;以及其中該最小程式碼大致上不需要更新。
TW110109649A 2020-08-03 2021-03-18 安全運算裝置、安全運算方法、驗證器及裝置驗證方法 TWI773199B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/983,360 2020-08-03
US16/983,360 US11601268B2 (en) 2020-08-03 2020-08-03 Device attestation including attestation-key modification following boot event

Publications (2)

Publication Number Publication Date
TW202207664A TW202207664A (zh) 2022-02-16
TWI773199B true TWI773199B (zh) 2022-08-01

Family

ID=80003560

Family Applications (1)

Application Number Title Priority Date Filing Date
TW110109649A TWI773199B (zh) 2020-08-03 2021-03-18 安全運算裝置、安全運算方法、驗證器及裝置驗證方法

Country Status (4)

Country Link
US (1) US11601268B2 (zh)
JP (1) JP7113123B2 (zh)
CN (1) CN114065176A (zh)
TW (1) TWI773199B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020212643A1 (en) * 2019-04-17 2020-10-22 Nokia Technologies Oy Cryptographic key generation for mobile communications device
US20220222348A1 (en) * 2021-01-13 2022-07-14 Microsoft Technology Licensing, Llc Attesting update of a firmware layer
US11665148B2 (en) * 2021-03-22 2023-05-30 Cisco Technology, Inc. Systems and methods for addressing cryptoprocessor hardware scaling limitations
US20220321361A1 (en) * 2022-03-30 2022-10-06 Intel Corporation Federal information processing standard (fips) compliant device identifier composition engine (dice) certificate chain architecture for embedded systems
WO2023212178A1 (en) * 2022-04-27 2023-11-02 Microchip Technology Incorporated Sram physically unclonable function (puf) memory for generating keys based on device owner
WO2024013554A1 (en) * 2022-07-15 2024-01-18 Telefonaktiebolaget Lm Ericsson (Publ) Hardware-entangled key generation
WO2024061442A1 (en) * 2022-09-20 2024-03-28 Huawei Technologies Co., Ltd. Apparatus and method for layered attestation with additive asymmetric key derivation
EP4357953A1 (en) * 2022-10-20 2024-04-24 Google LLC Securely provisioning secrets in authentication devices
TWI811178B (zh) * 2023-02-04 2023-08-01 長茂科技股份有限公司 基於多方多因子動態強加密認證之資通安全方法與系統

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060256961A1 (en) * 1999-05-04 2006-11-16 Rsa Security Inc. System and method for authentication seed distribution
TW201931191A (zh) * 2018-01-02 2019-08-01 華邦電子股份有限公司 記憶體子系統、安全客戶端裝置與認證方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6069160B2 (ja) * 2013-10-07 2017-02-01 株式会社日立製作所 制御システム及び認証装置
US9363087B2 (en) * 2014-10-02 2016-06-07 Microsoft Technology Licensing, Inc. End-to-end security for hardware running verified software
US10691807B2 (en) * 2015-06-08 2020-06-23 Nuvoton Technology Corporation Secure system boot monitor
US9953167B2 (en) * 2015-10-12 2018-04-24 Microsoft Technology Licensing, Llc Trusted platforms using minimal hardware resources
US10936722B2 (en) * 2018-04-18 2021-03-02 Nuvoton Technology Corporation Binding of TPM and root device
EP3614622A1 (en) * 2018-08-24 2020-02-26 Nagravision SA Sending and receiving messages
US10771264B2 (en) * 2018-10-10 2020-09-08 Hewlett Packard Enterprise Development Lp Securing firmware

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060256961A1 (en) * 1999-05-04 2006-11-16 Rsa Security Inc. System and method for authentication seed distribution
TW201931191A (zh) * 2018-01-02 2019-08-01 華邦電子股份有限公司 記憶體子系統、安全客戶端裝置與認證方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
網路文獻 TCG, "Implicit Identity Based Device Attestation", Version 1.0, Revision 0.93, March 5, 2018. https://trustedcomputinggroup.org/wp-content/uploads/TCG-DICE-Arch-Implicit-Identity-Based-Device-Attestation-v1-rev93.pdf *
網路文獻 Trusted Computing Group, "Symmetric Identity Based Device Attestation", Version 1.0, Revision 0.95, 2020/1/7. https://trustedcomputinggroup.org/wp-content/uploads/TCG_DICE_SymIDAttest_v1_r0p95_pub-1.pdf; *

Also Published As

Publication number Publication date
US11601268B2 (en) 2023-03-07
JP2022028632A (ja) 2022-02-16
US20220038272A1 (en) 2022-02-03
JP7113123B2 (ja) 2022-08-04
TW202207664A (zh) 2022-02-16
CN114065176A (zh) 2022-02-18

Similar Documents

Publication Publication Date Title
TWI773199B (zh) 安全運算裝置、安全運算方法、驗證器及裝置驗證方法
CN107085675B (zh) 受控安全代码验证
KR100843081B1 (ko) 보안 제공 시스템 및 방법
US9367701B2 (en) Systems and methods for maintaining integrity and secrecy in untrusted computing platforms
EP2634957B1 (en) Authentication Device and System
US10482255B2 (en) Controlled secure code authentication
US10771264B2 (en) Securing firmware
US9294473B1 (en) Server methods and apparatus for processing passcodes generated by configurable one-time authentication tokens
TW201918049A (zh) 可信遠端證明方法、裝置和系統
US9697340B2 (en) System and methods with assured one-time, replay-resistant passwords
BR102014030327A2 (pt) método implementado por computador para impedir problemas de segurança no uso de certificados digitais na assinatura de código; sistema de computador para impedir problemas de segurança no uso de certificados digitais na assinatura de código; e produto de programa de computador
WO2015173434A1 (en) Method for proving retrievability of information
CN114049121B (zh) 基于区块链的账户重置方法和设备
CN109951276B (zh) 基于tpm的嵌入式设备远程身份认证方法
WO2023087895A1 (zh) 设备认证方法和系统、物联网设备和认证服务器
WO2023124958A1 (zh) 密钥更新方法、服务器、客户端及存储介质
US8954728B1 (en) Generation of exfiltration-resilient cryptographic keys
US11595218B2 (en) Authorization delegation
CN116032655B (zh) 一种可抵御计时攻击的身份鉴别方法以及系统
CN116707983A (zh) 授权认证方法及装置、接入认证方法及装置、设备、介质
Yu et al. How to detect unauthorised usage of a key.
CN114679284A (zh) 可信远程证明系统及其存储、验证方法、存储介质
CN113508380A (zh) 用于终端实体认证的方法
US20220116206A1 (en) Systems and methods for device authentication in supply chain
Haller Cloud Storage Systems: From Bad Practice to Practical Attacks