本發(fā)明一般來說涉及共享密碼密鑰的安全傳遞,且特定來說涉及并未通過安全信道連接的裝置之間的共享密碼密鑰的傳遞。
背景技術(shù):
一般來說,裝置可利用共享密碼密鑰來彼此安全地通信。舉例來說,第一裝置可利用共享密鑰來簽署(例如,編碼)數(shù)據(jù)且將所述經(jīng)簽署數(shù)據(jù)發(fā)射到第二裝置。所述第二裝置可接著利用所述共享密鑰來驗(yàn)證(例如,解碼)所接收數(shù)據(jù)。以此方式,截獲經(jīng)編碼數(shù)據(jù)的外部方在不具有共享密鑰的情況下將不能解碼數(shù)據(jù)。因此,借助共享密鑰的使用使通信安全的前提是通信裝置各自知曉共享密鑰。
換句話說,可在使用共享密鑰來編碼及解碼數(shù)據(jù)之前將共享密鑰安全地傳遞到裝置中的每一者。通常,用于安全地傳遞共享密鑰的方法可利用廣泛數(shù)學(xué)計(jì)算。舉例來說,利用迪菲-赫爾曼方法來在裝置之間傳遞共享密鑰可涉及裝置執(zhí)行模算術(shù),此可需要非平凡計(jì)算處理。然而,例如存儲器裝置的一些裝置可具有有限處理能力。
因此,舉例來說,通過甚至關(guān)于具有有限處理能力的裝置達(dá)成共享密鑰的傳遞來改進(jìn)共享密鑰的安全傳遞將為有益的。
附圖說明
圖1圖解說明根據(jù)實(shí)施例的計(jì)算系統(tǒng)的框圖;
圖2圖解說明根據(jù)實(shí)施例的用于傳遞共享密鑰的裝置的框圖;
圖3圖解說明根據(jù)實(shí)施例的用于使圖2的裝置準(zhǔn)備傳遞共享密鑰的流程;
圖4圖解說明根據(jù)實(shí)施例的圖2的裝置之間的數(shù)據(jù)流程圖;及
圖5圖解說明根據(jù)實(shí)施例的用于在圖2的裝置之間安全地傳遞共享密鑰的流程。
具體實(shí)施方式
如上文所描述,共享密碼密鑰通常由裝置用于達(dá)成安全(例如,經(jīng)編碼及/或經(jīng)簽署)通信。更具體來說,裝置可利用共享密鑰來簽署(例如,編碼)所發(fā)射數(shù)據(jù)且驗(yàn)證(例如,解碼)所接收數(shù)據(jù)。舉例來說,第一裝置可通過使用共享密鑰對數(shù)據(jù)執(zhí)行密碼散列而簽署數(shù)據(jù)且將經(jīng)簽署數(shù)據(jù)連同散列結(jié)果一起發(fā)射到第二裝置。第二裝置可接著通過使用共享密鑰執(zhí)行密碼散列且將結(jié)果進(jìn)行比較而驗(yàn)證所接收數(shù)據(jù)。如此,在通信的任一端上的裝置可利用共享密鑰。換句話說,共享密鑰可安全地傳遞到通信裝置中的每一者。
如可了解,由于共享密鑰為使所發(fā)射數(shù)據(jù)安全的基礎(chǔ),因此外部方不會獲得共享密鑰是重要的。如此,共享密鑰應(yīng)在外部方不確定共享密鑰的情況下安全地傳遞到裝置??墒褂酶鞣N方法來促進(jìn)共享密鑰到裝置的安全發(fā)射。此些方法可包含迪菲-赫爾曼密鑰交換、羅納德·李斯維特、阿迪·沙米爾與倫納德·阿德曼(RSA)系統(tǒng)方法或一另一公開密鑰基礎(chǔ)結(jié)構(gòu)方法。然而,這些方法可為計(jì)算復(fù)雜的,其利用顯著處理能力。
舉例來說,為利用迪菲-赫爾曼密鑰交換,第一及第二裝置可首先確定質(zhì)數(shù)模數(shù)(例如17)及質(zhì)數(shù)模數(shù)的原根(例如3)。接著,第一及第二裝置可各自選擇機(jī)密整數(shù)。舉例來說,第一裝置可選擇15且第二裝置可選擇13。使用其機(jī)密整數(shù),第一及第二裝置可各自使原根自乘到其相應(yīng)機(jī)密整數(shù)且使用質(zhì)數(shù)模數(shù)執(zhí)行模運(yùn)算。舉例來說,第一裝置可計(jì)算315%17,其等于6,且第二裝置可計(jì)算313%17,其等于12。接著將所計(jì)算結(jié)果發(fā)射到另一裝置。每一接收裝置可接著使所接收結(jié)果自乘到其相應(yīng)機(jī)密整數(shù)且使用質(zhì)數(shù)模數(shù)執(zhí)行模運(yùn)算。舉例來說,第一裝置可計(jì)算1215%17,其等于10,且第二裝置可計(jì)算613%17,其也等于10。以此方式,第一及第二裝置兩者可確定共享密鑰,舉例來說,10。
如此,第一及第二裝置兩者通常包含用以迅速地且高效地執(zhí)行模算術(shù)的處理組件。更具體來說,處理組件執(zhí)行多個(gè)指數(shù)及模運(yùn)算計(jì)算。另外,為改進(jìn)安全性,舉例來說,所使用的數(shù)的大小可一直增加到數(shù)百個(gè)數(shù)字。換句話說,在現(xiàn)實(shí)世界情景中,指數(shù)及模運(yùn)算計(jì)算可比上文所呈現(xiàn)的實(shí)例復(fù)雜得多。
然而,希望利用共享密鑰來使數(shù)據(jù)安全的一些裝置可在其處理性能方面受限制。一個(gè)此類實(shí)例可為用于引導(dǎo)計(jì)算系統(tǒng)的非易失性引導(dǎo)裝置。一般來說,非易失性引導(dǎo)裝置可包含執(zhí)行有限運(yùn)算且具有有限處理性能的處理組件。舉例來說,處理組件可為僅僅執(zhí)行整數(shù)算術(shù)與邏輯運(yùn)算的算術(shù)邏輯單元(ALU)。
盡管增加此些裝置的處理性能可為可能的,但成本可為過高的。換句話說,在不必須增加非易失性引導(dǎo)裝置的處理性能的情況下關(guān)于計(jì)算系統(tǒng)達(dá)成共享密鑰的安全傳遞將為有益的。
因此,本發(fā)明描述以最少處理要求達(dá)成共享密鑰的安全傳遞的技術(shù)。舉例來說,一些實(shí)施例可利用共享對稱密鑰來使通信安全,此實(shí)施起來可不如公開密鑰基礎(chǔ)結(jié)構(gòu)(PKI)技術(shù)計(jì)算復(fù)雜。更具體來說,與在PKI技術(shù)中使用的更廣泛計(jì)算性運(yùn)算(例如模算術(shù))相比較,共享對稱密鑰方法可在很大程度上使用組合局部來實(shí)施。
另外,一些實(shí)施例可通過可信第三方(例如服務(wù)器)的使用安全地傳遞共享密鑰。更具體來說,密鑰產(chǎn)生器可產(chǎn)生用于第一裝置的唯一識別符及共享密鑰配對。所述配對可(舉例來說)在制造期間存儲于第一裝置中且存儲于可信第三方中。為將共享密鑰傳遞到第二裝置,第一裝置可將其唯一識別符及簽名發(fā)射到可信第三方,所述簽名可使用共享密鑰及臨時(shí)值(例如,隨機(jī)或偽隨機(jī)數(shù))來產(chǎn)生。可信第三方可接著使用唯一識別符來檢索對應(yīng)共享密鑰且驗(yàn)證簽名。如果簽名通過驗(yàn)證,那么可信第三方可保證其基于唯一識別符所查找的安全密鑰與存儲于第一裝置上的安全密鑰相同。如此,可信第三方可經(jīng)由安全信道將共享密鑰傳遞到第二裝置而不在第一裝置與第二裝置之間的通信信道上暴露共享密鑰。隨后,第一及第二裝置可使用共享密鑰安全地通信。
因此,如下文將更詳細(xì)地描述,即使在先存安全信道不存在于裝置之間時(shí),也可關(guān)于裝置安全地共享共享密鑰。換句話說,只要僅僅接收簽名及唯一識別符的另一方不具有對唯一識別符及共享密鑰配對(先前可經(jīng)由安全信道關(guān)于可信第三方共享其)的存取權(quán),所述方便可能無法確定共享密鑰。另外,如下文將更詳細(xì)地描述,可以第一裝置所執(zhí)行的最少計(jì)算關(guān)于第二裝置安全地共享共享密鑰。更具體來說,由第一裝置進(jìn)行的處理可僅僅包含(舉例來說)通過對唯一識別符執(zhí)行密碼散列運(yùn)算而使用共享密鑰及臨時(shí)值產(chǎn)生簽名。
如上文所描述,本文中所描述的技術(shù)對于計(jì)算系統(tǒng)中的非易失性引導(dǎo)裝置可為尤其有用的。為幫助圖解說明,圖1中描述具有非易失性引導(dǎo)裝置12的計(jì)算系統(tǒng)10的實(shí)施例。計(jì)算系統(tǒng)10可為各種類型中的任一者,例如計(jì)算機(jī)、傳呼機(jī)、蜂窩電話、個(gè)人備忘記事本、控制電路等。圖1中所展示的各種功能塊可包含硬件元件(包含電路)、軟件元件(包含存儲于計(jì)算機(jī)可讀媒體上的計(jì)算機(jī)代碼)或硬件與軟件元件兩者的組合。應(yīng)進(jìn)一步注意,圖1僅僅為特定實(shí)施方案的一個(gè)實(shí)例且打算圖解說明可存在于計(jì)算系統(tǒng)10中的組件的類型。
如所描繪,計(jì)算系統(tǒng)10包含中央處理器14及存儲器16。更具體來說,中央處理器14可執(zhí)行存儲于存儲器16中的指令以執(zhí)行目前所描述技術(shù)中的各種操作。如此,中央處理器14可包含一或多個(gè)通用微處理器、一或多個(gè)專用處理器(ASIC)、一或多個(gè)現(xiàn)場可編程邏輯陣列(FPGA)或其任一組合。另外,存儲器16可為有形非暫時(shí)性計(jì)算機(jī)可讀媒體,其存儲可由中央處理器14執(zhí)行的指令及/或由中央處理器14處理的數(shù)據(jù)。在一些實(shí)施例中,存儲器16可包含:易失性存儲器,例如隨機(jī)存取存儲器(RAM);及/或非易失性存儲器,例如只讀存儲器(ROM)、快閃存儲器、鐵電RAM(F-RAM)、硬盤、軟盤、磁帶、光盤或其任一組合。
另外,中央處理器14可利用計(jì)算系統(tǒng)10中的其它組件來執(zhí)行各種功能。一個(gè)功能可包含與用戶的資訊通信,其可包含將資訊提供到用戶及從所述用戶接收控制命令。舉例來說,中央處理器14可將音頻數(shù)據(jù)提供到揚(yáng)聲器18且指令揚(yáng)聲器18將音頻數(shù)據(jù)作為聲音傳遞到用戶。另外,中央處理器14可將視頻數(shù)據(jù)提供到顯示器20且指令顯示器20顯示將資訊呈現(xiàn)給用戶的圖形用戶接口。此外,為促進(jìn)接收資訊,中央處理器14可經(jīng)由一或多個(gè)輸入裝置22從用戶接收控制命令。在一些實(shí)施例中,輸入裝置22可包含按鈕、開關(guān)、鍵盤、光筆、鼠標(biāo)、數(shù)字化儀與手寫筆、聲音識別系統(tǒng)、觸敏顯示器或其任一組合。
另外,可經(jīng)由通信接口24與外部裝置進(jìn)行資訊通信。更具體來說,通信接口24可使得計(jì)算系統(tǒng)10能夠連接到網(wǎng)絡(luò),例如個(gè)人局域網(wǎng)(例如,藍(lán)牙網(wǎng)絡(luò))、局域網(wǎng)(例如,802.11x Wi-Fi網(wǎng)絡(luò))及/或廣域網(wǎng)(例如,3G蜂窩網(wǎng)絡(luò))。另外,通信接口24可使得計(jì)算系統(tǒng)10能夠(舉例來說)經(jīng)由串行電纜直接連接到外部裝置。
為初始化上文所描述的功能以及其它功能,可執(zhí)行存儲于引導(dǎo)裝置12中的啟動例程指令。如所描繪,引導(dǎo)裝置12包含微控制器26及存儲啟動例程指令的一或多個(gè)非易失性存儲器,例如引導(dǎo)塊28。因此,在將計(jì)算系統(tǒng)10開啟電源后,可即刻從引導(dǎo)塊28檢索啟動例程指令使得中央處理器14可執(zhí)行所述指令。更具體來說,啟動例程可建立計(jì)算系統(tǒng)10的恰當(dāng)運(yùn)行的基礎(chǔ)。舉例來說,在一些實(shí)施例中,當(dāng)中央處理器14執(zhí)行啟動例程指令時(shí),可執(zhí)行惡意軟件錯(cuò)誤檢測以檢測存儲于存儲器16中的惡意、有缺陷或以其它方式被破壞的代碼的存在。
因此,確保啟動例程指令從引導(dǎo)裝置12到中央處理器14的安全傳遞是重要的。一種方法可為使用共享密鑰。更具體來說,引導(dǎo)裝置12可使用共享密鑰簽署(例如,編碼)啟動例程指令且將經(jīng)簽署指令傳遞到中央處理器14。中央處理器14可接著使用共享密鑰驗(yàn)證(例如,解碼)經(jīng)簽署指令且執(zhí)行啟動例程指令。換句話說,為利用共享密鑰,可關(guān)于引導(dǎo)裝置12及中央處理器14兩者安全地共享共享密鑰。
如上文所描述,可利用用于共享共享密鑰的各種計(jì)算密集方法。因此,為利用此些方法,中央處理器14及微控制器26的處理能力應(yīng)足以有效地執(zhí)行計(jì)算。舉例來說,可需要微控制器26有效地執(zhí)行模算術(shù)。然而,由微控制器26利用以執(zhí)行其它運(yùn)算(例如編碼/解碼數(shù)據(jù))的處理能力可低于用于執(zhí)行計(jì)算密集計(jì)算(例如模算術(shù))的處理能力。
因此,由于共享密鑰可僅在連接到不同中央處理器14時(shí)或至多在計(jì)算裝置10的每次通電后即刻被共享,因此本文中所描述的技術(shù)達(dá)成關(guān)于引導(dǎo)裝置12及中央處理器14安全地共享共享密鑰而不利用計(jì)算密集計(jì)算及跨越不安全通信信道暴露共享密鑰。如此,微控制器26的處理性能可縮減,且因此引導(dǎo)裝置12的制造成本也可降低。換句話說,本文中所描述的技術(shù)可使得共享密鑰能夠甚至在一方(例如,裝置)受處理能力限制時(shí)安全地傳遞。
然而,本文中所描述的技術(shù)不限于處理能力受限制的裝置。換句話說,任何裝置可利用所述技術(shù)來安全地傳遞共享密鑰。為幫助圖解說明,圖2中描述共享密鑰共享系統(tǒng)30的框圖。在所描繪實(shí)施例中,共享密鑰共享系統(tǒng)30可達(dá)成裝置A 32(例如,引導(dǎo)裝置12)與裝置B 34(例如,中央處理器14)之間的安全通信。換句話說,共享密鑰共享系統(tǒng)30可安全地與裝置A 32及裝置B 34進(jìn)行共享密鑰傳遞。
為促進(jìn)傳遞共享密鑰,密鑰共享系統(tǒng)30包含密鑰產(chǎn)生器36及可信第三方38。在一些實(shí)施例中,密鑰產(chǎn)生器36可在安全設(shè)施處產(chǎn)生用于裝置的唯一識別符及共享密鑰配對。因此,如所描繪,密鑰產(chǎn)生器36可包含一或多個(gè)處理組件40及存儲器42以促進(jìn)密鑰產(chǎn)生器36的功能。在一些實(shí)施例中,唯一識別符可為唯一地識別裝置A 32的識別符,例如媒體存取控制(MAC)地址。另外,共享密鑰可為用于使所傳遞數(shù)據(jù)安全的密碼密鑰(例如,對稱密鑰或私人密鑰)。
在一些實(shí)施例中,密鑰產(chǎn)生器36可為制造裝置A 32的制造設(shè)施的部分。為幫助圖解說明,當(dāng)制造裝置A 32時(shí),制造商可利用密鑰產(chǎn)生器36來產(chǎn)生唯一識別符及共享密鑰配對且將所述配對存儲于裝置A 32中。舉例來說,所述配對可靜態(tài)地編程到裝置A的非易失性存儲器中,例如引導(dǎo)塊28的不可由中央處理器14或另一實(shí)體直接存取或不暴露于中央處理器14或另一實(shí)體的一部分中。另外,由于配對在處于安全設(shè)施處時(shí)經(jīng)存儲,因此最小化不想要的入侵的可能性。如此,唯一識別符及共享密鑰配對可安全地傳遞到裝置A 32。因此,如所描繪,密鑰產(chǎn)生器36經(jīng)由第一安全通信信道33以通信方式耦合到裝置A 32。
除產(chǎn)生用于裝置A 32的配對之外,密鑰產(chǎn)生器36還可產(chǎn)生用于多個(gè)裝置中的每一者(舉例來說,用于所制造的每一裝置)的唯一識別符及共享密鑰配對。所產(chǎn)生配對可接著安全地傳遞到可信第三方38。
一般來說,可信第三方38可為能夠與密鑰產(chǎn)生器36安全地通信且安全地存儲多個(gè)唯一識別符及共享密鑰配對的數(shù)據(jù)庫。舉例來說,可信第三方38可為位于云端的遠(yuǎn)程服務(wù)器。因此,如所描繪,可信第三方38可包含一或多個(gè)處理組件44以促進(jìn)與密鑰產(chǎn)生器36及用以存儲所接收配對的存儲器46的安全通信。
可利用用于使密鑰產(chǎn)生器36與可信第三方38之間的通信安全的任何適合手段。舉例來說,處理組件40及44可含有足以將在密鑰產(chǎn)生器36與可信第三方38之間傳遞的數(shù)據(jù)加密的處理性能。在一些實(shí)施例中,加密可利用數(shù)據(jù)加密標(biāo)準(zhǔn)(DES)、高級加密標(biāo)準(zhǔn)(AES)、國際數(shù)據(jù)加密算法(IDEA)、RSA加密、迪菲-赫爾曼加密或另一PKI加密技術(shù)。因此,如所描繪,密鑰產(chǎn)生器36經(jīng)由第二安全通信信道35以通信方式耦合到可信第三方38。換句話說,密鑰產(chǎn)生器36及可信第三方38可包含足以利用加密技術(shù)來使第二通信信道35安全的處理能力。在一些實(shí)施例中,第二安全通信信道35可利用網(wǎng)絡(luò),例如廣域網(wǎng)(WAN)或局域網(wǎng)(LAN)。
如下文將更詳細(xì)地描述,當(dāng)初始化用于關(guān)于裝置B 34共享共享密鑰的過程時(shí),裝置A 32可將簽名及其唯一識別符傳遞到可信第三方38。在一些實(shí)施例中,裝置A 32可與可信第三方38直接通信。因此,如所描繪,裝置A 32及可信第三方38可經(jīng)由可能并非安全的第三通信信道37以通信方式耦合。在一些實(shí)施例中,第三通信信道37可利用網(wǎng)絡(luò),例如廣域網(wǎng)(WAN)或局域網(wǎng)(LAN)。
在其它實(shí)施例中,裝置A 32可通過裝置B 34與可信第三方38通信。換句話說,裝置A 32可將簽名及其唯一識別符傳遞到裝置B 34且裝置B 34可將唯一識別符及簽名中繼到可信第三方38。因此,如所描繪,裝置A 32經(jīng)由可能最初并非安全的第四通信信道39以通信方式耦合到裝置B 34。舉例來說,在計(jì)算裝置10中,第四通信信道39可為以通信方式耦合中央處理器14與引導(dǎo)裝置12的數(shù)據(jù)總線。
如下文將更詳細(xì)地描述,一旦可信第三方38接收到唯一識別符及簽名,可信第三方38便可使用所接收唯一識別符來檢索對應(yīng)共享密鑰且使用共享密鑰來驗(yàn)證所接收簽名。如果簽名通過驗(yàn)證,那么可信第三方38可將共享密鑰安全地傳遞到裝置B 34。
一般來說,可利用用于使可信第三方38與裝置B 34之間的通信安全的任何適合手段。舉例來說,處理組件40及中央處理器14可含有足以將在可信第三方38與裝置B之間傳遞的數(shù)據(jù)加密的處理性能。在一些實(shí)施例中,加密可利用數(shù)據(jù)加密標(biāo)準(zhǔn)(DES)、高級加密標(biāo)準(zhǔn)(AES)、國際數(shù)據(jù)加密算法(IDEA)、RSA加密、迪菲-赫爾曼加密或另一PKI加密技術(shù)。因此,如所描繪,可信第三方38經(jīng)由第五安全通信信道41以通信方式耦合到裝置B 34。換句話說,可信第三方38及裝置B 34可包含足以利用加密技術(shù)來使第五通信信道41安全的處理能力。舉例來說,在計(jì)算裝置10中,中央處理器14及可信第三方可經(jīng)由連接到通信接口24的網(wǎng)絡(luò)以通信方式耦合。換句話說,第五安全通信信道41可利用網(wǎng)絡(luò),例如廣域網(wǎng)(WAN)或局域網(wǎng)(LAN)。
一旦裝置B 34接收到共享密鑰,裝置A 32及裝置B 34便可通過使用共享密鑰編碼及解碼所傳遞數(shù)據(jù)來安全地通信。以此方式,通過使用共享密鑰簽署數(shù)據(jù)(此驗(yàn)證所傳遞數(shù)據(jù)的完整性)來使在裝置A 32與裝置B之間傳遞的數(shù)據(jù)安全。如上文所描述,利用上文所描述的技術(shù)安全地傳遞共享密鑰可通過設(shè)置密鑰共享系統(tǒng)30來達(dá)成。
圖3中描述用于設(shè)置密鑰共享系統(tǒng)30的過程48的一個(gè)實(shí)施例。一般來說,過程48包含:產(chǎn)生唯一識別符及共享密鑰配對(過程塊50);將所述配對存儲于第一裝置中(過程塊52);發(fā)射所述配對以用于存儲于可信第三方中(過程塊54);及將共享密鑰安全地傳遞到第二裝置(過程塊56)。在一些實(shí)施例中,過程48可由存儲于例如存儲器16、42或46及/或引導(dǎo)塊28的一或多個(gè)有形非暫時(shí)性計(jì)算機(jī)可讀媒體(單獨(dú)地或組合地)中的指令實(shí)施,且由例如中央處理器14、處理組件40或44及/或微控制器26的一或多個(gè)處理組件(單獨(dú)地或組合地)執(zhí)行。
因此,在一些實(shí)施例中,密鑰產(chǎn)生器36可產(chǎn)生用于裝置A 32的唯一識別符及共享密鑰配對(過程塊50)。更具體來說,密鑰產(chǎn)生器36可產(chǎn)生用以唯一地識別裝置A 32的唯一識別符。舉例來說,在一些實(shí)施例中,所述唯一識別符可為包含序列號及制造商識別符的MAC地址。更具體來說,序列號可指示制造裝置A 32的次序。換句話說,為產(chǎn)生序列號,密鑰產(chǎn)生器36可將序列號指派給一個(gè)裝置,使序列號遞增,且將經(jīng)遞增序列號指派給下一裝置。在其它實(shí)施例中,唯一識別符可(舉例來說)基于規(guī)則集而隨機(jī)產(chǎn)生。
另外,密鑰產(chǎn)生器36可產(chǎn)生共享密鑰,可使用所述共享密鑰來關(guān)于裝置A 32編碼/解碼所傳遞數(shù)據(jù)的。更具體來說,共享密鑰可基于用于裝置A與裝置B之間的通信的編碼/解碼類型而產(chǎn)生。在一些實(shí)施例中,共享密鑰可基于特定規(guī)則集而產(chǎn)生。在其它實(shí)施例中,共享密鑰可為大隨機(jī)產(chǎn)生字符串,其可包含數(shù)、字母及/或符號。共享密鑰的大小可經(jīng)選擇以降低外部方能夠猜測密鑰的所有可能性的可能性。因此,共享密鑰可為80位、128位、256位或更多位。
在一些實(shí)施例中,可單獨(dú)產(chǎn)生唯一識別符及共享密鑰。舉例來說,用于裝置A 32的唯一識別符可由制造商產(chǎn)生,制造商可不具有對用于產(chǎn)生共享密鑰的算法的存取權(quán)。隨后,單獨(dú)安全設(shè)施可產(chǎn)生共享密鑰。換句話說,密鑰產(chǎn)生器36可包含制造設(shè)置及/或額外安全設(shè)施。
一旦產(chǎn)生用于裝置A 32的唯一識別符及共享密鑰,密鑰產(chǎn)生器36便可將配對存儲于存儲器42中。更具體來說,唯一識別符及共享密鑰可經(jīng)存儲使得其彼此對應(yīng)。換句話說,可基于唯一識別符而確定對應(yīng)共享密鑰。在一些實(shí)施例中,當(dāng)將共享密鑰與單個(gè)唯一識別符配對時(shí),可基于共享密鑰而確定唯一識別符。
另外,密鑰產(chǎn)生器36可將唯一識別符及共享密鑰配對存儲于裝置A 32中(過程塊52)。在一些實(shí)施例中,可在制造期間將配對存儲于裝置A 32中。舉例來說,在引導(dǎo)裝置12的制造期間,密鑰產(chǎn)生器36可將配對靜態(tài)地編程到不可由另一實(shí)體直接存取或不暴露于另一實(shí)體的非易失性存儲器(例如不可由中央處理器14直接存取的引導(dǎo)塊28的一部分)中。在一些實(shí)施例中,可(舉例來說)使用離散電路將配對硬接線到裝置A 32中。在其它實(shí)施例中,用于裝置A 32的唯一識別符可由可不具有對共享密鑰的存取權(quán)的制造商存儲。隨后,單獨(dú)安全設(shè)施(舉例來說,產(chǎn)生共享密鑰的安全設(shè)施)可將共享密鑰存儲于裝置A中使得共享密鑰與唯一識別符配對。換句話說,可在完成引導(dǎo)裝置12的制造之后將配對存儲于引導(dǎo)裝置12中。
更具體來說,配對可在安全設(shè)施(例如制造設(shè)施)處存儲于裝置A 32中。在一些實(shí)施例中,安全設(shè)施可包含用以降低外部方獲得對配對的存取權(quán)的可能性的入侵阻止系統(tǒng)。如此,尤其當(dāng)在制造期間存儲配對時(shí),共享密鑰可安全地傳遞到裝置A 32。
此外,可將唯一識別符及共享密鑰配對存儲于可信第三方38中(過程塊54)。更具體來說,可(舉例來說)經(jīng)由網(wǎng)絡(luò)將配對從密鑰產(chǎn)生器36傳遞到可信第三方38。在此些實(shí)施例中,可通過將所傳送數(shù)據(jù)加密而安全地傳遞配對。更具體來說,密鑰產(chǎn)生器36可將配對加密且將經(jīng)加密配對傳遞到可信第三方38??尚诺谌?8可接著將所接收配對解密且將經(jīng)解密配對存儲于存儲器46中。
接著,可將共享密鑰從可信第三方38安全地傳遞到裝置B 34(過程塊56)。在一些實(shí)施例中,可(舉例來說)經(jīng)由網(wǎng)絡(luò)將共享密鑰從可信第三角色38傳遞到裝置B 34。在此些實(shí)施例中,可通過將所傳送數(shù)據(jù)加密而安全地傳遞共享密鑰。更具體來說,可信第三方38可將共享密鑰加密且將經(jīng)加密密鑰傳遞到裝置B 34。裝置B 34可接著將所接收密鑰解密且將經(jīng)解密共享密鑰存儲于(舉例來說)存儲器16中。
然而,由于使用共享密鑰來使裝置A 32與裝置B 34之間的通信安全,因此共享密鑰必須保持為機(jī)密的。因此,用于將共享密鑰傳遞到裝置B 34的過程可包含用以降低外部方獲得共享密鑰的可能性的安全措施。為幫助圖解說明,圖4中描述用于傳遞共享密鑰的可信第三方38、裝置B 34及裝置A 32之間的數(shù)據(jù)流。
在所描繪實(shí)施例中,裝置B 34可將對其唯一識別符及簽名的請求發(fā)射到裝置A 32(箭頭58)。舉例來說,在計(jì)算系統(tǒng)10中,中央處理器14可經(jīng)由數(shù)據(jù)總線將請求傳遞到引導(dǎo)裝置12。在一些實(shí)施例中,可使用臨時(shí)值產(chǎn)生簽名,所述臨時(shí)值可為用于提供消息的原創(chuàng)性的隨機(jī)或偽隨機(jī)數(shù)。因此,裝置B 34可連同請求一起發(fā)射臨時(shí)值。在其它實(shí)施例中,可信第三方38可將請求連同臨時(shí)值一起發(fā)射(未展示)到裝置A 32。
響應(yīng)于請求,裝置A 32可產(chǎn)生簽名(箭頭60)。在一些實(shí)施例中,可通過使用臨時(shí)值及共享密鑰對唯一識別符執(zhí)行密碼散列而產(chǎn)生簽名。舉例來說,在計(jì)算系統(tǒng)10中,微控制器26可產(chǎn)生簽名。
接著,裝置A 32可將唯一識別符連同簽名一起發(fā)射到裝置B 34(箭頭62)且裝置B 34可將唯一識別符及簽名中繼到可信第三方(箭頭64)。舉例來說,在計(jì)算系統(tǒng)10中,引導(dǎo)裝置12可經(jīng)由數(shù)據(jù)總線將唯一識別符及簽名傳遞到中央處理器14。中央處理器14可經(jīng)由連接到通信接口24的網(wǎng)絡(luò)將唯一識別符及簽名中繼到可信第三方。在其它實(shí)施例中,裝置A 32可將唯一識別符及簽名直接傳遞(未展示)到可信第三方38。
使用所接收唯一識別符,可信第三方38可檢索存儲于裝置A 32中的共享密鑰(箭頭66)。另外,使用共享密鑰,可信第三方38可驗(yàn)證所接收簽名(箭頭68)。舉例來說,參考上文所描述的計(jì)算系統(tǒng)10,可信第三方38可從存儲器46檢索共享密鑰且使用處理組件44驗(yàn)證簽名。更具體來說,可信第三方38可通過使用共享密鑰對唯一識別符執(zhí)行與由裝置A 32執(zhí)行以產(chǎn)生簽名的運(yùn)算相同的運(yùn)算(例如,密碼散列)來驗(yàn)證簽名。
如果由可信第三方38確定的簽名與從裝置A 32接收的簽名匹配,那么可信第三方38可將共享密鑰傳遞到裝置B 34(箭頭70)。舉例來說,參考上文所描述的計(jì)算系統(tǒng)10,可信第三方38可經(jīng)由連接到通信接口24的網(wǎng)絡(luò)將共享密鑰傳遞到中央處理器14。
一旦接收到共享密鑰,裝置B 34便可存儲共享密鑰(箭頭72)。舉例來說,在計(jì)算系統(tǒng)10中,中央處理器14可將共享密鑰存儲于存儲器16中。如上文所描述,限制共享密鑰的暴露是重要的。如此,中央處理器14可存儲共享密鑰使得其不可由另一實(shí)體直接存取或不暴露于另一實(shí)體。換句話說,可將共享密鑰安全地存儲于裝置B中。
以此方式,可通過使用共享密鑰來驗(yàn)證所發(fā)射數(shù)據(jù)的完整性(舉例來說,通過借助共享密鑰簽署所發(fā)射數(shù)據(jù))來使裝置A 32與裝置B 34之間的隨后通信(箭頭74)安全。舉例來說,在計(jì)算系統(tǒng)10中,中央處理器14可從存儲器16檢索共享密鑰且通過使用共享密鑰執(zhí)行密碼散列而簽署(例如,編碼)數(shù)據(jù)。在接收到經(jīng)簽署數(shù)據(jù)后,微控制器26即刻可從非易失性存儲器(例如,引導(dǎo)塊28)檢索共享密鑰且通過使用共享密鑰執(zhí)行相同密碼散列來驗(yàn)證(例如,解碼)數(shù)據(jù)。更具體來說,可通過將由中央處理器14執(zhí)行的密碼散列的結(jié)果與由微控制器26執(zhí)行的密碼散列的結(jié)果進(jìn)行比較來驗(yàn)證結(jié)果。而且,當(dāng)結(jié)果匹配時(shí),微控制器26可驗(yàn)證中央處理器14的身份及/或驗(yàn)證數(shù)據(jù)尚未被更改。微控制器26可接著處理經(jīng)驗(yàn)證數(shù)據(jù)。
類似地,微控制器26可從非易失性存儲器(例如,引導(dǎo)塊28)檢索共享密鑰且通過使用共享密鑰執(zhí)行密碼散列而簽署(例如,編碼)數(shù)據(jù)。在接收到經(jīng)簽署后,中央處理器14即刻可從存儲器16檢索共享密鑰且通過使用共享密鑰執(zhí)行相同密碼散列來驗(yàn)證(例如,解碼)數(shù)據(jù)。更具體來說,可通過將由中央處理器14執(zhí)行的密碼散列的結(jié)果與由微控制器26執(zhí)行的密碼散列的結(jié)果進(jìn)行比較來驗(yàn)證結(jié)果。而且,當(dāng)結(jié)果匹配時(shí),中央處理器14可驗(yàn)證微控制器26的身份及/或驗(yàn)證數(shù)據(jù)尚未被更改。中央處理器14可接著處理經(jīng)驗(yàn)證數(shù)據(jù)??衫酶鞣N編碼/解碼技術(shù),例如Twofish、Serpent、AES、Blowfish、CAST5、RC4、3DES及IDEA(舉例來說)。如此,可在不將共享密鑰暴露于其它實(shí)體的情況下使數(shù)據(jù)傳遞安全。
圖5中描述用于實(shí)施數(shù)據(jù)流的過程76的一個(gè)實(shí)施例。一般來說,過程76包含:向第一裝置請求唯一識別符及簽名(過程塊78);產(chǎn)生簽名(過程塊80);將唯一識別符及簽名發(fā)送到可信第三方(過程塊82);檢索共享密鑰(過程塊84);驗(yàn)證簽名(過程塊86);將共享密鑰發(fā)送到第二裝置(過程塊88);及使用共享密鑰解碼/編碼通信(過程塊90)。在一些實(shí)施例中,過程76可由存儲于例如存儲器16、42或46及/或引導(dǎo)塊28的一或多個(gè)有形非暫時(shí)性計(jì)算機(jī)可讀媒體中的指令實(shí)施,且由例如中央處理器14、處理組件40或44及/或微控制器26的一或多個(gè)處理組件執(zhí)行。
如在數(shù)據(jù)流中,可由裝置B 34初始化過程76。舉例來說,當(dāng)裝置B 34確定期望與裝置A 32的通信但裝置B 34不知曉共享密鑰時(shí),裝置B 34可初始化過程76。在其它實(shí)施例中,可由可信第三方38及/或裝置B 34初始化過程76。舉例來說,當(dāng)裝置B 34或可信第三方38確定裝置B 34及裝置A 32第一次(舉例來說,在計(jì)算系統(tǒng)10的試運(yùn)行時(shí)或在計(jì)算系統(tǒng)10的每次通電時(shí))以通信方式耦合時(shí),可初始化過程76。
一旦初始化過程76,便可將對唯一識別符及簽名的請求傳遞到裝置A 32(過程塊78)。如在數(shù)據(jù)流中,舉例來說,當(dāng)裝置B 34初始化過程76時(shí),可將請求從裝置B 34傳遞到裝置A 32。在其它實(shí)施例中,當(dāng)可信第三方38初始化過程76時(shí),可將請求從可信第三方38傳遞到裝置B 34且裝置B 34可將請求中繼到裝置A 32。另外或替代地,可將請求從可信第三方38直接傳遞到裝置A 32。
如上文所描述,可使用唯一識別符、共享密鑰及/或臨時(shí)值產(chǎn)生簽名。因此,可將用于產(chǎn)生簽名的臨時(shí)值連同請求一起傳遞到裝置A 32(過程塊92)。一般來說,臨時(shí)值可為隨機(jī)或偽隨機(jī)數(shù)。在一些實(shí)施例中,可由可信第三方38產(chǎn)生臨時(shí)值使得可信第三方38可利用臨時(shí)值來驗(yàn)證由裝置A 32傳回的簽名。在其它實(shí)施例中,臨時(shí)值可由裝置B 34產(chǎn)生且傳遞到裝置A 32及可信第三方38兩者。
響應(yīng)于接收到請求,裝置A 32可產(chǎn)生簽名(過程塊80)。更具體來說,裝置A 32可使用共享密鑰及所接收臨時(shí)值產(chǎn)生簽名。在一些實(shí)施例中,裝置A 32可通過使用共享密鑰及臨時(shí)值作為密鑰來對唯一識別符執(zhí)行密碼散列而產(chǎn)生簽名。密碼散列函數(shù)的輸出(例如,結(jié)果)為簽名。另外,由于臨時(shí)值可為隨機(jī)或偽隨機(jī)數(shù),因此對于外部方再創(chuàng)建簽名可為困難的。
裝置A 32可接著將所產(chǎn)生簽名及其唯一識別符傳遞到可信第三方38(過程塊82)。如在數(shù)據(jù)流中,可將簽名及唯一識別符從裝置A 32傳遞到裝置B 34且裝置B 34可將簽名及唯一識別符中繼到可信第三方38。另外或替代地,可將簽名及唯一識別符從裝置A 32直接傳遞到可信第三方38。
使用所接收唯一識別符,可信第三方38可檢索用于裝置A 32的對應(yīng)共享密鑰(過程塊84)。如上文所描述,可信第三方38可將用于多個(gè)裝置的唯一識別符及共享密鑰配對存儲于(舉例來說)存儲器46中。因此,可信第三方38可搜索所存儲配對以找到與所接收唯一識別符對應(yīng)的共享密鑰。
可信第三方38可接著驗(yàn)證從裝置A 32接收的簽名(過程塊86)。更具體來說,由于可信第三方38具有共享密鑰及臨時(shí)值,因此可信第三方38可執(zhí)行由裝置A 32使用以產(chǎn)生簽名的相同運(yùn)算。舉例來說,可信第三方38可使用共享密鑰及臨時(shí)值作為密鑰對唯一識別符執(zhí)行相同密碼散列??山又鴮⒚艽a散列函數(shù)的輸出與所接收簽名進(jìn)行比較。如果簽名匹配,那么可信第三方38可確定裝置A 32實(shí)際上知曉共享密鑰。換句話說,由于共享密鑰唯一于裝置A 32,因此可信第三方38可使用簽名來驗(yàn)證裝置A 32的身份。
另一方面,如果簽名不匹配,那么可信第三方38可確定外部方偽裝為裝置A 32。換句話說,可信第三方38可確定外部方嘗試確定共享密鑰。在一些實(shí)施例中,此可指示對計(jì)算系統(tǒng)10的嘗試入侵。如此,可信第三方38可阻擋檢索共享密鑰的進(jìn)一步嘗試及/或通知操作者可能入侵。
如果簽名通過驗(yàn)證,那么可信第三方38可將共享密鑰安全地傳遞到裝置B 34(過程塊88)。更具體來說,可信第三方38可將共享密鑰加密且將經(jīng)加密密鑰發(fā)射到裝置B 34。裝置B 34可接著解密共享密鑰且將共享密鑰存儲于(舉例來說)存儲器16中。
隨后,裝置A 32及裝置B 34可通過使用共享密鑰編碼及解碼數(shù)據(jù)而安全地通信(過程塊90)。一般來說,裝置A 32可使用共享密鑰簽署(例如,編碼)數(shù)據(jù)且將經(jīng)簽署數(shù)據(jù)發(fā)射到裝置B 34。在一些實(shí)施例中,裝置A 32可通過使用共享密鑰對數(shù)據(jù)執(zhí)行密碼散列而簽署數(shù)據(jù)。裝置A 32可接著將經(jīng)簽署數(shù)據(jù)發(fā)射到裝置B。在一些實(shí)施例中,經(jīng)簽署數(shù)據(jù)可包含連同由裝置A 32執(zhí)行的密碼散列的結(jié)果一起的數(shù)據(jù)。裝置B 34可接著驗(yàn)證(例如,解碼)且處理所接收數(shù)據(jù)。在一些實(shí)施例中,裝置B 34可通過對數(shù)據(jù)執(zhí)行相同密碼散列且將由裝置A 32執(zhí)行的密碼散列的結(jié)果與由裝置B 34執(zhí)行的密碼散列的結(jié)果進(jìn)行比較來驗(yàn)證經(jīng)簽署數(shù)據(jù)。更具體來說,當(dāng)結(jié)果匹配時(shí),裝置B 34可驗(yàn)證裝置A 32的身份及/或驗(yàn)證數(shù)據(jù)尚未被修改(例如,篡改)。另外,在一些實(shí)施例中,相同密碼散列函數(shù)可通過裝置A 32、可信第三方38及裝置B 34以產(chǎn)生簽名且簽署/驗(yàn)證所發(fā)射數(shù)據(jù)。
以此方式,裝置A 32及裝置B 34可設(shè)置安全通信信道(例如,通信信道39)。因此,在計(jì)算系統(tǒng)10中,引導(dǎo)裝置12可將啟動例程指令安全地傳遞到中央處理器14。更具體來說,微控制器26可使用共享密鑰簽署(例如,編碼)啟動例程指令且將經(jīng)編碼指令發(fā)射到中央處理器14。中央處理器14可接著驗(yàn)證(例如,解碼)指令且執(zhí)行啟動指令。另外,由于共享密鑰安全地傳遞到中央處理器14及引導(dǎo)裝置12兩者,因此最小化外部方更改啟動例程指令的風(fēng)險(xiǎn)。
因此,本發(fā)明的技術(shù)效應(yīng)包含達(dá)成共享密鑰到裝置的安全傳遞。實(shí)際上,本發(fā)明技術(shù)使得共享密鑰能夠甚至在裝置中的一者在處理能力方面受限制時(shí)安全地傳遞到裝置。
盡管本發(fā)明可易于發(fā)生各種修改及替代形式,但特別實(shí)施例已通過實(shí)例方式展示于圖式中并詳細(xì)的描述于本文中。然而,應(yīng)理解,并不打算將本發(fā)明限制于所揭示的特定形式。而是,本發(fā)明打算涵蓋歸屬于如由所附權(quán)利要求書定義的本發(fā)明的精神及范圍內(nèi)的所有修改、等效形式及替代方案。