用于编程移动终端设备芯片的方法转让专利

申请号 : CN201280008094.6

文献号 : CN103370713B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : S.斯皮茨C.迪泽G.加尔卡

申请人 : 德国捷德有限公司

摘要 :

本发明提供一种用于编程用于移动终端的芯片的方法,其中准备步骤涉及将序列号编程到芯片之中,随后编程步骤涉及对序列号进行验证,并且仅当序列号已经被成功验证时,才将至少一个进一步的数据项编程到芯片之中。在这种情况下,序列号通过安全模块(HSM)使用存储在安全模块(HSM)中且不同于序列号的秘密信息项进行验证。

权利要求 :

1.一种用于编程用于移动终端设备的芯片的方法,其中

-在准备步骤中,将序列号编程到芯片中,以及

-此后,在编程步骤中,对所述序列号进行验证,并且仅当所述序列号被成功验证时,将至少一个进一步的数据编程到所述芯片中,其特征在于,

在采用存储在安全模块中且不同于所述序列号的秘密信息项的同时,所述序列号通过所述安全模块进行验证;

其中提供在所述芯片中实现的或尚未实现的安全操作系统的可操作性所需的加密密钥作为进一步的数据。

2.如权利要求1所述的方法,其中所述序列号通过所述序列号或取决于在采用所述秘密信息项的同时复制的序列号的信息项进行验证。

3.如权利要求1或2所述的方法,其中所述序列号由秘密映射规则形成,并且所述映射规则作为所述秘密信息项存储在安全模块中。

4.如权利要求1或2所述的方法,其中,除了所述序列号之外,在采用所述序列号和秘密密钥的同时形成的数字签名存储在所述芯片中,并且所述秘密密钥作为所述秘密信息项存储在所述安全模块中。

5.如权利要求1或2所述的方法,其中所述秘密信息项存储在所述安全模块中以针对读出进行保护。

6.如权利要求1所述的方法,其中提供安全操作系统或安全操作系统的至少一部分作为进一步的数据。

7.如权利要求6所述的方法,其中所述加密密钥在所述安全模块中生成。

8.根据权利要求6或7所述的方法,其中在采用所述序列号的同时,生成所述加密密钥。

9.如权利要求1或2所述的方法,其中所述准备步骤通过第一编程者执行,并且其中所述编程步骤通过与第一编程者逻辑上和/或空间上分离的第二编程者执行。

10.如权利要求9的所述方法,其中所述秘密信息项通过所述第一编程者编程到所述安全模块中,所述安全模块可提供给所述第二编程者用于所述编程步骤。

11.如权利要求1或2所述的方法,其中

-在所述编程步骤中,在所述安全模块中生成至少包括所述秘密信息项的验证数据集,通过所述数据集可以验证所述序列号,并且所述验证数据集被发送到后台系统,并且-在时间上继所述编程步骤之后的验证步骤中,所述序列号在所述后台系统中通过所述验证数据集再次进行验证,如果所述序列号已经在所述验证步骤中被成功验证,那么接受所述芯片,并且如果所述序列号在所述验证步骤中未被成功验证,那么丢弃所述芯片。

12.如权利要求1所述的方法,其中

-在所述编程步骤中,生成取决于所述加密密钥和所述序列号的密钥序列号数据作为所述验证数据集的至少一部分,并发送到后台系统,并且-在所述验证步骤中,除所述序列号之外,或替代所述序列号,还通过所述验证数据集验证所述密钥序列号数据。

13.一种通过根据权利要求6至8中任何一项所述的编程方法激活安全操作系统的方法,其中-附加地,除所述加密密钥之外的安全操作系统被编程到所述芯片中,并由此实现所述安全操作系统,并且-在所述编程步骤中,仅当所述序列号被成功验证时,将所述加密密钥编程到所述芯片中。

