可如何在裝置上操作的信息,
[0030]?控制可在裝置上啟用還是停用某些安全特征的信息,及/或
[0031]?其它與安全有關(guān)的信息。
[0032]安全參數(shù)可包含與無線裝置100的信任根有關(guān)的信息。信任根可為無線裝置100上的所有安全機(jī)制的根本。與信任根有關(guān)的信息可包含對應(yīng)于一或多個私有根密鑰的一或多個公共根密鑰、用于公共根密鑰的一或多個證書等。私有根密鑰可用于標(biāo)志發(fā)送到無線裝置100的數(shù)據(jù)。對應(yīng)公共根密鑰可用于認(rèn)證已通過私有根密鑰標(biāo)志的數(shù)據(jù)。舉例來說,公共根密鑰可用于安全啟動中以認(rèn)證被加載到無線裝置100上的軟件,如下文所描述。
[0033]安全參數(shù)可控制哪一個軟件可在無線裝置100上執(zhí)行及/或軟件可如何在無線裝置100上操作。舉例來說,安全參數(shù)可包含用于認(rèn)證經(jīng)授權(quán)用于在無線裝置100上執(zhí)行的軟件的公共密鑰。所述軟件可基于對應(yīng)于公共密鑰的私有密鑰進(jìn)行標(biāo)志并且可存儲在無線裝置10()上。所述軟件可在于無線裝置100上執(zhí)行之前基于公共密鑰進(jìn)行認(rèn)證,如下文所描述。
[0034]安全參數(shù)可控制可在無線裝置100上啟用還是停用某些安全特征。舉例來說,安全參數(shù)可控制是否啟用無線裝置100的安全啟動、是否可停用無線裝置100的調(diào)試能力以允許在測試或調(diào)試期間接入無線裝置100的內(nèi)部狀態(tài)等。
[0035]—些安全參數(shù)可用于多個目的。舉例來說,公共根密鑰可用作無線裝置100的信任根以及用于控制哪一個軟件可在無線裝置100上執(zhí)行。
[0036]可將安全參數(shù)存儲在無線裝置100上的安全存儲器140中。舉例來說,可使用無線裝置100的處理器的IC芯片上的OTP元件存儲安全參數(shù)。所述OTP元件可實施有可在制造期間被一次燒斷的熔絲以經(jīng)由熔絲的狀態(tài)永久地存儲數(shù)據(jù)。
[0037]可通過允許無線裝置100在執(zhí)行軟件之前認(rèn)證軟件的方式將軟件及安全信息存儲在無線裝置100上。下文描述存儲在無線裝置100上的用于認(rèn)證軟件的示范性安全機(jī)制。
[0038]圖3A展示用于將安全信息存儲在無線裝置100上以支持被加載到無線裝置100上的軟件的認(rèn)證的過程300的示范性設(shè)計。過程300可通過安全服務(wù)器或一些其它實體執(zhí)行。
[0039]在安全服務(wù)器處,符號函數(shù)320可在公共密鑰X’上產(chǎn)生數(shù)字簽名SR且使用私有根密鑰R產(chǎn)生可能的其它信息。簽名SR可用于認(rèn)證為安全服務(wù)器的源實體。符號函數(shù)320可實施RSA(非對稱密鑰)算法、數(shù)字簽名算法(DSA),或一些其它密碼編譯(數(shù)字簽名或加密)算法。證書產(chǎn)生器322可形成含有公共密鑰X’、簽名SR及可能其它信息的證書CR,所述其它信息例如,源實體的標(biāo)識符、選擇供使用的密碼編譯算法、證書的有效期等??蓪⒋俗C書作為X.509證書存儲在無線裝置100上的安全存儲器140 (或一些其它存儲器)中。公共根密鑰R’可通過安全方式可用于無線裝置100并且可存儲在無線裝置100上的安全存儲器140 (例如,OTP存儲器或ROM)中。
[0040]安全散列函數(shù)330可散列被加載到無線裝置100上的軟件并且可提供散列摘要S。安全散列函數(shù)330可實施SHA-1、SHA-2、MD-5或一些其它安全散列算法。符號函數(shù)332可使用私有密鑰X在摘要S上產(chǎn)生數(shù)字簽名SX??蓪⒑灻鸖X存儲在存儲器150中。符號函數(shù)332可實施RSA、DSA或一些其它密碼編譯算法??蓪④浖鎯υ跓o線裝置100上的存儲器150 (或一些其它存儲器)中。
[0041]圖3B展示用于無線裝置100的安全啟動的過程350的示范性設(shè)計。過程350可通過無線裝置100執(zhí)行,如下文所描述。在無線裝置100處,驗證函數(shù)370可從安全存儲器140接收證書CR及公共根密鑰R’。驗證函數(shù)370可從證書CR提取簽名SR及公共密鑰X’、用公共根密鑰R’驗證簽名SR及在簽名SR得到驗證的情況下提供公共密鑰X’。由第三方對證書CR的任何篡改可由簽名SR而不是通過驗證容易地檢測到。
[0042]安全散列函數(shù)380可從存儲器150接收軟件、散列軟件及提供散列摘要S,。安全散列函數(shù)380可實施由圖3A中的安全散列函數(shù)330使用的相同安全散列算法。驗證函數(shù)390可接收來自安全散列函數(shù)380的摘要S,、來自存儲器150的數(shù)字簽名SX及來自驗證函數(shù)370的公共密鑰X’。驗證函數(shù)390可通過公共密鑰X’及摘要S’驗證數(shù)字簽名SX且可指示數(shù)字簽名SX是否得到驗證。公共密鑰X’通過公共根密鑰R’進(jìn)行認(rèn)證。因此,由第三方對數(shù)字簽名SX及/或軟件的任何篡改可由數(shù)字簽名SX而不是通過驗證容易地檢測到。如果數(shù)字簽名SX得到驗證,那么可提供軟件以供使用。否則,可提供錯誤消息。
[0043]圖3A展示示范性安全啟動軟件標(biāo)志過程。圖3B展示示范性安全啟動軟件認(rèn)證過程。還可通過其它方式實施安全啟動。
[0044]在正常操作期間,無線裝置100可執(zhí)行安全啟動以在執(zhí)行軟件之前認(rèn)證被加載到無線裝置100上的軟件。對于安全啟動,無線裝置100可首先通過公共根密鑰R’認(rèn)證簽名SR以確定公共密鑰X’的真實性。如果公共密鑰X’得到認(rèn)證,那么無線裝置100可通過公共密鑰X’認(rèn)證簽名SX以確定軟件的真實性。安全啟動可確保僅已授權(quán)用于無線裝置100的軟件可在無線裝置100上執(zhí)行。
[0045]硬件秘密密鑰通常提供于例如片上系統(tǒng)(SoC) IC等的ASIC上且用于對存儲在ASIC外部的存儲器中的數(shù)據(jù)進(jìn)行加密及解密。此安全機(jī)制還稱為安全文件系統(tǒng)或經(jīng)加密文件系統(tǒng)。通常將硬件秘密密鑰與公共/私有密鑰分開。硬件秘密密鑰通常是用于對裝置中的秘密進(jìn)行加密及解密的對稱密鑰。舉例來說,硬件秘密密鑰可用于在將經(jīng)加密數(shù)據(jù)存儲在不受保護(hù)的數(shù)據(jù)存儲裝置(例如,固態(tài)磁盤(SSD)、多媒體卡(MMC)、eMMC等)中之前對數(shù)據(jù)進(jìn)行加密。許多OEM并不信任其生產(chǎn)車間員工或ODM員工。因此,大部分安全實施方案并不允許軟件訪問ASIC上的硬件秘密密鑰。然而,這些安全實施方案通常允許由軟件間接使用硬件秘密密鑰。此使用可包含數(shù)據(jù)的解密或加密。
[0046]在軟件已通過連接至ASIC的信任根(RoT)的認(rèn)證機(jī)制認(rèn)證及驗證之后,所述軟件可被視為可信的。此認(rèn)證機(jī)制通常稱為安全啟動。然而,安全啟動可能在制造過程期間不可用。
[0047]通常的做法是提供具有通用ASIC的0EM/0DM,其中提供硬件秘密密鑰、不啟用安全啟動及不提供信任根??蓪⒂布孛苊荑€提供在裝置或ASIC上的安全存儲器中。在此階段,在啟用可保護(hù)裝置上的軟件的完整性的安全啟動及/或其它安全機(jī)制之前,未經(jīng)授權(quán)的軟件可被加載到裝置上且通過裝置執(zhí)行。提供于裝置上的任何安全密鑰可通過未經(jīng)授權(quán)的軟件操縱。這為不可信的0DM/0EM生產(chǎn)工人打開使用硬件秘密密鑰操縱數(shù)據(jù)、曝露機(jī)密信息或危害通過硬件秘密密鑰保護(hù)的數(shù)據(jù)的完整性的大門。
[0048]無線裝置100因此在從(i)在圖2中在步驟I中硬件秘密密鑰例如通過IC芯片制造商提供于無線裝置100上的時候至(ii)在圖2中在步驟3中例如通過OEM將安全性鎖定在無線裝置100上的時候可易受攻擊。在此易受損時間段期間,未經(jīng)授權(quán)的軟件可被惡意地加載到無線裝置100上并且通過無線裝置執(zhí)行以(i)訪問硬件秘密密鑰及/或(ii)使用硬件秘密密鑰操縱數(shù)據(jù),例如,在硬件秘密密鑰不可由無線裝置100上的軟件訪問的情況下。
[0049]在本發(fā)明的一方面中,可通過基于可與經(jīng)授權(quán)用于裝置的軟件有關(guān)的硬件秘密密鑰以及至少一個安全參數(shù)產(chǎn)生工作密鑰來提高裝置的安全(并且可有效地尋址上文所描述的安全弱點)。工作密鑰(而不是硬件秘密密鑰)可用于對裝置上的數(shù)據(jù)進(jìn)行加密及/或解密。
[0050]圖4展示基于硬件秘密密鑰以常規(guī)方式對數(shù)據(jù)進(jìn)行加密及解密的過程400。在安全服務(wù)器410(其可屬于OEM)處,密碼引擎430可通過裝置450的硬件秘密密鑰442對數(shù)據(jù)進(jìn)行加密以獲得經(jīng)加密數(shù)據(jù)。密碼引擎430可如通過安全服務(wù)器410中的軟件440引導(dǎo)那樣操作??蓪⒔?jīng)加密數(shù)據(jù)發(fā)送到裝置450。
[0051]在裝置450處,密碼引擎470可從安全服務(wù)器410接收經(jīng)加密數(shù)據(jù)且可通過裝置450的硬件秘密密