用于更新安全模块的固件的方法和系统转让专利

申请号 : CN201380039565.4

文献号 : CN104520870B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : D.韦斯K.维德M.迈耶M.塔格谢勒J.鲁道夫U.迪茨J.尼霍姆T.拉森J.赫尔特

申请人 : 捷德移动安全有限责任公司

摘要 :

本发明描述了一种用于更新包括装置(14)和安全模块(16)的设备(E)中的所述安全模块(16)的固件的方法,所述装置和所述安全模块被布置为使得能够在所述安全模块(16)与所述装置(14)之间交换数据。本发明的所述法包括步骤:由所述安全模块(16)接收第一消息,其中所述第一消息指示由提供商(P)提供的固件更新的可用性,并且其中所述第一消息包含对于所述安全模块(16)独有的交易号。将第二消息从所述设备(E)传送至所述提供商(P),通过所述第二消息从所述提供商(P)请求所述固件更新,其中所述第二消息包含独有的交易号以使得所述提供商(P)能够进行对所述安全模块(16)的识别。此外,基于对所述独有的交易号的评估,将所述固件更新从所述提供商(P)传送至所述设备(E)。之后,将所述固件更新存储在所述装置(14)的存储器中。最终,由所述安全模块(16)或所述设备(E)的引导加载器对所述固件解压缩。

权利要求 :

1.一种用于更新设备(E)中的安全模块(16)的固件的方法,所述设备(E)包括装置(14)和所述安全模块(16),所述装置(14)和所述安全模块(16)被布置为使得能够在所述安全模块(16)与所述装置(14)之间交换数据,所述方法包括步骤:-由所述安全模块(16)接收第一消息,其中所述第一消息指示由提供商(P)提供的固件更新的可用性,并且其中所述第一消息包含对于所述安全模块(16)独有的交易号;

-将第二消息从所述设备(E)传送至所述提供商(P),利用所述第二消息从所述提供商(P)请求所述固件更新,其中所述第二消息包含所述独有的交易号以使得所述提供商(P)能够进行对所述安全模块(16)的识别;

-基于对所述独有的交易号的评估,将所述固件更新从所述提供商(P)传送至所述设备(E),并将所述固件更新存储在所述装置(14)的存储器中;以及-由所述安全模块(16)或所述设备(E)的引导加载器对所述固件解压缩,其中所述第一消息还包括第一解锁密文,并且在传送所述固件更新的步骤之后,所述方法还包括步骤:-将第二解锁密文从所述提供商(P)传送至所述设备(E);

-由所述设备(E)验证所述第二解锁密文是否对应于所述第一解锁密文;以及-在所述第二解锁密文对应于所述第一解锁密文的情况下,由所述安全模块(16)或所述设备(E)的引导加载器解压缩固件。

2.如权利要求1所述的方法,其中解压缩所述固件更新包括将那些被所述引导加载器直接处理的数据从所述装置(14)传送至所述安全模块(16)。

3.如在前权利要求中之一所述的方法,其中所述固件更新的解压缩包括由所述安全模块(16)对从所述装置(14)接收的数据解密。

4.如权利要求1或2所述的方法,其中所述引导加载器在开始解压缩所述固件更新之前创建实际固件的备份。

5.如权利要求1或2所述的方法,其中所述引导加载器通过计算经解压缩的固件的校验和并将所计算的校验和与所接收的校验和相比较而核查更新所述固件的成功。

6.如权利要求1或2所述的方法,其中仅在固件更新是必要的情况下,将所述解锁密文存储在所述安全模块(16)内。

7.如权利要求1或2所述的方法,其中所述提供商(P)的订阅管理器由于接收到来自所述提供商(P)的安全模块供应商(10)的发布消息而传送所述第一消息,其中所述发布消息包含所述固件更新和关于可用固件更新的版本和/或类型的信息。

8.如权利要求7所述的方法,其中用第一密钥(KeyFW)对至少所述发布消息的固件更新加密,其中所述第一密钥(KeyFW)是根据所述安全模块(16)的类型而特定的,并且对于所述设备(E)的安全模块(16)和所述安全模块供应商(10)而言是已知的。

