TW202226017A - 利用具信方第三方hsm及資料庫以安全共享密鑰 - Google Patents
利用具信方第三方hsm及資料庫以安全共享密鑰 Download PDFInfo
- Publication number
- TW202226017A TW202226017A TW110132182A TW110132182A TW202226017A TW 202226017 A TW202226017 A TW 202226017A TW 110132182 A TW110132182 A TW 110132182A TW 110132182 A TW110132182 A TW 110132182A TW 202226017 A TW202226017 A TW 202226017A
- Authority
- TW
- Taiwan
- Prior art keywords
- uid
- request
- mac
- activation
- code
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key 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/083—Key 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) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3226—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0866—Generation 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
- H04L9/0897—Escrow, 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/321—Cryptographic 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 a third party or a trusted authority
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3236—Cryptographic 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/3242—Cryptographic 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Power Engineering (AREA)
- Storage Device Security (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
所揭示實施例係關於安全地更新一半導體裝置,且特定而言係關於一種密鑰管理系統。在一項實施例中,揭示一種方法,該方法包括:儲存複數個啟動碼,該等啟動碼之各者與半導體裝置之一各自唯一識別符(UID)相關聯;經由一網路接收產生一新儲存根密鑰(SRK)之一請求,該請求包含一回應碼及一所請求UID;基於該所請求UID自該複數個啟動碼識別一選定啟動碼;使用該回應碼及該選定啟動碼來產生SHRSRK值;使該SHRSRK值與該所請求UID相關聯且儲存該SHRSRK值;及回應於該請求而返回一認可。
Description
本文中所揭示之至少一些實施例大體上係關於半導體裝置,且特定而言係關於為半導體裝置提供安全的現場升級。
當前,許多半導體裝置(例如,半導體記憶體裝置)提供容許對裝置之製造後更新之可現場升級功能性。例如,一記憶體裝置可提供在製造及安裝記憶體裝置之後更新記憶體裝置之韌體的能力。保全此等現場升級對於此等裝置之可靠且具信操作而言至關重要。一些裝置利用對稱加密來保全現場升級。在此等裝置中,一製造商及半導體裝置共享一密鑰(secret key)且依賴於此等密鑰(key)來加密及解密現場升級。在一對稱密鑰系統中,密鑰在雙方(例如,製造商與終端使用者)之間係唯一的。然而,此等系統中之密鑰分配遭受由所揭示實施例補救之諸多缺陷。
首先,許多系統排他性地依賴於基於雲端之密鑰分配技術。此等技術要求一終端使用者(例如,裝置所有者)連接至一公共網路以下載密鑰。然而,一公共網路連接之要求引入潛在的安全風險。其次,大多數基於雲端之系統依賴於唯一識別符(UID)值來使一終端使用者能夠自一基於雲端之平台請求一對稱密鑰。一般而言,此等UID值必須個別地自半導體裝置讀取且個別地上傳。因此,批量存取對稱密鑰係不可行的,因為UID值之電識別通常僅在製造期間當無法存取一公共網路時可用。此外,考慮到操作中所涉及之時間延時及由該延時引入之成本,在一高價值製造(HVM)環境中擷取對稱密鑰通常為不可行的。
相關申請案
本申請案係關於與本申請案同時申請之具有代理人檔案號120426-058300/US及120426-058400/US之共同擁有之申請案,該等案之揭示內容之全文以引用的方式併入。
所揭示實施例解決此項技術中之前述問題及其他問題。所揭示實施例容許終端使用者在一製造環境中使用對稱密鑰密碼術來啟動半導體裝置中之能力,而無需至一公共網路之一連接及最終一基於雲端之KMS。此外,所揭示實施例支援一次請求多個對稱密鑰。此外,所揭示實施例保留防止端對端對稱曝露之能力,但在連接至一KMS時一次對多個裝置進行此。參考所揭示實施例更詳細地描述此等及其他特徵。
圖1係繪示根據本發明之一些實施例之一鑑認系統之一方塊圖。
所繪示系統包含一半導體裝置製造商(110)、KMS (102)、具信夥伴(TP) (104)、客戶系統(106)及複數個半導體裝置(108)。在所繪示實施例中,製造商(110)係裝置(108)之製造商。在所繪示實施例中,製造商(110)可經由一安全通道與KMS (102)進行通信。在一些實施例中,製造商(110)針對各裝置(108)將一對應唯一識別符(UID)及一裝置密鑰(亦稱為製造商之儲存根密鑰(MFGSRK))上傳至KMS (102)。在所繪示實施例中,MFGSRK係在製造商(110)之一安全製造環境中產生。在一些實施例中,製造商(110)亦上傳購買或以其他方式與一裝置(108)相關聯之各客戶的一客戶識別符(CID)。在一些實施例中,製造商亦上傳與一CID相關聯之一客戶鑑認密鑰(CAK)。在一項實施例中,CAK限於一指定日期範圍,因此在該範圍之最後一天過去之後變得無效。UID、MFGSRK、CID及CAK值統稱為「製造資料」。
在所繪示實施例中,KMS (102)儲存自製造商(110)接收之前述資料。在一項實施例中,KMS (102)包括一伺服器或多個伺服器以儲存製造資料。在一些實施例中,KMS (102)利用一硬體安全模組(HSM)來保全製造資料。在所繪示實施例中,KMS (102)能夠產生經接收UID之各者之啟動碼。在一些實施例中,一啟動碼包括一整數或類似可處理值。在一些實施例中,KMS (102)回應於來自TP (104)之一請求而產生一啟動碼。
在所繪示實施例中,TP (104)包括安全地且通信地耦合至KMS (102)之一運算系統。在所繪示實施例中,TP (104)向KMS (102)發出對批量啟動碼(亦稱為啟動資料庫)之網路請求。在一項實施例中,對一啟動資料庫之請求包含CID、一日期範圍、一裝置類型及為一客戶所獨有且為KMS (102)已知之一臨時亂數(稱為「KMS臨時亂數」)。在一些實施例中,一客戶經由一網路通信會期與KMS (102)協商KMS臨時亂數,因此建立KMS臨時亂數之一眾所周知的值。在所繪示實施例中,TP (104)接收及儲存啟動資料庫之內容。在一些實施例中,TP (104)亦包含用於保全啟動資料庫之一HSM。在所繪示實施例中,TP (104)亦包含用於產生一給定客戶之一訊息鑑認碼(MAC)之處理能力。此外,在所繪示實施例中,TP (104)包含用於基於啟動資料庫中之啟動碼及自半導體裝置(108)接收之回應碼產生共享裝置秘密之一安全資料庫的處理能力。
在所繪示實施例中,客戶系統(106)與TP (104)進行通信。客戶系統(106)可包括用於處置半導體裝置(108)之一客戶製造線或其他系統。客戶系統(106)之運算裝置之特定配置在本文中不受限制。在一些實施例中,TP (104)包括安裝於一客戶系統(106)內之一或多個安全運算裝置。在其他實施例中,TP (104)係與客戶系統(106)分開之一運算系統。
在所繪示實施例中,客戶系統(106)與複數個半導體裝置(108a)、(108b)、(108c) (統稱為108)進行互動。裝置(108)包括半導體裝置,諸如但不限於記憶體裝置。例如,裝置可包括NOR或NAND快閃記憶體晶片、系統單晶片(SoC)裝置或其他類型之離散半導體封裝。
裝置(108)包含用於儲存諸如一CID及CAK之各種欄位及參數之複數個非揮發性儲存位置。裝置(108)額外地包含能夠執行諸如支援一MAC之運算之密碼運算的硬體或韌體。此等運算之實例包含HMAC-SHA256、AES及CMAC運算。在圖5之描述中提供一裝置(108)之一個實例,其揭示內容之全文以引用的方式併入本文中。
圖2係繪示根據本發明之一些實施例之一具信夥伴(TP)系統之一方塊圖。
在所繪示實施例中,一TP (104)包括用於管理藉由半導體裝置之密鑰使用之一安全處理平台。所繪示TP (104)容許半導體裝置(108)之客戶特定批次模式啟動。在所繪示實施例中,一客戶系統(106)下載一特定類型之所有半導體裝置(108)之啟動碼(204)之一資料庫。一客戶可離線地與半導體裝置(108)進行互動,且亦可使用TP (104)離線地啟動以佈建裝置。即,TP (104)可能不需要至KMS (102)之一連接,因為其維持本文中所描述之啟動碼及功能性。即,TP (104)不需要至KMS (102)之一恆定或一致連接。然而,在一些實施例中,TP (104)最初必須具有至KMS (102)之一連接以擷取一啟動資料庫。
TP (104)之使用提供優於現有密鑰管理解決方案之諸多優點。首先,在本地儲存於TP (104)資料庫(202)中之啟動碼僅可藉由預期客戶使用,因為該等啟動碼係基於該客戶之CID。其次,一啟動碼可用來在沒有雲端連接之情況下,在TP (104)或半導體裝置(108)處針對所有客戶裝置啟動SRK (包含MFGSRK及SHRSRK,如本文中所使用,一「SRK」指代由TP (104)產生之任何儲存根密鑰)。第三,一資料庫內之各啟動碼係裝置特定的且僅基於裝置之MFGSRK為預期裝置工作。第四,若KMS臨時亂數未知,則啟動碼資料庫可能呈現為不再起作用。第五,使用TP (104)啟動半導體裝置(108)可經設定以僅針對半導體裝置(108)之首次佈建(即,在曾經佈建裝置之前)發生。第六,一製造商(110)可基於來自TP (104)之一報告追蹤哪些(例如,多少個)裝置已被啟動。本文中更全面描述此等及其他優點。
在所繪示實施例中,TP (104)通信地耦合至KMS (102)及客戶系統(106)兩者。在一些實施例中,兩個連接包括安全通信通道,諸如使用一輸送層安全(TLS)協定、安全套接層(SSL)協定或類似安全協定保全之一網路連接。在此等實施例中,可使用傳輸控制協定(TCP)、使用者資料報協定(UDP)或類似者來封包化通信。在一些實施例中,可使用諸如超文字傳送協定(HTTP)之一更高階協定。在一些實施例中,亦藉由登入至KMS (102)之TP (104)或藉由登入至TP (!04)之客戶系統(106)建立安全連接。在一些實施例中,此登入可經由一使用者名稱及通行碼、一安全符記或其他類似安全機制來完成。
在所繪示實施例中,TP (104)包含各種處理組件,該等處理組件包含一儲存根密鑰(SRK)產生器(210)、訊息鑑認碼(MAC)產生器(208)及一硬體安全模組(HSM) (202)。此等組件(202、208、210)可包括運行經組態以執行本文中(及特定而言在圖3、圖4A及圖4B之描述中)所描述之操作之軟體的專用硬體裝置(例如,伺服器)。替代地,一些或所有組件(202、208、210)可在一單一裝置中實施。例如,組件(202、208、210)可在一單一伺服器上之軟體中實施。在一些實施例中,可採取一混合方法,且一些組件(202、208、210)可在軟體中實施,其他組件在硬體中實施,且又一些組件在硬體及軟體之一組合中實施。例如,在一項實施例中,一伺服器執行軟體以實施SRK產生器(210)及MAC產生器(208),而運行安全軟體之一實體裝置實施HSM (202),該實體裝置通信地耦合至運行SRK產生器(210)及MAC產生器(208)之伺服器。
TP (104)額外地包含一HSM (202)。HSM (202)包括用於儲存諸如啟動碼(204)及SRK (206)值之敏感資料之一實體上分離的儲存層。在一些實施例中,HSM (202)包括諸如一專用伺服器之一單獨的實體運算裝置。在其他實施例中,HSM (202)可包括連接至由TP (104)實施之伺服器之一或多者的一可插拔裝置。HSM (202)可包含用於保全其中之資料之一或多個密碼處理器。HSM (202)可具有竄改偵測功能性。
在所繪示實施例中,HSM (202)儲存啟動碼(204)。啟動碼(206)係藉由KMS (102)產生且回應於對啟動碼(206)之一請求而被返回至TP (104)。在一些實施例中,請求包括由TP (104)產生且被發送至KSM (102)之一命令,該命令包含一或多個參數。在一項實施例中,命令具有一固定名稱或操作碼(opcode)以容許KMS識別命令。在另一實施例中,命令可包括諸如一HTTP端點之一端點,且例如至端點之一GET請求之發出包括命令識別符。在一些實施例中,一或多個參數包含一客戶ID (CID)值、一KMS臨時亂數、一日期範圍及一裝置類型。
在所繪示實施例中,一CID包括唯一地識別客戶之一唯一識別符。如本文中所使用,一客戶指代利用半導體裝置之任何實體。例如,一客戶可包括包含半導體裝置之電子裝置之一製造商。在所繪示實施例中,客戶以及圖1中所描繪之所有實體知道CID。在一些實施例中,CID可藉由製造商寫入。
在一項實施例中,一CAK包括一對稱密鑰。在一項實施例中,製造商(110)維持給定客戶之CAK。因此,製造商(110)可儲存各客戶之CAK,且各客戶儲存其自身之CAK。在一項實施例中,週期性地(例如,以規則間隔)更新CAK。在所繪示實施例中,CAK (208)可在製造裝置時藉由製造商(110)寫入。製造商(110)可將CID-CAK對週期性地傳輸至KMS (102)。KMS (102)可額外地將CAK連同多個裝置之啟動碼一起傳輸至TP (104)。在一些實施例中,HSM (202)進一步經組態以在接收啟動碼(206)時儲存CID及CAK值。
在所繪示實施例中,日期範圍及裝置類型可包括用來識別一客戶之裝置之一子集之一可選擇參數。在一項實施例中,TP (104)藉由供應日期範圍及裝置類型而向KMS (102)發出對裝置之一請求。如所論述,CID及KMS臨時亂數值亦包含於此請求中。KMS (102)使用此等參數來提取匹配日期範圍及/或裝置類型之一組UID-MFGSRK對。
作為一實例,一UID可包含在UID之格式內之一日期範圍及一裝置類型。例如,UID可包含一產品碼及一日期以及其他資料。在此案例中,KMS (102)可以諸如結構化查詢語言(SQL)之一語言產生一正規表達式查詢或類似查詢。例如,KMS (102)可在經接收資料範圍內搜尋匹配模式「PROD20200101*」之任何UID,其中「PROD」係一裝置類型,「20200101」係一日期(2020年1月1日),且「*」表示在日期範圍之後出現之零個或更多個任意字元。當然,亦可使用其他格式及查詢方法,且本發明不限於一特定UID格式。如可見,儲存於請求中之裝置類型及日期範圍值被KMS (102)用來識別UID-MFGSRK對。如在具有代理人檔案號第120426-058400號之共同擁有且同時申請之申請案中更完整描述,KMS (102)返回各經識別UID之一組啟動碼且亦返回對應於該等啟動碼之一或多個CAK。由於CAK值可隨時間改變,故KMS (102)在UID產生時返回與UID相關聯之CAK。HMS (202)可包含用於CAK之一專用儲存區域。在一些實施例中,經返回啟動碼額外地包含相關聯UID,因此將UID映射至啟動碼。如同CAK,此等UID可儲存於HSM (202)中。
在所繪示實施例中,KMS (102)產生UID-MFGSRK對中之各UID之一唯一啟動碼。如更詳細描述,可基於MFGSRK及在一些實施例中客戶臨時亂數產生啟動碼。KMS (102)將UID值重映射至啟動碼,從而產生一啟動碼資料庫。在所繪示實施例中,KMS (102)移除MFGSRK且未將此等密鑰傳輸至TP (104)。因此,KMS (102)將UID-啟動碼對傳輸至TP (104)。
在圖3之描述中更詳細地論述關於啟動碼之擷取及儲存之進一步細節。
如將在圖4A及圖4B之描述中更詳細地描述,但如本文中大體上論述,TP (104)額外地分別經由SRK產生器(210)及MAC產生器(208)執行SRK產生函數及MAC產生函數。
在所繪示實施例中,SRK產生器(210)經組態以產生一給定裝置(例如,108)之一新儲存根密鑰(SHRSRK)。在一項實施例中,SRK產生器(210)自一客戶系統(106)接收產生一SHRSRK值之請求。在一項實施例中,請求可直接來自一裝置(108)。在任一案例中,請求包含由裝置(108)產生之一回應碼及一對應裝置之一UID。在一些實施例中,SRK產生器(210)接收一批UID-回應碼對且產生各UID之SHRSRK值。在一項實施例中,使用經接收回應碼及一對應啟動碼來產生SHRSRK值。在一項實施例中,方法使用一MAC函數來產生一給定UID之一SHRSRK值。在一項實施例中,此MAC函數包括一HMAC函數。在一項實施例中,方法使用在請求中接收之回應碼作為一HMAC函數之密鑰。在此實施例中,方法進一步使用啟動碼作為訊息以使用HMAC進行編碼。如在具有代理人檔案第120426-058300號之共同擁有之申請案中所描述,裝置(108)能夠在本地執行相同運算;因此,一裝置(108)及TP (104)可同時產生適當SHRSRK值。由於SHRSRK值係基於啟動碼,且啟動碼係基於私密之MFGSRK之值,故SHRSRK值經保全以免由第三方產生。在一些選用實施例中,在產生SHRSRK值之後,SRK產生器(210)將SHRSRK值返回至客戶系統(206)。在替代實施例中,SRK產生器(210)可僅將一成功或失敗錯誤碼返回至呼叫方(例如,客戶系統106)且將SHRSRK值維持為一秘密。
除SRK之產生之外,TP (104)額外地包含一MAC產生器(208)。在所繪示實施例中,MAC產生器(208)經組態以自客戶系統(106)接收一訊息且產生該訊息之一對應MAC。接著,MAC產生器(208)將經產生MAC返回至客戶系統。在一項實施例中,使用一HMAC函數來產生MAC。在一項實施例中,HMAC函數使用CAK作為密鑰且使用一對應訊息作為待雜湊之值。在一項實施例中,MAC產生器(208)自客戶接收一CID值及UID值,此等值可為在具有代理人檔案第120426-058300號之共同擁有之申請案中更完全描述之一佈建命令之部分。在一項實施例中,佈建命令額外地包含一KMS臨時亂數值。MAC產生器(208)自命令提取CID且識別UID之一對應CAK。如上文所描述,CAK可隨時間變化,且KMS (102)返回一組給定UID-啟動碼對之CAK值。因此,TP (104)使用UID來識別自KMS (102)接收之一對應CAK。接著,訊息使用CAK作為密鑰來對經接收訊息(其包含一CID值及KMS臨時亂數)執行一HMAC運算。接著,MAC產生器(208)將MAC返回至客戶系統(106)。如在具有代理人檔案第120426-058300號之共同擁有之申請案中所描述,MAC包含於自一客戶系統(106)發送至一裝置(108)之佈建命令中。歸因於適當CAK之私密儲存,裝置(108)可鑑認MAC。如所繪示,圖3之方法僅容許經授權客戶(例如,具有一已知CID及相關聯CAK之客戶)佈建一給定半導體裝置。
圖3係繪示根據一些實施例之用於擷取及處理一啟動碼資料庫的一方法之一流程圖。在所繪示實施例中,所描繪之方法可藉由一TP (104)之一或多個伺服器來執行。
在步驟302中,方法自一KMS請求一或多個啟動碼。在一項實施例中,一TP (104)建立與KMS (102)之一安全連接且發出對啟動碼之一網路請求。在一項實施例中,請求包含一KMS臨時亂數值、CID值、日期範圍及裝置類型。已描述此等參數之各種細節且在此不再重複。
在步驟304中,方法接收一啟動碼資料庫以及一CAK,且在一些實施例中,接收一經更新KMS臨時亂數值。在一項實施例中,KMS (102)傳輸回應於在步驟302中傳輸之請求之一組UID-啟動碼對。在一項實施例中,一啟動碼包括由KMS (102)產生之一固定長度值。一啟動碼之產生之細節提供於具有代理人檔案號120426-058400之共同擁有之同在申請中申請案中。簡而言之,啟動碼可藉由KMS根據以下演算法產生:
,
其中HMAC包括HMAC函數,SHA256包括一SHA-256函數,CID及KMS臨時亂數包括在步驟302中傳輸之CID及KMS臨時亂數,且MFGSRK包括製造商之儲存根密鑰。如所繪示,HMAC函數使用SHA256之輸出作為一密鑰且使用MFGSRK之值作為訊息以進行編碼。
在一項實施例中,KMS (102)亦連同啟動碼一起返回一或多個CAK值。由於CAK值可隨時間改變,故KMS (102)識別在請求之日期範圍內使用或有效之所有CAK且連同啟動碼一起返回CAK值。
最後,在一些實施例中,KMS (102)將更新KMS臨時亂數之值且返回經更新值。接著,TP (104)將用經更新值替換KMS臨時亂數之值。在一替代實施例中,TP (104)維持KMS臨時亂數之一歷史記錄且將經更新KMS臨時亂數添加至KMS臨時亂數之一清單。在一些實施例中,KMS臨時亂數之值可包括一單調計數器值。
在步驟306中,方法將啟動碼儲存於一HSM中。在一項實施例中,方法連同啟動碼一起儲存UID。在一些實施例中,將啟動碼儲存於一關係資料庫中。在此等實施例中,UID及對應啟動碼可儲存於關係資料庫之一表之相同列中。在一些實施例中,該列額外地包含用來擷取啟動碼之CID值。
在步驟308中,方法儲存經接收CAK。在一些實施例中,CAK值儲存於一單獨儲存區域中。在此等實施例中,CAK值亦與一相關日期範圍及一CID值一起儲存以實現特用(ad hoc)查詢。
在另一實施例中,與一給定UID-啟動碼對相關聯之CAK值可儲存於用來儲存啟動碼之關係資料庫中。在一些實施例中,CAK值可儲存於將CID值映射至CAK值之一單獨資料庫表中。各CID-CAK映射額外地包含CAK有效或曾經有效之一資料範圍。在一項實施例中,儲存UID-啟動碼對之表可包含引用相關CAK之一參考(例如,外來密鑰)。替代地,UID-啟動表可儲存可用來識別相關CAK之一日期。在另一替代實施例中,UID-啟動表可直接在一列中包含一CAK,因此UID-啟動表將包含一CID值、UID-啟動對及CAK值。以此方式,儲存空間被複製,但存取一UID-啟動碼對之所有相關資料可在一單一查找中執行且無需一JOIN運算。
最後,在步驟310中,方法更新KMS臨時亂數之值。如上文所描述,步驟310可為選用的。在一項實施例中,方法僅儲存當前KMS臨時亂數值(例如,在HSM中)且簡單地用在步驟304中接收之一新值覆寫當前值。在一替代實施例中,方法可將KMS臨時亂數值儲存於一單獨儲存區域(例如,一資料庫表)中且可將新KMS臨時亂數值附加至先前KMS臨時亂數值之一清單。在一些實施例中,方法使一日期與各新KMS臨時亂數值相關聯,以支援歷史查詢。在一項替代實施例中,方法可在更新KMS臨時亂數值之前將當前KMS臨時亂數值寫入至儲存UID-啟動碼對之儲存區域。因此,繼續先前實例,HSM可包含一CID值、UID-啟動對、一CAK值及用來擷取啟動碼之KMS臨時亂數之值。
可使用其他儲存技術,且關係資料庫儲存技術之以上描述可同樣適用於非關係資料庫(例如,文件導向儲存器或密鑰值儲存區)而無需顯著的創造性努力。
圖4A係繪示根據一些實施例之用於產生一訊息鑑認碼(MAC)的一方法之一流程圖。圖4A中所繪示之方法係藉由TP (104)回應於來自一客戶系統(106)之一請求而執行。一般而言,客戶系統(106)不包含簽署發出至半導體裝置(108)之請求之能力。因此,僅由TP (104)授權之系統可簽署命令並將命令發出至半導體裝置(108)。為了實現此,TP (104)提供可由客戶系統存取之MAC產生函數。
在步驟402a中,方法接收對一MAC之一請求。
在一些實施例中,方法經由諸如使用一輸送層安全(TLS)協定、安全套接層(SSL)協定或類似安全協定保全之一網路連接的一安全通信通道來接收請求。
在一項實施例中,請求包含一未經簽署命令(例如,先前所描述之一佈建命令),該命令包含一命令識別符及零或更多個參數。在一項實施例中,參數包含一CID值及一KMS臨時亂數值。在一項實施例中,參數進一步包含與註定要接收該命令之一半導體裝置相關聯之一UID。
在步驟404a中,方法使用一CAK來產生一MAC。在所繪示實施例中,步驟404a可包含本文中所描述之各種子步驟。
作為步驟404a之部分,方法可首先鑑認對一MAC之請求。如上文所描述,TP (104)可要求客戶系統(106)在發出任何命令之前用TP (104)進行鑑認,因此確保在執行圖4A中之方法之前鑑認一客戶。接下來,方法可確認經接收參數係有效的。例如,方法可確定一CID及UID兩者被正確格式化且為TP (104)所知。此驗證確保不處理任意CID及UID值。
接下來,方法識別用來產生MAC之一CAK。在所繪示實施例中,方法識別與一UID相關聯之一CAK。如上文所描述,CAK隨時間變化,但各UID與一單一CAK相關聯,該CAK在產生UID時有效。方法使用UID-啟動碼之資料庫,及作為圖3之描述中所描述之程序之部分而接收的CAK值。例如,方法可使用CID及UID來查詢一資料庫表,且據此回應而接收啟動碼及在接收啟動碼時寫入之CAK值。由於客戶系統無法存取CAK,故執行圖4A中之方法之TP (104)有效地管理對私密CAK值之存取。此外,TP (104)儲存各UID之CAK值之一歷史記錄,從而容許TP (104)在當前CAK值已改變之後佈建半導體裝置。
最後,方法使用CAK來產生一MAC。在一項實施例中,方法使用一HMAC函數來產生MAC。在一項實施例中,方法使用適當CAK作為HMAC之密鑰且使用經接收命令作為訊息酬載。
在步驟406a中,方法將MAC返回至客戶系統。在所繪示實施例中,方法經由用來在步驟402a中傳輸請求之安全通道返回MAC。
圖4B係繪示根據一些實施例之用於產生一儲存根密鑰(SRK)的一方法之一流程圖。
在步驟402b中,方法接收一裝置UID及相關聯回應碼。在所繪示實施例中,藉由一客戶系統自相關聯半導體裝置讀取UID。可電氣地或經由一相機或其他記錄裝置讀取UID。在所繪示實施例中,在發出一佈建命令且讀取在半導體裝置之板上產生之回應碼之後,藉由存取半導體裝置之儲存器來讀取回應碼。產生一回應碼之細節提供於具有代理人檔案第120426-058300號之共同擁有之同在申請中申請案中。一般而言,可如下產生回應碼:
其中CID及KMS臨時亂數藉由客戶系統在佈建命令中提供至半導體裝置,MFGSRK表示秘密的製造商原始儲存根密鑰,MTC包括半導體裝置上之一公共單調計數器之值,HMAC包括諸如HMAC-SHA256之一HMAC函數,且SHA256包括實施SHA-256演算法之一雜湊演算法。
在所繪示實施例中,回應碼可在半導體裝置上公開存取。因此,客戶系統在步驟402b中讀取回應碼且將回應碼及對應UID上傳至TP (104)。
在步驟404b中,方法使用回應碼、UID及與UID相關聯之啟動碼來產生一新儲存根密鑰(SHRSRK)。類似於圖4A,方法可對CID及UID值執行各種驗證以在繼續之前確定存取且在此不再重複該等驗證。
在驗證請求之後,方法存取HSM以擷取與自客戶系統接收之UID相關聯之一啟動碼。接著,方法使用啟動碼及回應碼來產生一SHRSRK值。在一項實施例中,方法使用一MAC函數來運算SHRSRK值。在一項實施例中,MAC函數包括一HMAC函數,諸如HMAC-SHA256。在一項實施例中,方法使用回應碼作為HMAC函數之密鑰且使用啟動碼作為訊息以進行編碼。因此,方法可如下運算SHRSRK之值:
SHRSRK=
HMAC ( 回應碼 , 啟動碼 )
由於SHRSRK之值係基於一私密啟動碼,故SHRSRK之值對於產生回應碼之TP及裝置而言係秘密。
在步驟406b中,方法連同啟動碼及UID一起儲存新產生之SHRSRK值。在一些實施例中,方法將SHRSRK之值連同啟動碼及UID一起插入至HSM中。例如,方法可將SHRSRK值儲存於一專用儲存區域中且使SHRSRK與UID相關聯以實現使用UID來查找SHRSRK值。
在步驟408b中,方法藉由返回一適當回應碼來認可SHRSRK之產生。在一項實施例中,方法經由諸如一HTTP端點之一端點進行存取。在所繪示實施例中,方法未返回SHRSRK之內容以確保對SHRSRK之保護。代替性地,方法返回指示密鑰產生程序之結果之一狀態碼。因此,作為一項實例,方法可返回指示步驟404b中之密鑰產生程序成功之一HTTP 200狀態碼或指示密鑰產生程序不成功之一HTTP 500狀態碼。
一旦步驟408b完成,TP (104)及裝置(108)兩者便包含新SHRSRK。然而,SHRSRK值尚未在裝置(108)上啟動。在一項實施例中,客戶系統(106)將把一第二命令傳輸至TP (104)以接收一第二MAC。在一項實施例中,此第二命令包括一替換密鑰命令。在一項實施例中,方法執行類似於圖4A中所描述之程序之一程序。即,方法使用與UID相關聯之CAK來產生一MAC。在一項實施例中,替換密鑰命令包含CID及KMS臨時亂數值,且因此,MAC係使用CID及KMS臨時亂數值作為訊息而產生。在一項實施例中,客戶系統(106)將藉由將一確定傳輸至TP (104)來確定裝置(108)已產生SHRSRK之值。在一些實施例中,TP (104)將在接收此確定後提交獨立產生之SHRSRK值。
在圖4A之一替代實施例中,TP (104)可使用SHRSRK而非CAK來簽署一替換密鑰命令。由於僅裝置及TP可存取SHRSRK,且TP僅在成功地產生圖4B中之SHRSRK之後可存取SHRSRK,故使用SHRSRK代替CAK確保TP及裝置兩者可在裝置提交SHRSRK以用作主SRK之前存取SHRSRK。當接收替換密鑰命令時,裝置在用SHRSRK之值替換MFGSRK之前驗證MAC。因此,在此實施例中,TP必須在能夠產生一有效MAC之前獲得SHRSRK,從而確保TP與半導體裝置之間的同步。
如上文所描述,TP (104)代表一客戶系統管理密鑰儲存及產生。一般而言,客戶以下列方式與TP (104)及半導體裝置(108)進行互動。首先,客戶系統查詢一半導體裝置以獲得一UID。此可電氣地或在視覺上(例如,經由影像辨識)執行。接下來,客戶系統建構一命令(此一佈建命令)以發出至與UID相關聯之裝置。客戶系統將此命令傳輸至TP以接收一MAC。接著,客戶系統將MAC添加至發送至TP之命令且向半導體裝置發出命令及MAC。由於MAC係使用一秘密CAK產生且此CAK在製造商、KMS、TP及裝置間共享,故裝置可在執行命令之前獨立地確認MAC。回應於例如一佈建命令,半導體裝置產生一啟動碼及回應碼且僅將回應碼返回至客戶系統。客戶系統將此回應碼傳輸至TP,該TP繼而產生一新儲存根密鑰。TP回應指示一新儲存根密鑰之產生係成功的。接下來,客戶將一第二命令(例如,一替換密鑰命令)傳輸至TP且接收一第二MAC。接著,客戶系統將此替換密鑰命令及第二MAC發出至半導體裝置。在半導體裝置確認第二MAC之後,用在半導體裝置上產生之候選密鑰替換原始MFGSRK且接著將其用作新儲存根密鑰。在程序結束時,TP及半導體裝置兩者保存新儲存根密鑰之值,而客戶系統、製造商及KMS不再可存取使用中之儲存根密鑰。
圖5係繪示根據本發明之一些實施例之一記憶體系統之一方塊圖。
如圖5中所繪示,一運算系統(500)包含經由一匯流排(504)通信地耦合至一記憶體系統(506)之一處理器(502)。記憶體系統(506)包括經由一匯流排/介面(512)通信地耦合至一或多個記憶體庫(508A至508N)之一控制器(220)。如所繪示,控制器(220)包含一本地快取區(514)、韌體(516)及ECC模組(520)。
在所繪示實施例中,處理器(502)可包括任何類型之運算處理器,諸如一中央處理單元、圖形處理單元或其他類型之通用或專用運算裝置。處理器(502)包含容許在處理器(502)與記憶體系統(506)之間傳輸位址、使用者及控制資料之一或多個輸出埠。在所繪示實施例中,經由匯流排(504)執行此通信。在一項實施例中,匯流排(504)包括一輸入/輸出(I/O)匯流排或類似類型之匯流排。
記憶體系統(506)負責管理一或多個記憶體庫(508A至508N)。在一項實施例中,庫(508A至508N)包括NAND快閃記憶體晶粒或非揮發性記憶體之其他組態。
庫(508A至508N)藉由控制器(220)管理。在一些實施例中,控制器(220)包括經組態以調解對及來自庫(508A至508N)之存取之一運算裝置。在一項實施例中,控制器(220)包含包括安裝於容置庫(508A至508N)之一印刷電路板上之ASIC或其他電路系統。在一些實施例中,控制器(220)可與庫(508A至508N)實體上分開。控制器(220)經由介面(512)與庫(508A至508N)進行通信。在一些實施例中,此介面(512)包括一實體上有線(例如,示蹤)介面。在其他實施例中,介面(512)包括用於與庫(508A至508N)進行通信之一標準匯流排。
控制器(220)包括各種模組(514至518)。在一項實施例中,各種模組(514至518)包括各種實體上相異之模組或電路。在其他實施例中,模組(514至518)可完全(或部分)在軟體或韌體中實施。
如所繪示,韌體(516)包括控制器之核心且管理控制器(220)之所有非密碼運算。密碼引擎(222)經提供用於密碼運算,如在具有代理人檔案第120426-058300/US號之共同擁有且同在申請中之申請案中更詳細地描述,該案揭示內容之全文以引用的方式併入本文中。簡而言之,密碼引擎(222)經組態以執行MAC計算。此等MAC計算用來產生新密鑰以替換一現有製造商密鑰。進一步細節提供於具有代理人檔案第120426-058300/US號之共同擁有且同在申請中之申請案中。
因此,韌體(516)針對非密碼運算調解對庫(508A至508N)之存取。如所繪示,控制器(220)及引擎(222)兩者存取非揮發性(NV)儲存器(202)。存取NV儲存器(202)之細節提供於具有代理人檔案第120426-058300/US號之共同擁有且同在申請中之申請案之描述中且在此不再重複。
圖6係繪示展示在本發明之各項實施例中使用之一運算裝置之一實例實施例的一運算裝置之一方塊圖。裝置(600)可包括由製造商(110)、KMS (102)、TP (104)或客戶系統(106)使用之一運算裝置。此外,各種組件(例如,730、734)可包括包含一半導體裝置(108)之一裝置或可包括半導體裝置(108)本身。
運算裝置(600)可包含多於或少於圖6中所展示之組件之組件。例如,一伺服器運算裝置可不包含音訊介面、顯示器、小鍵盤、照明器、觸覺介面、GPS接收器、相機或感測器。
如圖中所展示,裝置(600)包含經由一匯流排(624)與一大容量記憶體(630)通信之一處理單元(CPU) (622)。運算裝置(600)亦包含一或多個網路介面(650)、一音訊介面(652)、一顯示器(654)、一小鍵盤(656)、一照明器(658)、一輸入/輸出介面(660)、一觸覺介面(662)、一選用全球定位系統(GPS)接收器(664)及一(若干)相機或其他光學、熱或電磁感測器(666)。裝置(600)可包含一個相機/感測器(666)或複數個相機/感測器(666),如熟習此項技術者所瞭解。(若干)相機/(若干)感測器(666)在裝置(600)上之定位可按照裝置(600)型號、裝置(600)能力及類似者或其等之某一組合而改變。
運算裝置(600)可視情況與一基地台(未展示)進行通信,或直接與另一運算裝置進行通信。網路介面(650)有時稱為收發器、收發裝置或網路介面卡(NIC)。
音訊介面(652)產生及接收諸如一人聲之聲音之音訊信號。例如,音訊介面(652)可經耦合至一揚聲器及麥克風(未展示)以實現與其他者之遠程通信(telecommunication)或產生對某一動作之一音訊認可。顯示器(654)可為一液晶顯示器(LCD)、氣體電漿、發光二極體(LED)或搭配一運算裝置使用之任何其他類型之顯示器。顯示器(654)亦可包含經配置以自諸如一觸控筆或來自一人手之一手指之一物件接收輸入的一觸敏螢幕。
小鍵盤(656)可包括經配置以自一使用者接收輸入之任何輸入裝置。照明器(658)可提供一狀態指示或提供光。
運算裝置(600)亦包括用於使用諸如USB、紅外線、Bluetooth™或類似者之通信技術與外部裝置進行通信的輸入/輸出介面(660)。觸覺介面(662)將觸覺回饋提供至用戶端裝置之一使用者。
選用GPS收發器(664)可判定運算裝置(600)在地球表面上之實體座標,其通常將一位置輸出為緯度及經度值。GPS收發器(664)亦可採用其他地理定位機制,包含但不限於三角量測、輔助GPS (AGPS)、E-OTD、CI、SAI、ETA、BSS或類似者,以進一步判定運算裝置(600)在地球表面上之實體位置。然而,在一項實施例中,運算裝置(600)可透過其他組件提供可用來判定裝置之一實體位置之其他資訊,包含例如一MAC位址、網際網路協定(IP)位址或類似者。
大容量記憶體(630)包含一RAM (632)、一ROM (634)及其他儲存構件。大容量記憶體(630)繪示用於儲存諸如電腦可讀指令、資料結構、程式模組或其他資料之資訊的電腦儲存媒體之另一實例。大容量記憶體(630)儲存用於控制運算裝置(600)之低階操作之一基本輸入/輸出系統(「BIOS」) (640)。大容量記憶體亦儲存用於控制運算裝置(600)之操作之一作業系統(641)。
應用程式(642)可包含電腦可執行指令,該等電腦可執行指令在藉由運算裝置(600)執行時執行先前在前圖之描述中所描述之方法(或方法之部分)之任何者。在一些實施例中,實施方法實施例之軟體或程式可自硬碟機(未繪示)讀取且藉由CPU (622)暫時儲存於RAM (632)中。接著,CPU (622)可自RAM (632)讀取軟體或資料,處理軟體或資料,且將軟體或資料再次儲存至RAM (632)。
本發明包含執行上文所描述之方法且實施上文所描述之系統的各種裝置,包含執行此等方法之資料處理系統,及含有指令之電腦可讀媒體,該等指令在於資料處理系統上執行時引起系統執行此等方法。
描述及圖式係闡釋性的且不應被解釋為限制性。描述諸多特定細節以提供一透徹理解。然而,在特定例項中,未描述熟知或習知細節以免使描述不清楚。在本發明中對一項或一實施例之引用不一定係對相同實施例之引用;而且,此等引用意謂至少一個。
在本說明書中對「一項實施例」或「一實施例」之引用意謂結合該實施例所描述之一特定特徵、結構或特性包含於本發明之至少一項實施例中。在說明書中之各個地方出現片語「在一項實施例中」不一定全部指代相同實施例,亦並非與其他實施例互斥之單獨或替代實施例。此外,描述可由一些實施例展現而未由其他實施例展現之各種特徵。類似地,描述可能為一些實施例之要求而非其他實施例之要求的各種要求。
在此描述中,各種功能及操作可被描述為由軟體程式碼執行或引起以簡化描述。然而,熟習此項技術者將認知,此等表達意謂功能係藉由一或多個處理器(諸如一微處理器、特定應用積體電路(ASIC)、圖形處理器及/或一場可程式化閘陣列(FPGA))執行程式碼而產生。替代地或組合地,可使用專用電路系統(例如,邏輯電路系統)在具有或不具有軟體指令之情況下實施功能及操作。實施例可使用硬接線電路系統在不具有軟體指令之情況下或結合軟體指令來實施。因此,技術不限於硬體電路系統及軟體之任何特定組合,亦不限於由一運算裝置執行之指令之任何特定來源。
雖然一些實施例可在功能齊全的電腦及電腦系統中實施,但各項實施例能夠以多種形式作為一運算產品分佈且能夠被應用而不管用來實際上實現分佈之機器或電腦可讀媒體之特定類型。
至少一些所揭示態樣可至少部分地在軟體中體現。即,該等技術可在一運算裝置或其他系統中回應於其處理器(諸如一微處理器)執行一記憶體(諸如ROM、揮發性RAM、非揮發性記憶體、快取區或一遠端儲存裝置)中所含之指令序列而實行。
經執行以實施實施例之常式可實施為一作業系統、中間軟體、服務遞送平台、SDK (軟體開發套件)組件、網路服務或其他特定應用程式、組件、程式、物件、模組或稱為「電腦程式」之指令序列的部分。此等常式之調用介面可作為一API (應用程式設計介面)曝露於一軟體開發社群。電腦程式通常包括在一電腦中之各種記憶體及儲存裝置中在各種時間設定且在藉由一電腦中之一或多個處理器讀取並執行時引起電腦執行實行涉及各種態樣之要素所必需之操作的一或多個指令。
一機器可讀媒體可用來儲存軟體及資料,該軟體及資料在藉由一運算裝置執行時引起該裝置執行各種方法。可執行軟體及資料可經儲存於各種位置中,包含例如ROM、揮發性RAM、非揮發性記憶體及/或快取區。此軟體及/或資料之部分可儲存於此等儲存裝置之任一者中。此外,可自集中式伺服器或同級間網路獲得資料及指令。可在不同時間且在不同通信會期中或在相同通信會期中自不同集中式伺服器及/或同級間網路獲得資料及指令之不同部分。可在執行應用程式之前整體獲得資料及指令。替代地,可在執行需要時及時地動態獲得資料及指令之部分。因此,在一特定時間例項,資料及指令不需要整體位於一機器可讀媒體上。
電腦可讀媒體之實例包含但不限於可記錄及不可記錄式媒體,尤其諸如揮發性及非揮發性記憶體裝置、唯讀記憶體(ROM)、隨機存取記憶體(RAM)、快閃記憶體裝置、固態硬碟儲存媒體、可移除磁碟、磁碟儲存媒體、光學儲存媒體(例如,光碟唯讀記憶體(CD ROM)、數位多功能光碟(DVD)等)。電腦可讀媒體可儲存指令。
一般而言,一有形或非暫時性機器可讀媒體包含以可由一機器(例如,一電腦、行動裝置、網路裝置、個人數位助理、製造工具、具有一組一或多個處理器之任何裝置等)存取之一形式提供(例如,儲存)資訊的任何機構。
在各項實施例中,可結合軟體及韌體指令使用硬接線電路系統來實施技術。因此,技術既不限於硬體電路系統及軟體之任何特定組合,亦不限於由一運算裝置執行之指令之任何特定來源。
本文中所闡述之各項實施例可使用各種各樣的不同類型之運算裝置來實施。如本文中所使用,一「運算裝置」之實例包含但不限於一伺服器、一集中式運算平台、多個運算處理器及/或組件之一系統、一行動裝置、一使用者終端機、一車輛、一個人通信裝置、一可穿戴數位裝置、一電子資訊站(kiosk)、一通用電腦、一電子文件閱讀器、一平板電腦、一膝上型電腦、一智慧型電話、一數位相機、一住宅家用電器、一電視機或一數位音樂播放器。運算裝置之額外實例包含作為所謂「物聯網」(IOT)之部分之裝置。此等「事物」可能偶爾與其等所有者或管理員互動,該等所有者或管理員可監視事物或修改關於此等事物之設置。在一些情況中,此等所有者或管理員相對於「事物」裝置扮演使用者之角色。在一些實例中,一使用者之主要行動裝置(例如,一Apple iPhone)相對於由使用者佩戴之一經配對「事物」裝置(例如,一Apple手錶)可為一管理員伺服器。
在一些實施例中,運算裝置可為一電腦或主機系統,其被實施為例如一桌上型電腦、膝上型電腦、網路伺服器、行動裝置或包含一記憶體及一處理裝置之其他運算裝置。主機系統可包含或經耦合至一記憶體子系統,使得主機系統可自記憶體子系統讀取資料或將資料寫入至記憶體子系統。主機系統可經由一實體主機介面耦合至記憶體子系統。一般而言,主機系統可經由一相同通信連接、多個單獨通信連接及/或通信連接之一組合存取多個記憶體子系統。
在一些實施例中,運算裝置係包含一或多個處理裝置之一系統。處理裝置之實例可包含一微控制器、一中央處理單元(CPU)、專用邏輯電路系統(例如,一場可程式化閘陣列(FPGA)、一特定應用積體電路(ASIC)等)、一系統單晶片(SoC)或另一合適處理器。
儘管一些圖式以一特定順序繪示若干操作,但可對非順序相依之操作進行重新排序且可組合或分解其他操作。雖然明確地提及一些重新排序或其他群組,但其他重新排序或群組對於一般技術者而言將為顯而易見的,且因此並未呈現一詳盡的替代例清單。此外,應認知,階段可在硬體、韌體、軟體或其等之任何組合中實施。
在前述說明書中,本發明已參考其特定例示性實施例進行描述。將顯而易見的是,在不脫離如以下發明申請專利範圍中所闡述之更廣泛精神及範疇之情況下,可對本發明進行各種修改。因此,說明書及圖式應被視為闡釋性意義而非限制性意義。
102:密鑰管理系統(KMS)
104:具信夥伴(TP)
106:客戶系統
108:半導體裝置
108A:半導體裝置
108B:半導體裝置
108C:半導體裝置
110:半導體裝置製造商
202:硬體安全模組(HSM)/組件(圖2)/非揮發性(NV)儲存器(圖5)
204:啟動碼
206:儲存根密鑰(SRK)
208:訊息鑑認碼(MAC)產生器/組件
210:儲存根密鑰(SRK)產生器/組件
220:控制器
222:密碼引擎
302:步驟
304:步驟
306:步驟
308:步驟
310:步驟
402A:步驟
402B:步驟
404A:步驟
404B:步驟
406A:步驟
406B:步驟
408B:步驟
500:運算系統
502:處理器
504:匯流排
506:記憶體系統
508A至508N:記憶體庫
512:匯流排/介面
514:本地快取區/模組
516:韌體/模組
518:模組
600:運算裝置
622:處理單元(CPU)
624:匯流排
630:大容量記憶體
632:隨機存取記憶體(RAM)
640:基本輸入/輸出系統(「BIOS」)
641:作業系統
642:應用程式
652:音訊介面
654:顯示器
656:小鍵盤
658:照明器
660:輸入/輸出介面
662:觸覺介面
664:全球定位系統(GPS)接收器/全球定位系統(GPS)收發器
666:相機/感測器
圖1係繪示根據本發明之一些實施例之一鑑認系統之一方塊圖。
圖2係根據本發明之一些實施例之一具信夥伴(TP)系統之一方塊圖。
圖3係繪示根據一些實施例之用於擷取及處理一啟動碼資料庫的一方法之一流程圖。
圖4A係繪示根據一些實施例之用於產生一訊息鑑認碼(MAC)的一方法之一流程圖。
圖4B係繪示根據一些實施例之用於產生一儲存根密鑰(SRK)的一方法之一流程圖。
圖5係繪示根據本發明之一些實施例之一記憶體系統之一方塊圖。
圖6係繪示展示在本發明之各項實施例中使用之一運算裝置之一實例實施例的一運算裝置之一方塊圖。
402B:步驟
404B:步驟
406B:步驟
408B:步驟
Claims (20)
- 一種方法,其包括: 儲存複數個啟動碼,該等啟動碼之各者與半導體裝置之一各自唯一識別符(UID)相關聯; 經由一網路接收產生一新儲存根密鑰(SRK)之一請求,該請求包含一回應碼及一所請求UID; 基於該所請求UID自該複數個啟動碼識別一選定啟動碼; 使用該回應碼及該選定啟動碼來產生SHRSRK值; 使該SHRSRK值與該所請求UID相關聯且儲存該SHRSRK值;及 回應於該請求而返回一認可。
- 如請求項1之方法,其進一步包括儲存至少一個客戶鑑認密鑰(CAK),該CAK與至少一個啟動碼及一對應UID相關聯。
- 如請求項2之方法,其進一步包括: 接收對一訊息鑑認碼(MAC)之一請求,該請求包含該對應UID及一命令; 基於該對應UID識別該至少一個CAK; 使用一基於雜湊之MAC (HMAC)函數來產生該MAC,其中將該CAK用作該HMAC函數之一密鑰且將該命令用作該HMAC函數之一訊息;及 回應於該請求而返回該MAC。
- 如請求項3之方法,該命令包含一客戶識別符(CID)及一臨時亂數值。
- 如請求項1之方法,其進一步包括: 將對一啟動碼資料庫之一請求傳輸至一密鑰管理伺服器(KMS); 回應於該請求而接收該啟動碼資料庫,該啟動碼資料庫包括該複數個啟動碼;及 將該啟動碼資料庫儲存於一硬體安全模組中。
- 如請求項1之方法,其中產生該SHRSRK值包括:經由一HMAC函數產生一MAC。
- 如請求項1之方法,其中產生該MAC進一步包括:使用該回應碼作為該HMAC函數之一密鑰且使用該選定啟動碼作為該HMAC函數之一訊息。
- 一種用於有形地儲存能夠藉由一電腦處理器執行之電腦程式指令之非暫時性電腦可讀儲存媒體,該等電腦程式指令定義以下步驟: 儲存複數個啟動碼,該等啟動碼之各者與半導體裝置之一各自唯一識別符(UID)相關聯; 經由一網路接收產生一新儲存根密鑰(SRK)之一請求,該請求包含一回應碼及一所請求UID; 基於該所請求UID自該複數個啟動碼識別一選定啟動碼; 使用該回應碼及該選定啟動碼來產生SHRSRK值; 使該SHRSRK值與該所請求UID相關聯且儲存該SHRSRK值;及 回應於該請求而返回一認可。
- 如請求項8之電腦可讀儲存媒體,其進一步包括儲存至少一個客戶鑑認密鑰(CAK),該CAK與至少一個啟動碼及一對應UID相關聯。
- 如請求項9之電腦可讀儲存媒體,其進一步包括: 接收對一訊息鑑認碼(MAC)之一請求,該請求包含該對應UID及一命令; 基於該對應UID識別該至少一個CAK; 使用一基於雜湊之MAC (HMAC)函數來產生該MAC,其中將該CAK用作該HMAC函數之一密鑰且將該命令用作該HMAC函數之一訊息;及 回應於該請求而返回該MAC。
- 如請求項10之電腦可讀儲存媒體,該命令包含一客戶識別符(CID)及一臨時亂數值。
- 如請求項8之電腦可讀儲存媒體,其進一步包括: 將對一啟動碼資料庫之一請求傳輸至一密鑰管理伺服器(KMS); 回應於該請求而接收該啟動碼資料庫,該啟動碼資料庫包括該複數個啟動碼;及 將該啟動碼資料庫儲存於一硬體安全模組中。
- 如請求項8之電腦可讀儲存媒體,其中產生該SHRSRK值包括:經由一HMAC函數產生一MAC。
- 如請求項8之電腦可讀儲存媒體,其中產生該MAC進一步包括:使用該回應碼作為該HMAC函數之一密鑰且使用該選定啟動碼作為該HMAC函數之一訊息。
- 一種裝置,其包括: 一處理器;及 一儲存媒體,其用於將程式邏輯有形地儲存於其上以藉由該處理器執行,該經儲存程式邏輯包括: 藉由該處理器執行以儲存複數個啟動碼之邏輯,該等啟動碼之各者與半導體裝置之一各自唯一識別符(UID)相關聯; 藉由該處理器執行以經由一網路接收產生一新儲存根密鑰(SRK)之一請求的邏輯,該請求包含一回應碼及一所請求UID; 藉由該處理器執行以基於該所請求UID自該複數個啟動碼識別一選定啟動碼的邏輯; 藉由該處理器執行以使用該回應碼及該選定啟動碼來產生SHRSRK值的邏輯; 藉由該處理器執行以使該SHRSRK值與該所請求UID相關聯且儲存該SHRSRK值的邏輯;及 藉由該處理器執行以回應於該請求而返回一認可之邏輯。
- 如請求項15之裝置,該經儲存程式邏輯進一步包括藉由該處理器執行以儲存至少一個客戶鑑認密鑰(CAK)之邏輯,該CAK與至少一個啟動碼及一對應UID相關聯。
- 如請求項16之裝置,該經儲存程式邏輯進一步包括藉由該處理器針對以下執行之邏輯: 藉由該處理器執行以接收對一訊息鑑認碼(MAC)之一請求的邏輯,該請求包含該對應UID及一命令; 藉由該處理器執行以基於該對應UID識別該至少一個CAK的邏輯; 藉由該處理器執行以使用一基於雜湊之MAC (HMAC)函數來產生該MAC的邏輯,其中將該CAK用作該HMAC函數之一密鑰且將該命令用作該HMAC函數之一訊息;及 藉由該處理器執行以回應於該請求而返回該MAC之邏輯。
- 如請求項15之裝置,該經儲存程式邏輯進一步包括藉由該處理器針對以下執行之邏輯: 藉由該處理器執行以將對一啟動碼資料庫之一請求傳輸至一密鑰管理伺服器(KMS)的邏輯; 藉由該處理器執行以回應於該請求而接收該啟動碼資料庫的邏輯,該啟動碼資料庫包括該複數個啟動碼;及 藉由該處理器執行以將該啟動碼資料庫儲存於一硬體安全模組中的邏輯。
- 如請求項15之裝置,其中產生該SHRSRK值包括:經由一HMAC函數產生一MAC。
- 如請求項15之裝置,其中產生該MAC進一步包括:使用該回應碼作為該HMAC函數之一密鑰且使用該選定啟動碼作為該HMAC函數之一訊息。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/014,215 | 2020-09-08 | ||
US17/014,215 US11444771B2 (en) | 2020-09-08 | 2020-09-08 | Leveraging a trusted party third-party HSM and database to securely share a key |
Publications (1)
Publication Number | Publication Date |
---|---|
TW202226017A true TW202226017A (zh) | 2022-07-01 |
Family
ID=80470163
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW110132182A TW202226017A (zh) | 2020-09-08 | 2021-08-31 | 利用具信方第三方hsm及資料庫以安全共享密鑰 |
Country Status (4)
Country | Link |
---|---|
US (2) | US11444771B2 (zh) |
CN (1) | CN116171441A (zh) |
TW (1) | TW202226017A (zh) |
WO (1) | WO2022055901A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11444771B2 (en) | 2020-09-08 | 2022-09-13 | Micron Technology, Inc. | Leveraging a trusted party third-party HSM and database to securely share a key |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB0701518D0 (en) * | 2007-01-26 | 2007-03-07 | Hewlett Packard Development Co | Methods, devices and data structures for protection of data |
KR100921680B1 (ko) | 2007-08-21 | 2009-10-15 | 한국전자통신연구원 | 보안 기능을 구비한 휴대용 저장장치 및 이를 이용한컴퓨팅 방법 |
US9100174B2 (en) * | 2012-08-31 | 2015-08-04 | Freescale Semiconductor, Inc. | Secure provisioning in an untrusted environment |
GB2514771B (en) * | 2013-06-03 | 2015-10-21 | Broadcom Corp | Methods of securely changing the root key of a chip, and related electronic devices and chips |
KR101729960B1 (ko) | 2013-10-21 | 2017-04-25 | 한국전자통신연구원 | 신뢰 보안 플랫폼 모듈을 이용한 보안 애플리케이션 인증 및 관리 방법 및 장치 |
US10015164B2 (en) | 2014-05-07 | 2018-07-03 | Cryptography Research, Inc. | Modules to securely provision an asset to a target device |
US9407636B2 (en) * | 2014-05-19 | 2016-08-02 | Intel Corporation | Method and apparatus for securely saving and restoring the state of a computing platform |
CN104268477B (zh) * | 2014-09-26 | 2017-09-26 | 华为技术有限公司 | 一种安全控制方法及网络设备 |
US9432339B1 (en) * | 2014-09-29 | 2016-08-30 | Emc Corporation | Automated token renewal using OTP-based authentication codes |
US10146464B2 (en) * | 2016-06-30 | 2018-12-04 | Nxp B.V. | Method for performing multiple enrollments of a physically uncloneable function |
CN108108631A (zh) * | 2017-11-29 | 2018-06-01 | 晨星半导体股份有限公司 | 一种根密钥处理方法及相关装置 |
US10963570B2 (en) | 2018-12-11 | 2021-03-30 | Verizon Media Inc. | Secure boot of remote servers |
CN109687959B (zh) * | 2018-12-29 | 2021-11-12 | 上海唯链信息科技有限公司 | 密钥安全管理系统和方法、介质和计算机程序 |
US11218330B2 (en) * | 2019-03-25 | 2022-01-04 | Micron Technology, Inc. | Generating an identity for a computing device using a physical unclonable function |
US11121869B1 (en) * | 2020-05-08 | 2021-09-14 | Amazon Technologies, Inc. | Decentralized cryptographic key derivation |
US11444771B2 (en) | 2020-09-08 | 2022-09-13 | Micron Technology, Inc. | Leveraging a trusted party third-party HSM and database to securely share a key |
US11294582B2 (en) * | 2020-09-08 | 2022-04-05 | Micron Technology, Inc. | Customer-specific activation of functionality in a semiconductor device |
-
2020
- 2020-09-08 US US17/014,215 patent/US11444771B2/en active Active
-
2021
- 2021-08-31 TW TW110132182A patent/TW202226017A/zh unknown
- 2021-09-07 CN CN202180054833.4A patent/CN116171441A/zh active Pending
- 2021-09-07 WO PCT/US2021/049321 patent/WO2022055901A1/en active Application Filing
-
2022
- 2022-09-09 US US17/941,442 patent/US12047508B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
WO2022055901A1 (en) | 2022-03-17 |
US20220078018A1 (en) | 2022-03-10 |
US11444771B2 (en) | 2022-09-13 |
CN116171441A (zh) | 2023-05-26 |
US20230006827A1 (en) | 2023-01-05 |
US12047508B2 (en) | 2024-07-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10972290B2 (en) | User authentication with self-signed certificate and identity verification | |
US11044088B2 (en) | System and method for rotating client security keys | |
US10812475B2 (en) | Authenticating access to an instance | |
WO2019214211A1 (zh) | 基于区块链的用户数据授权方法、介质、装置和计算设备 | |
KR101941049B1 (ko) | 암호화된 통신을 위한 방법 및 시스템 | |
US10454910B2 (en) | Management apparatus, computer program product, system, device, method, information processing apparatus, and server | |
US9754100B1 (en) | Credential synchronization management | |
TW201717092A (zh) | 裝置出生憑證 | |
JP2020057378A (ja) | クラウドサービスを提供するためのシステムおよび方法 | |
WO2013174195A1 (zh) | 文档权限控制方法、装置和系统 | |
US20240143202A1 (en) | Customer-specific activation of functionality in a semiconductor device | |
WO2016091067A1 (zh) | 一种数据操作方法及装置 | |
US12047508B2 (en) | Leveraging a trusted party third-party HSM and database to securely share a key | |
JPWO2019159689A1 (ja) | 電子機器、情報処理装置、情報処理方法、プログラム、及び、情報処理システム | |
TWI854152B (zh) | 用於提供安全的現場升級之方法、相關電腦可讀儲存媒體及電子裝置 | |
US11728997B2 (en) | Cloud-based creation of a customer-specific symmetric key activation database | |
JP2018190239A (ja) | 深層学習自動学習システム、クライアント装置およびサーバ装置 |