完整性受保护的安全存储设备的实施转让专利

申请号 : CN200680016292.1

文献号 : CN101176125B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : N·阿索坎J-E·埃克贝格L·帕特罗

申请人 : 诺基亚公司

摘要 :

为一种包括第一集成电路的设备提供内部的但不是集成的安全令牌,该第一集成电路包括安全处理器。通过与第一电路相分离的第二集成电路来提供安全令牌。第二集成电路包括安全的非易失性存储设备。安全处理器以安全的方式将信息传送到第二电路以便安全信息安全地存储于安全的非易失性存储设备中,而第二集成电路以安全的方式将它的安全非易失性存储设备中存储的信息传送到安全处理器。借助密码术来保证通信安全。第一集成电路和第二集成电路是设备的内部部分。也公开了一种用于分发将要在电路之间共享的并且将要在密码术中使用的安全密钥的初始化方法。

权利要求 :

1.一种完整性受保护的设备,包括:

第一集成电路,用于形成第一信任区域,所述第一集成电路包括安全处理器;以及与所述第一集成电路相分离的第二集成电路,用于形成第二信任区域,所述第二集成电路包括在所述第二信任区域内的安全非易失性存储设备,其中:所述安全处理器被配置用于以安全的方式将安全信息从所述第一信任区域传送到所述第二信任区域以便所述安全信息安全地存储于所述安全非易失性存储设备中;

所述第二集成电路被配置用于以安全的方式将其安全非易失性存储设备中存储的安全信息从所述第二信任区域传送到所述第一信任区域内的所述安全处理器;以及其中:所述第一集成电路和所述第二集成电路是所述完整性受保护的设备的内部部分。

2.根据权利要求1所述的完整性受保护的设备,其中所述第一集成电路和第二集成电路适于安全地初始化将要在所述第一信任区域与第二信任区域之间共享的唯一安全密钥。

3.根据权利要求2所述的完整性受保护的设备,其中所述第一集成电路适于与安全密钥分发服务器共享密钥,而所述第二集成电路适于与所述安全密钥分发服务器共享另一密钥,以便保证所述唯一安全密钥从所述安全密钥分发服务器到所述第一集成电路和第二集成电路的递送安全。

4.根据权利要求1-3中任意一项所述的完整性受保护的设备,其中所述第一集成电路和第二集成电路适于建立将要在所述第一信任区域与第二信任区域之间使用的安全通信协议。

5.根据权利要求4所述的完整性受保护的设备,其中所述安全通信协议包括将要通过使用所述唯一安全密钥来执行的以便保证所述第一信任区域与第二信任区域之间通信安全的密码算法。

6.根据权利要求4所述的完整性受保护的设备,其中所述协议至少包括READ和WRITE命令以及密钥改变操作。

7.根据权利要求1-3中任意一项所述的完整性受保护的设备,其中为所述设备提供使得能够在所述第一信任区域与第二信任区域之间共享多个密钥的密钥状态管理。

8.根据权利要求7所述的完整性受保护的设备,其中所述第二信任区域的所述非易失性存储设备包括指示了将要在通信中使用的所述共享密钥的至少一个被维持密钥状态变量。

9.根据权利要求8所述的完整性受保护的设备,其中所述第二集成电路适于通过在开机操作时读取所述密钥状态变量的当前值来选择正确的密钥状态。

10.根据权利要求1-3中任意一项所述的完整性受保护的设备,其中所述安全处理器适于包括随机值作为READ命令中的参数,使得它能够验证从所述第二集成电路接收的后续结果是新的。

11.根据权利要求1-3中任意一项所述的完整性受保护的设备,其中所述第二集成电路适于检验是否包含其安全非易失性存储设备的目标存储器单元的旧值作为接收的WRITE命令中的参数,以及如果是这种情况则允许写操作。

12.根据权利要求2或3所述的完整性受保护的设备,其中所述第二集成电路被配置用以对接收的命令的响应的参数进行加密,这是通过使用所述唯一安全密钥以及通过在所述参数中包括外部不可预测的成分来实现的,使得即使相同的命令仍将产生不同的响应。

13.根据权利要求12所述的完整性受保护的设备,其中所述不可预测的成分是从通过时钟来驱动的线性反馈移位寄存器中导出的值。

14.根据权利要求1-3中任意一项所述的完整性受保护的设备,其中所述第二集成电路适于仅将单个密码原语用于其所有的密码操作。

15.根据权利要求1-3中任意一项所述的完整性受保护的设备,其中所述第一集成电路是数字的而所述第二集成电路是模拟的。

16.根据权利要求1-3中任意一项所述的完整性受保护的设备,其中所述第二集成电路驻留于移动电话的能量管理芯片上。

17.根据权利要求1-3中任意一项所述的完整性受保护的设备,其中所述第一集成电路和所述第二集成电路形成组件模块的一部分。