9.如权利要求8所述的方法,其中所述发布消息包含用所述第一密钥(KeyFW)加密的校验和。

10.如权利要求7所述的方法,其中用所述设备(E)的安全模块(16)和所述订阅管理器已知的第二密钥(KeyeUICC)加密所述第一消息。

11.如权利要求1所述的方法,其中由所述安全模块(16)触发所述第二消息,并且将所述第二消息从所述装置(14)传送至所述提供商(P)。

12.如权利要求10所述的方法,其中用所述第二密钥(KeyeUICC)加密所述第二消息。

13.如权利要求1或2所述的方法,其中在所述固件更新的完全传送之后,将所述第二解锁密文从所述提供商(P)传送至所述设备(E)。

14.一种用于更新设备(E)中的安全模块(16)的固件的系统,所述设备(E)包括装置(14)和所述安全模块(16),所述装置(14)和所述安全模块(16)被布置为使得能够在所述安全模块(16)与所述装置(14)之间交换数据,所述系统适配为:-由所述安全模块(16)接收第一消息,其中所述第一消息指示由提供商(P)提供的固件更新的可用性,并且其中所述第一消息包含对于所述安全模块(16)独有的交易号以及第一解锁密文;

-将第二消息从所述设备(E)传送至所述提供商(P),通过所述第二消息从所述提供商(P)请求所述固件更新,其中所述第二消息包含所述独有的交易号以使得所述提供商(P)能够进行对所述安全模块(16)的识别;

-基于对所述独有的交易号的评估将所述固件更新从所述提供商(P)传送至所述设备(E),并将所述固件更新存储在所述装置(14)的存储器中;

-将第二解锁密文从所述提供商(P)传送至所述设备(E);

-验证所述第二解锁密文是否对应于所述第一解锁密文;以及

-在所述第二解锁密文对应于所述第一解锁密文的情况下,由所述安全模块(16)或所述设备(E)的引导加载器解压缩所述固件。

说明书 :

用于更新安全模块的固件的方法和系统

技术领域

[0001] 本发明一般涉及移动通信,并且具体涉及一种用于更新安全模块的固件的方法和系统。

背景技术

[0002] 安全模块包括系统资源,特别是用于数据输入和输出数据的数据接口、一个或多个中央处理单元CPU、作为RAM的易失性存储器、以及特别是ROM、EEPROM或FLASH的非易失性存储单元。安全模块上的应用和文件需要在它们的执行期间访问那些系统资源。通过固件管理这些系统资源。因此,固件是安全模块的应用与安全模块的系统资源之间的接口。
[0003] 如果在固件中发现错误、或者确定不包括固件中的特定功能性(例如,函数、方法或程序代码库),固件的那些部分在发行后被加载并在现场被安装。此方法是公知的并且称为打补丁(patching)。打补丁(即,固件的部分交换)可以通过为了安装目的将补丁完全写入到安全模块的存储器中来实现。此过程需要安全模块中的相应存储量,这通常由于成本原因而无法获得。因此,打补丁是昂贵的并且仅导致固件的错误(bug)的修正和/或小部分的扩展。
[0004] 不时地开发更新版本的固件。当前,未预见到安全模块的固件的完全交换。然而,由于安全模块具有较长寿命并且在它们的技术环境中技术不断发展的事实,需要保持安全模块的固件为最新。这个必要性的一个原因是安全模块中包含的应用必须在安全模块的寿命期间具有关于攻击或安全模块的加密算法的可靠安全机制。
[0005] 从DE10336568A1可知,提供用于安全模块的操作系统,其包含用于在常规条件下操作安全模块的主操作系统。此外,在操作系统中,提供了紧急服务,通过其可以代替主操作系统而操作安全模块。
[0006] DE102004013904A1公开了包含具有用于将程序代码发送至移动安全模块的介质的终端和接收所发送的代码的接口的系统。该终端具有用于验证代码的验证器,所述代码将经验证的程序代码提供给载体。该终端具有处理单元,其中,设计该终端和验证器以使得仅在验证之后将代码加载至载体。

发明内容