14.如权利要求13所述的方法,其中所述准备步骤通过第一编程者执行,并且其中所述编程步骤通过与第一编程者逻辑上和/或空间上分离的第二编程者执行。

15.如权利要求14的所述方法,其中所述秘密信息项通过所述第一编程者编程到所述安全模块中,所述安全模块可提供给所述第二编程者用于所述编程步骤。

16.如权利要求13至15中任何一项所述的方法,其中

-在所述编程步骤中,在所述安全模块中生成至少包括所述秘密信息项的验证数据集,通过所述数据集可以验证所述序列号,并且所述验证数据集被发送到后台系统,并且-在时间上继所述编程步骤之后的验证步骤中,所述序列号在所述后台系统中通过所述验证数据集再次进行验证,如果所述序列号已经在所述验证步骤中被成功验证,那么接受所述芯片,并且如果所述序列号在所述验证步骤中未被成功验证,那么丢弃所述芯片。

17.如权利要求16所述的方法,其中

-在所述编程步骤中,生成取决于所述加密密钥和所述序列号的密钥序列号数据作为所述验证数据集的至少一部分,并发送到所述后台系统,并且-在所述验证步骤中,除所述序列号之外,或替代所述序列号,还通过所述验证数据集验证所述密钥序列号数据。

18.一种用于安全地配置用于移动无线电系统的包含芯片的移动终端设备的方法,其中-在所述芯片上,执行根据权利要求1至17中任何一项所述的准备步骤和编程步骤,-将所述芯片带入与所述移动无线电系统的后台系统的数据交换连接,以向所述后台系统登记所述移动终端设备,-执行根据权利要求11、12、16或17的验证步骤,并且-仅在所述序列号和/或所述密钥序列号数据已在所述验证步骤中被成功验证的情况下,才向所述后台系统登记所述移动无线电设备。

说明书 :

用于编程移动终端设备芯片的方法

技术领域

[0001] 本发明涉及一种用于编程移动终端设备芯片的方法,一种用于在使用所述编程方法的同时激活安全操作系统的方法,以及一种用于在使用所述编程方法的同时安全地配置包含芯片的移动终端设备的方法。

背景技术

[0002] 移动终端设备,例如移动电话、智能手机等,包含具有集成电路(IC)的芯片(微处理器芯片),所述芯片也称为SoC(片上系统),通过所述芯片控制包括例如显示屏幕、键盘、用于SIM卡和/或其他的卡读卡器的其组件的移动终端设备。
[0003] 所述芯片由芯片制造商(也被称为SoC提供商,SoCP)制造,可提供给不同于芯片制造商的终端设备制造商(也被称为原始设备制造商,OEM),并被编程为具有操作系统(即,将操作系统编程到芯片中),并由终端设备制造商将芯片安装到移动终端设备之中。用于芯片的操作系统通常不是由终端设备制造商生产,而是由芯片制造商或与芯片制造商密切联系的操作系统制造者生产。由于在操作系统中要考虑到将要使用所述芯片的移动终端设备的特性,然而芯片制造商不会马上将操作系统编程到芯片之中,而是由终端设备制造商做这件事情。在制造芯片和将芯片提供给终端设备制造商之间,编程步骤通常由芯片制造商和/或与芯片制造商密切联系的公司执行,这些步骤不是本专利申请的主题事项。
[0004] 在芯片制造商的影响范围之外对芯片进行编程会导致伪造芯片(通常被称为灰色芯片(gray chip))被提供给终端设备制造商的风险,所述伪造芯片并非来自芯片制造商并可能具有不同于来自所述芯片制造商的原始芯片的属性。终端设备制造商对下列事情感兴趣:将来自芯片制造商的、具有确定属性(assured property)的原始芯片实现在其移动终端设备之中。反过来芯片制造商对下列事情感兴趣:将要用于其芯片的操作系统只被编程到其芯片之中,而不会被编程到不同来源的芯片之中。
[0005] 在当前阶段,由芯片制造商将序列号编程到芯片之中用于抵御灰色芯片。在由终端设备制造商将进一步的数据(例如,操作系统)编程到芯片之中之前,检查芯片的序列号。基于包括所有有效序列号的序列号列表,终端设备制造商可以识别出芯片是否有有效的序列号。不具有有效序列号的芯片不会被编程。
[0006] 序列号列表可能非常之大,这使得对它们的处理非常费力和麻烦。此外,在芯片制造商和终端设备制造商以及任何其他方之间安全传输序列号列表涉及很多努力。
[0007] 本专利申请的申请人在品牌名称MOBICORE下制造并销售用于将被实现在移动(无线电)终端设备(例如移动电话、智能手机)中的芯片的安全操作系统。通过安全操作系统MOBICORE以安全方式控制安全性关键应用程序和一些系统功能(例如,键盘驱动程序)。进一步的应用程序和其他系统功能(例如当前的显示屏幕驱动程序)通过与安全操作系统并存的正常操作系统控制。安全操作系统包括加密密钥——认证密钥Kauth,安全操作系统可以通过其向后台系统验明(identify)自身。可选地,认证密钥Kauth被附加地提供用于运行芯片或移动终端设备和后台系统之间的安全通信通道。后台系统是例如移动无线电网络本身的已知的后台系统。