18.根据权利要求1-3中任意一项所述的完整性受保护的设备,其中所述安全信息包括指示了所述设备的状态的信息。

19.根据权利要求1-3中任意一项所述的完整性受保护的设备,其中所述设备包括用于存储所述安全信息并且通过使用密钥对所述安全信息进行加密的第二非易失性存储器。

20.根据权利要求19所述的完整性受保护的设备,其中所述设备被布置用以将所述第二非易失性存储器的内容与所述第二信任区域的所述安全非易失性存储设备的内容做比较。

21.根据权利要求1-3中任意一项所述的完整性受保护的设备,其中所述设备是手持通信设备。

22.一种集成电路,包括:

非易失性存储器,用于存储从另一集成电路接收的安全数据;以及

用于访问所述非易失性存储器的逻辑,其中所述集成电路适于将所述非易失性存储器上存储的以及借助密码术来保证安全的安全数据传送到所述另一集成电路,以及其中:所述集成电路适于使用单个密码原语,并且所述集成电路和所述另一集成电路是完整性受保护的设备的内部部分。

23.一种适于实现设备的能量管理的能量管理芯片,所述能量管理芯片包括用于存储安全信息的安全非易失性存储器和逻辑以便为所述能量管理芯片外部的安全处理器提供安全令牌,其中,所述能量管理芯片和所述安全处理器是所述设备的内部部分。

说明书 :

完整性受保护的安全存储设备的实施

技术领域

[0001] 本发明涉及为设备提供完整性受保护的安全存储设备。本发明具体地但并非排他地涉及在比如移动电话这样的便携设备上的状态维护。

背景技术