[0007] 本发明的目的是提供一种用于更新安全模块的固件的方法和系统,其使得可以进行固件的完全或部分交换,其需要尽可能小的存储足迹(footprint)。
[0008] 通过根据权利要求1的特征的方法以及根据权利要求15的特征的系统实现以上目的。在从属权利要求中陈述了优选实施例。
[0009] 根据本发明,提供了一种用于更新设备中的安全模块的固件的方法。该设备包括装置和安全模块。布置该装置和安全模块以使得可以在安全模块与装置之间交换数据。该方法包括步骤:
[0010] a)由安全模块接收第一消息,其中第一消息指示由提供商提供的固件更新的可用性,并且其中第一消息包含对于该安全模块独有的(individual)交易号;
[0011] b)将第二消息从设备传送至提供商,利用第二消息从提供商请求固件更新,其中第二消息包含独有的交易号以使得提供商能够进行对安全模块的识别;
[0012] c)基于对独有的交易号的评估将固件更新从提供商传送至设备,并将固件更新存储在装置的存储器中;以及
[0013] d)由设备或安全模块的引导加载器对固件解压缩。
[0014] 根据本发明,安全模块是尺寸缩小的模块,并且资源包括中央处理单元、至少一个用于与装置和存储区域通信的数据接口。此存储区域可包括密文(secret)数据。安全模块包括禁止操纵和/或防止读出密文数据的企图的特征。安全模块中的密文数据用于用户在装置、终端或网络系统中的识别和/或认证。
[0015] 安全模块例如是诸如UICC、SIM、U-SIM、R-UIM或ISIM卡的智能卡、诸如eID或ePassport的电子身份文件、电子驾照、电子车辆登记、或者诸如信用卡或借记卡的支付卡。
[0016] 特别地,安全模块是订户在移动无线电网络环境中的认证/识别的订户身份模块。这样的订户身份模块使用终端中的卡读取器单元操作,并且原则上可以从终端移除以被另一智能卡替换、或者操作在不同终端中。替代地,安全模块是终端内的组成部分,诸如硬接线电子模块。这样的安全模块也称为UICC、eUICC或嵌入式安全元件。
[0017] 替代地,安全模块是机器对机器模块。这些模块用于诸如机器、设备和系统的装置或设备的远程监控、控制和维护。替代地,这些模块用于诸如电表、水表、所谓的智能电表的计数单元。
[0018] 替代地,安全模块是操作系统的可信部分(称为设备的可信执行环境(TEE))中的软件组件。然后例如在安全运行时环境中设计安全模块。
[0019] 安全模块可以通过装置操作。根据本发明的装置包括用于与通信网络通信的部件,以便接收固件更新。装置可以是如智能电话、平板式PC、笔记本、PDA的移动设备。替代地,装置是诸如数码相框、音频设备、TV、机顶盒、电子书阅读器等的多媒体装置。通过举例,术语“装置”还包括任何类型的机器,如自动售货机、车辆、智能电表等。固件更新特别经由诸如OTA的空中接口接收,空中接口可以实施为在蜂窝信令层或GPRS层上的基于SMS的通信。替代地,经由诸如OTI(例如WLAN)的基于因特网协议的信道接收固件更新。替代地,经由例如基于LTE的信道的分组交换服务接收固件更新。
[0020] 这里使用的术语“固件”等效于术语“操作系统”,因为对于每个定义,固件都是专有操作系统。可以根据ISO/IEC 7816-4、ETSI TS 102 221、ETSI TS101 220、ETSI TS 102 241和ETSI TS 102 226设计固件。固件管理安全模块的系统资源之间的数据处理和数据传送。固件管理数据处理和从安全模块到外部单元/从外部单元到安全模块的数据传输。固件管理指令命令的控制流。固件管理存储区域的物理存储地址。固件管理运行在安全模块上的应用和文件系统的执行。因此,固件包括I/O管理器、命令解释器、返回代码管理器、固件内核、资源管理器和/或指令集。关于安全模块的固件的更多信息可以在被全文引用的作者是Wolfgang Effing和Wolfgang Rankle的书“Handbuch der Chipkarten”的第13章中找到。
[0021] 固件的更新导致具有带有附加的和/或改进的功能性的替代开发阶段的实际固件的另一版本。替代地和/或附加地,固件更新是提供附加的和/或不同的功能性的实际固件的另一变型。在本说明书中,更新安全模块的固件包括固件的完全交换和固件的部分交换,其可以是安全模块的实际固件的更新。
[0022] 该方法通过确保最小存储足迹而实现安全模块的固件的容易且便宜的更新。特别地,该方法适合于嵌入在装置中的这种安全模块。
[0023] 可以在不需要使用不对称加密方法的情况下实现安全模块的固件的更新。因此,根据本发明的方法仅需要关于安全模块和装置的小资源。
[0024] 根据优选实施例,第一消息还包括第一解锁密文,并且,在步骤c)之后,该方法还包括步骤:
[0025] d)将第二解锁密文从提供商传送至设备;
[0026] e)由设备验证第二解锁密文是否对应于第一解锁密文;以及
[0027] f)在验证导致对应的解锁的情况下(即,在验证步骤e)成功的情况下),由设备或安全模块的引导加载器解压缩固件。
[0028] 此实施例导致更高的安全等级,并且导致安全模块与提供商之间更高的信任等级。
[0029] 根据优选实施例,解压缩固件更新包括将那些数据从装置传送至安全模块,该数据由引导加载器直接处理。此实施例确保在对固件的完全更新解密并将其加载到安全模块中之前不需要将固件的完全更新存储在安全模块的存储器上。这导致需要更少的资源。
[0030] 根据另一实施例,固件更新的解压缩包括由安全模块对从装置接收的数据解密。
[0031] 根据另一优选实施例,引导加载器在开始解压缩固件更新之前创建实际固件的备份。创建备份优选地包括在将备份传送至装置用于存储之前用密钥加密。用于加密固件的备份的密钥可以是随机密钥。将实际固件小心地存储为备份表示在可用固件的更新由于任何原因而失败的情况下将被如上所述地处置的一种固件更新。可以经由引导加载器执行对所存储的实际备份的重新安装。
[0032] 根据另一优选实施例,引导加载器通过计算解压缩的固件的校验和并将所计算的校验和与所接收的校验和相比较而核查更新固件的成功。可以在步骤c)中提供所接收的校验和,其中将固件更新从提供商传送至设备。
[0033] 根据另一优选实施例,第一消息包括关于可用固件更新的版本和/或类型的信息,设备、特别是安全模块将该信息与存储的关于其实际固件的版本和/或类型的信息相比较,以核查固件更新是否必须。此步骤确保将避免不必要的更新。在已经以不同方式(即,不经由提供商)将固件更新提供至安全模块的情况下,固件更新可以是不必要的。在设备是M2M(机器对机器)环境的部分的情况下,可以将这样的更新作为设备所附接至的组件的检查或修理的部分而提供至安全模块。
[0034] 根据另一优选实施例,仅在固件更新是必要的情况下,将解锁密文存储在安全模块内。此实施例帮助改善存储资源。
[0035] 根据另一优选实施例,提供商的订阅管理器由于接收到来自提供商的安全模块供应商的发布(release)消息而提供第一消息,其中发布消息包含固件更新和关于可用固件更新的版本和/或类型的信息。关于可用固件更新的版本和/或类型的信息使得设备能够验证固件更新是否必须。例如,通过处理可用固件更新的类型,可以核查可用固件是否适合于安全模块。处理可用固件更新的版本使得可用固件的发布号是否高于实际固件的发布号变清楚。
[0036] 还优选的是,订阅管理器从安全模块供应商请求发布消息。这是所谓的来自订阅管理器的拉动(pull)机制,用以以预定义的时间安排从固件获得关于较新发布的消息。替代地,安全模块供应商使用预定义的时间安排向订阅管理器自动提供发布消息。
[0037] 还优选的是,在通信系统中存在多于一个订阅管理器。因此,安全模块供应商将发布消息小区广播给供应商已知的订阅管理器,其中发布消息包含关于可用固件更新的较新版本和/或类型的信息。特定订阅管理器保证到适当的供应商的通信链路的现实存在和刷新。替代地,每个订阅管理器请求发布消息。
[0038] 还优选的是,用第一密钥对至少发布消息的固件更新加密,其中第一密钥是根据安全模块的类型而特定的,并且对于设备的安全模块和安全模块供应商是已知的。因为此第一密钥对于设备的装置以及提供商的订阅管理器不是已知的,所以在没有安全风险的情况下,将固件更新临时存储在订阅管理器和装置两者中是可能的。如果装置在固件下载期间发生故障,则可以在没有安全风险的情况下再次获得固件更新/下载。
[0039] 还优选的是,发布消息包含用第一密钥加密的校验和。固件更新、以及可选地校验和可以由订阅管理器存储以用于步骤c)中的固件更新的传送。
[0040] 与发布消息形成对比,用对于设备的安全模块和订阅管理器而言已知的第二密钥加密第一消息。这使得可以进行订阅管理器与设备之间的用于初始化并处置固件更新的安全通信。
[0041] 可以由安全模块触发第二消息,并且将第二消息从装置传送至提供商。优选地,用第二密钥加密第二消息。因此,装置不能“读取”第二消息。而是,装置仅仅转发第二消息。
[0042] 根据另一优选实施例,在固件更新的完全传送之后,将第二解锁密文从提供商传送至设备。这防止在将全部固件更新存储在装置上之前装置由于失败而删除安全模块上的实际固件。
[0043] 根据另一优选实施例,可以用第一密钥加密第二解锁密文。作为优点,仅安全模块能够解密用于从安全模块删除实际固件的解锁密文。
[0044] 设备和提供商通过通信网络通信。特别地,通信包括第一消息的接收、第二消息的传送、固件的传送、以及在设备与提供商之间的所有其它数据交换。在本发明中,术语“通信网络”等同于术语“通信系统”,并且由两个实例之间的电信号的传输所定义。特别地,为了从通信系统获得诸如对话或数据传输服务的服务,设备必须在网络上识别和/或认证其自己。特别地,本发明属于无线通信网络的领域,无线通信网络诸如表示基于蜂窝的移动网络的第二代的“全球移动通信系统”GSM、或“通用分组无线电服务”GPRS、或表示第三代的“通用移动通信系统”UMTS、或表示第四代的“长期演进”LTE、以及使用码分多址CDMA或用于移动网络增强逻辑CAMEL的定制应用的其它蜂窝通信系统。
[0045] 本发明还提供用于更新包括装置和安全模块的设备中的安全模块的固件的系统,所述装置和所述安全模块被布置以使得可以在所述安全模块与所述装置之间交换数据。该系统适配为
[0046] a)由安全模块接收第一消息,其中第一消息指示由提供商提供的固件更新的可用性,并且其中第一消息包含对于安全模块独有的交易号以及第一解锁密文;
[0047] b)将第二消息从设备传送至提供商,通过第二消息从提供商请求固件更新,其中第二消息包含独有的交易号以使得提供商能够进行对安全模块的识别;
[0048] c)基于对独有交易号的评估将固件更新从提供商传送至设备,并将固件更新存储在装置的存储器中;
[0049] d)将第二解锁密文从提供商传送至设备;
[0050] e)验证第二解锁密文是否对应于第一解锁密文;
[0051] f)在另一解锁密文的验证是肯定的情况下,由设备或安全模块的引导加载器解压缩固件。
[0052] 优选地,系统还包括用于执行上述方法的优选步骤的附加部件。