发明内容

[0008] 本发明基于提供一种用于编程移动终端设备芯片的高效和安全的方法的目的,其中最多只允许对来自预定来源的芯片编程。具体地,提供了一种在没有序列号列表的情况下进行的这样的方法。另外,根据本发明的开发,将分别描述在使用所述编程方法的同时一种用于激活安全操作系统的方法以及一种用于安全地配置包含芯片的移动终端设备的方法。
[0009] 该目的通过根据权利要求1的方法实现。本发明的有利实施例在从属权利要求中描述。
[0010] 根据权利要求1所述的方法被配置用于对用于移动终端设备的芯片进行编程。在准备步骤中,序列号被编程到芯片之中。此后,在编程步骤中,验证序列号,并且只在序列号已经被成功验证时才将至少一个进一步的数据编程到芯片之中。所述方法的特征在于,在采用存储在安全模块中并且不同于序列号的秘密信息项的同时,序列号可以通过安全模块验证。“进一步的数据”在这里被理解为任何类型的数据,例如程序代码(例如操作系统,参见下文)或将要用于与程序代码交互的单个数据(例如加密(认证)密钥)。
[0011] 由于在采用存储在安全模块中的秘密信息项的同时,序列号是可验证的,因此验证序列号只需要安全模块,而不需要序列号列表。因此,所述方法与利用基于序列号列表的序列号检查的方法至少是同等安全的,但明显更加高效,因为不需要处理序列号列表。
[0012] 因此,根据权利要求1提供了一种在检查芯片来源的情况下用于对移动终端设备的芯片编程的高效和安全的方法。
[0013] 可选地,应对于成功验证序列号,进一步的数据直接通过安全模块被编程到芯片之中,而不存在任何来自安全模块之外的干预的可能性。因此,可以实现在成功验证序列号之后可以将进一步的数据排他地分配并编程到刚刚验证其序列号的芯片之中。然而,不可能在验证所述序列号之后且在将进一步的数据编程到所述芯片之中之前,将所述芯片换成另一个芯片。因此,可以保证只有正宗来源的芯片才会获得被编程在其中的进一步的数据。
[0014] 可选地,在采用秘密信息项的同时,序列号通过序列号或取决于正在被复制(即,再次生成)的序列号的信息项验证。在第二种情况下,取决于序列号的信息项附加地在准备步骤中被优选地编程到芯片之中。
[0015] 根据第一实施例,序列号通过映射规则形成,所述映射规则作为秘密信息项存储在安全模块中。在该情况下,为了验证序列号,通过安全模块从芯片中读出序列号,序列号在安全模块中通过所存储的映射规则再次生成,优选地也在安全模块中将读出的和新生成的序列号进行比较,如果匹配,那么序列号被视为已验证。映射规则对可以包括例如随机数和其他数据的输入数据进行处理并从中生成序列号。
[0016] 根据第二实施例,除了序列号之外,存储在芯片中的还有在采用序列号和秘密密钥的同时形成的数字签名,所述秘密密钥作为秘密信息项存储在安全模块中。在该情况下,为了验证序列号,通过安全模块从芯片中读出序列号和数字签名,通过读出的序列号和存储在安全模块中的秘密密钥在安全模块中再次生成所述签名,优选地也在安全模块中将读出的和新生成的签名进行比较,如果签名匹配,那么序列号被视为已验证。
[0017] 可选地,秘密信息项存储在安全模块中以针对读出进行保护。例如,直接读出秘密信息项是不可能的,或最多只在向安全模块成功认证之后。在不传递出安全模块的情况下,在安全模块内采用秘密信息项用于验证芯片序列号。
[0018] 可选地,作为进一步的数据,提供安全操作系统,或至少安全操作系统的一部分。例如,在编程步骤中,仅在序列号已经被成功验证的情况下将安全操作系统编程到芯片之中。
[0019] 可选地,作为进一步的数据,提供在芯片中实现的或尚未在芯片中实现的安全操作系统的可操作性所需的加密密钥,例如认证密钥。安全操作系统本身可选地在验证序列号之前或之后被编程到芯片之中,或可替换地在其之前或之后被部分编程到芯片之中。可选地,作为进一步的数据,提供了上述安全操作系统MOBICORE的认证密钥Kauth。
[0020] 可选地,加密密钥(例如,认证密钥)在安全模块中生成,可选地,直接应对于成功验证序列号。所生成的密钥随后被编程到芯片之中,可选地不存在任何来自安全模块之外的干预的可能性。
[0021] 可选地,在采用序列号的同时生成加密密钥。作为结果,加密密钥取决于序列号,因此,加密密钥对芯片来说与序列号一样是唯一的。
[0022] 一种用于激活安全操作系统的方法通过一种用于对芯片编程的方法执行,其中,如上所述,在准备步骤中,序列号被编程到芯片之中。作为进一步的数据,提供安全操作系统的可操作性所需的加密密钥,具体地认证密钥。在用于激活安全操作系统的所述方法中,除加密密钥之外,安全操作系统被附加地编程到芯片之中,从而在芯片中实现所述安全操作系统。在编程步骤中,只有当序列号已经被成功验证时,才将加密密钥编程到芯片之中。通过将密钥编程到芯片之中,安全操作系统被激活,并因此关于该编程操作是可操作的。
[0023] 所述方法尤其有利地适用于对用于移动终端设备的芯片进行工作共享编程,例如在芯片制造商和终端设备制造商(例如,移动无线电终端设备制造商)之间共享对芯片的编程。
[0024] 可选地,准备步骤由第一编程者(例如芯片制造商)执行,编程步骤由与第一编程者逻辑上和/或空间上分离的第二编程者(例如,终端设备制造商)执行。因为验证序列号在没有序列号列表的情况下进行并且只需要安全模块,所以迄今不再需要在第一和第二编程者之间(例如,在芯片制造商和终端设备制造商之间)交换序列号列表。
[0025] 可选地,秘密信息项通过第一编程者(例如,芯片制造商)被编程到安全模块之中,安全模块被提供给第二编程者(例如,终端设备制造商)以执行编程步骤。
[0026] 安全模块可选地被设计为具有加密处理器、用于秘密信息的存储器和用于芯片编程的控制单元的完整的系统。可选地,存储器只能被加密处理器读取。加密处理器被配置为在采用存储在存储器中的秘密信息的同时进行加密计算,例如签名计算、根据算法的序列号计算、比较运算、密钥生成,具体地进行用于Mobicore安全操作系统的认证密钥Kauth的生成。用于芯片编程的控制单元被配置为对芯片编程。优选地,加密处理器和用于芯片编程的控制单元彼此耦接,使得芯片编程可直接被加密处理器的计算结果控制。
[0027] 根据本发明的第一开发,在编程步骤中,在安全模块中生成至少包括秘密信息项的验证数据集,通过所述数据集可以验证序列号。验证数据集被发送到后台系统。在时间上继编程步骤之后的验证步骤中,利用后台系统通过验证数据集再次验证序列号,如果序列号已经在验证步骤中被成功验证,那么接受所述芯片,如果序列号在验证步骤中未被成功验证,那么丢弃所述芯片。例如当包含芯片的移动终端设备向后台系统登记时执行验证步骤。
[0028] 可选地,在本发明的第一开发中,在编程步骤中,例如通过将密钥和序列号通过算法G处理成密钥序列号数据生成取决于密钥和序列号的密钥序列号数据作为验证数据集的至少一部分,并将所述密钥序列号数据发送到后台系统。在验证步骤中,除验证序列号之外,或替代验证序列号,通过验证数据集,例如通过再次计算密钥序列号数据,对密钥序列号数据进行验证。如果需要,验证数据集包括算法G。
[0029] 如上文所述,在一种根据本发明的用于为移动无线电系统安全配置包含芯片的移动终端设备的方法中,根据本发明的第二开发,在芯片上执行准备步骤(具体地包括编程加入序列号和(如适用)签名)和编程步骤(具体地包括验证序列号和(如适用)编程加入进一步的数据(例如,(认证)密钥))。随后,所述芯片被带入与移动无线电系统的后台系统的数据交换连接,以向后台系统中登记移动终端设备,目的是为了使移动终端设备随后在移动无线电系统中可用,例如用于打电话、数据交换和习惯(customary)用于移动终端设备的其他应用。此后,第二验证步骤根据本发明的开发(例如,通过数据交换连接)执行。只有在序列号和/或密钥序列号数据已经在第二验证步骤中成功验证的情况下,才向后台系统登记移动无线电设备。作为结果,在移动终端设备的生命周期中安装进一步的安全装置(securing means),从而确保只有具有原始芯片和(如适用)原始安全操作系统的移动终端设备才能够参与移动无线电系统。

