防止克隆的设备绑定快擦写/启动引导的制作方法

文档序号:7598341阅读:113来源:国知局
专利名称:防止克隆的设备绑定快擦写/启动引导的制作方法
优先权要求本申请要求美国临时专利申请60/510,696,2003年10月10日提交,题目是“防止克隆的设备绑定快擦写/启动引导”的优先权,这里一并作为参考。
背景技术
移动电话一般包括可以被执行以操作该移动电话的软件应用程序。这些软件应用程序除使移动电话具有话音通信能力外,还可以使移动电话具有各种其它能力,例如文本信息传递和数码照片的拍摄。移动电话启动引导(boot)映像可以包括操作系统和任何各种能够在移动电话上运行的软件应用程序。移动电话的价格可以随着嵌入在移动电话的快擦写存储器中的启动引导映像质量的变化而变化。高质量的启动引导映像可以使特定移动电话比具有更低质量启动引导映像的移动电话贵得多。
德州仪器公司(Texas Instruments)所拥有的开放多媒体应用平台(“OMAP”)包括在延长电池寿命的同时使通信设备能够处理数据和软件应用程序的微处理引擎。当前OMAP设备(例如,型号161x、171x、73x)中存在的机制利用在多个设备中共享的密钥来支持启动引导映像的快擦写和启动引导,该密钥帮助验证启动引导映像的真实性,但是并不防止另外的电话上未经授权地复制和重用启动引导映像,导致一个可能突破的安全缺口。这样的安全缺口可能使未经授权的实体从昂贵的移动电话中复制启动引导映像并在廉价的移动电话中还原该启动引导映像。以这种方式,未经授权的实体可以将昂贵的移动电话克隆到无数的廉价移动电话并从出售这些廉价移动电话中受益。
除非法复制启动引导映像外,未经授权的实体也可能篡改启动引导映像的内容以避开防止使用被盗移动电话的现有安全措施。例如,每个移动电话启动引导映像包括作为全球移动通信系统(“GSM”)和第三代移动通信(“3G”)网络的移动电话的识别码的国际移动设备标识(“IMEI”)号。IMEI号用于准入或拒绝接入蜂窝网络和网络的服务。一般地,如果移动电话被盗,则移动电话拥有者可以与他或她的蜂窝服务提供商(例如,Sprint、Verizon、AT&T)联系,将该移动电话加入到GSM/3G黑名单中。在黑名单中挂了号的移动电话将被拒绝接入该蜂窝网络。因此,盗取移动电话的未经授权的实体就不能够使用该移动电话接入该网络,因为该移动电话的IMEI号已经加入到了黑名单中。然而,有经验的未经授权的实体可以容易地将被盗移动电话的IMEI号改变成黑名单上找不到的号,由此用被盗移动电话接入该蜂窝网络。
每年,移动电话制造商由于移动电话的克隆和篡改而失去相当数量的收入。因此,希望防止移动电话的克隆和篡改。

发明内容
上面提出的问题大部分可以通过将启动引导映像和启动引导映像的各种内容绑定到移动通信设备的方法和设备得到解决。一个示例的实施例可包含将启动引导映像下载到移动通信设备上并生成设备绑定证书(“DBC”)。DBC最好包括使用散列消息鉴权码(“HMAC”)算法和特定于该设备的密钥生成的鉴权码。该方法可以进一步包括在启动引导映像上存储DBC,因此将启动引导映像绑定到该移动通信设备上。


