新四季網

對稱密鑰和信任鏈的製作方法

2023-08-07 19:50:36 2


本公開涉及設備安全,並且更具體地涉及允許在證明器設備中不存在重要安全基礎設施的情況下的應用及數據安全。



背景技術:

隨著規避現有安全措施的新策略的繼續出現,防止惡意的軟體或「惡意軟體」危及各個設備正在變得日益困難。例如,惡意軟體(諸如「rootkit」)可能通過在設備初始化過程中被加載來危及設備安全性。因此,這些rootkit可以維持在設備中的特權級別,所述特權級別甚至超過了反病毒軟體的特權級別。可信執行(txt)是可以維護從初始化開始的安全的至少一種安全概念。在txt中,可信平臺模塊(tpm)可以維護設備內的安全存儲器中的已知良好程序的「測量結果」(例如,由對程序代碼的至少一部分執行的密碼散列函數生成的結果)。因為程序被加載到設備中,因此可以對它們進行測量以便判定是否已經加載了所述程序的已知良好版本。所述程序的任何變化都將產生不同的測量結果,這指示所述程序可能是惡意軟體或者至少是已經被惡意軟體更改的原始程序的版本。在一個實施例中,還可以建立「信任鏈」,其中,每個程序對後續加載的程序進行測量以便確保所述鏈中的所有程序是已知良好的程序。

雖然對阻止未授權訪問是有效的,但是txt可能需要資源(諸如安全協處理器、安全存儲器等)以便經由非對稱加密密鑰來支持證明。這類資源可以易於用於更穩健的平臺中,諸如臺式計算機、膝上型計算機以及甚至行動裝置(像平板計算機和智慧型電話)。然而,現在正在開發可能不包括這些資源但可能仍然易於受到惡意軟體危及的設備。例如,小規格設備(諸如可穿戴設備)、傳感器和/或可以取決於能量採集(例如,針對可用源生成其自身的能量,諸如機械能、太陽能等)的設備可以包括計算資源,所述計算資源可能僅足夠強大以維持針對其而設計設備的操作。在沒有開啟可以經由tpm、txt等實現的安全措施(諸如完整性上報(例如,用於驗證程序是所述程序的已知良好的版本)以及密封(例如,用於保護軟體秘密,諸如加密密鑰))的低級保護方案的情況下,檢測惡意軟體是否已經危及到資源受限設備並且因此防止所述資源受限設備上的所述惡意軟體感染所述資源受限設備可以與其進行交互的其他計算設備可以是可能的。

附圖說明

所要求保護的主題的各個實施例的特徵和優點將隨著以下具體實施方式進行並且通過參照附圖變得明顯,其中,相同的數字指代相同的部件,並且在附圖中:

圖1展示了根據本公開的至少一個實施例的用於對稱密鑰和信任鏈的示例系統;

圖2展示了根據本公開的至少一個實施例可用的驗證器設備和證明器設備的示例配置;

圖3展示了根據本公開的至少一個實施例的對稱密鑰分配的示例;

圖4展示了根據本公開的至少一個實施例的遠程證明的示例;

圖5展示了根據本公開的至少一個實施例的用於從驗證器的角度的對稱密鑰和信任鏈的示例操作;

圖6展示了根據本公開的至少一個實施例的用於從證明器的角度的對稱密鑰和信任鏈的示例操作;

圖7展示了根據本公開的至少一個實施例的導出密封密鑰的示例;

圖8展示了根據本公開的至少一個實施例的用於使用信任鏈密鑰導出來密封數據的示例操作;以及

圖9展示了根據本公開的至少一個實施例的用於在系統中使用信任鏈密鑰導出來處理軟體更新的示例操作。

雖然以下具體實施方式將參考說明性實施例進行,但是許多替代方案、修改及其變體將對本領域的技術人員而言是明顯的。

具體實施方式

本申請涉及對稱密鑰和信任鏈。在一個實施例中,證明器設備可以與驗證器設備進行通信以便對所述證明器設備的身份、在所述證明器設備上執行的應用或由在所述證明器設備上執行的所述應用提供的數據進行認證。可以在兩個階段中發生所述證明器設備與所述驗證器設備之間的交互。所述驗證器設備可以初始地發布對所述證明器設備的身份進行認證的質詢,這則可能導致對稱證明密鑰被存儲在所述證明器設備和驗證器設備上。所述質詢可能涉及所述證明器設備至少向所述驗證器設備提供密鑰數據和票數據,所述驗證器設備則可以至少向鑑定器(例如,與所述證明器設備的製造商、經銷商、銷售者相對應的至少一個設備)提供所述票數據。如果已經對所述票數據進行了識別,則所述鑑定器可以向所述驗證器設備傳輸授權令牌,從而允許使用所述密鑰數據在所述驗證器中設置所述對稱證明密鑰並且然後向所述證明器進行確認。所述對稱證明密鑰可以由所述證明器設備在建立信任鏈時採用,所述信任鏈可以用於在所述驗證器設備質詢試圖訪問所述驗證器設備的應用的真實性、由所述證明器設備中的應用提供數據的真實性等時做出響應。例如,所述對稱證明密鑰可以用於生成第一級密鑰,所述第一級密鑰進而可以用於生成程序密鑰。質詢響應可以至少包括程序密鑰數據,所述程序密鑰數據可以由所述驗證器設備利用所述對稱證明密鑰來進行認證。

在一個實施例中,可以充當驗證器的設備可以包括例如通信模塊以及可信執行環境(tee)。所述tee可以至少包括:證明模塊,所述證明模塊用於:檢測證明觸發;判定是否至少基於所述證明觸發利用證明器設備發起對稱密鑰分配操作或遠程證明操作;以及基於所述判定利用所述證明器設備發起對稱密鑰分配操作或遠程證明操作中的至少一項。

可以例如周期性地或者由於經由所述通信模塊來訪問從所述證明器設備接收的資源的請求而觸發證明。所述通信模塊可以經由短距離無線連接或直接有線連接中的至少一項與所述證明器設備進行交互。所述證明模塊用於利用所述證明器設備來發起所述對稱密鑰分配操作可以包括所述證明模塊用於使所述通信模塊:將設備質詢傳輸至所述證明器設備;以及經由所述通信模塊從所述證明器設備接收對所述設備質詢的響應,所述響應至少包括密鑰數據和票數據。所述證明模塊然後可以進一步用於使所述通信模塊:至少將所述票數據傳輸至至少一個鑑定器設備;經由所述通信模塊從所述至少一個鑑定器設備接收響應;以及判定從所述鑑定器設備接收的所述響應是否包括授權令牌。在一個實施例中,所述設備可以進一步包括:防火牆,所述通信模塊通過所述防火牆與所述至少一個鑑定器設備進行交互,所述防火牆至少用於防止所述設備與所述至少一個鑑定器設備之間的非預期交互。所述證明模塊可以進一步用於:如果確定已經接收到授權令牌,則至少基於所述密鑰數據設置對稱密鑰;以及使所述通信模塊將所述對稱密鑰已經被設置的確認傳輸至所述證明器設備。

在相同或不同的實施例中,所述證明模塊用於利用所述證明器設備發起所述遠程證明操作包括所述證明模塊用於使所述通信模塊:將應用質詢傳輸至所述證明器設備;經由所述通信模塊從所述證明器設備接收對所述應用質詢的響應,所述響應至少基於計數器數據、代碼測量數據以及程序密鑰數據被生成;對所述響應進行認證;以及使所述通信模塊至少將所述認證結果傳輸至所述證明器設備。所述證明模塊用於對所述響應進行認證可以包括例如:所述證明模塊用於認證所述響應是使用消息認證代碼基於所述對稱密鑰而生成的。一種與本公開一致的、用於使用對稱密鑰來進行遠程證明的示例方法可以包括:檢測證明觸發;判定是否至少基於所述證明觸發利用證明器設備發起對稱密鑰分配操作或遠程證明操作;以及基於所述判定利用所述證明器設備發起對稱密鑰分配操作或遠程證明操作中的至少一項。

