在电子装置上装载数据的制作方法

文档序号:6416410阅读:102来源:国知局
专利名称:在电子装置上装载数据的制作方法
技术领域
本发明涉及数据、特别是软件装载入电子装置。更具体地,发明涉及数据载入一种电子装置中,该电子装置包括存储数据项的数据存储器以及存储加密公钥机制的至少一个加密密钥的密钥存储器。发明还涉及保护这样的电子装置不会受到未授权的重新编程。
很多现代电子装置,例如移动终端,都包括载入用于电子装置的软件及/或数据的存储器。通常,这种电子装置的制造商将装置提供给客户时带有或不带有一些预装的软件及/或数据,客户将装置提供给最终用户时还要定制该电子装置。
因此,在工厂制造电子装置的过程中,诸如测试软件、要与装置一起交付的预装软件等等这类的软件及/或数据被载入装置。此外,当电子装置生产之后,客户会装入另外的软件及/或数据,例如为客户提供特殊业务的客户特殊的软件等。
将SW载入可编程器件的几种方法是已知的。但是,为处理安全软件管理而设计的现有方法基于这样的假设电子装置、例如一些电子设备的中央处理单元的制造商与最终设备的制造商是同一个,或者这个单元是标准组件。如果不同的电子设备制造商从一个装置制造商购买处理单元,他们通常必须各自向他们各自的最终设备中装载SW。这种情况的一个例子是生产移动电话平台,例如芯片组,卖给移动电话、PDA或诸如此类的多个制造商。在这种情况下,每个最终产品制造商应该不能向设备中装载另一个最终产品制造商的SW。
在整个文件中,客户这个术语包括接受所生产的电子装置的任何实体。通常,一个客户是定制电子装置、将其结合到其它电子设备中、并且/或通过相应的分销途径卖给最终用户的另一个企业或公司。例如,电子装置可能是被电话制造商结合到移动电话中的一块电路板。在这个例子中,电子装置的客户就是电话制造商。
下面将从工厂交付给客户的电子装置称为产品,相对在工厂制造期间的电子装置而言。
US专利号6,167,521揭示了一种在授权控制下将新代码载入装置的逻辑子区的方法。根据这种现有技术方法,授权方准备了包括新代码和某些参数在内的消息,参数规定了对运行新代码的执行环境的要求。授权方将所产生的消息发送到装置,装置在收到消息时执行对授权方的鉴权并验证参数对当前的执行环境是否有效。如果有效,装置就将接收的新代码载入相应的逻辑子区。
但是,上面的现有技术方法因为安全的缘故没有强调当制造电子装置时希望将产品和随后的客户专门的定制分开的问题。例如,结合到移动电话中的电路板的制造商可能希望限制该电路板的客户、例如电话制造商定制该产品、即电路板的可能性。此外,客户可能不希望客户已经载入装置、即电路板的任何客户专门的产品软件被提供给其它方,例如也是电路板制造商客户的其它电话制造商。
因此,一旦产品离开工厂,在工厂中用于装载软件的工具就不应该再对该产品有效,反之亦然,在工厂外结合产品使用的工具在工厂内部制造过程中不应该使用。
已知通过物理硬件装置可保证这类装载工具安全,例如硬件锁、智能卡、道尔芯片(dongle)、诸如此类。根据这类现有技术解决方案,如果相应的外部装置连接到装载工具,例如插入智能卡或道尔芯片连接到工具的预定端口等,装载工具就能够允许操作。
但是,这种物理装置的使用有很多问题这类装置的处理和控制带来很大负担,因为它们必须从装载工具中插入和拔出、保存在安全的地方等等。此外,这些装置一般比较小,因此可能很容易丢失或被盗,这样会带来安全隐患。而且,现代电子装置通常生命周期比较短。因此可能存在相当多不同版本的电子设备及/或相应的软件及/或相应的装载工具,在很多情况下甚至同时存在。所以,由于工具可能依赖于不同版本的物理装置,它们会变得更复杂,借此增加了装载工具以及物理装置的版本处理及维护的复杂度。
因此,本发明的一个目的是在装置生命周期不同的阶段将数据安全载入电子装置。
根据发明的第一个方面,上述及其它目的是通过一种将数据载入电子装置的方法实现的,电子装置包括存储数据项的数据存储器以及存储加密公钥机制的至少一个加密密钥的密钥存储器,该方法包括——将厂家公钥载入密钥存储器;
——将用厂家公钥所对应的厂家私钥签名的厂家软件载入数据存储器。
该方法的特征在于还包括——将不同于厂家公钥的产品公钥载入密钥存储器,以便在电子装置提供给客户、随后的数据项用相应的产品私钥签名之后验证要载入数据存储器的随后数据项;并且——在将电子装置提供给客户之前禁止厂家公钥。
因此,工厂所用的工具和工厂外产品所用的工具之间的区分是通过使用特殊的厂家加密密钥和产品加密密钥来实现的。工厂内装载的所有软件用相应的厂家私钥签名,工厂外载入电子装置的所有软件用产品私钥签名。根据本发明,厂家公钥在生产结束时禁止,以此保证用厂家私钥签名的厂家软件在工厂外不再能够载入产品中。类似地,任何用产品私钥签名的软件在工厂生产过程中则被拒绝。
发明的好处是将不同的密钥用于电子装置的生产和最终产品电子装置中,保证生产软件只能在生产过程中载入,而产品软件只能载入完成的产品中。因此,在生产中使用的签名软件不必再进行保护,因为它不能在工厂外使用,这样就大大简化了工厂中对生产软件的处理和控制。
发明的另一个好处是提供了一种简单的密钥结构,可以避免在电子装置中维护和存储复杂密钥结构的需要。当电子装置的存储量及/或处理资源有限时,这一点特别有好处,例如移动终端或诸如此类就是这种情况。
当厂家密钥或产品密钥是预定实体、例如制造商的表示时,保证了一个实体不能在电子装置中装载与另一个实体、例如另一个制造商的装置有关的软件/数据。
当该方法还包括在电子装置中建立表示生产过程完成的可保护标识符的步骤时,提供了一种机制,可靠地确定给定装置是否已经完成了生产过程的预定阶段。例如,设置可保护标识符可以表示工厂生产过程的结束。因为标识符是可保护的,也就是可以永久设置,能够确保一旦装置离开就不再重新进入工厂过程。最好是该可保护标识符标识客户,确保即使在加密密钥修改的情况下客户也不能装载另一个客户的软件/数据。
在优选实施例中,装载厂家公钥的步骤包括如下步骤——检查可保护标识符是否设置;——如果可保护标识符设置了,退出装载厂家公钥的步骤,否则装载厂家公钥。
在工厂处理过程中用厂家私钥对载入装置的任何数据签名,其中所使用的工具只能用于生产过程是有好处的。一旦在装置中禁止了厂家公钥并设置了可保护标识符,就可以防止重新载入厂家公钥,增加了该方法的安全性。因此,可保护标识符保护密钥不从电子装置的非易失存储器中去掉是有好处的。
在另一个优选实施例中,装载产品公钥的步骤包括以下步骤——检测可保护标识符是否设置;——如果可保护标识符设置了,装载产品公钥;否则退出装载产品公钥的步骤。
因此,产品公钥不能在设置可保护标识符所表示的生产过程完成之前载入,借此防止在生产过程中使用后生产的工具。在生产工具和后生产工具之间施加严格的区分,进一步降低了误用或错误使用工具的危险。
或者可以在生产过程的其它阶段载入可保护标识符,例如装载厂家公钥之前作为生产的最初步骤,或者将厂家公钥与产品公钥交换之后作为最终步骤,或者装载厂家公钥之后、但是载入任何厂家软件之前作为中间步骤,或者在生产过程的另一个合适阶段。
就本描述而言,可保护标识符这个术语包括可以在装置中设置以及可以确保不被删除及改变的任何标识符。因此,一旦设置并保护,可保护标识符不能靠一般的努力改变或删除。优选地,标识符唯一地标识该装置。这种可保护标识符的例子包括但不限于通过激光或类似东西电熔断保险丝、电荷记忆(charge memory)、封装的永久电容器、一次可编程(OTP)存储器等,或者它们的组合。在一个实施例中,可保护标识符可以关联于产品公钥。例如,产品公钥可以存储在OTP存储器中,既作为产品公钥又作为可保护标识符。因此,将公钥存入诸如中央芯片组中受到硬件机制保护的密钥存储器、例如闪存存储器中可以实现增强的安全性。
在优选实施例中,电子装置是具有与之关联的国际移动设备标识的移动电话;可保护标识符包括国际移动设备标识符以及存储在一次可编程装置中的另一个标识符。因此提供了高级安全性而且设备被唯一地标识。此外,存储在OTP存储器中的可保护标识符(或者可保护标识符的一部分)可以有很小的容量,例如64比特或更少,以便降低所需OTP存储器的成本。
发明的一个好处是厂家私钥只有电子装置的制造商知道,以便确保其它制造商不能将它们的软件载入这些装置。
厂家公钥可以通过从存储器中去掉密钥来禁止,例如将所有相应比特置零或者用产品公钥重写;可以通过毁掉它来禁止,例如改变所存密钥的一个或多个比特,或者用任何其它适当的方式禁止,这样就防止后来将其用于验证签名的数据项。最好是永久禁止厂家公钥,也就是使它在计算上不能用于重建密钥,这样就增加了方法的安全性。在一个实施例中,厂家公钥和产品公钥都在工厂过程的开始存储起来,在工厂过程结束禁止厂家公钥,这样就只剩产品公钥被允许。
当生产过程完成之后后来需要重新定制装置时,可以允许访问某些或全部的生产工具。但是在生产过程完成之后授权访问工厂工具,是维护系统安全性的一个常见问题。
如果方法还包括将保密数据项的hash值载入密钥存储器,就可以解决这个问题。因此,在重定制工具知道保密数据项的地方可以提供一种最好与工厂工具不同而且分开的重定制工具。这样装置的重定制可以在受控的环境下进行,同时维护系统的安全性以及生产和后生产过程/工具的分开。
例如,重定制可以包括改变语言设置、国家特定的设置、或类似东西。因此举例而言,重定制可能在客户希望将装置——例如作为另一个电子设备的一部分——销售到不同国家、市场等的最终用户时是必要的。
在新电子装置开发过程中,通常最初生产几个原型,例如为了允许第三方提供者结合新装置测试软件。在这样的情况下希望原型也通过生产过程的安全机制保护起来。但是,通常不希望用于实际发布产品的随后的产品工具也能用于原型,反之亦然。
因此,在优选实施例中,装载产品公钥的步骤还包括装载包括产品公钥的数字证书的步骤,数字证书与限制公钥有效性的有效期关联,这样就限制了原型密钥在预定的有效期内有效。
在另一个优选实施例中,装载产品公钥的步骤还包括装载包括产品公钥的数字证书的步骤,而且该方法还包括随后通过向电子设备发送预定消息使数字证书无效的步骤。因此具有不预定有效期的好处,这样就可以很容易地解决原型开发和测试过程的延迟。例如,发送到装置的消息可以是短消息服务(SMS)或其它消息服务的消息,或者另外的安全指示,通过空中传递的机制实现去激活。
在另一个实施例中,产品公钥从预定的一组客户公钥中选择,这样就提供了一种区分不同产品、区分原型和产品、及/或区分不同客户的机制。
在一个实施例中,公钥与包括相应公钥的数字证书关联存储。
发明还涉及一种电子装置,其中存储了通过执行上述以及如下的方法步骤载入电子装置的数据。
发明还涉及重定制电子装置的方法,装置中存储了通过执行上述以及如下的方法步骤载入电子装置的数据,该方法包括如下步骤——检测电子装置中是否设置了可保护标识符;——从密钥存储器中得到保密数据项的hash值;——将所得到的hash值与从参考保密数据项计算的参考hash值比较;以及——如果设置了可保护标识符而且如果所得到的hash值对应于计算的参考hash值,就开始将产品私钥签名的重定制数据载入电子装置;否则退出重定制电子装置。
对本描述而言,检测可保护标识符是否设置的步骤可以包括检测标识符是否具有预定值及/或其它特性。
发明还涉及重定制电子装置的系统,装置中存储了通过执行上述以及如下的方法步骤载入电子装置的数据,该系统包括一个装载模块,适于执行上述以及如下的重定制电子装置的方法步骤。
发明还涉及将数据载入电子装置的系统,该电子装置包括存储数据项的数据存储器以及存储加密公钥机制的至少一个加密密钥的密钥存储器,该系统包括——将厂家公钥载入密钥存储器的第一装载模块;——将用厂家公钥所对应的厂家私钥签名的厂家软件载入数据存储器的第二装载模块;——第三装载模块,适于将不同于厂家公钥的产品公钥载入密钥存储器、以便在电子装置提供给客户、随后的数据项用相应的产品私钥签名之后验证要载入数据存储器的随后数据项;并且在将电子装置提供给客户之前禁止厂家公钥。
发明还涉及一种计算机程序,包括适合执行将数据载入电子装置的方法中下面这些步骤的代码工具,该装置包括存储数据项的数据存储器和存储加密公钥机制的至少一个加密密钥的密钥存储器——将产品公钥载入密钥存储器,以便在电子装置提供给客户、随后的数据项用相应的产品私钥签名之后验证要载入数据存储器的随后数据项;产品公钥不同于存储在密钥存储器中并用于验证载入数据存储器以及用对应于厂家公钥的厂家私钥签名的厂家软件的厂家公钥;以及——在将电子装置提供给客户之前禁止厂家公钥。
计算机程序可能具体化为计算机可读的介质,例如磁带、光盘、数字视频盘(DVD)、光盘(CD或CD-ROM)、小型盘、硬盘、软盘、铁电存储器、电可擦除可编程只读存储器(EEPROM)、闪存、EPROM、只读存储器(ROM)、静态随机访问存储器(SRAM)、动态随机访问存储器(DRAM)、同步动态随机访问存储器(SDRAM)、铁磁存储器、光存储器、电荷耦合器件、智能卡、PCMCIA卡、等等。
根据发明的第二个方面,上述以及其它目标是通过保护电子装置不会受到未授权的重编程的方法来实现的,电子装置包括数据存储器和密钥存储器,该方法包括将加密公钥机制的预定公钥载入密钥存储器,以便验证载入数据存储器的随后数据项,随后的数据项用相应的私钥签名,其特征在于该方法还包括在电子装置中设置可保护标识符,可保护标识符标识授权对电子装置重编程的实体。
通过在电子装置中设置可保护标识符,可保护标识符标识授权对电子装置重编程的实体,防止未授权客户将该客户自己的密钥载入密钥存储器,后者会允许客户装载客户自己的软件。因此,实现了防止对装置未授权地重编程的增强的安全性。
发明的又一个好处是它提供了一种性价比高的解决方案,安全地允许电子装置中预定的一部分功能,即已经授权给可保护标识符标识的客户的那些功能。
当可保护标识符还标识了几类公钥中所选的一个时,发明可以用于将生产和消费产品分开。因为一些国家的国家规范要求可以对(无线)装置重编程的生产工具不能运行在消费产品上,这样就是有好处的。这可以通过对生产使用一个公开证书并对消费产品使用另一个、在生产结束时改变为消费产品公开证书来实现。通过指明授权对电子装置重编程的实体以及证书的类型,装载模块可以确定装载模块是否应该用于给定产品,例如给定的移动电话。
此外,当可保护标识符标识了授权对电子装置重编程的实体以及几类公钥中所选的一个时,提供了一种机制可以从电子装置的公钥被破坏或毁掉的情况下恢复出来。基于可保护标识符所标识的信息,恢复模块可以确定要重载的公钥或证书的类型(例如,生产或消费产品证书),这样即使是错误的恢复环境也能维护高级的安全性。
在优选实施例中,将可保护标识符写入电子装置闪存的OTP区中,这样就可以使将软件载入电子装置的装载模块唯一地确定授权对电子装置重编程的实体,例如该装置授权的客户。最好是中央芯片上一个很小的OTP存储器用于可保护标识符。在优选实施例中,闪存ID通过控制芯片控制的一种合适机制绑定到所用的中央芯片,这样会进一步增强安全性,因为能够防止该闪存被不同编程的闪存所替换。
因此,只要求有限数量的数据存储在OTP存储器中是有好处的,这样可以减少所需要的OTP存储器的大小,因而降低生产成本。特别是目前芯片组中标准OTP存储器大小只提供64比特,不足以存储诸如公开证书等,这样做也是有好处的。发明的好处是可以用标准芯片组实现。此外,OTP解决方案在闪存制造商之间有区别,发明的好处是可以用不同类型的OTP存储器来实现。
可以理解在一些实施例中,只存储从可保护标识符中得到的一个值而不是标识符本身。特别是在一个优选实施例中,从可保护标识符中得到一个加密hash值存储在OTP存储器中,这样就在可保护标识符的格式化中提供了更大的灵活性。
可以理解在大规模生产环境中管理公钥以及设置OTP可能是一个复杂的任务。因此,进一步要解决的问题是应该如何组织安全管理,特别是安全管理是否应该包括工厂中电子装置的生产以及客户和产品开发组织——可能是诸如转包商这类的第三方——的最终产品在内。
在优选实施例中,安全状态图中至少一个状态转换与可保护标识符中相应的改变有关,这样就提供了一种有效的机制,用于产品生命周期中的安全需求管理。
当可保护标识符存储在通过设置加锁标志可锁的OTP存储器中时,所述加锁标志的状态可用作标识符的一部分。例如,OTP的加锁状态或者移动电话的IMEI可以用于可保护标识符的一个信息比特。例如,加锁状态可以区分装置处于生产和最终产品阶段。
发明还涉及将数据载入根据上面以及如下描述的方法保护的电子装置的方法,该方法包括如下步骤——检测可保护标识符是否具备预定特性;以及——如果可保护标识符具有预定特性,装载数据,数据用装置中存储的公钥所对应的私钥签名;否则退出数据的装载。
对本描述而言,标识符的预定特性可以对应于标识符满足预定条件,例如标识符不同于预定值、标识符等于预定值或者一组或一定范围中的一个值、标识符具有预定的加锁状态、诸如此类。
发明还涉及将数据载入根据上面以及如下描述的方法保护的电子装置的系统,该系统包括一个装载模块,适于——检测可保护标识符是否具备预定特性;以及——如果可保护标识符具有预定特性,装载数据,数据用装置中存储的公钥所对应的私钥签名;否则退出数据的装载。
发明的另一个好处是提供了一种安全地将数据载入电子装置的方法,该方法适于大量制造过程。
发明的另一个好处是不需要额外工具(例如硬件锁、智能卡、道尔芯片或诸如此类)区分装置生命周期不同阶段(例如工厂中和工厂外)中涉及安全的软件/数据的装载步骤,因此简化了装载工具的控制和维护。
在优选实施例中,数据存储器和密钥存储器包括所选的闪存块。闪存(有时也称为“快闪RAM”)是一种非易失存储器,可以在称为块的存储单元中擦除和重编程。它是电可擦除可编程只读存储器(EEPROM)的变种,EEPROM与闪存不同,是在字节级上擦除和重写的,比闪存更新速度慢。闪存通常用于存储控制码,例如个人计算机中的基本输入/输出系统(BIOS)。当闪存中的数据需要改变时,闪存可以按块(而不是字节)大小写入,更容易更新。闪存名字的由来是因为微芯片的组织使得一段存储元可以在一个单个操作或“一闪”之间被擦除。闪存广泛用于数字蜂窝电话、数字照相机、LAN交换机、笔记本计算机的PC卡、数字机顶盒、嵌入式控制器以及其它电子装置。
数据存储器及/或密钥存储器的其它例子包括磁带、光盘、数字视频盘(DVD)、光盘(CD或CD-ROM)、小型盘、硬盘、软盘、铁电存储器、电可擦除可编程只读存储器(EEPROM)、EPROM、只读存储器(ROM)、静态随机访问存储器(SRAM)、动态随机访问存储器(DRAM)、同步动态随机访问存储器(SDRAM)、铁磁存储器、光存储器、电荷耦合器件、智能卡、PCMCIA卡、等等。
其它优选实施例在独立权利要求中揭示。
本发明可以用不同方式实现,包括上面及如下描述的方法、系统、电子装置以及其它的产品工具,各自得到结合上面提到的方法所描述的一个或多个好处及优势,而且各自具有一个或多个优选实施例,对应于结合上面提到的以及独立权利要求中揭示的方法所描述的优选实施例。
下面结合优选实施例并参考附图更全面地解释本发明,其中

