从非本地存储器安全地引导和配置子系统的制作方法

文档序号:7849233阅读:142来源:国知局
专利名称:从非本地存储器安全地引导和配置子系统的制作方法
技术领域
本发明的各实施例一般涉及数据处理系统领域;更具体而言,涉及用于从非本地存储器安全地引导和配置子系统的方法。
背景技术
诸如智能电话设备之类的多功能设备最近越来越流行。通常,多功能设备包括具有不同功能的多个处理器。例如,智能电话设备包括通用处理器和无线通信处理器。这些处理器中的每一个通常都包括与它相关联的用于存储与相应的处理器相关联的任何信息或数据(包括初始化代码映像等等)的非易失性存储器。然而,这样的非易失性存储器会产生额外成本并导致设备具有更大的尺寸。

发明内容
根据一个方面,具有无线通信处理器(例如,蜂窝式处理器)和应用处理器(例如,诸如中央处理单元或CPU之类的通用处理器)的多功能计算设备共享与应用处理器相关联的或附接到应用处理器的存储设备。这样的多功能计算设备的示例可以是具有蜂窝电话和手持式计算机功能的智能电话设备。没有直接地与无线通信处理器(下面简称为“无线处理器”)相关联或附接到无线通信处理器的特定存储设备。相反,无线处理器经由诸如通用串行总线-高速芯片间(USB-HSic)链路之类的高速通信链路与应用处理器进行通信,以访问存储在与应用处理器相关联的存储设备(例如,闪存设备)中的代码和数据。根据另一方面,响应于引导命令,只读存储器(ROM)引导加载器从无线通信处理器的安全ROM中执行,其中,ROM引导加载器初始化与便携式设备的无线通信处理器相关联的硬件。ROM引导加载器经由将所述无线通信处理器与所述应用处理器耦合的内部总线与所述便携式设备的应用处理器建立通信链路。ROM引导加载器通过所述通信链路从非易失性存储设备获取引导代码映像,其中,所述非易失性存储设备与所述应用处理器相关联并被所述应用处理器经由在与所述应用处理器相关联的第一随机存取存储器(RAM)内执行的第一操作系统(OS)访问。ROM引导加载器认证引导代码映像,并在成功地认证引导代码映像之后,ROM引导加载器将引导代码映像启动到与无线通信处理器相关联的第二 RAM中,以为无线通信处理器建立第二 OS。结果,经由所述内部总线上的所述通信链路来访问与应用处理器相关联的非易失性存储设备,无线通信处理器不必维护单独的非易失性存储设备。根据再一方面,响应于更新便携式设备的软件组件的命令,生成会话密钥。使用从唯一地标识便携式设备的唯一标识符(UID)导出的存储密钥来加密会话密钥。生成在其中嵌入了由存储密钥加密的会话密钥的恢复blob (recovery blob,恢复二进制大型对象)。另外,会话密钥还使用公钥/私钥对的公钥来加密。此后,将所述恢复blob和由所述公钥加密的所述会话密钥发送到授权服务器,其中所述授权服务器被配置成通过使用所述公钥/私钥对的私钥来解密所述会话密钥,来恢复所述会话密钥。随后,响应于从供应服务器下载的软件组件和恢复blob,通过使用存储密钥来解密恢复blob,从恢复blob来恢复会话密钥,其中软件组件是通过由供应服务器从授权服务器接收到的会话密钥来加密的。此后,通过使用从所述恢复blob恢复的所述会话密钥来解密经加密的软件组件,来恢复所述软件组件,其中所述软件组件将被安装在所述便携式设备中。根据各个附图,以及随后的详细描述,本发明的其他特征将变得显而易见。