附图说明

[0030] 下面将基于示例性实施例并参考附图对本发明进行更详细的说明,在所述附图中示出:
[0031] 图1是包括第一开发的用于图示本发明的第一实施例的系统;
[0032] 图2是包括第一开发的用于图示本发明的第二实施例的系统,;
[0033] 图3是用于图示本发明的第二开发的系统。具体实施例
[0034] 图1示出用于图示本发明的第一实施例的系统,其中对用于移动无线电终端设备的芯片SoC的编程通过根据秘密映射规则F形成的序列号SENR保护。编程的目的是使得移动无线电终端设备制造商OEM(原始设备制造商)将安全操作系统编程到由芯片制造商SOCP(SOC提供商)制造的芯片SoC(片上系统)之中。在这样做时,必须确保只向芯片制造商SOCP的原始芯片提供可操作的安全操作系统。安全操作系统包括认证密钥Kauth,没有所述认证密钥Kauth安全操作系统是不可操作的。芯片制造商SOCP将根据秘密映射规则F形成的序列号SENR编程到芯片SoC之中,并将秘密映射规则F编程到安全模块HSM(高安全模块)之中。芯片制造商SOCP将芯片SoC和安全模块HSM提供给终端设备制造商OEM。通常,芯片制造商SOCP将大量由此准备的SoC芯片提供给终端设备制造商OEM。终端设备制造商OEM以适当的方式将安全模块HSM集成到其生产链(production chain)之中用于芯片编程。作为结果,用于对芯片SoC编程的每个编程操作由安全模块HSM控制,这只有在安全模块HSM的控制下是可能的。首先,终端设备制造商OEM将除认证密钥Kauth之外的安全操作系统编程到芯片SoC之中。认证密钥Kauth此时还不存在。只要在终端设备制造商OEM处发出将认证密钥Kauth编程到芯片SoC之中的编程命令,安全模块HSM就从芯片SoC读出序列号SENR,通过读出的序列号SENR和存储在安全模块HSM中的秘密映射规则F再次形成序列号SENR,并比较读出的和新形成的序列号SENR。只有当读出的和新形成的SENR匹配时,序列号才在安全模块HSM中被视为验证,并且应对于安全模块HSM中的验证直接生成认证密钥Kauth。认证密钥Kauth通过加密计算从序列号SENR和进一步的输入数据生成,因此与序列号SENR一样,认证密钥Kauth是唯一的,并且对于芯片SoC是特有的。生成的认证密钥Kauth被编程到芯片SoC之中,不存在任何来自安全模块HSM之外的干预的可能性。作为结果,安全操作系统被激活。然而,如果序列号不同,那么输出错误消息和/或中止芯片编程,可选地还采取错误处理措施,例如擦除芯片SoC的存储器。因此,在该情况下,安全操作系统没有被激活。
[0035] 图2示出用于图示本发明的第二实施例的系统,其中对用于移动无线电终端设备的芯片SoC的编程通过序列号SENR和序列号SENR上的签名SIG保护。用于芯片编程的基本条件如图1所述。与根据图1的实施例对比,在根据图2的实施例中,芯片制造商SoCP将序列号SENR和通过利用秘密加密密钥K加密序列号SENR生成的签名SIG编程到芯片SoC之中。此外,芯片制造商SOCP将秘密加密密钥K编程到安全模块HSM之中。只要发出编程命令将认证密钥Kauth编程到芯片SoC之中,安全模块HSM就从芯片SoC读出签名SIG和序列号SENR,通过读出的序列号SENR和存储在安全模块HSM中的秘密密钥K再次形成签名SIG,并比较读出的和新形成的签名SIG。如果签名不同,那么输出错误消息和/或中止芯片编程,可选地还采取错误处理措施,例如擦除芯片SoC的存储器。如果存储的和新形成的签名SIG匹配,那么序列号SENR被视为验证。如图1所述,应对于验证,形成(计算)认证密钥Kauth,并将其编程到芯片之中,从而激活安全操作系统。
[0036] 图3示出用于表示本发明的开发的系统,其具有向移动无线电系统的后台系统BS登记包含芯片SoC的移动终端设备的附加步骤。直到在安全模块HSM中验证序列号SENR,以及(若适用)生成认证密钥Kauth并将所述认证密钥Kauth存储在安全模块HSM中,所述过程与参考图1或图2所述的相同。此外,在认证密钥Kauth已经在安全模块HSM中生成并被编程到芯片SoC之中之后,在采用秘密信息项(算法F或密钥K)和序列号SENR的同时,密钥序列号数据SSD=G(F,Kauth,SENR)或SSD=G(K,Kauth,SENR)通过算法G生成。密钥序列号数据SSD、序列号SENR和秘密信息项F或K构成用于稍后验证芯片SoC的序列号的验证数据集。验证数据集通过终端设备制造商OEM不能影响的安全的数据连接发送到移动无线电系统的后台系统BS。稍后,在其中包含芯片SoC的移动终端设备被卖给终端客户之后,移动终端设备必须首次向后台系统BS登记,以在移动无线电系统中可操作。当尝试向后台系统BS登记移动终端设备时,通过密钥序列号数据SSD再次验证芯片SoC的序列号SENR。只有当序列号SENR被成功验证时,移动终端设备才向后台系统BS登记,作为结果,移动终端设备能够参与移动无线电系统。