图1示意性地说明根据发明一个实施例的生产过程和重定制过程;图2表示将数据载入电子装置的系统框图;图3表示一个电子装置例子的框图;图4表示将软件及数据载入电子装置并在生产过程中定制电子装置的系统框图;图5a-b表示重定制电子装置的系统实施例的框图;图6表示管理加密密钥和证书的系统框图;图7a-d说明根据相应的发明实施例的生产过程举例;图8说明可保护标识符实施例的结构;以及图9说明安全状态图。
在附图中,相似的参考标记指代相似或相应的单元、步骤等。
图1示意性地说明根据发明一个实施例的生产过程和重定制过程;在生产过程的最初步骤S1中提供了电子装置101。在这个实施例中,假设电子装置包括安装电路板,也就是在客户产品的生产过程中,所描述的过程一般发生在电子元器件在电路板上表面安装完成之后以及最后的装配步骤之前或之中。电子装置包括存储器102,包括存储段103、104和105。存储器102可以包括一种或多种不同类型的存储器以及/或一个或多个存储模块,例如EEPROM、闪存、单片机存储器、RAM、OTP存储器等。存储段103和105可以是存储器可寻址区域,例如闪存。在优选实施例中,存储段104是OTP存储器。在一个实施例中,存储器102是包括OTP段的闪存元器件。
在第一装载步骤中,使用第一厂家装载工具106,将厂家公钥PuKF载入存储段105。装载工具106包括存储公钥PuKF的存储器107。
在加密领域,这种公钥和私钥的合并使用称为公钥或非对称加密。使用公钥的系统称为公钥基础结构(PKI)。公钥加密的本身特性允许一种数字消息签名的形式。发送者可以公开解密密钥,也就是公钥,并对相应的加密密钥、也就是私钥进行保密。当发送者对消息或从消息中得到的值加密时,任何人都可以使用公开解密密钥解密,而且这样做的过程中接收者可以确定该消息只能被发送者加密,因为发送者是加密密钥的唯一拥有者。因此,发送者已经有效地对消息“签名”了。公钥机制的例子包括RSA加密系统(见例如Rives t,R.,Shamir,A.and Adleman,L.“A method for obtaining digitalsignatures and public key cryptosystems(得到数字签名的方法以及公钥加密系统)”,Communications of the ACM,21(1978),pp.120-126)、ElGamal加密系统(见例如ElGamal,T.“A publickey cryptosystem and a signature scheme based on discretelogarithms.(基于离散对数的公钥加密系统和签名机制)”IEEETransactions on Information Theory,31(1985),pp.469-472)以及椭圆曲线加密系统(见例如Saeki,M.,Elliptic CurveCryptosystems(椭圆曲线加密系统),M.Sc.Thesis,McGillUniversity School of Computer Science.1996.)。
优选地,公钥关联于密钥发布者/拥有者的数字证书,例如在制造商厂家公钥的情况下。这里的术语“数字证书”指的是用于验证发送者授权的数据项。该数据项包括证书持有者的标识以及持有者的公钥,而且优选地包括证书授权方的数字签名用于鉴权。证书授权方证明发送者标识是与数据项中的公钥关联的那个。在该技术中,不同类型的公钥证书称为处理数字签名文件、公钥加密、可信第三方以及证书公开及发布机制的公钥基础结构的一部分,见例如X509标准(ITU-T Recommendation X.509(1997),“Information Technology-Open Systems Int erconnection -The DirectoryAuthentication Framework(ITU-T建议X.509,“信息技术-开放系统互连-目录鉴权框架)”)。因此在整个本描述中,公钥也称为(公开)证书,例如厂家公钥也称为厂家证书。下面将描述数字证书的压缩格式。因此数字证书可以认为是代表公钥和实体之间的一种绑定,而该绑定被来自可信证书授权方的签名所验证。
优选地,在装载厂家证书之前,装载工具106尝试从存储段105中读取有效的厂家证书或者下面将要描述的相应的客户证书,并从OTP存储段104中读取预定的可保护标识符。如果没有从存储段105中读到有效的证书而且没有从OTP段104中读到可保护标识符,装载工具就装载公钥PuKF,这样可确定该电子装置以前没有经过工厂过程。可以理解的是检测到没有可保护标识符可能对应于检测到缺省的标识符值,例如ID=’0’,或者检测到标识符的预定特性,例如检测到预定的加锁状态,如LockStatus=’unlocked’(加锁状态=“未锁”)。下面将描述一种可保护标识符格式的实施例。
装载工具106可以进一步用于其它设置,例如下载校准数据、通过计算区域加密hash设置安全数据区、或诸如此类。
一旦成功装载了厂家证书,电子装置101就进入安全的工厂生产过程125。
值得注意的是装载厂家证书的步骤可以在将闪存安装到电子装置主板之前的预闪步骤中执行。
在安全工厂过程125的步骤S2中,测试电子装置101,而且如果必要的话进行调谐、校准、或诸如此类。例如,在移动电话的生产过程中,无线元器件可能要求调谐和校准,安装的电子元器件可能需要测试,等等。为此,测试、校准等用的厂家软件被装载到电子装置101的存储器102中。装载厂家软件的厂家装载工具108包括存储器109和110,分别存储厂家软件和厂家私钥PrKF。厂家私钥PrKF对应于厂家公钥PuKF,在将厂家软件载入电子装置101之前被装载器108用于对厂家软件签名。
将签名的厂家软件载入电子装置101之前,装载工具108尝试检测电子装置OTP段104中的预定可保护标识符。如果没有从OTP段104中读出可保护标识符,装载工具108就装载厂家软件,这样可确定该电子装置以前没有经过工厂过程。此外,如果电子装置使用厂家证书PuKF成功验证了接收的软件,厂家软件只被电子装置接受用于装载和执行。附加地或者可替代地,其它软件及/或数据可以在这个阶段载入电子装置,例如用于最终产品的操作系统及/或应用软件。这种其它软件及/或数据的载入通过装载工具108或独立的装载工具(未表示)按照上面的描述执行,要装载的软件及/或数据用厂家私钥PrKF签名。
在成功测试了电子元器件、装载了应用软件或诸如此类之后,在步骤S3定制电子装置,即为装置赋予特殊的“标识”。例如,这个定制步骤可以在电子装置的最后物理装配之后执行。在这个步骤中,执行软件定制,例如装载客户特定的软件、国家适配等。此外,在移动终端情况下可以装载多个诸如解锁码、IMEI、客户码等这样已知的码。定制工具111执行上述定制,例如通过装载软件及/或码这样的数据,以及/或者通过在电子装置中执行其它设置。根据发明,定制装载器对将要载入电子装置的任何数据或软件用存储在定制工具存储器的段117中的厂家私钥PrKF签名。此外,在执行上述定制之前,定制工具111验证电子装置的OTP存储器段104中没有设置标识。因此,正如结合前面步骤S2所描述的,定制工具111的定制要求电子装置在存储器段115中存储有效的厂家证书并且在OTP段104中没有设置可保护标识符。在优选实施例中,电子装置与IMEI关联,可保护标识符是存储在OTP存储器中的IMEI和客户ID的结合。由于IMEI可能包括大约15个字符,IMEI和短的OTP客户ID——例如16比特ID—的结合提供了装置的唯一标识,而且同时可防止被移除。此外,这个实施例对OTP存储器的使用很少。
此外,在定制步骤S3中,在电子装置的OTP存储器段104中设置可保护标识符112,该标识符可防止被移除和修改,例如通过在OTP存储器中设置加锁标志来保护。ID的装载表示安全生产过程的完成。由于前面的装载器106、108和111都要求OTP段104中没有设置ID,就确保了以上厂家工具不能提供给已经完成了生产过程的装置。
在工厂生产过程结束时,最后装载步骤S4由装载工具114执行。装载工具114验证在OTP段104中设置了有效ID,借此确保电子装置已经完成了生产过程。装载器114将保密值S的hash值H(S)载入电子装置的存储器段103。优选地,hash值的大小至少为64比特,以便确保恰当的安全性。对于当前以及不太老的现有技术加密分析工具,可以使用128比特。值得注意的是,如果为每个装置独立选择保密值S,而且hash值的计算是针对每个装置的,例如用装置标识符作为参数,可以增加安全性。还值得注意的是,在一些实施例中,保密值S的hash值可以由几个hash值组成。hash值允许随后能够安全地重定制电子装置而不重进入上面的安全生产过程。装载工具可以从装载工具114的存储器段116中获取保密值S并计算相应的hash值。或者,装载工具114可以从另一台计算机中获取保密值或计算的hash值。优选地,用厂家私钥PrKF对hash值签名。最后装载器114在电子装置的存储器段115中装载产品公钥PuKP,这样就禁止了前面的厂家证书PuKF。或者产品公钥可以被载入不同的存储器段而且可以禁止厂家证书,例如将它的所有比特或预定子段设置为0。
因此完成生产过程之后,电子装置在它的存储器102中包括了应用软件,在OTP段104中包括不可移除的ID,并包括保密的hash值H(S)以及产品公钥PuKP。
在这个阶段,步骤S5,可以使用存储了与产品公钥PuKP对应的产品私钥PrKP(120)的产品装载工具118将附加的软件及/或数据119载入电子装置。因此,用产品私钥PrKPi签名的授权产品软件/数据被电子装置接受。但是在这个阶段,任何用厂家私钥PrKF签名的软件和数据会被电子装置拒绝。因此,实施了生产过程125和后生产过程126之间的严格划分,以之确保厂家软件或应用软件不能被未鉴权实体载入电子装置。类似地用另一个客户的产品私钥PrKF——即不与装置中存储的公钥对应的私钥——签名的任何软件/数据会被电子装置拒绝。因此客户不能将客户自己的软件载入授权另一个客户的装置。此外,这样确保了一个客户的工具不能在另一个客户的装置上工作。
但是,重定制在生产过程中执行的一些设置或者执行其它类型的返工可能是必要的,例如重新装载校准软件,或诸如此类。在上面描述的机制中,厂家公钥PuKF不能被重装载,因为装载器106要求电子装置的存储器段104中没有设置OTP ID。此外,允许这种厂家公钥的重载会带来滥用的危险。
根据本发明,使用可以访问保密S(122)和产品私钥PrKP(123)的特殊重定制工具121可以进行重定制。重定制工具验证OTP段104中设置了有效ID。此外,重定制要求从定制工具的保密S中计算的hash值对应于电子装置中存储的hash值H(S)。定制工具或电子装置可以对此进行验证。最后,在重定制过程中发送到电子装置的任何数据/软件用产品私钥PrKF签名,这样就提供了安全的重定制过程,避免重进入安全生产过程125,对生产过程和后生产过程实施了严格划分。
上面的公钥和私钥可以是任何合适的公钥机制的密钥,例如RSA或椭圆曲线加密(ECC)。工厂和产品密钥机制可以是相同或不同的机制。
此外,可以理解的是载入电子装置的数据/软件可以通过各个装载及定制工具108、111、114、118或121签名,或者它可以通过远端计算机签名,而且签名的数据/软件可以传递到执行实际装载的装载或定制工具。
可以理解的是软件及/或数据可以在载入电子装置之前压缩以便缩短装载时间。此外可以理解的是软件及/或数据可以用适当的私钥和公钥加密机制加密,这样进一步增强了生产过程的安全性。
装载及定制工具可以是特殊的硬件装置或电路,或者可以作为在数据处理系统——例如标准PC——上执行的计算机程序实现,或者可以作为它们的合并实现。因此在本文中,装载站及装载工具这些术语是互换使用的。此外,装载及定制工具的加密密钥可以存储在相应的可移动介质上,例如CD ROM、智能卡等。例如,密钥和加密签名软件可以在智能卡上实现,该卡可以可移动地插入装载工具。
可以理解上面过程的一些修改在发明范围内都是可行的。例如,上面一些工具可以合并为单个工具或工具功能的划分可以用不同方式划分不同工具。例如工具108和111可以合并成一个工具或者工具111和114可以合并为一个工具。此外,一些装载步骤可以按不同顺序执行。例如,hash值H(S)可以在前面的装载步骤中载入,例如通过定制工具111进行。
图2表示将数据载入电子装置的系统框图。该系统包括装载站201和电子装置205。装载站包括存储介质204,存储要载入电子装置的有效负荷数据以及用于有效负荷数据处理的其它数据,例如加密密钥、地址信息等。装载站还包括处理单元203,例如通过从存储介质204载入的软件,该单元适于处理有效负荷数据,例如对有效负荷数据压缩及/或加密及/或将其分成更小的段、产生字头数据等。此外,处理单元适于控制数据到移动站205的传输。处理单元203可以包括通用或专用的可编程微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、可编程逻辑阵列(PLA)、现场可编程门阵列(FPGA)等,或它们的组合。装载站还包括通信单元202,由适于允许装载站与电子装置通过有线或无线通信链路209——例如直接数据链路、通信网络或诸如此类——传递数据的电路及/或装置组成。这种通信单元的例子包括网络接口、网卡、无线发射机/接收机、蓝牙收发机、串口、并口、红外口、IrDA口、电缆调制解调器、电话调制解调器、综合业务数字网(ISDN)适配器、数字用户环路(DSL)适配器、卫星收发机、以太网适配器或诸如此类。因此,通信链路209可以是使用电磁波的短距离无线通信链路。这种通信链路的例子包括蓝牙连接或基于射频、红外、微波或诸如此类的另一种连接。通信链路还可以是有线连接,例如串行连接、USB连接或诸如此类。在又一个实施例中,连接可以通过通信网络建立,例如局域网、蜂窝网、互联网或诸如此类。装载站201还包括接口210,由适于允许装载站与另一个数据处理系统传递数据的电路及/或装置组成。这种接口的例子包括上面结合通信单元202提到的那些例子。此外的例子还包括软盘驱动器、CD驱动器或诸如此类,或者任何其它能够使装载站接收要载入装载站、装载工具的有效负荷数据或装载站要执行的其他软件、加密数据等的适合的电路及装置。这些数据和软件可以通过通信网络接收,例如互联网,或在存储介质上获得,例如CD、软盘、存储卡或诸如此类。数据可以从一个或多个服务器接收,正如下面将要描述的。可以在验证过程及/或进一步处理之后,将接收的数据或软件存储在存储介质204上。装载站可以是包括恰当通信接口的、常规的恰当编程的计算机,例如PC。
电子装置205包括相应的通信单元206,由适于允许电子装置与装载站传递数据的电路及/或装置组成。电子装置还包括处理单元207,例如通用或专用的可编程微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、可编程逻辑阵列(PLA)、现场可编程门阵列(FPGA)等,或它们的组合。例如,通过从电子装置的存储介质208载入的软件,处理单元207适于从装载站接收数据,以便分析和验证任何字头信息,并将实际的有效负荷数据载入存储介质108。如果需要的话,处理单元107还适于处理有效负荷数据,例如对其解压缩或解密。
图3表示一个电子装置例子的框图。电子装置205包括如上所述的处理单元207,控制电子装置的功能。电子装置还包括带有天线306的无线接口305,向/从诸如蜂窝网的无线通信网发送并接收数据。电子装置还包括用户接口304,例如LCD这样的显示器或诸如此类、键盘或其它输入装置,例如触摸屏或诸如此类。如果装载与需要用户输入——例如输入密码、PIN或诸如此类——的交互式鉴权/认可过程合并时,用户接口可以用于装载过程。电子装置还可以包括用户标识模块(SIM)307、包括存储器,存储用户标识信息、电话号码以及其它与用户同蜂窝网运营商注册有关的数据。电子装置还包括存储介质208,可以包括RAM段303、ROM段302以及含有闪存的段301。从电子装置接收的有效负荷数据可以载入存储器的闪存段及/或RAM段。可替换地或附加地,电子装置的存储介质可以包括其它类型的存储器,例如EPROM、EEPROM、或诸如此类,或者包括其它类型的存储介质,例如光盘、数字视频盘(DVD)、光盘(CD或CD-ROM)、小型盘、硬盘、铁磁存储器、光存储器、电荷耦合器件、PCMCIA卡、等等。相应地,接收数据可以载入任何一种替代的存储器类型及/或存储介质。在发明的一个实施例中,从装载站接收的数据可以载入SIM 307的存储器中。最后,电子装置包括如上所述的通信单元206,例如蓝牙收发机、IrDA口、USB适配器、电缆连接器或诸如此类。或者,无线接口305可以用于通过蜂窝网在空中接收数据。例如,电子装置可以是任意类型的便携无线通信设备,这里便携无线通信设备这个术语包括所有诸如移动电话、寻呼机、通信机这样的设备,即电子记事本、智能电话、个人数字助理(PDAs)、手持计算机或诸如此类。电子装置的另一类例子包括用于移动电话或另一类电子设备的芯片组,这里的芯片组可以包括存储元器件及处理器,例如模块207和208所示例的。可选地,芯片组可以包括图3所示的一个或多个其它模块,例如通信单元206及/或无线接口305。
图4表示将软件及数据载入电子装置并在生产过程中定制电子装置的系统框图。该系统包括安全服务器401、工厂装载站402以及电子装置205。安全服务器401可以是个人计算机、工作站、网络服务器、互联网服务器等。安全服务器连接到计算机网络403,例如互联网、局域网、企业内部网、企业外部网等。装载站402是一个计算机,能够访问计算机网络403并且适于执行将软件/数据载入电子装置205的计算机程序,例如结合图2所描述的那些。
安全服务器401适于通过计算机网络403向装载站402以及类似的其它装载站(未表示)发布计算机程序以及相应的更新,即运行在各个装载站用于定制并将软件/数据载入电子装置205以及相应的其它电子装置(未表示)的计算机程序。安全服务器401还发布通过装载站下载到电子装置的计算机程序及数据,而且安全服务器还可以提供附加业务,例如新闻、信息、客户特殊业务等。可替换地或附加地,安全服务器可以通过任何其它合适的装置发布计算机程序,例如软盘、CD ROM这类的计算机可读介质等。但是,通过计算机网络的连接有利于实现自动更新机制、版本控制机制等。
装载站402适于提供与电子装置205的定制以及软件/数据载入装置205有关的安全业务。安全功能可以包括如上所述根据厂家私钥产生签名、例如如上所述结合IMEI产生可保护标识符。这种安全业务的其它例子包括与装载站和电子装置之间的通信有关的安全功能,例如计算校验和、加密功能、压缩等。在一个电子装置包括移动终端的实施例中,安全功能可能还包括产生和加密SIM加锁码或诸如此类。装载站还提供定制要载入电子装置的软件的功能,例如通过提供语言文件、客户专用文件、游戏等实现。
图5a-b表示重定制电子装置的系统实施例的框图。正如结合图1的描述,一旦电子装置离开生产过程,也就是厂家公钥已经被产品公钥取代,工厂工具就不能再使用。相反,如果必要的话,客户要使用特殊工具重载定制文件。
图5a表示重定制电子装置的系统例子的框图。该系统包括如结合图4所描述的安全服务器401、客户工具服务器501、重定制站502、客户服务器503、签名服务器504、以及要定制的电子装置205。重定制站502是一种特别适配的装载站,如结合图2所描述的那样连接到电子装置205。客户工具服务器501可以是连接到计算机网络403的个人计算机、工作站、网络服务器、互联网服务器等。客户工具服务器501从中央安全工具服务器401接收计算机程序、更新等,并将它们提供给客户拥有的重定制工具502使用。因此,重定制工具连接到客户工具服务器时,可以自动地从那里进行更新。
客户服务器503可以是客户计算机网络505中的文件服务器,这样的网络诸如局域网、或企业内部网、或诸如此类。或者,客户服务器可以是通过互联网或另一个通信网提供访问的互联网服务器。任何重定制文件,例如包括数据、编译的计算机程序、或诸如此类,都存储在客户服务器503文件系统的预定位置。系统还包括连接到计算机网络505的签名服务器504,适于监视上述位置,查找没有提供相应签名的文件。如果找到了这样的文件,签名服务器504适于用产品私钥对那个文件签名并将签名的文件存储在客户服务器503的上述或另一个预定位置。随后,重定制站502从客户服务器获取一个(多个)签名文件,并按结合图1所述进行了安全检查之后将一个(多个)文件载入电子装置。
图5b表示重定制电子装置的系统另一个例子的框图。与图5a系统一样,图5b系统包括安全服务器401、客户工具服务器501、重定制站502、签名服务器504、以及要定制的电子装置205。根据这个例子,在重定制站502上执行一个客户程序,直接将一个(多个)重定制文件发往签名服务器504。对一个(多个)文件签名之后,签名服务器504将一个(多个)文件返回重定制站502,随后,当按照结合图1所述执行了安全检查之后,重定制站502将一个(多个)文件载入电子装置。
图6表示管理加密密钥和证书的系统框图。系统包括证书管理系统601、证书仓库系统602、签名服务器504、以及装载系统603。证书管理系统601可以包括恰当编程的个人计算机、工作站、网络服务器、互联网服务器等,并通过计算机网络连接到证书仓库系统602,这样的网络例如互联网、局域网、企业内部网、企业外部网等。证书管理系统601适于对密钥签名进行鉴权、为密钥指定密钥标识符并用层次密钥结构的制造商根密钥对密钥签名,以便增强系统的安全性。
证书仓库系统602可以包括恰当编程的个人计算机、工作站、网络服务器、互联网服务器等。证书仓库系统602适于根据恰当的公钥机制产生公钥和私钥对。客户证书仓库系统602还从证书管理系统请求授权,并请求证书管理系统601用制造商根密钥对所产生的公钥签名。签名的公钥存入证书仓库系统602中并转发到装载系统6 03。装载系统603将公钥载入电子装置。
例如,结合产品密钥,电子装置的生产系统中包括装载系统,在结合图1描述的生产过程结束时载入产品公钥。生产系统的例子在上面结合图4进行了描述。
类似地,工厂密钥及/或原型密钥可以通过根据图6的系统发布。
所产生的私钥存储在客户证书仓库系统602中,优选地用加密形式存储,并通过安全信道传递到签名服务器504中。
图7a-d说明根据相应的发明实施例的生产过程举例。
在图7a的例子中,装载步骤按照上面结合图1描述的例子的顺序执行,即,步骤S701装载厂家公钥。
步骤S702装载厂家软件。
步骤S703装载可保护标识符。
步骤S704装载产品公钥。
步骤S705禁止厂家公钥。
在图7b的例子中,可保护标识符在生产过程结束时载入,即装载步骤的顺序是步骤S701装载厂家公钥。
步骤S702装载厂家软件。
步骤S704装载产品公钥。
步骤S705禁止厂家公钥。
步骤S703:∶装载可保护标识符。
值得注意的是结合装载步骤S4,如上面结合图1所描述的,产品公钥的装载包括验证可保护标识符是否设置。可以理解的是在图7b的例子中,这种验证是不可行的,因为可保护标识符在产品公钥装载之后设置。还可以理解的是相应的考虑适用于如下例子。
在图7c的例子中,可保护标识符在装载厂家软件之前载入,即装载步骤的顺序是步骤S701装载厂家公钥。
步骤S703装载可保护标识符。
步骤S702装载厂家软件。
步骤S704装载产品公钥。
步骤S705禁止厂家公钥。
在图7d的例子中,可保护标识符在装载厂家软件之前载入,即装载步骤的顺序是步骤S703装载可保护标识符。
步骤S701装载厂家公钥。
步骤S702装载厂家软件。
步骤S704装载产品公钥。
步骤S705禁止厂家公钥。
值得注意的是上述例子可以使用其它的装载顺序作为替代。例如,步骤S704和S705可逆,或者合并为单个步骤,例如用产品公钥重写厂家公钥。
因此,上面已经揭示了提供高度安全性的电子装置的生产过程。
可以理解的是根据发明的生产过程可以用于多种不同的场景。例如,电子装置制造商常见的问题就是电子装置越来越多的软件部分由第三方公司开发。本发明的好处就是提供了一种控制电子装置原型并确保原型软件不能运行在最终产品上的机制。
有一个实施例,在原型装置的生产过程中,在生产过程结束时载入装置的产品公钥是一种特殊的原型公钥。因此,生产的很多原型都具有原型公钥,这样可以允许第三方软件开发商装载用相应的原型私钥签名的软件。软件的签名可以由第三方供应商或制造商进行。如果有一个以上的第三方软件开发商,就可以使用相应的多个不同的原型密钥对,这样就允许制造商区分不同的第三方供应商。因此根据发明,第三方软件供应商可以在实际环境中测试软件,同时确保软件不能直接载入最终产品,因为产品装置配备了不同于原型密钥的产品公钥。所以在不知道相应的产品私钥情况下,第三方供应商不能将它们的软件载入产品。
原型公钥可以关联于相应的证书,这样就提供了对原型密钥有效性施加时间限制的可能。
在另一个实施例中,原型密钥可以由通过空中发往电子装置的命令消息激活及/或去激活。例如,在移动终端场景中,一条短消息业务(SMS)的消息可以发往移动终端,该消息包括预定的去激活命令,以及优选的数字签名,例如放在消息字头中。在移动终端中,该消息被导向各自的应用程序,检查签名并使移动终端去激活不再作为原型,例如通过禁止原型公钥的方式或用其它合适的方式。
优选地,数字签名对应于移动终端中的原型密钥,这样确保了只有相应原型私钥的主人可以发出有效的去激活消息。
此外,通过使用时间标记,例如包括在被签名的数据中,可以防止对以前发送消息的重复使用。
如果消息包括恰当的装置标识符,例如移动终端的IMEI,那么消息可以做成专门针对一个装置的。
图8说明可保护标识符实施例的结构。可保护标识符,通常标为800,包括对用于安全管理的信息编码的四个单元客户标识符(CID)803、产品状态掩码(PSM)804、国际移动设备标识(IMEI)805、以及加锁状态(OTPLS)802。在图8的例子中,可保护标识符包括对CID编码的64比特OTP存储器段801的内容,PSM以及IMEI。CID被编为11比特的码,PSM一个比特,IMEI的编码是要求52比特的标准IMEI的压缩编码。编码的IMEI称为EIMEI。值得注意的是IMEI指的是赋予每个移动电话的唯一号码。与GSM网络连接的蜂窝电话的IMEI号码存储在包含所有有效移动电话设备的数据库中(EIR-设备标识寄存器)。当报告电话被窃或者不是认可的类型时,该号码就被标为无效。该号码包括认可类型码(TAC)、国家代码、组装码、制造商标识、以及序列号。IMEI是一个18字节的标识符,形式为dddddd-dd-dddddd-d,其中d∈{0,1,2,...,9}。例如IMEI可以这样编码两个6位数字组编码为二进制表示,其余的三位数字作为二进制编码的16进制数。这就需要52比特(20+8+20+4)。假设所有数字都能出现,那么IMEI的最小编码需要50比特。因此上述编码只比最小值多2个比特。因为最长部分只有20比特长,上述编码很容易在移动设备所用的标准32比特处理器上实现。
所用的OTP存储器提供的加锁机制可以对加锁标志编码。例如,在一个实施例中,闪存的OTP存储器段可以通过用闪存预定的一个不可逆命令将一个预定值写入加锁比特来加锁,表示OTP存储器段被锁了。
可以理解的是上述参数可以通过另外的表示来编码。图8的64比特编码有其优势,因为很多现有技术的闪存(认为是元器件)在存储器正常寻址空间之外具有64比特的用户可编程OTP区。这就允许在不增加闪存硬件成本的条件下实现管理系统。例如,在一个替代实施例中,IMEI可以编码为15个二进制编码的十六进制数(因此省略了三个具有固定位置的(“-“)标记)。这就需要存储60比特。
图9说明安全状态图。安全状态图通常标为900,包括一个生命周期的安全状态,由生产状态901、产品开发或R&D状态902以及消费者产品状态903,以及它们之间的转换。可以理解的是在替代实施例中,安全状态图可以包括附加的及/或替代的状态。例如,区分不同的R&D中心,例如不同的第三方开发中心,如果每个中心在移动电话中使用自己的证书,那么每个这样的中心在开发过程中可以使用特殊的移动电话。
状态图的状态关联于可保护标识符的各个值以及各个证书类型。下面描述包括证书类型信息的数字证书的压缩格式。
标准证书,例如根据X509 V3标准的证书,允许证书的签名者(发布者)将公钥绑定(通过所谓扩展)到描述当呈现证书时该公钥可以用于何种目的的附加信息上。但是,这些证书的编码很复杂,因为必须提供很多域以及按照ISO ASN.1 DER/BER编码规则的特殊编码。解析证书所需的软件很复杂并且实现的时候需要几万字节的编码。这样的代码尺寸对要烧ROM到移动电话这类的控制器芯片中的软件来说太大了。
根据这里描述的方法,由于证书用于有限的一些为某类产品签名的SW情况下,X509的证书格式不仅复杂而且对于专门用途来说效率不高。使用压缩证书格式,例如下表举例的格式,可以弥补上面的缺陷。
项目 描述版本号证书格式版本号CID_0 证书拥有者的CIDCID_I 证书发布者的CID深度 证书链的深度有效至证书过期日期签名日期 签名的日期ISM 签名方法序号PKUC 公钥使用类别,表示数字证书的类别PKDATA公钥签名 数字签名(根据ISM所示的签名方法)在优选实施例中,证书的二进制编码要使它的域很容易被诸如JAVA这样的应用程序解析,而不需要很多转换。用(二进制)32比特整数代表很多域,尽管压缩程度不高,但是有其优势。
因此,上面的格式提供了一种有效而且压缩的证书格式。
当公钥代表证书时,这样有效地处理使用限制的问题对指定给不同使用环境的使用类别码编码。下面为了描述简单起见,每种使用类别与一种颜色关联。但是应该理解在实际实现中使用类别是数字编码的,例如按照上面的描述进行。例如,就本描述而言,工厂环境可以指定为“白”颜色、R&D(开发)环境是“紫”颜色、最终用户(最终产品)环境是“黄”颜色。
因此,在状态图900中,状态901、902和903中的每一个对应于不同的公开证书类别,每个类别用一种“颜色”标志。状态901对应于“白”证书,状态902对应于“紫”证书,而状态903对应于“黄”证书。
状态用可保护标识符编码。在一个实施例中,永久标识符按照结合图8的描述编码,状态图的三种状态编码如下——工厂状态901OTP未加锁。此外,电子装置不包括有效的证书或工厂(“白”)证书。
——R&D状态902OTP加锁并包括客户ID及/或编码的IMEI(可选为一种测试IEMI),而且产品状态掩码设为PSM=0。
——产品状态903OPT加锁并包括客户标识符(CID)、编码的IMEI,而且产品状态掩码设为1。此外,电子装置包括有效的产品(“黄”)证书。
因此,在一个实施例中,可保护标识符表示客户ID和证书的类别(“颜色”),即安全状态图的相应状态。具体而言证书的类别可以从可保护标识符域的合并中得到。
在一些实施例中,值得注意的是可以使用替代的或附加的状态码。例如,结合只用于R&D环境中的装置,例如早期的原型,可以使用全零OTP值(OTP=“000…00”)作为与非产品状态关联的可能的代码,即状态901和902。在这个实施例中,工厂和R&D状态可以通过证书类别(“颜色”)来区分。现在的OTP存储器具有这样的性质OTP比特最初处于全“1”位置(即当OTP存储器刚出厂用于装置中的时候)。只要OTPLS是未加锁的,就可以将零(“0”)写入“1”的位置。但是相反过程,即将“1”写入以前设为“0”的位置,是不可以的。因此,一旦进入全零状态,OTP比特就不能改变了。但是,可以理解的是其它OTP技术可能会得到不同的优选编码。例如,另一个OTP可能具有类似的行为,但是只允许从0到1的转换。因此使用全零OTP值并将其关联于非产品环境,当在R&D环境实验装置硬件时可以得到一种可靠的状态定义。此外,还可以确保重编程工具所需的R&D和产品状态(环境)之间的明确划分,以便区分装置的不同状态并防止未授权的状态转换。
状态901、902和903之间的转换标为不同的箭头箭头912对应于从生产状态901到R&D状态902的转换,箭头921对应于从R&D状态902到生产状态901的转换,箭头913对应于从生产状态901到最终产品状态903的转换,箭头931对应于从最终产品状态903到生产状态901的转换,箭头923对应于从R&D状态902到最终产品状态903的转换,箭头932对应于从最终产品状态903到R&D状态902的转换。为了确保安全性,不允许使用上面所有的转换。在图9的例子中,只允许转换912和913,而其余的转换都是禁止的转换,用虚线表示。因此在这个实施例中,只允许工厂改变证书。
状态之间的每个转换对应于可保护标识符参数的变化。例如,——转换912通过将CID及/或测试IMEI存储到OTP中并对OTP加锁来表示。
——转换913通过将CID及/或产品IMEI存储到OTP中并设置产品状态掩码为PSM=1来表示。
因此,软件装载模块可以利用生命周期状态图中的状态编码区分不同状态。在一个实施例中,软件装载模块被配置为如果OTP中的CID有效才执行。当装载模块进一步配置为只接受可以用电子装置中安装的证书验证的软件,而且当电子装置的引导ROM只接受可以用安装的证书验证的装载器时,硬件和软件之间就提供了有效而且安全的绑定。
此外,恢复装载器可以利用生命周期状态图中的状态编码恢复状态图的状态,例如当载入的数据已经毁坏的时候。这在图9中用箭头911、922和933表示。例如,恢复毁坏公钥的恢复过程实施例可以如下执行首先将恢复装载程序载入装置。然后,恢复装载器确定有效公钥是否存储在装置的密钥存储器中。如果检测到这样的密钥,恢复过程就结束。否则,恢复装载器通过检测OTP设置——例如上述的产品状态掩码等——来确定生命周期状态图的状态,并载入对应于所检测状态的公钥。
因此,上面揭示了能够在装置的不同阶段——从工厂到R&D和最后的最终用户产品——安全处理装置重编程能力的方法和装置。
值得注意的是上述方法的特性可以用软件实施并在数据处理系统或其它处理装置中实现,通过执行计算机可执行指令所引发。指令可以是从存储介质或通过计算机网络从另一个台计算载入诸如RAM这样的存储器中的程序代码装置。或者,所描述特性可以通过硬连接电路而不是软件或者与软件结合实现。
值得注意的是术语“电子装置”是要包括任何由处理装置和存储器组成的装置。术语处理装置包括通用或专用可编程微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、可编程逻辑阵列(PLA)、现场可编程门阵列(FPGA)、专用电子电路等,或者它们的组合。
这种电子装置的例子包括计算机,例如台式或便携PC,台式及便携无线通信设备等,以及特别是它们的元器件,例如处理单元、芯片组或诸如此类。术语便携式无线通信设备包括移动无线终端,例如移动电话、寻呼机、诸如电子记事本这样的通信器、智能电话、个人数字助理(PDA)、或诸如此类。
还值得注意的是术语“装载模块”是要包括任何适于将数据及/或软件载入电子装置的装置或电路。装置可以包括将数据/软件载入电子装置的恰当编程的处理器及接口。此外,装载模块可以作为计算机程序实现或者计算机程序的一个单元实现,适于在具有通信电路的数据处理系统上执行,通信电路适于通过数据通信链路与电子装置通信。
还要注意的是术语“hash值”是想指保密数据项的单向表示,也就是这样一种表示从计算上不能从该表示中得到保密数据项,而且两个不同的保密数据项得到两种不同的表示。
还要注意的是术语“工厂软件”是想包括在生产过程中载入电子装置的任何计算机可执行指令。工厂软件可以在生产过程中执行,例如测试硬件元器件、校准元器件——例如移动电话的无线电路、设置参数、定制等。可替换地或附加地,工厂软件可以包括生产完成之后执行的指令,例如预安装的操作系统等。因此工厂软件可以永久或暂时地载入电子装置。
权利要求
1.一种将数据载入电子装置(101、205)的方法,电子装置包括存储数据项的数据存储器(102)以及存储加密公钥机制的至少一个加密密钥的密钥存储器(105),该方法包括——将厂家公钥(PuKF)载入(S1、S701)密钥存储器;——将用厂家公钥所对应的厂家私钥(PrKF)签名的厂家软件(SW)载入(S2、S702)数据存储器;其特征在于,该方法还包括——将不同于厂家公钥的产品公钥(PuKP)载入(S4、S704)密钥存储器,以便在电子装置提供给客户、随后的数据项用相应的产品私钥(PrKP)签名之后,验证要载入数据存储器的随后数据项;并且——在将电子装置提供给客户之前禁止(S705)厂家公钥。
2.根据权利要求1的方法,其特征在于该方法还包括在电子装置中设置表示生产过程完成的可保护标识符(ID)的步骤(S3、S703)。
3.根据权利要求2的方法,其特征在于装载厂家公钥的步骤包括如下步骤——检查可保护标识符是否设置;——如果可保护标识符设置了,退出装载厂家公钥的步骤,否则装载厂家公钥。
4.根据权利要求2或3的方法,其特征在于装载产品公钥的步骤包括如下步骤——检测可保护标识符是否设置;——如果可保护标识符设置了,装载产品公钥;否则退出装载产品公钥的步骤。
5.根据权利要求2到4中任何一个的方法,其特征在于电子装置是关联了国际移动设备标识的移动电话;而且可保护标识符包括国际移动设备标识以及在一次可编程装置中存储的其它标识符。
6.根据权利要求1到5中任何一个的方法,其特征在于电子装置用于移动电话中。
7.根据权利要求1到6中任何一个的方法,其特征在于数据存储器和密钥存储器包括所选的闪存块。
8.根据权利要求1到7中任何一个的方法,其特征在于该方法还包括将保密数据项的hash值载入密钥存储器的步骤。
9.根据权利要求8的方法,其特征在于保密数据项是针对每个电子装置单独选择的。
10.根据权利要求8或9的方法,其特征在于hash值由根据电子装置而定的方法来确定。
11.根据权利要求1到10中任何一个的方法,其特征在于装载产品公钥的步骤还包括,装载包含产品公钥的数字证书的步骤,数字证书与限制公钥有效性的有效期关联。
12.根据权利要求1到11中任何一个的方法,其特征在于装载产品公钥的步骤还包括,装载包含产品公钥的数字证书的步骤;而且该方法还包括随后通过向电子装置发送预定消息而使数字证书无效的步骤。
13.根据权利要求1到12中任何一个的方法,其特征在于产品公钥从预定的一组客户公钥中选择。
14.根据权利要求13的方法,其特征在于客户公钥组包括用于电子装置原型的原型公钥。
15.一种重定制电子装置的方法,该电子装置中存储了通过执行权利要求8到10中任何一个的方法步骤载入电子装置的数据,该方法包括如下步骤——检测电子装置中是否设置了可保护标识符;——从密钥存储器中得到保密数据项的hash值;——将所得到的hash值与从参考保密数据项计算的参考hash值比较;以及——如果设置了可保护标识符而且如果所得到的hash值对应于计算的参考hash值,就开始将产品私钥签名的重定制数据载入电子装置;否则退出重定制电子装置。
16.将数据载入电子装置的系统,该电子装置包括存储数据项的数据存储器以及存储加密公钥机制的至少一个加密密钥的密钥存储器,该系统包括——将厂家公钥载入密钥存储器的第一装载模块(106);——将用厂家公钥所对应的厂家私钥签名的厂家软件载入数据存储器的第二装载模块(108);其特征在于该系统还包括第三装载模块(114),适于——将不同于厂家公钥的产品公钥载入密钥存储器、以便在电子装置提供给客户、随后的数据项用相应的产品私钥签名之后,验证要载入数据存储器的随后数据项;并且——在将电子装置提供给客户之前禁止厂家公钥。
17.一种重定制电子装置的系统,装置中存储了通过执行权利要求8到10中任何一个的方法步骤载入电子装置的数据,该系统包括一个装置模块,适于——检测电子装置中是否设置了可保护标识符;——从密钥存储器中得到保密数据项的hash值;——将所得到的hash值与从参考保密数据项计算的参考hash值比较;以及——如果设置了可保护标识符而且如果所得到的hash值对应于计算的参考hash值,就开始将用产品私钥签名的重定制数据载入电子装置;否则退出重定制电子装置。
18.一种电子装置,存储了通过执行权利要求1到14中任何一个的方法步骤载入电子装置的数据。
19.一种计算机程序,包括适合执行根据权利要求1到12任何一个方法中将数据存储到电子装置的如下步骤的代码工具,该装置包括存储数据项的数据存储器和存储加密公钥机制的至少一个加密密钥的密钥存储器——将产品公钥载入密钥存储器,以便在电子装置提供给客户、随后的数据项用相应的产品私钥签名之后验证要载入数据存储器的随后数据项;产品公钥不同于存储在密钥存储器中并用于验证载入数据存储器以及用对应于厂家公钥的厂家私钥签名的厂家软件的厂家公钥;以及——在将电子装置提供给客户之前禁止厂家公钥。
20.一种保护电子装置不会受到未授权的重编程的方法,电子装置包括数据存储器和密钥存储器,该方法包括将加密公钥机制的预定公钥载入密钥存储器,以便验证载入数据存储器的随后数据项,随后的数据项用相应的私钥签名;其特征在于该方法还包括在电子装置中设置可保护标识符,可保护标识符标识授权对电子装置重编程的实体。
21.根据权利要求20的方法,其特征在于可保护标识符还标识多类公钥中所选的一个。
22.根据权利要求20或21的方法,其特征在于可保护标识符表示电子装置生命周期的多个阶段中所选的一个。
23.根据权利要求20到22中任何一个的方法,其特征在于可保护标识符标识安全状态图中的一个状态,每个状态代表了电子装置生命周期中的一个阶段。
24.根据权利要求23的方法,其特征在于安全状态图中的至少一个状态转换关联于可保护标识符的一个相应变化。
25.根据权利要求20到24中任何一个的方法,其特征在于可保护标识符存储在一次性可编程(OTP)存储器中。
26.根据权利要求25的方法,其特征在于可保护标识符包括一个标识授权对电子装置重编程的实体的标识符、一个产品状态指示器,一次性可编程存储器的锁定状态、以及标识电子装置的产品标识符。
27.根据权利要求20到26中任何一个的方法,其特征在于公钥被包括在被编码从JAVA直接可读的数字签名中。
28.一种包括数据存储器和密钥存储器的电子装置,密钥存储器存储了加密公钥机制的一个预定公钥,以便验证载入数据存储器的随后数据项,随后的数据项用相应私钥签名;其特征在于电子装置还包括一次性可编程存储器,其中存储了可保护标识符,可保护标识符标识授权对电子装置重编程的实体。
29.将数据载入根据权利要求20到27中任何一个方法保护的电子装置的方法,该方法包括如下步骤——检测可保护标识符是否具有预定特性;以及——如果可保护标识符具有所述的预定特性,就装载数据,该数据是用所述私钥签名的;否则退出装载数据。
30.将数据载入根据权利要求20到27中任何一个方法保护的电子装置的系统,该系统包括一个装载模块,适于——检测可保护标识符是否具有预定特性;以及——如果可保护标识符具有所述的预定特性,就装载数据,该数据是用所述私钥签名的;否则退出装载数据。
全文摘要
制造一种电子装置的方法,该电子装置包括存储数据项的数据存储器以及存储加密公钥机制的至少一个加密密钥的密钥存储器。该方法包括将厂家公钥载入密钥存储器的步骤;以及将用厂家公钥所对应的厂家私钥签名的厂家软件载入数据存储器的步骤。该方法还包括将不同于厂家公钥的产品公钥载入密钥存储器的步骤,以便在电子装置提供给客户、随后的数据项用相应的产品私钥签名之后验证要载入数据存储器的随后数据项;并且在将电子装置提供给客户之前禁止厂家公钥。
文档编号G06F21/22GK1682488SQ03822026
公开日2005年10月12日 申请日期2003年9月8日 优先权日2002年9月16日
发明者M·博登舍, H·奥斯托夫, P·沙林, B·斯米茨 申请人:艾利森电话股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1