安全元件的操作系統(tǒng)的更新的制作方法
【專利摘要】本發(fā)明涉及安全元件的操作系統(tǒng)的更新。一種包括至少一個(gè)微處理器、非易失性存儲(chǔ)器以及通信接口的安全元件,該安全元件能夠經(jīng)由通信接口與更新器裝置進(jìn)行通信,非易失性存儲(chǔ)器存儲(chǔ)有至少一個(gè)引導(dǎo)程序,微處理器被配置為在安全元件啟動(dòng)期間執(zhí)行引導(dǎo)程序,該安全元件的特征在于,引導(dǎo)程序包括在被微處理器執(zhí)行時(shí)用于執(zhí)行以下步驟的指令:啟動(dòng)步驟,確定非易失性存儲(chǔ)器是否存儲(chǔ)有啟用的操作系統(tǒng),如果是,則啟動(dòng)操作系統(tǒng)的執(zhí)行;更新器裝置根據(jù)安全元件所確定的第一認(rèn)證數(shù)據(jù)和從更新器裝置接收的第二認(rèn)證數(shù)據(jù)進(jìn)行的認(rèn)證步驟;響應(yīng)于認(rèn)證步驟,將從更新器裝置接收的新的操作系統(tǒng)存儲(chǔ)在非易失性存儲(chǔ)器中的存儲(chǔ)步驟以及新的操作系統(tǒng)的啟用步驟。
【專利說明】安全元件的操作系統(tǒng)的更新
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及諸如智能卡的板載安全元件的領(lǐng)域。
【背景技術(shù)】
[0002]板載安全元件,例如智能卡,典型地具有計(jì)算機(jī)的材料架構(gòu),特別包括微處理器以及包含可由微處理器執(zhí)行的計(jì)算機(jī)程序的非易失性存儲(chǔ)器。特別的是,該非易失性存儲(chǔ)器包括操作系統(tǒng),該操作系統(tǒng)在可由用戶使用之前由廠商使用該安全元件載入。
[0003]首選的是,在向用戶提供該安全元件之后更新這種操作系統(tǒng)。
[0004]文獻(xiàn)W02012 / 062632A1描述了一種板載元件中的軟件更新處理。此處理包括擦除該軟件、載入代替該軟件的更新管理程序,此更新管理程序載入在板載元件啟動(dòng)時(shí)更新的起動(dòng)程序。該方案的安全僅僅基于該軟件的印記(imprint)。該方案因此不適用于需要高安全性的應(yīng)用。同樣,該處理需要重新啟動(dòng)該安全元件兩次。
[0005]因此,需要一種可靠的、安全的對安全元件的軟件進(jìn)行更新的方法。
【發(fā)明內(nèi)容】
[0006]本發(fā)明提出了一種包括至少一個(gè)微處理器、非易失性存儲(chǔ)器以及通信接口的安全元件,該安全元件經(jīng)由該通信接口與更新器裝置進(jìn)行通信,該非易失性存儲(chǔ)器存儲(chǔ)有至少一個(gè)引導(dǎo)程序,該微處理器被配置為在該安全元件啟動(dòng)期間執(zhí)行該引導(dǎo)程序,該安全元件的特征在于,該引導(dǎo)程序包括在被該微處理器執(zhí)行時(shí)用于執(zhí)行以下步驟的指令:
[0007]-啟動(dòng)步驟,確定該非易失性存儲(chǔ)器是否存儲(chǔ)有啟用(activated)的操作系統(tǒng),如果是,則啟動(dòng)該操作系統(tǒng)的執(zhí)行,
[0008]-該更新器裝置根據(jù)該安全元件所確定的第一認(rèn)證數(shù)據(jù)和從該更新器裝置接收的第二認(rèn)證數(shù)據(jù)進(jìn)行的認(rèn)證步驟,
[0009]-響應(yīng)于該認(rèn)證步驟,將從該更新器裝置接收的新的操作系統(tǒng)存儲(chǔ)在該非易失性存儲(chǔ)器中的存儲(chǔ)步驟以及該新的操作系統(tǒng)的啟用步驟。
[0010]因此引導(dǎo)程序可安全可靠地實(shí)施對操作系統(tǒng)的更新。事實(shí)上,由于此更新需要更新器裝置的認(rèn)證,因此,第三方不可能向安全元件提供操作系統(tǒng)損壞的版本。
[0011]根據(jù)實(shí)施方式,該更新器裝置的認(rèn)證步驟包括:
[0012]-向更新器裝置發(fā)送包括變量的消息的步驟,
[0013]-接收第二認(rèn)證數(shù)據(jù)的步驟,
[0014]-基于上述變量和存儲(chǔ)在上述非易失性存儲(chǔ)器中的密鑰來確定第一認(rèn)證數(shù)據(jù)的確定步驟,以及
[0015]-比較第一認(rèn)證數(shù)據(jù)和第二認(rèn)證數(shù)據(jù)的比較步驟。
[0016]這樣,引導(dǎo)程序本身包括完成對更新器裝置的認(rèn)證的所有必需的指令。因此在非易失性存儲(chǔ)器不包括操作系統(tǒng)或操作系統(tǒng)被停用時(shí),例如在之前的更新嘗試未成功期間,可啟動(dòng)或繼續(xù)對操作系統(tǒng)的更新。[0017]引導(dǎo)程序也可包括執(zhí)行向更新器裝置發(fā)送消息的步驟的指令,該消息包括基于密鑰和上述變量的加密數(shù)據(jù)。
[0018]這使得更新器裝置能夠認(rèn)證安全元件。因此完成了安全元件和更新器裝置之間的相互認(rèn)證。這樣,只有安全的認(rèn)證元件才可獲得操作系統(tǒng)的新版本。
[0019]根據(jù)實(shí)施方式,非易失性存儲(chǔ)器包括操作系統(tǒng),該操作系統(tǒng)包括指令用以執(zhí)行:
[0020]-向更新器裝置發(fā)送包括所述變量的消息的步驟,
[0021]-接收第二認(rèn)證數(shù)據(jù)的步驟,
[0022]-在需要時(shí),向更新器裝置發(fā)送消息的步驟,該消息包括根據(jù)所述密鑰和所述變量而加密的數(shù)據(jù)。
[0023]在此情況下,如果非易失性存儲(chǔ)器包括啟用的操作系統(tǒng),則該操作系統(tǒng)與啟動(dòng)程序協(xié)作,包括特別用于認(rèn)證的指令。因此,當(dāng)安全元件被操作系統(tǒng)所管理時(shí),可在安全元件的正常操作期間更新該操作系統(tǒng)。
[0024]存儲(chǔ)步驟可包括對新的加密的操作系統(tǒng)的接收。
[0025]這樣,竊聽更新器裝置和安全元件之間通信的第三方不可能獲得操作系統(tǒng)的新版本。
[0026]在此情況下,認(rèn)證步驟可包括基于上述密鑰和上述變量來確定會(huì)話密鑰,存儲(chǔ)步驟可包括接收使用上述會(huì)話密鑰加密的新的操作系統(tǒng)。
[0027]由于相同的會(huì)話密鑰用于加密的認(rèn)證和通信,所以限制了安全元件中必需的密碼資源。
[0028]出于安全性和可靠性的原因,優(yōu)選地存儲(chǔ)該引導(dǎo)系統(tǒng)以使其不可被修改。
[0029]例如,該引導(dǎo)程序被存儲(chǔ)在非易失性存儲(chǔ)器的不可重寫部分中。
[0030]作為變化,該引導(dǎo)程序被存儲(chǔ)在非易失性存儲(chǔ)器的可重寫部分中,包括操作系統(tǒng)的非易失性存儲(chǔ)器被配置為阻止對引導(dǎo)程序的寫入命令。
[0031]本發(fā)明還提出了一種終端,包括至少一個(gè)微處理器、非易失性存儲(chǔ)器和根據(jù)本發(fā)明的安全元件,該終端的非易失性存儲(chǔ)器包括設(shè)計(jì)為用于安全元件提供的服務(wù)的更新管理程序和應(yīng)用,該更新管理程序包括在由終端的微處理器執(zhí)行時(shí)用于執(zhí)行以下步驟的指令:
[0032]-傳輸步驟,包括從更新器裝置接收新的操作系統(tǒng)以及向安全元件發(fā)送接收到的新的操作系統(tǒng),
[0033]-至少在傳輸步驟期間停用上述服務(wù)的步驟。
[0034]本發(fā)明還提供了一種系統(tǒng),該系統(tǒng)包括根據(jù)本發(fā)明的至少一個(gè)安全元件,以及存儲(chǔ)有操作系統(tǒng)的新版本的更新器裝置。
【專利附圖】
【附圖說明】
[0035]參考示出了具有非限定性特征的實(shí)施方式的附圖,本發(fā)明的其它特征和優(yōu)點(diǎn)將在下述說明書中得以體現(xiàn),其中:
[0036]圖1示出了根據(jù)該發(fā)明的實(shí)施方式的包括安全元件的系統(tǒng),
[0037]圖2示出了與圖1的安全元件的引導(dǎo)程序的執(zhí)行相對應(yīng)的主要步驟,
[0038]圖3示出了在該安全元件的操作系統(tǒng)的更新期間,圖1的系統(tǒng)中的交互,
[0039]圖4A、4B、4C以及4D示出了圖1的安全元件的非易失性存儲(chǔ)器在不同時(shí)間的狀態(tài),
[0040]圖5A、5B、5C以及示出了圖1的安全元件的非易失性存儲(chǔ)器,以便示出處理命令,
[0041]圖6和7示出了確定包括操作系統(tǒng)的新加密版本的塊的實(shí)例。
【具體實(shí)施方式】
[0042]圖1示出了包括更新器裝置10、終端20以及終端20中的板載安全元件30的系統(tǒng)。
[0043]該更新器裝置10具有計(jì)算機(jī)材料架構(gòu),特別包括微處理器11、通信接口 12、易失性存儲(chǔ)器13以及非易失性存儲(chǔ)器14。該微處理器11能夠通過將易失性存儲(chǔ)器13作為工作空間而執(zhí)行存儲(chǔ)在非易失性存儲(chǔ)器14中的計(jì)算機(jī)程序。該通信接口 12與終端20進(jìn)行通信。
[0044]特別的是,該非易失性存儲(chǔ)器14存儲(chǔ)有用于安全元件的操作系統(tǒng)的新版本,表示為OS (V2),以及密鑰K。
[0045]該更新器裝置10例如是由安全元件的制造商所建立的更新服務(wù)器。在這種情況下,通信接口 12通過電信網(wǎng)絡(luò)例如經(jīng)由因特網(wǎng)與終端12建立通信。通過變體,該更新器裝置10本身可為安全元件,例如SD卡、NFC卡或USB存儲(chǔ)器。在這種情況下,該通信接口 12通過安全元件閱讀器與終端20建立通信。
[0046]該終端20例如是屬于用戶的便攜式終端,例如便攜式電話。
[0047]該終端20具有計(jì)算機(jī)材料架構(gòu),特別是包括微處理器21、通信接口 22、易失性存儲(chǔ)器23以及非易失性存儲(chǔ)器24。該微處理器21能夠通過將易失性存儲(chǔ)器23作為工作空間而執(zhí)行存儲(chǔ)在非易失性存儲(chǔ)器24中的計(jì)算機(jī)程序。該通信接口 22與更新器裝置10進(jìn)行通信。該通信接口 26與安全元件30進(jìn)行通信。
[0048]特別的是,該非易失性存儲(chǔ)器24存儲(chǔ)有該終端20的操作系統(tǒng)25、更新管理程序Pl以及該用戶的數(shù)據(jù)和應(yīng)用,示出了其應(yīng)用Al。
[0049]程序Pl的功能是管理該安全元件30和更新器裝置10之間的通信以更新該安全元件30的操作系統(tǒng)。如圖1所示,該程序Pl首選的是集成到該終端20的該操作系統(tǒng)25中的模塊。
[0050]該安全元件30例如是可移動(dòng)地容納在終端20內(nèi)的智能卡。
[0051]該安全元件30具有計(jì)算機(jī)材料架構(gòu),特別的是包括微處理器31、通信接口 36、易失性存儲(chǔ)器33以及非易失性存儲(chǔ)器34。該微處理器31通過將易失性存儲(chǔ)器33作為工作空間而執(zhí)行存儲(chǔ)在非易失性存儲(chǔ)器34中的計(jì)算機(jī)程序。該通信接口 36與終端20進(jìn)行通?目。
[0052]特別的是,該非易失性存儲(chǔ)器34存儲(chǔ)有引導(dǎo)程序38 (表示為BL代表“BootLoader”)、操作系統(tǒng)35、用戶數(shù)據(jù)37、ΜΙ密鑰、序列號N1、操作系統(tǒng)35的狀態(tài)指示符39、以及表示認(rèn)證計(jì)數(shù)器C的值的變量70。
[0053]在示出的狀 態(tài)下,該操作系統(tǒng)35是與該更新器裝置10所存儲(chǔ)的版本OS (V2)不同的第一版本,表不為OS (Vl)。
[0054]該操作系統(tǒng)35的狀態(tài)指示符39可取“啟用(active) ”或“非啟用(inactive)”值。其可為例如存儲(chǔ)在操作系統(tǒng)35或者非易失性存儲(chǔ)器34中的狀態(tài)位。其任務(wù)在此處下文中加以描述。
[0055]該認(rèn)證計(jì)數(shù)器C被初始化為預(yù)定值,例如50。在該操作系統(tǒng)的更新處理過程中,計(jì)數(shù)器C遞減。一旦完成更新處理,如果后者已經(jīng)成功,則重新初始化計(jì)數(shù)器。如果該計(jì)數(shù)器C的值低于某一閾值,例如3,這意味著操作系統(tǒng)35的更新嘗試已失敗了太多次。在此情況下,該更新處理被阻止。不再可能通過與更新器裝置10通信而更新操作系統(tǒng)35。然而,通過求助于具有特定訪問權(quán)限的服務(wù)供應(yīng)商而重新初始化安全元件并將新的操作系統(tǒng)載入該安全元件上是可能的。
[0056]密鑰MKi和序列號Ni與更新器裝置10存儲(chǔ)的秘密密鑰K相對應(yīng),并例如被存儲(chǔ)在引導(dǎo)程序38中。更精確的是,根據(jù)保持秘密的過程,該更新器裝置10包括用于確定與安全元件i的序列號Ni相對應(yīng)的密鑰MKi的推導(dǎo)裝置。在一個(gè)變形例(未示出)中,該更新器裝置10存儲(chǔ)有多個(gè)安全元件的密鑰MKi和序列號隊(duì)。在這兩種情況下,該更新器裝置10都可確定與序列號Ni關(guān)聯(lián)的密鑰MKitl
[0057]用戶數(shù)據(jù)37具體來講包括應(yīng)用,示出了其應(yīng)用A2,示出了個(gè)人數(shù)據(jù)的集合D1。操作系統(tǒng)35可對存儲(chǔ)在安全元件30上的應(yīng)用進(jìn)行管理。這些應(yīng)用是例如給予支付和傳送服務(wù)權(quán)限并利用NFC類型的終端20的通信接口的安全應(yīng)用。
[0058]特別的是,引導(dǎo)程序38包括允許引導(dǎo)程序38和操作系統(tǒng)35在其執(zhí)行期間彼此之間進(jìn)行通信的編程接口 API。
[0059]經(jīng)由通信接口 26和36在終端20和安全元件30之間的通信是例如基于ADPU單元、符合ISO / IEC7816-4標(biāo)準(zhǔn)的交換。
[0060]微處理器31被配置為在該安全元件30啟動(dòng)期間執(zhí)行引導(dǎo)程序38。在正常操作中,該引導(dǎo)程序38啟動(dòng)操作系統(tǒng)35的執(zhí)行。該操作系統(tǒng)35管理應(yīng)用程序的執(zhí)行和對接口36所接收的命令的解析。
[0061]引導(dǎo)程序38是以不可修改的方式存儲(chǔ)的。例如,該引導(dǎo)程序38存儲(chǔ)在ROM類型的非易失性存儲(chǔ)器34的一部分中。在此情況下,該引導(dǎo)程序38可以是初始引導(dǎo)程序的一部分,被安全元件30的制造商用來在該安全元件30運(yùn)行期間載入操作系統(tǒng)35。作為變形,該引導(dǎo)程序38被存儲(chǔ)在可再寫性非易失性存儲(chǔ)器24的一部分中,例如閃速存儲(chǔ)器類型。在此情況下,配置操作系統(tǒng)35以阻止對該存儲(chǔ)器的此部分的任何寫入命令。
[0062]現(xiàn)在將描述圖1的系統(tǒng)的操作,特別是將第一版本的OS(Vl)代替為第二版本的0S(V2)的對操作系統(tǒng)35的更新操作。
[0063]圖2是步驟的圖表,示出了與引導(dǎo)程序38的執(zhí)行相對應(yīng)的、安全元件30的操作過程的主要步驟。圖3是示出了在圖2的操作過程期間,在更新器裝置10、終端20和安全元件30之間的消息交換。
[0064]在安全元件30的啟動(dòng)期間,該操作過程在步驟EO開始。如之前所解釋的,該微處理器31被配置在啟動(dòng)該安全元件30期間,起動(dòng)引導(dǎo)程序38的執(zhí)行。例如,該引導(dǎo)程序38位于非易失性存儲(chǔ)器34的預(yù)定位置,稱為啟動(dòng)扇區(qū),該微處理器31初始指向該位置。
[0065]接著,在步驟E1,該安全元件30確定該操作系統(tǒng)35是否是啟用的。更精確地,如果該非易失性存儲(chǔ)器34包括該操作系統(tǒng)35,并且該狀態(tài)指示符39示出“啟用”值,則認(rèn)為該操作系統(tǒng)是啟用的。相反,如果非易失性存儲(chǔ)器34不包括操作系統(tǒng)35或者狀態(tài)指示符示出“非啟用”值,則認(rèn)為該操作系統(tǒng)是非啟用的。
[0066]如果操作系統(tǒng)35是啟用的,則在步驟E12,引導(dǎo)程序38起動(dòng)操作系統(tǒng)35的執(zhí)行。這對應(yīng)于安全元件30的正常工作模式,在此期間,操作系統(tǒng)35管理在通信接口 36上接收的應(yīng)用和命令的執(zhí)行。
[0067]相反,如果操作系統(tǒng)35是非啟用的,則該引導(dǎo)程序38不啟動(dòng)操作系統(tǒng)35的執(zhí)行。換句話說,該引導(dǎo)程序38保持控制。特別的是,此結(jié)果是由引導(dǎo)程序38來管理在通信接口36上接收的命令。
[0068]這樣,當(dāng)終端20的更新管理程序Pl發(fā)送試圖啟動(dòng)操作系統(tǒng)35的更新處理的消息M3和M4時(shí),如果操作系統(tǒng)35是非啟用的,則這些消息M3和M4由引導(dǎo)程序38接收(步驟E2),而如果操作系統(tǒng)是啟用的,則由操作系統(tǒng)35接收(步驟F2)。首先在下文中在操作系統(tǒng)35是非啟用的情況下描述操作系統(tǒng)35的更新處理(步驟E2到Ell),接著在操作系統(tǒng)35是啟用的情況下描述操作系統(tǒng)35的更新處理(步驟F2到F5、E13、E14、F8、E15和E9到Ell)。
[0069]參考圖3,終端20向更新器裝置10發(fā)送消息Ml以請求操作系統(tǒng)的最新可用版本。發(fā)送消息Ml構(gòu)成了程序Pl的執(zhí)行的一部分,并且例如周期性或者在滿足預(yù)定條件時(shí)發(fā)送消息MI。
[0070]更新器裝置10以消息M2來響應(yīng)消息M1,該消息M2指出可用的版本:V = V2。
[0071]接著,響應(yīng)于步驟E2及其之后步驟或者F2及其之后步驟的執(zhí)行,終端20向安全元件30發(fā)送消息M3以選擇更新應(yīng)用,即引導(dǎo)程序38或操作系統(tǒng)35的一部分。消息M3例如是最新定義的ADPU類型的命令,稱為“OS loader Application Selection”。
[0072]接著,終端20向安全元件30發(fā)送消息M4以通知可用的新版本V2。在步驟E2,安全元件30接收消息M4。更精確地,在當(dāng)前實(shí)施例中,操作系統(tǒng)是非啟用的,該消息M4直接由引導(dǎo)程序38管理。消息M4例如是最新定義的ADPU類型的命令,稱為“PUSH ACAILABLEVERSION”。
[0073]接著,在步驟E3,安全元件30確定操作系統(tǒng)的版本。例如,引導(dǎo)程序38使用API編程接口來詢問操作系統(tǒng)35。如果存在操作系統(tǒng)35,它會(huì)通過給出其版本V來進(jìn)行響應(yīng)。如果不存在操作系統(tǒng)35,則引導(dǎo)程序38考慮其存儲(chǔ)的默認(rèn)版本V,該版本與制造商在安全元件30中最初載入的操作系統(tǒng)35的版本相對應(yīng)。該安全元件30驗(yàn)證在消息M4中接收的版本V比操作系統(tǒng)35的當(dāng)前版本(即在此例子中的VI)高級。
[0074]如果在消息M4中接收的版本V比操作系統(tǒng)35的當(dāng)前版本高級,則在步驟E4,安全元件30向更新器裝置10發(fā)送消息M5,M5經(jīng)由終端20并以消息M5,延續(xù)。消息M5包括安全元件30的序列號N1、隨機(jī)數(shù)NAND以及認(rèn)證計(jì)數(shù)器C的值(變量70)。
[0075]基于包括在消息M5'中的序列號Ni,更新器裝置10依照以上給出的步驟,根據(jù)序列號Ni和秘密密鑰K,或者參考與接收的序列號Ni聯(lián)合存儲(chǔ)的密鑰MKi來確定相應(yīng)的密鑰MKi0接著,更新器裝置10基于所確定的密鑰MKi和所接收的隨機(jī)數(shù)RAND來確定會(huì)話密鑰SK,通過用會(huì)話密鑰SK來加密隨機(jī)數(shù)RAND而確定認(rèn)證數(shù)據(jù)AUTHltlt5更新器裝置10向安全元件30發(fā)送包括認(rèn)證數(shù)據(jù)AUTHltl的消息M6,M6經(jīng)由終端20并以消息M6'延續(xù)。該消息M6'是例如新定義的ADPU類型的命令,稱為“MUTUAL AUTHENTICATION”。
[0076]在步驟E5,由安全元件30接收消息M6'。在步驟E6,響應(yīng)于接收到消息M6',該安全元件30根據(jù)主密鑰MKi和隨機(jī)數(shù)RAND來確定會(huì)話密鑰SK,該會(huì)話密鑰SK —般與更新器裝置10所確定的會(huì)話密鑰SK相同,該安全元件30通過用所確定的會(huì)話密鑰SK來加密隨機(jī)數(shù)RAND而確定認(rèn)證數(shù)據(jù)AUTH3tlt5該安全元件30還遞減認(rèn)證計(jì)數(shù)器C。
[0077]接著,在步驟E7,該安全元件30比較認(rèn)證數(shù)據(jù)AUTHltl和AUTH3(I。如果二者一致,則安全元件30對更新器裝置10的認(rèn)證就已經(jīng)完成,并且確定了會(huì)話密鑰SK。
[0078]在認(rèn)證的情況下,在步驟ES,安全元件30向更新器裝置10發(fā)送消息M7,消息M7經(jīng)由終端20以消息M7'延續(xù)。該消息M7用會(huì)話密鑰SK加密,并包括在步驟E3確定的操作系統(tǒng)35的當(dāng)前版本VI。
[0079]消息M7'的接收使得更新器裝置10可以認(rèn)證安全元件30。例如,如果會(huì)話以兩個(gè)八位字節(jié)編碼,解碼后的消息包括16個(gè)八位字節(jié),則更新器裝置10可以通過驗(yàn)證解密的消息M7'的14個(gè)第一八位字節(jié)是零而認(rèn)證安全元件。因此,在安全元件30和更新器裝置10之間的相互認(rèn)證已經(jīng)完成。
[0080]接著,更新器裝置10確定N個(gè)塊0SB1、0SB2......0SBN0每個(gè)塊包括用會(huì)話密鑰
SK加密了的操作系統(tǒng)的一部分。選擇數(shù)量N,使得塊的尺寸充分有限而在單個(gè)ADPU類型的命令中傳輸。更新器裝置10在一個(gè)或多個(gè)消息M8中向終端20發(fā)送所確定的塊。終端20存儲(chǔ)接收到的塊直至接收到了所有塊。
[0081]接著,終端20向安全元件30發(fā)送連續(xù)的消息MV M92......M9N,每個(gè)消息Μ%、
M92......Μ9ν包括塊0SB1、0SB2......0SBN之一。安全元件30使用會(huì)話密鑰SK來解密每
個(gè)塊,并存儲(chǔ)在操作系統(tǒng)35的版本Vl的位置。
[0082]每個(gè)消息Μ9」例如是新定義的ADPU類型的命令,稱為“LOAD BLOCK”,j從I到N_1,安全元件30通過確認(rèn)消息M9」'來對其進(jìn)行響應(yīng)。消息M9n例如是新定義的ADPU類型的
命令,稱為“LOAD LAST BLOCK”。安全元件30接收消息M%、M92......M9N組成了對于操作
系統(tǒng)新版本的接收步驟E9。
[0083]在接收到最后一個(gè)消息M9N之后,在步驟E10,安全元件30例如通過循環(huán)冗余控制測試完成對接收的操作系統(tǒng)新版本的驗(yàn)證。
[0084]如果在步驟Ell驗(yàn)證了該測試,則安全元件30重新初始化計(jì)數(shù)器C,啟用操作系統(tǒng)35并啟動(dòng)其執(zhí)行。在此階段,操作系統(tǒng)35的新版本因此由安全元件30執(zhí)行。
[0085]在此情況下,在步驟E1,確定操作系統(tǒng)35是啟用的,該操作與之前描述的相類似,主要的區(qū)別現(xiàn)在將加以描述。在步驟E12,安全元件30執(zhí)行操作系統(tǒng)35。這樣,如前所解釋的,接收到的消息M4由操作系統(tǒng)35管理。圖2的步驟F2到F5對應(yīng)于之前描述的步驟E2到E5,但是對應(yīng)于操作系統(tǒng)35而非引導(dǎo)程序38的指令的執(zhí)行。
[0086]在接收到認(rèn)證數(shù)據(jù)AUTHltl之后,操作系統(tǒng)35通過編程接口 API來詢問引導(dǎo)程序38,以便在步驟E13到E14期間類似于步驟E6到E7來驗(yàn)證認(rèn)證數(shù)據(jù)。接著操作系統(tǒng)35在步驟F8通過消息M7進(jìn)行響應(yīng)。接著,在步驟E15操作系統(tǒng)35將其交由引導(dǎo)程序38。
[0087]在步驟E15,引導(dǎo)程序38停用(deactivate)操作系統(tǒng)35。例如,引導(dǎo)程序清除非易失性存儲(chǔ)器34的操作系統(tǒng)35,或者將狀態(tài)指示符39的值修改為“非啟用”。下述步驟E9到Ell類似于之前描述的這些步驟。
[0088]步驟El到E15對應(yīng)于微處理器31對引導(dǎo)程序38的指令的執(zhí)行。步驟F2到F5和F8對應(yīng)于微處理器31對操作系統(tǒng)35的指令的執(zhí)行。[0089]圖4A到4D示出了安全元件30的制造處理和操作系統(tǒng)35的更新的不同時(shí)刻,非易失性存儲(chǔ)器34的內(nèi)容。在此實(shí)例中,圖4A和4B示出了非易失性存儲(chǔ)器34包括可重寫部分40 (例如閃速存儲(chǔ)器類型)和ROM類型的非可重寫部分41。
[0090]圖4A示出了非易失性存儲(chǔ)器34的初始狀態(tài)。部分40是空的,部分41包括卡的制造商的初始引導(dǎo)程序。如箭頭42所示的,在此初始狀態(tài)下,微處理器31被配置為在安全元件30啟動(dòng)期間開始此初始引導(dǎo)程序的執(zhí)行。初始引導(dǎo)程序的功能是在制造商對安全元件30個(gè)性化期間使得引導(dǎo)程序38、操作系統(tǒng)35和用戶數(shù)據(jù)37載入非易失性存儲(chǔ)器34的部分40中。
[0091]圖4B示出了制造商對安全元件30個(gè)性化之后的非易失性存儲(chǔ)器34的狀態(tài)。部分40包括引導(dǎo)程序38、操作系統(tǒng)35 (版本OS (Vl))、用戶數(shù)據(jù)37和未使用區(qū)域44。如箭頭43所示的,部分41的初始引導(dǎo)程序已經(jīng)被停用,微處理器31被配置為在啟動(dòng)安全元件30期間開始引導(dǎo)程序38的執(zhí)行。如箭頭45所示的,在此狀態(tài)下,操作系統(tǒng)35被啟用,引導(dǎo)程序38因此開始對操作系統(tǒng)35的執(zhí)行。這對應(yīng)于先前描述過的步驟E0、El和E12。
[0092]圖4C示出了在操作系統(tǒng)35更新處理期間非易失性存儲(chǔ)器34的部分40。更精確地,在圖4C的狀態(tài)下,已經(jīng)通過刪除或修改狀態(tài)指示符39而停用了操作系統(tǒng)35(圖2的步驟E15)。如箭頭46所示的,引導(dǎo)程序38接收消息M9i;并如箭頭47所示的,將包含在這些消息中的塊OSBi存儲(chǔ)在操作系統(tǒng)35之 前的版本中。這與圖2的步驟E9對應(yīng)。
[0093]圖4D示出了操作系統(tǒng)35更新之后的非易失性存儲(chǔ)器34的部分40 (圖2的步驟E11)。部分40包括引導(dǎo)程序38、版本為0S(V2)的操作系統(tǒng)35、用戶數(shù)據(jù)37和未使用區(qū)域34。由于操作系統(tǒng)35的版本OS(VI)和0S(V2)不必有相同的尺寸,所以未使用區(qū)域44可為圖4D和圖4B之間的不同尺寸。在示出的狀態(tài)下,操作系統(tǒng)35被啟用。如箭頭43所示出的,微處理器31被配置為在安全元件啟動(dòng)期間開始引導(dǎo)程序38的執(zhí)行。如箭頭45所示的,在此狀態(tài)下,操作系統(tǒng)35被啟用,由此引導(dǎo)程序38起動(dòng)操作系統(tǒng)35的執(zhí)行。
[0094]圖5A 到示出了安全元件 30 對消息 M4 (命令 ADPU“PUSHAVAILABLE VERSION”)和 M6'(命令 ADPU “ MUTUAL AUTHENTI CAT I ON ”)的處理。
[0095]特別地,圖5A示出了在操作系統(tǒng)35啟用時(shí)消息M4 (命令A(yù)SPU “PUSH AVAILABLEVERSION”)的處理。因此,消息M4的接收與圖2的步驟F2相對應(yīng)。響應(yīng)于消息M4,操作系統(tǒng)35查詢引導(dǎo)程序38以確定操作系統(tǒng)35的版本(箭頭50)。接著,引導(dǎo)程序38查閱操作系統(tǒng)35中的版本信息(箭頭51)并響應(yīng)該操作系統(tǒng)(箭頭52)。這些交換由編程接口 API來進(jìn)行。接著,操作系統(tǒng)35通過消息M5進(jìn)行響應(yīng),這與圖2的步驟F4相對應(yīng)。
[0096]通過比較,圖5B示出了操作系統(tǒng)35未被啟用時(shí)對于消息M4(命令A(yù)DPU “PUSHAVAILABLE VERSION”)的處理。在此實(shí)例中,操作系統(tǒng)35已經(jīng)被清除。消息M4的接收與圖2的步驟E2相對應(yīng)。響應(yīng)于消息M4,引導(dǎo)程序38試圖查詢操作系統(tǒng)35以確定操作系統(tǒng)35的版本(箭頭53)。由于操作系統(tǒng)已被清除,所以引導(dǎo)程序38不接收響應(yīng),因此使用存儲(chǔ)的默認(rèn)版本。接著,引導(dǎo)程序38通過消息M5做出響應(yīng),這與圖2的步驟E4相對應(yīng)。
[0097]圖5C示出了在操作系統(tǒng)35處于啟用時(shí)對消息M6 ^ (命令A(yù)DPU “MUTUALAUTHENTICATION”)的處理。因此,對于消息M6,的接收與圖2的步驟F5相對應(yīng)。響應(yīng)于消息M6',操作系統(tǒng)35查詢引導(dǎo)程序38以驗(yàn)證更新器裝置10的認(rèn)證數(shù)據(jù)AUTHltl(箭頭54)。引導(dǎo)程序38使用主密鑰MKi來驗(yàn)證認(rèn)證數(shù)據(jù)AUTHltl(箭頭56)。這對應(yīng)于圖2的步驟E13和E14。引導(dǎo)程序38確認(rèn)對操作系統(tǒng)的認(rèn)證(箭頭55)。接著,操作系統(tǒng)35通過消息M7進(jìn)行響應(yīng),此與圖2的步驟F8相對應(yīng)。
[0098]經(jīng)由比較,圖示出了在操作系統(tǒng)35處于非啟用時(shí)消息對M6'的處理(命令A(yù)DPU“MUTUALAUTHENTICATION”)。因此,消息M6,的接收對應(yīng)于圖2的步驟E5。響應(yīng)于消息M6',引導(dǎo)程序38使用主密鑰MKi來驗(yàn)證認(rèn)證數(shù)據(jù)AUTHltl (箭頭57)。這對應(yīng)于圖2的步驟E6和E7。引導(dǎo)程序38確認(rèn)認(rèn)證并通過消息M7來響應(yīng),此相當(dāng)于圖2的步驟E8。
[0099]參考圖2和3,描述了安全元件30和更新器裝置10之間的相互認(rèn)證和加密通信的實(shí)現(xiàn)。專家可選擇適合于執(zhí)行這些功能的密鑰和密碼算法的格式。下文給出其非限定性實(shí)施方式。
[0100]更新器裝置10存儲(chǔ)32個(gè)八位字節(jié)的密鑰。當(dāng)它接收到16個(gè)八位字節(jié)的序列號Ni時(shí),更新器裝置10可根據(jù)K和Ni確定與序列號Ni的安全元件30相對應(yīng)的32個(gè)八位字節(jié)的密鑰MKitl可由系統(tǒng)的設(shè)計(jì)者選擇根據(jù)K和Ni計(jì)算MKi的算法,并保存密鑰以提高安全性。序列號Ni的使用區(qū)分于用于不同安全元件的認(rèn)證數(shù)據(jù)和加密密鑰。安全元件直接存儲(chǔ)密鑰并因此不必根據(jù)K和Ni計(jì)算MKitl
[0101]會(huì)話密鑰SK可通過使用算法AES-256根據(jù)密鑰MKi和32個(gè)八位字節(jié)的隨機(jī)數(shù)RAND來確定。更新器裝置10和安全元件30計(jì)算二者:SK = AES-256 (MKi, RAND)。
[0102]代替隨機(jī)數(shù)RAND,可使用另一個(gè)變量(偽隨機(jī)變量、日期、遞增數(shù))。
[0103]還可以使用算法AES-256根據(jù)會(huì)話密鑰SK和隨機(jī)數(shù)RAND來確定認(rèn)證數(shù)據(jù)AUTHltl和AUTH3tlt5這樣,更新器裝置10計(jì)算AUTHltl = AES-256 (SK,RAND)。相應(yīng)地,安全元件30計(jì)算AUTH3tl = AES-256 (SK,RAND)。通過對接收的認(rèn)證數(shù)據(jù)AUTHltl與確定的認(rèn)證數(shù)據(jù)AUTH3tl進(jìn)行比較,安全元件30完成對更新器裝置10的認(rèn)證。
[0104]安全元件30向更新器裝置10發(fā)送的消息M7包括使用算法AES-256-CBC-1S09797-M1:M7 = AES-256-CBC-1S09797-M1 (SK, VI)被會(huì)話密鑰 SK 加密的操作系統(tǒng)35的當(dāng)前版本VI。這使得更新器裝置10能夠?qū)Π踩?0認(rèn)證。為此目的,使用模式CBC( “Cipher-block chaining”)和ICV密碼,該ICV密碼基于隨機(jī)數(shù)RAND而確定。例如,通過將算法AES-256應(yīng)用于隨機(jī)數(shù)RAND的16個(gè)中心八位字節(jié)來確定ICV。
[0105]這樣,就可以完成安全元件30和更新器裝置10之間的彼此認(rèn)證。
[0106]圖6和7示出了更新器裝置10確定塊OSBl、0SB2......0SBN的實(shí)例,塊OSBl、
0SB2......0SBN包括操作系統(tǒng)35的加密的新版本OS (V2)。
[0107]操作系統(tǒng)的代碼,表示為OS (V2),是非加密數(shù)據(jù)的集合,特別包括微處理器31可執(zhí)行的指令。更新器裝置10在代碼OS(V2)的末端增加了印記60。該印記60是例如使用算法SHA-512確定的。
[0108]接著,更新器裝置10向代碼0S(V2)的起始處增加秘密數(shù)字61、代碼0S(V2)的尺寸以及代碼0S(V2)的操作系統(tǒng)的版本63。該秘密數(shù)字61是例如以四個(gè)八字節(jié)編碼的,并為更新器裝置10和安全元件30所知。通過安全元件30,這在驗(yàn)證期間提供了對于接收的操作系統(tǒng)的驗(yàn)證的額外安全性。尺寸61是例如以四個(gè)八字節(jié)編碼的。代碼0S(V2)的操作系統(tǒng)的版本63是例如以兩個(gè)八字節(jié)編碼的。
[0109]接著,更新器裝置10向末端加入由秘密數(shù)字61、尺寸62、版本63、代碼0S(V2)以及印記61和填充數(shù)據(jù)64 (例如值為O的八位字節(jié))組成的集合,以獲得總數(shù)是16的N倍的八位字節(jié)。因此可能分解16個(gè)八位字節(jié)的N個(gè)塊Datal、Data2......DataN的所有數(shù)據(jù),
包括未加密的代碼OS (V2)。
[0110]根據(jù)塊Datal、Data2......DataN,更新器裝置10確定包括加密代碼OS (V2)的塊
0SB1、0SB2......0SBN,例如圖7中所示的。
[0111]在圖7中,ICV是根據(jù)隨機(jī)數(shù)RAND而確定的密碼。例如,通過將算法AES-256應(yīng)用到隨機(jī)數(shù)RAND的16個(gè)中心八位字節(jié)來確定ICV。
[0112]接著,算法AES-256 在 CBC (“Cipher-block chaining”)模式通過使用密鑰 SK 和
ICV密碼來進(jìn)行對塊Datal、Data2......DataN的加密。這樣,通過XOR運(yùn)算(0U專屬的)
來組合ICV密碼和塊Datal。接著,通過使用會(huì)話密鑰SK和算法AES-256來加密此運(yùn)算XOR的結(jié)果以確定塊OSBl。
[0113]對于每個(gè)下面的塊Data (i),通過使用塊OSB (i_l)代替ICV密碼而類似的確定相應(yīng)的塊OSB⑴。
[0114]在圖2的步驟E9接收到每個(gè)塊OSB (i)之后,安全元件30可用會(huì)話密鑰SK來解密所接收到的數(shù)據(jù)。接著,在步驟E10,對尤其是印記60和秘密數(shù)字61的驗(yàn)證可檢測任何損壞。
[0115]圖1的系統(tǒng)有一些優(yōu)勢。
[0116]具體來講,能夠更新安全元件30的操作系統(tǒng)35。在安全元件30已經(jīng)作為用戶在終端中的操作時(shí),可完成該更新。在通過電信網(wǎng)絡(luò)在終端20和更新器裝置10之間通信的情況下,用戶不必去到確定的地點(diǎn),例如服務(wù)供應(yīng)商的商店。操作系統(tǒng)35可完全被替換。在更新期間,不修改用戶數(shù)據(jù)37。這樣,在更新之后,用戶仍然具有他的應(yīng)用和他的個(gè)人數(shù)據(jù)。同樣,終端20的操作也不必被打斷。
[0117]由于更新器裝置10和安全元件30的彼此認(rèn)證,以及更新器裝置10和安全元件30之間的加密通信,第三方不可能獲得操作系統(tǒng)的新版本0S(V2)或者通過將自己假扮成更新器裝置10而向安全元件30提供損壞的版本。特別地,如果終端20的程序Pl被損壞的版本所替換,則此版本最多可獲得加密塊OSB(i)。換句話說,保護(hù)了操作系統(tǒng)的機(jī)密性和完整性。這些特征可達(dá)到對安全元件和/或系統(tǒng)的認(rèn)證。
[0118]更新器裝置10可計(jì)算已經(jīng)失敗的相互認(rèn)證的次數(shù)。如果該數(shù)量達(dá)到預(yù)定閾值,則該更新器裝置19可采取保護(hù)步驟,例如向安全元件發(fā)送警告或黑名單。
[0119]由于相互認(rèn)證和加密是基于安全元件的序列號,所以這些序列號通過安全元件被多樣化。因此一次故障并不會(huì)影響到連接至更新器裝置的所有安全元件。
[0120]隨機(jī)數(shù)RAND是由安全元件而非更新器裝置10產(chǎn)生的。這限制了施加在更新器裝置上的工作量,這在涉及大量安全元件的更新器裝置的情況下特別感興趣。
[0121]在安全元件和更新器裝置之間的相互認(rèn)證和加密通信使用相同的會(huì)話密鑰SK限制了在安全元件層次所必需的資源。但是,在變型實(shí)施方式中,相互認(rèn)證和加密通信使用不同的密鑰。
[0122]在終端20上存在的程序Pl改變了操作系統(tǒng)更新期間終端20的性能。例如,在更新期間可停用使用安全元件30的終端20的應(yīng)用。
【權(quán)利要求】
1.一種包括至少一個(gè)微處理器(31)、非易失性存儲(chǔ)器(34)以及通信接口(36)的安全元件(30),該安全元件(30)能夠經(jīng)由該通信接口(36)與更新器裝置(10)進(jìn)行通信,該非易失性存儲(chǔ)器(34)存儲(chǔ)有至少一個(gè)引導(dǎo)程序(38),該微處理器(31)被配置為在該安全元件(30)啟動(dòng)期間執(zhí)行該引導(dǎo)程序(38),該安全元件(30)的特征在于,該引導(dǎo)程序(38)包括在被該微處理器(31)執(zhí)行時(shí)用于執(zhí)行以下步驟的指令: -啟動(dòng)步驟(E1,E12),確定該非易失性存儲(chǔ)器(34)是否存儲(chǔ)有啟用的操作系統(tǒng)(35),如果是,則啟動(dòng)該操作系統(tǒng)(35)的執(zhí)行, -該更新器裝置(10)根據(jù)該安全元件(30)所確定的第一認(rèn)證數(shù)據(jù)(AUTH3tl)和從該更新器裝置(10)接收的第二認(rèn)證數(shù)據(jù)(AUTH10)進(jìn)行的認(rèn)證步驟(E4,E5,E6,E7,E13,E14), -響應(yīng)于該認(rèn)證步驟,將從該更新器裝置(10)接收的新的操作系統(tǒng)存儲(chǔ)在該非易失性存儲(chǔ)器(34)中的存儲(chǔ)步驟(E9,E10)以及該新的操作系統(tǒng)的啟用步驟(E11)。
2.根據(jù)權(quán)利要求1所述的安全元件(30),其中,所述更新器裝置的所述認(rèn)證步驟包括: -向所述更新器裝置(10)發(fā)送包括變量(RAND)的消息(M5)的步驟(E4), -接收所述第二認(rèn)證數(shù)據(jù)(AUTHltl)的步驟(E5), -根據(jù)所述變量(RAND)和存儲(chǔ)在所述非易失性存儲(chǔ)器(34)中的密鑰(MKi)來確定所述第一認(rèn)證數(shù)據(jù)(AUTH3tl)的確定步驟(E6,E13),以及 -比較所述第一認(rèn)證數(shù)據(jù)(AUTH3tl)和所述第二認(rèn)證數(shù)據(jù)(AUTHltl)的比較步驟(E7,E14)。
3.根據(jù)權(quán)利要求2所述的安全元件(30),其中,所述引導(dǎo)程序(38)包括用于執(zhí)行發(fā)送步驟(ES)的指令,所述發(fā)送步驟(ES)向所述更新器裝置(10)發(fā)送包含根據(jù)所述密鑰(MKi)和所述變量(RAND)而加密的數(shù)據(jù)(Vl)的消息(M7)。
4.根據(jù)權(quán)利要求2或3所述的安全元件(30),其中,所述非易失性存儲(chǔ)器(34)包括操作系統(tǒng)(35),所述操作系統(tǒng)(35)包括用于執(zhí)行以下步驟的指令: -向所述更新器裝置(10)發(fā)送包含所述變量(RAND)的消息(M5)的發(fā)送步驟(F4), -接收所述第二認(rèn)證數(shù)據(jù)(AUTHltl)的接收步驟(F5)。
5.根據(jù)權(quán)利要求4所述的安全元件(30),其中,所述操作系統(tǒng)(35)包括用于執(zhí)行發(fā)送步驟(F8)的指令,所述發(fā)送步驟(F8)向所述更新器裝置(10)發(fā)送包含根據(jù)所述密鑰(MKi)和所述變量(RAND)而加密的數(shù)據(jù)(Vl)的消息(M7)。
6.根據(jù)權(quán)利要求1-5中任意一項(xiàng)所述的安全元件(30),其中,所述存儲(chǔ)步驟包括接收加密的所述新的操作系統(tǒng)。
7.根據(jù)權(quán)利要求2或6所述的安全元件(30),其中,所述認(rèn)證步驟包括根據(jù)所述密鑰(MKi)和所述變量來確定會(huì)話密鑰(SK),所述存儲(chǔ)步驟包括接收用所述會(huì)話密鑰(SK)加密的所述新的操作系統(tǒng)。
8.根據(jù)權(quán)利要求1到7中任意一項(xiàng)所述的安全元件(30),其中,所述引導(dǎo)程序(38)存儲(chǔ)在所述非易失性存儲(chǔ)器(34)的不可重寫部分(41)中。
9.根據(jù)權(quán)利要求1到7中任意一項(xiàng)所述的安全元件(30),其中,所述引導(dǎo)程序(38)存儲(chǔ)在所述非易失性存儲(chǔ)器(34)的可重寫部分(40)中,所述非易失性存儲(chǔ)器(40)包括被配置為阻止對所述引導(dǎo)程序(38)的寫命令的操作系統(tǒng)(35)。
10.一種終端(20),該終端(20)包括至少一個(gè)微處理器(21)、非易失性存儲(chǔ)器(24)以及根據(jù)權(quán)利要求1到9中任意一項(xiàng)所述的安全元件(30),該終端(20)的該非易失性存儲(chǔ)器(24)包括用于使用該安全元件(30)提供的服務(wù)的應(yīng)用(Al)和更新管理程序(P1),該更新管理程序(Pl)包括在由該終端(20)的該微處理器(21)執(zhí)行時(shí)用于執(zhí)行以下步驟的指令: -傳輸步驟,其包括從所述更新器裝置(10)接收所述新的操作系統(tǒng)以及將接收到的新的操作系統(tǒng)發(fā)送給所述安全元件, -至少在所述傳輸步驟期間停用所述服務(wù)的停用步驟。
11.一種系統(tǒng),該系統(tǒng)包括至少一個(gè)根據(jù)權(quán)利要求1到9中任意一項(xiàng)所述的安全元件(30)以及存儲(chǔ)有所述操作系統(tǒng)的新版本的更新`器裝置(10)。
【文檔編號】G06F9/445GK103577221SQ201310410455
【公開日】2014年2月12日 申請日期:2013年7月22日 優(yōu)先權(quán)日:2012年7月20日
【發(fā)明者】C·吉哈德, O·查姆利, G·戈德爾 申請人:歐貝特科技公司