附图说明

[0053] 将通过对在附图中陈述的实施例的说明而更详细说明本发明。
[0054] 图1示出安全模块的数据结构。
[0055] 图2示出安全模块的固件更新的示意概览。
[0056] 图3示出图示安全模块的固件的更新处理的流程图

具体实施方式

[0057] 图1图示了诸如UICC或嵌入式UICC(eUICC)的安全模块的数据结构。安全模块16包括安全引导加载器20,其可以在诸如eUICC供应商的安全环境内、或在诸如移动电话的装置内使用。安全引导加载器20使得可以进行安全模块16的实际固件22的替换。然而,仅可以经由可信订阅管理器用安全模块16的供应商的固件进行替换。
[0058] 安全模块的固件22为安全模块16内的应用28提供基本功能性。这些应用可以包括程序库、加密和散列算法、文件和存储器管理、以及由第三方提供的应用。此外,固件为集成了安全模块的装置提供功能性。这样的功能性可以是装置在网络内的认证。将应用存储在移动网络运营商(MNO)的所谓的安全域26中。应用28访问例如集成在装置14中的安全模块16的文件系统30。
[0059] 图2示出如图1中图示的安全模块的固件的更新的示意概览。安全模块的制造商(称为供应商10)向订阅管理器12提供可用固件FW更新。供应商10和订阅管理器12分别构成固件和安全模块的提供商P。订阅管理器12将新固件更新提供至所有相关的安全模块16。通常可以在空中(OTA)或经由TCP/IP(传输控制协议/因特网协议)通信信道进行新固件更新的提供。
[0060] 图3图示根据本发明的优选实施例的用于更新安全模块16的固件的方法的流程图。
[0061] 通信发生在安全模块供应商10、订阅管理器12、装置14和安全模块16之间。供应商10和订阅管理器12构成提供商P。装置14与安全模块16一起形成设备或终端E,装置14包含安全模块16以使得可以在这两个部件之间交换数据。
[0062] 经由不同的安全机制保护下述通信。为此,供应商10和安全模块16包括第一密钥KeyFW。此外,订阅管理器和安全模块16包括第二密钥KeyeUICC。此外,安全模块16具有关于实际固件(即,当前运行在安全模块16上的操作系统)的类型(TypeFW)和版本(VersionFW)的信息。
[0063] 在图3的流程图中,ENC(x||y,Key)指示用密钥“Key”加密(或解密)“x”和“y”。由此,“x”和“y”通过举例表示两条加密信息,其中加密信息的条数可以是任意的。“Key”表示第一或第二密钥KeyFW或KeyeUICC。缩写“FW”代表固件。符号“||”优选地表示级联(concatenation)运算。
[0064] 在第一步骤S1中,将发布消息“发布FW”从供应商10传送至订阅管理器12。通过传送发布消息,供应商10向订阅管理器12提供关于新可用固件的信息。用对于订阅管理器12而言未知的第一密钥KeyFW加密固件FW。第一密钥KeyFW通常是对于安全模块的类型特定的。发布消息另外包含可用固件更新的校验和(“ChecksumFW”),其也用第一密钥KeyFW加密。也是发布消息的部分的关于版本“VersionFW”和类型“TypeFW”的信息不被加密,因此可以被订阅管理器12访问。
[0065] 在已经接收到发布消息之后,订阅管理器12通过处理数据库中的可用新固件FW的类型和版本而识别那些可以利用可用固件更新的安全模块。那些安全模块16(在图3中,通过举例仅图示了一个安全模块16)在步骤S2中接收请求(其对应于前述第一消息),其用“请求FW更新”来表示。用第二密钥KeyeUICC加密其内容的此消息包含固件FW的版本和类型、解码密文、交易ID以及加密消息的校验和。参数“UnlockSecret”是任意长度的随机位组合,其稍后将被用于从安全模块16删除实际固件。参数“TransactionID”包含对于每个请求的安全模块的唯一标识符。此信息将用于识别哪个安全模块已经应答了(answer)请求。参数“TransactionID”是长的、唯一的随机数。参数“Checksummessage”是用以通过使用随机位模式禁止攻击的步骤S2的加密消息的附加校验和。
[0066] 在步骤S3中,由安全模块16进行验证。在此验证内,核查步骤S2的请求的消息是否是完整(即,未被修改)且真实的。之后,安全模块将可用固件更新的版本和类型与存储在安全模块16内的对应信息相比较。此比较帮助避免不必要的更新。该比较包括核查类型是否正确以及核查版本号的步骤。
[0067] 在可用固件更新已经存储在安全模块上并且由安全模块使用的情况下,结束该方法。然而,即使在此情况下也优选的是,安全模块将消息、优选地与存储在安全模块上的实际固件的实际类型和版本一起传送至订阅管理器。这帮助订阅管理器保持关于在哪个安全模块上实施哪个固件版本的信息。
[0068] 在可用固件更新是必要的情况下,在步骤S4中,在安全模块16的存储器内存储解锁密文。
[0069] 在步骤S5中,安全模块16用消息“触发请求FW”触发装置14以启动可用固件的下载。触发消息可以是主动(proactive)命令的形式。触发消息至少包括用第二密钥KeyeUICC加密的交易ID。交易标识用作将被允许下载固件更新的装置的凭证。此外,交易标识符用于确定装置14正在响应哪个请求。在装置14不知道订阅管理器的地址的情况下,触发消息还包括提供固件更新的订阅管理器的服务器的地址。
[0070] 在步骤S6中,将请求消息从装置14转发至订阅管理器12。
[0071] 之后,订阅管理器12通过处理所接收的交易标识(交易ID)而核查该请求是否有效。在该请求有效的情况下,与交易标识关联的固件更新将被上传至装置、或者被装置14从订阅管理器12下载。
[0072] 由于用第一密钥KeyFW加密固件更新的事实,不需要附加的安全措施。这是有利的,特别是在M2M环境中。然而,如果要附加地保护固件更新,则对于https可以使用相互认证。
[0073] 在步骤S8中,解锁消息(“解锁FW消息”)将从订阅管理器12传送至装置14。解锁消息包括用第二密钥KeyeUICC加密的解锁密文。应注意,装置将接收在步骤S8中传送的解锁密文。相比之下,已经将步骤S2的解锁密文从订阅管理器12直接传送至安全模块16。
[0074] 此外,应注意,在已经完成固件更新到装置的传送之后,在步骤S8中解锁密文将被传送至装置14。因为解锁密文用于从安全模块删除实际固件,所以此特征禁止装置在可用固件更新在装置的存储器中可用之前由于失败而从安全模块删除实际固件。
[0075] 作为在步骤S7与步骤S8之间的另外的选择,装置可以将在所接收的数据上计算的校验和传送至订阅管理器。通过此校验和,订阅管理器12将能够验证是否已经在没有任何失败的情况下将固件更新传送至装置。
[0076] 在步骤S9中,装置将解锁密文传送至安全模块16。在步骤S10中,安全模块16验证所存储的解锁密文(在步骤S2中接收的)是否对应于解锁消息的解锁密文。如果给出这样的对应,则安全模块切换至用于接收固件更新的安全模块的引导加载器。
[0077] 在步骤S11中,将在没有任何改变的情况下将固件更新的数据从装置14传送至安全模块16。应注意,将仅传送那些将被安全引导加载器写入在安全模块的非易失性存储器中的数据。此过程称为流式传输(streaming)。
[0078] 在将几乎与步骤S11并行地执行的步骤S12中,安全模块16接收从装置传送的数据并以块方式加密它们。可选地,加密的数据将被解压缩。优选地,将使用如Byterun或LZW的压缩方法。安全模块16在其非易失性存储器中写入固件的所接收的数据。结果,用于临时存储此数据的存储要求较少。
[0079] 在一个选择中,安全引导加载器可以创建包含数据/块的已经写入的部分的协议。这使得能够在数据传送中断的情况下(例如,在断电的情况下)重新开始数据的写入。
[0080] 只要新固件已经被写入到安全模块16的存储器中,安全引导加载器就计算写入的数据的校验和。替代地,可以基于解压缩的数据计算附加校验和。后者实现对于错误地接收的数据(第二校验和)和错误的数据(原本的校验和)的区分。这对于自动错误处理和错误删除来说是重要的。
[0081] 在最后的步骤S13中,安全模块16将所计算的校验和与从步骤S2所接收的校验和相比较。在对应的情况下,引导加载器切换回至新固件。最终,新固件的版本信息将被设置为新值。
[0082] 在另一实施例中,安全引导加载器用随机密钥、并且之后用第二密钥KeyeUICC加密实际固件,并且将结果传送至装置用于存储。这必须在步骤S10之前完成。所存储的信息是可以在步骤S12和S13之一中在错误的情况下再次使用的正确的固件更新。这使得能够在失败的情况下回复到(revert)固件更新。此外,这提高了安全模块的失败安全性。