TWI840506B - 安全資料處理裝置(二) - Google Patents

安全資料處理裝置(二) Download PDF

Info

Publication number
TWI840506B
TWI840506B TW109104520A TW109104520A TWI840506B TW I840506 B TWI840506 B TW I840506B TW 109104520 A TW109104520 A TW 109104520A TW 109104520 A TW109104520 A TW 109104520A TW I840506 B TWI840506 B TW I840506B
Authority
TW
Taiwan
Prior art keywords
planning
data processing
processing device
processor
secure data
Prior art date
Application number
TW109104520A
Other languages
English (en)
Other versions
TW202038120A (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
Priority claimed from GBGB1902470.2A external-priority patent/GB201902470D0/en
Application filed by 英商安全事件有限公司 filed Critical 英商安全事件有限公司
Publication of TW202038120A publication Critical patent/TW202038120A/zh
Application granted granted Critical
Publication of TWI840506B publication Critical patent/TWI840506B/zh

Links

Abstract

一種安全資料處理裝置,其包含一處理器及耦接至該處理器之一記憶體,該處理器經組配以:接收包含用於佈建一種類型之可規劃裝置的至少一個指令集之一指令碼,該至少一個指令集中之每一者定義待由該安全資料處理裝置執行之一或多個密碼操作,該一或多個密碼操作中之每一者參考一參數;將該指令碼儲存在該記憶體中;自該記憶體擷取一第一授權密鑰,並使用該第一授權密鑰驗證與該指令碼相關聯之一簽章,其中該指令碼由該指令碼之一產生器簽署;自與該處理器通訊之一規劃機之一規劃模組接收一規劃請求,該規劃請求請求對一可規劃裝置進行規劃,且標識出該指令碼中之該至少一個指令集中的一指令集;對於標識出的指令集中之該一或多個密碼操作中之每一者,判定該密碼操作中參考之該參數的一值並使用該值執行該密碼操作;以及回應於執行該一或多個密碼操作中之每一者,將規劃資訊輸出至該規劃模組以用於規劃該可規劃裝置。

Description

安全資料處理裝置(二)
本發明係有關於安全資料處理裝置。
發明背景
硬體安全模組(HSM)常常用於將軟體程式碼及密碼密鑰安全地部署至可規劃裝置上(用於消費型裝置中)。
硬體安全模組為可安全地創建並保存私用密鑰及秘密密鑰,從而使得無法提取該等密鑰之裝置。HSM亦提供藉由密鑰執行一些選定密碼操作之能力。
大體而言,HSM用於保存及使用私用密鑰,並對遞送例如單個密鑰之簡單請求作出回應。
發明概要
呈原始設備製造商(OEM)形式之製造方創建最終待出售給其最終客戶之消費型產品,其含有可規劃裝置(例如,安全元件、微處理器、微控制器等)。OEM希望藉由OEM特定資訊、X.509憑證,以及安全密鑰及其他憑據來佈建可規劃裝置。此允許OEM製備可跨越網際網路唯一地且安全地認證之消費型產品,從而允許OEM完全信任由可規劃裝置供應之資料。
必須佈建每一可規劃裝置,從而使得可自每一其他可規劃裝置安全地區分每一可規劃裝置:此例如藉由使用目前先進技術密碼技術來進行,諸如每可規劃裝置具有唯一私用密鑰之非對稱密碼術及相關聯X.509憑證。工廠中用於佈建可規劃裝置之HSM必須在多個產品運行中保持最終產品之完整性。
存在多個不同類型之可規劃裝置,其皆需要略微不同之儲存配置、內置式密碼加速器,以及密鑰與憑證及其他安全資訊之選擇。新類型之可規劃裝置正有規律地(例如,每週)添加至可規劃裝置製造商之目錄。
本發明人已認識到,隨著新可規劃裝置變得可用,每次皆需要更新HSM軟體(其控制HSM之操作)以適應新的可規劃裝置。然而,HSM當前需要軟體影像更新以處理每一新類型之可規劃裝置,但無法在需要時容易地升級工廠中不斷使用之HSM。就地更新HSM之過程很困難,且改變可能會阻止其他產品線繼續正確地佈建之風險很高。 本發明之實施例解決數個技術問題,包括:
(i) 如何在不必跨越許多不同工廠協調及管理許多HSM之升級的情況下,添加佈建未來、但尚未知之可規劃裝置的能力。
本發明之實施例有利地避免對製造線之代價高昂中斷,此將原本在升級用於佈建新可規劃裝置之HSM時發生。本發明之實施例有利地進一步避免由於在HSM更新後複驗製造線中之舊裝置而對製造線進行代價高昂之中斷。此外,本發明之實施例有利地避免替換複驗失敗之任何舊裝置的成本。
(ii) 如何確保OEM可信任工廠(通常為不安全的環境)能安全地進行必要的密碼功能,尤其為將秘密密鑰保密,並確保在正確的位置使用正確的密鑰,而在其他地方無法使用。
本發明之實施例有利地保護OEM之秘密及裝置憑據,從而使得工廠可無需存取OEM之密鑰來執行密碼操作,且此外工廠無法將秘密/憑據再用於其他產品,因此OEM並不需要信任工廠能保密。此實現仿製(藉此將相同憑證載入至多於一個可規劃裝置中)保護。仿製裝置可能出於眾多原因而不利於OEM。例如,仿製裝置可能需要來自OEM之支援,從而因此需要OEM承擔計算資源修復、更新及/或服務仿製裝置,並承擔提供此支援至仿製裝置之網路頻寬。
(iii) 如何確保無法在輸送中或儲存時篡改至工廠之指令,從而使得消費型產品保持其完整性。
本發明之實施例藉由使用密碼完整性簽章來確保資訊在輸送中或駐存於工廠中之HSM上時未經修改,有利地維持用於佈建可規劃裝置之資訊的完整性。
根據本發明之一個態樣,提供一種安全資料處理裝置,其包含處理器及耦接至處理器之記憶體,處理器經組配以:接收包含用於佈建一種類型之可規劃裝置的至少一個指令集之指令碼,至少一個指令集中之每一者定義待由安全資料處理裝置執行之一或多個密碼操作,一或多個密碼操作中之每一者參考參數;將指令碼儲存在記憶體中;自該記憶體擷取第一授權密鑰並使用第一授權密鑰驗證與指令碼相關聯之簽章,其中指令碼由指令碼之產生器簽署;自與該處理器通訊之規劃機的規劃模組接收規劃請求,該規劃請求請求對可規劃裝置進行規劃且標識出該指令碼中之至少一個指令集中的指令集;對於標識出的指令集中之一或多個密碼操作中之每一者,判定密碼操作中參考之參數的值並使用該值執行密碼操作;及回應於執行一或多個密碼操作中之每一者,將規劃資訊輸出至規劃模組以用於規劃可規劃裝置。
對於標識出的指令集中之密碼操作中之一或多者,處理器可經組配以藉由自規劃請求提取該值來判定密碼操作中定義之參數的值。
對於標識出的指令集中之密碼操作中之一或多者,處理器可經組配以藉由自指令碼讀取該值來判定密碼操作中定義之參數的值。
處理器可經組配以接收組配檔案中之指令碼及元資料,且對於標識出的指令集中之密碼操作中之一或多者,處理器進一步經組配以藉由查詢該元資料來判定密碼操作中定義之參數的值。
元資料可經簽署,且處理器經組配以使用第一授權密鑰或第二授權密鑰來驗證元資料之簽章。
元資料可由指令碼之產生器簽署。
簽章可進一步與元資料相關聯。
指令碼可包含唯一標識符,且元資料包括對指令碼之唯一標識符的參考。
元資料可定義參數之值。
元資料可定義待由安全資料處理裝置生成該值,且處理器可進一步經組配以藉由生成該值來判定參數之值。
元資料可定義待自資料檔案存取該值,且處理器可經組配以:存取包含該參數之至少一值的資料檔案;自該記憶體擷取第三授權密鑰並使用第三授權密鑰驗證與資料檔案相關聯之簽章,其中資料檔案由製造方簽署;其中處理器進一步經組配以基於查詢資料檔案來判定參數之值。
處理器可經組配以接收資料檔案並將資料檔案儲存在記憶體中。
元資料可包含唯一標識符,且資料檔案可包括對元資料之唯一標識符的參考。
該參數之值可經加密,且處理器經組配以藉由儲存在該記憶體中之包覆密鑰來解密該值。
元資料經加密,且處理器可經組配以藉由儲存在該記憶體中之密碼密鑰來解密指令碼。
規劃模組可根據規劃器指令碼執行可規劃裝置之規劃,規劃器指令碼包含唯一標識符,且指令碼包含對規劃器指令碼之唯一標識符的參考。
指令碼可經加密,且處理器可經組配以藉由儲存在該記憶體中之密碼密鑰來解密指令碼。指令碼及元資料可係藉由單個或單獨(各別)密鑰加密。指令碼之全部或一部分可經加密。類似地,元資料之全部或一部分可經加密。
安全資料處理裝置可包含硬體安全模組。
處理器可經組配以:接收記錄,該記錄包含:產品標識符;序列元素;及經加密資訊,其中序列元素與產品標識符相關聯;使用該產品標識符查詢記憶體,以判定儲存在記憶體中的與產品標識符相關聯之序列元素參數的值,其中序列元素及序列元素參數之值為序列之元素;使用序列元素及序列元素參數之值來驗證序列元素,及回應於該驗證:將該記錄儲存在記憶體中;及使用序列元素更新序列元素參數之值;其中由該規劃請求標識出之指令集指示處理器使用記錄來規劃該可規劃裝置,處理器進一步經組配以:標識出規劃請求產品標識符;基於標識出規劃請求產品標識符匹配所儲存記錄之產品標識符而自記憶體擷取所儲存記錄;使用儲存在記憶體中之密碼密鑰來解密該所儲存記錄之經加密資訊以獲得經解密資訊;將其他規劃資訊輸出至規劃模組以用於規劃可規劃裝置,其中其他規劃資訊係基於該經解密資訊。
由該規劃請求標識出之指令集可指示處理器使用記錄來規劃該可規劃裝置,處理器可進一步經組配以:標識出規劃請求產品標識符;傳輸對包含匹配規劃請求產品標識符之產品標識符的記錄之請求;接收記錄,該記錄包含該產品標識符;序列元素;及經加密資訊,其中序列元素與產品標識符相關聯;使用該產品標識符查詢記憶體,以判定儲存在記憶體中的與產品標識符相關聯之序列元素參數的值,其中序列元素及序列元素參數之值為序列之元素;使用序列元素及序列元素參數之值來驗證序列元素,及回應於該驗證:使用序列元素更新序列元素參數之值;使用儲存在記憶體中之密碼密鑰來解密該記錄之經加密資訊以獲得經解密資訊;及將其他規劃資訊輸出至規劃模組以用於規劃可規劃裝置,其中其他規劃資訊係基於該經解密資訊。
規劃請求可包含規劃請求產品標識符,且處理器可經組配以藉由讀取規劃請求來標識出規劃請求產品標識符。
資料檔案可包含規劃請求產品標識符,且處理器可經組配以藉由存取資料檔案來標識出規劃請求產品標識符。
指令集可包含規劃請求產品標識符,且處理器可經組配以藉由讀取指令集來標識出規劃請求產品標識符。
處理器可進一步經組配以藉由判定在該序列中序列元素在序列中之位置是否比序列元素參數之值在序列中之位置遠來驗證序列元素。
處理器可經組配以自該規劃機接收記錄。
處理器可經組配以將對記錄之請求傳輸至該規劃機。
記錄可包含經加密內容。在實施例中,經加密內容可僅由HSM藉由使用由HSM使用熟習此項技術者理解之密碼技術保存的密鑰來解密,例如非對稱私用密鑰及導出密鑰解密方案。
當HSM接收到記錄時,其可經組配以驗證序列元素處於預期序列中(例如,該序列可遞增)。
HSM進一步可經組配以判定其是否准許解密記錄中之經加密資訊。HSM可回應於成功地驗證序列而判定其准許解密記錄中之經加密資訊。一旦解密經加密資訊,HSM接著能夠使用記錄中所含有的(經解密)資訊,以例如佈建新的可規劃裝置。一旦解密,可將針對彼產品標識符的儲存在HSM記憶體中的與序列參數相關聯之值更新為(例如遞增的)序列中之下一值。
若HSM儲存多於一個序列元素,則若存在與每一序列元素相關聯之產品標識符,將係有利的。此可對應於所接收記錄中之產品標識符,且藉此允許HSM判定記錄中之序列元素參考何序列元素。此產品標識符可為儲存在安全資料處理裝置之記憶體中的產品標識符。資料檔案可包含產品標識符,因此安全資料處理裝置可藉由接收資料檔案來接收產品標識符。
不論產品標識符之準確本質如何,與每一產品標識符相關聯的皆為具有值之序列元素參數。該值可被稱為序列元素值及/或序列值。記憶體可儲存具有相關聯值之產品標識符(具有值/標識),該值為序列元素值。以此方式,產品標識符及其對應相關聯序列元素參數可被視為一對條目。序列元素值具有可包含一或多個數字、一或多個字母、一或多個其他字符中之一或多者的值。
HSM可儲存多個集合之上文條目對,例如每一集合用於:不同產品、不同OEM及不同模型之產品。
在實施例中,HSM可驗證新記錄之序列元素,之後准許對其進行解密,但若序列元素未經驗證,則拒絕進行解密。此情況防止再用任何先前使用之記錄。有利地,此提供反仿製系統機制,以防止藉由相同憑據創建裝置。此具有HSM並不需要保留關於先前記錄之細節,而僅保留序列元素之優勢。此係有利的,因為HSM可藉由較低記憶體能力進行操作。
HSM可經組配以將對應於序列參數之值保留在非依電性記憶體中,從而使得在功率循環(亦即,斷電接著通電)後值仍可用於存取。若HSM外部無一者能夠修改對應於序列參數之值,則將係有利的。若可修改對應於序列參數之值的唯一方式為經由提交新記錄之所描述方法,則將係進一步有利的。
回應於判定在該序列中序列元素在序列中之位置比該值在序列中之位置遠,處理器進一步經組配以自記憶體移除以下各者中的一或多者:與值相關聯之任何經解密資訊;及與值相關聯之任何經加密資訊。
記錄可進一步包含標識符,其中序列元素與標識符相關聯;且處理器進一步經組配以:藉由該標識符查詢記憶體,以判定儲存在記憶體中的與標識符相關聯之序列元素參數的值。
驗證可包含判定在該序列中序列元素在序列中之位置是否比該值在序列中之位置遠。
規劃資訊可包含經解密資訊。
處理器可經組配以處理該經解密資訊以生成經處理解密資訊,並將經處理解密資訊輸出至規劃模組。
處理器可進一步經組配以藉由使用經解密資訊執行一或多個密碼操作來處理該經解密資訊,以生成該經處理解密資訊。
回應於判定在該序列中序列元素在序列中之位置並不比該值在序列中之位置遠,處理器可經組配以拒絕該記錄且不解密該經加密資訊。
處理器可進一步經組配以:自與該記錄相關聯之一方接收藉由在該序列中具有比該值靠前之位置的靠前序列元素替換記憶體中之該值的經簽署指令;使用儲存在記憶體中之簽署密鑰來驗證經簽署指令;回應於驗證該經簽署指令:使用靠前序列元素更新與序列元素參數相關聯之值。
處理器進一步經組配以:自與該記錄相關聯之一方接收驗證指定序列元素之經簽署指令,該指定序列元素在該序列中具有並不比該值在序列中之位置遠的序列位置;使用儲存在記憶體中之簽署密鑰來驗證經簽署指令;回應於驗證該經簽署指令:驗證該指定序列元素。
處理器可經組配以:接收重設安全資料處理裝置之指令;回應於接收到該指令而生成隨機數; 使用隨機數修改密碼密鑰以獲得經修改密碼密鑰;及在記憶體中藉由經修改密碼密鑰替換密碼密鑰。
序列元素可包含以下各者中的一或多者:數字;字母;及非文數字字符。
記憶體可為非依電性記憶體。
序列可為一系列遞升數字,且該驗證可包含判定序列元素是否大於該值。
序列可為一系列遞減數字,且該驗證可包含判定序列元素是否小於該值。
記錄可進一步包含安全資料處理裝置標識符,其標識出經組配以自規劃模組接收記錄之安全資料處理裝置,且處理器可進一步經組配以:回應於判定安全資料處理裝置標識符匹配儲存在記憶體中之安全資料處理裝置標識符而驗證序列元素。
序列元素可包含批次編號及裝置編號,其中批次編號對應於待規劃之一批可規劃裝置且裝置編號對應於該批可規劃裝置中之單個裝置。
序列元素可包含附加有該裝置編號之批次編號。
記錄可經簽署,且處理器可進一步經組配以使用儲存在記憶體中之簽章驗證密鑰來驗證簽章。
記錄可自規劃模組接收到。
標識符可標識出待由規劃模組規劃的一種類型之可規劃裝置。
標識符可標識出與可規劃裝置相關聯之產品。
根據本發明之另一態樣,提供一種電腦實施方法,該方法實施於安全資料處理裝置上且包含:接收包含用於佈建一種類型之可規劃裝置的至少一個指令集之指令碼,至少一個指令集中之每一者定義待由安全資料處理裝置執行之一或多個密碼操作,一或多個密碼操作中之每一者參考參數;將指令碼儲存在安全資料處理裝置之記憶體中;自該記憶體擷取第一授權密鑰並使用第一授權密鑰驗證與指令碼相關聯之簽章,其中指令碼由指令碼之產生器簽署;自與該處理器通訊之規劃機的規劃模組接收規劃請求,該規劃請求請求對可規劃裝置進行規劃且標識出該指令碼中之至少一個指令集中的指令集;對於標識出的指令集中之一或多個密碼操作中之每一者,判定密碼操作中參考之參數的值並使用該值執行密碼操作;及回應於執行一或多個密碼操作中之每一者,將規劃資訊輸出至規劃模組以用於規劃可規劃裝置。
根據本發明之另一態樣,提供一種電腦可讀儲存媒體,其包含在由安全資料處理裝置之處理器執行時使安全資料處理裝置執行本文中所描述之方法步驟的指令。
指令可提供於載體上,該載體諸如磁碟、CD-或DVD-ROM、諸如唯讀記憶體(韌體)之經規劃記憶體,或提供於資料載體上,該資料載體諸如光或電氣信號載體。用以實施本發明之實施例的程式碼(及/或資料)可包含呈諸如C之習知規劃語言(經解譯或經編譯)之源、對象或可執行程式碼,或組合程式碼、用於設置或控制ASIC(特殊應用積體電路)或FPGA(場可規劃閘陣列)之程式碼,或用於硬體描述語言之程式碼。
此等及其他態樣將自以下描述之實施例顯而易見。本發明之範疇既不意欲限於此概述,亦不意欲限於必定解決所提到之任何或所有缺點的實施方式。
較佳實施例之詳細說明
現將僅借助於實例描述實施例。
圖1示出包含耦接至網路106(例如,網際網路)之組配檔案產生器114的系統100。組配檔案產生器114產生組配檔案。在產生組配檔案期間,組配檔案產生器114可與OEM 102通訊。OEM 102可創建資料檔案。
安全資料處理裝置提供商110向第一製造方103提供用於在其可為工廠或其他類型之生產設施的製造環境104中使用的安全資料處理裝置112(本文中另外稱為「硬體安全模組」,其可簡稱為「HSM」)。
第一製造方103可在其自身規格下製造可規劃裝置。替代地,第一製造方103可代表呈原始設備製造商(OEM)102形式之第二製造方102製造可規劃裝置,在此等情境中第一製造方103充當合同製造商。
下文參考如下情境描述實施例:OEM 102與合同製造商103簽訂代表OEM製造可規劃裝置的合同,然而,將瞭解,此僅僅為實例且本文中所描述之安全資料處理裝置112可由第一製造方103以替代性方式採用。
安全資料處理裝置112經組配以耦接至定位於製造環境104中之規劃機,此情況在圖2中示出。
如圖2中所示,製造環境104包含安全資料處理裝置112及規劃機202。
安全資料處理裝置112經組配以耦接至規劃機202。安全資料處理裝置112可借助於有線連接耦接至規劃機202。替代地,安全資料處理裝置112可具有介面,從而使得該介面可***規劃機202上之合適介面中。
規劃機202包含經組配以規劃可規劃裝置之規劃模組204。換言之,規劃機將軟體、密碼密鑰及其他數位資訊輸入或「規劃」至可規劃裝置206之記憶體上。可規劃裝置206可例如為矽晶片、微處理器或微控制器。
儘管圖2中為簡單起見示出單個可規劃裝置206,但規劃機202能夠在規劃操作期間規劃數千個可規劃裝置206。
安全資料處理裝置112經組配以經由有線或無線通訊鏈路接收組配檔案213。組配檔案213由組配檔案產生器114生成。較佳地,安全資料處理裝置112自組配檔案產生器114接收組配檔案213,但可替代地自OEM 102、第一製造方103或另一方(未示出)接收組配檔案213。視情況,安全資料處理裝置112可發送確認接收到組配檔案之回復。該回復可為已接收到組配檔案之純粹確認,或可含有例如指示組配檔案無效之錯誤消息。組配檔案可能為無效的,因為不存在與組配檔案相關聯之可接受授權。組配檔案無效之其他原因為組配檔案不完整,亦即存在資訊缺失,此意謂安全資料處理裝置112無法使用組配檔案來回復請求208。
安全資料處理裝置112經組配以經由有線或無線通訊鏈路接收資料檔案216。資料檔案216由OEM 102生成。較佳地,安全資料處理裝置112自OEM 102接收資料檔案216,但可替代地自例如組配檔案產生器114之另一方接收資料檔案216。
在載入至規劃機202中後,可規劃裝置206與規劃模組204通訊。
規劃模組204經組配以將請求208傳輸至安全資料處理裝置112。請求208可為對規劃可規劃裝置206所需之規劃資訊的請求。回應於請求208,安全資料處理裝置112經組配以判定如何滿足請求208,及是否滿足請求208。回應於此等判定,安全資料處理裝置112經組配以將回復212發送至規劃模組204。若請求208為對規劃可規劃裝置之請求,則回復212可包含規劃機202規劃可規劃裝置206所需之資訊(亦即,規劃資訊),或指示安全資料處理裝置112已拒絕發送所需規劃資訊之拒絕消息。
圖3示出安全資料處理裝置112之方塊圖。
安全資料處理裝置112可具有防止未經授權方篡改安全資料處理裝置112或自其獲得資訊之實體限制。安全資料處理裝置112包含CPU 314、規劃介面316、控制介面306及記憶體312。控制介面306經組配以接收組配檔案。通訊可為有線或無線的。控制介面306可進一步經組配以接收資料檔案。規劃介面316經組配以自規劃機202接收請求。通訊可為有線或無線的。
記憶體312可包含OEM展開密鑰322。OEM展開密鑰322由佈建模組320使用,以解密資料檔案216中已由OEM 102使用OEM加密密鑰(未示出)加密之任何加密(「包覆」)值。OEM加密密鑰及OEM展開密鑰322可為非對稱密鑰對,替代地,可使用對稱密鑰方法。例如,OEM展開密鑰322可用於解密圖5中之值「wrappedVal」。
記憶體312包含產生器授權密鑰323a。產生器授權密鑰323a由簽章驗證模組318使用以驗證所接收組配檔案213。記憶體312可進一步包含OEM授權密鑰323b,其由簽章驗證模組318使用以驗證所接收資料檔案216。本說明書中稍後將論述此過程之其他細節。
CPU 314耦接至規劃介面316、控制介面306及記憶體312。CPU 314包含簽章驗證模組318,其可驗證例如組配檔案213及資料檔案216之簽章。CPU 314包含佈建模組320,其經組配以對自規劃機202接收到之請求作出回應。佈建模組320在對自規劃機202接收到之請求作出回應時可執行的操作之非限制性實例為簽署憑證、加密資訊及解密資訊。大體而言,安全資料處理裝置112可包含處理能力,包括基於硬體之密碼加速。安全資料處理裝置112經組配以經由控制介面306接收資料檔案216及組配檔案213,將資料檔案216及組配檔案213儲存在記憶體中,且驗證每一檔案之簽章鏈(簽章必須良好,且憑證鏈鏈接回到可信憑證),接著檢查資料檔案216中已(由OEM)提供之元資料408中的所有所需項。安全資料處理裝置112僅在檢查良好時繼續。 圖4示出實例組配檔案213及資料檔案216。組配檔案213包含指令碼檔案406及視情況選用之元資料檔案408。在此意義上,組配檔案可劃分成兩個邏輯部分:
1) 元資料檔案408指定參數424。參數可與(i)值(可能經加密),(ii)至安全資料處理裝置112的用以生成參數值之指令,或(iii)至安全資料處理裝置112的用以***來自資料檔案216之OEM資訊430的參數值之指令相關聯。換言之,參數424可為對資料檔案216中(具體而言OEM資訊430處)可找到之資料的參考,若為此情況,則由安全資料處理裝置112讀取元資料檔案408。
2) 指令碼檔案406包含一或多個指令集412,每一指令集定義待由安全資料處理裝置112在可規劃裝置之佈建期間執行的一或多個密碼操作。每一密碼操作參考一或多個參數。參數值可定義於指令碼406中(含有在資訊區塊「基於指令碼之參數值414」中)。替代地,參數可定義於元資料408中(例如,「參數」424中)。指令集中之密碼操作的實例可為使用簽署密鑰來簽署憑證(藉由參考簽署密鑰參數之密碼操作),及將經簽署憑證***至可規劃裝置206之記憶體中的特定位置中。
組配檔案213藉由使用密碼完整性簽章(元資料完整性資訊426及指令碼完整性資訊416)在組配檔案產生器114與安全資料處理裝置112之間的行程上維持其完整性,以確保組配檔案213的任何部分(例如,一或多個指令集412、基於指令碼的參數值414及元資料408)在輸送中或駐存在製造環境104上時(例如,駐存在安全資料處理裝置112中時)不會被修改。組配檔案之完整性藉由組配檔案產生器114經指派有針對由組配檔案產生器114保存之「產生器簽署密鑰」的「產生器簽署憑證」來提供。「產生器簽署憑證」由屬於安全資料處理裝置提供商110之公用密鑰基礎架構(PKI)階層簽署,從而使得安全資料處理裝置112可驗證元資料完整性資訊426及指令碼完整性資訊416中之憑證鏈。例如,組配檔案產生器114將創建秘密密鑰(例如,在可信平台模組TPM內部),且接著生成憑證簽署請求(CSR)。CSR由組配檔案產生器114發送至經授權註冊機構(RA)以創建產生器憑證。RA將在向安全資料處理裝置112之PKI階層提供憑證之前確保組配檔案產生器114經授權。RA可為安全資料處理裝置112 PKI階層,或替代地可交叉認證到安全資料處理裝置112 PKI階層,但可提供授權給PKI階層之憑證。此為有利的,因為其防止任何未經授權方創建或修改組配檔案213。在組配檔案213不包含元資料408之實施例中,組配檔案之完整性由指令碼完整性資訊416維持。
在未提供元資料之實施例中,安全資料處理裝置112可經組配以接收指令碼406而非組配檔案213。在其他實施例中,安全資料處理裝置112經組配以單獨地接收元資料408及指令碼406。
換言之,在實施例中,組配檔案產生器114使用產生器簽署密鑰來簽署整個組配檔案312。簽章驗證模組318可使用產生器授權密鑰323a驗證簽章。
另外或替代地,組配檔案產生器114可使用指令碼簽署密鑰來簽署指令碼406以產生指令碼完整性資訊416,且接著單獨地使用元資料簽署密鑰來簽署元資料408以產生元資料完整性資訊426。在實施例中,元資料簽署密鑰及指令碼簽署密鑰為相同密鑰(且因此可被稱為產生器簽署密鑰),且因此簽章驗證模組318可使用產生器授權密鑰323a來驗證元資料完整性資訊426及驗證指令碼完整性資訊416。在其他實施例中,元資料簽署密鑰及指令碼簽署密鑰為不同密鑰,在此等實施例中,記憶體312包含單獨的元資料授權密鑰及指令碼授權密鑰,其分別用以驗證元資料完整性資訊426及指令碼完整性資訊416。
可單獨地加密組配檔案213之部分(例如,一或多個指令集412、基於指令碼之參數值414、參數424)以遮蔽內容。有利地,此使得攻擊者較難以在輸送中理解,接著試圖修改組配檔案213。在此情況下,記憶體312將包含「產生器展開密鑰」(未示出),以解密已由組配檔案產生器114使用「產生器包覆密鑰」加密之組配檔案中的任何資訊。在元資料408包含與值相關聯之參數,而非與用以獲得或生成參數值之指令相關聯的參數之實施例中,此情況尤其有利。若組配檔案產生器114使用「產生器包覆密鑰」加密參數值,則增大了安全性。在此實施例中,記憶體312將需要「產生器展開密鑰」(未示出)以解密經加密參數值。「產生器包覆密鑰」及「產生器展開密鑰」可利用對稱或非對稱密碼術以實現加密。加密指令碼(及/或元資料)之優勢為隱藏用於佈建(規劃)可規劃裝置206之佈建機制的智慧財產權。此為有利的,因為惡意第三方可能夠自指令碼(具體而言一或多個指令集)推斷佈建機制之智慧財產權。
在實施例中,元資料408之作用為定義與OEM資訊430中所含有之值相關聯的參數,其中OEM已將參數值注入資料檔案216中。參數可與密鑰、憑證、憑據、可信公用密鑰及其他所需資料相關聯,以:一旦可規劃裝置206已經規劃,即支援可規劃裝置206之唯一認證;及/或安全地升級可規劃裝置206之應用軟體。OEM可直接將OEM資訊430(對於OEM可為唯一的)提供至資料檔案216上,或可將OEM資訊430提供至製造環境104以用於最終***至安全資料處理裝置112上。在實施例中,組配檔案及資料檔案216由安全資料處理裝置112接收為一個檔案。在其他實施例中,組配檔案及資料檔案216由安全資料處理裝置112單獨地接收,圖2中示出此實施例。
資料檔案216亦可具有由OEM添加之資料檔案完整性資訊432。資料檔案216可由OEM 102使用OEM簽署密鑰來簽署以產生資料檔案完整性資訊432。簽章驗證模組318可藉由使用儲存在記憶體312中之OEM授權密鑰323a來驗證資料檔案完整性資訊432。另外或替代地,資料檔案完整性資訊432可為授權OEM 102用於安全資料處理裝置112之憑證鏈。
可使用由OEM保存之OEM加密密鑰(未示出)「包覆」OEM資訊430中所含有的一些參數值。安全資料處理裝置(112)可藉由使用儲存在記憶體312中之OEM展開密鑰322來解密任何OEM資訊430。此為有利的,因為僅目標安全資料處理裝置112可展開並使用任何「經包覆」OEM資訊,此係因為該安全資料處理裝置112具有OEM展開密鑰322。在實施例中,由安全資料處理裝置112使用對稱密鑰來包覆OEM資訊,且因此OEM展開密鑰322為相同於OEM加密密鑰之密鑰。在其他實施例中,使用非對稱密鑰方法,且因此OEM展開密鑰322為私用密鑰且OEM加密密鑰為對應公用密鑰。
組配檔案213由組配檔案產生器114創建。作為實例,組配檔案產生器114藉由定義已在一或多個指令集214之一或多個操作中引入的參數424來設計元資料檔案408。組配檔案產生器114進一步設計在GUI中呈現與參數424相關之選項的方法,其中呈現是指在OEM 102正創建資料檔案216時向OEM 102進行呈現。換言之,當OEM 102正創建資料檔案216時,OEM可運行元資料408以確保資料檔案216及元資料408將一起起作用。在實施例中,元資料408可提供通常在創建資料檔案216時向OEM 102提供輔助之視覺指示符及提示。在實施例中,指令集之操作指示(安全資料處理裝置112之)佈建模組320使用參數值,以便佈建一或多個可規劃裝置(206)。有利地,指令集可將參數424之使用約束為僅指令集內被禁止的操作。
當組配檔案產生器114完成用於:新類型之可規劃裝置(例如,可規劃裝置之新「模型」);新OEM;及/或新用途的指令碼檔案406(及視情況選用之元資料408)時,完成之指令碼檔案(與可選元資料408一起)形成新組配檔案213。
組配檔案產生器114接著簽署組配檔案213以保護其完整性,從而防止其被第三方修改。在一個實施例中,組配檔案產生器114簽署整個組配檔案。
另外或替代地,可簽署指令碼檔案406(指令碼完整性資訊416),且可簽署元資料408(元資料完整性資訊426)。更詳細地,經簽署指令碼檔案406給定有可來自指令碼檔案406之雜湊值的標識(指令碼標識符410)。指令碼標識符410在簽署元資料408之前包括於元資料408中,從而因此有利地提供元資料408與指令碼檔案406之間的鏈接。元資料408之簽署為元資料完整性資訊426。因此,在此實施例中,組配檔案產生器(114)之簽章單獨地應用至元資料408及指令碼檔案406,然而,在實施例中,組配檔案產生器(114)之簽章應用為元資料408及指令碼檔案406兩者之單個簽章。
圖4示出作為標頭附加至元資料408及指令碼406之元資料標識符418及指令碼標識符410。儘管圖4中示出此情況,但此為可選特徵,且元資料標識符418及指令碼標識符410可並不作為標頭附加至元資料408及指令碼406。
在完成簽署過程時,組配檔案產生器114使用例如保存在可信平台模組內之產生器簽署密鑰,且由X.509憑證之階層授權。組配檔案產生器114使用之憑證階層鏈接回到由安全資料處理裝置提供商110提供之可信憑證,或作為組配檔案之值得信任憑證的存放在安全資料處理裝置112中之憑證。
組配檔案213可包含在所有範圍及目的上皆唯一的組配檔案標識符440,其可用於在目錄及清單中以及在製造期間在製造環境104內標識組配檔案213。可藉由驗證簽章、元資料及指令碼兩者之憑證鏈,以及指令碼及元資料之雜湊來自組配檔案驗證此標識符之完整性。組配檔案標識符440可為經簽署元資料之雜湊,此為有利的,因為經簽署元資料408包含指令碼標識符410(其可為指令碼檔案之雜湊或其他參考)。因此,具有作為經簽署元資料之雜湊的組配檔案標識符440意指組配檔案標識符440與元資料408及指令碼檔案406兩者相關。
若組配檔案標識符440為經簽署元資料之雜湊,則組配213檔案不必包含如440處所示之單獨組配檔案標識符,而是可替代地依賴於元資料標識符418(如圖4中(項418)示出為至元資料408之標頭)作為組配檔案標識符。換言之,在元資料標識符418待為組配檔案標識符之情況下,可不存在如440中所示之單獨組配檔案標識符。組配檔案標識符可為在演算法上生成的(例如,使用經簽署內容之SHA-256雜湊),替代地,組配檔案標識符明確地包括於經簽署內容中。此確保在未進行偵測之情況下無法修改組配檔案標識符。
關於資料檔案216,OEM 102可使用OEM簽署密鑰來簽署資料檔案213。OEM簽署密鑰由OEM 102保存。OEM簽署密鑰可由安全資料處理裝置112可使用OEM授權密鑰323b驗證之憑證鏈支援。經簽署資料檔案示出為資料檔案完整性資訊432。檔案完整性資訊432由安全資料處理裝置112驗證,從而有利地確保可無法在輸送中或儲存中成功地修改資料檔案216,而不會使資料檔案完整性資訊432無效。資料檔案216含有組配檔案標識符440,其可為待與資料檔案一起使用之組配檔案的雜湊或指紋。同樣,組配檔案可由組配檔案產生器114簽署,從而使得安全資料處理裝置110可可靠地判定組配檔案中所含有之資訊尚未被篡改。
資料檔案216可包含產品標識符460。產品標識符460可用於接收到提供增強型安全性之記錄的實施例中,如稍後論述。產品標識符460可被稱為規劃請求產品標識符。
方塊圖5示出實例組配檔案213、實例資料檔案216及實例規劃器指令碼542。
在圖5中,指令碼406包含統示為412之三個指令集:528、530及532(例如,「method1」528、method2 530及「method3」523)。在實施例中,指令碼406可包含單個指令集。指令集包含一或多個操作(未示出)。操作包含一或多個參數。安全資料處理裝置112可以各種方式獲得每一參數之值,該等方式包括: ‧ 接收請求208中之參數值。如上文所陳述,請求208可為對規劃可規劃裝置206之請求。 ‧ 使用指令碼中所含有的將值與參數相關聯之資訊(圖4中示出為資訊區塊「基於指令碼之參數值」414,但「基於指令碼之參數值」414中可儲存有多於一個值)來獲得參數值。 ‧使用元資料408中之資訊來獲得參數值。元資料408包含將參數與以下中之任一者相關聯之資訊: - 值, - 用於安全資料處理裝置112生成值之指令;及 - 用以注入來自資料檔案216之值的指令。 例如,參數520「keyId1」與用於安全資料處理裝置112生成參數「keyId1」之值的指令相關聯,此相關聯由緊鄰「keyId1」之文本「經生成」示出。此進一步反映在資料檔案216中之512處,其示出參數「keyId1」待為「經生成」。在另一實例中,參數「keyId2」522與用以注入來自資料檔案216之值的指令相關聯。此相關聯由緊鄰「keyId2」522之文本「經注入」表示。待注入之值可在514處看到,其示出「keyId2」等於已由OEM 102在資料檔案216之創建期間***的「wrappedVal」。另一實例為參數「Cert1」522,其為定義憑證之參數。在此實例中,與「Cert1」522相關聯之憑證含有在元資料中(未明確地示出,而是替代地由緊鄰「Cert1」522之「…」表示)。另一實例為參數「Value1」,在此實例中,參數「Value1」與元資料中所含有的值相關聯(圖5中未明確示出值,而是替代地由「Value1」右側之「…」表示)。資料檔案中之一或多個敏感密鑰(例如,與參數「keyId2」514相關聯之值「wrappedVal」)將由OEM使用OEM加密密鑰包覆,且可由安全資料處理裝置112藉由使用OEM展開密鑰322來解密。
元資料408亦可給出呈現資訊(圖5中未示出),從而使得可使用軟體工具來生成合適的輸入資訊(例如,告知OEM 102每一密鑰用於何內容)。元資料408可具有允許針對每一可規劃裝置206變化對多個可規劃裝置206之規劃的簡單變數,例如變數可說出可規劃裝置206中是否佈建有1或3個秘密密鑰且需要按需要鍵入值。
指令碼檔案406包含一組指令集412,其包含一或多個指令集(528、530、532中之每一者為指令集),每一指令集具有一或多個操作(未示出),其可使用簡單規劃語言以提供靈活的資料操縱,且使用良好定義的API以准許對密鑰、憑據、憑證、簽章及驗證進行操作。有利地,API防止組配檔案產生器存取及顯露不應曝露之密鑰及秘密。
作為上文所論述之簽署操作的部分,元資料408以密碼方式結合至指令碼406(示出為箭頭538)(亦即,元資料408包含指令碼標識符410,其中指令碼標識符可為經簽署指令碼檔案之雜湊)。類似地,指令碼檔案406可藉由包含規劃器指令碼標識符534來參考規劃器指令碼542,此鏈接由箭頭540示出。規劃器指令碼542並不實施於112上,而是替代地意欲由規劃機202,較佳在規劃模組204上運行。例如,在圖5中所示之實施例中,規劃器指令碼542包含可由規劃模組204運行之裝置***偵測常式544及「用於裝置佈建之調用序列546」。類似地,且如參考圖4在別處更詳細地所提到,組配檔案以密碼方式結合至資料檔案216(如以箭頭536示出),因為資料檔案216在由OEM 102簽署資料檔案之前包含組配檔案標識符440(其可為元資料標識符418)。
元資料408中之每一參數可與(i)值(可能經加密),(ii)用以生成參數值之指令,或(iii)用以***來自資料檔案216之參數值的指令相關聯。參數可明確地與值相關聯,或陳述為待生成之值(例如,520),或陳述為待自資料檔案216注入之值(例如,522)。參數可表示非對稱公用或私用密鑰(520、522)(亦即,對稱秘密)、憑據、模板憑證、憑證(524)、值(526、527),及並非秘密的但佈建裝置所需的資料(未示出)。僅當資料檔案216提供元資料408所需之所有參數值時,才認為資料檔案216為完整的。所需參數可取決於408之內容而變化(例如424):例如一個元資料檔案408可將一個參數作為密鑰,而另一元資料檔案可將3個參數定義為密鑰。秘密及私用密鑰可使用安全資料處理裝置112之OEM展開密鑰322以經包覆格式提供,從而使得僅目標安全資料處理裝置112可展開秘密及私用密鑰。
資料檔案中定義的參數中之一或多者(例如,「keyId2」514)的值(例如,「keyId2Value 552」)可由OEM 102使用HSM包覆密鑰550(另外稱為OEM加密密鑰)包覆。此操作在「包覆」操作554中示出,其中使用「HSM包覆密鑰」550(另外稱為OEM加密密鑰)來加密值「keyID2Value」552。經包覆「keyID2Value」552等於資料檔案之「wrappedVal」。安全資料處理裝置112具備使得安全資料處理裝置112能夠打開任何經包覆值之OEM展開密鑰322。「HSM包覆密鑰」550可為對稱密鑰,在此情況下,安全資料處理裝置112具備對應對稱密鑰(亦即,OEM展開密鑰322)。替代地,HSM包覆密鑰550可為包覆密鑰對之公用密鑰,其中包覆密鑰對之私用密鑰(亦即,OEM展開密鑰322)安裝在安全資料處理裝置112上。
圖6為示出由安全資料處理裝置112在本發明之實施例中執行的步驟的示意性流程圖600。
指令碼可提供數個高層級方法鍵入點,每一點可需要由規劃模組204提供額外參數資料,例如規劃模組204可視需要自可規劃裝置206提取的新可規劃裝置206之序號。
由安全資料處理裝置112單獨地或彼此獨立地接收資料檔案216及組配檔案213(步驟602及608)。視情況且如圖6中所示,資料檔案係自OEM 102接收且組配檔案係自組配檔案產生器114接收。安全資料處理裝置112接著在步驟604、606、610中儲存並驗證資料檔案216及組配檔案213兩者。在其他實施例中,安全資料處理裝置112可並不儲存資料檔案216,而是替代地將資料檔案216儲存在別處且安全資料處理裝置112僅僅存取資料檔案216。
視情況,由安全資料處理裝置112自OEM 102接收佈建可規劃裝置206之指令。
在步驟612處,安全資料處理裝置112自規劃機202接收指示新可規劃裝置206準備待佈建之一指示。規劃機202之規劃模組204將調用指令碼406(如由規劃器指令碼542所判定)中之指令集528,同時向安全資料處理裝置112提供任何必要參數資料。儘管圖600示出已由規劃機202首先調用「method1」,但在實施例中,可由規劃機202首先調用諸如「method2」530或「method3」之其他指令集。安全資料處理裝置112接收(612)對指令集(及請求中所含有之任何參數資料)的請求,並執行由彼指令集陳述之操作(614)。此可涉及如下操作,例如將模板憑證之憑證主題共同名稱欄位修改為裝置序號,接著簽署裝置憑證,接著將待規劃至可規劃裝置206中之憑證提供回(616、618)到規劃機。
在實施例中,且取決於規劃特定可規劃裝置所需之複雜度,安全資料處理裝置112可接收到對其他指令集之若干調用,如步驟620中所示。在此實例中,第二指令集調用(620)將為驗證可規劃裝置206是否已正確佈建之請求。回應於接收到請求620,安全資料處理裝置112運行對應於請求之指令集(622)並傳回回應(624)。
在另一實施例中,第一請求包含在可規劃裝置206內載入及運行初始化可規劃裝置206以用於安全操作的程式之請求,並進一步在可規劃裝置206內創建可規劃裝置206外部未知之私用密鑰。在此實施例中,接著可在安全資料處理裝置112與可規劃裝置206上運行之程式之間安全地傳達第二請求,從而因此允許安全資料處理裝置112直接將加密值傳遞至可規劃裝置206上運行之程式以完成佈建,而不存在規劃機能夠判定安全資料處理裝置112與可規劃裝置206之間傳輸之資料的風險。
有利地,使用組配檔案允許OEM 102信任製造環境104以穩定方式製造重複產品。製造環境104可安裝設備(亦即,安全資料處理裝置112),且接著能夠使用同一設備來佈建在安裝該設備(亦即,安全資料處理裝置112)時甚至不可用的新可規劃裝置206。使用組配檔案描述之方法允許發生此情況。
對於特定IoT裝置,組配檔案之創建可由有經驗之安全訓練產生器執行以滿足特定OEM佈建要求。如所描述,組配檔案用於在製造期間佈建新IoT裝置。
如所描述,安全資料處理裝置112藉由檢查完整性簽章是否良好來驗證組配檔案,且憑證鏈將產生器之憑證鏈接回到安全資料處理裝置112製造商之憑證或若干可信憑證(諸如根憑證)中之一者。
規劃模組可指示存在待佈建之新可規劃裝置206,其可能提供關於可規劃裝置206之一些資訊(諸如序號及公用密鑰)。此可被視為在安全資料處理裝置112內調用(指令碼之)指令集,且可引起安全資料處理裝置112處理資訊並將憑據提供到規劃模組204以佈建可規劃裝置206。可藉由指令集將一或多個消息傳回至規劃模組204。規劃模組204可調用額外指令集,例如驗證指令集以確保可規劃裝置206被正確佈建。此驗證指令集可向可規劃裝置206給出質詢,並使用安全資料處理裝置112內保存之秘密及密鑰來驗證回應。初始指令集可用於驗證可規劃裝置206為新的空可規劃裝置206且尚未被佈建。
如上文所描述,元資料檔案及資料檔案可用於規劃多個可規劃裝置。例如,資料檔案中所含有之值可經規劃至多個可規劃裝置上。
在實施例中,處理器可進一步接收一記錄。記錄包含僅規劃至一個可規劃裝置上而非規劃至多個可規劃裝置上之資訊,如下文更詳細地解釋,借助於記錄中所含有之序列元素控制此情況。處理器進一步接收一記錄之實施例可進一步防止可規劃裝置之仿製生產。在一個實施例中,在處理器接收規劃請求(例如請求208)之前,在安全資料處理裝置112處接收到記錄。在另一實施例中,回應於接收到規劃請求(例如,請求208),在安全資料處理裝置112處請求並接收記錄。下文更詳細地描述此情況。
OEM 102可在其自身設施或安全室中創建或獲得多個每裝置憑據。例如,此可係自商業憑證機構,或自其自身之憑證機構或使用標準HSM創建或獲得。OEM 102個別地準備每裝置記錄(每裝置一個記錄),其中秘密或機密項已加密至特定工廠HSM包覆密鑰,從而使得僅可在意圖接收記錄之特定HSM上展開秘密。OEM 102可在記錄中包括唯一序列號(例如自1開始遞增),及待與記錄相關聯使用之指令碼及/或資料檔案及/或組配檔案之標識。OEM 102亦可藉由其自身之秘密非對稱密鑰個別地簽署記錄。公用密鑰經安全地給出到HSM。
通常,HSM接收用於佈建每一可規劃裝置之個別記錄。HSM驗證出記錄已由OEM 102簽署,且展開記錄中所含有的任何經加密資訊,此係由於僅HSM具有展開密鑰。在實施例中,HSM藉由比較記錄中之序列元素與其自身序列計數,例如其大於最後使用的序列元素,驗證出之前尚未使用該序列元素。若驗證失敗,則HSM拒絕使用記錄中之憑據來佈建裝置。若驗證成功,則其使用記錄憑據,從而視需要展開秘密以佈建可規劃裝置。
有利地,由於序列元素無法再用,因此OEM 102防止工廠104偶然地或有目的地將記錄中之憑據多於一次地用於一個裝置。
提供憑據之總權限屬於OEM 102而非工廠104,因此,有利地,OEM 102甚至不必需要信任工廠104來保持其秘密,因為工廠104無法在所選產品上多次使用來自每一記錄之憑據。
工廠104可在單獨生產記錄中傳回其已佈建之每一裝置的序列元素(且若使用,則為一批序列元素),HSM可簽署該等記錄以證明已使用特定記錄。
此有利地使得OEM 102能夠進一步安全地向第三方工廠104(亦即簽訂合同以製造其產品)提供個別每裝置憑據,同時已知工廠104無法仿製額外裝置。此類優勢可能係因為工廠104無法在沒有明確OEM授權之情況下再用OEM之每裝置憑據。
在實施例中,OEM 102針對其簽署之每一可規劃裝置創建個別「記錄」,其可包括加密內容。記錄包含唯一序列元素及產品標識符,以及視情況包含以下中之任一或多者:資料檔案標識符;組配檔案標識符;元資料標識符;指令碼標識符;及HSM標識。就此而言,記錄中包含之資訊可僅用於規劃一次可規劃裝置。因此,儘管不存在需要將記錄之資訊規劃至特定(亦即,唯一)可規劃裝置上之要求,但存在記錄中之資訊僅可規劃至一個可規劃裝置上之要求(此為涉及序列元素之方法的效果)。換言之,一個記錄無法用於規劃多個可規劃裝置。例如,若存在兩個記錄A及B以及兩個可規劃裝置i及ii,則記錄A可用於規劃可規劃裝置i或ii。記錄A無法用於規劃可規劃裝置i及ii。類似地,記錄B可用於規劃可規劃裝置i或ii。進一步類似地,記錄B無法用於規劃可規劃裝置i及ii。換言之,記錄可用於規劃單個但非特定可規劃裝置。
圖7示出安全資料處理裝置112之實施例,其中處理器314包含經組配以生成一或多個隨機數之隨機數生成模組340。替代地,隨機數生成模組340可在處理器314外部,但仍在安全資料處理裝置112上,使得隨機數生成模組340與處理器314通訊。替代地,隨機數生成模組340可定位於外部裝置上,且處理器314可經由介面306及/或316自此外部裝置接收隨機數。
在圖7中所示之實施例中,包含序列記憶體區塊350。序列記憶體區塊350儲存一或多個序列條目。圖7示出序列記憶體區塊350儲存兩個序列條目——第一序列條目352及第二序列條目354之實例。第一序列條目352包含第一產品標識符356及第一序列元素參數358,其中第一產品標識符356相關聯於及/或對應於第一序列元素參數358。類似地,第二序列條目354包含第二產品標識符360及第二序列元素參數362,其中第二產品標識符360相關聯於及/或對應於第二序列元素參數362。產品標識符(例如,第一產品標識符356及第二產品標識符360)可例如對應於資料檔案、所接收記錄、規劃請求及指令集中找到之產品標識符。
儘管圖7示出序列記憶體區塊350能夠儲存多個序列條目,但在實施例中,序列記憶體區塊350可儲存單個序列值。
圖7示出不具有相關聯值之序列元素參數358。然而,在實施例中,序列記憶體區塊350可一起儲存序列元素參數358及相關聯值,或替代地,可僅儲存處理器經組配以讀取為與序列元素參數相關聯之值的值。類似地,第一產品標識符356可儲存為具有用於產品標識符之相關聯值的標記或參數,替代地,記憶體可僅僅儲存值。在實施例中,第一序列條目352可儲存為處理器314經組配以讀取為具有相關聯序列元素值之產品標識符的兩個數字的陣列。
產品標識符356及360中之每一者可與不同資料檔案相關聯。以此方式,安全資料處理裝置112能夠有效地儲存規劃許多不同類型之產品所需的資訊,其中產品與資料檔案相關聯。安全資料處理裝置112能夠藉由儲存產品標識符356及序列元素參數358有效地儲存與先前用於特定裝置之規劃操作相關的歷史資料,而非儲存用於一種類型的裝置(亦即,用於根據特定組配檔案佈建之裝置)之先前佈建規劃資訊的整個目錄。
記憶體312可另外儲存安全資料處理裝置標識符364。安全資料處理裝置標識符364為唯一地標識安全資料處理裝置112,且可用以區分安全資料處理裝置112與其他安全資料處理裝置(例如,可定位於與安全資料處理裝置112相同之工廠中的裝置)之唯一標識符。使用此安全資料處理裝置標識符364實現資訊至安全資料處理裝置之更高效路由,以及提供較多安全性。
符合如圖3中所示之先前所論述實施例,記憶體312儲存具有如關於圖3所描述之相同功能的密碼密鑰322、323a及323b。
圖8示出實例記錄800。
記錄包含序列元素802,其可包含以下各者中的一或多者:一或多個字母;一或多個數字;及一或多個其他字符。序列元素為序列之元素。在一些實施例中,序列元素802為饋送至雜湊函數中之序列元素之輸出。在其他實施例中,序列元素802為明文的,例如呈純文本或數字。
記錄亦包含產品標識符812。產品標識符812可與產品類型,例如電子裝置之類型相關聯。記錄在記憶體區塊350中儲存有多於單個條目之實施例中可包含產品標識符812。
在實施例中,處理器314經組配以接收參考指令集之規劃請求,該指令集繼而參考資料檔案。指令集可參考元資料檔案,其繼而參考資料檔案。所參考資料檔案包含產品標識符460,其可被稱為規劃請求產品標識符460,因為如所解釋,產品標識符460由規劃請求直接地或間接地參考。處理器314經組配以擷取具有對應於規劃請求產品標識符460之產品標識符的記錄。例如,處理器可經組配以藉由規劃請求產品標識符460查詢記憶體,以判定具有對應於規劃請求產品標識符460之產品標識符的記錄是否儲存在記憶體312中,且若如此,則存取彼記錄。若此記錄並不儲存在記憶體312中,則處理器314可經組配以自規劃機請求具有對應於規劃請求產品標識符460之產品標識符的記錄。
不論處理器314如何擷取記錄,處理器皆擷取具有對應於規劃請求產品標識符460之產品標識符812的記錄。處理器314經組配以查詢記憶體312以判定與產品標識符812相關聯之序列元素參數的值。值及相關聯產品標識符可統稱為序列條目。序列元素802與產品標識符812相關聯,且產品標識符812由處理器314處理以判定序列元素802參考何序列(及/或為何序列的部分)。類似於序列元素802,產品標識符812可包含以下各者中的一或多者:一或多個字母;一或多個數字;及任何其他字符或符號中之一或多者。
視情況,記錄可包含安全資料處理裝置標識符364。安全資料處理裝置標識符364對應於圖3中之安全資料處理裝置標識符112,且可由例如定位於工廠中之路由機使用,以有效且快速地將記錄路由至預期安全資料處理裝置102。在每日處理許多記錄的包含許多安全資料處理裝置之工廠中,此情況可尤其有利。然而,在包含單個或幾個安全資料處理裝置之工廠中,安全資料處理裝置標識符364可能並不那麼有利(相比於具有許多安全資料處理裝置之工廠),因為可手動地進行路由。在僅存在單個安全資料處理裝置之情況下,路由僅僅需要將記錄發送至工廠中之單個安全資料處理裝置,且因此可省略安全資料處理裝置標識符364。
記錄包含經加密資訊808。大體而言,經加密資訊808為OEM及/或記錄之創建者認為不希望被攔截器攔截及判定之敏感資訊的資訊。此經加密資訊之實例為密碼密鑰、密碼憑證、裝置之原始程式碼或其他敏感資訊。如圖5中先前關於與參數「keyId2」514相關聯之「wrappedVal」所描述,可使用HSM包覆密鑰550包覆(亦即,加密)經加密資訊808,且可由安全資料處理裝置112藉由使用OEM展開密鑰322來解密該經加密資訊。替代地,可使用儲存在記憶體312中之又一對稱密鑰或非對稱密鑰對來加密/解密經加密資訊808。經加密資訊包含待規劃至僅一個可規劃裝置上之每裝置資訊。
記錄可另外包含未經加密資訊806。未經加密資訊806可為最終規劃至可規劃裝置206上之資訊,及/或可為關於如何佈建可規劃裝置206的至安全資料處理裝置102之指令。未經加密資訊806可指諸如待由處理器314執行之密碼操作指令的其他操作。例如,且參考圖5,未經加密資訊806可包含分別對應於參數「Value1」、「Cert1」及「keyId1」之「val1」、「certificateval」及「經生成」值。如圖8中所示,記錄亦可包含OEM完整性簽章432(圖5中所示)。記錄可包含不同於可由OEM 102簽署之OEM完整性簽章432的簽章(未示出)。不論準確的簽章如何,記錄皆可包含可由安全資料處理裝置112驗證之簽章。
圖9示出在由處理器314接收到記錄時執行之操作。如下文將更詳細地解釋,在第一實施例中,在處理器314接收到請求使用記錄之規劃請求之前接收到記錄。在第二實施例中,處理器314接收到請求使用記錄之規劃請求,回應於此,處理器314傳輸對記錄之請求(例如,至規劃機202)。
圖9示出由安全資料處理裝置102之處理器314進行之實例程序900的流程圖,除了圖6中所示之程序之外可執行該實例程序,該程序900由處理器314回應於接收到記錄而執行。
除了圖6中所示之程序提供的安全性益處(例如,藉由驗證憑證鏈提供之安全性益處)之外,圖9之程序在併入至圖6中所示之程序中時提供進一步安全性優勢。此安全性優勢之實例為工廠較難以生產仿製裝置,因為每一可規劃裝置係藉由每裝置資訊進行規劃。
程序900在步驟902處開始,其中處理器314接收記錄。
回應於處理器在步驟902處接收到記錄,處理器314經組配以執行數個操作。
在步驟904處,處理器314查詢記憶體312之序列記憶體區塊350,以判定儲存在序列記憶體區塊350中之序列元素參數的值。
在一些實施例中,序列記憶體區塊350可包含諸如序列條目352及序列條目354之多個序列條目,在此等實施例中,使用產品標識符812以判定用於驗證記錄之正確值。在此等實施例中,處理器314自所接收記錄讀取產品標識符812,且藉由產品標識符812查詢記憶體204之序列記憶體區塊350,以判定儲存在序列記憶體區塊350中的與產品標識符812相關聯之序列元素參數的值。
在實施例中,產品標識符812對應於先前由處理器314接收之資料檔案中的產品標識符。在實施例中,處理器314經組配以查詢記憶體以判定用於驗證記錄之對應值。在此實施例中,處理器314可能已在接收到記錄之前或大約同時接收到包含產品標識符之資料檔案,且因此已儲存(所接收資料檔案之)產品標識符及產品標識符之對應值。
在步驟906處,處理器314使用所接收記錄之序列元素802及儲存在序列記憶體區塊350中的與產品標識符812相關聯之序列元素參數來驗證所接收記錄之序列元素802。取決於所接收記錄之序列元素802為其部分之序列,處理器314可在步驟906處以數個不同方式執行序列元素之驗證。然而,大體而言,處理器藉由判定序列元素802(亦即,所接收記錄中之序列元素)相比對應於例如358之序列元素參數之值是否在序列中靠後來驗證序列元素。因此,處理器可經組配以判定序列中在序列元素參數358之值之後的元素,且判定序列元素802是否匹配該之後元素。然而,在一些實施例中,所接收序列元素802可並非序列中直接在對應於序列元素參數358之值之後的元素,而實際上可在該序列中超出序列元素參數358之值多個步進。在任一實例中,處理器可判定序列中在對應於序列元素參數之值的任一側的多個元素。
作為實例,序列可為以遞升次序遞增1之一序列數字,且序列元素參數358可具有值5,產品標識符356可具有值「產品A」。若所接收記錄中之產品標識符812具有值「產品A」,則處理器在藉由產品標識符812查詢記憶體之後,將判定序列條目352為所接收記錄之相關序列條目,因為記錄中之產品標識符812對應於產品標識符356(而非例如產品標識符360,其在此實例中具有值「產品B」)。一旦處理器已判定值352為所接收記錄之相關值,處理器經組配以判定對應於序列元素參數358之值等於5。若例如所接收記錄中之序列元素802具有值6,則處理器判定所接收序列元素802的值對應於序列中比序列元素參數之值更遠的元素,換言之,處理器判定6為一系列遞升數字中比5靠後的元素。在此實例中,處理器可能夠藉由執行諸如僅僅判定序列元素802大於序列元素參數358的值之計算來判定所接收序列元素802在序列中比序列元素參數358的值靠後,因為序列僅僅為簡單遞增1。
在其他實例中,序列可為不同函數而非遞增,且可例如為遞減序列。序列可為線性序列或非線性序列。序列可係線性增大的(或線性降低的),例如,線性序列可為每步進增大2之序列(亦即,2、4、6、8)。非線性序列可為遵循非線性函數(具有增大及/或降低之條目),例如二次函數之序列。例如,非線性序列可為增大之平方數序列:1、4、9、16……。另一實例可為指數函數(具有增大或降低之條目)。在非線性序列情況下,處理器可經組配以判定在序列元素參數358之值之後及/或之前的一或多個序列元素,且接著進一步判定序列元素802在序列中相比序列元素參數358之值靠後還是靠前。
不論使用的準確序列如何,在步驟908處,處理器314皆判定在步驟906中執行之驗證是否成功。
通常回應於接收到記錄而執行步驟904至908中之驗證。因此,步驟904至908中之驗證可分別在步驟604及610中之記錄及組配檔案(及/或指令碼檔案)之驗證之前、之後或其間執行。例如,處理器可經組配以在驗證例如資料檔案之憑證鏈之前或之後驗證序列元素。
在步驟910處,若驗證並不成功,則處理器102經組配以拒絕記錄且不解密記錄中所含有的任何資訊。在此情境下,處理器可經組配以執行其他步驟,諸如在記憶體204中儲存指示已接收到不成功的規劃資訊請求之資訊。在其他實例中,回應於判定驗證並不成功,處理器可經組配以將消息傳輸至例如OEM 102或規劃機,藉此向此方或裝置告知驗證尚未成功。有利地,若處理器經組配以回應於判定驗證不成功而將消息發送至OEM 102,則OEM 102可知道工廠正試圖惡意創建仿製裝置。此可係有利的,因為其使得OEM 102能夠相比其他規劃裝置方法在初期對此工廠採取動作。若處理器經組配以將驗證已不成功之指示輸出至工廠,則在非惡意試圖規劃可規劃裝置之情況下,此可有利於工廠,因為驗證資料可能係由於規劃錯誤或路由錯誤而非惡意試圖創建仿製裝置而不成功。此有利於與工廠相關聯之各方,因為其允許各方在規劃進行之初期知道任何規劃或路由錯誤。
若驗證成功,則程序900繼續進行至步驟912,其中處理器經組配以解密記錄中找到之經加密資訊。在實施例中,解密(亦即,步驟912)可進一步取決於步驟606及/或610之驗證。因此在實施例中,若未驗證例如組配檔案213及資料檔案216之簽章,則可並不進行步驟912。
處理器可經組配以將經解密資訊直接輸出至規劃機以用於規劃至可規劃裝置206上。另外或替代地,經解密資訊可由處理器在輸出至規劃機之前進行處理。例如,處理器可經組配以使用諸如創建密鑰及/或憑證之密碼操作中使用之經解密資訊,且進一步經組配以將隨後處理之經解密資訊傳輸至規劃機以用於規劃至可規劃裝置206上。另外或替代地,並非為例如待用於密碼操作中之密碼密鑰,經解密資訊可實際上為用於由處理器執行之指令。此類指令可為創建密鑰或簽署憑證。其他形式之經加密資訊可為OEM將不希望攔截器能夠以明文讀取的原始程式碼或其他敏感資訊。
在將後續記錄載入HSM上後(且進一步視情況在解密後續記錄後),處理器可經組配以毀壞與先前儲存的記錄相關之任何先前資訊。例如,處理器可經組配以移除與先前記錄相關之資訊(例如,密鑰及憑據),並藉由來自新記錄之新資訊(例如,密鑰及憑據)替換此資訊(例如,密鑰及憑據)。接著可使用新資訊(例如,密鑰及憑據)來佈建下一可規劃裝置。有利地,此操作節省HSM 104中之記憶體空間。進一步有利地,此操作防止先前記錄之意外可用性,且因此限制攔截器可獲得之資訊。
在步驟914處,處理器經組配以將與序列元素參數358相關聯之值更新為序列元素802。處理器可進一步經組配以移除儲存在記憶體中的參考與序列元素參數相關聯之先前值的任何其他資訊,亦即與值相關聯之任何資訊。此有利地釋放安全資料處理裝置102之記憶體中的空間,且進一步防止先前記錄之可用性,從而因此降低惡意攻擊之損害。
在步驟916處,處理器經組配以將規劃資訊傳輸至規劃機,例如規劃機上之規劃模組,以用於規劃至可規劃裝置上。此規劃資訊係至少基於已解密之記錄中的經加密資訊808。規劃資訊可包含經解密資訊,或替代地,處理器314可在將經解密資訊輸出至規劃機之前對其進行處理。規劃資訊可另外基於記錄中之未經加密資訊806。
關於步驟916之時序,可或可不回應於接收到記錄及後續記錄驗證而輸出規劃資訊。下文更詳細地描述此情況。
步驟914及步驟916可以可互換次序執行及/或可同時執行。
步驟916可對應於例如圖6之步驟618。
程序900之最終結果使安全資料處理裝置112處於與安全資料處理裝置112在程序900開始之前的狀態大致相等之狀態,但具有序列元素參數之更新值。在此意義上,程序900為循環程序,藉此安全資料處理裝置112具有包含在程序之開始及結束處之一或多個序列條目的記憶體312。例如,處理器314接收記錄且判定記錄是否有效,且若有效,則對記錄執行數個操作(諸如解密),之後將規劃資訊輸出至規劃機。處理器接著更新用於驗證所接收記錄之值。
如上文所描述,圖9之程序由處理器回應於接收到記錄而執行。
在第一實施例中,處理器經組配以接收記錄並執行步驟902至914(步驟912在此階段為可選的),之後將記錄儲存在記憶體312中以供稍後使用。在此實施例中,並不緊接在步驟914之後執行步驟916。在此實施例中,處理器經組配以在未請求記錄之情況下接收記錄。換言之,記錄被「推送」至處理器而非由處理器「拉取」。所接收規劃請求中標識出之指令集指示處理器使用記錄來規劃可規劃裝置。指令集可並不指定待使用之準確記錄,而實際上指定需要使用記錄來規劃可規劃裝置。處理器314經組配以藉由使用規劃請求產品標識符判定待使用何記錄來規劃可規劃裝置。存在處理器可標識用於標識使用何記錄來規劃可規劃裝置之規劃請求產品標識符之多個方式,下文解釋此等方式。在此實施例中,處理器314判定相關記錄(如使用規劃請求產品標識符所判定)儲存在記憶體312中,因此處理器並不需要自別處請求記錄。亦即,處理器314基於標識出規劃請求產品標識符匹配所儲存記錄之產品標識符而自記憶體314擷取所儲存記錄。處理器314接著經組配以基於自記錄解密之資訊(在步驟912處),執行步驟916並將規劃資訊輸出至規劃機202。
在替代實施例中,所接收規劃請求中標識出之指令集指示處理器使用記錄來規劃可規劃裝置,然而合適的記錄並不儲存在記憶體312中。處理器314經組配以標識規劃請求產品標識符。在此實施例中,在判定記憶體314不包含具有匹配規劃請求產品標識符之產品標識符的記錄後,處理器314經組配以請求記錄。在此意義上,由處理器314回應於判定合適的記錄並不儲存在記憶體中而「拉取」請求,而非將記錄「推送」至處理器。可請求並自規劃機或例如外部儲存裝置之別處接收記錄。在接收到記錄後,處理器314執行圖9中所示之程序900。將瞭解,在此實施例中,一旦已執行步驟914,即執行步驟916。
如上文所提到,存在處理器可標識用於標識使用何記錄來規劃可規劃裝置之規劃請求產品標識符的多個方式。
第一實例為當規劃請求包含規劃請求產品標識符時,且處理器經組配以讀取規劃請求以標識規劃請求產品標識符。
第二實例為當資料檔案包含規劃請求產品標識符時,且處理器經組配以存取資料檔案以標識規劃請求產品標識符。
第三實例為在由規劃請求標識之指令集包含規劃請求產品標識符之情況下,且處理器經組配以讀取指令集以標識規劃請求產品標識符。
有利地,希望使用外部憑證機構(CA)提供其裝置憑證(或其他機密資訊)之OEM 102可安全地提供每裝置記錄至工廠,且確定工廠無法使用機密資訊來創建仿製裝置。此增大了確保物聯網裝置之製造處理流程的安全性之效率。進一步有利地,本發明之實施例使得最終客戶能夠信賴其購買之可規劃裝置的安全性及真實性,且進一步有利地使客戶確信可規劃裝置並非來自質量較低的「灰色」市場及具有較差支援之仿製裝置。
本發明之實施例的優勢為OEM 102可在已知每裝置憑據僅可各自使用一次來創建單個裝置的情況下將憑據釋放至工廠。另外,若OEM 102正使用外部CA且已支付每一憑據,則OEM 102可向CA展現OEM 102僅可一次使用每一憑據。
若不按順序使用序列元素,則序列中將存在間隙。工廠資料庫將使得OEM 102能夠已知間隙,且可藉由稍後序列元素重新處理已支付項,從而使得可使用該等項(但僅由OEM 102使用,此係由於需要簽章)。來自間隙內之先前記錄根本無法被工廠使用,因為對應於HSM中儲存之序列參數的值已超過先前記錄中所含有之序列元素。
OEM 102可創建並簽署指令以准許重新注入一或多個舊記錄,或將對應於序列參數之值重設為特定值:OEM 102負責在此處經由其簽署來更動仿製保護。此為有利的,因為每一記錄可包含已由例如憑證機構之第三方產生之憑證(或其他密碼項,諸如密鑰)。OEM 102可已支付由CA產生之憑證中之每一者。在一些情況下,(無論是由於錯誤還是有目的地進行)對應於序列參數之值可在規劃一個可規劃裝置與規劃另一可規劃裝置之間跳過序列中之多個步進。例如,在簡單遞增序列之情況下,第一記錄可具有等於1之序列元素,一批記錄中可存在數千其他記錄,其中每一後續記錄具有遞增1之序列元素(亦即,可存在2000條記錄,其中序列元素以1開始且以2000結束)。可由HSM接收第一記錄(具有序列元素1),由HSM接收的之後記錄可(由於錯誤或其他原因)具有序列元素1000。HSM將恰當地處理此記錄(因為1000大於1)且接著將序列參數更新為等於1000。在本發明之實施例中,HSM並不允許將對應於序列參數之值改變為序列中靠前之值。此將意謂OEM損失了中間記錄中(例如,包含序列條目2至999之記錄中)所含有的憑證及密鑰之成本。然而,藉由在適當位置具有可回應於自OEM接收到之可驗證指令而重設(及/或僅僅改變)序列參數之系統,OEM接著能夠使用中期記錄(例如,具有序列元素2至999之記錄)規劃裝置。因此,有利地,OEM並未損失與已支付且含有在中期記錄中之憑證及密鑰相關聯的成本。
在例外情況中,HSM可經歷所有其記憶體皆經重新初始化之全重設,從而因此損失記憶體中儲存之標識及序列參數。為防止此等情況下之仿製(亦即,藉由再引入先前使用的記錄),HSM可具有關於全重設之一些特殊功能性:其可使用隨機數生成器340來產生並儲存新隨機數,且使用此隨機數來修改解密密鑰且藉此獲得新密鑰。可因此將新密鑰標記為不同的。儘管對應於序列參數之值可已在重設後經置零(亦即,序列參數經設定為序列中之第零元素),但仍不可能載入先前使用之記錄。此係因為先前使用之記錄中的經加密資訊係藉由先前不同密鑰經加密。因此,新的經修改密鑰無法解密先前使用之記錄中找到的經加密資訊。在重設後,必須要求OEM重新加密記錄中之經加密資訊以用於新HSM加密密鑰。此有利地防止工廠(在無OEM之默許情況下)藉由僅僅執行全重設來創建仿製裝置。
可藉由使用基於遵循較簡單序列之基礎序列號的雜湊函數來遮蔽序列元素。此操作可藉由遮蔽產品數量資訊而有益於OEM。例如,並非HSM接收包含分別具有序列元素11、12及13之記錄的一批記錄,HSM可接收包含具有11、12及13之雜湊(可被稱為X、Y及Z)的序列元素之記錄的記錄。對於攔截記錄之攔截器,攔截器將僅僅看到X、Y及Z。有利地,因為X、Y及Z為11、12及13之雜湊值,所以攔截器將無法找到可用以判定基礎序列(亦即,增大一)之資訊,因為X、Y及Z將看起來為隨機不相關數字/字母,此係因為其為雜湊函數之輸出。另外,攔截器將不能夠判定記錄之數量,換言之,若攔截器看到未經雜湊序列元素11、12及13,則攔截器可能夠估計迄今已規劃大約10個裝置(因為序列元素現在為11)。類似地,若攔截器攔截到1001、1002及1003之序列元素,則攔截器可判定已規劃1000個可規劃裝置。藉由對序列元素進行雜湊,攔截器無法獲得此資訊。
OEM可藉由其自身之秘密非對稱密鑰個別地簽署記錄。公用密鑰經安全地給出到HSM。此導致出於密碼目的記錄為獨立的,且因此節省了HSM,而不必載入大量資料以檢查簽章。例如,若OEM簽署了包含一批100,000條記錄的檔案,則HSM將必須載入所有100,000條記錄以便驗證該批記錄之簽章。然而,若OEM個別地簽署每一記錄,則HSM可載入單個記錄、驗證單個記錄、處理記錄、移除記錄且接著載入下一記錄。有利地,此意謂藉由驗證單個記錄,HSM可更有效地操作,因為相比於HSM必須載入100,000條記錄之情況需要較少處理能力及記憶體。換言之,OEM可在記錄中包括唯一序列號(例如自1或某一其他值開始且遞增),及以僅具有OEM簽署密鑰之某方可如此操作之方式簽署的對應產品標識符。
雖然已參考較佳實施例特定示出及描述本發明,但熟習此項技術者應理解,在不脫離如由附屬申請專利範圍所定義的本發明之範疇的情況下可對形式及細節進行各種改變。
100:系統 102:原始設備製造商(OEM),第二製造方 103:第一製造方 104:製造環境,工廠 106:網路 110:安全資料處理裝置提供商 112:安全資料處理裝置 114:組配檔案產生器 202:規劃機 204:規劃模組 206:可規劃裝置 208:請求 212:回復 213:組配檔案 216:資料檔案 306:控制介面 312:記憶體 314:CPU,處理器 316:規劃介面 318:簽章驗證模組 320:佈建模組 322:OEM展開密鑰 323a:產生器授權密鑰 323b:OEM授權密鑰 340:隨機數生成模組 350:序列記憶體區塊 352:第一序列條目 354:第二序列條目 356:第一產品標識符 358:第一序列元素參數 360:第二產品標識符 362:第二序列元素參數 364:安全資料處理裝置標識符 406:指令碼檔案 408:元資料檔案 410:指令碼標識符 412,528,530,532:指令集 414:基於指令碼之參數值 416:指令碼完整性資訊 418:元資料標識符 424,514,520,522,524:參數 426:元資料完整性資訊 430:OEM資訊 432:資料檔案完整性資訊 440:組配檔案標識符 460,812:產品標識符 526,527,552:值 534:規劃器指令碼標識符 536,538,540:箭頭 542:規劃器指令碼 544:裝置***偵測常式 546:用於裝置佈建之調用序列 550:HSM包覆密鑰 554:「包覆」操作 600:流程圖 602,604,606,608,610,612,614,616,618,620,622,624,902,904,906,908,910,912,914, 916:步驟 800:記錄 802:序列元素 806:未經加密資訊 808:經加密資訊 900:程序
為較佳地理解本發明且示出可如何實施實施例,參考附圖,其中: 圖1為系統之示意性方塊圖; 圖2為與製造環境中之規劃機通訊之安全資料處理裝置的示意性方塊圖; 圖3為安全資料處理裝置之示意性方塊圖; 圖4為組配檔案及資料檔案之方塊圖; 圖5為由安全資料處理裝置接收之檔案的方塊圖; 圖6為示出由安全資料處理裝置執行之步驟的示意性流程圖; 圖7示出安全資料處理裝置; 圖8示出記錄之示意性方塊圖;且 圖9為根據本文中描述之實施例的由安全資料處理裝置執行以規劃可規劃裝置的程序的流程圖。
104:製造環境
112:安全資料處理裝置
202:規劃機
204:規劃模組
206:可規劃裝置
208:請求
212:回復
213:組配檔案
216:資料檔案