[0002] 各种通信设备在我们日常生活方方面面中的使用已经在近年来显著增长。现代移动电话正在变成能够实现各种新安全应用的多用途设备,比如银行客户机和数字权利管理(DRM)客户机。随着个人通信设备的激增,保护设备内存储的关键数据已经变得越来越重要。例如,已经与个人通信设备一起实施PIN的使用用来控制对设备的访问。然而有可能的是如果给定不受限制的时间和尝试来输入PIN则可能猜到PIN。因此,除了使用PIN之外,限制尝试输入PIN的次数也是有用的。
[0003] 为了限制尝试访问设备的次数,有可能在个人通信设备中使用某类计数器。该计数器在密码术上绑定到与设备所用关键数据有关的状态信息并且可以用作防盗机制。在这一上下文下,状态信息可以意味着指示了连续不正确的PIN访问尝试的次数。在某一数目(假如三次)的不正确PIN输入尝试之后,设备锁定直至输入专用PIN解锁密钥(即PUK代码)。
[0004] 如果设备上的状态信息存储设备缺乏完整性保护,则攻击者有可能记录当前状态信息、试验三次连续PIN(在这一过程中设备将更新状态信息)并且用旧的记录数据来覆盖新更新的状态信息。以这一方式,攻击者将获得多于三次试验以找到正确PIN。
[0005] 除了保持对连续不正确口令/PIN访问常数的跟踪之外,在DRM领域中还有各种其它使用,在这些使用中可能需要用以在安全个人设备中安全地存储状态信息的能力。
[0006] 当需要控制数据内容的消费时保持对计数器值的跟踪可能也是有用的。例如,第三方可能想要防止个人通信设备的用户播放歌曲多于十次。交付用以播放歌曲十次的权利作为一种通过实施计数器来指定10次使用限制的电子凭证。然而,如果用户能够在每次使用之后重置计数器,则能够无限地播放歌曲而无需就每次使用向数据的所有者付费。
[0007] 在移动设备中,也有应当在设备的整个生命期中可靠地可访问的依赖于设备的安全状态。例如,移动电话可以具有应当有效地防止使用被盗电话的电话锁特征。当该锁接合时,当前用户标识模块(SIM)的标识符与匹配通行代码的适当表示(例如单向散列代码)一起存储于电话的可重写永久型存储器中。只要更换了SIM,如果启用电话保护,则电话先询问用户对应通行代码,并且只有成功地输入,电话才存储新SIM的ID并且允许它的使用。然而,为了防止强力攻击,电话应当保护失败通行代码的计数器,从而在三次失败尝试之后,电话变成更彻底地锁定。
[0008] 在已经需要关键状态信息非易失性维护的DRM领域中,各种密码术方法已经用来保护关键状态信息,比如关键计数器值等。
[0009] 密码术的一个方面涉及到对数字数据进行编码或者加密以使它不可为所有接收者而可为预定接收者所理解。换而言之,当在DRM背景下利用密码术时,对数据进行加密并且将解密密钥交付给已经为消费该数据内容而付费的那些终端或者用户。为此,密码系统能够用来通过防止非授权方使用和更改数据来保存数据的私密性和完整性。除了加密之外,也使用对数据起源的认证以便保证例如只有具有正确密钥的一方才能够生成正确签名或者消息认证代码(MAC)。
[0010] 例如,能够在数字上对包括数字化声音、字母和/或数字的明文消息进行编码,然后使用复杂的数学算法对该消息进行加密,该算法基于也称为密码密钥的给定数字或者数位集对编码的消息进行变换。密码密钥是可以根据所用算法或者密码系统来随机选择的或者具有特殊数学性质的数据位序列。在计算机上实施的高级密码算法能够变换和操控在长度上数以百计或者数以千计位的数字并且能够抵御任何已知非授权解密方法。有两种基本类别的密码算法:对称密钥算法和非对称密钥算法。
[0011] 对称密钥算法将一致的密码密钥既用于发送方对通信进行加密又用于接收方对通信进行解密。对称密钥密码系统在共享密码密钥的双方的相互信任的基础之上构建以使用密码系统来防范不受信任的第三方。一种众所周知的对称密钥算法是由National Institute ofStandards and Technology(国家标准和技术机构)首先公布的国家数据加密标准(DES)算法。参见Federal Register1975年3月17日第40卷第52期和1975年8月1日第40卷第149期。进行发送的密码设备使用DES算法针对通信会话(会话密钥)在消息与密码密钥(DES密码密钥长达56位)一起加载时对消息进行加密。接收方密码设备使用逆DES算法在加密消息和与用于加密的密码密钥相同的密码密钥一起加载时对加密消息进行解密。
[0012] 非对称密钥算法将不同的密码密钥用于加密和解密。在使用非对称密钥算法的密码系统中,用户使加密密钥公开而保持解密密钥为私密,并且从公共加密密钥导出私密解密密钥是不可行的。由此,知道特定用户公共密钥的任何人都能够对去往该用户的消息进行加密,但只有作为与该公共密钥相对应的私密密钥的所有者的用户才能够对消息进行解密。这一公共/私密密钥系统首先在Diffie和Hellman在IEEE Transactions on Information Theory1976年11月的”New Directions in Cryptography”中以及在美国专利第4,200,770号(Hellman等人)中提出。
[0013] 上述密码系统已经用来通过以若干方式安全地存储状态信息来保护个人通信设备中的状态信息。首先,通过将快照写到状态信息并且例如通过使用单向散列函数来计算它的“校验和”。将结果存储于设备的防篡改存储器位置。因此,如果有人试图改变状态信息,则结果的校验和将与个人设备内存储的校验和值不匹配。其次,通过使用设备内的单调永久型计数器。每当有状态变化时,状态信息随着使用设备密钥来加密的当前计数器值一起存储。因此没人能够不用密钥就改变加密的状态信息。
[0014] 然而,这两种现有技术的方法均需要在同一防篡改区域中包含安全处理器本身的少量读写存储设备。
[0015] 在DRM领域中,通常通过数字集成电路来提供所涉及到的应用。如果运行这种应用的安全处理器在它的防篡改永久型存储设备内具有足够的可更新空间,则为状态信息实施完整性保护相当容易。Maheshwari等人已经在OSDI 2000的”How to Build a TrustedDatabase System on Untrusted Storage”中公开了这样的布置。遗憾的是,经济原因正在消除数字集成电路上的非易失性可重写存储器。在安全处理器的防篡改周界内集成可更新的存储器或者读写存储设备是昂贵的,尤其是在像移动电话这样的资源特别受制约的设备上更是如此。换而言之,状态信息的存储和应用的安全处理在与安全处理器相同的防篡改区域内(例如在安全处理器的集成电路内)并非总是经济的(或者甚至不实际)。
[0016] 另外,正如现有技术中已知的,数字IC块往往在成本上优化,使得它们中的一些甚至不能容纳可重写永久型存储器(例如闪存),因为包含这样的存储器将要求制造6硅层而不是普遍的用于IC块区域的4硅层。因此同样地,简单地为安全处理器提供非易失性存储器看上去在经济上和技术上并非适合于所有使用。
[0017] 因而,存在的问题是如何为通常资源受制约的设备的安全处理器实施完整性受保护的安全存储设备。
[0018] 作为针对这一问题的实际解决方案,公开号为US 2003/0079122A1的本申请的申请人的共同未决专利申请提出了使用外部防篡改存储设备来存储重要状态信息的思想。引入了认证(或者受信)计数器的思想。专利申请US 2003/0079122A1公开了能够在比如智能卡这样的外部防篡改安全令牌中实施能够由安全处理器用来在完整性上保护其状态存储设备的认证计数器。为了使这一点起作用,安全处理器需要能够认证外部安全令牌。为此,专利申请US2003/0079122A1公开了使用公共密钥框架(PKI)。
[0019] 然而,公共密钥框架建立起来相当复杂,因为它涉及到设备制造商与外部安全令牌制造商之间的协作和共识。它还对外部安全令牌或者存储器造成一定数量的处理负荷。