圖1展示了根據本公開的至少一個實施例的用於對稱密鑰和信任鏈的示例系統。系統100可以包括例如證明器102、驗證器104和鑑定器106。通常,驗證器104可以與鑑定器106合作以便對證明器102、在證明器102上運行的應用、由證明器102提供的數據等進行認證。證明器102可以是能夠與如圖1中所展示的驗證器設備104進行交互的任何設備。有利地但非必要地,關於系統100所公開的操作可以允許證明器102為:以其他方式將不能夠支持現有證明方案的資源有限設備(例如,有限的處理功率、能量存儲等),諸如穿戴設備(例如,智能手錶、眼鏡、服裝等);可植入設備(例如,用於監測特定醫療狀況的設備);依賴能量採集(例如,機電發電、太陽能等)的設備;傳感器設備;致動器設備等。驗證器104可以包括具有更重要的計算資源的設備,所述設備可以能夠例如經由基於txt、tdm等的保護方案來維護安全。驗證器104的示例可以包括但不限於:基於來自谷歌公司的os、來自蘋果公司的來自微軟公司的os、來自蘋果公司的macos、來自linux基金會的tizenos、來自mozilla項目的firefoxos、來自黑莓公司的os、來自hewlett-packard公司的os、來自symbian基金會的os等的移動通信設備,諸如蜂窩手持機或智慧型電話;移動計算設備,諸如來自蘋果公司的來自微軟公司的來自三星公司的galaxy來自亞馬遜公司的kindle等的平板計算機;包括由英特爾公司製造的低功率晶片組的上網本、筆記本、膝上型計算機、掌上型計算機等;通常固定的計算設備,諸如臺式計算機、伺服器、智能電視、小形狀因子計算解決方案(例如,適用於空間有限的應用、tv機頂盒等),像來自英特爾公司的下一代計算單元(nuc)平臺等。鑑定器106可以是用於對證明器102的身份進行鑑定的實體,並且這樣可以例如是證明器102的製造商、證明器102的零售商或分銷商等。在一個實施例中,鑑定器106可以包括驗證器104經由有線或無線通信可訪問的至少一個設備。例如,鑑定器106可以包括經由網際網路可訪問的至少一個伺服器(例如,以雲計算配置組織的)。在此為了解釋的目的,可以用於設想系統100的示例現實世界應用可以包括用於監測用戶的生理表現的至少一個可穿戴傳感器(例如,證明器102),所述可穿戴傳感器無線地耦合至用戶口袋中的智慧型電話(例如,驗證器104),所述智慧型電話經由無線網際網路鏈路與所述至少一個可穿戴傳感器(鑑定器106)的製造商進行通信。

已知的證明解決方案可以包括:將經鑑定的公鑰嵌入到驗證器104可以在認證時基於非對稱密鑰使用的證明器102中的可信執行環境(tee)中(例如,在來自可以與證明器102的所述tee直接進行交互的驗證器106的輔助下)。假定執行橢圓曲線密碼學(ecc)點乘可消耗低端cpu上的大量處理資源並且現有協議通常需要多於一個的這種操作,則現有的解決方案對於資源受限設備來說可能太慢且成本高(例如,其可能採取三次用於利用完全散列的menezes-qu-vanstone(fhmqv)協議來建立會話密鑰的點乘)。

相應的對稱解決方案(例如,使用高級加密標準-基於密碼的消息認證碼(aes-cmac))可能快許多倍,但是需要使得鑑定器106能夠對所述tee進行認證的共享對稱認證密鑰。雖然在這兩種方式中,鑑定器106可以受到所有各方的信任,但是允許鑑定器106參加密鑰協商意味著鑑定器106可稍後用於對證明器102進行人格化並且向驗證器104假冒證明。這種脆弱性在與本公開一致的實施例中得到了解決,其中,驗證器104可以在密鑰交換過程中隔離證明器102以便防止與鑑定器106進行交互。結果,驗證器104和證明器102可對密鑰(所述密鑰可得到授權但並非由鑑定器106導出)進行協商,並且因此可以在防假冒時是安全的。

與本公開一致,驗證器104可以發起至少兩類操作:對稱密鑰分配108以及遠程證明112。例如,對稱密鑰分配108涉及交互,所述交互引起對稱密鑰的分配以供證明器102和驗證器104在遠程證明112過程中使用。初始地,驗證器104可以向證明器102發布設備質詢108a。設備質詢108a可以是質詢證明器102以「證明」其身份的消息。設備質詢108a可以由各種事件觸發,諸如例如驗證器104的激活、設備104中的周期性觸發、來自證明器102的訪問驗證器104上的資源的請求、接收由證明器102在驗證器104處提供的數據等。證明器102可以入在108b處示出的對驗證器104進行響應,所述響應至少包括密鑰數據和票數據。所述密鑰數據可以允許驗證器104確認響應消息108b是從證明器102接收的並且至少可以包括由證明器102生成的對稱密鑰,所述對稱密鑰可以稍後在對稱密鑰分配108過程中被設置在驗證器104中。所述票數據可以由如用於對證明器設備102的身份進行認證的鑑定器106的實體來使用。驗證器104然後可以如在108c處示出的至少將所述票數據轉發至鑑定器106。在一個實施例中,驗證器104可以受到防火牆110的保護,所述防火牆例如防止區域網(lan)、廣域網(wan)(像網際網路)、全球域網(gan)等侵入到個域網(pan)、體域網(ban)等中,至少包括證明器102和驗證器104。防火牆110可以物理地或邏輯地防止證明器102與鑑定器106或除驗證器104之外的其他多方之間的非預期交互。因此,可以向驗證器104確保所部署的對稱密鑰僅對證明器102和驗證器104是已知的,而對防火牆110之外的其他多方不是已知的。在相同或不同的實施例中,驗證器104與鑑定器106之間通過防火牆110的信道可以是用於確保正在交換的數據不被攔截的安全信道。如以上所討論的,被轉發至鑑定器106的信息可以限於用於確保鑑定器106不具有對證明器102進行人格化所需的全部數據的所述票數據(例如,僅對證明器102的身份進行驗證所需的數據)。

鑑定器106至少可以利用用於對證明器102進行認證的所述票數據(例如,以便確保另一設備未正在對證明器102進行人格化)。例如,所述票數據可以包括製造商數據、模型數據、序列號、建造日期和/或專用驗證數據,所述數據可以用於驗證證明器102實際上是由鑑定器106提供(例如,製造、配置、分配、銷售等)的產品)。如果確定證明器102是真實的,則可以如在108d處示出的將至少包括授權令牌的響應從鑑定器106傳輸至驗證器104。驗證器104可以如在108e處示出的在設置所述對稱密鑰時使用所述授權令牌。設置所述對稱密鑰可以包括例如:指定所述對稱密鑰以用於與證明器102進行設備/程序/數據認證交互,並且然後將所述對稱密鑰存儲在驗證器104中(例如,在安全存儲器(諸如tee)中)。驗證器104然後可以如在108f處示出的確認所述對稱密鑰已經被設置為證明器102。

遠程證明112可以在證明器102中發起信任鏈導出。例如,所述信任鏈中的初始框架密鑰可以如112a處示出的基於對稱密鑰114被導出,所述對稱密鑰114如108e處示出的被提供至證明器102。每個後續的密鑰(例如,程序密鑰118)可以如在112b處示出的至少從先前的密鑰(例如,框架密鑰116)中部分地導出。以此方式,證明器102中的各操作水平(諸如例如,os、應用、內插式模塊等)各自可以具有可以使用對稱密鑰114對其進行認證的密鑰。示出了示例交互,其中,由驗證器104將應用質詢112c傳輸至證明器102。應用質詢112c可以包括質詢應用以「證明」所述應用駐留在證明器102上和/或數據源自證明器102的消息。與設備質詢108a相類似,應用質詢112c可以由證明器102上請求訪問驗證器104中的資源的應用、從證明器102提供至驗證器104的數據等來觸發。可以響應於應用質詢112c而傳輸回復112d,回復112d包括至少基於程序密鑰118的數據,可以利用例如對稱密鑰114在驗證器104中對所述程序密鑰進行認證。

與本公開一致,信任鏈導出無需集中記錄受到所有各方信任的測量結果,並且因此設備無需基於硬體的保護來保護測量結果或者代表其他設備對所述測量結果進行上報和籤名。相反,軟體可以負責正確導出密鑰,並且執行意識存儲器保護可以用於保護所生成的密鑰116、118等免受os或其他應用中的威脅。進一步針對降低的硬體成本,信任鏈導出還可以遷移在資源受限設備的引導和可信執行過程中的性能瓶頸的問題。所產生的證明協議僅需要消息認證碼(mac)以證明正確加載了特定應用,並且與和中央可信子系統(例如,tpm)進行互操作相比可以易於且更高效地集成在安全信道協議中。雖然對稱信任鏈可能被限於僅提供對單獨(例如,隔離的)應用的加載時間測量和證明,但是由於對設備的完整軟體狀態進行驗證的高複雜度,因此關注對單獨的隔離應用(例如,可信執行)的測量和有效性是當前趨勢。此外,利用運行時間程序測量結果對遠程證明進行擴展當前未解決,但是現在在與本公開一致的實施例中得到了解決。

圖2展示了根據本公開的至少一個實施例可用的驗證器104』和證明器102』的示例配置。具體地,驗證器104'和證明器102'可以能夠執行諸如在圖1中所公開的示例功能。然而,驗證器104』和證明器102'僅意指作為可以在與本公開一致的實施例中可用的裝置的示例,並且並不意在將這些各個實施例限制於任何特定方式的實現方式。

