首页 / 专利库 / 杂项知识产权事务 / 数字版权管理 / 中央处理器向下兼容安全保密系统处理能力及安全保密系统运行

中央处理器向下兼容安全保密系统处理能及安全保密系统运行

阅读:304发布:2021-02-12

专利汇可以提供中央处理器向下兼容安全保密系统处理能及安全保密系统运行专利检索,专利查询,专利分析的服务。并且一种安全处理器(110),确保应用 软件 被安全执行,并确保只有授权的软件才可被执行,以监视模式或 安全模式 操作。在前者模式下,相对于软件透明地执行 应用软件 。在后者模式下,验证应用软件的执行是否被授权,执行由应用软件所需的任何额外业务,并验证所述处理器是否获得执行该内容的权利。所述安全处理器(110)在 硬件 上看起来与普通处理器相同,从而为普通处理器所编写的应用软件,无需实质上的改变,而可以在该安全处理器(110)上执行,在表现为与普通处理器硬件相同的那些部分上,只需要很少的附加硬件。所述安全处理器(110)实质上不降低速度或其它应用软件可用的资源。安全模式的功能可能驻留在芯片上的非易失 存储器 中,或可从外部存储器认证加载。,下面是中央处理器向下兼容安全保密系统处理能及安全保密系统运行专利的具体信息内容。

1.一种使用安全处理器的方法,包括以下步骤:
在处理器上验证是否有权并执行应用软件,所述处理器具有安全模式和监视模式;
其中当所述处理器以所述安全模式执行时,所述处理器具有到至少一个安全功能的入口,通过所述处理器来执行由所述应用软件请求并得到授权的额外业务,当所述处理器以所述监视模式执行时,所述处理器没有到该安全功能的入口;
其中,在启动状态、中断状态的至少其中一个状态期间,所述处理器以所述安全模式执行,所述中断状态响应于非屏蔽中断或定时器中断;
其中当所述处理器进入所述安全模式时,所述处理器传送控制到一组安全代码,当所述处理器以所述监视模式执行时,所述安全代码不能改变;和
其中与所述启动状态相关的一组所述安全代码包括由所述处理器执行的指令,并且所述指令响应于外部指令的外部源而引导所述处理器来向安全代码添加外部指令,所述外部源的可信性的测量由所述处理器响应于一组安全信息来验证。
2.如权利要求1所述的一种使用安全处理器的方法,包括在加电状态下以所述安全模式来执行指令的步骤。
3.如权利要求2所述的一种使用安全处理器的方法,包括响应于所述加电状态,执行保存在包括所述处理器的芯片内部的永久存储器中的安全代码的步骤,所述执行安全代码的步骤包括以下步骤:
从一个或多个可信源加载附加代码;
验证所述可信源的真实性;和
验证所述附加代码的内容完整性。
4.如权利要求2所述的一种使用安全处理器的方法,包括响应于所述加电状态,执行保存在包括所述处理器的芯片内部的永久存储器中的安全代码的步骤,所述执行安全代码的步骤包括以下步骤:
从一个或多个可信源加载附加代码;
验证所述可信源的真实性;和
验证所述附加代码的内容完整性;
其中所述验证真实性和内容完整性的步骤是响应于所述芯片内部的永久存储器而执行的。
5.如权利要求2所述的一种使用安全处理器的方法,包括响应于所述加电状态,执行保存在包括所述处理器的芯片内部的永久存储器中的安全代码的步骤,所述执行安全代码的步骤包括以下步骤:
从一个或多个可信源加载附加代码;
验证所述可信源的真实性;
验证所述附加代码的内容完整性的步骤;
其中所述验证真实性和内容完整性的步骤是响应于所述芯片内部的永久存储器而执行的,并且
所述芯片内部的所述永久存储器的至少包括以下项的其中之一:加密密钥、安全散列值、或其它用来验证所述可信源和认证所述附加代码的其它数据。
6.如权利要求1所述的一种使用安全处理器的方法,其中所述应用软件包括至少一个以所述安全模式执行的指令。
7.如权利要求6所述的一种使用安全处理器的方法,其中所述至少一个以所述安全模式执行的指令包括由所述处理器代表一组安全核心代码来执行的附加功能。
8.如权利要求6所述的一种使用安全处理器的方法,其中所述至少一个以所述安全模式执行的指令包括由所述处理器代表一组安全核心代码来执行的附加功能,所述附加功能包括认证附加的安全核心代码。
9.如权利要求1所述的一种使用安全处理器的方法,其中所述验证步骤包括执行一组安全软件,该组安全软件包括确定所述处理器是否有权执行一组以所述安全模式执行的附加安全软件。
10.如权利要求9所述的一种使用安全处理器的方法,其中所述附加安全软件包括:
至少一个用来加载附加安全软件的功能;和
至少一个用来验证所述处理器有权执行所述附加安全软件的功能。
11.如权利要求9所述的一种使用安全处理器的方法,其中所述附加安全软件包括:
至少一个用来加载应用软件的功能;和
至少一个用来验证所述处理器有权执行所述应用软件的功能。
12.一种使用安全处理器的装置,包括:
用于在处理器上验证是否有权并执行应用软件的第一装置,所述处理器具有安全模式和监视模式;
其中当所述处理器以所述安全模式执行时,所述处理器具有到至少一个安全功能的入口,通过处理单元来执行由所述应用软件请求并得到授权的额外业务,当所述处理器以所述监视模式执行时,所述处理器没有到该安全功能的入口;
用于在启动状态、中断状态的至少其中一个状态期间,使所述处理器以所述安全模式执行的第二装置,所述中断状态响应于非屏蔽中断或定时器中断;
用于当所述处理器进入所述安全模式时,使所述处理器传送控制到一组安全代码的第三装置,当所述处理器以所述监视模式执行时,所述安全代码不能改变;和其中与所述启动状态相关的一组所述安全代码包括由所述处理器执行的指令,并且所述指令响应于外部指令的外部源而引导所述处理器来向安全代码添加所述外部指令,所述外部源的可信性的测量由所述处理器响应于一组安全信息来验证。
13.如权利要求12所述的一种使用安全处理器的装置,其中能够以所述监视模式执行指令的所述处理器的一部分实质上与不响应于所述安全模式的普通处理器的半导体芯片相同。
14.如权利要求12所述的一种使用安全处理器的装置,包括用于在所述安全模式下,使所述处理器能够执行由应用程序软件请求并得到授权的额外业务的装置。
15.如权利要求12所述的一种使用安全处理器的装置,包括使所述处理器能够响应于多种技术中的至少一个来中断所述监视模式并进入所述安全模式的装置,其中当处于所述安全模式时,所述处理器能够确定通过哪种技术进入所述安全模式。
16.如权利要求12所述的一种使用安全处理器的装置,包括使所述处理器能够响应于中断、复位信号、或定时器中的至少其中一个,来中断所述监视模式并进入所述安全模式的装置。
17.如权利要求12所述的一种使用安全处理器的装置,包括用于在所述安全模式下,使所述处理器能够退出所述安全模式,并以所述监视模式执行所述应用软件的装置。
18.如权利要求17所述的一种使用安全处理器的装置,其中所述应用软件在不对该应用软件的源代码作实质改变的情况下执行,从而所述应用软件得到实质上与普通处理器相同的处理器环境。
19.如权利要求17所述的一种使用安全处理器的装置,其中当所述应用软件需要安全处理监视的业务时,应用软件产生中断,从而使得重新进入安全模式,将业务传送到应用软件,并退出所述安全模式,从而所述应用软件继续以监视模式执行。
20.如权利要求12所述的一种使用安全处理器的装置,其中所述应用软件包括至少一个以所述安全模式执行的指令。
21.如权利要求20的一种使用安全处理器的装置,其中所述至少一个以所述安全模式执行的指令包括由所述处理器代表一组安全核心代码执行的附加功能。
22.如权利要求20的一种使用安全处理器的装置,其中所述至少一个以所述安全模式执行的指令包括由所述处理器代表一组安全核心代码执行的附加功能,所述附加功能包括认证附加的安全核心代码。
23.如权利要求22所述的一种使用安全处理器的装置,其中所述处理器能够执行安全软件,所述安全软件包括至少一个用来认证以所述安全模式执行的附加软件的功能。
24.如权利要求23所述的一种使用安全处理器的装置,其中所述安全软件包括:
至少一个用来加载附加安全软件的功能;和
至少一个用来验证所述处理器有权执行所述附加安全软件的功能。
25.如权利要求23所述的一种使用安全处理器的装置,其中所述安全软件包括:
至少一个用来加载应用软件的功能;和
至少一个用来验证所述处理器有权执行所述应用软件的功能。
26.如权利要求12所述的一种使用安全处理器的装置,其中所述处理器在加电状态下以所述安全模式执行指令。
27.如权利要求12所述的一种使用安全处理器的装置,包括响应于所述安全信号的安全单元,并且所述安全单元连接到连接于所述处理器的至少一个安全电路,其中只有当所述安全信号指示所述安全模式时,所述安全单元才允许所述处理器访问所述安全电路。
28.如权利要求12所述的一种使用安全处理器的装置,包括:
一组保存在连接到所述处理器的存储器或海量存储器中的应用程序代码;
从而所述处理器以所述监视模式执行所述应用程序代码。
29.如权利要求12所述的一种使用安全处理器的装置,包括:
一组保存在连接到所述处理器的存储器或海量存储器中的应用程序代码,所述应用程序代码能够在不响应于所述安全信号的实质上相同的非安全处理器上被执行;
从而,所述处理器能够在不进行实质改变的情况下执行所述应用程序代码,以响应指示所述安全模式的所述安全信号。
30.如权利要求12所述的一种使用安全处理器的装置,包括:
连接到所述处理器的监视电路,所述监视电路能够监视由所述处理器到外部设备的访问;
所述监视电路响应于所述安全信号并响应于一组访问规则,其中当所述处理器尝试以违反所述访问规则来访问所述外部设备时,所述监视电路能够响应于此而执行至少一个安全功能。
31.如权利要求30所述的一种使用安全处理器的装置,其中,所述监视电路响应于由所述处理器的访问,响应于以下项的至少其中之一:
由所述处理器请求的多个访问;
所述处理器执行的多个指令;
由工作于所述安全模式的所述处理器所设置的参数;或
所述处理器运行期间的间隔。
32.如权利要求12所述的一种使用安全处理器的装置,包括能够由所述处理器用于只读访问的一组安全信息。
33.如权利要求32所述的一种使用安全处理器的装置,其中所述安全信息组包括保存在非易失性存储器中的信息。
34.如权利要求32所述的一种使用安全处理器的装置,其中所述安全信息组包括保存在非易失性存储器中并对于所述安全处理器唯一的信息。
35.如权利要求32所述的一种使用安全处理器的装置,其中所述安全信息组包括保存在非易失性存储器中的信息,所述非易失性存储器具有能够使所述非易失性存储器能够进行写入的电路,当所述安全处理器被封装时,所述电路被无效。
36.如权利要求32所述的一种使用安全处理器的装置,其中所述安全信息组包括保存在非易失性存储器中的信息,所述非易失性存储器具有能够使所述非易失性存储器能够进行写入的电路,所述电路包括当所述安全处理器被封装时实质上不可以被访问的引脚。
37.如权利要求36所述一种使用安全处理器的装置,其中,所述安全信息组包括实质上对于芯片唯一的标识值,或实质上对于芯片唯一的一组私密密钥信息;从而,当该芯片有权使用相关内容并执行相关软件时,该芯片可以确保所选的一组内容或软件只能由该芯片执行。
38.如权利要求37所述的一种使用安全处理器的装置,其中所述芯片验证购买收据或许可或其它数字版权管理数据的真实性,从而所述芯片可以验证所选的内容或软件组是真实的,并且是所述芯片得到授权的。
39.如权利要求38所述的一种使用安全处理器的装置,其中所述芯片能够允许响应于对购买收据或许可或其它数字版权管理数据的真实性验证的尝试,而使用所述内容或执行所述相关软件。
40.如权利要求38所述的一种使用安全处理器的装置,其中所述收据包括:
足以实质上标识所述芯片的信息;
足以实质上识别标识值实质上对于所述内容或软件是唯一的信息。
41.如权利要求32所述的一种使用安全处理器的装置,包括用来组合密钥信息和实质上唯一的标识值的装置,从而能够为实施知识产权保护来实施数字版权管理方案。
42.如权利要求32所述的一种使用安全处理器的装置,其中所述安全信息的至少一部分使用公共密钥/秘密私钥系统或均衡加密/解密密钥来进行数字签名。
43.如权利要求42所述的一种使用安全处理器的装置,其中所述芯片能够响应于验证所述数字签名而允许使用相关内容或执行相关软件。
44.如权利要求32所述的一种使用安全处理器的装置,其中所述安全信息的至少一部分使用公共密钥/秘密私钥系统或均衡加密/解密密钥来加密。
45.如权利要求44所述的一种使用安全处理器的装置,其中所述芯片能够允许响应于加密所述安全信息的所述部分的尝试,来允许使用相关内容或执行相关软件。
46.如权利要求12所述的一种使用安全处理器的装置,其中:
所述安全信号响应于复位状态或中断状态,所述中断状态响应于非可屏蔽中断或定时器中断;和
响应于所述安全信号,所述处理器传送控制到所述安全功能,当所述处理器在所述监视模式执行指令时,所述安全功能不能被改变。
47.如权利要求46所述的一种使用安全处理器的装置,其中,响应于所述安全功能,所述处理器传送控制到退出功能,所述退出功能能够在所述安全模式时,移除任何安全信息而不为所述处理器所使用。
48.如权利要求46所述的一种使用安全处理器的装置,
其中所述处理器能够传递所述安全功能的参数,
从而,响应于所述非可屏蔽中断,所述安全功能在应用软件的要求下执行至少一个所述的安全功能,所述应用软件由所述处理器以所述监视模式来执行。
49.如权利要求46所述的一种使用安全处理器的装置,
其中所述处理器能够传递所述安全功能的参数,
从而,响应于所述非可屏蔽中断,所述安全功能在应用软件的要求下执行至少一个所述的安全功能,所述应用软件由所述处理器以所述监视模式来执行;和
其中所述安全功能包括以下功能的至少其中之一:密码认证功能、密码签名功能、密码安全功能、加密或解密功能、包括加密或解密密钥的功能,安全散列值功能。