发明内容

[0020] 本发明的目的在于避免或者至少缓解现有技术中发现的问题。
[0021] 根据本发明的第一方面,提供一种设备,该设备包括:
[0022] 第一集成电路,用于形成第一信任区域,该第一集成电路包括安全处理器;以及[0023] 与第一电路相分离的第二集成电路,用于形成第二信任区域,该第二集成电路包括在第二信任区域内的安全非易失性存储设备,其中:
[0024] 安全处理器被配置用于以安全的方式将信息从第一信任区域传送到第二信任区域以便安全信息安全地存储于安全非易失性存储设备中;
[0025] 第二集成电路被配置用于以安全的方式将它的安全非易失性存储设备中存储的信息从第二信任区域传送到第一信任区域内的安全处理器;以及其中:
[0026] 所述第一集成电路和所述第二集成电路是设备的内部部分。
[0027] 在一个实施例中,提供内部安全令牌或者存储设备以安全地存储安全信息,比如指示了不同计数器的信息。内部安全令牌是作为设备一部分的令牌并且能够在设备组装过程中被初始化。但是安全令牌不在安全处理器的防篡改周界内。有利地,内部安全令牌由第二集成电路提供,该第二集成电路包含能够在一定时间段维护与安全有关的状态信息而无需连续供电的非易失性存储器。
[0028] 有利地,该设备包括共用组件模块上的安全信息处理和存储电路,使得不可从互连两个组件模块的连接器检测第一电路与第二电路之间的通信。
[0029] 另外,向第一电路仅提供易失性可重写存储器并且由此可能减少第一电路的复杂度而同时利用可以更好地适合于提供永久型可重写存储器的第二电路,这可能是经济的。例如,当前的数字集成电路(IC)块可能无法经济地适于提供闪存,而模拟电路如能量管理芯片可以相对简单地适于以很少的成本提供永久型存储设备。这在以数以千万计或者数以亿计的方式来制造产品如移动电话的情况下特别地便利。
[0030] 有利地,第一电路和第二电路适于建立将要在第一信任区域与第二信任区域之间使用的安全通信协议。该协议至少包含READ(读)和WRITE(写)命令以及密钥改变操作,例如WRITE KEY(写密钥)命令。因而,在一个实施例中,为该设备提供使得能够在第一信任区域与第二信任区域之间共享多个密钥的密钥状态管理。第二信任区域的非易失性存储设备可以包括指示了将将要在通信中使用的共享密钥的至少一个密钥状态变量。当改变了在第一信任区域与第二信任区域之间共享的密钥时维持和更新状态变量。
[0031] 本发明的一个实施例提供用于READ和WRITE操作的新近性(freshness)检验。对于READ操作:安全处理器可以包括随机值作为READ命令中的参数,使得它能够验证从第二集成电路接收的后续结果是新的,也就是没有重放。对于WRITE操作:可以通过在目标单元中包括旧值作为WRITE命令中的参数并且通过在第二集成电路中检验WRITE命令中的这一参数是否与目标单元中的旧值相同来执行新近性检验。如果不相同,则将不允许WRITE命令。
[0032] 在又一实施例中,第二集成电路适于仅将单个密码原语用于其所有密码操作。
[0033] 根据本发明的第二方面,提供一种用于初始化将要在第一集成电路与第二集成电路之间共享的安全密钥的方法,该方法包括:
[0034] 从安全密钥分发服务器向第一集成电路和第二集成电路分发将要在第一集成电路与第二集成电路之间共享的安全密钥,其中该方法包括:
[0035] 使用第一密钥来保护安全密钥从安全密钥分发服务器到第一集成电路的分发,该第一密钥是在第一集成电路与安全密钥分发服务器之间预先共享的密钥;以及[0036] 使用第二密钥来保护安全密钥从安全密钥分发服务器到第二集成电路的分发,该第二密钥是在第二集成电路与安全密钥分发服务器之间预先共享的密钥。
[0037] 根据本发明的第三方面,提供一种集成电路,包括:
[0038] 安全处理器,用于根据安全协议发出和加密将要传送到另一集成电路的命令,其中:
[0039] 安全协议包括密钥改变操作,通过该密钥改变操作能够改变在集成电路与所述另一集成电路之间共享的安全密钥。
[0040] 根据本发明的第四方面,提供一种可由集成电路的安全处理器执行的计算机程序,该计算机程序包括:
[0041] 用于根据安全协议发出将要传送到另一集成电路的程序代码;以及[0042] 用于使安全处理器启动密钥改变操作的程序代码,通过该密钥改变操作来改变在集成电路与所述另一集成电路之间共享的安全密钥。
[0043] 根据本发明的第五方面,提供一种集成电路,该集成电路包括:
[0044] 非易失性存储器,用于存储从另一集成电路接收的安全数据;以及[0045] 用于访问所述非易失性存储器的逻辑,其中集成电路适于将所述非易失性存储器上存储的并且借助密码术来保证安全的安全数据传送到所述另一集成电路,以及其中:
[0046] 集成电路适于使用单个密码原语。
[0047] 根据本发明的第六方面,提供一种可在集成电路中执行的计算机程序,该计算机程序包括:
[0048] 用于通过使用在集成电路与另一集成电路之间共享的密钥来保证与所述另一集成电路的通信安全的程序代码;以及
[0049] 用于在不同安全级的不同密钥状态之间改变的程序代码。
[0050] 根据本发明的第七方面,提供一种适于实现设备的能量管理的能量管理芯片,该能量管理芯片包括安全的非易失性存储器和逻辑以便为安全处理器提供安全令牌。
[0051] 根据本发明第四和/或第六方面的计算机程序可以存储于计算机可读介质上。根据本发明第四和/或第六方面的计算机程序可以通过信息信号来承载。
[0052] 有利地,处理器的操作和/或第二集成电路的逻辑可以借助写入到存储器中的计算机程序来编程,随后执行来自该存储器中的程序以控制相应设备的操作。有利地,可以仅在包括处理器和逻辑的设备的生成过程中写入该程序。可选地,可以在配置包括处理器和逻辑的设备以便它的正常使用时存储该程序。可以与服务或者最终使用相联系地执行在配置时的存储。
[0053] 根据本发明的又一方面,提供一种与本发明的第一方面相符的第一集成电路。第一集成电路被配置用以与第二集成电路一起操作而作为设备的内部部分。根据本发明的又一方面,提供一种与本发明的第一方面相符的第二集成电路。第二集成电路被配置用以与第一集成电路一起操作而作为设备的内部部分。
[0054] 从属权利要求涉及本发明的实施例。涉及本发明特定方面的从属权利要求中所含主题内容也适用于本发明的其它方面。