驗證器104』可以包括例如被配置成用於管理設備操作的系統模塊200。系統模塊200可以包括例如處理模塊202、存儲器模塊204、電源模塊206、用戶接口模塊208以及通信接口模塊210。驗證器104』還可以包括通信模塊212和tee模塊214。雖然通信模塊212和tee模塊214已經被展示為與系統模塊200分離,但是為了解釋的目的,僅僅提供了圖2中所示的示例實現方式。與通信模塊212和tee模塊214相關聯的功能中的一些或全部可以併入到系統模塊200中。

在驗證器104』中,處理模塊202可以包括位於分離部件中的一個或多個處理器、或者替代性地,在單個部件中(例如,在片上系統(soc)配置中)具體化的一個或多個處理核以及任何處理器相關的支持電路(例如,橋接接口等)。示例處理器可以包括但不限於:可從英特爾公司獲得的各種基於x86的微處理器,包括在奔騰(pentium)、至強(xeon)、安騰(itanium)、賽揚(celeron)、阿童木(atom)、核i系列產品家族、高級risc(例如,精簡指令集計算)機器或「arm」處理器等中的那些。支持電路的示例可以包括被配置成用於提供接口的晶片組(例如,可從英特爾公司獲得的北橋、南橋等),通過所述接口,處理模塊202可以與驗證器104』中可以不同速度、不同總線等正在進行操作的其他系統部件進行交互。通常與支持電路相關聯的功能的部分或全部還可以包括在與處理器一樣的物理封裝體中(例如,諸如在可從英特爾公司獲得的處理器的沙橋(sandybridge)族中)。

處理模塊202可以被配置成用於執行驗證器104』中的各個指令。指令可以包括程序代碼,所述程序代碼被配置成用於使處理模塊202執行與讀數據、寫數據、處理數據、制定數據、轉換數據、變換數據等相關的活動。信息(例如,指令、數據等)可以存儲在存儲器模塊204中。存儲器模塊204可以包括固定或可移除格式的隨機存取存儲器(ram)或只讀存儲器(rom)。ram可以包括被配置成用於在驗證器104』的操作過程中保持信息的易失性存儲器,諸如例如靜態ram(sram)或動態ram(dram)。rom可以包括基於bios、uefi等被配置的用於在驗證器104』被激活時提供指令的非易失性(nv)存儲器模塊、諸如電子可編程rom(eproms)的可編程存儲器、快閃記憶體等。其他固定/可移除存儲器可以包括但不限於:磁存儲器(諸如例如,軟盤、硬碟驅動器等)、電子存儲器(諸如固態快閃記憶體(例如,嵌入式多媒體卡(emmc))等)、可移除存儲卡或可移除存儲棒(例如,微型存儲卡(usd)、usb等)、光存儲器(諸如基於cd的rom(cd-rom))、數字視頻盤(dvd)、藍光碟等。