Claims (29)

  1. 一種安全資料處理裝置,其包含一處理器及耦接至該處理器的一記憶體,該處理器被組配成可進行下列作業:接收一指令碼,該指令碼包含用於佈建一類型之可遠端規劃裝置的至少一個指令集,該至少一個指令集各定義要由該安全資料處理裝置執行的一或多個密碼操作,該一或多個密碼操作各參照一參數;將該指令碼儲存在該記憶體中;自該記憶體擷取一第一授權密鑰,並使用該第一授權密鑰驗證與該指令碼相關聯的一簽章,其中,該指令碼係由該指令碼之一產生器簽署;自與該處理器通訊的一規劃機之一規劃模組接收一規劃請求,該規劃請求係要請求對一可遠端規劃裝置進行規劃,且識別該指令碼中之該至少一個指令集中的一指令集,其中,該規劃機係與該安全資料處理裝置分開的裝置,並且該可遠端規劃裝置係與該安全資料處理裝置分開且與該規劃機分開的裝置;對於所識別之該指令集中之該一或多個密碼操作中之各者,判定用於該密碼操作中所參照之該參數的一值,並使用該值來執行該密碼操作;以及因應於對該一或多個密碼操作中之各者之執行,將規劃資訊輸出至該規劃模組以用於規劃該可遠端規劃裝置,將額外規劃資訊輸出至該規劃模組以用於規劃一其他可遠端規劃裝置。
  2. 如請求項1之安全資料處理裝置,其中,對於所識別之該指令集中之該等密碼操作中之一或多者,該處理器被組配成可藉由自該規劃請求中提取出該值來判定用於該密碼操作中所定義之該參數的該值。
  3. 如請求項1之安全資料處理裝置,其中,對於所識別之該指令集中之該等密碼操作中之一或多者,該處理器被組配成可藉由自該指令碼中讀取出該值來判定用於該密碼操作中所定義之該參數的該值。
  4. 如請求項1之安全資料處理裝置,其中,該處理器被組配成可接收一組配檔案中之該指令碼及元資料,並且,對於所識別之該指令集中之該等密碼操作中之一或多者,該處理器進一步被組配成可藉由查詢該元資料來判定用於該密碼操作中所定義之該參數的該值。
  5. 如請求項4之安全資料處理裝置,其中,該元資料經簽署,且該處理器被組配成可使用該第一授權密鑰或一第二授權密鑰來驗證該元資料之一簽章。
  6. 如請求項5之安全資料處理裝置,其中,該元資料係由該指令碼之該產生器簽署。
  7. 如請求項4之安全資料處理裝置,其中,該簽章進一步與該元資料相關聯。
  8. 如請求項4之安全資料處理裝置,其中,該指令碼包含一唯一標識符,且該元資料包括對該指令碼之該唯一標識符的一參照。
  9. 如請求項4之安全資料處理裝置,其中,該元資料定義用於該參數之該值。
  10. 如請求項4之安全資料處理裝置,其中,該元資料定義了該值係要由該安全資料處理裝置生成,該處理器進一步被組配成可藉由生成該值來判定用於該參數之該值。
  11. 如請求項4之安全資料處理裝置,其中,該元資料定義了該值係要自一資料檔案取用,該處理器被組配成可進行下列作業:取用至少包含用於該參數之一值的該資料檔案;自該記憶體擷取出一第三授權密鑰,並使用該第三授權密鑰來驗證與該資料檔案相關聯的一簽章,其中,該資料檔案係由一製造方簽署;其中,該處理器進一步被組配成可基於查詢該資料檔案來判定用於該參數 的該值。
  12. 如請求項11之安全資料處理裝置,其中,該處理器被組配成可接收該資料檔案並將該資料檔案儲存在該記憶體中。
  13. 如請求項12之安全資料處理裝置,其中,該元資料包含一唯一標識符,且該資料檔案包括對該元資料之該唯一標識符的一參照。
  14. 如請求項12之安全資料處理裝置,其中,用於該參數之該值經加密,並且該處理器被組配成可藉由儲存在該記憶體中的一包覆密鑰來解密該值。
  15. 如請求項4之安全資料處理裝置,其中,該元資料經加密,並且該處理器被組配成可藉由儲存在該記憶體中的一密碼密鑰來解密該指令碼。
  16. 如請求項1之安全資料處理裝置,其中,該規劃模組根據一規劃器指令碼執行對該可遠端規劃裝置的規劃,該規劃器指令碼包含一唯一標識符,且該指令碼包含對該規劃器指令碼之該唯一標識符的一參照。
  17. 如請求項1之安全資料處理裝置,其中,該指令碼經加密,並且該處理器被組配成可藉由儲存在該記憶體中的一密碼密鑰來解密該指令碼。
  18. 如請求項1之安全資料處理裝置,其中,該安全資料處理裝置包含一硬體安全模組。
  19. 如請求項1之安全資料處理裝置,其中,該處理器被組配成可進行下列作業:接收一記錄,該記錄包含:一產品標識符;一序列元素;及 經加密資訊,其中,該序列元素與該產品標識符相關聯;使用該產品標識符來查詢該記憶體,以判定儲存在該記憶體中之用於與該產品標識符相關聯之一序列元素參數的一值,其中,該序列元素及用於該序列元素參數之該值為一序列之元素;使用該序列元素及用於該序列元素參數之該值來認證該序列元素,並因應於所作之認證而進行下列作業:將該記錄儲存在記憶體中;以及使用該序列元素來更新用於該序列元素參數之該值;其中,由該規劃請求所識別之該指令集指示該處理器使用一記錄來規劃該可遠端規劃裝置,該處理器進一步被組配成可進行下列作業:識別一規劃請求產品標識符;基於識別出該規劃請求產品標識符與所儲存之該記錄之該產品標識符匹配,而自記憶體擷取出所儲存之該記錄;使用儲存在該記憶體中的一密碼密鑰來將所儲存之該記錄之該經加密資訊解密,以獲得經解密資訊;將其他規劃資訊輸出至該規劃模組以用於規劃該可遠端規劃裝置,其中,該其他規劃資訊奠基於該經解密資訊。
  20. 如請求項1之安全資料處理裝置,其中,由該規劃請求所識別之該指令集指示該處理器使用一記錄來規劃該可遠端規劃裝置,該處理器進一步被組配成可進行下列作業:識別一規劃請求產品標識符;傳輸針對包含與該規劃請求產品標識符匹配之一產品標識符的一記錄的一請求; 接收一記錄,該記錄包含:該產品標識符;一序列元素;及經加密資訊,其中,該序列元素與該產品標識符相關聯;使用該產品標識符來查詢該記憶體,以判定儲存在該記憶體中之用於與該產品標識符相關聯之一序列元素參數的一值,其中,該序列元素及用於該序列元素參數之該值為一序列之元素;使用該序列元素及用於該序列元素參數之該值來認證該序列元素,並因應於所作之認證而進行下列作業:使用該序列元素來更新用於該序列元素參數之該值;使用儲存在該記憶體中的一密碼密鑰來將該記錄之該經加密資訊解密,以獲得經解密資訊;以及將其他規劃資訊輸出至該規劃模組以用於規劃該可遠端規劃裝置,其中,該其他規劃資訊奠基於該經解密資訊。
  21. 如請求項19或20之安全資料處理裝置,其中,該規劃請求包含該規劃請求產品標識符,並且該處理器被組配成可藉由讀取該規劃請求來識別該規劃請求產品標識符。
  22. 如請求項19或20之安全資料處理裝置,其中,該處理器被組配成可接收一組配檔案中之該指令碼及元資料,並且,對於所識別之該指令集中之該等密碼操作中之一或多者,該處理器進一步被組配成可藉由查詢該元資料來判定用於該密碼操作中所定義之該參數的該值;其中,該元資料定義了該值係要自一資料檔案取用,該處理器被組配成可進行下列作業: 取用至少包含用於該參數之一值的該資料檔案;自該記憶體擷取出一第三授權密鑰,並使用該第三授權密鑰來驗證與該資料檔案相關聯的一簽章,其中,該資料檔案係由一製造方簽署;其中,該處理器進一步被組配成可基於查詢該資料檔案來判定用於該參數的該值;其中,該資料檔案包含該規劃請求產品標識符,並且該處理器被組配成可藉由取用該資料檔案來識別該規劃請求產品標識符。
  23. 如請求項19或20之安全資料處理裝置,其中,該指令集包含該規劃請求產品標識符,並且該處理器被組配成可藉由讀取該指令集來識別該規劃請求產品標識符。
  24. 如請求項19之安全資料處理裝置,其中,該處理器進一步被組配成可藉由判定在該序列中該序列元素在該序列中之一位置是否比用於該序列元素參數之該值在該序列中之一位置遠來認證該序列元素。
  25. 如請求項19之安全資料處理裝置,其中,該處理器被組配成可自該規劃機接收該記錄。
  26. 如請求項20之安全資料處理裝置,其中,該處理器被組配成可將對於一記錄的該請求傳輸至該規劃機。
  27. 如請求項19之安全資料處理裝置,其中,因應於判定出在該序列中該序列元素在該序列中之該位置比該值在該序列中之該位置遠,該處理器進一步被組配成可自該記憶體中移除下列中之一或多者:與該值相關聯的任何經解密資訊;及與該值相關聯的任何經加密資訊。
  28. 一種電腦實施方法,該方法係要於一安全資料處理裝置上實施,且包含以下作業: 接收一指令碼,該指令碼包含用於佈建一類型之可遠端規劃裝置的至少一個指令集,該至少一個指令集各定義要由該安全資料處理裝置執行的一或多個密碼操作,該一或多個密碼操作各參照一參數;將該指令碼儲存在該安全資料處理裝置之一記憶體中;自該記憶體擷取一第一授權密鑰,並使用該第一授權密鑰驗證與該指令碼相關聯的一簽章,其中,該指令碼係由該指令碼之一產生器簽署;自與該處理器通訊的一規劃機之一規劃模組接收一規劃請求,該規劃請求係要請求對一可遠端規劃裝置進行規劃,且識別該指令碼中之該至少一個指令集中的一指令集,其中,該規劃機係與該安全資料處理裝置分開的裝置,並且該可遠端規劃裝置係與該安全資料處理裝置分開且與該規劃機分開的裝置;對於所識別之該指令集中之該一或多個密碼操作中之各者,判定用於該密碼操作中所參照之該參數的一值,並使用該值來執行該密碼操作;以及因應於對該一或多個密碼操作中之各者之執行,將規劃資訊輸出至該規劃模組以用於規劃該可遠端規劃裝置,將額外規劃資訊輸出至該規劃模組以用於規劃一其他可遠端規劃裝置。
  29. 一種包含指令之電腦可讀儲存媒體,該等指令在受一安全資料處理裝置之一處理器執行時,會致使該安全資料處理裝置進行以下作業:接收一指令碼,該指令碼包含用於佈建一類型之可遠端規劃裝置的至少一個指令集,該至少一個指令集各定義要由該安全資料處理裝置執行的一或多個密碼操作,該一或多個密碼操作各參照一參數;將該指令碼儲存在該安全資料處理裝置之一記憶體中;自該記憶體擷取一第一授權密鑰,並使用該第一授權密鑰驗證與該指令碼相關聯的一簽章,其中,該指令碼係由該指令碼之一產生器簽署;自與該處理器通訊的一規劃機之一規劃模組接收一規劃請求,該規劃請求 係要請求對一可遠端規劃裝置進行規劃,且識別該指令碼中之該至少一個指令集中的一指令集,其中,該規劃機係與該安全資料處理裝置分開的裝置,並且該可遠端規劃裝置係與該安全資料處理裝置分開且與該規劃機分開的裝置;對於所識別之該指令集中之該一或多個密碼操作中之各者,判定用於該密碼操作中所參照之該參數的一值,並使用該值來執行該密碼操作;以及因應於對該一或多個密碼操作中之各者之執行,將規劃資訊輸出至該規劃模組以用於規劃該可遠端規劃裝置,將額外規劃資訊輸出至該規劃模組以用於規劃一其他可遠端規劃裝置。
