軟件密鑰更新方法和裝置制造方法
【專利摘要】本發(fā)明實施例提供了一種軟件密鑰更新方法和裝置。可信客戶端設(shè)備接收服務(wù)器發(fā)送的軟件對應(yīng)的密鑰信息和校驗信息,其中,所述密鑰信息包括:待更新的第一軟件簽名公鑰、和新的第二軟件簽名公鑰,所述校驗信息包括:軟件校驗信息。如果可信客戶端設(shè)備存儲的所述軟件對應(yīng)的合法的第一軟件簽名公鑰和接收到的第一軟件簽名公鑰一致,驗證所述軟件校驗信息是否合法。如果所述軟件校驗信息合法,將所述可信客戶端設(shè)備存儲的所述軟件對應(yīng)的合法的第一軟件簽名公鑰更新為所述第二軟件簽名公鑰。通過上述方案,本發(fā)明可以實現(xiàn)遠程更新可信客戶端設(shè)備上的軟件簽名密鑰,從而防止了失效密鑰無法更新問題的發(fā)生。
【專利說明】軟件密鑰更新方法和裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及無線通信領(lǐng)域,尤其涉及軟件密鑰更新方法和裝置。
【背景技術(shù)】
[0002]隨著移動互聯(lián)網(wǎng)絡(luò)的發(fā)展,終端及網(wǎng)絡(luò)設(shè)備成了社會生活中不可或缺的重要組成 部分,用戶信息安全和隱私保護得到越來越高的重視。而且無線網(wǎng)絡(luò)架構(gòu)扁平化、移動網(wǎng)絡(luò) 全網(wǎng)際協(xié)議(Internet Protocol, IP)化、終端智能化、及基站等網(wǎng)絡(luò)設(shè)備物理形態(tài)小型化, 都導(dǎo)致了終端或網(wǎng)絡(luò)設(shè)備易受到越來越多的安全威脅。
[0003]為應(yīng)對這種針對終端或網(wǎng)絡(luò)設(shè)備本身軟硬件安全的威脅,許多終端或網(wǎng)絡(luò)設(shè)備都 要求設(shè)計上具備一定的可信環(huán)境,用以驗證終端或網(wǎng)絡(luò)設(shè)備本身的身份合法性和有無被攻 擊的異常發(fā)生??尚怒h(huán)境(Trusted Enviixmment,TrE),是一種邏輯實體,用于提供值得信 賴的環(huán)境,保證敏感職能(secret function)的執(zhí)行,和存儲敏感信息。
[0004]針對物理環(huán)境易受攻擊的小型網(wǎng)絡(luò)設(shè)備或終端,其安全需求更為迫切。為了要求 家庭基站(Home (evolved) Node B, H(e)NB)從硬件上支持可信環(huán)境,第三代合作伙伴計劃 (3rd Generation Partnership Project, 3GPP)國際標準TS33.320對可信環(huán)境功能做了如 下要求:當H(e)NB處于開機狀態(tài),或者重啟動狀態(tài)時,可信環(huán)境必須由不可移除的、以及基 于硬件的信任根(trusted root key)構(gòu)成的一個安全啟動過程。信任根必須物理上綁定 到H(e)NB。安全啟動過程應(yīng)包括執(zhí)行TrE的信任根的完整性校驗。只有成功驗證的信任根 才能被加載或啟動。TrE已成功啟動后,須繼續(xù)驗證H(e)NB中安全運行所需要的其他組件 (例如,操作系統(tǒng)和程序)。
[0005]類似的可信環(huán)境也可以建立在智能終端,用以實現(xiàn)防止惡意代碼插入的安全啟 動,軟件的安全自檢和安裝,以及敏感數(shù)據(jù)的安全存儲等。下文中將涉及到的具有可信環(huán)境 的網(wǎng)絡(luò)設(shè)備及終端統(tǒng)稱為可信客戶端設(shè)備(Client)或可信設(shè)備。
[0006]可信平臺模塊(Trusted Platform Module, TPM)是TrE的核心模塊,通常以系 統(tǒng)級芯片(System on Chip, SoC)的形式將幾個密碼功能模塊(cryptographic function modules),封裝在一個芯片里,夕卜部未經(jīng)授權(quán)無法訪問TPM內(nèi)部。在出廠時,在芯片中預(yù)先 植入一個背書密鑰(Endorsement Key, EK)對。TPM模塊還存儲EK對以及由EK對推演出 的主密鑰(Master Key, MK)對,以及存儲計算的中間數(shù)據(jù)。TrE可信的原因在于:每個TPM 都擁有不同的密鑰對,不同的密鑰對能夠帶來高度安全性,以及TPM平臺或與TPM平臺相似 功能裝置具有物理安全性。在此基礎(chǔ)上構(gòu)建的可信環(huán)境具有防止對可信客戶端設(shè)備內(nèi)部進 行非法訪問,能夠保護TrE的信任根,即TPM,并能夠依此建立信任鏈。TPM芯片廣泛應(yīng)用于 個人計算機(Personal Computer, PC),可用于管理或存儲硬盤上的敏感信息;對網(wǎng)絡(luò)通信 提供加密;以及對硬盤數(shù)據(jù)加密保存等等。
[0007]現(xiàn)有技術(shù)中,無法實現(xiàn)由遠端控制TPM對簽名密鑰的公鑰進行更新。
【發(fā)明內(nèi)容】
[0008]有鑒于此,本發(fā)明實施例提供了軟件密鑰更新方法裝置,以解決如何更新軟件密 鑰的問題。
[0009]第一方面,提供了一種軟件密鑰更新方法,所述方法包括:
[0010]可信客戶端設(shè)備接收服務(wù)器發(fā)送的軟件對應(yīng)的密鑰信息和校驗信息,其中,所述 密鑰信息包括:待更新的第一軟件簽名公鑰、和新的第二軟件簽名公鑰,所述校驗信息包 括:軟件校驗信息;
[0011]如果可信客戶端設(shè)備存儲的所述軟件對應(yīng)的合法的第一軟件簽名公鑰和接收到 的第一軟件簽名公鑰一致,驗證所述軟件校驗信息是否合法;
[0012]如果所述軟件校驗信息合法,將所述可信客戶端設(shè)備存儲的所述軟件對應(yīng)的合法 的第一軟件簽名公鑰更新為所述第二軟件簽名公鑰。
[0013]第二方面,提供了一種可信安全模塊,所述可信安全模塊包括:存儲單元、輸入單 元和驗證單元,
[0014]所述存儲單元,用于存儲軟件對應(yīng)的合法的第一軟件簽名公鑰;
[0015]所述輸入單元,用于接收軟件對應(yīng)的密鑰信息和校驗信息,其中,所述密鑰信息包 括:待更新的第一軟件簽名公鑰、和新的第二軟件簽名公鑰,所述校驗信息包括:軟件校驗
信息;
[0016]所述驗證單元,用于如果所述存儲單元存儲的所述軟件對應(yīng)的合法的第一軟件簽 名公鑰和所述輸入單元接收的所述第一軟件簽名公鑰一致,驗證所述輸入單元接收的軟件 校驗信息是否合法;如果所述軟件校驗信息合法,將所述存儲單元存儲的所述軟件對應(yīng)的 合法的第一軟件簽名公鑰更新為所述輸入單元接收的所述第二軟件簽名公鑰。
[0017]第三方面,提供了 一種可信客戶端設(shè)備,所述可信客戶端設(shè)備包括:接收模塊和如 上所述的可信安全模塊,其中,
[0018]所述接收模塊,用于接收服務(wù)器發(fā)送的軟件對應(yīng)的密鑰信息和校驗信息,并將所 述密鑰信息和所述校驗信息傳輸給所述可信安全模塊,其中,所述密鑰信息包括:待更新的 軟件簽名公鑰、和新的軟件簽名公鑰,所述校驗信息包括:軟件校驗信息。
[0019]通過上述方案,本發(fā)明可以實現(xiàn)遠程更新可信客戶端設(shè)備上的軟件簽名密鑰,從 而防止了失效密鑰無法更新問題的發(fā)生。
【專利附圖】
【附圖說明】
[0020]為了更清楚地說明本發(fā)明實施例的技術(shù)方案,下面將對現(xiàn)有技術(shù)或?qū)嵤├枋鲋?所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是一些實施例,對于 本領(lǐng)域技術(shù)人員來講,還可以利用這些附圖獲得其他的附圖。
[0021]圖1為本發(fā)明一實施例的軟件密碼更新方法的流程圖;
[0022]圖2為本發(fā)明另一實施例的軟件密碼更新方法的流程圖;
[0023]圖3為本發(fā)明另一實施例的軟件密碼更新方法的流程圖;
[0024]圖4為本發(fā)明另一實施例的軟件密碼更新方法的流程圖;
[0025]圖5為本發(fā)明另一實施例的軟件密碼更新方法的流程圖;
[0026]圖6為本發(fā)明一實施例的可信安全模塊的結(jié)構(gòu)示意圖;
[0027]圖7為本發(fā)明一實施例的可信客戶端設(shè)備的結(jié)構(gòu)示意圖?!揪唧w實施方式】
[0028]下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完 整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;?本發(fā)明中的實施例,本領(lǐng)域技術(shù)人員所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
[0029]需要說明的是,在不沖突的情況下,本發(fā)明實施例以及實施例中的特征可以相互 任意組合。
[0030]當前,現(xiàn)有TrE技術(shù)對管理和保存敏感信息,已經(jīng)有比較成熟可靠的解決方案。由 于可信環(huán)境的信任鏈的存在,不允許對可信客戶端設(shè)備中的軟件進行未經(jīng)授權(quán)的訪問和修 改,對已安裝軟件的合法性校驗主要依靠數(shù)字簽名。然而,上述現(xiàn)有技術(shù)存在如下問題:
[0031]1、對軟件的簽名進行合法性校驗時,無法保證簽名對應(yīng)的公鑰(下文簡稱軟件簽 名公鑰)是最新公開的,且必要時,例如在軟件發(fā)布側(cè)管理的密鑰丟失、泄露、或生命周期 結(jié)束時,無法由遠端控制TPM對該公鑰進行更新。
[0032]2、當軟件使用的軟件簽名密鑰已經(jīng)泄露或過期時,客戶端繼續(xù)使用舊的軟件簽名 密鑰會帶來安全問題,例如,被攻擊者惡意安裝非法代碼,修改程序,破壞可信環(huán)境。
[0033]為了解決上述技術(shù)問題,本發(fā)明實施例提供了密鑰更新方法、可信安全模塊以及 可信客戶端設(shè)備。本發(fā)明實施例可以從遠端發(fā)起密鑰更新過程,在不影響TrE安全流程的 前提下,將可信客戶端設(shè)備中的軟件簽名密鑰自動替換,從而解決如何在具有TrE可信環(huán) 境的可信客戶端設(shè)備中,更新所安裝的軟件簽名密鑰的問題。
[0034]本發(fā)明一實施例提供了一種軟件密鑰更新方法,如圖1所示,該方法包括如下步驟。
[0035]步驟110,可信客戶端設(shè)備接收服務(wù)器發(fā)送的軟件對應(yīng)的密鑰信息和校驗信息,其 中,所述密鑰信息包括:待更新的第一軟件簽名公鑰、和新的第二軟件簽名公鑰,所述校驗 信息包括:軟件校驗信息。
[0036]優(yōu)選的,所述可信客戶端設(shè)備可以通過安全連接接收所述服務(wù)器發(fā)送的所述密鑰 信息和所述校驗信息。
[0037]步驟120,如果可信客戶端設(shè)備存儲的簽名公鑰和接收到的第一軟件簽名公鑰一 致,驗證所述軟件校驗信息是否合法;
[0038]本步驟中,可以先驗證所述可信客戶端設(shè)備存儲的所述軟件對應(yīng)的第一軟件簽名 公鑰是否合法,具體驗證方法包括:所述可信客戶端設(shè)備驗證預(yù)存的第一密鑰校驗信息是 否與存儲的第一軟件簽名公鑰匹配,如果匹配,則所述可信客戶端設(shè)備存儲的第一軟件簽 名公鑰合法。
[0039]當然,也可以不需要驗證所述可信客戶端設(shè)備存儲的所述軟件對應(yīng)的第一軟件簽 名公鑰是否合法,如,可以默認所述可信客戶端設(shè)備存儲的所述軟件對應(yīng)的第一軟件簽名 公鑰合法。
[0040]優(yōu)選的,可信客戶端設(shè)備上可能同時有多個軟件需要保護,本實施例中,為了提高 可信客戶端設(shè)備存儲效率,第一密鑰校驗信息可以為多個軟件的軟件簽名公鑰的聯(lián)合校驗信息。
[0041]本步驟中,所述軟件校驗信息可以包括所述軟件的代碼的第一簽名值,所述第一簽名值是所述服務(wù)器使用所述第二軟件簽名公鑰對應(yīng)的私鑰和簽名算法對所述軟件的代 碼進行計算后得到的,所述簽名算法為所述服務(wù)器和所述可信客戶端設(shè)備預(yù)先約定的;
[0042]所述驗證所述軟件校驗信息的合法性,可以包括:
[0043]獲取所述軟件的代碼,使用所述第二軟件簽名公鑰和所述簽名算法,對所述第一 簽名值進行計算;比較計算得到的結(jié)果和獲取的所述軟件的代碼,如果相同,則所述軟件校
驗息合法。
[0044]其中,獲取所述軟件的代碼可以包括:
[0045]獲取可信客戶端設(shè)備預(yù)存的所述軟件的代碼;
[0046]或者
[0047]所述校驗信息還包括:所述軟件的代碼,獲取所述軟件的代碼包括:從接收的校 驗信息中獲取所述軟件的代碼。
[0048]步驟130,如果所述軟件校驗信息合法,將所述可信客戶端設(shè)備存儲的所述軟件對 應(yīng)的合法的第一軟件簽名公鑰更新為所述第二軟件簽名公鑰。
[0049]本步驟中,還可以包括:獲取關(guān)于所述第二軟件簽名公鑰的第一密鑰校驗信息,將 所述預(yù)存的第一密鑰校驗信息更新為關(guān)于所述第二軟件簽名公鑰的第一密鑰校驗信息。
[0050]本發(fā)明實施例可以實現(xiàn)遠程更新可信客戶端設(shè)備上的軟件簽名公鑰,從而防止了 失效密鑰無法更新問題的發(fā)生,并防止了可信客戶端設(shè)備上因軟件簽名密鑰改變而造成無 法正常啟動問題的發(fā)生。
[0051 ] 優(yōu)選的,本發(fā)明實施例的方法還可以包括
[0052]存儲接收到的所述軟件的代碼的第一簽名值,用于在所述軟件啟動時進行驗證, 或者
[0053]使用所述可信客戶端設(shè)備預(yù)存的密鑰和第一帶密鑰的散列算法,對所述軟件的代 碼計算后得到第一散列值,存儲所述第一散列值,用于在所述軟件啟動時進行驗證。
[0054]其中,所述第一散列值和第一簽名值可以存儲于可信客戶端設(shè)備的存儲單元中。 此外,考慮到由于散列值占用的空間遠遠小于簽名值占用的空間,為了進一步提高安全性, 還可以將所述第一散列值存儲于所述可信客戶端設(shè)備的TPM中。
[0055]優(yōu)選的,所述校驗信息還包括:第二密鑰校驗信息;
[0056]所述第二密鑰校驗信息包括所述第一軟件簽名公鑰和第二軟件簽名公鑰的第二 散列值;所述第二散列值是所述服務(wù)器用預(yù)置的預(yù)共享密鑰和第二帶密鑰的散列算法對所 述第一軟件簽名公鑰和第二軟件簽名公鑰計算后得到的;所述第二帶密鑰的散列算法為所 述可信客戶端設(shè)備和所述服務(wù)器預(yù)先約定的,所述預(yù)共享密鑰預(yù)置在所述可信客戶端設(shè)備 和所述服務(wù)器;如果可信客戶端設(shè)備存儲的所述軟件對應(yīng)的合法的第一軟件簽名公鑰和接 收到的第一軟件簽名公鑰一致,驗證所述軟件校驗信息是否合法,包括:如果可信客戶端設(shè) 備存儲的所述軟件對應(yīng)的合法的第一軟件簽名公鑰和接收到的第一軟件簽名公鑰一致,所 述可信客戶端設(shè)備使用所述預(yù)共享密鑰對所述第一軟件簽名公鑰和第二軟件簽名公鑰采 用所述第二帶密鑰的散列算法計算第三散列值,比較所述第三散列值與所述第二散列值是 否相等,如果相等,則驗證所述軟件校驗信息的合法性;
[0057]和/ 或
[0058]所述第二密鑰校驗信息包括第三方認證中心CA簽發(fā)的所述第二軟件簽名公鑰PKa2的證書Cert (PKa2),其中,所述證書Cert (PKa2)是所述服務(wù)器使用所述第三方CA簽發(fā)的 密鑰PKa加密后得到的;如果可信客戶端設(shè)備存儲的所述軟件對應(yīng)的合法的第一軟件簽名 公鑰和接收到的第一軟件簽名公鑰一致,驗證所述軟件校驗信息是否合法,包括:如果可信 客戶端設(shè)備存儲的所述軟件對應(yīng)的合法的第一軟件簽名公鑰和接收到的第一軟件簽名公 鑰一致,所述可信客戶端設(shè)備使用所述可信客戶端設(shè)備保存的所述第三方CA簽發(fā)的所述 密鑰PKeA,對接收到的所述第二軟件簽名公鑰計算得到證書Cert' (PKa2),比較所述計算得 到的證書Cert' (PKa2)與接收到的證書Cert (PKa2),如果相等,驗證所述軟件校驗信息的合 法性。
[0059]需要說明的是上述第一帶密鑰的散列算法和第二帶密鑰的散列算法可以是相同 的或不同的,而且,可以使用現(xiàn)有技術(shù)中任意帶密鑰的散列算法,本發(fā)明實施例對此并不限定。
[0060]本實施例還增強了軟件簽名公鑰更新的校驗機制,防止因意外造成的錯誤更新, 或故意攻擊造成的惡意代碼篡改,有效防止非法第三方對代碼的篡改,消除系統(tǒng)安全漏洞 帶來的潛在威脅。
[0061]本發(fā)明實施例中所述的可信客戶端設(shè)備包括具有可信環(huán)境的網(wǎng)絡(luò)設(shè)備以及智能 終端。
[0062]本發(fā)明另一實施例提供了一種軟件密鑰更新方法,如圖2所示,包括如下步驟。
[0063]步驟210,可信客戶端設(shè)備接收服務(wù)器(Server)通過安全連接發(fā)送的待更新的軟 件簽名公鑰PKa1、新的軟件簽名公鑰PKa2以及PKai對應(yīng)的軟件的代碼(Code)A的簽名SIG_ SKa2 (A),其中,代碼A的簽名是通過新的軟件簽名公鑰PKa2對應(yīng)的私鑰SKa2對代碼A進行簽 名后得到的。
[0064]本步驟中,當服務(wù)器需要更新可信客戶端設(shè)備的軟件簽名密鑰時,與可信客戶端 (Client)設(shè)備建立安全連接,也可以使用已有的安全連接。建立安全連接的方法可采用現(xiàn) 有技術(shù)建立安全連接的任何方法實現(xiàn),本發(fā)明實施例不再對此進行贅述。
[0065]進一步的,服務(wù)器在發(fā)送PKA1、PKA2以及SIG_SKA2(A)時,還可以將軟件代碼A—起 發(fā)送給可信客戶端設(shè)備。這種情況下,本步驟還接收軟件代碼A。
[0066]需要說明的是,本發(fā)明實施例可以同時對多個軟件的軟件簽名密鑰進行更新,只 需同時發(fā)送多個軟件對應(yīng)的密鑰和軟件的代碼的簽名即可。
[0067]步驟220,可信客戶端設(shè)備通過TPM驗證本地存儲的PKai的簽名SIG_MK (PKai)是 否與PKai匹配,如果匹配,執(zhí)行步驟230,如果不匹配,退出并報警。
[0068]其中,PKai的簽名SIG_MK(PKai)是通過采用可信客戶端設(shè)備存儲的密鑰簽名密鑰 MK對軟件簽名公鑰PKai進行簽名得到的。MK為采用TrE中保存的背書密鑰(Endorsement Key, EK)所推演出的密鑰簽名密鑰MK,對保存在可信客戶端設(shè)備的軟件簽名公鑰部分加以 簽名保護;EK所推演出的密鑰簽名密鑰可以是TPM中存儲的MK,或者是由EK推演出的其他 密鑰,本文都用MK統(tǒng)一表不。
[0069]驗證PKai和簽名SIG_MK (PKai)方法可采用現(xiàn)有技術(shù)中的任何數(shù)字簽名算法實現(xiàn)。 本發(fā)明實施例對驗證方法不做限定。
[0070]優(yōu)選地,當可信客戶端設(shè)備有多個軟件受保護時,可信客戶端設(shè)備可以保存的是 多個軟件對應(yīng)的軟件簽名公鑰的聯(lián)合簽名,如,當可信客戶端設(shè)備還保護軟件B的代碼B,該軟件B對應(yīng)軟件簽名公鑰PKbi,則可信客戶端設(shè)備保存的是軟件A和軟件B的聯(lián)合簽名 SIG_MK (PKai,PKbi)。此時,本步驟驗證時,通過采用可信客戶端設(shè)備存儲的密鑰簽名密鑰MK 對軟件簽名公鑰PKai和軟件簽名公鑰PKbi的聯(lián)合簽名驗證即可。
[0071]步驟230,可信客戶端設(shè)備比較本地存儲的PKai與服務(wù)器發(fā)送的PKai是否相同,如 果相等,則執(zhí)行步驟240,如果不相等,退出并報警。
[0072]步驟240,根據(jù)PKA2,驗證代碼A的簽名SIG_SKA2(A)是否合法,如果簽名SIG_ SKa2(A)合法,則執(zhí)行步驟250,如果不合法,返回出錯(Fault)信息給服務(wù)器,并中斷更新過程。
[0073]—實施方式中,可信客戶端設(shè)備上可以存儲由代碼A。本步驟中,根據(jù)PKA2,驗證代 碼A的簽名SIG_SKA2(A)是否合法可以包括:使用PKa2對接收到的簽名SIG_SKA2(A)進行解 密以得到代碼A,比較解密得到的代碼A與本地存儲的代碼A,如果二者一致,則簽名SIG_ SKa2(A)合法。
[0074]另一實施方式中,當步驟210中還接收了代碼A,則本步驟可以比較解密得到的代 碼A與接收到的代碼A。
[0075]步驟250,將可信客戶端設(shè)備存儲的PKai更新為PKa2,保存接收到的軟件代碼A的 簽名SIG_SKA2(A),并由TPM獲取新的軟件簽名公鑰的簽名SIG_MK(PKa2)。
[0076]優(yōu)選地,如果可信客戶端設(shè)備保存的是多個軟件對應(yīng)的軟件簽名公鑰的聯(lián)合簽 名,如SIG_MK(PKA1,PKbi),且僅僅更新了 PKai,本步驟可以獲取的新的軟件簽名公鑰的簽名 為SIG_MK(PKA2,PKbi)。如果PKai和PKbi同時更新,則本步驟可以獲取的新的軟件簽名公鑰 的簽名為 SIG_MK(PKA2,PKb2)。
[0077]進一步地,如果可信客戶端設(shè)備還接收到了代碼A,本步驟還可以保存代碼A。
[0078]本實施例的密鑰更新方法實現(xiàn)了遠端控制TPM對該公鑰進行更新,且該方法簡 便,只需要比較本地保存的公鑰和服務(wù)器發(fā)來的公鑰是否一致,以及驗證軟件包簽名即可 安裝。
[0079]為了進一步提高安全性,本發(fā)明另一實施例提供了 一種軟件密鑰更新方法,如圖3 所示,包括如下步驟。
[0080]本實施例與步驟210?250基本相同,不同之處在于:
[0081]步驟210中,可信客戶端設(shè)備還接收服務(wù)器發(fā)送的軟件加密公鑰的散列值 HMAC (PKai,PKai),所述散列值是通過預(yù)共享密鑰PSK對待更新的軟件簽名公鑰PKa1、新軟件 簽名公鑰PKa2采用帶密鑰的散列算法計算后得到的,所述預(yù)共享密鑰PSK預(yù)先配置到可信 客戶端設(shè)備和服務(wù)器中。
[0082]其中,帶密鑰的散列算法可以是現(xiàn)有技術(shù)中任意帶密鑰的散列算法,例如密鑰相 關(guān)的散列計算消息認證碼(keyed-Hash Message Authentication Code, HMAC)等。
[0083]此外,本實施例中,步驟230中,如果可信客戶端設(shè)備比較本地存儲的PKai與服務(wù) 器發(fā)送的PKai相同,執(zhí)行步驟231:
[0084]步驟231,可信客戶端設(shè)備使用所述預(yù)共享密鑰PSK對PKai和PKa2采用與所述服 務(wù)器相同的帶密鑰的散列算法計算一散列值,比較計算得到的散列值與步驟210接收到的 散列值是否相等,如果相等,則執(zhí)行步驟240,如果不相等,則向服務(wù)器返回出錯信息,并中 斷更新過程。[0085]本實施例可以檢測接收到的PKai和PKa2是否有錯誤,防止PKai和PKa2被替換,進 一步提高了系統(tǒng)安全性,而且,帶密鑰的散列算法的安全性可以進一步提供驗證的安全性。
[0086]為了進一步提高安全性,本發(fā)明另一實施例提供了 一種軟件密鑰更新方法,如圖4 所示,包括如下步驟。
[0087]本實施例與步驟210?250基本相同,不同之處在于:
[0088]步驟210中,可信客戶端設(shè)備還接收服務(wù)器發(fā)送的第三方認證中心(Certificate Authority, CA)簽發(fā)的PKa2的證書Cert (PKa2),該證書Cert (PKa2)是使用所述第三方CA簽 發(fā)的密鑰PKa加密后得到的。
[0089]步驟230中,如果可信客戶端設(shè)備比較本地存儲的PKai與服務(wù)器發(fā)送的PKai相同, 執(zhí)行步驟232:
[0090]步驟232,可信客戶端設(shè)備使用可信客戶端設(shè)備保存的所述第三方CA簽發(fā)的證書 PKa,對接收到的PKa2加密得到一 PKa2的證書Cert' (PKa2),比較可信客戶端設(shè)備加密得到 的證書Cert' (PKa2)與接收到的證書Cert (PKa2),如果相等,則執(zhí)行步驟240,如果不相等, 則向服務(wù)器返回出錯信息,并中斷更新過程。
[0091]本實施例可以檢測接收到的PKai和PKa2是否有錯誤,防止PKai和PKa2被替換,進 一步提高了系統(tǒng)安全性,而且,在可信客戶端設(shè)備預(yù)置第三方CA證書的方法,不需要在服 務(wù)器提前配置預(yù)共享密鑰。
[0092]本發(fā)明另一實施例提供了一種軟件密鑰更新方法,如圖5所示,包括如下步驟。
[0093]本實施例與步驟210?250基本相同,不同之處在于:
[0094]步驟220中,可信客戶端設(shè)備通過TPM驗證本地存儲的PKai的散列值HMAC(PKai) 是否與PKai匹配,如果匹配,執(zhí)行步驟230,如果不匹配,退出并報警。
[0095]本步驟中,可以對保存的PKai采用散列算法計算得到一散列值HMAC' (PKai),將計 算得到的該散列值HMAC' (PKai)與保存的散列值HMAC(PKai)比較,如果二者一致則匹配。
[0096]其中,散列算法可以是帶密鑰的散列算法,也可以是普通的散列算法。
[0097]步驟250中,將可信客戶端設(shè)備存儲的PKai更新為PKa2,保存新的軟件簽名公鑰的 散列值 HMAC (PKa2)。
[0098]本實施例中,采用對稱密碼機制(即散列算法)保護本地存儲的密鑰校驗信息,與 采用非對稱密碼機制(即簽名算法)相比,提高了系統(tǒng)效率。散列算法的安全性可以提供 驗證的安全性。
[0099]此外,由于本實施例保存的是散列值,其占用的空間小于簽名值,因此,本實施例 能夠進一步節(jié)約TPM內(nèi)部持久性內(nèi)存的存儲空間。而且,由于HMAC值可以保存在可信客戶 端設(shè)備的存儲器中,而不用保存在TPM中,所以,有利于節(jié)省TPM內(nèi)部持久性內(nèi)存的存儲空 間。
[0100]進一步地,本實施例還可以與上述實施例相結(jié)合使用,例如,可以進一步在步驟 230之后,步驟240之前包含步驟231和/或232,當同時包含步驟231和232時,步驟231 和232的執(zhí)行順序可以是任意順序。
[0101]以上所述為部分實施例,然而并不僅限于上述實施例實現(xiàn),還可以有其他變換形 式,例如:步驟210中,可以是發(fā)送更新后的新密鑰的HMAC值,此時,可信客戶端設(shè)備所接收 到的是軟件校驗密鑰,用于計算得到軟件代碼A的散列值,可信客戶端設(shè)備和服務(wù)器上預(yù)置有加密該新密鑰時所使用的預(yù)共享密鑰,從而驗證接收到的新密鑰的合法性等。
[0102]本發(fā)明另一實施例還提供了一種可信安全模塊,所述可信安全模塊可以執(zhí)行上述 任意實施例的軟件密鑰更新方法。如圖6所示,所述可信安全模塊包括:存儲單元601、輸 入單元602和驗證單元603,
[0103]所述存儲單元601,用于存儲待更新的第一軟件簽名公鑰;
[0104]所述輸入單元602,用于接收軟件對應(yīng)的密鑰信息和校驗信息,其中,所述密鑰信 息包括:第一軟件簽名公鑰、和第二軟件簽名公鑰,所述校驗信息包括:軟件校驗信息;
[0105]所述驗證單元603,用于如果所述存儲單元601存儲的所述軟件對應(yīng)的合法的第 一軟件簽名公鑰和所述輸入單元602接收的所述第一軟件簽名公鑰一致,驗證所述輸入單 元602接收的軟件校驗信息是否合法;如果所述軟件校驗信息合法,將所述存儲單元601存 儲的所述軟件對應(yīng)的合法的第一軟件簽名公鑰更新為所述輸入單元602接收的所述第二 軟件簽名公鑰。
[0106]本發(fā)明實施例可以實現(xiàn)遠程更新可信客戶端設(shè)備上的軟件簽名公鑰,從而防止了 失效密鑰無法更新問題的發(fā)生,并防止了可信客戶端設(shè)備上因軟件簽名密鑰改變而造成無 法正常啟動問題的發(fā)生。
[0107]所述存儲單元601還用于,存儲第一密鑰校驗信息;其中,所述第一密鑰校驗信息 為所述可信客戶端設(shè)備上一個或多個軟件的軟件簽名公鑰的聯(lián)合簽名;
[0108]所述驗證單元603具體用于,驗證所述存儲單元601存儲的第一密鑰校驗信息是 否與所述存儲單元601存儲的第一軟件簽名公鑰匹配,如果匹配,則所述存儲單元601存儲 的第一軟件簽名公鑰合法,驗證所述軟件校驗信息的合法性;
[0109]所述驗證單元603還用于,獲取關(guān)于所述第二軟件簽名公鑰的第一密鑰校驗信 息,將所述存儲單元601存儲的第一密鑰校驗信息更新為關(guān)于所述第二軟件簽名公鑰的第 一密鑰校驗信息。
[0110]所述輸入單元602具體用于,接收包括所述軟件的代碼的第一簽名值的所述軟件 校驗信息,其中,所述第一簽名值是使用所述第二軟件簽名公鑰對應(yīng)的私鑰和簽名算法對 所述軟件的代碼進行計算后得到的;
[0111]所述輸入單元602還用于,接收所述軟件的代碼;
[0112]所述驗證單元603具體用于,使用所述第二軟件簽名公鑰和所述簽名算法,對所 述接收到的第一簽名值進行計算;比較計算得到的結(jié)果和所述輸入單元602讀取的代碼, 如果相同,則所述軟件校驗信息合法。
[0113]所述驗證單元603,還用于使用所述存儲單元601存儲的第一密鑰和第一帶密鑰 的散列算法,對所述軟件的代碼計算后得到第一散列值,并將所述第一散列值發(fā)送到所述 存儲單元601 ;
[0114]所述存儲單元601,還用于存儲所述第一密鑰,以及存儲所述第一散列值。
[0115]所述存儲單元601,還用于存儲預(yù)共享密鑰;
[0116]所述輸入單元602具體用于,接收包含第二密鑰校驗信息的所述校驗信息;所述 第二密鑰校驗信息包括所述第一軟件簽名公鑰和第二軟件簽名公鑰的第二散列值;所述第 二散列值是所述服務(wù)器用預(yù)置的所述預(yù)共享密鑰和第二帶密鑰的散列算法對所述第一軟 件簽名公鑰和第二軟件簽名公鑰計算后得到的;所述驗證單元603具體用于,如果所述存儲單元601存儲的所述軟件對應(yīng)的合法的第一軟件簽名公鑰和所述輸入單元602接收的所 述第一軟件簽名公鑰一致,使用所述存儲單元601存儲的預(yù)共享密鑰對所述第一軟件簽名 公鑰和第二軟件簽名公鑰采用預(yù)定的所述第二帶密鑰的散列算法計算第二散列值,比較計 算得到的第二散列值與接收到的第二散列值是否相等,如果相等,則驗證所述軟件校驗信 息的合法性;
[0117]或者
[0118]所述存儲單元601,還用于存儲第三方CA簽發(fā)的密鑰PKca ;
[0119]所述輸入單元602具體用于,接收包含第二密鑰校驗信息的所述校驗信息,所述 第二密鑰校驗信息包含第三方CA簽發(fā)的所述第二軟件簽名公鑰PKa2的證書Cert (PKa2), 其中,所述證書Cert (PKa2)是使用所述第三方CA簽發(fā)的密鑰PKffl加密后得到的;所述驗證 單元603具體用于,如果所述存儲單元601存儲的所述軟件對應(yīng)的合法的第一軟件簽名公 鑰和所述輸入單元602接收的所述第一軟件簽名公鑰一致,使用所述第三方CA簽發(fā)的密 鑰PKffl,對接收到的第二軟件簽名公鑰計算得到證書Cert' (PKa2),比較計算得到的證書 Cert' (PKa2)與接收到的證書Cert (PKa2),如果相等,驗證所述軟件校驗信息的合法性。
[0120]其中,所述可信安全模塊可以為可信平臺模塊TPM,當然并僅不限于是TPM,可以 是任意具有類似功能的可信安全模塊。
[0121]本實施例還增強了軟件簽名公鑰更新的校驗機制,防止因意外造成的錯誤更新, 或故意攻擊造成的惡意代碼篡改,有效防止非法第三方對代碼的篡改,消除系統(tǒng)安全漏洞 帶來的潛在威脅。
[0122]本發(fā)明另一實施例還提供了一種可信客戶端設(shè)備,所述可信客戶端設(shè)備可以執(zhí)行 上述任意實施例的軟件密鑰更新方法。如圖7所示,所述可信客戶端設(shè)備包括:接收模塊 701和如上述實施例所述的可信安全模塊702,其中,
[0123]所述接收模塊701,用于接收服務(wù)器發(fā)送的軟件對應(yīng)的密鑰信息和校驗信息,并發(fā) 送給所述可信安全模塊702,其中,所述密鑰信息包括:待更新的軟件簽名公鑰、和新的軟 件簽名公鑰,所述校驗信息包括:軟件校驗信息;
[0124]所述可信安全模塊702如上述實施例所示。
[0125]具體的,
[0126]所述可信安全模塊702,用于存儲軟件對應(yīng)的軟件簽名密鑰,如果所述可信安全模 塊702中存儲的軟件對應(yīng)的合法的第一軟件簽名公鑰和接收到的第一軟件簽名公鑰一致, 驗證所述軟件校驗信息是否合法;如果所述軟件校驗信息合法,將所述可信安全模塊702 中的所述軟件對應(yīng)的合法的第一軟件簽名公鑰更新為所述第二軟件簽名公鑰。
[0127]需要說明的是,所述可信安全模塊702可以存儲一個或多個軟件的軟件簽名公 鑰。
[0128]所述接收模塊701,具體用于通過安全連接接收所述服務(wù)器發(fā)送的所述密鑰信息 和所述校驗信息。
[0129]所述可信客戶端設(shè)備還包括存儲模塊703,用于存儲第一密鑰校驗信息;
[0130]所述可信安全模塊702具體用于,如果所述可信安全模塊702中存儲的所述一個 或多個軟件中的軟件對應(yīng)的合法的第一軟件簽名公鑰和接收到的第一軟件簽名公鑰一致, 獲取所述存儲模塊703存儲的所述第一密鑰校驗信息,所述第一密鑰校驗信息是否與所述可信安全模塊702存儲的第一軟件簽名公鑰匹配,如果匹配,則所述可信安全模塊702存儲 的第一軟件簽名公鑰合法,驗證所述軟件校驗信息的合法性;
[0131]所述可信安全模塊702還用于,獲取關(guān)于所述第二軟件簽名公鑰的第一密鑰校 驗信息,并將所述關(guān)于所述第二軟件簽名公鑰的第一密鑰校驗信息發(fā)送給所述存儲模塊 703 ;
[0132]所述存儲模塊703還用于,將第一密鑰校驗信息更新為所述關(guān)于所述第二軟件簽 名公鑰的第一密鑰校驗信息;
[0133]其中,所述第一密鑰校驗信息為所述可信客戶端設(shè)備上一個或多個軟件的軟件簽 名公鑰的聯(lián)合簽名。
[0134]所述接收模塊701具體用于,接收包括所述軟件的代碼的第一簽名值的所述軟件 校驗信息,并發(fā)送給所述可信安全模塊702,所述第一簽名值是所述服務(wù)器使用所述第二軟 件簽名公鑰對應(yīng)的私鑰和簽名算法對所述軟件的代碼進行計算后得到的,所述簽名算法為 所述服務(wù)器和所述可信客戶端設(shè)備預(yù)先約定的;
[0135]所述可信安全模塊702具體用于,獲取所述軟件的代碼,使用所述第二軟件簽名 公鑰和所述簽名算法,對所述第一簽名值進行計算;比較計算得到的結(jié)果和獲取的所述軟 件的代碼,如果相同,則所述軟件校驗信息合法。
[0136]所述存儲模塊703還用于,存儲接收到的所述軟件的代碼的第一簽名值,或者
[0137]所述可信安全模塊702還用于,使用所述可信客戶端設(shè)備預(yù)存的密鑰和第一帶密 鑰的散列算法,對所述軟件的代碼計算后得到第一散列值,存儲所述第一散列值或?qū)⑺?第一散列值存儲到所述存儲模塊703中。
[0138]所述存儲模塊703還用于,存儲所述軟件的代碼;
[0139]或者
[0140]所述接收模塊701還用于,接收所述軟件的代碼,并發(fā)送給所述存儲模塊703。
[0141]所述可信安全模塊702還用于,還用于存儲預(yù)共享密鑰;
[0142]所述接收模塊702還用于,接收包含第二密鑰校驗信息的所述校驗信息;所述第 二密鑰校驗信息包括所述第一軟件簽名公鑰和第二軟件簽名公鑰的第二散列值;所述第二 散列值是所述服務(wù)器用預(yù)置的所述預(yù)共享密鑰和第二帶密鑰的散列算法對所述第一軟件 簽名公鑰和第二軟件簽名公鑰計算后得到的;
[0143]所述可信安全模塊702具體用于,如果所述可信安全模塊702中存儲的軟件對應(yīng) 的合法的第一軟件簽名公鑰和接收到的第一軟件簽名公鑰一致,使用所述存儲的預(yù)共享密 鑰對所述第一軟件簽名公鑰和第二軟件簽名公鑰采用預(yù)定的所述第二帶密鑰的散列算法 計算第二散列值,比較計算得到的第二散列值與接收到的第二散列值是否相等,如果相等, 則驗證所述軟件校驗信息的合法性;
[0144]或者
[0145]所述可信安全模塊702還用于,還用于存儲第三方CA簽發(fā)的密鑰PKca ;
[0146]所述接收模塊702還用于,接收包含第二密鑰校驗信息的所述校驗信息,所述第 二密鑰校驗信息包含第三方CA簽發(fā)的所述第二軟件簽名公鑰PKa2的證書Cert (PKa2),其 中,所述證書Cert (PKa2)是使用所述第三方CA簽發(fā)的密鑰PKffl加密后得到的;
[0147]所述可信安全模塊702具體用于,如果所述可信安全模塊702中存儲的軟件對應(yīng)的合法的第一軟件簽名公鑰和接收到的第一軟件簽名公鑰一致,使用所述第三方CA簽發(fā) 的密鑰PKa,對接收到的第二軟件簽名公鑰計算得到證書Cert' (PKa2),比較計算得到的證 書Cert' (PKa2)與接收到的證書Cert (PKa2),如果相等,驗證所述軟件校驗信息的合法性。
[0148]其中,所述可信安全模塊可以為可信平臺模塊TPM,當然并僅不限于是TPM,可以 是任意具有類似功能的可信安全模塊。
[0149]所述可信客戶端設(shè)備可以為帶有可信環(huán)境TrE的網(wǎng)絡(luò)設(shè)備或用戶設(shè)備。
[0150]需要說明的是,以上可信客戶端設(shè)備和可信安全模塊的實施方式中,各功能模塊 的劃分僅是舉例說明,實際應(yīng)用中可以根據(jù)需要,例如相應(yīng)硬件的配置要求或者軟件的實 現(xiàn)的便利考慮,而將上述功能分配由不同的功能模塊完成,即將可信安全模塊分成不同的 功能模塊,以完成以上描述的全部或者部分功能。而且,實際應(yīng)用中,本實施例中的相應(yīng)的 功能模塊可以是由相應(yīng)的硬件實現(xiàn)。
[0151]需要說明的是,上述裝置各模塊/單元之間的信息交互、執(zhí)行過程等內(nèi)容,由于與 本發(fā)明方法實施例基于同一構(gòu)思,其帶來的技術(shù)效果與本發(fā)明方法實施例相同,具體內(nèi)容 可參見本發(fā)明方法實施例中的敘述,此處不再贅述。
[0152]本領(lǐng)域普通技術(shù)人員可以理解上述實施例的各種方法中的全部或部分步驟是可 以通過程序來指令相關(guān)的硬件來完成,該程序可以存儲于一計算機可讀存儲介質(zhì)中,存 儲介質(zhì)可以包括:只讀存儲器(ROM,Read Only Memory)、隨機存取存儲器(RAM,Random Access Memory)、磁盤或光盤等。
[0153]以上對本發(fā)明實施例提供的方法和用戶設(shè)備和基站進行了詳細介紹,本文中應(yīng)用 了具體個例對本發(fā)明的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解 本發(fā)明的方法及其核心思想;同時,對于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在具 體實施方式及應(yīng)用范圍上均會有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對本發(fā)明 的限制。
【權(quán)利要求】
1.一種軟件密鑰更新方法,其特征在于,所述方法包括:可信客戶端設(shè)備接收服務(wù)器發(fā)送的軟件對應(yīng)的密鑰信息和校驗信息,其中,所述密鑰信息包括:待更新的第一軟件簽名公鑰、和新的第二軟件簽名公鑰,所述校驗信息包括:軟件校驗信息;如果可信客戶端設(shè)備存儲的所述軟件對應(yīng)的合法的第一軟件簽名公鑰和接收到的第一軟件簽名公鑰一致,驗證所述軟件校驗信息是否合法;如果所述軟件校驗信息合法,將所述可信客戶端設(shè)備存儲的所述軟件對應(yīng)的合法的第一軟件簽名公鑰更新為所述第二軟件簽名公鑰。
2.如權(quán)利要求1所述的方法,其特征在于,所述可信客戶端設(shè)備接收服務(wù)器發(fā)送的密鑰信息和校驗信息,包括:所述可信客戶端設(shè)備通過安全連接接收所述服務(wù)器發(fā)送的所述密鑰信息和所述校驗信息。
3.如權(quán)利要求1或2所述的方法,其特征在于,如果可信客戶端設(shè)備存儲的所述軟件對應(yīng)的合法的第一軟件簽名公鑰和接收到的第一軟件簽名公鑰一致,驗證所述軟件校驗信息是否合法,包括:所述可信客戶端設(shè)備驗證預(yù)存的第一密鑰校驗信息是否與存儲的第一軟件簽名公鑰匹配,如果匹配,則所述可信客戶端設(shè)備存儲的第一軟件簽名公鑰合法,驗證所述軟件校驗信息的合法性;所述將所述可信客戶端設(shè)備 存儲的所述軟件對應(yīng)的合法的第一軟件簽名公鑰更新為所述第二軟件簽名公鑰中,還包括:獲取關(guān)于所述第二軟件簽名公鑰的第一密鑰校驗信息, 將所述預(yù)存的第一密鑰校驗信息更新為關(guān)于所述第二軟件簽名公鑰的第一密鑰校驗信息。
4.如權(quán)利要求3所述的方法,其特征在于,所述第一密鑰校驗信息為所述可信客戶端設(shè)備上一個或多個軟件的軟件簽名公鑰的聯(lián)合簽名。
5.如權(quán)利要求1或2或3或4所述的方法,其特征在于,所述軟件校驗信息包括所述軟件的代碼的第一簽名值,所述第一簽名值是所述服務(wù)器使用所述第二軟件簽名公鑰對應(yīng)的私鑰和簽名算法對所述軟件的代碼進行計算后得到的,所述簽名算法為所述服務(wù)器和所述可信客戶端設(shè)備預(yù)先約定的;所述驗證所述軟件校驗信息的合法性,包括:獲取所述軟件的代碼,使用第二軟件簽名公鑰和所述簽名算法,對所述第一簽名值進行計算;比較計算得到的結(jié)果和獲取的所述軟件的代碼,如果相同,則所述軟件校驗信息合法。
6.如權(quán)利要求5所述的方法,其特征在于,所述將所述可信客戶端設(shè)備存儲的所述軟件對應(yīng)的合法的第一軟件簽名公鑰更新為所述第二軟件簽名公鑰后,所述方法還包括:存儲接收到的所述軟件的代碼的第一簽名值,或者使用所述可信客戶端設(shè)備預(yù)存的密鑰和第一帶密鑰的散列算法,對所述軟件的代碼計算后得到第一散列值,存儲所述第一散列值。
7.如權(quán)利要求5所述的方法,其特征在于,獲取所述軟件的代碼包括:獲取預(yù)存的所述軟件的代碼;或者所述校驗信息還包括:所述軟件的代碼,獲取所述軟件的代碼包括:從接收的校驗信息中獲取所述軟件的代碼。
8.如權(quán)利要求1至3中任一項所述的方法,其特征在于,所述校驗信息還包括:第二密鑰校驗信息;所述第二密鑰校驗信息包括所述第一軟件簽名公鑰和第二軟件簽名公鑰的第二散列值;如果可信客戶端設(shè)備存儲的所述軟件對應(yīng)的合法的第一軟件簽名公鑰和接收到的第一軟件簽名公鑰一致,驗證所述軟件校驗信息是否合法,包括:如果可信客戶端設(shè)備存儲的所述軟件對應(yīng)的合法的第一軟件簽名公鑰和接收到的第一軟件簽名公鑰一致,所述可信客戶端設(shè)備使用所述預(yù)共享密鑰對所述第一軟件簽名公鑰和第二軟件簽名公鑰采用所述第二帶密鑰的散列算法計算第三散列值,比較所述第三散列值與所述第二散列值是否相等,如果相等,則驗證所述軟件校驗信息的合法性;和/或所述第二密鑰校驗信息包括第三方認證中心CA簽發(fā)的所述第二軟件簽名公鑰PKa2的證書Cert (PKa2);如果可信客戶端設(shè)備存儲的所述軟件對應(yīng)的合法的第一軟件簽名公鑰和接收到的第一軟件簽名公鑰一致,驗證所述軟件校驗信息是否合法,包括:如果可信客戶端設(shè)備存儲的所述軟件對應(yīng)的合法的第一軟件簽名公鑰和接收到的第一軟件簽名公鑰一致, 所述可信客戶端設(shè)備使用所述可信客戶端設(shè)備保存的所述第三方CA簽發(fā)的所述密鑰PKeA, 對接收到的所述第二軟件簽名公鑰計算得到證書Cert' (PKa2),比較所述計算得到的證書 Cert' (PKa2)與接收到的證書Cert (PKa2),如果相等,驗證所述軟件校驗信息的合法性。
9.如權(quán)利要求8所述的方法,其特征在于,所述第二散列值是所述服務(wù)器用預(yù)置的預(yù)共享密鑰和第二帶密鑰的散列算法對所述第一軟件簽名公鑰和第二軟件簽名公鑰計算后得到的;所述第二帶密鑰的散列算法為所述可信客戶端設(shè)備和所述服務(wù)器預(yù)先約定的;所述預(yù)共享密鑰預(yù)置在所述可 信客戶端設(shè)備和所述服務(wù)器。
10.如權(quán)利要求8或9所述的方法,其特征在于,所述證書Cert (PKa2)是所述服務(wù)器使用所述第三方CA簽發(fā)的密鑰密后得到的。
11.一種可信安全模塊,其特征在于,所述可信安全模塊包括:存儲單元、輸入單元和驗證單元,所述存儲單元,用于存儲軟件對應(yīng)的合法的第一軟件簽名公鑰;所述輸入單元,用于接收軟件對應(yīng)的密鑰信息和校驗信息,其中,所述密鑰信息包括: 待更新的第一軟件簽名公鑰、和新的第二軟件簽名公鑰,所述校驗信息包括:軟件校驗信息;所述驗證單元,用于如果所述存儲單元存儲的所述軟件對應(yīng)的合法的第一軟件簽名公鑰和所述輸入單元接收的所述第一軟件簽名公鑰一致,驗證所述輸入單元接收的軟件校驗信息是否合法;如果所述軟件校驗信息合法,將所述存儲單元存儲的所述軟件對應(yīng)的合法的第一軟件簽名公鑰更新為所述輸入單元接收的所述第二軟件簽名公鑰。
12.如權(quán)利要求11所述的可信安全模塊,其特征在于,所述存儲單元還用于,存儲第一密鑰校驗信息;所述驗證單元具體用于,驗證所述存儲單元存儲的第一密鑰校驗信息是否與所述存儲單元存儲的第一軟件簽名公鑰匹配,如果匹配,則所述存儲單元存儲的第一軟件簽名公鑰合法,驗證所述軟件校驗信息的合法性;所述驗證單元還用于,獲取關(guān)于所述第二軟件簽名公鑰的第一密鑰校驗信息,將所述存儲單元存儲的第一密鑰校驗信息更新為關(guān)于所述第二軟件簽名公鑰的第一密鑰校驗信肩、O
13.如權(quán)利要求12所述的可信安全模塊,其特征在于, 所述存儲單元具體用于,存儲為所述可信客戶端設(shè)備上一個或多個所述軟件的軟件簽名公鑰的聯(lián)合簽名作為所述第一密鑰校驗信息。
14.如權(quán)利要求11或12或13所述的可信安全模塊,其特征在于,所述輸入單元具體用于,接收包括所述軟件的代碼的第一簽名值的所述軟件校驗信息,其中,所述第一簽名值是使用所述第二軟件簽名公鑰對應(yīng)的私鑰和簽名算法對所述軟件的代碼進行計算后得到的;所述驗證單元具體用于,通過所述輸入單元獲取所述軟件的代碼,使用所述第二軟件簽名公鑰和所述簽名算法,對所述接收到的第一簽名值進行計算;比較計算得到的結(jié)果和所述輸入單元讀取的代碼,如果相同,則所述軟件校驗信息合法。
15.如權(quán)利要求14所述的可信安全模塊,其特征在于,所述驗證單元,還用于使用所述存儲單元存儲的第一密鑰和第一帶密鑰的散列算法, 對所述軟件的代碼計算后得到第一散列值,并將所述第一散列值發(fā)送到所述存儲單元;所述存儲單元,還用于存儲所述第一密鑰,以及存儲所述第一散列值。
16.如權(quán)利要求11至15中任一項所述的可信安全模塊,其特征在于,所述存儲單元,還用于存儲預(yù)共享密鑰;所述輸入單元具體用于,接收包含第二密鑰校驗信息的所述校驗信息;所述第二密鑰校驗信息包括所述第一軟件簽名公鑰和第二軟件簽名公鑰的第二散列值;所述第二散列值是所述服務(wù)器用預(yù)置的所述預(yù)共享密鑰和第二帶密鑰的散列算法對所述第一軟件簽名公鑰和第二軟件簽名公鑰計算后得到的;所述驗證單元具體用于,如果所述存儲單元存儲的所述軟件對應(yīng)的合法的第一軟件簽名公鑰和所述輸入單元接收的所述第一軟件簽名公鑰一致,使用所述存儲單元存儲的預(yù)共享密鑰對所述第一軟件簽名公鑰和第二軟件簽名公鑰采用預(yù)定的所述第二帶密鑰的散列算法計算第二散列值,比較計算得到的第二散列值與接收到的第二散列值是否相等,如果相等,則驗證所述軟件校驗信息的合法性;或者所述存儲單元,還用于存儲第三方CA簽發(fā)的密鑰PKca ;所述輸入單元具體用于,接收包含第二密鑰校驗信息的所述校驗信息,所述第二密鑰校驗信息包含第三方CA簽發(fā)的所述第二軟件簽名公鑰PKa2的證書Cert (PKa2),其中,所述證書Cert (PKa2)是使用所述第三方CA簽發(fā)的密鑰PKa加密后得到的;所述驗證單元具體用于,如果所述存儲單元存儲的所述軟件對應(yīng)的合法的第一軟件簽名公鑰和所述輸入單元接收的所述第一軟件簽名公鑰一致,使用所述第三方CA簽發(fā)的密鑰PKffl,對接收到的第二軟件簽名公鑰計算得到證書Cert' (PKa2),比較計算得到的證書Cert' (PKa2)與接收到的證書Cert (PKa2),如果相等,驗證所述軟件校驗信息的合法性。
17.如權(quán)利要求9至16中任一項所述的可信安全模塊,其特征在于,所述可信安全模塊為可信平臺模塊TPM。
18.一種可信客戶端設(shè)備,其特征在于,所述可信客戶端設(shè)備包括:接收模塊和如權(quán)利要求11至17中任一項所述的可信安全模塊,其中,所述接收模塊,用于接收服務(wù)器發(fā)送的軟件對應(yīng)的密鑰信息和校驗信息,并將所述密鑰信息和所述校驗信息傳輸給所述可信安全模塊,其中,所述密鑰信息包括:待更新的軟件簽名公鑰、和新的軟件簽名公鑰,所述校驗信息包括:軟件校驗信息。
19.如權(quán)利要求18所述的可信客戶端設(shè)備,其特征在于,所述接收模塊,具體用于通過安全連接接收所述服務(wù)器發(fā)送的所述密鑰信息和所述校驗信息。
20.如權(quán)利要求18或19所述的可信客戶端設(shè)備,其特征在于, 所述可信客戶端設(shè)備為帶有可信環(huán)境TrE的網(wǎng)絡(luò)設(shè)備或用戶設(shè)備。
【文檔編號】H04L9/08GK103595530SQ201210293518
【公開日】2014年2月19日 申請日期:2012年8月17日 優(yōu)先權(quán)日:2012年8月17日
【發(fā)明者】崔洋, 趙興軍, 汪慧君 申請人:華為技術(shù)有限公司