附图说明

[0055] 现在将参照附图通过例子来描述本发明的实施例:
[0056] 图1示出了根据本发明实施例的设备内具有两个分立信任区域的思想;
[0057] 图2示出了根据本发明实施例的移动电话组件模块的简化框图;
[0058] 图3示出了根据本发明实施例的初始化过程;以及
[0059] 图4示出了根据本发明实施例的蜂窝通信网络的移动台。

具体实施方式

[0060] 本发明的实施例被设计用以使安全处理器能够在内部安全令牌上安全地存储状态信息。术语内部安全令牌在这里意味着与现有技术中已知的在设备外部的安全令牌(比如可移动智能卡)相对照的在设备内部的安全令牌。然而,虽然内部安全令牌形成设备的一部分,也就是说它基本上是不可替代的,但是内部安全令牌没有集成到安全处理器。换而言之,本发明的这一实施例提出了在(设备)内部但是没有集成(到安全处理器)的安全令牌。
[0061] 图1示出了由第一信任周界110限定的第一信任区域101。安全处理器落在第一信任周界以内。在第一信任周界以内的区域是防篡改的。内部安全令牌不在第一信任周界以内,但是由第二信任周界120限定的第二信任区域102布置于设备以内并且内部安全令牌就实施于此。第二信任区域也是防篡改的。
[0062] 第二信任区域102与第一信任区域101相分离。第一信任区域的安全处理器经由在第一信任区域与第二信任区域之间实施的通信信道105与内部安全令牌通信。因而,在设备中实施通过通信信道来联合的两个不变和分立防篡改信任区域。
[0063] 安全处理器的一个例子是在比如蜂窝网络的移动电话这样的移动台上的安全基带ASIC芯片。内部安全令牌的一个对应例子是分立集成电路(IC)芯片,例如能量管理芯2
片。通信信道的一个例子是IC总线。
[0064] 通常通过将组装模块集放置在一起来制造手持便携设备如移动电话。根据一个有利的实施,包括安全处理器的芯片(或者电路)、互连通信信道以及包括内部安全令牌的分立芯片(或者电路)属于共同的组件模块。它们可以实施于共同的电路板上。可选地,它们可以属于经由通信信道连接在一起的不同组件模块。
[0065] 图2呈现了根据本发明实施例的移动电话组件模块200的简化框图。组件模块200是包括两个或者更多IC块的电路板或者其它一体化实体。IC块无论它们是否实际包含任何硅芯片在这里都称为集成IC芯片。
[0066] 组件模块200包括两个特定IC芯片:主ASIC 210和辅ASIC220,其中辅ASIC 220向主ASIC 210提供安全令牌。主ASIC 210可以是安全基带ASIC,即能够实现基带频率操作的数字IC芯片,而辅ASIC可以是能量管理芯片(也称为EMC),即能够实现能量管理的模拟IC芯片。
[0067] 主ASIC 210包括安全处理器211、安全随机存取存储器212如第1层高速缓存以及非易失性只读存储器213(ROM)。ROM 213包含用于在设备启动之后被加载时控制安全处理器211的操作的计算机程序代码214的部分。主ASIC 210经由存储器总线215连接到另一非易失性存储器216。非易失性存储器216在第一信任区域以外的非安全(非防篡改)区域上形成受保护的存储设备。因而,安全处理器仅在第一信任区域以外具有可重写非易失性存储器。受保护的存储设备216之所以是保密的是因为使用在第一信任周界以内已知的内部密钥来加密其信息。然而,受保护的存储设备在完整性上没有受保护,因为高级攻击者至少在原理上可能更换存储设备内所含信息。
[0068] 辅ASIC 220包含可重写非易失性存储器如闪存223。辅ASIC220还包括用于访问闪存的闪存访问逻辑222、用于实现与主ASIC210的通信的控制逻辑221以及耦合到控制逻辑221用于执行密码原语的密码块224。如果辅ASIC 220是蜂窝电话的能量管理芯片,则辅ASIC 220还包括实现普通能量管理功能所需要的其它适当块。这些功能涉及到控制以比典型蜂窝电话的数字电路可控制的电压更高的电压为部件能量供应。逻辑块221和222以及密码块224可以通过硬件、软件或者硬件和软件的组合来实施。
[0069] 应当认识到并非必须在模拟芯片上实施辅ASIC 220。反言之,在具有可重写永久型存储器的组件200内集成的数字ID将同样可用。另外,本发明的实施例对于其它类型的IC块同样适用。
[0070] 主ASIC 210可以是任何适当的如下IC,该IC能够运行计算机程序代码,使得当它在第一信任周界110以内、也就是在第一防篡改信任区域101上运行应用时难以干预它的执行。信任区域101包含必要的寄存器和存储器区域,这些区域通常包含安全数据。辅ASIC 220具有第二信任区域102,该区域包含逻辑电路221和222、密码块224以及可重写非易失性或者永久型存储器223中相关的部分(如果不是全部)。逻辑电路222有利地提供仅对永久型存储器223中相关部分的受控访问。并非全部永久型存储器223必须在安全周界120内。然而,通常将是这样的情况。
[0071] 控制逻辑电路221能够通过密码块224所提供的密码手段来实现与安全处理器211的安全通信。通过使用密钥在密码上保护通信信道105来实现安全通信。本发明为辅ASIC提供不同的密钥状态值。什么密钥用于保证通信信道安全取决于辅ASIC 220所在的当前密钥状态。根据硬连线密钥K_H的密钥状态,使用组密钥K_G或者专用密钥K_S。然而应当注意,虽然保证经由通信信道105进行的通信安全,但是通信信道本身不在提及的任何信任周界之内而就这一意义而言落在未受保护的区域上。这同样适用于受保护的存储设备216。
[0072] 在初始化过程中初始化主ASIC 210和辅ASIC 220以作为安全对一起工作。在芯片制造过程中,在辅ASIC 220的控制逻辑221内对全局硬接线密钥K_H进行编码(或者烧制)并将标识符ID_S分配给芯片。标识符ID_S是唯一地标识辅ASIC 220的唯一标识符。可选地,标识符ID_S是组标识符。在后续步骤中,将组密钥K_G设置(或者写入)到辅ASIC。组密钥按照定义是例如成批码片这样的组所特有的密钥。当设置了组密钥K_G时,将辅ASIC从它将硬接线密钥K_H用于加密的密钥状态(“硬接线密钥状态”)切换到将组密钥K_G用于加密(“组密钥状态”)的密钥状态。有利地,当制造芯片时实现组密钥K_G的设置以及从“硬接线密钥状态”到“组密钥状态”的有关切换。
[0073] 有利地,专用密钥K_S在芯片制造过程中并不设置到辅ASIC而只有以后当在电话工厂组装线中将组装模块200放置在一起时或者将包含组件模块200的设备放置在一起时才设置到辅ASIC。这一初始化部分也能够在服务点进行。
[0074] 图3示出了根据本发明实施例的初始化过程。图3的初始化过程的目的在于将共享密钥或者保密密钥也就是专用密钥K_S分配给主ASIC 210的安全处理器以及它的安全令牌即辅ASIC 220。组装线中的安全服务器310充当密钥分发服务器。
[0075] 在步骤S1中,主ASIC 210读取辅ASIC 220的标识信息。作为响应(步骤S2),它获得辅ASIC 220的标识符ID_S。可选地,主ASIC 210也可以从辅ASIC 220读取当前密钥状态信息。在步骤S3中主ASIC 210向安全服务器310请求将在ASIC 210与220之间共享的专用密钥K_S。这一请求有利地包含辅ASIC 220的密钥状态、辅ASIC 220的标识符ID_S和主ASIC 210的唯一标识符ID_P。可选地,可以使用密钥K_P即在安全服务器310与主ASIC 210之间预先共享的保密密钥来认证该请求。基于收到的信息,安全服务器310形成或者选择专用密钥K_S。安全服务器310可以具有它在其中维护与各密钥有关的信息的数据库。例如,在这一情况下安全服务器310可以将标识符ID_P和ID_S、辅ASIC 220的密钥状态和专用密钥K_S联系在一起。
[0076] 在步骤S4中,安全服务器310发回响应到主ASIC 210。该响应包括两个部分。第一部分是用于将由主ASIC 210发到辅ASIC 220的WRITE KEY命令的净荷。它包括使用密钥K_G来加密的专用密钥K_S。第二部分包括使用密钥K_P来加密的专用密钥K_S。在步骤S5中通过以上述第一部分发送WRITE KEY命令作为净荷而将专用密钥传送和存储到辅ASIC 220的逻辑,并且将辅ASIC 220的密钥状态相应地更新到“专用密钥状态”。同时,主ASIC 210还对第一部分进行解密并且将它的K_S副本存储于其受保护的存储设备216中。在步骤S6中,作为对WRITE KEY命令的反馈将成功或者失败代码发送到主ASIC 210。密钥K_S的使用现在准备就绪。
[0077] 应当注意尽管上文描述了用于改变辅ASIC 220的密钥状态使得它从“组密钥状态”切换到“专用密钥状态”的初始化过程,但是类似过程能够可选地用来将辅ASIC 220的密钥状态从“硬接线密钥状态”改变成“组密钥状态”。就以上描述所涉及的而言,只需用K_H代替K_G和用K_G代替K_S。所有其它部分应当保持相同。有利地,在制造辅ASIC之时执行从K_H密钥状态变成K_G密钥状态。但是也能够在电话工厂完成这一点。K_G(以及类似地,K_H)的目的在于保护K_S(以及类似地,K_G)转移到辅ASIC。在这些密钥之中,只有密钥K_H是硬接线的,其它密钥没有硬接线而仅由WRITE KEY命令来设置。
[0078] 正如前文中提到的,共享密钥K_S用来保证主ASIC 210与辅ASIC 220之间的通信安全。因而,在一个实施例中,通过使用专用密钥K_S的对称密钥密码算法例如对称DES算法来保障READ和WRITE命令的安全,这些命令属于将要在ASIC之间使用的协议并且用来读取和写入辅ASIC 220的永久型存储器223上的安全状态信息(比如绑定到单调递增的PIN访问常数计数器的信息)。否则,READ或者WRITE命令的基本使用方案对应于在US2003/0079122A1中呈现的方案。主ASIC 210将协议命令发送到辅ASIC 220而辅ASIC 220通过发送对命令的响应对主ASIC 210做出响应。
[0079] 安全处理器211使用K_S对将在完整性上受保护的数据进行加密并且将数据存储于受保护的非易失性存储设备216中。也使用K_S对这一数据或者它的关键部分进行加密并且将该数据或者部分存储于辅ASIC 220的存储器223中。当电源接通时,安全处理器211比较这些存储器的内容。如果例如已经篡改存储设备216,则将在比较内容时通知这一点。
[0080] 在下文中讨论特定的实施问题。
[0081] 首先,写操作(WRITE或者WRITE KEY)不是原子性(atomic)的。写操作有可能失败。失败的写操作可能造成辅ASIC达到不具确定性的密钥状态。在该情况下,辅ASIC例如将不知道使用哪个密钥。为了缓解这一问题,根据本发明的一个实施例,内部安全令牌上的至少两个分立存储器位置(而不是一个)用来跟踪它的密钥状态,该状态指示了正在使用哪个密钥。这些存储器位置包含指示了在用密钥状态或者密钥的密钥状态变量。在一个实施例中,向各密钥状态变量添加冗余。通过至少部分地以魔数(magic value)的形式呈现密钥状态变量的值来添加冗余,该魔数是基本上比“实际”值更长的值。如果密钥状态变量具有除了魔数之外的任何值,则设备被布置用以恢复到使用更保险的安全级密钥(例如,如果将密钥状态从“组密钥状态”更新到“专用密钥状态”的过程遇到WRITE失败则继续使用K_G)。另一实施例提供用以确认WRITE操作是否已经成功的手段。在这一实施例中,在发出WRITE命令之后,发出任意数目的READ命令以验证WRITE命令的结果。
[0082] 其次,出于调试目的,应当有可能通过将内部安全令牌返回到已知状态来重置该内部安全令牌,使得外部测试设备可以读取和写入该令牌上的数据。自然,应当可能实现这一点而无损于系统在正常操作中的安全性。为了实现这一点,在一个实施例中,布置重置操作使得它先将一个密钥状态变量归零、然后抹去存储的密钥并转入内部安全令牌,从而迫使设备使用硬接线密钥(或者根本不使用密钥)。在一个实施例中,布置内部安全令牌使得只要设备上电时,如果这一密钥状态变量不是魔数,就抹去密钥。
[0083] 第三,如果内部安全令牌没有内部安全令牌内随机性的源头,则只要涉及到重放攻击,这就可能造成困难。如前所述,在安全处理器与内部安全令牌之间的通信被加密并且在完整性上受保护。接着将分别针对读操作和写操作来讨论随机性源头的缺乏。
[0084] -读操作:内部安全令牌并非必须进行重放检测,因为安全处理器能够通过在READ命令中包括临时数(nonce)来实现这一点。
[0085] -写操作:重放检测将适于防止重放攻击。在一个实施例中,辅ASIC验证:除了新值之外,收到的WRITE命令也包括在目标存储器位置存储的当前值(或者在其它实施例中,也包括在其它存储器位置的值或者包括将相互已知的函数作用于在一些存储器位置的值的结果)。否则就不允许WRITE操作。这保证了有限形式的重发保护:只要在存储器位置存储的值序列没有循环,攻击者就不能通过重放旧的WRITE命令来攻击系统。在另一实施例中,为了减少攻击者通过重放READ命令来确定存储器位置是否已经改变的机会,辅ASIC具有线性反馈移位寄存器(LFSR)并且将来自LFSR的一些位添加至答复。使用一个或者多个存储器位置的内容来初始化LFSR并且通过时钟来驱动LFSR。
[0086] 以这一方式,针对READ和WRITE操作而言保证了通信信道105的观察方不能轻易地确定参数传递的是什么或者效果是什么。
[0087] 第四,使用基本密码原语来实施ASIC上的密码处理。如果辅ASIC在资源上受制约,则在ASIC之间的安全通信协议应当如下方式来设计:即使得能够使用尽可能少的密码原语来实现辅ASIC上所有必要的密码处理,但是仍然保存协议的必需性质如机密性和消息完整性。例如如下所述那样使用适当的对称加密算法如AES(高级加密标准)、DES(数据加密标准)或者三重DES来实现这一点。对称加密算法包括前向变换(通常用于加密)和反向变换(通常用于解密)。
[0088] 对于在主ASIC中生成的并且发送到辅ASIC的消息:
[0089] -通过在密码块链接(CBC)模式下使用前向变换作为基本操作来实现机密性;以及
[0090] -通过在CBC模式下使用CBC MAC(消息认证代码)但是使用反向变换作为基本操作来实现完整性。
[0091] CBC模式是本领域技术人员通常已知的并且例如在2001年8月出版的第5版、ISBN为0-8493-8523-7的由Alfred J.Menezes等 人著作 的”Handbook of Applied Cryptography”一书中更仔细描述的操作模式。
[0092] 对于在辅ASIC中生成的并且从辅ASIC发送的消息:
[0093] -通过使用反向变换来实现机密性;以及
[0094] -通过使用以反向变换作为基本操作的CBC MAC来实现完整性。
[0095] 这样,辅ASIC只需实施对称加密原语的反向变换。主ASIC需要实施前向变换和反向变换。
[0096] 当对称加密算法是三重DES时,在辅ASIC中依次地使用基本DES算法的三个反向变换。这样,辅ASIC只需实施DES的反向变换。
[0097] 如果从辅ASIC发送的消息长度仅有一个块大小,则无需链接。
[0098] 图4示出了根据本发明实施例的蜂窝通信网络的移动台的非常简化的示意图。移2
动台400除了包括安全基带ASIC 210之外还包括能量管理芯片220和IC总线105、用户接口410和射频(RF)部分420。用户接口410和射频部分420耦合到基带ASIC 210。用户接口包括用于使用设备的键盘和显示器。键盘能够例如用于向设备输入PIN。根据PIN尝试,安全基带ASIC 210在能量管理芯片220的易失性存储器中维持状态信息(在这里是不成功的PIN尝试的次数)。RF部分用于与无线网络430的无线射频通信。
[0099] 已经描述了本发明的特定实施方式和实施例。对于本领域技术人员不言而喻,本发明不限于上文呈现的实施例细节,而是能够在不脱离本发明的特征情况下使用等效手段在其它实施例中实施本发明。描述了多个特征作为前文中例子的一部分,而只要在技术上有可能,这些特征应当被视为可选的并且可与说明书的任何其它不同例子相组合。例如,本发明也使用于各种电子设备中,特别是使用于便携电子书、PDA设备、游戏设备、音乐播放器、能够提供对(租赁)内容的受限访问的具有DRM功能的置顶盒以及GPS定位设备。因此,本发明的范围仅由所附专利权利要求来限制。