TW109104520A 2019-02-22 2020-02-13 安全資料處理裝置(二) TWI840506B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
GBGB1902470.2A GB201902470D0 (en) 2019-02-22 2019-02-22 Security data processing device
GB1902470.2 2019-02-22
GB1908939.0 2019-06-21
GB1908939.0A GB2582673B (en) 2019-02-22 2019-06-21 Security data processing device

Publications (2)

Publication Number Publication Date
TW202038120A TW202038120A (zh) 2020-10-16
TWI840506B true TWI840506B (zh) 2024-05-01

Family

ID=

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140044265A1 (en) 2012-08-10 2014-02-13 Cryptography Research, Inc. Secure feature and key management in integrated circuits

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140044265A1 (en) 2012-08-10 2014-02-13 Cryptography Research, Inc. Secure feature and key management in integrated circuits

Similar Documents

Publication Publication Date Title
US11824847B2 (en) Device programming with system generation
US11361087B2 (en) Security data processing device
US11743054B2 (en) Method and system for creating and checking the validity of device certificates
CN110088759B (zh) 用于可编程设备的统一编程环境
US10268844B2 (en) Embedding foundational root of trust using security algorithms
US9602282B2 (en) Secure software and hardware association technique
US9281949B2 (en) Device using secure processing zone to establish trust for digital rights management
US8966248B2 (en) Secure software file transfer systems and methods for vehicle control modules
US9430658B2 (en) Systems and methods for secure provisioning of production electronic circuits
US11218299B2 (en) Software encryption
RU2601862C2 (ru) Способ, аппарат и устройство обработки шифрования и дешифрования
CN103460195A (zh) 用于安全软件更新的***和方法
JP2013514587A (ja) 証明書失効リストを用いたコンテンツ管理方法
EP3772008A1 (en) Device programming with system generation
US20160277182A1 (en) Communication system and master apparatus
US11516024B2 (en) Semiconductor device, update data-providing method, update data-receiving method, and program
TWI840506B (zh) 安全資料處理裝置(二)
GB2584909A (en) Security data processing device
WO2024110319A1 (en) Secure provisioning of a programmable device
WO2021076118A1 (en) Generating keys