本发明的各实施例是作为示例说明的,而不仅限于各个附图的图形,在附图中,类 似的附图标记表示类似的元件。图I是示出了根据本发明的一个实施例的多功能计算设备的框图。图2是示出了根据一个实施例的无线处理器的存储映像的框图。图3是示出了根据本发明的一个实施例的用于引导无线通信处理器的方法的流程图。图4是示出了根据本发明的另一实施例的多功能计算设备的框图。图5是示出了根据本发明的一个实施例的用于生成RF校准数据的方法的流程图。图6是示出了根据本发明的一个实施例的用于更新RF校准数据的方法的流程图。图7是示出了根据本发明的一个实施例的用于供应计算设备的系统配置的图示。图8是示出了根据本发明的一个实施例的用于更新供应数据的方法的流程图。图9示出了可以与本发明的一个实施例一起使用的数据处理系统的示例。
具体实施例方式下面将参考下面所讨论的细节来描述本发明的各实施例以及各方面,各个附图将示出各实施例。下面的描述和图形只是本发明的说明,而不作为对本发明的限制。描述了很多具体细节,以便全面地理解本发明的各实施例。然而,在某些实例中,没有描述已知的或常规的细节,以便提供对本发明的各实施例的简洁的讨论。在本说明书中对“一个实施例”或“实施例”的引用意思指和该实施例一起描述的特定特征、结构或特性可以被包括在本发明的至少一个实施例中。在本说明书中的不同位置出现短语“在一个实施例中”不一定都是指同一个实施例。根据某些实施例,具有无线通信处理器(例如,蜂窝式处理器)和应用处理器(例如,诸如中央处理单元或CPU之类的通用处理器)的多功能计算设备共享与应用处理器相关联的或附接到应用处理器的存储设备(例如,非易失性存储设备)。这样的多功能计算设备的示例可以是具有蜂窝电话和手持式计算机功能的智能电话设备。没有直接地与无线通信处理器(下面简称为“无线处理器”)相关联或附接到无线通信处理器的特定存储设备。相反,无线处理器通过诸如通用串行总线-高速芯片间(USB-HSIC)链路之类的高速通信链路与应用处理器进行通信,以访问存储在与应用处理器相关联的存储设备(例如,闪存设备)中的可执行代码和数据。在一个实施例中,当无线处理器引导时,无线处理器通过通信链路从应用处理器的存储设备安全地获取无线代码映像(例如,可执行代码映像);认证引导代码;并在与无线处理器相关联的随机存取存储器(RAM)中执行引导代码,以便建立无线处理器的操作环境。无线代码映像可包括多个段,每一个段都可以通过证书链来签名。根证书(rootcertificate)可以被存储在无线通信处理器的安全只读存储器(ROM)中,该根证书可以被用来认证从共享存储设备检索到的第一总体代码段。代码映像的各个段可被配置成段的序列。代码序列的当前段可以使用证书链来认证代码序列的下一段。例如,代码段可包括低级别引导代码、中间级别引导代码、以及高级别引导代码。可以首先通过根证书来认证低级别引导代码。一旦认证或验证了低级别引导代码,就可以启动或执行低级别引导代码。一旦低级别引导正在运行,低级别引导代码就可以(获取并)认证中间级别引导代码,而中间级别引导代码,在成功地被低级别引导代码认证和加载之后,可以(获取并)认证高级别引导代码,依次类推。如果有无法成功地被认证和 执行的软件组件的段,则可以强迫设备进入恢复模式(例如,设备固件更新或DFU模式),在该模式下,可以通过网络从受信任的服务器下载软件的新版本。另外,代码映像和/或数据可以通过从唯一地标识无线通信处理器的唯一标识符(WD)导出的密钥来加密。即,代码映像和/或数据可以通过使用从WD导出的密钥来对其进行加密来个性化。UID还可存储在无线通信处理器的安全ROM中。可另选地,UID可以被硬连线(例如,通过烧毁的熔断器)在与无线通信处理器相关联的硬件上。结果,在执行之前认证和验证每一软件组件,以保证软件组件没有被泄露。在正常的操作过程中,每当无线处理器需要读取或存储数据时,由于没有与无线处理器相关联的直接存储器,因此无线处理器可以通过多功能计算设备内的通信链路来访问应用处理器的存储设备,类似于远程文件系统,但是在设备级而并非通过网络。结果,可以删除特别与无线处理器相关联的或附接到无线处理器的常规存储设备。可以降低设备的成本和/或物理尺寸。另外,根据一个实施例,与无线处理器相关联的特定数据,诸如无线网络ID (例如,国际设备标识αΜΕΙ)或移动设备标识符(MEID))和射频(RF)校准数据也存储在应用的存储设备中。结果,在设备从制造商发布之后可以轻松地更新RF校准数据,无需将设备返回到制造商以便更新相同数据。设备的配置和操作可以更灵活。图I是示出了根据本发明的一个实施例的多功能计算设备的框图。例如,设备100可以表示诸如来自位于加利福尼亚州的Cupertino的苹果公司的iPhone 之类的智能电话。可另选地,设备100可以表示诸如来自苹果公司的iPad 之类的平板PC。参考图1,在一个实施例中,设备100包括经由内部总线120可通信地彼此耦合的无线通信处理器101和应用处理器102。无线处理器101可以是任何类型的无线处理器,诸如,例如,蜂窝式处理器、Wi-Fi处理器、蓝牙处理器等等。应用处理器102可以是任何类型的通用处理器。另外,设备100还包括与无线处理器101相关联的随机存取存储器(RAM) 103和与应用处理器102相关联的RAM 104。RAM 103被无线处理器101用来执行与无线处理器101相关联的任何软件组件,包括引导代码、操作系统(OS)、及其他运行时应用和/或数据等等。类似地,RAM 104被应用处理器102用来执行与应用处理器102相关联的任何软件组件,包括应用处理器102的OS 115和文件系统(FS) 116以及其他应用和/或数据。此外,设备100还包括与应用处理器102相关联的或附接到应用处理器102的非易失性存储设备105。例如,存储设备105可以是诸如NOR或NAND闪存设备之类的闪存设备。可另选地,存储设备105可以是诸如硬盘之类的大容量存储设备。在一个实施例中,与常规多功能设备不同,无线处理器101没有与它相关联的专用非易失性存储设备。在其他实施例中,无线处理器可以具有与它相关联的非常少的非易失性存储器,诸如,例如,安全ROM 112,以引导安全引导过程。然而,在这样的实施例中,少量的非易失性存储器没有足够的容量来存储引导映像或其他软件或数据,例如,无线处理器的配置/校准程序和数据。相反地,与无线处理器101相关联的任何代码或数据都可以存储在存储设备105中。在一个实施例中,无线处理器101可以经由内部总线120上的通信链路来访问存储设备105中的与无线处理器101相关联的内容。在一个实施例中,内部总线120可以是USB-HSIC兼容的总线,其中,无线处理器101可以使用高速通信协议,诸如,例如,流式非成帧通信协议, 来访问存储在存储设备105中的相关联的内容。可另选地,内部总线120可以是USB高速(USB-HS)、USB全速(USB-FS)、以及通用异步接收器/发射器串行外围接口(UARTSPI)兼容的总线中的一个。在一个实施例中,虽然不是必需的,但是存储设备105可包括用于无线处理器101和应用处理器102的单独的分区。在此示例中,分区106被配置成存储与无线处理器101相关联的代码映像108和数据110。分区107被配置成存储与应用处理器102相关联的代码映像109和数据111。结果,可以删除与无线处理器相关联的专用非易失性存储设备。相反,无线处理器101可以通过应用处理器102访问其相关联的分区106,和/或通过内部总线120来访问其相关联的OS 115和文件系统(FS)116。在此实施例中,无线处理器101可能不能直接地访问存储设备105。相反,无线处理器101必须经由内部总线120上的通信链路,经过应用处理器102、OS 115、和/或FS 116。在图2中示出了与无线处理器101相关联的存储器分区106的示例。参考图2,分区106可以被用来存储无线处理器代码映像201,文件系统文件205的一个或多个副本,及诸如日志数据206之类的其他运行时数据。无线代码映像201可以被图I的只读存储器引导加载器(ROM BL)117认证和加载。另外,分区106还可包括安全的或受保护的区域210,以存储任何无线关键数据,诸如,例如,与无线处理器相关联的无线网络ID (例如,MEI或MEID^P RF校准数据212等等。无线网络ID 211和RF校准数据212甚至在恢复过程也可以被保留在受保护的区域210中,在恢复过程中,可以擦除数据201-206中的某些或全部。参考图1,根据一个实施例,无线处理器101包括在其中存储了 ROM BL 117、证书118、以及可选的公钥119的安全只读存储器(ROM) 112。无线处理器101还包括内部或芯片内RAM 113和存储密钥114。存储密钥114可以基于唯一地标识无线处理器101的唯一ID来生成。存储密钥114和/或WD (未示出)可以在无线处理器101的制造过程中被硬连线在硬件(烧毁的熔断器)中。存储密钥114可以被用来加密由无线处理器101所生成的任何内容,诸如,例如,运行时数据(例如,日志数据、由无线处理器101接收到的消息,等等)。证书118可以被用来检测或证明通过适当的证书签名的某些数据。例如,证书118可以是证书链的根证书(例如,X. 509兼容的证书链)。公钥119是预定的公钥/私钥对的公钥,其中对应的私钥由向无线处理器101提供数据的适当的机构或供应实体维护。
根据一个实施例,参考图I和2,当无线处理器101接收到引导命令时,ROM BL 117从安全ROM 112中执行。ROMBL 117被配置成初始化无线处理器101的某些硬件组件,包括内部RAM 113和内部总线120上的通信链路或通道。一旦内部RAM 113和通信链路被初始化,ROM BL 117就通过通信链路从存储设备105的分区106获取无线处理器代码映像201。无线处理器代码映像201被加载到内部RAM 113和/或外部RAM 103。请注意,在整个本申请中,无线通信处理器101可以一般性地指代芯片集、集成电路(IC)或专用集成电路(ASIC),可包括一个或多个实际处理器、处理器核、执行单元或功能单元。根据某些实施例,此处所描述的芯片集或IC包括安全ROM 112、内部RAM 113、和/或诸如存储密钥114等等之类的其他组件。另外,ROM BL 117还被配置成认证无线处理器代码映像201。在一个实施例中,无线处理器代码映像201是通过证书来签名的。ROM BL 117还被配置成使用证书118来认证无线处理器代码映像201。如果无线处理器代码映像201无法被成功地认证,则至少可以 强迫无线处理器101进入DFU模式,在该模式下,可以从受信任的服务器供应和下载新的数据。一旦无线处理器代码映像201被成功地认证,无线处理器代码映像201就由RAM 113和/或RAM 103内的ROM BL117启动,以为无线处理器101建立操作环境(例如,OS和/或文件系统)。无线代码映像201可包括多个段,每一个段都可以通过证书链中的一个证书来签名。证书118可以被用来认证从共享存储设备检索到的第一总体代码段。在一个实施例中,代码映像的各个段可被配置成段的序列。代码序列的当前段可以使用证书链来认证代码序列的下一段。例如,代码的各个段可包括低级别引导代码、中间级别引导代码、以及高级别引导代码。可以首先通过根证书来认证低级别引导代码。一旦认证或验证了低级别引导代码,就可以启动或执行低级别引导代码。一旦低级别引导正在运行,低级别引导代码就可以(获取并)认证中间级别引导代码,而中间级别引导代码,在成功地被低级别引导代码认证和加载之后,可以(获取并)认证高级别引导代码,依次类推。如果有无法成功地被认证和执行的软件组件的段,则可以强迫设备进入DFU模式,在该模式下,可以从受信任的服务器下载软件的新版本。在一个实施例中,内部RAM 113具有小于外部RAM 103的存储大小的存储大小。在一个特定实施例中,在初始化过程中,ROM引导加载器117从存储设备105获取第一代码段(例如,第一总体代码段),认证第一代码段(例如,使用证书118),并在内部RAM 113内启动第一代码段。第一代码段,当被成功地认证并从内部RAM 113中执行时,获取第二代码段(例如,代码段序列中的下一代码段),认证第二代码段(例如,使用与证书118相关联的证书链),并在外部RAM 103中启动第二代码段。另外,根据一个实施例,代码映像和/或数据可以通过从唯一地标识无线通信处理器的UID导出的密钥来加密。S卩,代码映像和/或数据可以通过使用从WD导出的密钥来对其进行加密来个性化。结果,只有专门为设备设计的或供应给设备的软件组件才被允许安装在设备上。UID还可存储在无线通信处理器的安全ROM中。可另选地,UID可以被硬连线(例如,通过烧毁的熔断器)在与无线通信处理器相关联的硬件上。结果,在执行之前认证和恢复每一软件组件,以保证软件组件没有被泄露。在2007 年 I 月 7 日提交的标题为“Secure Booting A ComputingDevice”的共同待审的美国专利申请No. 11/620,689中可以找到涉及对软件组件的认证和启动以便为处理器建立操作环境的进一步的详细信息,在此引用该专利申请的全部内容作为参考。另外,某些代码映像和/或数据还可以根据预定格式封装,并可以通过共同的安全模型来认证。例如,某些代码映像和/或数据可以类似于Image3格式来封装。在这样的实现中,每一个要被安装和加载到系统中的软件组件都被实现或封装为具有预定格式的对象,以便在执行嵌入在相应的对象内的可执行代码之前,可以使用单个安全性处理引擎(例如,代码构建器和/或代码加载器)来构建和验证每一个对象,作为确定每一软件组件是否是受信任的并且是否与系统的某些限制或准则兼容的机制。每一对象的至少一部分,诸如对象的有效负载,都可以通过从设备的UID导出的密钥来加密(例如,少量的(licked)或个性化的),这样,只有目标设备才可以解密对象。 在2008 年 4 月 15 日提交的标题为 “Single Security Model inBooting aComputing Device”的共同待审的美国专利申请No. 12/103, 685中可以找到涉及Image3格式和/或共同安全模型的进一步的详细信息,在此引用该专利申请的全部内容作为参考。图3是示出了根据本发明的一个实施例的用于引导无线通信处理器的方法的流程图。例如,方法300可以由图I的系统100来执行。参考图3,响应于引导命令,在框301,从无线处理器的安全ROM执行ROM BL0在框302,ROM BL初始化无线处理器的某些硬件,包括内部RAM和外部RAM。在框303,R0M BL与应用处理器建立通信信道(例如,USB-HSIC、USB-HS、USB-FS、或UART SPI)。在一个实施例中,假设当无线处理器引导时,应用处理器已经引导并运行。在框304,ROM BL经由内部总线上的通信链路从与应用处理器相关联的存储设备获取、认证,并启动无线处理器代码映像,以为无线处理器建立操作环境。在一个实施例中,无线处理器代码映像可以被配置或分区为代码段的序列。可以按顺序获取、认证、并加载每一个代码段。序列中的前面的代码段可以获取、认证、并启动序列的下一代码段。如果有一些段未能通过认证或执行,则至少可以强迫无线处理器进入DFU模式。图4是示出了根据本发明的另一实施例的多功能计算设备的框图。在此示例中,设备400表示使用上文所描述的至少某些技术成功地引导的图I的设备100。参考图4,一旦无线处理器101成功地引导,操作系统151就启动并运行,其中OS 151就至少基于使用上文所描述的技术认证和安装的无线处理器代码映像被建立。另外,密码单元152被配置成使用存储密钥114来加密将存储在存储设备105的存储器分区106中的任何运行时数据。运行时所生成的数据可包括由无线处理器通过无线网络接收到的任何空中的供应数据和/或用户特定的或机密数据(例如,电子邮件或诸如SMS消息之类的消息,日志和/或与文件系统相关的文件)等等。由于没有与无线处理器101相关联的本地或专用的非易失性存储设备,因此文件系统(FS)驱动程序153被用作文件系统代理驱动程序或守护进程(daemon)。在一个实施例中,对于从处理器101生成的任何数据和/或要被写入到存储设备105的OS 151,密码单元152被配置成使用存储密钥114来加密数据,并将经加密的数据传递到FS驱动程序153。FS驱动程序153又通过通信链路(例如,USB-HSIC)将经加密的数据传输到位于应用处理器端的FS驱动程序154。FS驱动程序154调用文件系统116的服务来将经加密的数据存储在存储设备105的对应的分区106中。类似地,当处理器101和/或OS 151需要从存储设备105检索数据时,处理器101和/或OS 151可以将读取命令发送到FS驱动程序153。FS驱动程序153将读取命令中继到FS 154,以通过FS 116从存储设备检索相关联的数据(例如,经加密的数据)。一旦由FS驱动程序153接收到经加密的数据,密码单元152就被配置成使用存储密钥114来解密经加密的数据,并将经解密的数据传递到处理器101和/或OS 151。如此,FS驱动程序153可以充当类似于远程文件系统中的代理的代理。可另选地,FS驱动程序153也可以充当OS151的虚拟文件系统,其中OS 151可以不知道内容实际存储在应用处理器102的存储设备105 中。请注意,在某些情况下,只有关键的或敏感的数据才可以被加密。诸如日志数据之类的其他数据可以不加密。以此方式,访问共享存储器的效率可以提高。还要注意,可以不 需要为无线处理器101和应用处理器102维护单独的分区。也可以实现单个分区,只要以安全的方式维护可能不能被应用处理器102访问的某些关键或机密数据。如上文所描述的,在常规设备中,RF校准数据是由制造商所生成的,并在无线处理器的本地存储设备中维护的。另外,为了更新RF校准数据,通常设备必须被返回给制造商,制造商会将新RF校准数据存储在相关联的非易失性存储设备中。在一个实施例中,由于没有与无线处理器相关联的本地非易失性存储设备,因此RF校准数据存储在应用处理器102的存储设备105中。由于RF校准数据必须被维护,即使设备崩溃,因此RF校准数据可以存储在存储设备的受保护的或安全的区域,如图2所示。在一个实施例中,RF校准数据也可以存储在云网络的服务器(例如,经过授权的分布式服务器或供应服务器)中,而并非将设备返回给制造商,RF校准数据可以通过将新RF校准数据从云网络下载并存储在与应用处理器102相关联的存储设备105中来更新。RF校准数据可以通过使用无线处理器101的UID或存储密钥114来加密RF校准数据来专门提供并使其与无线处理器101相关联,以便只有无线处理器101可以通过解密经加密的RF校准数据来恢复RF校准数据。结果,RF校准数据可以在设备离开制造商之后在现场轻松地更新,这比需要设备返回给制造商以便更新RF校准数据的常规配置更灵活。图5是示出了根据本发明的一个实施例的用于生成RF校准数据的方法的流程图。例如,方法500可以在校准站执行。参考图5,在框501,在校准站为特定无线处理器生成RF校准数据。在框502,RF校准数据与唯一地标识无线处理器的UID相关联。例如,RF校准数据可以通过基于无线处理器的UID所生成的密钥来加密。经加密的RF校准数据可以由制造商或校准站临时保留。随后,在框503,当无线处理器耦合到应用处理器时,RF校准数据可以被向下推送到应用处理器的存储设备。请注意,在某些情况下,无线处理器和应用处理器可以由不同的供应商在不同的时间制造。由于没有与无线处理器相关联的本地存储设备,因此RF校准数据可能需要由制造商保留,直到应用处理器和其相关联的存储设备可用(例如,被集成)。可任选地,在框504,经加密的RF校准数据可以向上推送到云网络,供随后的下载(例如,如果RF校准数据的本地副本损坏或过时)。图6是示出了根据本发明的一个实施例的用于更新RF校准数据的方法的流程图。例如,在设备从制造商发布之后,方法600可以由无线处理器来执行,以在现场更新新RF校准数据。在框601,从校准站或从云网络下载RF校准数据,其中RF校准数据可以通过从无线处理器的WD导出的密钥来加密。在框602,RF校准数据存储在应用处理器的存储设备中。响应于校准命令,在框603,通过通信链路,从存储设备检索RF校准数据。在框604,无线处理器通过使用从无线处理器的UID导出的本地维护的密钥(例如,图I的存储密钥114)来解密RF校准数据,来认证RF校准数据。在成功地认证和/或解密之后,在框605,使用RF校准数据来校准无线处理器。当从远程机构(例如,分发或供应服务器)下载了诸如供应数据或RF校准数据之类的新的数据时,为了维护新的数据的安全性,数据必须由供应机构加密,以便只有适当的接收方(例如,适当的无线处理器)才可以解密数据。即,用来加密数据的密钥只能被计划的接收方和供应机构所知;否则,数据可以被泄露。图7是示出了根据 本发明的一个实施例的用于通过网络安全地从远程机构下载数据以便在无线处理器中安装的系统配置的图示。参考图7,系统配置700包括通过网络704彼此可通信地耦合的计算设备701、授权服务器702、以及一个或多个分发服务器703,网络704可以是局域网或广域网(例如,因特网)。计算设备701可以表示图I的计算设备100。授权服务器702可以与设计或制造计算设备701的机构相关联。分发服务器703可以是网络704 (例如,云网络)中的经过授权分发诸如供应数据或RF校准数据之类的数据707以便被计算设备701安装或使用的服务器中的任何一个。根据一个实施例,如果计算设备701有从诸如服务器703之类的分发服务器中的一个下载数据的需求,计算设备701生成临时或随机会话密钥705。然后,通过公钥119(公钥/私钥对的一个公共分量),来加密会话密钥705,其中密钥对的私有分量被授权服务器702作为私钥706来维护。公钥119可以预先以数字证书的形式,例如,在设备的制造过程中,分发。另外,恢复blob是通过使用存储密钥114或从计算设备701的WD导出的密钥来加密会话密钥705所生成的。此后,经加密的会话密钥和恢复blob通过路径(I)被从计算设备701发送到授权服务器702。授权服务器702通过使用私钥706来解密会话密钥,来认证计算设备701并恢复会话密钥。会话密钥和恢复blob,通过路径(2),例如,通过安全的连接,被从授权服务器702发送到分发服务器703中的一个。然后,分发服务器703使用从授权服务器702接收到的会话密钥来加密数据707。此后,经加密的数据707和恢复blob被从分发服务器703发回到计算设备701。计算设备701可以通过使用存储密钥114来解密恢复blob,来恢复会话密钥。然后,可以使用会话密钥来解密经加密的数据707,以便安装或校准等等。即,如果计算设备701是经加密的数据707的计划的接收方,则计算设备701应该能够通过使用存储密钥114来解密恢复blob来恢复会话密钥,因为恢复blob最初是由真正的所有者所生成的,在此示例中,是计算设备701。没有生成恢复blob的任何其他设备都不能恢复会话密钥,因为它不拥有解密恢复blob的适当的存储密钥。结果,由服务器703分发的数据707可以安全地下载并安装在计算设备701中。请注意,私钥706也可以被分发到分发服务器703并由其维护。还要注意,授权服务器702和分发服务器703可以是同一服务器。此外,根据一个实施例,数据707还可以使用基于票据的授权过程来封装和分发,以便确保安全的安装。在此实施例中,数据707可以通过“票据(ticket)”专门封装和个性化。票据表示诸如每一个软件组件的散列和/或版本标识符之类的安全措施的集合。票据可以由诸如授权服务器702之类的中心机构来生成和分发。票据可以降低黑客可以混合与匹配软件组件的不同的版本以便进行安装的机率。在2008年12月5日提交的标题为 “Ticket Authorized Secure Installation andBoot” 的共同待审的美国专利申请No. 12/329,377中可以找到涉及基于票据的授权过程的进一步的详细信息,在此引用该申请的全部内容作为参考。图8是示出了根据本发明的一个实施例的用于更新供应数据的方法的流程图。方法800可以通过诸如无线处理器101之类的无线处理器来执行,具体而言,在DFU模式过程中,以便下载一组新的数据。参考图8,当有从远程服务器更新新的数据的需要时,在框801,生成会话密钥。会话密钥是通过从生成恢复blob的无线处理器的UID导出的密钥(例如,图I的存储密钥114)加密的。在框802,会话密钥还通过具有公钥和私钥的非对称密钥 对的公钥(例如,图I的公钥119)来加密。恢复blob和通过公钥加密的会话两者都被发送到受信任的授权服务器(例如,apple, com)。在此实施例中,假设公钥是在设备的制造过程中生成的,其中密钥对的私钥被受信任的授权机构(例如,授权服务器)保留。受信任的授权机构可以通过使用对应的私钥来解密经加密的会话密钥来恢复会话密钥。然后,受信任的授权机构可以将恢复blob和会话密钥两者发送到云网络中的一个或多个分发机构。随后,在框803,由无线处理器接收由分发机构通过会话密钥加密的分布式数据和恢复blob。在此情况下,只有适当的或计划的接收方才具有解密恢复blob所需的密钥(例如,存储密钥)。在框804,无线处理器可以通过使用从设备的UID导出的密钥来解密恢复blob,来恢复会话密钥。在框805,然后使用会话密钥来解密从分发机构发送的分布式数据。即,只有分发机构和设备两者具有可以被用来交换进一步的秘密的适当的会话密钥。图9示出了可以与本发明的一个实施例一起使用的数据处理系统的示例。例如,系统900可以被实现为如图I所示的设备100。如图9所示的数据处理系统900包括处理系统911,该处理系统911可以是一个或多个微处理器,或者也可以是集成电路的芯片上的系统,以及系统还包括用于存储数据和用于被处理系统执行的程序的存储器901。系统900还包括音频输入/输出子系统905,可包括麦克风和扬声器,用于,例如,通过扬声器和麦克风来播放音乐或提供电话功能。显示控制器和显示设备907为用户提供可视用户界面;当运行操作系统软件时,此数字接口可包括类似于在iPhone 电话设备、iPad设备或在Macintosh计算机上所示出的那种图形用户界面。系统900还包括与另一数据处理系统进行通信的一个或多个无线收发器903。无线收发器可以是WiFi收发器、红外线收发器、蓝牙收发器和/或无线蜂窝式电话收发器。可以理解,在某些实施例中,未示出的额外的组件也可以是系统900的一部分,而在某些实施例中,也可以在数据处理系统中使用比如图9所示的少一些的组件。数据处理系统900还包括一个或多个输入设备913,用于使用户向系统提供输入。这些输入设备可以是小键盘、键盘、触摸板或多重触摸板。数据处理系统900还包括可选输入/输出设备915,可以是对接器的连接器。可以理解,如在当前技术中已知的,可以使用一个或多个未示出的总线来互连各种组件。如图9所示的数据处理系统可以是手持式计算机或个人数字助理(PDA),或带有类似于PDA的功能的蜂窝电话,或包括蜂窝电话的手持式计算机,或诸如iPod之类的媒体播放器,或组合了这些设备的各方面或功能的设备,诸如在一个设备中与PDA和蜂窝电话相结合的媒体播放器。在其他实施例中,数据处理系统900可以是网络计算机或另一设备内的嵌入式处理设备,或具有比在图9中所示出的那些组件少一些的组件或也许更多组件的其他类型的数据处理系统。
本发明的至少某些实施例可以是诸如便携式音乐和/或视频媒体播放器之类的数字媒体播放器的一部分,可包括呈现媒体的媒体处理系统,存储媒体的存储设备,以及还可以包括与天线系统和媒体处理系统耦合的射频(RF)收发器(例如,蜂窝电话的RF收发器)。在某些实施例中,存储在远程存储设备上的媒体可以通过RF收发器被传输到媒体播放器。媒体可以是,例如,音乐或其他音频、静止图像,或电影中的一种或多种。便携式媒体播放器可包括诸如来自加利福尼亚州Cupertino市的Apple Inc.的iPod 或iPod Nano 上的点拨轮输入设备之类的媒体选择设备,触摸屏或多重触摸输入设备、按钮设备、可移动指向输入设备或其他输入设备。媒体选择设备可以被用来选择存储在存储设备和/或远程存储设备上的媒体。便携式媒体播放器可以,在至少某些实施例中,包括显示设备,该显示设备耦合到媒体处理系统,以通过扬声器或耳机,或在显示设备上,或在显示设备和扬声器或耳机两者上,显示通过输入设备选择的并呈现的媒体的标题或其他指示。前面的详细描述的某些部分以算法和对计算机存储器内的数据位的操作的符号表示法的形式存在。这些算法描述和表示法是那些精通数据处理技术的人所使用的最有效 地将他们的工作的实质传递到精通技术的其他人的方式。算法,这里一般是指导致所希望的结果的操作的独立序列。操作是那些需要对物理量进行物理操纵的操作。通常,尽管不一定,这些量呈现电的和/或磁性信号的形式,这些信号能够被存储、传输、组合、比较以及以别的方式操纵。已经证明有时,主要由于共同的用途原因,将这些信号称为比特、值、元素、符号、字符、术语、数字等等比较方便。然而,应该记住,所有这些和类似的术语将与适当的物理量关联,仅仅是应用于这些量的方便的标记。除非特别声明,从以上讨论中显而易见地看出,应该理解,在整个本说明书中,利用诸如在下面的权利要求中所阐述的术语的讨论,引用了计算机系统、或类似的电子计算设备的动作和进程,它们操纵和转换表示为计算机系统的寄存器和存储器内的物理(电子)量的数据,将这些数据转换为类似地表示为计算机系统存储器或寄存器或其他这样的信息存储器、传输或显示设备内的物理量的其他数据。本发明的各实施例还涉及用于执行此处的操作的设备。可以为所需的用途专门地设计此设备,也可以包括由存储在计算机中的计算机程序有选择地激活或重新配置的通用计算机。这样的计算机程序可以存储在计算机可读介质中。机器可读介质包括用于以机器(例如,计算机)可读的形式存储信息的任何机制。例如,机器可读的(例如,计算机可读取的)介质包括机器(例如,计算机)可读取的存储介质(例如,只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储介质、光存储介质、闪存设备等等)等等。前面的图形中所描绘的进程或方法可以通过包括硬件(例如,电路、专用逻辑等等)、软件或两者的组合的处理逻辑来执行。虽然上文是利用某些顺序操作来描述进程或方法的,但是应该理解,所描述的某些操作可以以不同的顺序来执行。此外,某些操作也可以并行地而并非按顺序执行。此处呈现的算法和显示不固有地涉及任何特定计算机或其他设备。各种通用系统可以与根据此处的原理编写的程序一起使用,或者构建更加专业化的设备来执行所需的方法操作也是比较方便的。根据上面的描述,这些系统中的各种系统的所需的结构将变得显而易见。另外,没有参考任何特定编程语言来描述本发明的各实施例。应该理解,可以使用各种编程语言来实现此处所描述的本发明的各实施例的教导。
在前述的说明书中,参考其特定示例性实施例描述了本发明的各实施例。显然,在不偏离如下面的权利要求所阐述的本发明的更广泛的精神和范围的情况下,可以作出各种修改。相应地,说明书和附图应被视为说明性的,而不是限制性的。
权利要求
1.一种便携式设备,包括 应用处理器; 耦合到所述应用处理器的第一随机存取存储器(RAM),所述第一 RAM具有在其中执行的为所述应用处理器提供操作环境的第一操作系统(OS); 耦合到所述应用处理器和所述第一 RAM的非易失性存储设备,所述非易失性存储设备存储被所述应用处理器经由所述第一 OS访问的数据; 通过内部总线耦合到所述应用处理器的无线通信处理器; 耦合到所述无线通信处理器的第二 RAM,所述第二 RAM具有在其中执行的为所述无线通信处理器提供操作环境的第二 OS, 其中,所述无线通信处理器被配置成经由所述内部总线上的通信链路来访问所述非易失性存储设备,以引导所述无线通信处理器,建立所述第二 OS,并在正常的操作过程中访问所述非易失性存储设备中的与所述无线通信处理器相关联的数据,以便所述无线通信处理器不必维护单独的非易失性存储设备来存储特别与所述无线通信处理器相关联的数据。
2.如权利要求I所述的便携式设备,其中,所述无线通信处理器还包括用于存储ROM引导加载器的安全只读存储器(R0M),其中,响应于由所述无线通信处理器接收到的引导命令,所述ROM引导加载器从所述安全ROM中执行,以初始化所述无线通信处理器的硬件,并通过所述内部总线建立与所述应用处理器的所述通信链路。
3.如权利要求2所述的便携式设备,其中,所述ROM引导加载器被配置成经由所述内部总线上的所述通信链路从所述非易失性存储设备获取引导代码映像,认证所述引导代码映像,并在成功地认证所述引导代码映像之后,在所述第二 RAM中执行所述引导代码映像,以为所述无线通信处理器建立所述第二 OS。
4.如权利要求3所述的便携式设备,其中,所述ROM引导加载器被配置成使用从唯一地标识所述无线通信处理器的唯一标识符(UID)导出的存储密钥来对所述引导代码映像进行解密。
5.如权利要求3所述的便携式设备,其中,所述ROM引导加载器使用存储在所述无线通信处理器的所述安全ROM内的数字证书来认证所述引导代码映像。
6.如权利要求5所述的便携式设备,其中,所述引导代码映像包括通过数字证书链签名的第一引导代码段和第二引导代码段,其中所述ROM引导加载器被配置成经由所述内部总线上的所述通信链路从所述非易失性存储设备获取所述第一引导代码段,使用来自所述安全ROM的所述数字证书来认证所述第一引导代码段,并执行所述第一引导代码段,以及其中,所述第一引导代码段,当由所述ROM引导加载器执行时,被配置成经由所述内部总线上的所述通信链路从所述非易失性存储设备获取所述第二引导代码段,使用从所述证书链导出的叶证书,来认证所述第二引导代码段,并加载所述第二引导代码段。
7.如权利要求6所述的便携式设备,其中,所述无线通信处理器还包括被所述ROM引导加载器初始化的内部RAM,其中所述第一代码段被所述内部RAM内的所述ROM弓丨导加载器获取、认证、并启动,以及其中,所述第二代码段被所述第二 RAM内的所述第一引导代码段获取、认证、并启动。
8.如权利要求I所述的便携式设备,其中,所述第二RAM包括在其中执行的密码单元,以及其中,响应于用于访问所述非易失性存储设备的命令,所述密码単元被配置成使用从唯一地标识所述无线通信处理器的唯一标识符(UID)导出的存储密钥来加密和解密通过所述通信链路往返于所述非易失性存储设备的数据。
9.如权利要求8所述的便携式设备,其中,所述第一RAM还包括文件系统和在其中执行的第一文件系统驱动程序,其中所述第二 RAM还包括在其中执行的第二文件系统驱动程序,其中所述第二文件系统驱动程序被配置成通过所述通信链路与所述第一文件系统驱动程序进行通信,以从所述文件系统调用文件系统服务,以便由所述无线通信处理器访问所述非易失性存储设备。
10.如权利要求I所述的便携式设备,其中,响应于更新数据的命令,由从唯一地标识所述无线通信处理器的唯一标识符(UID)导出的存储密钥来生成和加密会话密钥,以生成恢复blob,其中由公钥加密的所述恢复blob和所述会话密钥被传输到授权服务器,以及其中,响应于从供应服务器接收到的所述数据和所述恢复blob,通过使用所述存储密钥来解密所述恢复blob,从所述恢复blob来恢复所述会话密钥,其中所恢复的会话密钥被用来解密从所述供应服务器接收到的数据。
11.如权利要求10所述的便携式设备,其中,所述数据包括射频(RF)校准数据。
12.一种用于操作便携式设备的机器实现方法,所述方法包括 响应于引导命令,从无线通信处理器的安全ROM执行只读存储器(ROM)引导加载器,其中所述ROM引导加载器初始化与所述便携式设备的无线通信处理器相关联的硬件; 利用所述ROM引导加载器通过将所述无线通信处理器与所述应用处理器耦合的内部总线与所述便携式设备的应用处理器建立通信链路; 利用所述ROM引导加载器通过所述通信链路从非易失性存储设备获取引导代码映像,其中所述非易失性存储设备与所述应用处理器相关联并被所述应用处理器经由在与所述应用处理器相关联的第一随机存取存储器(RAM)内执行的第一操作系统(OS)访问; 利用所述ROM引导加载器认证所述引导代码映像;以及 在成功地认证所述引导代码映像之后,所述ROM引导加载器将所述引导代码映像启动到与所述无线通信处理器相关联的第二 RAM中,以为所述无线通信处理器建立第二 OS,其中通过经由所述内部总线上的所述通信链路来访问与所述应用处理器相关联的所述非易失性存储设备,所述无线通信处理器不必维护单独的非易失性存储设备。
13.如权利要求12所述的方法,其中,所述引导代码映像由所述ROM引导加载器使用存储在所述安全ROM中的数字证书来认证,其中所述数字证书是从唯一地标识所述无线通信处理器的唯一标识符(UID)导出的。
14.如权利要求13所述的方法,其中,认证所述引导代码映像包括使用从所述无线通信处理器的所述WD导出的存储密钥来解密所述引导代码映像的至少一部分。
15.如权利要求13所述的方法,其中,所述引导代码映像包括通过数字证书链签名的第一引导代码段和第二引导代码段,其中所述ROM引导加载器被配置成经由所述内部总线上的所述通信链路从所述非易失性存储设备获取所述第一引导代码段,使用来自所述安全ROM的所述数字证书来认证所述第一引导代码段,并执行所述第一引导代码段,以及其中,所述第一引导代码段,当由所述ROM引导加载器执行时,被配置成经由所述内部总线上的所述通信链路从所述非易失性存储设备获取所述第二引导代码段,使用从所述证书链导出的叶证书,来认证所述第二引导代码段,并加载所述第二引导代码段。
16.如权利要求13所述的方法,还包括响应于用于访问所述非易失性存储设备的命令,使用所述存储密钥,加密和解密通过所述通信链路往返于所述非易失性存储设备的数据。
17.如权利要求16所述的方法,其中,所述第一RAM还包括文件系统和在其中执行的第一文件系统驱动程序,其中所述第二 RAM还包括在其中执行的第二文件系统驱动程序,其中所述第二文件系统驱动程序被配置成通过所述通信链路与所述第一文件系统驱动程序进行通信,以从所述文件系统调用文件系统服务,以便由所述无线通信处理器访问所述非易失性存储设备。
18.如权利要求12所述的方法,进ー步包括 响应于更新数据的命令,生成会话密钥; 使用从唯一地标识所述无线通信处理器的唯一标识符(UID)导出的存储密钥来加密所 述会话密钥; 生成在其中嵌入了由所述存储密钥加密的所述会话密钥的恢复blob ; 使用公钥/私钥对的公钥来加密所述会话密钥; 将所述恢复blob和由所述公钥加密的所述会话密钥传输到授权服务器,其中所述授权服务器被配置成通过使用所述公钥/私钥对的私钥来解密所述会话密钥,来恢复所述会话密钥; 响应于由所述会话密钥加密的数据和从供应服务器下载的恢复blob,通过使用所述存储密钥来解密所述恢复blob,从所述恢复blob来恢复所述会话密钥; 通过使用所述会话密钥来解密经加密的数据来恢复所述数据;以及 将所述数据存储在所述非易失性存储设备中。
19.一种在其中存储了指令的机器可读存储介质,所述指令在由机器执行时使所述机器执行用于操作便携式设备的方法,所述方法包括 响应于引导命令,从无线通信处理器的安全ROM执行只读存储器(ROM)引导加载器,其中所述ROM引导加载器初始化与所述便携式设备的无线通信处理器相关联的硬件; 利用所述ROM引导加载器通过将所述无线通信处理器与所述应用处理器耦合的内部总线与所述便携式设备的应用处理器建立通信链路; 利用所述ROM引导加载器通过所述通信链路从非易失性存储设备获取引导代码映像,其中所述非易失性存储设备与所述应用处理器相关联并被所述应用处理器经由在与所述应用处理器相关联的第一随机存取存储器(RAM)内执行的第一操作系统(OS)访问; 利用所述ROM引导加载器认证所述引导代码映像;以及 在成功地认证所述引导代码映像之后,所述ROM引导加载器将所述引导代码映像启动到与所述无线通信处理器相关联的第二 RAM中,以为所述无线通信处理器建立第二 OS,其中通过经由所述内部总线上的所述通信链路来访问与所述应用处理器相关联的所述非易失性存储设备,所述无线通信处理器不必维护单独的非易失性存储设备。
20.如权利要求19所述的机器可读存储介质,其中,所述引导代码映像由所述ROM引导加载器使用存储在所述安全ROM中的数字证书来认证,其中所述数字证书是从唯一地标识所述无线通信处理器的唯一标识符(UID)导出的。
21.如权利要求20所述的机器可读存储介质,其中,认证所述引导代码映像包括使用从所述无线通信处理器的所述WD导出的存储密钥来解密所述引导代码映像的至少一部分。
22.如权利要求20所述的机器可读存储介质,其中,所述引导代码映像包括通过数字证书链签名的第一引导代码段和第二引导代码段,其中所述ROM引导加载器被配置成经由所述内部总线上的所述通信链路从所述非易失性存储设备获取所述第一引导代码段,使用来自所述安全ROM的所述数字证书来认证所述第一引导代码段,并执行所述第一引导代码段,以及其中,所述第一引导代码段,当由所述ROM引导加载器执行时,被配置成经由所述内部总线上的所述通信链路从所述非易失性存储设备获取所述第二引导代码段,使用从所述证书链导出的叶证书,来认证所述第二引导代码段,并加载所述第二引导代码段。
23.一种用于操作便携式设备的机器实现方法,所述方法包括 响应于更新所述便携式设备的软件组件的命令,生成会话密钥; 使用从唯一地标识所述便携式设备的唯一标识符(UID)导出的存储密钥来加密所述会 话密钥; 生成在其中嵌入了由所述存储密钥加密的所述会话密钥的恢复blob ; 使用公钥/私钥对的公钥来加密所述会话密钥; 将所述恢复blob和由所述公钥加密的所述会话密钥传输到授权服务器,其中所述授权服务器被配置成通过使用所述公钥/私钥对的私钥来解密所述会话密钥,来恢复所述会话密钥; 响应于从供应服务器下载的所述软件组件和所述恢复blob,通过使用所述存储密钥来解密所述恢复blob,从所述恢复blob恢复所述会话密钥,其中所述软件组件是通过由所述供应服务器从所述授权服务器接收到的所述会话密钥来加密的;以及 通过使用从所述恢复blob恢复的所述会话密钥来解密经加密的软件组件,恢复所述软件组件,其中所述软件组件将被安装在所述便携式设备中。
24.如权利要求23所述的方法,其中,所述软件组件包括用于引导所述便携式设备的引导代码映像和用于校准所述便携式设备的无线通信处理器的射频(RF)校准数据中的至少ー项。
全文摘要
本发明涉及从非本地存储器安全地引导和配置子系统。根据一个方面,具有无线通信处理器(例如,蜂窝式处理器)和应用处理器(例如,诸如CPU之类的通用处理器)的多功能计算设备共享与应用处理器相关联的或附接到应用处理器的存储设备。这样的多功能计算设备的示例可以是具有蜂窝电话和手持式计算机功能的智能电话设备。没有直接地与无线通信处理器(下面简称为“无线处理器”)相关联或附接到无线通信处理器的特定存储设备。相反,无线处理器通过诸如USB链路之类的高速通信链路与应用处理器进行通信,以访问存储在与应用处理器相关联的存储设备(例如,闪存设备)中的代码和数据。
文档编号H04L29/06GK102859963SQ201180019799
公开日2013年1月2日 申请日期2011年4月14日 优先权日2010年4月19日
发明者A·缪杰塔巴, 张海宁, A·西瓦西萨姆巴瑞萨恩, A·霍, A·马蒂亚斯, S·谢尔, J·安德鲁斯, J·戈斯内尔, D·B·德埃特勒, J·豪克 申请人:苹果公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1