为了对本发明的示例实施例进行详细描述,现在将参照下列附图图1图解了根据本发明一个实施例的移动通信设备的方框图;图2图解了图1的移动通信设备上实现的示例处理过程;图3a图解了根据本发明优选实施例的快擦写处理的启动引导映像的方框图;图3b图解了根据本发明优选实施例的启动引导处理的启动引导映像的方框图;而图4图解了根据本发明优选实施例的设备绑定证书(“DBC”)的鉴权过程的流程图。
符号和术语下面的描述和权利要求中使用的某些术语表示特定系统组成部分。本领域的技术人员会理解,各种公司可以使用不同的名称表示同一组成部分。本文件并不旨在区分名称而不是功能不同的组成部分。在下面的描述和权利要求中,以开端方式使用术语“包含”和“包括”,因此应当被解释成“包含,但并不限于......”的意思。同样,术语“连接”旨在表示直接或间接的电气连接。因此,如果第一个设备连接到第二个设备上,则该连接可能是直接电气连接,或者是通过其它的设备和连接进行的间接电气连接。
具体实施例方式
下面的讨论涉及本发明的各种实施例。尽管可以在这些实施例中优选出一个或多个实施例,但是所公开的实施例不应当被诠释为、或被用来限制公开内容(包含权利要求在内)的范围。此外,本领域的技术人员应当理解的是,下列描述具有广泛的应用,对任何实施例的讨论仅意味着是该实施例的示例,而不是试图宣布将包含权利要求在内的公布范围限定到该实施例上。
根据优选实施例,针对移动通信设备提供启动引导映像和启动引导映像内容的逐个设备的绑定。可以操纵已经下载到移动电话的启动引导映像,使得该启动引导映像不能够被复制、变更或转移到任何其它的移动电话上。以这种方式,启动引导映像被“绑定”到该移动电话上。启动引导映像一旦被绑定到该移动电话上,仅仅对这个特定的移动电话是有效的。启动引导映像的内容同样可以以类似的方式被绑定到移动电话上。
启动引导映像的逐个设备的绑定通过设备绑定证书(“DBC”)来完成。根据优选实施例,使用DBC将启动引导映像绑定到特定移动电话上,使得该启动引导映像不能够被转移、改变或复制到另一个移动电话上。在绑定过程中,包括散列消息鉴权码(“HMAC”)的私有数据被存储在DBC中,继而使用秘密密钥(Secret key)对DBC进行加密。在优选实施例中,不允许移动电话在没有首先获取HMAC中包含的DBC的情况下使用该启动引导映像。因此HMAC具有将启动引导映像绑定到该移动电话上的功能。而且,该电话不能在没有秘密密钥的情况下访问DBC中的HMAC,只有启动引导映像绑定到的电话具有秘密密钥。因此,只有带有正确秘密密钥的移动电话可以自由地访问启动引导映像的内容。于是,启动引导映像和启动引导映像的所有内容的逐个设备的绑定通过DBC来完成。
现在参照图1、2和图3a,图1示出了包括与UART/USB端口174连接的OMAP处理器172、快擦写存储器178并且包括ROM代码(即片上固件)176的移动电话170的优选实施例。图2图解的是描述将启动引导映像绑定到移动电话170的处理过程的流程。图3a图解了启动引导映像300,包括描述启动引导映像300的内容的TOC字段302、包括因下述加密原因而使用的密钥的密钥头304,和作为快擦写存储器装载程序308的头的公共头306,公共头306包括受保护应用程序(“PA”)318。启动引导映像300也可以包括其它字段310、PA 312和空设备绑定证书(“DBC”)字段314。由于受保护应用程序在安全模式的环境中运行,因此得以命名受保护应用程序。安全模式环境可以定义为基于硬件、在一般情况下防篡改的安全运行环境。
在移动电话制造期间,在移动电话已经出售给消费者之后,或在任何其它时间,可以进行绑定过程。一般来说,绑定过程以在快擦写处理期间DBC的创建为开始,然后用这个DBC填充的空DBC字段314,继而在移动电话170上存储启动引导映像300。更具体地,绑定过程的开始可以是通过ROM代码176鉴权快擦写存储器装载程序308以确保装载程序308的有效性(块202)。一旦经过鉴权,快擦写存储器装载程序308通过UART/USB端口174或任何适当的设备下载启动引导映像300(块204)。启动引导映像300和其它的信息可以由制造商或任何适当的实体从任何适当的资源(例如制造商的计算机系统)中下载。在指定项(例如,包括IMEI号的IMEI证书;SIMlock文件)被绑定到移动电话170上的情形中,这些项可以以和下载启动引导映像300的方式类似的方式进行下载。在下载之前,IMEI证书最好由制造商用原始设备制造商接口(“OEMI”)的私有密钥进行签名。OEMI公开密钥和IMEI证书都被下载到该移动电话170上,使得该移动电话170可以在稍后时间使用OEMI公开密钥验证该IMEI证书。
随后可以载入快擦写存储器装载程序308,并调用PA 318(块206)。当调用PA 318时,快擦写存储器装载程序308发送各种参数,包括指向启动引导映像300的各部件(例如公共头306)的指针以及在公共头306中发现的创建者ID(Creator ID)和应用ID(ApplicationID)的值。创建者ID描述DBC的拥有者或建立者,应用ID作为建立DBC的应用的标识。PA 318可以在必要时使用这些指针和值。
PA 318的至少一个目的是计算DBC(块208),可选地使用随机密钥对DBC进行加密(块210),并且将该DBC传递到快擦写存储器装载程序以进行进一步的处理(块212)。如前述所讨论的,PA318在安全模式环境中工作。PA 318可以开始生成DBC如下HMAC=HMACKEY(SHA-1(公共头306+启动引导装载程序)‖公开芯片ID‖创建者ID‖应用ID‖保留字段),其中“HMAC”表示散列消息鉴权码,符号“‖”表示串联,公开芯片ID(PublicChip ID)用作OMAP处理器172的公开标识符,保留字段含有任何信息(例如,IMEI证书),启动引导装载程序含在启动引导映像300中,它将在下面的图3b中进行描述。特别是,公共头306和启动引导装载程序首先使用下面将描述的公知SHA-1算法一起进行杂凑。结果与各种如上所示的数据(例如,公开芯片ID、创建者ID)进行串联。使用公知的HMAC加密算法,用密钥(即KEY)对最终的串联进行杂凑,其中KEY的生成如下KEY=SHA-1(芯片特定ID‖创建者ID‖应用ID),其中芯片特定ID是由ROM代码176或其它系统固件创立并仅在安全模式内(例如,PA执行期间)可用的秘密标识。安全的散列算法SHA-1用于计算消息或数据文件的“浓缩表示(condensedrepresentation)”。“浓缩表示”具有固定的长度并被称为“消息摘要”或“指纹”。产生两个具有相同消息摘要的消息在计算上是不可行的。这种唯一性使消息摘要能够作为该消息的“指纹”。例如,可以使用SHA-1通过将该文件散列与原始文件散列进行比较以确保下载或接收的文件的完整性。任何要求完整性的消息或类似的构造可以以这种方式进行验证。
PA 318通过使用PA 318计算出的或从快擦写存储器装载程序308接收的信息装配图3b所例举的DBC来完成该DBC的计算。特别是,完成的DBC可以包括公开芯片ID 322、创建者ID 324、应用ID326、启动引导装载程序/公共头散列328、保留字段330和上述产生的HMAC 332。如果在块204中IMEI证书被下载,由保留字段330可以用IMEI证书330填充。保留字段330也可以用任何其它特定于设备的信息填充。然后PA 318可选择地用随机秘密密钥K加密DBC,密钥K计算如下K=SHA-1(芯片特定ID‖创建者ID‖应用ID)。
用随机秘密密钥K对DBC进行加密的处理保护了DBC的所有内容(例如,IMEI证书330)。一旦DBC进行了加密或者绕过该加密步骤,PA 318将DBC传递到快擦写存储器装载程序308以进行进一步的处理。
快擦写存储器装载程序308从PA 318接收DBC并将DBC插入到空DBC字段314中(块214),由此在启动引导映像300内建立DBC 314。因此快擦写存储器装载程序308通过将启动引导映像300快擦写(即写入)到移动电话170的快擦写存储器178中(块216)来完成绑定过程。
如图4所例举的那样,直到DBC 314在启动引导时间(即每当移动电话打开时)被鉴权,包括DBC 314并被绑定到移动电话170上的启动引导映像300才能够使用。也就是说,除非DBC 314首先进行了鉴权,否则含在启动引导映像300中的操作系统将不能被装载,因此防止终端用户使用该移动电话170。
现在参照图3b和图4,图3b是对启动引导时间的启动引导映像300的图解,启动引导映像300包括TOC字段302、密钥(KEY)头字段304、公共头306、包括PA 320的启动引导装载程序308、其它字段310、PA 312和DBC 314。如上所述,DBC 314包括公开芯片ID322、创建者ID 324、应用ID 326,启动引导装载程序/公共头散列328、可能包括IMEI证书330的保留字段330和HMAC 332。图4图解的是在启动引导时间对启动引导映像300进行鉴权的过程的流程图。特别是,启动引导时间的鉴权过程可以通过片上(on-chip)ROM代码176对密钥头304和公共头306的验证为开始(块402)。使用包括指向DBC 314、公共头306和启动引导装载程序318的指针和公共头306中的创建者ID 324和应用ID 326值的各种参数,启动引导装载程序318可以装载和调用PA 320(块404),使得PA 320在必要时可以使用这些指针和值。
因此PA 320可以验证DBC 314的完整性,并且如果可用的话,通过使用密钥K1首先解锁(即解密)DBC 314(如果DBC 314进行了加密)并且使用与IMEI证书330并行地下载到该移动电话的OMEI公开密钥对IMEI证书330进行验证,PA 320还可以验证IMEI证书330的完整性(块406)。密钥K1计算如下K1=SHA-1(芯片特定ID‖创建者ID‖应用ID)。
尽管进行单独的计算,然而启动引导过程期间用于对DBC 314解密的密钥K1与快擦写过程期间用于对DBC 314进行加密的密钥K相同。在加密过的DBC 314被解锁(如果可用)之后,PA 320计算HMAC1=HMACKEY1(SHA-1(公共头306+启动引导装载程序318)‖公开芯片ID 322‖创建者ID 324‖应用ID 326‖保留字段),其中从DBC 314中获得创建者ID 324和应用ID 326,而其中KEY1计算如下KEY1=SHA-1(芯片特定ID‖创建者ID‖应用ID)。
随后PA 320将上述计算出的HMAC1与存储于DBC 314中的HMAC相比较以测试匹配,并将比较的结果传递到启动引导装载程序318(块408)。匹配表明启动引导映像300没有被复制或改变,可以为装载有启动引导映像300的移动电话170所使用。匹配也表明启动引导映像300的内容(例如,IMEI证书330)没有被复制或更改,而且它们是可信的。在这种情况下,按照正常的状态继续启动引导过程。相反,不匹配则表明启动引导映像可能已经被盗、被更改或复制。因此,可能危及启动引导映像300内容(例如,IMEI证书330)的完整性。在这种情形下,就不能继续该启动引导过程。启动引导装载程序318从PA 320接收这种比较的结果,并且相应继续下去(块410),由此完成启动引导时间的鉴权过程。
尽管这里所公开的主题是依据OMAP 161x平台进行描述的,但是可以使用OMAP 73x平台、OMAP171x平台或其它各种平台。上面的讨论旨在举例说明本发明的原理和各种实施例。虽然针对IMEI证书的背景讨论了启动引导映像内容的逐个设备的绑定的技术,然而该技术可以应用到任何特定于设备的数据。此外,公开的范围并不限于上述启动引导映像内容。上述的启动引导映像可以含有任何各种内容,例如用于调试目的的R & D证书,在启动引导之后安全随机访问存储器中存在的基本受保护应用程序(“PPA”)、PPA证书和任何其它适当的项。同样,虽然上述主题主要依据对移动电话的适用性进行讨论,然而该主题可以用在任何移动通信设备上。一旦上述公开完全被本领域的技术人员所理解,显然他们对其可以进行大量的变更和修正。下列的权利要求试图包含所有这样的变更和修正。
权利要求
1.一种方法,包括将启动引导映像下载到移动通信设备;生成设备绑定证书(“DBC”),所述DBC包括使用散列消息鉴权码算法和特定于所述设备的密钥生成的鉴权码;以及将DBC存储到启动引导映像中。
2.如权利要求1所述的方法,其中生成DBC的步骤包括使用只读存储器(“ROM”)代码。
3.如权利要求1所述的方法,其中生成DBC的步骤包括在安全运行环境中运行受保护应用程序。
4.如权利要求1所述的方法,其中生成DBC的步骤包括在所述DBC中存储设备特定信息。
5.如权利要求4所述的方法,进一步包括在启动引导过程期间,对所述设备特定信息的真实性、完整性和所述设备特定信息到移动通信设备的唯一关联进行验证。
6.如权利要求5所述的方法,进一步包括如果验证不成功,则中断所述启动引导过程。
7.如权利要求4所述的方法,其中存储设备特定信息的步骤包括存储国际移动设备标识号。
8.如权利要求4所述的方法,其中设备特定信息包括至少一个SIMlock文件。
9.如权利要求1所述的方法,进一步包括对DBC进行加密。
10.如权利要求1所述的方法,进一步包括对鉴权码的真实性和完整性进行验证。
11.如权利要求10所述的方法,其中对鉴权码的真实性和完整性进行验证的步骤包括如果所述验证不成功,则防止完成启动引导过程。
12.一种移动通信设备,包括快擦写存储器;利用通过散列消息鉴权码算法和特定于所述设备的密钥生成的鉴权码,被绑定到所述快擦写存储器的启动引导映像;以及包括ROM代码并且与快擦写存储器相连的OMAP处理器,所述ROM代码用于对所述鉴权码的真实性和完整性进行验证。
13.如权利要求12所述的设备,其中如果所述验证不成功,则ROM代码防止完成启动引导过程。
14.如权利要求12所述的设备,其中启动引导映像包括设备特定信息。
15.如权利要求14所述的设备,其中ROM代码对所述设备特定信息的真实性和完整性进行验证,并且如果所述验证不成功,则防止完成启动引导映像。
16.一种移动通信设备,包括快擦写存储器;和包括ROM代码并且与快擦写存储器连接的处理器,所述ROM代码用于生成设备绑定证书(“DBC”);对DBC加密;以及在启动引导映像上存储DBC;其中所述DBC包括使用散列消息鉴权码算法和特定于所述设备的密钥生成的鉴权码。
17.如权利要求16所述的设备,其中ROM代码对鉴权码的真实性和完整性进行验证,并且如果所述验证不成功,则防止完成启动引导映像。
18.如权利要求16所述的设备,其中DBC包括设备特定信息。
19.一种计算机可读介质,含有可被计算机系统执行的指令,并且当执行所述指令时,实现包括以下步骤的方法生成设备绑定证书(“DBC”),所述DBC包括使用散列消息鉴权码算法和特定于所述设备的密钥生成的鉴权码;以及将DBC存储到启动引导映像中。
20.如权利要求19所述的计算机可读介质,其中生成DBC的步骤包括在所述DBC中存储设备特定信息。
全文摘要
方法包括将启动引导映像下载到移动通信设备上并生成设备绑定证书(“DBC”)。DBC最好包括利用散列消息鉴权码算法和特定于设备的密钥生成的鉴权码。该方法可以进一步包括在启动引导映像上存储DBC,因此将启动引导映像绑定到该移动通信设备上。快擦写存储器装载程序下载启动引导映像(204)并调用受保护应用程序(206)。受保护应用程序计算出DBC(208),可选择地对DBC用随机密钥(210)进行加密,并将它传递到快擦写存储器装载程序(212)。快擦写存储器装载程序在DBC字段中写入DBC并将启动引导映像载入移动通信设备(216)的快擦写存储器中。
文档编号H04M1/67GK1606374SQ20041008352
公开日2005年4月13日 申请日期2004年10月9日 优先权日2003年10月10日
发明者纳兰达尔·善卡尔, 尔朵·派克索伊, 热罗姆·L·阿泽马 申请人:得州仪器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1