電源模塊206可以包括內部電源(例如,電池、燃料電池等)和/或外部電源(例如,機電或太陽能發電機、電網、燃料電池等)、以及相關電路(被配置成用於為驗證器104』供應操作所需的電源)。用戶接口模塊208可以包括硬體和/或軟體以便允許用戶與驗證器104』(諸如例如,各種輸入機構(例如,麥克風、開關、按鈕、旋鈕、鍵盤、揚聲器、觸敏表面、被配置成用於捕獲圖像和/或感測接近度、距離、運動、姿勢、朝向的一個或多個傳感器等)以及各種輸出機構(例如,揚聲器、顯示器、發光/閃爍指示器、針對震動、運動的機電部件等)進行交互。用戶接口模塊208中的硬體可以併入驗證器104』內和/或可以經由有線或無線通信介質耦合至驗證器104』。

通信接口模塊210可以被配置成用於對分組路由以及通信模塊212的其他控制功能進行管理,所述通信模塊可以包括被配置成用於支持有線和/或無線通信的資源。在一些實例中,驗證器104'可以包括全部由集中通信接口模塊210管理的多於一個的通信模塊212(例如,包括針對有線協議和/或無線電臺的分離物理接口模塊)。有線通信可以包括串聯和並聯的有線介質,諸如例如:乙太網、通用串行總線(usb)、火線、數字視頻接口(dvi)、高清多媒體接口(hdmi)等。無線通信可以包括例如:極近無線介質(例如,諸如基於近場通信(nfc)標準的射頻(rf)、紅外(ir)等)、短距無線介質(例如,藍牙、wlan、wi-fi等)、長距無線介質(例如,蜂窩廣域無線電通信技術、基於衛星的通信等)或經由聲波的電子通信。在一個實施例中,通信接口模塊210可以被配置成用於防止在通信模塊212中活躍的無線通信互相干擾。在執行此功能時,通信接口模塊210可以基於例如消息等待傳輸的相對優先級為通信模塊212安排活動。雖然圖2中所公開的實施例展示了通信接口模塊210與通信模塊212分離,但是將通信接口模塊210和通信模塊212的功能併入同一模塊內還可以是可能的。

tee模塊214可以是安全工作空間,在所述安全工作空間中,可以執行已知良好的程序,可以採用安全的方式存儲機密信息等。通常,tee模塊214可以包括安全的計算資源集合,從而使得在tee模塊214內執行的程序與和所述執行程序相關聯的任何數據隔離開。除了可以開始或停止所述程序並且可以插入或刪除所述相關聯數據之外,所述程序/數據在程序執行過程中不會相互幹擾或被觀察到。所述數據插入可以是未觀察到的並且因此不會互相干擾,並且離開tee模塊214的任何數據採用受控方式被釋放。與本公開一致,在tee模塊214內執行的至少一個已知良好的程序可以執行在此關於tee模塊106而公開的任何或全部操作。在一個示例實現方式中,tee模塊214可以利用由英特爾公司開發的軟體防護擴展(sgx)技術。sgx可以向存儲器總線提供系統存儲器內部的安全且硬體加密的計算和存儲區域,其內容無法被特權代碼或者甚至通過硬體應用被解密。當tee模塊214受到sgx保護時,與本公開一致的實施例使得侵入者不可能解密tee模塊214的內容。受保護的數據無法在sgx外部被觀察到,並且因此在sgx外部不可訪問。

在使用sgx來實現tee模塊214的示例實現方式中,可以在每個程序內部對程序的身份(例如,基於每個程序的內容的密碼散列測量結果)進行籤名和存儲。當然後對所述程序進行加載時,所述處理器驗證所述程序的測量結果(例如,如由所述處理器計算的)與先前嵌入在所述程序內部的測量結果相同。用於對所述嵌入式測量結果進行籤名的籤名也是可驗證的,因為所述處理器設置有用於在程序加載時間對所述籤名進行驗證的公鑰。以此方式,惡意軟體無法篡改所述程序,也無法更改其可驗證的測量結果。惡意軟體也無法假冒所述籤名,因為所述籤名密鑰與所述程序的作者是安全的。因此,所述軟體可以不被任何惡意軟體讀取、寫入或更改。而且,還可以在tee模塊106中保護數據。例如,tee模塊106中的已知良好的程序可以對數據(諸如密鑰、密碼、許可等)進行加密,從而使得僅經驗證的良好程序可以對此數據進行解密。

證明模塊216可以駐留在tee模塊214內。證明模塊216可以例如與處理模塊202、存儲器模塊204、以及通信模塊212進行交互。在操作的示例中,證明模塊216可以使通信模塊212向證明器102'發送質詢並且可以從證明器102'接收證明和票數據。證明模塊216可以利用處理模塊202中的處理資源和/或存儲器模塊204中的存儲器資源以便處理從證明器102'接收的所述數據。而且,證明模塊216可以使通信模塊212至少將所述票數據傳輸至驗證器104並且可以從驗證器104接收授權令牌信息以用於生成對稱密鑰114。證明模塊216然後可以使通信模塊212將至少一個對稱密鑰114傳輸至證明器102』。

證明器102』已經被表示為圖2的示例中的資源有限設備。通信模塊218可以被配置成用於至少向驗證器104'傳輸並接收數據(例如,通信模塊212)。由通信模塊218接收的數據可以被提供至證明器102』中的操作資源(例如,至合併操作模塊220)。合併操作模塊220可以能夠執行與系統模塊200類似的功能但以更小的比例。例如,合併操作模塊220可以包括單體處理解決方案(諸如soc),所述單體處理解決方案可以被配置成用於處理包括資源(諸如例如,處理器222、平臺處初始化模塊(例如,引導加載器)224、存儲器226等)的證明器102』的處理操作中的所有操作。在一個實施例中,合併操作模塊220可以使通信模塊218與通信模塊212進行交互。在一個實施例中,這種交互可以限於有線通信、近距離或短程無線通信。在此限制可以簡單地為證明器102』的功能現實的同時,其還可以用於增強驗證器104'與證明器102』之間的交互的安全性,因為證明器102'僅可以能夠在對稱密鑰分配108過程中與近距離單個設備(例如,驗證器104』)進行交互。

圖3展示了根據本公開的至少一個實施例的對稱密鑰分配108』的示例。圖3詳細描述了驗證器104和證明器102可以如何建立可以用於進行遠程證明的共享對稱密鑰kv,p,其示例將在圖3中被描述。鑑定器106(例如,證明器102的製造商)可以確定證明器102的標識idp(例如,在製造時),並且可以將認證密鑰ekp嵌入到證明器102中的安全存儲器位置(例如,加密存儲器)中。為了增強安全性,可以假設證明器102無法在協議交換階段期間與除驗證器104之外的另一設備進行通信(例如,經由有線、無線或短距離通信),因此防止了受到危及的軟體在證明器102處與鑑定器106或另一外部實體發生可能的碰撞。然而,驗證器104和鑑定器106可以經由安全信道(諸如傳輸控制協議/網際網路協議(tcp/ip)上的傳輸層安全(tls))進行交互。如圖3中示出的,驗證器104可以為密鑰分配會話生成隨機數nv和nauth,並且可以將這些值與驗證器104idv的標識符進行散列以用於傳輸所述設備質詢。證明器102可以生成用於對所述質詢進行響應的數據,所述響應至少包括密鑰數據cp和票v,m。可以在證明器102中通過對各個值執行密碼功能來生成cp和票v,m,所述各個值至少包括在所述設備質詢和idp中發送的值。

在一個實施例中,驗證器104則可以將nauth和票v,m轉發至鑑定器106(例如,經由安全信道)。可以採用主從密鑰方案以便減低所需的存儲,從而使得鑑定器106可以能夠處理大量的證明器102。已知ek,鑑定器106可以能夠使用密鑰導出函數(kdf)(諸如ekp=kdf(ek,idp))來導出其設備idp之一的ekp。由鑑定器106對票v,m進行認證可以導致生成授權令牌sv,其中,sv=adec(ekp,票v,m)。然後可以至少將sv傳輸回至驗證器104以用於設置對稱密鑰kv,p。如圖3所示,然後可以基於cv=mac(kv,p,nv,np)來生成確認cv。證明器102可以接收確認cv並且可以利用cv來確定已經設置了對稱密鑰kv,p。

在圖3的示例協議中,可能未朝向證明器102或鑑定器106對驗證器104進行明確認證,這意味著任何驗證器104都可以觸發此協議。然而,這種交換確保了鑑定器106了解到與部署至idp的所述對稱密鑰kv,p相關聯的身份idv。這樣,至少兩個備選方案可以用於驗證器104的帶外認證(以及授權):分配式方法,所述分配式方法可以採用驗證器104與證明器102之間的本地(例如,物理)授權;以及集中式方法,其中,鑑定器106可以充當驗證器104與證明器102之間的中介器。本地授權可以利用以下事實:許多設備已經基於物理接近度或相似關係提供了帶外密鑰部署。例如,設備配對協議可以在本地可信環境中執行對稱密鑰交換,並且然後可以要求用戶通過在任一設備上輸入設備pin來對所述交換進行認證。以此方式,可與證明器102建立由驗證器104最新獲取的公共共享秘密「s」。然而,證明器102需要配備有用於在可信環境中執行配對的可信用戶i/o設施(例如,其在一些限制資源設備中可能不可用)。否則,驗證器104將不會知道是否與證明器102上的安全或受到危及的軟體共享s。雖然s單獨可能對於證明不是有用的,但是可在圖3的示例中使用s以便建立驗證器104與證明器102之間的經認證的信道,從而確保證明器102無法與除驗證器104之外的其他多方進行通信。以此方式,s可以用於對驗證器104與證明器102之間的對稱密鑰kv,p的部署進行本地認證和授權。在基本協議中物理隔離證明器確保了不會發生與鑑定器106的協作並且成功共享的對稱密鑰kv,p僅對驗證器104和證明器102是已知的。因而,即使危及到證明器102,但是對稱密鑰kv,p仍可用於驗證證明器102並檢測所述危害。在對證明器102進行證明之後,物理隔離可能不再是必要的。

如果本地授權不是可行的或者不被認為是足夠安全的,則可以採用集中式解決方案,在所述集中式解決方案中,鑑定器106明確授權驗證器104與證明器102建立對稱密鑰kv,p。出於此目的,驗證器應當向鑑定器106認證何時在基本協議中建立安全信道,從而使得驗證器104的身份可以加密連結至idv,如在驗證器104與證明器102之間的本地通信中使用的。例如,如果驗證器104與鑑定器106之間的所述安全信道使用標準公鑰方案來進行雙向非對稱認證,則idv可以是驗證器104的公鑰vpub的指紋(例如,密碼散列值)。鑑定器106然後可以在已知vpub的私鑰的情況下驗證證明器102不基於除驗證器104之外的其他實體正在與和鑑定器106進行通信的同一驗證器104進行交互,可以通過idv=散列(vpub)對所述私鑰進行唯一標識。因此,鑑定器106可以基於idv和idp執行對驗證器104的授權(例如,通過在資料庫中進行查找(如果驗證器104已經購買了證明器102或者如果驗證器104是可執行對p的證明的特定特權組的一部分))。

圖4展示了根據本公開的至少一個實施例的遠程證明112』的示例。遠程證明協議是質詢響應協議,其中,證明器102可以使用部署的對稱密鑰kv,p來「鑑定」其平臺的軟體狀態。出於此目的,傳統的證明方案記錄證明器102上的安全存儲器位置中的證明器102的軟體狀態(諸如tpm的平臺配置寄存器(pcr)),並且然後對那些記錄的測量結果以及來自由驗證器104發起的質詢的臨時值一起進行籤名。從初始引導例程到啟動os和應用的完整記錄被稱為信任鏈,因為每個部件需要先前加載的部件對其進行測量。

可通過將軟體測量結果存儲在存儲器位置中來實現相似的方案,利用執行意識存儲器保護方案通過保護證明密鑰kv,p以及「軟體pcr」來保護所述存儲器位置,從而使得僅可信遠程證明代碼可訪問那個數據。然而,嵌入式環境和對稱證明密鑰還使得能夠實現進一步簡化,這可以被考慮為「隱含」或「導出的」信任鏈。以此方式,在每次某個軟體正在加載另一軟體模塊時,可以使用相應的密鑰生成和/或密鑰轉授操作來擴展所述信任鏈,而非存儲安全位置中的測量結果。如圖4所示,在證明器102」中,可以通過擁有根對稱密鑰kv,p的平臺引導代碼來開啟所述信任鏈。然而,並非基於安全硬體或固件來提供運行時間服務(其可以是資源密集型),而是安全引導例程可以測量(例如,通常通過進行散列)軟體模塊並且直接將導出的程序密鑰km=mac(kv,p,散列m)嵌入到加載的程序模塊的保留位置中。圖4中展示了示例操作,其中,針對引導加載器400,散列1=測量(引導加載器代碼)並且程序密鑰k1=mac(kv,p,計數器||散列1)。然後可以採用程序密鑰k1來生成與os/任務402相對應的程序密鑰(例如,散列2=測量(os/任務代碼)),並且程序密鑰k2=mac(k1,計數器||散列2)。同樣,還可以導出具體對應於其他軟體404的程序密鑰,其中,散列3=測量(其他軟體代碼)並且程序密鑰k3=mac(k1,計數器||散列3)。

每個軟體模塊(例如,os/任務402、其他軟體404等)然後可以直接使用其相應的程序密鑰km(例如,k1、k2、k3等)以及測量結果鏈(例如,存儲在每個模塊中的各散列值)一起來證明其初始狀態(例如,測量)。接收這些測量結果作為由證明器102提供至應用質詢的響應的一部分,驗證器104則可以能夠從kv,p導出程序密鑰km,並且鑑於在應用質詢中由驗證器104提供的臨時值僅基於利用程序密鑰km計算的mac來驗證km的正確導出。這種方式可以在例如由執行意識存儲器保護使能的低端設備中尤其有用,所述低端設備不需要用於為單獨的嵌入式應用提供可信執行的可信os、可信固件或特權cpu模式(例如,以最小的硬體和軟體成本)。對稱信任鏈還可以用於生成特定於軟體的加密密鑰(例如,用於「密封」所述軟體)。

圖5展示了根據本公開的至少一個實施例的從驗證器的角度的對稱密鑰和信任鏈的示例操作。初始地,可以在驗證器中觸發證明。示例證明觸發可以包括例如:驗證器或證明器的激活、訪問從所述證明器接收的驗證器中的資源的請求、從所述證明器正在接收的數據等。然後可以在操作502中作出有關是否需要密鑰分配的判定。如果例如所述驗證器從未與所述證明器進行交互、現有的對稱密鑰被損壞或者已到期等,則可能需要密鑰分配。如果在操作502中確定需要密鑰分配,則在操作504中可以將設備質詢傳輸至所述證明器。可以在操作506中接收對所述設備質詢的響應,所述響應至少包括密鑰數據和票數據。所述驗證器則可以在操作508中繼續將至少所述票數據傳輸至鑑定器。然後可以在操作510中作出有關是否響應於在操作508中傳輸至少所述票數據而從所述鑑定器接收至少包含授權令牌的消息的判定。如果在操作510中確定未接收到包括所述授權令牌的消息,則在操作512中密鑰分配操作可以終止或者可選地返回至另一次嘗試的操作504。如果在操作510中確定接收到至少包括所述授權令牌的消息,則在操作514中所述授權令牌可以用於設置對稱密鑰(例如,至少基於在操作506中接收的所述密鑰數據)。然後可以在操作516中將設置所述密鑰的確認傳輸至所述證明器。

如果在操作502中確定應用和/或數據認證需要證明(例如,不需要密鑰分配),則在操作518中可以將應用質詢傳輸至所述證明器。可以在操作520中接收對所述應用質詢的響應。所述驗證器可以在操作522中繼續對所述響應的內容進行認證。對所述響應的內容進行認證可以至少包括:對在所述響應中提供的程序密鑰執行mac以便判定是否基於在操作514中設置的所述對稱密鑰而生成所述程序密鑰。可以在操作524中確定基於所述認證的回覆,並且然後在操作526中將其傳輸至所述證明器。

圖6展示了根據本公開的至少一個實施例的從證明器的角度的對稱密鑰和信任鏈的示例操作。圖6中公開的操作假定已經發生密鑰分配操作(例如,諸如在圖5中公開的,操作504至518),從而使得對稱密鑰已經駐留在所述證明器中。可以在操作600中激活所述證明器。在證明器激活之後,可以在操作602中發生引導加載,其中,例如可以至少基於計數器、所述引導加載器的測量結果、以及所述對稱密鑰來生成框架密鑰(例如,引導加載器密鑰)。

在所述計數器在操作604中遞增之後,可以在操作606中加載下一代碼模塊。例如,可以在所述引導代碼之後加載os/任務模塊,這則可以跟隨在將其他軟體等加載到所述證明器中之後。在操作606中加載所述下一代碼模塊之後,可以在操作608中基於所述計數器的當前值、正在加載的當前代碼模塊的測量結果、以及針對先前的代碼模塊生成的密鑰(例如,框架密鑰或先前的程序密鑰)來生成所述代碼模塊的程序密鑰。然後可以在操作610中作出有關是否存在要加載到所述證明器中的附加代碼模塊的判定。在操作610中確定仍存在要加載的附加代碼模塊可以跟隨在返回至操作604之後,其中,所述計數器可以針對所述下一代碼模塊遞增。否則,如果在操作610中確定已經加載了所述代碼模塊中的全部,則在操作612中所述證明器可以開始監聽來自所述驗證器的質詢。

使用信任鏈密鑰導出來密封數據

以上已經描述了各實施例,所述各實施例允許驗證器104利用鑑定器106所支持的質詢/響應方法來對證明器102中的應用進行認證。此系統可以防止驗證器104從可能已經受到危及的證明器102中的應用接收數據,但是其不能防止黑客、惡意軟體等訪問和/或更改存儲在證明器102上的應用數據。加密「密封」是一種保護機制,其中,可以對數據進行加密(例如,「密封」)以防止危及數據。在至少一個實施例中,可以在具有相同軟體狀態(例如,基於單獨代碼模塊的測量的相同軟體版本)的相同平臺上僅對密封數據進行解密(例如,「解封」),如當對所述數據進行首次密封時。密封通常需要基於以下各項所保持的tpm標準的可信運行時間(諸如可信平臺模塊(tpm)):可信計算組織(tcg);基於固件的tpm(ftpm)解決方案;或者另一種認證系統,所述認證系統可以安全地記錄對平臺(例如,平臺配置寄存器(pcr))上的軟體的測量結果並且在解封過程中可以驗證當前的測量結果集合與在密封明文時所記錄的那些測量結果相匹配。所述可信運行時間另外需要僅可信運行時間代碼自身可用的秘密加密密鑰。基於這些要求,對os有關的可信運行時間的硬體支持可引入大量的成本,並且對於低成本且資源受限的設備(諸如傳感器、rfid卡、可穿戴設備等)通常不是可行的。由於資源受限設備可以是用於許多新應用的使能器,因此可預見的是持續需要低成本的解決方案。

本公開可以進一步涉及使用信任鏈密鑰導出來密封數據。在至少一個實施例中,信任鏈可以用於導出密封密鑰以用於對證明器設備102上的數據進行密封。證明器設備102可以是資源受限的,並且因此可能不能夠支持傳統上執行數據密封所需的信任基礎設施。為了降低這些有限資源的壓力,可以在不需要可信運行時間的情況下在證明器設備102中生成密封密鑰。用於密封的密鑰導出鏈可以與以上呈現的用於證明的密鑰導出鏈並行建立,區別為不包括臨時值或計數器以確保所述密封密鑰跨重引導而是相同的。相反,按照需要,密封密鑰鏈被當作根密鑰鏈,從所述根密鑰鏈中可以導出特定於會話的密鑰和特定於應用的密鑰。由於所述密封密鑰是與狀態相關的,因此還公開了一種用於在軟體升級過程中對密封數據進行授權遷移的方法。

在至少一個實施例中,設備可以被配置成用於使用信任鏈來密封數據。所述設備至少可以包括例如存儲器和處理器。所述處理器可以至少用於從所述存儲器加載代碼模塊。在所述加載代碼模塊之後,所述處理器可以進一步用於:測量所述代碼模塊;確定與所述代碼模塊相對應的密封密鑰,其中,所述密封密鑰是至少基於與先前加載的代碼模塊相對應的在先密封密鑰以及所述代碼模塊的測量結果而確定的;以及使用所述密封密鑰對與所述加載的代碼模塊相對應的數據進行密封。

在至少一個實施例中,所述設備進一步包括:平臺初始化模塊,所述平臺初始化模塊用於將信任根代碼加載到所述設備中。所述信任根代碼可以例如使得所述處理器至少基於所述存儲器的受到存儲器保護邏輯保護的區域中的平臺專用根密封密鑰來確定與從所述存儲器加載的第一代碼模塊相對應的密封密鑰,所述存儲器保護邏輯僅允許所述信任根代碼訪問所述平臺專用根密封密鑰。所述處理器可以進一步用於:判定所述存儲器中是否存在所述平臺專用根密封密鑰;以及如果確定所述存儲器中不存在所述平臺專用根密封密鑰則生成新的平臺專用根密封密鑰。

在相同或不同的實施例中,所述處理器可以進一步用於:判定軟體更新在所述存儲器中針對所述加載的代碼模塊中的任何代碼模塊是否未決。如果確定軟體更新針對代碼模塊是未決的,則所述處理器可以進一步用於:使用認證密鑰對所述軟體更新進行認證;和/或判定所述軟體更新是否包括指示不應當遷移密封數據的元數據以便利用所述代碼模塊的更新版本進行操作。確定軟體更新是未決的可以進一步使所述處理器:至少基於與先前加載的代碼模塊相對應的在先密封密鑰以及所述軟體更新針對其未決的所述代碼模塊的測量結果來確定舊密封密鑰;以及至少基於與所述先前加載的代碼模塊相對應的所述在先密封密鑰以及所述軟體更新的測量結果來確定新密封密鑰。所述處理器然後可以進一步用於:執行所述軟體更新;使用所述舊密封密鑰對與所述軟體更新針對其未決的所述代碼模塊相對應的所述密封數據進行解封;以及使用所述新密封密鑰對與所述軟體更新針對其未決的所述代碼模塊相對應的所述解封數據進行重新密封。與本公開一致,一種用於使用信任鏈來密封數據的示例方法可以包括:從設備的存儲器加載代碼模塊;測量所述代碼模塊;確定與所述代碼模塊相對應的密封密鑰,其中,所述密封密鑰是至少基於與先前加載的代碼模塊相對應的在先密封密鑰以及所述代碼模塊的測量結果而確定的;以及使用所述密封密鑰對與所述加載的模塊相對應的數據進行密封。

圖7展示了根據本公開的至少一個實施例的導出密封密鑰的示例。雖然圖7展示了在圖4中公開的證明示例的框架內導出密封密鑰的示例,但是重要的是注意到,圖4中描述的結構和/或功能中的全部對於導出密封密鑰可以不是必需的。這些結構和/或功能僅提供為理解以下描述的實施例的上下文,因為由圖4和圖7利用的方法可以是相似的。圖7中用粗體強調了在圖7中作出的對圖4的原始公開的添加。

通常,存儲器模塊204』中的引導代碼可以使得在啟動(例如,引導、重引導等)證明器102」』的過程中加載信任根(rot)代碼。所述rot代碼可以初始化操作,通過所述操作,與加載每個相應的代碼模塊一起生成密封密鑰s1、s2、s3等,所述每個相應的代碼模塊包括例如如圖7所示的引導加載器400、os/任務402以及其他軟體404。可以對所述代碼模塊進行「分層」,因為它們可以在證明器102」』中以不同的水平進行操作。例如,可以將引導加載器400加載到證明器102」』中的第一層中(例如,具有更多訪問特權的低級別層)。加載到每個層中的代碼模塊則可以使得代碼模塊加載到更高的層中,並且可以確定每個代碼模塊的相應密封密鑰。以此方式,引導加載器400可以繼續將os/任務402以及其他軟體404加載到證明器102」』中的第二層上(例如,具有比所述第一層更少的訪問特權的更高級別),並且可以確定os/任務402的密封密鑰s2以及其他軟體404的密封密鑰s3。密封密鑰s1、s2、s3等可以分別用於在引導加載器400、os/任務402以及其他軟體404中對數據進行密封。

與本公開一致,可以基於根密封密鑰s0導出密封密鑰,所述根密封密鑰可以存儲在存儲器模塊204』中。在至少一個實施例中,根密封密鑰s0可以在證明器102」』的初始化過程中僅由rot代碼訪問,並且在初始化之後可以存儲在包括存儲器保護邏輯的存儲器模塊204』的區域中,所述存儲器保護邏輯使得根密封密鑰s0不可讀直到重新初始化證明器102」』。如果在加載所述rot代碼時確定存儲器模塊204』中不存在根密封密鑰s0,則所述rot代碼可以生成新根密封密鑰s0。新根密封密鑰s0可以是由所述rot生成的隨機值。所述新根密封密鑰s0則可以用於生成密封密鑰s1、s2、s3等。如圖7所展示的,可以通過執行mac功能基於當前代碼模塊的測量結果(例如,散列值)以及與先前的層相對應的密封密鑰來生成密封密鑰s1、s2、s3等。例如,s1=mac(s0,散列1),s2=mac(s1,散列2),s3=mac(s2,散列3)等。密封密鑰s1則可以用於對與引導加載器400相關聯的數據進行密封,密封密鑰s2可以用於對與os/任務402相關聯的數據進行密封,並且密封密鑰s3可以用於對與其他軟體404相關聯的數據進行密封等。

密封密鑰s1、s2、s3等是特定於平臺的並且跨所有重引導是相同的。由於密封密鑰s1、s2、s3等是基於先前層的密封密鑰以及相關聯代碼模塊的散列值而確定的,因此解封密封數據的能力可能取決於證明器102」』的軟體狀態在生成所述密封密鑰之後未發生變化。如果證明器102」』的軟體狀態在未更新密封密鑰的情況下發生變化,則將不再能夠對所述密封數據進行解密。這可以防止黑客、惡意軟體等公開敏感、機密和/或專有數據,所述黑客、惡意軟體通過利用旨在危及證明器102」』安全的其他軟體來替代和/或更改代碼模塊從而攻擊證明器102」』。證明器102」』的軟體狀態還可以由於合法更新至代碼模塊而發生變化。關於圖9進一步討論了允許合法軟體更新的操作。

圖8展示了根據本公開的至少一個實施例的使用信任鏈密鑰導出來密封數據的示例操作。在操作800中,可以對設備進行初始化(例如,引導、重引導等)。然後可以在操作802中作出有關所述設備中是否存在根密封密鑰s0的判定。在操作804中確定存在根密封密鑰s0可以跟隨在操作804之後,其中,可以作出有關軟體更新在所述設備中是否未決的進一步判定。如果在操作804中確定軟體更新是未決的,則可以在圖9中繼續執行所述軟體更新的操作。在操作804中確定沒有軟體更新是未決的可以跟隨在操作806之後,其中,所述設備可以繼續正常操作(例如,所述設備可以完成初始化過程並且進入正常操作模式)。

在操作802中確定所述設備中不存在根密封密鑰s0可以跟隨在操作808之後,其中,可以在所述設備中生成根密封密鑰s0。然後可以在操作810中基於所述根密封密鑰s0以及與所述框架密鑰相對應的代碼模塊的測量結果來確定框架密封密鑰(例如,密封密鑰s1)。在操作812中,然後可以使用所述框架密鑰來密封與所述引導加載器相關聯的數據(例如,包括rot代碼)。可以在操作814中加載另一代碼模塊,並且在操作816中可以基於在先密封密鑰(例如,與在先前的層中加載的所述代碼模塊相對應的在先密封密鑰)以及在操作814中加載的所述代碼模塊的測量結果來確定程序密封密鑰(例如,密封密鑰s2)。可以在操作818中對與在操作814中加載的所述代碼模塊相關聯的數據進行密封。在操作820中,可以繼續加載代碼模塊直到所有的代碼模塊被加載,在此之後,可以在操作806中進行正常操作。

圖9展示了根據本公開的至少一個實施例的用於在系統中使用信任鏈密鑰導出來處理軟體更新的示例操作。通常,可以以代碼模塊級來處理軟體更新。可以使得所述代碼模塊可訪問新密封數據和舊密封數據兩者,從而使得可以在所述更新卸載舊數據之前對數據進行遷移。可選保護還可以被合併為所述更新的一部分以便幫助確保所述更新在安裝到所述設備(例如,證明器102」』)上時是安全的。

從圖8中展示的操作804繼續,可以在操作900中加載代碼模塊。然後可以在操作902中作出有關針對所述代碼模塊更新是否未決的判定。在操作902中確定針對所述代碼模塊更新不是未決的可以跟隨在操作904中的有關是否存在要加載的附加代碼模塊的進一步判定。確定存在要加載的另外代碼模塊可以跟隨在返回至用於加載下一代碼模塊的操作900之後。如果在操作904中確定不存在要加載的另外代碼模塊,則在操作906中所述設備可以繼續正常操作。

在操作902中確定針對所述代碼模塊更新是未決的可以跟隨在可選操作908至912之後。操作908至912可以是可選的,因為它們可以是實現方式相關的,並且因此不是在本公開的所有實施例中都要求的。可以在操作908中作出有關可對針對所述代碼模塊的更新未決進行認證的判定。例如,所述rot可以使所述設備獲得用於對所述更新進行認證的認證密鑰。證明器設備102」』中的所述rot或另一模塊/系統可以從經認證的提供方(例如,所述代碼模塊的製造商、所述設備的製造商等)獲得所述認證密鑰。可以與所述更新一起或者作為單獨通信(例如,通過通信模塊218與所述經認證的提供方實施的)的一部分來獲得所述認證密鑰。如果在操作908中未認證所述更新,則在操作910中可以中止所述更新和密封數據遷移兩者,其可以跟隨在操作904中的有關是否存在要加載的附加代碼模塊的判定之後。如果在操作908中確定已對所述更新進行認證,則在操作912中可以作出有關所述代碼模塊和/或所述更新是否包括指示在所述更新過程中不應當遷移所述密封數據的元數據的判定。如果在操作912中確定所述元數據指示不應當遷移所述密封數據,則在操作910中仍可以執行所述更新,但是可能中止對密封數據的遷移。

如果在操作912中確定不存在指示不對所述密封數據進行遷移的元數據,則在操作914中可以針對現有的代碼模塊(例如,所述舊代碼模塊)和所述更新(例如,所述新代碼模塊)兩者生成密封密鑰。可以在正在更新的代碼模塊之前由層中的代碼模塊生成密鑰,其中,所述舊密封密鑰可以基於執行與前一層相對應的密封密鑰的mac以及所述舊代碼模塊的測量結果,並且所述新密封密鑰可以基於執行與前一層相對應的所述密封密鑰的mac以及對所述新代碼模塊的測量。然後可以在操作916中執行軟體更新,並且在操作918中可以將所述密封數據遷移至所述新代碼模塊。所述密封數據的遷移可以包括例如:使用在操作914中確定的所述舊密封密鑰對所述密封數據進行解封;以及使用同樣在操作914中確定的所述新密封密鑰進行重新密封。在完成對密封數據的遷移之後,可以在操作920中刪除所述舊代碼模塊,所述操作可以跟隨在返回至用於判定是否具有仍需要加載的另外代碼模塊的操作904之後。

雖然圖5、圖6、圖8和圖9展示了根據不同實施例的操作,但是將理解的是,對於其他實施例來說,並非圖5、圖6、圖8和圖9中所描繪的所有操作都是必需的。確實,在此完全可以設想,在本公開的其他實施例中,可以採用任何附圖中未具體地示出、但仍然完全符合本公開的方式將圖5、圖6、圖8和圖9中所描繪的操作和/或本文中所描述的其他操作進行組合。因而,對未在一幅圖中準確示出的特徵和/或操作有所涉及的權利要求被視為落入本公開的範圍和內容內。

如在本申請和權利要求書中所使用的,由術語「和/或」接合的一系列項目可意指所列項目的任何組合。例如,短語「a、b和/或c」可意指a;b;c;a和b;a和c;b和c;或a、b和c。如在本申請和權利要求書中所使用的,由術語「中的至少一項」接合的一系列項目可意指所列術語的任何組合。例如,短語「a、b或c中的至少一項」可意指a;b;c;a和b;a和c;b和c;或a、b和c。

如本文中任何實施例所使用的,術語「模塊」可以指被配置成用於執行前述操作中任一操作的軟體、固件和/或電路。軟體可以具體化為非瞬態計算機可讀存儲介質上所記錄的軟體包、代碼、指令、指令集和/或數據。固件可以具體化為存儲器設備中硬編碼(例如,非易失性的)的代碼、指令或指令集和/或數據。如本文中任何實施例所使用的,「電路」可以例如單一地或以任何組合形式包括硬接線電路、可編程電路(諸如包括一個或多個個體指令處理核的計算機處理器)、狀態機電路、和/或存儲有可由可編程電路執行的指令的固件。這些模塊可以統一地或單獨地具體化為形成例如,集成電路(ic)、片上系統(soc)、臺式計算機、膝上計算機、平板計算機、伺服器、智慧型電話等的較大系統的一部分的電路。

在此描述的任何操作可以在系統中實現,所述系統包括具有單獨地或組合地存儲在其上的多條指令的一個或多個存儲介質(諸如,非瞬態存儲介質),當這些指令由一個或多個處理器執行時執行這些方法。此處,處理器可以包括例如:伺服器cpu、行動裝置cpu、和/或其他可編程電路。而且,旨在使得在此描述的操作可以跨多個物理設備(諸如在多於一個的不同物理位置處的處理結構)分布。存儲介質可以包括任何類型的有形介質,例如包括以下各項的任何類型的磁碟:硬碟、軟盤、光碟、壓縮盤-只讀存儲器(cd-rom)、可複寫cd(cd-rw)、和磁光碟、如只讀存儲器(rom)的半導體器件、如動態和靜態ram的隨機存取存儲器(ram)、可擦可編程只讀存儲器(eprom)、電可擦可編程只讀存儲器(eeprom)、快閃記憶體、固態盤(ssd)、嵌入式多媒體卡(emmc)、安全數字輸入/輸出(sdio)卡、磁卡或光卡、或者適合於存儲電子指令的任何類型的介質。其他實施例可以實現為由可編程控制設備執行的軟體模塊。

因此,本公開涉及使用信任鏈密鑰導出來密封數據。在至少一個實施例中,信任鏈可以用於導出密封密鑰以用於對設備上的數據進行密封。所述設備至少可以包括例如存儲器和處理器。所述處理器可以至少用於從所述存儲器加載代碼模塊。在所述加載代碼模塊之後,所述處理器可以進一步用於:測量所述代碼模塊;確定與所述代碼模塊相對應的密封密鑰,其中,所述密封密鑰是至少基於與先前加載的代碼模塊相對應的在先密封密鑰以及所述代碼模塊的測量結果而確定的;以及使用所述密封密鑰對與所述加載的代碼模塊相對應的數據進行密封。由於所述密封密鑰是與狀態相關的,因此還公開了一種用於在軟體升級過程中對密封數據進行授權遷移的方法。

以下示例涉及進一步的實施例。如以下所提供的,本公開的以下示例可以包括主題,諸如設備、方法、用於存儲指令(當被執行時使機器基於所述方法執行動作)的至少一個機器可讀介質、用於基於所述方法執行動作的裝置和/或用於對稱密鑰和信任鏈的系統。

根據示例1,提供了一種被配置成用於使用信任鏈來密封數據的設備。所述設備可以包括:存儲器;以及處理器,所述處理器至少用於從所述存儲器加載代碼模塊,其中,在所述加載代碼模塊之後,所述處理器進一步用於:測量所述代碼模塊;確定與所述代碼模塊相對應的密封密鑰,其中,所述密封密鑰是至少基於與先前加載的代碼模塊相對應的在先密封密鑰以及所述代碼模塊的測量結果而確定的;以及使用所述密封密鑰對與所述加載的代碼模塊相對應的數據進行密封。

示例2可以包括如示例1所述的要素,並且可以進一步包括:平臺初始化模塊,所述平臺初始化模塊用於將信任根代碼加載到所述設備中。

示例3可以包括如示例2所述的要素,其中,所述信任根代碼使得所述處理器至少基於所述存儲器的受到存儲器保護邏輯保護的區域中的平臺專用根密封密鑰來確定與從所述存儲器加載的第一代碼模塊相對應的密封密鑰,所述存儲器保護邏輯僅允許所述信任根代碼訪問所述平臺專用根密封密鑰。

示例4可以包括如示例3所述的要素,其中,所述處理器進一步用於:判定所述存儲器中是否存在所述平臺專用根密封密鑰;以及如果確定所述存儲器中不存在所述平臺專用根密封密鑰則生成新的平臺專用根密封密鑰。

示例5可以包括如示例4所述的要素,其中,所述新的平臺專用密封密鑰是由所述信任根代碼生成的隨機值。

示例6可以包括如示例1至5中任一項所述的要素,其中,所述處理器進一步用於:判定軟體更新在所述存儲器中針對所述加載的代碼模塊中的任何代碼模塊是否未決。

示例7可以包括如示例6所述的要素,其中,如果確定軟體更新針對代碼模塊是未決的,則所述處理器進一步用於:使用認證密鑰對所述軟體更新進行認證。

示例8可以包括如示例6至7中任一項所述的要素,其中,如果確定軟體更新針對代碼模塊是未決的,則所述處理器進一步用於:判定所述軟體更新是否包括指示不應當遷移密封數據的元數據以便利用所述代碼模塊的更新版本進行操作。

示例9可以包括如示例6至8中任一項所述的要素,其中,如果確定軟體更新針對代碼模塊是未決的,則所述處理器進一步用於:至少基於與先前加載的代碼模塊相對應的在先密封密鑰以及所述軟體更新針對其未決的所述代碼模塊的測量結果來確定舊密封密鑰;以及至少基於與所述先前加載的代碼模塊相對應的所述在先密封密鑰以及所述軟體更新的測量結果來確定新密封密鑰。

示例10可以包括如示例9所述的要素,其中,所述處理器進一步用於:執行所述軟體更新;使用所述舊密封密鑰對與所述軟體更新針對其未決的所述代碼模塊相對應的所述密封數據進行解封;以及使用所述新密封密鑰對與所述軟體更新針對其未決的所述代碼模塊相對應的所述解封數據進行重新密封。

示例11可以包括如示例6至10中任一項所述的要素,其中,如果確定軟體更新針對代碼模塊是未決的,則所述處理器進一步用於:至少基於與先前加載的代碼模塊相對應的在先密封密鑰以及所述軟體更新針對其未決的所述代碼模塊的測量結果來確定舊密封密鑰;至少基於與所述先前加載的代碼模塊相對應的所述在先密封密鑰以及所述軟體更新的測量結果來確定新密封密鑰;執行所述軟體更新;使用所述舊密封密鑰對與所述軟體更新針對其未決的所述代碼模塊相對應的所述密封數據進行解封;以及使用所述新密封密鑰對與所述軟體更新針對其未決的所述代碼模塊相對應的所述解封數據進行重新密封。

示例12可以包括如示例1至11中任一項所述的要素,並且可以進一步包括:第二信任鏈,所述第二信任鏈包括被配置成用於支持遠程證明的密鑰。

示例13可以包括如示例1至12中任一項所述的要素,其中,當所述密封密鑰被確定時,所述密封密鑰取決於所述設備的軟體狀態。

示例14可以包括如示例13所述的要素,其中,如果所述設備的所述軟體狀態在不遷移所述密封數據的情況下發生變化,則所述密封數據不可被解封。

根據示例15,提供了一種用於使用信任鏈來密封數據的方法。所述方法可以包括:從設備的存儲器加載代碼模塊;測量所述代碼模塊;確定與所述代碼模塊相對應的密封密鑰,其中,所述密封密鑰是至少基於與先前加載的代碼模塊相對應的在先密封密鑰以及所述代碼模塊的測量結果而確定的;以及使用所述密封密鑰對與所述加載的模塊相對應的數據進行密封。

示例16可以包括如示例15所述的要素,並且可以進一步包括:從所述存儲器加載信任根代碼;以及至少基於所述存儲器的受到存儲器保護邏輯保護的區域中的平臺專用根密封密鑰來確定與從所述存儲器加載的第一代碼模塊相對應的密封密鑰,所述存儲器保護邏輯僅允許所述信任根代碼訪問所述平臺專用根密封密鑰。

示例17可以包括如示例16所述的要素,並且可以進一步包括:判定所述存儲器中是否存在所述平臺專用根密封密鑰;以及如果確定所述存儲器中不存在所述平臺專用根密封密鑰則生成新的平臺專用根密封密鑰。

示例18可以包括如示例17所述的要素,其中,所述新的平臺專用密封密鑰是由所述信任根代碼生成的隨機值。

示例19可以包括如示例15至18中任一項所述的要素,並且可以進一步包括:判定軟體更新在所述存儲器中針對所述加載的代碼模塊中的任何代碼模塊是否未決。

示例20可以包括如示例19所述的要素,並且可以進一步包括:如果確定軟體更新針對代碼模塊是未決的,則使用認證密鑰對所述軟體更新進行認證。

示例21可以包括如示例19至20中任一項所述的要素,並且可以進一步包括:如果確定軟體更新針對代碼模塊是未決的,則判定所述軟體更新是否包括指示不應當遷移密封數據的元數據以便利用所述代碼模塊的更新版本進行操作。

示例22可以包括如示例19至21中任一項所述的要素,並且可以進一步包括:如果確定軟體更新針對代碼模塊是未決的,則執行以下各項中的至少一項:使用認證密鑰對所述軟體更新進行認證;或者判定所述軟體更新是否包括指示不應當遷移密封數據的元數據以便利用所述代碼模塊的更新版本進行操作。

示例23可以包括如示例19至22中任一項所述的要素,並且可以進一步包括:如果確定軟體更新針對代碼模塊是未決的,則至少基於與先前加載的代碼模塊相對應的在先密封密鑰以及所述軟體更新針對其未決的所述代碼模塊的測量結果來確定舊密封密鑰;以及至少基於與所述先前加載的代碼模塊相對應的所述在先密封密鑰以及所述軟體更新的測量結果來確定新密封密鑰。

示例24可以包括如示例23所述的要素,並且可以進一步包括:執行所述軟體更新;使用所述舊密封密鑰對與所述軟體更新針對其未決的所述代碼模塊相對應的所述密封數據進行解封;以及使用所述新密封密鑰使用所述在先密封密鑰對與所述軟體更新針對其未決的所述代碼模塊相對應的所述解封數據進行重新密封。

示例25可以包括如示例19至24中任一項所述的要素,並且可以進一步包括:如果確定軟體更新針對代碼模塊是未決的,則至少基於與先前加載的代碼模塊相對應的在先密封密鑰以及所述軟體更新針對其未決的所述代碼模塊的測量結果來確定舊密封密鑰;至少基於與所述先前加載的代碼模塊相對應的所述在先密封密鑰以及所述軟體更新的測量結果來確定新密封密鑰;執行所述軟體更新;使用所述舊密封密鑰對與所述軟體更新針對其未決的所述代碼模塊相對應的所述密封數據進行解封;以及使用所述新密封密鑰使用所述在先密封密鑰對與所述軟體更新針對其未決的所述代碼模塊相對應的所述解封數據進行重新密封。

示例26可以包括如示例15至25中任一項所述的要素,並且可以進一步包括:確定所述設備中的第二信任鏈,所述單獨信任鏈包括被配置成用於支持遠程證明的密鑰。

示例27可以包括如示例15至26中任一項所述的要素,其中,當所述密封密鑰被確定時,所述密封密鑰取決於所述設備的軟體狀態。

示例28可以包括如示例27所述的要素,其中,如果所述設備的所述軟體狀態在不遷移所述密封數據的情況下發生變化,則所述密封數據不可被解封。

根據示例29,提供了一種至少包括設備的系統,所述系統被安排成用於執行如以上示例15至28中任一項所述的方法。

根據示例30,提供了一種被安排成用於執行如以上示例15至28中任一項所述的方法的晶片組。

根據示例31,提供了至少一種機器可讀介質,所述至少一種機器可讀介質包括多條指令,所述多條指令響應於正在計算設備上被執行而使所述計算設備執行根據以上示例15至28中任一項所述的方法。

根據示例32,提供了一種被配置成用於使用信任鏈來密封數據的設備,所述設備被安排成用於執行如以上示例15至28中任一項所述的方法。

根據示例33,提供了一種用於使用信任鏈來密封數據的系統。所述系統可以包括:用於從設備的存儲器加載代碼模塊的裝置;用於測量所述代碼模塊的裝置;用於確定與所述代碼模塊相對應的密封密鑰的裝置,其中,所述密封密鑰是至少基於與先前加載的代碼模塊相對應的在先密封密鑰以及所述代碼模塊的測量結果而確定的;以及用於使用所述密封密鑰對與所述加載的模塊相對應的數據進行密封的裝置。

示例34可以包括如示例33所述的要素,並且可以進一步包括:用於從所述存儲器加載信任根代碼的裝置;以及用於至少基於所述存儲器的受到存儲器保護邏輯保護的區域中的平臺專用根密封密鑰來確定與從所述存儲器加載的第一代碼模塊相對應的密封密鑰的裝置,所述存儲器保護邏輯僅允許所述信任根代碼訪問所述平臺專用根密封密鑰。

示例35可以包括如示例34所述的要素,並且可以進一步包括:用於判定所述存儲器中是否存在所述平臺專用根密封密鑰的裝置;以及如果確定所述存儲器中不存在所述平臺專用根密封密鑰則用於生成新的平臺專用根密封密鑰的裝置。

示例36可以包括如示例35所述的要素,其中,所述新的平臺專用密封密鑰是由所述信任根代碼生成的隨機值。

示例37可以包括如示例33至36中任一項所述的要素,並且可以進一步包括:用於判定軟體更新在所述存儲器中針對所述加載的代碼模塊中的任何代碼模塊是否未決的裝置。

示例38可以包括如示例37所述的要素,並且可以進一步包括:如果用於確定軟體更新針對代碼模塊是未決的則使用認證密鑰對所述軟體更新進行認證的裝置。

示例39可以包括如示例37至38中任一項所述的要素,並且可以進一步包括:用於如果確定軟體更新針對代碼模塊是未決的則判定所述軟體更新是否包括指示不應當遷移密封數據的元數據以便利用所述代碼模塊的更新版本進行操作的裝置。

示例40可以包括如示例37至39中任一項所述的要素,並且可以進一步包括:用於如果確定軟體更新針對代碼模塊是未決的則至少基於與先前加載的代碼模塊相對應的在先密封密鑰以及所述軟體更新針對其未決的所述代碼模塊的測量結果來確定舊密封密鑰的裝置;以及用於至少基於與所述先前加載的代碼模塊相對應的所述在先密封密鑰以及所述軟體更新的測量結果來確定新密封密鑰的裝置。

示例41可以包括如示例40所述的要素,並且可以進一步包括:用於執行所述軟體更新的的裝置;用於使用所述舊密封密鑰對與所述軟體更新針對其未決的所述代碼模塊相對應的所述密封數據進行解封的的裝置;以及用於使用所述新密封密鑰使用所述在先密封密鑰對與所述軟體更新針對其未決的所述代碼模塊相對應的所述解封數據進行重新密封的裝置。

示例42可以包括如示例33至41中任一項所述的要素,並且可以進一步包括:用於確定所述設備中的單獨信任鏈的裝置,所述單獨信任鏈包括被配置成用於支持遠程證明的密鑰。

示例43可以包括如示例33至42中任一項所述的要素,其中,當所述密封密鑰被確定時,所述密封密鑰取決於所述設備的軟體狀態。

示例44可以包括如示例43所述的要素,其中,如果所述設備的所述軟體狀態在不遷移所述密封數據的情況下發生變化,則所述密封數據不可被解封。

本文已採用的術語和表達用作對術語進行描述而非進行限制,並且在使用這種術語和表達時不旨在排除所示且所描述的特徵(或其部分)的任何等效物,並且認識到在權利要求書範圍內的各種修改是有可能的。從而,權利要求書意在涵蓋所有這類等效方案。

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