说明书全文

中央处理器向下兼容安全保密系统处理能及安全保密系

统运行

[0001] 发明背景
[0002] 1.发明领域
[0003] 本发明涉及安全处理器,并涉及在其上的安全软件的执行,例如涉及能够安全执行应用软件的安全处理器。
[0004] 2.相关技术
[0005] 在已知的计算系统中,当考虑计算系统的价值时,处理能力的可用性不再是重要的限制,所述处理能力例如由微处理器和其它处理设备所提供。而由那些处理器来执行(并由那些处理器来呈现)的应用软件和多媒体内容的可用性,或者更准确地说,授权来使用该应用软件和多媒体内容已成为实际上的限制。这种情况的一个结果是许多计算系统的实际价值在于在该设备或平台上所执行的应用软件和多媒体内容。应用软件和多媒体内容变得更容易传播,例如使用通信网络,或通过使用廉价的CD-ROM介质进行传播,从而导致防止未授权复制和传播(有时称作“软件私有权”)具有经济上的重要意义。因此,现有技术中的一个问题是确保这种有价值的应用软件和多媒体内容只有在被授权时才可以在处理器上使用,例如已经对这种权利付费,或内容的真实性已经根据来自可信的内容发布实体的信息而得到验证。
[0006] 现有技术的另一问题在于,希望向应用软件和多媒体内容提供这样的特性,使得在没有授权或更改的情况下不能在处理器上使用该应用软件和多媒体内容,而同时却不希望重新设计或重新编写该应用软件或多媒体内容以提供该特性。存在大量的可用应用软件和多媒体内容集,并且应用软件和多媒体内容的价值相当大,所以改变该应用软件或该多媒体内容的方案可能很昂贵,不可靠并且不实用。
[0007] 因此,无需实质性地改变原应用软件或多媒体内容,而将应用软件和多媒体内容限制到那些授权有该应用软件和多媒体内容的处理器是很有利的。
[0008] 发明内容
[0009] 本发明提供了一种安全处理器,和一种使用该安全处理器的方法和系统,其能够确保应用软件安全地执行,并能够确保只执行被授权的应用软件和只显示被授权的多媒体内容。另外,确保被授权内容只能在已经购买该内容的权利或许可的设备上播放并能够 被验证也是重要的。所述安全处理器包括两种工作模式,监视模式和安全模式。前者对该应用软件透明地执行应用软件。后者验证所述应用软件的执行(和多媒体内容的显示)是得到授权的,并执行由该应用软件所需的任何特别服务。所述安全处理器对于该应用软件可以呈现为与普通的处理器相同的硬件,从而,为普通处理器编写的应用软件无需实质改变就可以在该安全处理器上执行。所述安全处理器在其呈现为与普通处理器硬件相同的部分上只需要附加很少的硬件,从而该安全处理器可以运行而在实际上不会降低速度和对于应用软件可用的其它资源。在一个实施例中,所述安全处理器的一部分实际上与原普通处理器的半导体芯片相同(除了使用不同的芯片尺寸和制造技术的情况),从而实际上确保了所述应用软件在所述安全处理器上的执行就如同在原普通处理器上的执行一样。 [0010] 在一个实施例中,安全处理器以安全模式加电启动执行。在该启动运行阶段,安全处理器以安全模式执行安全代码。该安全代码被保存在安全处理器芯片内部的永久存储器中并因此是可信的。该安全代码从一个或多个可信的源加载附加的源代码,从而参考也保存在安全处理器芯片内部的永久存储器中的并且是可信的安全信息,来验证这些源的可信性和附加源代码的真实性。所述安全信息可以包括但不必限于:加密密钥、安全散列值(secure hash value),或其它用来验证可信源和验证附加源代码的真实性的数据。 [0011] 一旦被加载,所述附加源代码就能使安全处理器从可信源请求应用软件,验证该安全处理器是否有权执行所请求的应用软件,验证该应用软件是否已经被正确加载,并检查该应用软件的完整性。在本发明的环境中,并不特别要求所述永久存储器或是可信源具有在此所述的特定实现方式。例如,但不是为了以任何方式进行限定,永久存储器或一个或多个可信源可以使用连接到安全处理器的硬件设备来代替或补充(例如,由用户)。在该例子中,安全处理器在信任由该源加载的任何代码之前,将验证该连接的完整性,验证其真实性,并校正该硬件设备的操作。
[0012] 所述安全处理器能够退出安全模式并执行已经以监视模式被正确加载的应用软件。应用软件无需进行实质性的改变就可以以该应用软件原来的代码执行,从而该应用软件处于实质上与普通处理器没有显著不同的处理器环境。当应用软件需要安全处理器监视的服务时,应用软件产生中断,从而使得重新进入安全模式,并将这些服务传送给应用软件,并退出安全模式,从而该应用软件可以继续以监视模式执行。例如,但不以任何方式限于,该应用软件可以请求要被请求、加载和执行的额外的应用软件模。其它的服务还包括,安全处理器可以监视I/O操作,所述应用软件可以使用提供给可由安全处 理器执行的安全代码的API(应用程序编程接口)来请求该I/O操作。
[0013] 所述安全处理器还可以使用定时器来中断应用软件,进入安全模式,执行任何所希望的步骤,和重新进入监视模式。其中,可以使用不只一种技术来进入安全模式,所述安全处理器能够确定通过哪一种技术来进入安全模式。所述安全处理器还能够记录对外部存储器的访问,从而能够验证应用软件的正确执行。其它的特征还包括,安全处理器还具有监视(即,检查并确认其属性)I/O操作的能力,或者,安全处理器还具有在应用软件的请求下执行(优选地,在检查和确认其属性之后)安全操作的能力。
[0014] 例如,但不是为了以任何方式进行限制,所述安全处理器能够检查在外部存储器中应用软件打算访问的那些位置。如果应用软件打算访问由安全处理器所允许的位置范围之外的任何位置,那么安全处理器对此做出响应,确定应用软件没有正确执行。例如,但不是为了以任何方式进行限制,在这种例子中,应用软件可能具有软件错误,或可能包括软件病毒,或可能是故意恶意设计的情况。响应于此,安全处理器可以采用合适的行动来限制任何这种不正确的影响。例如,但仍然不是为了以任何方式进行限制,在这种例子中,安全处理器可以采取行动限制应用软件访问到那些外部存储器位置,可能采取行动停止应用软件的操作,或可能采取行动对应用软件执行软件病毒检查或软件病毒清除。 [0015] 所述安全处理器还能够代表应用软件执行加密或解密,从而应用软件无需知晓,对于其普通操作,正在执行加密、解密,或其它安全特征。作为第一个例子,但不是为了以任何方式进行限制,应用软件可以执行对从服务器、从外部海量存储器或从外部存储器所加载的附加代码或多媒体内容的真实性检查,而无需访问安全处理器的唯一的ID或密钥,但是仍然使用安全处理器的安全特征的全部能力。作为第二个例子,但仍然不是为了以任何方式进行限制,应用软件可以加密或解密其与外部实体通信的安全信息,仍然不需要访问安全处理器的唯一的ID或加密密钥或解密密钥,但是仍然使用安全处理器的安全特征的全部能力。
[0016] 在一个实施例中,所述安全处理器包括唯一的ID,并能够使用该唯一的ID(以及与该唯一的ID相关的唯一的加密或解密密钥)来特定地识别安全处理器的特定情况。在这些实施例中,当代表应用软件执行加密或解密时,安全处理器使用该唯一的ID和唯一的加密或解密密钥。例如,但不是为了以任何方式进行限制,安全处理器可以代表应用软件执行加密或解密,从而在与外部实体进行通信时使用该唯一的ID和唯一的加密或解密密钥。在一个这样的例子中,安全处理器可以与外部实体进行通信来进行确认、 交换、或获得DRM(数字版权管理)信息。
[0017] 所述安全处理器在非易失性存储器(例如,NVROM)中保存着所述唯一的ID、代码签名或密码散列值(cryptographic hash),和唯一的加密或解密密钥,以及任何其他的安全处理器的特殊情况的特异性信息。所述NVROM包括一个非连接(non-bonded)的引脚,在制造或配置安全处理器期间使用,以记录安全处理器的特殊情况的特异性信息,该引脚在制造或配置安全处理器之后保持非连接,从而使NVROM不能被进行第二次擦写。 [0018] 由于具有唯一的ID(和唯一的加密或解密密钥),包括安全处理器的系统具有多个优点:
[0019] *使用安全处理器与服务器进行通信是可以追踪的,因此,尝试未授权下载应用软件或多媒体内容的用户可以被通知进行付帐。
[0020] *由于安全嵌入了唯一的ID和唯一的加密或解密密钥,所以允许服务器信任安全处理器,而无需验证或信任安全处理器的尝试下载应用软件或多媒体内容的部分,例如其安全引导代码。服务器只需信任制造商来安全嵌入唯一的ID和唯一的加密或解密密钥。 [0021] *包括安全处理器的系统对于用户擅改以尝试截取发向和来自安全处理器的信号或在系统中出现的信号具有抵抗力,这是因为与安全处理器进行通信的敏感数据为了安全可以被加密。尝试危害敏感数据的安全将会涉及到对安全处理器芯片的困难的解构过程。 [0022] *在所述安全处理器中,执行应用软件或呈现多媒体内容的CPU基本上与原非安全处理器相同,因此,尝试使该安全处理器的安全特征失效也将使得该CPU的所需功能失效。
[0023] *所述安全处理器可以通过CPU安全地验证执行应用软件或显示多媒体内容的权利。例如,但不是为了以任何方式进行限制,可信的服务器(或其它可信的实体,例如认证机构)可能发布能够通过安全处理器验证其真实性的安全数字购买收据,例如通过使用唯一的ID和唯一的加密或加密密钥。在这些例子中,所述安全数字购买收据可唯一地识别有权执行应用软件或显示多媒体内容的特定设备(或设备种类)。
[0024] *所述安全处理器可以对应用软件和多媒体内容实施复制禁止或复制保护。例如,但不是为了以任何方式进行限制,这种内容可以包括(1)一组允许CPU执行的已购买的应用软件,或允许CPU呈现的已购买的多媒体内容,(2)能够使该执行或显示进行 的数字版权,(3)用于CPU和其它设备之间的信息,例如,对等层消息,但不是为了限于特定的设备(或设备种类)。
[0025] 附图简述
[0026] 图1显示了一个系统框图,所述系统包括能够进行安全执行的安全处理器。 [0027] 图2a和2b显示了操作能够进行安全执行的安全处理器的方法流程图。 [0028] 图3显示了一个电路框图,所述电路包括用来以实际上非可擦除方式编程非易失性存储器的设备。
[0029] 图4显示了操作电路的方法流程图,所述电路包括用来以实际上非可擦除方式编程非易失性存储器的设备。
[0030] 优选实施例的详细描述
[0031] 在此说明书中,描述了本发明的优选实施例,包括优选的处理步骤和数据结构。本领域的熟练技术人员将意识到,在熟读该申请之后,无需过多的实验或进一步的创新,有可能使用多种没有具体描述的其它技术来实现本发明的实施例,并且这些其它技术将落入本发明的范围和精神内。
[0032] 词汇
[0033] 下面的术语涉及或参考本发明或其实施例的多个方面。每个术语的一般意义的目的在于进行说明,而不是为了限制。
[0034] *短语“安全处理器”描述了一种设备,所述设备具有确保只有可信的软件才可以在子单元上执行的能力,所述子单元包括“处理器”或“处理单元”(在此有时称为“CPU”)。在所述安全处理器内,处理器或处理单元的概念是宽泛的,并且至少包括以下设备:具有通用指令集的通用处理器,具有有限指令集的专用处理器,一组能够执行或中断程序指令的专用电路,一组能够仿真任何类型的安全处理器的硬件程序指令,及其任何合理的概括,等等。
[0035] *短语“应用软件”描述了一组能够由处理器执行或中断的指令或参数。在此应注意,应用软件的概念是宽泛的,并且至少包括以下项目:软件或硬件程序指令,软件或硬件程序参数值,能够通过编程语言编译器编译或通过编程语言解释器解释的源代码,用于编译或解释编程语言的宏定义,由应用程序接收并对其采取行动的命令或请求,及其任何合理的概括,等等。
[0036] *短语“多媒体内容”描述了能够呈现给用户的一组信息或参数。在此应注意,多媒体内容的概念是宽泛的,并且至少包括以下项目:动画,视听电影,静态图片,或声音,其或者嵌入在用于通过软件或硬件程序指令进行解释和显示的数据中;或者嵌入在用来产生这些数据本身的软件或硬件程序指令中;或者嵌入在用于多媒体内容的标记语言中,例如DHTML、SGML、VRML、Macromedia Flash等等;由应用程序接收并对其进行动作的命令或请求;及其任何合理的概括;等等。
[0037] *短语“监视模式”和“安全模式”描述了安全处理器的可能的工作状态。在此应注意,监视模式和安全模式的概念是宽泛的,并且至少包括以下项目:任何可区别的状态,其中由安全处理器执行或解释的指令具有对处理器能力的可区别的访问度,并且其中安全处理器在处于安全模式时能够执行安全处理器处于监视模式时的任何类型的监视或限制,等等。
[0038] *(由安全处理器对应用软件)进行透明执行和(由处理器对应用软件)的明显硬件识别的概念描述了安全处理器执行应用软件的能力,就该应用软件来说,就像是该应用软件正在普通处理器上执行那样。这具有这样的效果,即,安全处理器可以执行该应用软件,而无需对该应用软件做任何修改,但是仍然能够保持如在此所描述的安全特征。仅仅作为一个例子,并不是以任何方式进行限制,安全处理器的一部分可能实际上与原普通处理器的半导体芯片相同,从而实际上确保了应用软件如同其在原普通处理器上那样在安全处理器上同样地执行。
[0039] *短语“加电”描述了处理单元的启动操作阶段,无论其在电源实际变化之后发生、在复位信号之后发生,或者在安全处理器的任何其它实际初始化状态之后发生。如在此所描述的那样,加电的概念是宽泛的,并且意图包括在此所描述的任何启动操作状态,及其概括。
[0040] *短语“安全代码”和“安全引导加载程序代码”描述了可以由安全处理器解释或执行的程序指令,并且安全处理器已知该指令是可信的。安全代码例如可能由于已经被保持在安全处理器芯片的永久存储器中而被认为是可信的,但不限于此。从这些可信的安全代码开始,由于已经从可信资源接收并被先前建立的“安全代码”或“安全引导加载程序代码”鉴别为正确,所以附加安全代码可以被建立为“安全代码”。在此应注意,安全代码的概念是宽泛的,并且意图包括安全处理器可以信任该代码的任何程序代码,该代码包括例如用来执行安全功能。
[0041] *短语“安全功能”和“安全核心软件”描述了可以由安全处理器解释或可执行的 程序指令,该指令对安全处理器来说已知是可以验证的,并能够实现与安全、认证或验证相关的功能。例如,但不是为了以任何方式进行限制,包括数字签名、加密和解密、数字签名的验证等的功能可以通过安全功能或安全核心软件来实现。在一个实施例中,这种安全功能或安全核心软件可以使用API(应用程序编程接口)而可以由应用软件来使用。在一个实施例中,安全核心软件通过安全引导加载程序代码加载并在执行之前对完整性和/或真实性进行验证。与安全有关的软件部分包括在“安全代码”的概念内,所述软件部分已经被验证并保存在安全处理器芯片的存储器内(可能是易失的)。
[0042] *短语“安全处理器芯片”(在此有时称作“芯片”)描述了在其上实施安全处理器的物理硬件。如在此所描述的那样,安全处理器芯片包括硬件结构和程序指令,对于安全处理器来说已知是可信的,并且其他人难于干扰或破坏其安全性。
[0043] 本发明的范围和精神并不局限于这些定义中的任何一种,也不局限于在此所提到的具体例子,相反,本发明意图包括由这些和其它术语所体现的最一般的概念。 [0044] 系统单元
[0045] 图1显示了一个系统框图,所述系统包括能够进行安全执行的安全处理器。 [0046] 系统100包括安全处理器110、通信链路120、和至少一个软件或内容发布器130。可选地,软件或内容发布器130(在此有时称为可信的服务器130)可以包括可信的服务器,所述可信的服务器能够在线或离线传送附加内容到安全处理器110或到由安全处理器110所控制的设备。
[0047] 在一个实施例中,系统100还包括应用设备140,包括至少一个输入设备141和至少一个输出设备142,这些设备在由安全处理器110执行的应用软件143的控制下进行工作。
[0048] 当安全处理器工作在监视模式时,应用设备140可以执行任何所需的应用程序。作为一个例子,但不是以任何方式进行限制,应用设备140可以包括用来播放或参与实时视听游戏的设备,例如,可以安装在电玩机(arcade)或个人计算机中。然而,在本发明的上下文中对应用设备140并没有如此特定的要求。相反,应用设备140通常可以包括游戏设备;个人计算机或个人工作站;任何手持设备,例如寻呼机,PDA(个人数字助理)或其它手持计算机,笔记本或膝上计算机,电话,手表,位置或条件传感器生物测定传感或报告设备,起博器,电话设备,或远程寻的设备(remote homing device)。
[0049] 更概括地说,只要安全处理器110能够执行在此描述的功能,应用设备140可以包括遵循计算规范的任何设备。
[0050] 为了向芯片附加传送真实的应用或内容,通信链路120可以包括从可信的服务器130到安全处理器110的通信链路。例如,但不是为了以任何方式进行限制,通信链路120可以包括使用因特网或其一部分的通信链路,或实时,或使用一个或多个存储和转发设备,或使用一个或多个中间缓存设备,或通过存储介质进行物理传送。然而,在可选实施例中,通信链路120可以包括到专用或公共交换电话网络的通信链路,租用线路或其它专用通信链路,射频收发信机微波收发信机,无线或有线调制解调器,或其它能够代表安全处理器110与可信的服务器130进行通信的设备或系统。更概括地说,通信链路120可以包括任何用来传送内容的可想象到的技术,例如,从可信的服务器130物理运送并传送的存储介质(例如,CD-ROM)。
[0051] 可信的服务器130包括例如作为电子分布系统的一部分的内容发布、传送或服务实体。在一个实施例中,可信的服务器130(可选地)能够为其分布的任何内容产生数字签名,所述内容例如应用软件或多媒体内容,从而安全处理器110能够验证该内容的真实性。在一个实施例中,可以使用数字签名技术来产生该数字签名,所述数字签名技术带有公用密钥密码系统,类似属性的系统,或能够产生可以用来验证内容的真实性的信息的其它类型的系统。
[0052] 在可选实施例中,可信的服务器130可以包括能够接收包括信息请求的消息并产生包括对于那些信息请求的响应的消息的逻辑远程设备。例如,但不是为了以任何方式进行限制,可信的服务器130可以包括包含高端PC或工作站的因特网服务器。虽然在一个实施例中,可信的服务器130包括单机服务器,但是,在本发明的上下文中对可信的服务器130并没有如此特定的要求。相反,可信的服务器130通常可以包括能够如在此所描述那样进行动作的任何设备,并可以包括硬件元件或软件元件,或包括两者。而且,在本发明的上下文中,对可信的服务器130包括任何特定元件的组合,或对可信的服务器130是单个设备,或甚至其包括任何特定设备的全部,并没有如此特定的要求。相反,可信的服务器130通常可以包括另一个设备的一个或多个部分,并通常可以包括不只一个联合或合作工作的设备(或其部分)。更概括地说,如上所述,可信的服务器130可以包括任何用来产生或封装传送内容的可能想到的设备,例如用来写存储器介质(例如,CD-ROM)的设备,所述存储器介质有待于物理运送并传送到安全处理器110。
[0053] 如上面所注意的那样,更概括地说,可信的服务器130可以包括用来传送内容的任何可能想到的技术。在本发明的上下文中,对于任何实际在线内容传送或甚至对于任何在安全处理器110和可信的服务器130之间的任何现场或实时链路来说,不存在特定要 求。例如,但不是为了以任何方式进行限定,应用软件或多媒体内容可以通过任何下面的技术或它们的某些组合或联合,从可信的服务器130传送到安全处理器110: [0054] *所述应用软件或多媒体内容可以使用交互或交换通信系统进行传送。 [0055] *所述应用软件或多媒体内容可以使用物理存储介质进行传送。
[0056] *所述应用软件或多媒体内容可以通过任何技术从第三方以编码或加密形式进行传送,并可以通过任何技术从可信的服务器130传送用来解密或解密的密钥。 [0057] *所述应用软件或多媒体内容可以通过任何技术从第三方进行传送,并且可以通过任何技术从可信的服务器130传送证书或其它真实性的保证。
[0058] *所述应用软件或多媒体内容可以通过任何技术,使用中间存储设备或其它类型的缓存设备,使用因特网或任何其它分布技术进行传送。
[0059] 所述安全处理器110包括监视处理器111、一组安全逻辑112、和一组安全信息113。安全处理器110可以工作在监视模式或安全模式。当工作在监视模式时,安全处理器
110使用包括监视处理器111的电路。当工作在安全模式时,安全处理器110使用包括监视处理器111和安全逻辑112的电路,并且还使用包括安全信息113的数据。
[0060] 1.监视处理器
[0061] 监视处理器111包括内部总线114、CPU A100、CPU存储器接口A103、海量存储器接口A135、存储器接口A140、一组专用电路A145、海量存储设备A150、一组RAMA155。 [0062] 内部总线114在监视处理器111的各部分之间能够传输信号,该信号包括对于数据的请求和包括数据的响应。内部总线114连接到CPU存储器接口A103,海量存储器接口A135、存储器接口A140、专用电路A145、和海量存储设备A150。
[0063] CPU A100可以包括任何能够执行在此所述的功能的通用处理器或专用处理器。例如,CPU A100可以包括例如那些由AMD或Intel制造的通用处理器,或例如DSP或嵌入的微控制器那样的专用处理器。
[0064] CPU存储器接口A103连接到CPU A100。CPU存储器接口A103从CPU A100接收存储器访问请求并记录CPU A100对RAMA 155的访问。虽然在一个实施例中,CPU存储器接口A103记录所有的这些访问,在可选实施例中,CPU存储器接口A103可以选择只记录这些访问中的一些,例如,只是那些在由安全逻辑112或安全信息113指定选定组的存储器位置中指定的访问。
[0065] 海量存储器接口A135执行与海量存储器设备A150相适合的接口功能。所述海量 存储设备A150可以包括硬盘软盘,磁带,或其他类型的海量存储器。
[0066] 存储器接口A140执行与外部存储器相适合的接口功能(即,RAMA 155)。RAMA155包括所有形式的随机访问存储器,既可以是可擦写的也可以是不可擦写的,并且如果可擦写,既可以是可擦写多次,也可以是仅可擦写一次。
[0067] 专用电路A145执行任何其它对于具体的监视处理器111的特定的功能,而不是已经由CPU A100执行的功能。CPU A100和专用电路A145可以联合或合作执行所选的功能。 [0068] 2.安全逻辑
[0069] 安全逻辑112包括安全模式开关电路A105、安全定时器电路A110、一组安全引导代码A115、访问控制电路A133、安全模式激活信号A160、一组访问控制信号A163、NMI(不可屏蔽中断)信号A165、和用来接收外部复位信号A170的端口A171。此外,带有安全功能的一组安全代码A120可以保存在海量存储器A150中。
[0070] 安全处理器110能够响应于外部复位信号A170。响应于复位信号A170,CPU A100传送控制到(即,开始在新的位置执行指令)安全引导代码A115中的预先选择的复位位置。预先选择的复位位置以及安全引导代码A115都不能被CPU A100或任何其它应用软件改变。
[0071] 响应于复位信号A170,安全模式开关电路A105产生安全模式激活信号A160,该信号建立访问权利以便允许CPU A100访问安全引导代码A115,执行其指令,并使用该安全信息113读写数据。一旦复位,安全处理器110就传送控制到复位位置,并执行所述安全引导代码A115,并(所述安全模式激活信号A160为逻辑TRUE)允许CPUA100访问芯片的限制安全部分。在一个实施例中,安全引导代码A115被保存在分离的非易失性存储器A115中,其位置及其内容都不能由任何应用软件改变。
[0072] 在执行完任何必需的安全检查之后,安全引导代码A115从外部海量存储器A150中查找并加载任何被包括在安全核心代码A120中的附加的软件和安全功能,并加载到内部RAM A 120中。
[0073] 在查找并加载任何附加的安全代码A120之后,CPU A100传送控制到该安全代码A120,并开始执行该安全代码。安全代码A120使得CPU A100准备鉴证并执行该应用程序代码143。一旦完成准备执行该应用程序代码143,安全代码A120就使安全处理器110退出安全模式。
[0074] 安全处理器110还能够响应于NMI信号A165。NMI信号A165例如可以通过应用 程序代码143产生(例如,通过由CPUA100可以执行的程序指令)来请求要以安全模式执行的业务。这种业务的例子可以是执行安全功能或其它只有安全代码A120才有权执行的功能。为了请求这种业务,应用程序代码143在安全逻辑112中设置选定的比特。安全模式逻辑将安全模式激活信号A160设置为逻辑TRUE,从而使CPU A100能够访问安全处理器110的安全部分。同时,安全逻辑112发送NMI信号A165给CPU A100,使得CPU A100传送控制给芯片内部的安全引导代码A115。安全引导代码115执行应用程序的业务,将结果呈递给在RAMA155中的某些共享存储器位置,并使用安全逻辑112退出监视模式。预先选择的NMI处理器位置、安全引导代码A120和用来加载和验证安全核心软件的技术不能由CPUA100或任何应用软件来改变。
[0075] 如上所述,安全核心代码A120被保存在内部存储器中(非易失性存储器中,或易失性存储器中,在该情况下,其从外部储存器加载并验证)。安全代码开关电路A105产生安全模式激活信号A160,其使得CPU A100能够访问包括安全引导代码A115的非易失性存储器C100,从而CPU A100可以执行其指令,并使用安全信息113读写数据。
[0076] 安全定时器电路A110能够响应于由安全模式开关电路A105设置的参数而产生CPU A100的定时器中断信号。安全逻辑112还可以响应于来自安全定时器的时间限制已到的信号(timeout)而产生到CPU A100的NMI信号A165。作为响应,CPU A100传送控制到安全核心代码A120中预先选择的定时器中断处理器位置。预先选择的定时器中断位置和安全核心代码A 120都不能由CPU A100或任何应用软件(或保存在外部存储器A150中的任何其它软件)来改变。
[0077] 响应于定时器中断信号A165,并类似于进入安全模式的其它方法,安全处理器110将安全模式激活信号A160设置为逻辑TRUE,从而能够访问安全芯片的安全部分。 [0078] 访问控制电路A133响应于安全模式激活信号A160,通过产生访问控制信号A163来控制到安全处理器110的单元的访问,该控制电路连接到执行访问控制的安全处理器
110的每一个单元。当安全模式激活信号A160指示安全处理器110处于安全模式时,访问控制电路A133允许CPU A100访问安全处理器110的所有单元。当安全模式激活信号A160指示安全处理器110处于监视模式时,访问控制电路A133允许CPU A100只访问安全处理器110的后向兼容监视模式部分。在优选实施例中,这种后向兼容模式部分不包括安全逻辑112(除非指示进入安全模式)和安全数据113。
[0079] 更具体来说,当安全模式激活信号A160指示安全处理器110处于监视模式时,访 问控制电路A133防止CPU A100访问安全模式开关电路A105(除非指示进入安全模式)、安全定时器电路A110,安全引导代码A115、安全核心代码A120、访问控制电路A133本身、安全模式激活信号A160、访问控制信号A163、只读安全数据A125、R/W易失性安全状态值A130、加密/解密键B101、和许可信息B102。
[0080] 3、安全信息
[0081] 安全信息113包括一组只读安全数据A125、R/W易失性安全状态值A130、一组私密钥(例如来自公共密钥加密系统)、一组加密/解密密钥、一组可选的唯一的ID和一组签名信息B101。
[0082] 只读安全数据A125包括一组安全代码,如上所述,例如响应于复位信号A170,可选地响应于NMI信号A165,响应于定时器中断信号A165,能够由CPU A100执行的可用的代码,或当进入安全模式时的能够由CPU A100执行的可用的代码。
[0083] 在一个实施例中,只读安全数据A125包括一组一个或多个私密钥,和一组加密/解密密钥B101,优选地对于各个安全处理器110来说是唯一的。在这种实施例中,安全处理器110使用加密/解密密钥B101通过使用公共密钥加密系统(例如通过使用在公共密钥加密系统中的私密/公共密钥对的私密密钥)来解密来自可信源的消息。可选地,安全处理器110可以具有另一组代码签名B103,其不同于加密/解密密钥B101,通过使用该代码,使用其它认证技术认证可信源。类似地,在这种实施例中,安全处理器110使用代码签名B101来验证要加载到存储器中的附加安全代码的准确性,例如当从已认证的可信源接收到附加安全代码时,通过标注与该附加安全代码相关的数字签名或安全散列值的正确性的方式来进行。
[0084] 在一个实施例中,只读安全数据A125还包括一组密钥信息B102,通过该信息,各个安全处理器110能够认证源并验证各个安全处理器110是否有权接收并执行相关的应用软件。例如,许可信息B102可以包括来自可信权利机构的签署证明,指示许可各个安全处理器110执行相关的专用软件。在这些实施例中,响应于许可信息B102,所认证的可信源提供了安全处理器110可以加载并执行应用软件的相关能力。在一个实施例中,这些能力包括应用软件本身,或授权安全处理器110加载并执行应用软件的DRM(数字版权管理)证明。
[0085] R/W易失性安全状态值A130包括安全处理器110需要来执行安全代码的任何读/写易失性存储器。在一个实施例中,安全处理器110在R/W易失性安全状态值A130中保存了其所有的易失状态,从而应用程序代码不能访问由安全代码所使用的任何状态信 息。安全处理器110在安全核心代码A120中还包括可以由CPUA100执行的指令,来对将由CPUA100执行的任何软件进行相关的认证和有效检查。通过在R/W易失性安全状态值A130中保存安全处理器110的所有易失状态,还能够增加用户尝试读取该状态并违反安全处理器110的安全模式操作的安全性的工作因数。然而,在可选实施例中,安全处理器110可以至少将其易失状态的一些保存在普通存储器中,从而应用程序代码可以访问与该状态相关的某些值。
[0086] 操作方法
[0087] 图2显示了操作能够进行安全执行的安全处理器的方法流程图。
[0088] 方法200由系统100来执行。虽然方法200以串行方式进行描述,但是方法200的流程点和步骤可以通过联合或并行的分离单元异步或同步地执行,以管道方式或其他方式进行。没有特定要求所述方法200必须以本说明书所列出的流程点或步骤相同的顺序来执行,除非有明确的指出。
[0089] 1、加电
[0090] 在流程点210,安全处理器110准备好加电。
[0091] 在步骤211,安全处理器110被加电。
[0092] 在步骤212,产生复位信号A170,从而指示安全处理器110已经刚刚被复位。当安全处理器110被复位时,产生安全模式激活信号A160(即,设置为逻辑TRUE),并且CPUA100跳转到(即,传送执行控制到)安全引导代码A115。
[0093] 在步骤213,安全模式开关电路A105产生安全模式激活信号A160,其指示非易失性存储器C100(图3)允许CPU A100访问安全引导代码A115,执行其指令,并使用安全信息113读写数据。然后,CPUA100传送控制到安全引导代码A115中的预先选择的复位位置。 [0094] 在步骤214,CPUA100执行来自安全引导代码A115的指令。
[0095] 在步骤215,CPU A100执行安全引导代码A115。
[0096] 在一个实施例中,一旦复位,下面在MIPS或MIPS兼容处理器上示例性的实现方式导致进入安全模式。该示例性实现方式开始于流程点250,并包含本应包括在步骤214和步骤215中的动作。
[0097] *在步骤251,复位信号产生进入安全模式的请求。
[0098] *在步骤252,如果并且只有做出到复位位置Oxlfbc0000的后续未缓存的读取,那么安全逻辑112就准备将安全模式信号A165设置为逻辑TRUE。
[0099] *在步骤253,CPU A100中断正常执行来响应于复位信号。
[0100] *在步骤254,CPU A100尝试从位置Oxlfbc0000取回下一个指令,从而调用复位中断处理程序或NMI中断处理程序。
[0101] *在步骤255,安全逻辑112将安全模式信号A165设置为逻辑TRUE,从而能够访问芯片的安全部分并执行引导安全代码。
[0102] *在步骤256,CPU A100继续执行在安全引导代码A120中的复位中断处理程序或NMI中断处理程序。
[0103] 在执行安全引导代码A120之后,如果存在,下面的步骤就从海量存储器A150加载安全核心或安全功能。
[0104] 安全引导代码A115读取安全信息113,接收附加密码签署或可验证的指令,并将那些附加指令记录在内部RAM A 155中。为了执行该步骤,CPU A100执行下面的子步骤: [0105] *在子步骤215,工作在安全模式的CPU A100,在已经加载并通过安全引导代码A120认证之后,执行来自外部海量存储器A150的软件(可以从服务器设备获得)。在一个实施例中,消息被使用来自只读安全数据A125的加密/解密密钥B101加密,并在工作于安全模式时只有CPU A100能够访问。
[0106] 虽然在一个实施例中,CPU A100使用通信链路120获得附加指令,在可选实施例中,系统100可以通过其它手段获得附加指令(它们的全部或部分)。在此所述的一些例子但不是为了以任何方式进行限制,包括获得此类附加指令的可能性,或者(1)通过物理介质,或(2)从第三方获得,具有DRM(数字版权管理)证明或从服务器设备获得的其它能力。
[0107] 而且,虽然在一个实施例中,附近指令被以加密形式进行发送,但是在可选实施例中,系统100也可以非加密形式获得这些附加指令(它们的全部或部分),来实施使用那些附加指令的权利,所述附加指令使用DRM证书、其它能力或其它技术来管理。 [0108] *在子步骤216,工作于安全模式的CPU A100也认证所述的软件,并根据安全信息验证其完整性,所述安全信息或者来自芯片内,或已经根据来自可信的服务器的消息而被验证,所述可信的服务器的可信性已经通过安全软件或数据而建立。在一个实施例中,CPU A100使用公共密钥加密系统执行该认证子步骤,所述加密系统包括来自只读安全数据A125的加密密钥或代码签名B101,并使用包括在加密/解密密钥B101或其它只读安全数据A125中的有关可信的服务器130的信息(例如,可信的服务器130的公 共密钥)。 [0109] *在子步骤216,可信的服务器130可选地验证安全处理器110是否有权从可信的服务器130接收应用软件或其它附加指令。在一个实施例中,CPU A100使用公共密钥加密系统,使用来自只读安全数据A125的加密/解密密钥B101,并使用来自只读安全数据A125的许可信息B102或其它信息执行该认证子步骤。
[0110] 本领域普通技术人员将认识到,在熟读本申请之后,可以使用很多其它的技术来使用加密签名和可信的根密钥来认证来自服务器的软件或数据。而且,并没有特定要求是否只需要对可信的服务器130进行认证。在可选实施例中,可以是服务器和客户相互进行认证。
[0111] *在子步骤217,工作在安全模式的CPU A100从可信的服务器130接收应用软件或其它附加指令,并验证该应用软件或那些附加指令的准确性。在一个实施例中,CPUA100使用公共密钥加密系统,使用来自只读安全数据A125的加密/解密密钥B101,或使用来自只读安全数据A125的应用软件或其它附加指令的安全散列值来执行该验证子步骤。 [0112] *在子步骤218,工作在安全模式的CPU A100将应用软件或其它附加指令记录在RAM A155中。该子步骤的结果是应用软件或其它附加指令准备好以由CPU A100执行。 [0113] 虽然在此描述了一个用来认证和加载应用软件的示例方法,但是其它和进一步的技术也可能完成这些任务。如上所述,在本发明的上下文中,对于应用软件的认证是否涉及任何特定的技术并无要求,尤其是,对于应用软件的认证是否涉及与可信的服务器130的交互通信更无要求。
[0114] 在一个实施例中,通过安全处理器110获得至少安全核心代码A120自身的某些部分来作为这些附加指令。在一个实施例中,可以使用下面的技术:
[0115] *在启动(加电或接收到复位信号)时,CPU A100被迫执行安全核心代码A120,所述安全核心代码由安全引导代码验证为正确和安全的。
[0116] *在通过自举加载程序(bootstrap loader)加载程序代码之后,CPU A100执行安全核心代码A120,从而从海量存储器A150或其它外部设备向内部存储器加载并复制用来执行安全功能的代码。在一个实施例中,所述内部存储器是芯片上的易失性存储器,例如,SRAM存储器。
[0117] *非易失性可一次性擦写的存储器C110(图3)在制造安全处理器芯片时,使用强加密的签名值进行初始化,所述强加密的签名值例如为160比特的安全散列值或文摘值。 在一个实施例中,安全散列值或文摘值可以包括SHAI安全散列值或其它已知的强加密签名值。如在此所描述的那样,非易失性可一次性擦写存储器的构造和初始化防止其在制造安全处理器芯片之后被应用软件修改。
[0118] *安全核心代码A120的自举加载程序部分计算新加载程序代码的签名,并比较所计算的签名和已经内部存储在非易失性存储器C110中的预先计算的签名。如果所计算的签名和预先计算的签名匹配,那么安全核心代码A120的自举加载程序部分就得出结论,新加载的程序代码是正确可信的。一旦得到这样的结论,就允许CPUA100以安全模式执行新加载的程序代码。
[0119] *在一个实施例中,在每次尝试加载打算以安全模式执行的附加软件时,CPU A100重新验证新加载的程序代码是否正确可信。例如,而不是以任何方式进行限制,这些情况可以包括(1)每次从RAM A155、海量存储器A150、或任何其它外部设备加载安全核心代码A120的一部分时,(2)每次希望加载附加软件并添加到安全核心代码A120时,例如需要由安全核心代码A120所提供的新的安全功能或新功能。
[0120] *如在此所注释的那样,在一个实施例中,CPU A100单独验证新加载的程序代码是否正确可信。例如,但不是以任何方式进行限制,这些情况可以包括(1)当从RAMA155、海量存储器A150、或任何其它外部设备加载多个模块时,为每个模块保存一个单独的预先计算的签名,(2)当希望在一系列模块中加载附加软件时,在每个模块中为下一个种模块找到新的预先计算的签名,(3)既为每个模块保存单独的预先计算的签名,又为一组这种模块保存预先计算的签名。
[0121] *在步骤219,安全处理器110从安全模式退出到监视模式。在此,后面将略述从安全模式退出的一般示例方法。
[0122] 2.业务请求
[0123] 在流程点220,安全处理器110以监视模式执行应用软件。该安全模式准备好从应用软件接收业务请求。
[0124] 在步骤221,应用软件向安全处理器110提出业务请求。
[0125] 在步骤222,在一个实施例中,应用软件将业务请求的参数放置在安全模式逻辑中的一组选定的寄存器中。
[0126] 在步骤223,安全代码逻辑112将安全模式信号A160设置为逻辑TRUE。 [0127] 在步骤224,安全模式逻辑112产生到CPUA100的NMI中断信号A165,从而CPUA100传送控制到安全核心代码A120来满足业务请求。
[0128] 在步骤225,类似于步骤213,CPUA100以安全模式跳转到预先选择的中断处理程序位置。安全模式开关电路负责A105产生安全模式激活信号A160,其使得CPU A100能够访问所述安全代码,执行其指令,并使用安全信息113读写数据。
[0129] 在步骤226,类似于步骤214,CPU A100执行来自安全代码的指令。安全代码处理NMI中断。
[0130] 在一个实施例中,下面在MIPS或MIPS兼容处理器上的示例性实现方式导致在应用程序代码143的请求下进入安全模式。该示例性实现方式开始于流程点250。 [0131] *所述应用程序对安全模式逻辑中的寄存器执行未缓存的读取。如果并且只要遇到来自NMI复位位置Oxlbfc0000的随后读取,那么这就“装备”了所述安全模式逻辑来条件性地进入安全模式。
[0132] *在步骤252,如果并且只要对复位位置Oxlfbc0000做出后续未缓存的读取,那么安全逻辑112就准备将安全模式信号A165设置为逻辑TRUE。
[0133] *在步骤253,安全逻辑112使得产生到CPUA100的NMI信号。
[0134] *在步骤254,CPU A100尝试从位置Oxlfbc0000取回下一个指令,从而调用复位中断处理程序或NMI中断处理程序。
[0135] *在步骤255,安全逻辑112将安全模式信号A165设置为逻辑TRUE,从而能够访问芯片的安全部分并执行引导安全代码。
[0136] *在步骤256,CPU A100继续执行安全代码A120中的复位中断处理程序或NMI中断处理程序。
[0137] 在一个实施例中,安全模式逻辑中的寄存器被预定来指示进入安全模式的原因;例如,由于复位,由于来自应用程序代码的请求,等等。
[0138] 安全核心确定进入安全模式的原因,并可能通过读取芯片的限制区域来执行由应用程序请求的业务,并将结果返回给与该应用程序共享的存储器区域。
[0139] 在执行完所请求的操作之后,安全核心通过安全模式逻辑触发确定的退出顺序(如下面所述的那样),并返回到应用程序代码143。
[0140] 在步骤227,安全处理器110将所请求操作的结果保存在共享的存储器中,例如RAMA155。
[0141] 在一个实施例中,由应用软件提交的业务请求可以包括执行I/O操作的请求。在这些实施例中,安全处理器110保留至少一些I/O操作以在安全模式执行,从而在没有安全代码的帮助下,应用软件就不能执行那些I/O操作。
[0142] 应用软件提出业务请求,由与该请求相关的参数指示所请求的业务是I/O操作。与该请求相关的参数遵循由其设计人员为安全处理器110所选择的API(应用程序编程接口),优选地与应用软件合作进行工作,而无需对应用软件进行实质性改变。 [0143] 在一个实施例中,由应用软件所提出的业务请求可以包括加载附加软件的请求。
在这些实施例中,安全处理器110执行类似于步骤214的步骤及其子步骤。从而,在系统100中,在类似于步骤214的那些子步骤中,CPU A100认证服务器设备作为可信的服务器130,CPU A100从海量存储器A150或从可信的服务器130接收或加载附加软件,并在验证这些软件的真实性和完整性之后,CPU A100将这些附加软件记录在RAMA155中。
[0144] 可以通过安全模式逻辑以上面所示相同的机制来处理错误捕捉或I/O仿真。在这些情况下,安全模式逻辑迫使CPU进入安全模式,并根据需要执行预先认证的软件来处理错误捕捉或I/O请求。
[0145] 在步骤228,安全处理器110从安全模式退出到监视模式。在此,后面略述从安全模式退出的一般示例方法。
[0146] 3.定时器中断
[0147] 在流程点230,安全处理器110设置可以中断在监视模式中执行的应用软件的定时器,并且定时器已准备好时间已到(go off)。
[0148] 在步骤231,类似于步骤221,定时器时间已到,应用软件被中断。 [0149] 在步骤232,类似于步骤222,产生定时器中断信号A165,从而指示在安全处理器110上的处理刚刚被中断。
[0150] 在MIPS或MIPS兼容处理器上的安全定时器捕捉的实现方式的一个示例性方法如下面那样。该示例方法类似于开始于流程点250的步骤。
[0151] *安全定时器被编程在CPU复位安全引导软件中来倒计时到零,并复位到确定安全时间捕捉周期的值。该机制不能被任何应用软件屏蔽或中断,并在应用程序继续执行时连续运行。
[0152] *定时器从已编程的设置开始倒计时,并且一旦达到零,就触发一个到CPU的NMI信号A 165(中断其执行路径),如果并且只要向NMI路径位置做出后续的未缓存读取请求,那么就装备安全模式逻辑来有条件地产生安全模式激活信号。
[0153] *一旦定时器中断,CPU就跳转来执行安全核心所驻留的NMI路径,以执行所需的动作。
[0154] *一旦知道了对NMI位置的读取,安全模式逻辑就将安全模式激活信号设置为真,并允许访问芯片的安全区域。
[0155] *负责处理定时器捕捉的安全核心路径执行其操作并再次通过安全模式逻辑最后退出安全模式。
[0156] 在步骤236,CPU A100退出安全代码,并返回到应用软件执行点。安全模式开关电路A105取消产生安全模式激活信号A160,从而指示不再允许CPU A100访问安全代码,执行其指令,或使用安全信息113进行读写数据。
[0157] 4.被监视的存储器访问
[0158] 在流程点240,安全处理器110准备好通过在监视模式执行的应用软件来记录到外部存储器的访问。
[0159] 在步骤241,CPU A100尝试从RAM A155进行读取或向其写入。为了执行该步骤,CPU A100发送存储器地址到CPU存储器接口A103。
[0160] 在步骤242,CPU存储器接口A103将该存储器地址连接到内部总线114,该总线将该存储器地址连接到存储器接口A140,并连接到安全逻辑112。
[0161] 在步骤243,包含访问控制电路A133的安全逻辑112确定是否允许CPU A100访问在RAM A155中的该存储器地址。在一个实施例中,通常总是允许CPU A100访问在RAM A155中的任何存储器地址。然而,在可选实施例中,访问控制电路A133可以限制CPU A100访问所选的存储器地址,从而当CPU A100工作在监视模式时将RAM A155的所选部分隔离。 [0162] 在步骤244,包括访问控制电路A133的安全逻辑112通过CPU A100来在RAM A155中记录对存储器地址的访问尝试。在一个实施例中,CPU A100只记录所选的这些存储器地址。例如,但不是以任何方式进行限制,当CPU A100工作在监视模式时,访问控制电路A133可以选择用来记录访问的RAM A155的一个或多个部分。然而,在可选实施例中,访问控制电路A133可以尝试记录所有的这些存储器访问,可以尝试记录响应于其模式的存储器访问,或可以尝试记录响应于由工作在安全模式的CPU A100所选择的某些其它标准的存储器访问。在随着对限制的通常认证检查而启动的应用期间,可以通过安全软件加载专用限制信息。
[0163] 在一个实施例中,以上述任何一种机制来实现退出安全模式的方法。 [0164] *指示进入安全模式的原因的寄存器被清除。
[0165] *软件清除所有用来执行安全核心软件的缓存或内部存储器区域。 [0166] *安全核心软件从NMI路径返回。
[0167] 非易失性存储器
[0168] 图3显示了一个电路框图,所述电路包括用来以实际上非可擦除方式编程非易失性存储器的设备。
[0169] 电路300包括非易失性存储器C100、无效逻辑电路C110、外部程序逻辑电路C120、非连接引脚C130、和一组外部编程引脚340。
[0170] 在一个实施例中,非易失性存储器C100包括闪存或其它能够电编程并能够进行读取的存储器,从而电路300可以确定非易失性存储器C100是否已经用数据进行了编程。在本发明的上下文中,对于非易失性存储器C100包含什么样的特定存储器技术并没有特定要求,只要其可以执行在此所描述的功能就可以。
[0171] 无效逻辑电路C110被连接到外部编程逻辑电路C120,从而,当来自无效逻辑电路C110的程序使能信号(program enable signal)被关闭时,就不能输入到外部程序逻辑电路C120,并且非易失性存储器C100也不能从外部编程引脚进行电编程。
[0172] 无效逻辑电路C110还连接到非易失性存储器C100,并能够从非易失性存储器C100读取值并将这些值与程序使能签名值进行比较,从而无效逻辑电路C110可以确定非易失性存储器C100是否已经被初始编程。如果非易失性存储器C100已经使用程序使能签名值进行初始编程,那么无效逻辑电路C110就能够使到外部程序逻辑电路C120的输入能够进行,从而可以电编程非易失性存储器C100。如果程序使能签名值没有出现,那么来自无效逻辑C110的程序使能输出将无效。
[0173] 非连接引脚C130包括电可导垫,其位于安全处理器芯片上,并能够在封装芯片之前被探测,但是并未连接到任何外部线路或包装上。这具有这样的效果,当制造安全处理器芯片时,非连接引脚C130可以电连接到外部电路,但在制造和封装之后,非连接引脚C130实际上就不能再电连接到任何外部电路。因此,在制造安全处理器芯片之后和在封装安全处理器芯片之前,当编程非易失性存储器C100时,可以使用非连接引脚C130,但是当完成制造和封装之后,在编程非易失性存储器C100时,就不能够再使用非连接引脚C130,从而非易失性存储器C100就不能够被外部编程。
[0174] 在制造之后进行晶片测试时,非连接引脚C130被连接到所选的电压(逻辑“0”),从而使能外部编程逻辑电路C120,并且非易失性存储器C100可以被电编程,而不管来自无效逻辑C110的程序使能输出的状态。
[0175] 记录唯一信息的方法
[0176] 图4显示了操作电路的方法流程图,所述电路包括用来以实际上非可擦除方式编程非易失性存储器的设备。
[0177] 当构造安全处理器110时,根据电路300来执行方法400。虽然方法400被描述为串行的,但是方法400的流程点和步骤也可以联合或并行地由单独的单元异步或同步地执行,以管道方式或其他方式。并没有特别要求必须以与本说明书所列出的流程点或步骤相同的顺序来执行方法400,除非有明确指出。
[0178] 在流程点410,在安全处理器110中的非易失性存储器C100准备好被编程。在一个实施例中,该方法的结果能使得对于该特定安全处理器110唯一的安全信息被记录在非易失性存储器中。
[0179] 在步骤411,非连接引脚C130被连接到所选电压(逻辑“0”),从而外部程序逻辑电路C120能够工作,并可以电编程该非易失性存储器C100。
[0180] 在步骤412,非易失性存储器C100使用初始程序使能签名值(设置在其最后的存储器位置中)进行电编程,从而,非易失性存储器C100准备好被进一步编程。 [0181] 在步骤413,电路300被封装,从而非连接引脚C130不再能够用来连接到外部电路。
[0182] 在步骤414,非易失性存储器C100被电编程。
[0183] 在一个实施例中,当执行该步骤时,对于安全处理器110的特定情况为唯一的安全信息113被记录在非易失性存储器C100中。这具有这样的效果,安全处理器110的特定情况变得能够唯一地区别于安全处理器的每个其它情况,并可以唯一地将自身标示为可信的服务器130。
[0184] 在步骤415,非易失性存储器C100进一步被电编程来擦除编程使能签名值。当编程使能签名值不再存在时,无效逻辑电路C110确定非易失性存储器C100不再能够用于编程,并使得外部程序逻辑电路C120无效。这具有这样的效果,非易失性存储器C100不再能够通过外部编程引脚被进一步电编程。
[0185] 在流程点420,非易失性存储器C100不再包括程序使能签名值,无效逻辑电路C110确定非易失性存储器C100不再能够用于编程,并且无效逻辑电路C110能够使得外部编程逻辑电路C120无效。一旦对安全处理器110加电,非易失性存储器C100就不能再进一步从外部编程引脚被电编程。
[0186] 可选实施例
[0187] 虽然在此描述了优选的实施例,但是可能有多种变换,这些变换仍然处于本发明的 原理、范围和精神之内。在熟读本申请之后,这些变体对于本领域熟练技术人员来说将变得清楚。
[0188] *对于所有可执行的代码、或甚至所有安全代码是否需要出现在集成了安全处理器110的芯片上并无特定要求。在可选实施例中,安全处理器110可以涉及保存在外部RAMA155、海量存储器A150、或其它外部设备中的安全代码或其它可执行代码。 [0189] *对于是否需要将安全处理器110作为单个集成芯片来实现并无特定要求。在可选实施例中,安全处理器110可以包括多个设备,这些设备使用加密或反监听或破坏保护的信号进行连接。
[0190] *对于是否需要同时加载所有安全代码并无特定要求。在可选实施例中,安全处理器110可以涉及多个片段的安全代码,这些代码以不同的时间进行加载和验证,例如按顺序,或例如根据需要而进行。作为第一个例子,但不是为了以任何方式进行限制,当工作在安全模式时,安全核心代码A120可以包括要加载并集成到由CPU A100执行的指令中的附加软件的一个或多个模块的签名。作为第二个例子,但不是为了以任何方式进行限制,所述安全核心代码A120可以包括要加载的附加软件的一个或多个模块的签名,其自身的每一个包括要加载的附加软件的一个或多个模块的签名。
[0191] *存储器和海量存储器访问检查可以响应于所选的事件来执行。作为第一个例子,但不是为了以任何方式进行限制,这种所选的事件可以包括应用软件对于加密/解密业务、I/O业务、或安全签名或验证业务的任何请求。作为第二个例子,但不是为了以任何方式进行限制,这些所选的事件可以包括海量存储器访问的周期性截取(例如,对于所选值为N来说,每隔N次的访问)、周期性定时器中断,等等。
[0192] *认证和验证检查可以响应于所选的事件来执行,这类似于存储器或海量存储器访问的检查。作为第一个例子,但不是为了以任何方式进行限制,这些所选的事件可以包括应用软件对加密/解密业务、I/O业务、或安全签名或验证业务的任何请求。作为第二个例子,但不是为了以任何方式进行限制,这些所选的事件可以包括对海量存储器方法的存储器的周期性截取(例如,对于所选值为N的情况,每隔N次的访问),周期性定时器中断,等等。
[0193] *除了在此上面所提到的那些之外,安全核心代码A120还可以提供附加的安全业务给应用软件。例如,但不是为了以任何方式进行限制,这些附加业务可以包括对来自服务器(而不是上面所描述的可信的服务器130)和其它消息方(例如在对等协议和应用软件具有服务器色的协议中)的消息的认证和验证,对与服务器(而不是上面所描 述的可信的服务器130)和其它消息方交换的消息进行加密/解密,对与服务器(而不是上面所描述的可信的服务器130)和其它消息方交换消息进行公共密钥签名,对从辅助的可信服务器130加载并执行的其它附加软件进行认证和验证,对DRM许可信息的管理,对由CPU A100执行加载的软件的周期性(或响应于所选事件,如上所述)的认证和验证,等等。 [0194] *除了那些在此上面所提到的之外,安全核心代码A120还可以提供与安全相关的业务之外的附加业务给应用软件。例如,但不是为了以任何方式进行限制,这些附加业务可以包括应用软件被许可操作的特定设备驱动器或对特定硬件的操作,等等。 [0195] 在熟读本申请之后,本领域熟练技术人员将认识到,那些可选实施例和变化仅仅是示例性的,而不是为了以任何方式进行限制。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