首页 / 专利库 / 版权及相关权 / 版权 / 版权管理 / 安全及后向兼容处理器以及在其上的安全软件的执行

安全及后向兼容处理器以及在其上的安全软件的执行

阅读:958发布:2021-07-21

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

1、一种方法,包括以下步骤:
通过处理单元执行应用软件
验证所述处理单元是否有权执行所述应用软件;和
在监视模式和安全模式之间区别所述处理单元;
其中,
在所述监视模式,所述处理单元能够相对于所述应用软件透明地执行所述应用软 件,和
在所述安全模式,所述处理单元能够验证所述处理单元是否有权执行所述应用软 件。
2、如权利要求1所述的方法,包括在所述监视模式中的步骤:通过所述处理单元 的一部分来执行指令,所述指令实质上与那些可以由普通处理器的半导体芯片执行的指 令相同,所述指令不响应于所述安全模式。
3、如权利要求1所述的方法,包括在所述安全模式中的步骤:通过所述处理单元 来执行由所述应用软件请求并得到授权的额外业务。
4、如权利要求1所述的方法,包括以下步骤:
响应于多种技术中的至少一个,中断所述监视模式并进入所述安全模式;和
在所述安全模式时,确定采用哪一种技术进入所述安全模式。
5、如权利要求1所述的方法,包括以下步骤:响应于中断、复位信号定时器中 的至少一种,中断所述监视模式并进入所述安全模式。
6、如权利要求1所述的方法,包括以下步骤:在所述安全模式中,退出所述安全 模式并以所述监视模式来执行所述应用软件。
7、如权利要求6所述的方法,包括以下步骤:
在实质上不改变该应用软件的源代码的情况下执行所述应用软件,
从而该应用软件得到与普通处理器实际上相同的处理器环境。
8、如权利要求6所述的方法,包括以下步骤:当所述应用软件需要安全处理器所 监视的业务时,应用软件产生中断,从而使得重新进入安全模式,将所述业务传送到应 用软件,并退出安全模式,从而该应用软件可以继续以监视模式执行。
9、如权利要求1所述的方法,包括在加电状态下以所述安全模式来执行指令的步 骤。
10、如权利要求9所述的方法,包括响应于所述加电状态,执行保存在包括所述处 理单元的芯片内部的永久存储器中的安全代码的步骤,所述执行安全代码的步骤包括以 下步骤:
从一个或多个可信源加载附加代码;
验证所述可信源的真实性;和
验证所述附加代码的内容完整性。
11、如权利要求9所述的方法,包括响应于所述加电状态,执行保存在包括所述处 理单元的芯片内部的永久存储器中的安全代码的步骤,所述执行安全代码的步骤包括以 下步骤:
从一个或多个可信源加载附加代码;
验证所述可信源的真实性;和
验证所述附加代码的内容完整性;
其中所述验证真实性和内容完整性的步骤是响应于所述芯片内部的永久存储器而 执行的。
12、如权利要求9所述的方法,包括响应于所述加电状态,执行保存在包括所述处 理单元的芯片内部的永久存储器中的安全代码的步骤,所述执行安全代码的步骤包括以 下步骤:
从一个或多个可信源加载附加代码;
验证所述可信源的真实性;
验证所述附加代码的内容完整性的步骤;
其中所述验证真实性和内容完整性的步骤是响应于所述芯片内部的永久存储器而 执行的,并且
所述芯片内部的所述永久存储器的至少包括以下项的其中之一:加密密钥、安全散 列值、或其它用来验证所述可信源和认证所述附加代码的其它数据。
13、如权利要求1所述的方法,其中所述应用软件包括至少一个以所述安全模式执 行的指令。
14、如权利要求13所述的方法,其中所述至少一个以所述安全模式执行的指令包 括可以由所述处理单元代表一组安全核心代码来执行的附加功能。
15、如权利要求13所述的方法,其中所述至少一个以所述安全模式执行的指令包 括可以由所述处理单元代表一组安全核心代码来执行的附加功能,所述附加功能包括认 证附加的安全核心代码。
16、如权利要求1所述的方法,其中所述验证步骤包括执行一组安全软件,该组安 全软件包括确定所述处理单元是否有权执行一组以所述安全模式执行的附加安全软件。
17、如权利要求16所述的方法,其中所述附加安全软件包括:
至少一个用来加载附加安全软件的功能;和
至少一个用来验证所述处理器有权执行所述附加安全软件的功能。
18、如权利要求16所述的方法,其中所述附加安全软件包括:
至少一个用来加载应用软件的功能;和
至少一个用来验证所述处理单元有权执行所述应用软件的功能。
19、一种方法,包括以下步骤:
通过处理单元执行指令,所述处理单元包括至少具有安全模式和监视模式的安全信 号;和
当所述安全信号指示所述安全模式时,响应于所述安全信号,由所述处理单元访问 至少一个安全功能,和当所述安全信号指示所述监视模式时,拒绝响应于所述安全信号 访问所述安全功能;
其中所述安全功能包括响应于外部源而记录外部指令的步骤,对所述外部源的可信 性的测量是可以由所述处理单元验证的。
20、如权利要求19所述的方法,包括以下步骤:只有当所述安全信号指示所述安 全模式时,才允许所述处理单元访问连接到所述处理单元的至少一个安全电路
21、如权利要求19所述的方法,包括执行保存在存储器或海量存储器中的一组应 用程序代码的步骤,所述存储器或海量存储器连接到所述处理单元,所述执行应用程序 代码的步骤的进行,对比于所述应用代码在实质上相同的不响应于所述安全信号的非安 全处理单元上被执行的情况,没有实质上的改变。
22、如权利要求19所述的方法,包括以下步骤:当所述处理单元工作在所述监视 模式时,由所述处理单元执行一组保存在连接到所述处理单元的存储器或海量存储器中 的应用程序代码。
23、如权利要求19所述的方法,其中所述一个安全功能包括以下步骤:
从所述外部源接收所述外部指令;和
验证所述外部指令实质上是准确的。
24、如权利要求19所述的方法,包括由所述处理单元监视到外部设备的访问的步 骤;
所述监视步骤响应于所述安全信号并响应于一组访问规则,其中当所述处理单元尝 试违反所述访问规则访问所述外部设备时,响应于此而执行至少一个安全功能。
25、如权利要求24的方法,其中,所述监视步骤响应于由所述处理单元的访问, 响应于以下项的至少其中之一:
由所述处理单元请求的多个访问;
所述处理单元执行的多个指令;
由工作在所述安全模式的所述处理单元所设置的参数;或
所述处理单元正在工作的间隔。
26、如权利要求19所述的方法,包括由所述处理单元保存用于只读访问的一组安 全信息的步骤。
27、如权利要求26所述的方法,其中所述保存步骤包括从非易失性存储器读取所 述安全信息组的步骤。
28、如权利要求26所述的方法,其中所述保存步骤包括从非易失性存储器读取所 述安全信息组的步骤,并包括当所述安全处理器被封装时,使得对所述非易失性存储器 的写入无效的步骤。
29、如权利要求26所述的方法,其中所述保存步骤包括从非易失性存储器读取所 述安全信息组的步骤,并包括当所述安全处理器被封装时,使得对所述非易失性存储器 的写入无效的步骤,所述无效的步骤包括制作实质上不可访问的非连接引脚。
30、如权利要求26所述的方法,其中所述保存步骤包括从非易失性存储器读取所 述安全信息组的步骤,并且其中所述安全信息组对于所述安全处理器是唯一的。
31、如权利要求19所述的方法,其中所述一个安全功能包括以下步骤:
从所述外部源接收所述外部指令;
构造响应于所述外部指令的数据;和
比较响应于所述外部指令的所述数据和至少一些所述安全信息,从而所述处理单元 能够验证所述外部指令是准确的。
32、如权利要求31所述的方法,其中:
所述构造步骤包括响应于所述外部指令来确定一个计算的签名值;和
所述比较步骤包括尝试匹配所计算的签名值和包括在所述安全信息中的记录的签 名值。
33、如权利要求31所述的方法,其中所述接收步骤包括以下步骤的至少其中之一:
接收一组消息,所述消息组整体包括所述外部指令;或
接收一组存储器介质,所述存储介质组整体包括所述外部指令。
34、如权利要求19所述的方法,其中所述一个安全功能包括以下步骤:
从所述外部源请求所述外部指令;
发送响应于所述安全信息的数据到所述外部源,从而所述外部源能够验证所述处理 单元有权执行所述外部指令;和
从所述外部源接收所述外部指令。
35、如权利要求34所述的方法,其中所述外部指令至少包括应用软件、附加安全 代码的其中一个。
36、一种方法,包括以下步骤:
在处理器上执行指令,所述处理器具有安全模式和监视模式;
其中当所述处理器以所述安全模式执行时,所述处理器具有到至少一个安全功能的 入口,当所述处理器以所述监视模式执行时,所述处理器没有到该安全功能的入口;
其中,在启动状态、中断状态的至少其中一个状态期间,所述处理器以所述安全模 式执行,所述中断状态响应于非屏蔽中断或定时器中断;
其中当所述处理器进入所述安全模式时,所述处理器传送控制到一组安全代码,当 所述处理器以所述监视模式执行时,所述安全代码不能改变;和
其中与所述启动状态相关的一组所述安全代码包括可以由所述处理器执行的指令, 并且所述指令响应于所述外部指令的外部源而引导所述处理器来向安全代码添加外部 指令,所述外部源的可信性的测量可以由所述处理器响应于一组安全信息来验证。
37、一种装置,包括:
处理单元,所述处理单元能够执行应用软件,并能够验证所述处理器单元有权执行 所述应用软件;
所述处理单元具有监视模式和安全模式,其中在所述监视模式,所述处理单元能够 相对于所述应用软件透明地执行所述应用软件,和其中在所述安全模式,所述处理单元 能够验证所述处理单元有权执行所述应用软件。
38、如权利要求37所述的装置,其中能够以所述监视模式执行指令的所述处理单 元的一部分实质上与不响应于所述安全模式的普通处理器的半导体芯片相同。
39、如权利要求37所述的装置,其中在所述安全模式,所述处理单元能够执行由 所述应用程序软件请求并得到授权的额外业务。
40、如权利要求37所述的装置,其中所述处理单元能够响应于多种技术中的至少 一个来中断所述监视模式并进入所述安全模式,其中当处于所述安全模式时,所述处理 单元能够确定通过哪种技术进入所述安全模式。
41、如权利要求37所述的装置,其中所述处理器单元能够响应于中断、复位信号、 或定时器中的至少其中一个,来中断所述监视模式并进入所述安全模式。
42、如权利要求37所述的装置,其中在所述安全模式,所述处理单元能够退出所 述安全模式,并以所述监视模式执行所述应用软件。
43、如权利要求42所述的装置,其中所述应用软件在不对该应用软件的源代码作 实质改变的情况下执行,从而所述应用软件得到实质上与普通处理器相同的处理器环 境。
44、如权利要求42所述的装置,其中当所述应用软件需要安全处理监视的业务时, 应用软件产生中断,从而使得重新进入安全模式,将业务传送到应用软件,并退出所述 安全模式,从而所述应用软件可以继续以监视模式执行。
45、如权利要求37所述的装置,其中所述应用软件包括至少一个以所述安全模式 执行的指令。
46、如权利要求45的装置,其中所述至少一个以所述安全模式执行的指令包括可 以由所述处理单元代表一组安全核心代码执行的附加功能。
47、如权利要求45的装置,其中所述至少一个以所述安全模式执行的指令包括可 以由所述处理单元代表一组安全核心代码执行的附加功能,所述附近功能包括认证附加 的安全核心代码。
48、如权利要求37所述的装置,其中所述处理单元能够执行安全软件,所述安全 软件包括至少一个用来认证以所述安全模式执行的附加软件的功能。
49、如权利要求48所述的装置,其中所述安全软件包括:
至少一个用来加载附加安全软件的功能;和
至少一个用来验证所述处理单元有权执行所述附加安全软件的功能。
50、如权利要求48所述的装置,其中所述安全软件包括:
至少一个用来加载应用软件的功能;和
至少一个用来验证所述处理单元有权执行所述应用软件的功能。
51、如权利要求37所述的装置,其中所述处理单元在加电状态下以所述安全模式 执行指令。
52、如权利要求51所述的装置,其中响应于所述加电状态,所述处理单元执行保 存在包括所述处理单元的芯片的内部的永久存储器中的安全代码,其中所述安全代码包 括引导所述处理单元执行以下步骤的指令,所述步骤如下:
从一个或多个可信源加载附加代码;
验证所述可信源的真实性;和
验证所述附加代码的内容完整性。
53、如权利要求51所述的装置,其中响应于所述加电状态,所述处理单元执行保 存在包括所述处理单元的芯片的内部的永久存储器中的安全代码,其中所述安全代码包 括引导所述处理单元执行以下步骤的指令,所述步骤如下:
从一个或多个可信源加载附加代码;
验证所述可信源的真实性;和
验证所述附加代码的内容完整性;
其中所述验证真实性和内容完整性的步骤是响应于所述芯片内部的所述永久存储 器而执行的。
54、如权利要求51所述的装置,其中响应于所述加电状态,所述处理单元执行保 存在包括所述处理单元的芯片的内部的永久存储器中的安全代码,其中所述安全代码包 括引导所述处理单元执行以下步骤的指令,所述步骤如下:
从一个或多个可信源加载附加代码;
验证所述可信源的真实性;和
验证所述附加代码的内容完整性;
其中
所述验证真实性和内容完整性的步骤是响应于所述芯片内部的所述永久存储器而 执行的,并且
所述芯片内部的所述永久存储器包括以下项中的至少其中之一:加密密钥、安全散 列值、或其它用来验证所述可信源和认证所述附加代码的数据。
55、一种装置,包括:
能够执行指令的处理单元;和
至少具有安全模式和监视模式的安全信号;
所述处理单元响应于所述安全信号,其中当以所述安全模式执行指令时,所述处理 单元具有到至少一个安全功能的入口,当以所述监视模式执行指令时,所述处理单元没 有到安全功能的入口;
其中,至少一个所述安全功能包括引导所述处理单元响应于外部源而记录外部指令 的指令,所述外部源的可信性的测量可以由所述处理单元进行验证。
56、如权利要求55所述的装置,包括响应于所述安全信号的安全单元,并且所述 安全单元连接到连接于所述处理单元的至少一个安全电路,其中只有当所述安全信号指 示所述安全模式时,所述安全单元才允许所述处理单元访问所述安全电路。
57、如权利要求55所述的装置,包括:
一组保存在连接到所述处理单元的存储器或海量存储器中的应用程序代码;
从而所述处理单元以所述监视模式执行所述应用代码。
58、如权利要求55所述的装置,包括:
一组保存在连接到所述处理单元的存储器或海量存储器中的应用程序代码,所述应 用程序代码能够在不响应于所述安全信号的实质上相同的非安全处理器上被执行;
从而,所述处理单元能够在不进行实质改变的情况下执行所述应用代码,以响应指 示所述安全模式的所述安全信号。
59、如权利要求55所述的装置,其中所述一个安全功能包括引导所述处理单元执 行以下步骤的指令,所述步骤如下:
从所述外部源接收所述外部指令;和
验证所述外部指令是准确的。
60、如权利要求55所述的装置,包括:
连接到所述处理单元的监视电路,所述监视电路能够监视由所述处理单元到外部设 备的访问;
所述监视电路响应于所述安全信号并响应于一组访问规则,其中当所述处理单元尝 试以违反所述访问规则来访问所述外部设备时,所述监视电路能够响应于此而执行至少 一个安全功能。
61、如权利要求60所述的装置,其中,所述监视电路响应于由所述处理单元的访 问,响应于以下项的至少其中之一:
由所述处理单元请求的多个访问;
所述处理单元执行的多个指令;
由工作于所述安全模式的所述处理单元所设置的参数;或
所述处理单元运行期间的间隔。
62、如权利要求55所述的装置,包括能够由所述处理单元用于只读访问的一组安 全信息。
63、如权利要求62所述的装置,其中所述安全信息组包括保存在非易失性存储器 中的信息。
64、如权利要求62所述的装置,其中所述安全信息组包括保存在非易失性存储器 中并对于所述安全处理器唯一的信息。
65、如权利要求62所述的装置,其中所述安全信息组包括保存在非易失性存储器 中的信息,所述非易失性存储器具有能够使所述非易失性存储器能够进行写入的电路, 当所述安全处理器被封装时,所述电路被无效。
66、如权利要求62所述的装置,其中所述安全信息组包括保存在非易失性存储器 中的信息,所述非易失性存储器具有能够使所述非易失性存储器能够进行写入的电路, 所述电路包括当所述安全处器被封装时实质上不可以被访问的引脚。
67、如权利要求66所述的装置,其中,所述安全信息组包括实质上对于所述芯片 唯一的标识值,或实质上对于所述芯片唯一的一组私密密钥信息;从而,当所述芯片有 权使用所述内容并执行所述软件时,所述芯片可以确保所选的一组内容或软件只可以由 所述芯片执行。
68、如权利要求67所述的装置,其中所述芯片可以验证购买收据或许可或其它数 字版权管理数据的真实性,从而所述芯片可以验证所选的内容或软件组是真实的,并且 是所述芯片得到授权的。
69、如权利要求68所述的装置,其中所述安全芯片能够允许响应于对购买收据或 许可或其它数字版权管理数据的真实性验证的尝试,而使用所述内容或执行所述软件。
70、如权利要求68所述的装置,其中所述收据包括:
足以实质上标识所述芯片的信息;
足以实质上识别标识值实质上对于所述内容或软件是唯一的信息。
71、如权利要求66所述的装置,包括用来组合所述密钥信息和所述实质上唯一的 标识值的装置,从而可以为实施知识产权保护来实施数字版权管理方案。
72、如权利要求66所述的装置,其中所述安全信息的至少一部分使用公共密钥/秘 密私钥系统或均衡加密/解密密钥来进行数字签名。
73、如权利要求72所述的装置,其中所述安全芯片能够响应于验证所述数字签名 而允许使用所述内容或执行所述软件。
74、如权利要求66所述的装置,其中所述安全信息的至少一部分使用公共密钥/秘 密私钥系统或均衡加密/解密密钥来加密。
75、如权利要求74所述的装置,其中所述安全芯片能够允许响应于加密所述安全 信息的所述部分的尝试,来允许使用所述内容或执行所述软件。
76、如权利要求55所述的装置,其中所述一个安全功能包括引导所述处理单元来 执行以下步骤的指令,所述步骤如下:
从所述外部源接收外部指令;
构造响应于所述外部指令的数据;和
比较响应于所述外部指令的所述数据和至少一些所述安全信息,从而所述处理单元 能够验证所述外部指令是准确的。
77、如权利要求76所述的装置,其中:
所述构造步骤包括响应于所述外部指令来确定一个计算的签名值;和
所述比较步骤包括尝试匹配所计算的签名值和包括在所述安全信息中的记录的签 名值。
78、如权利要求76所述的装置,其中所述接收步骤包括以下项的至少其中之一:
接收一组消息,所述消息组整体包括所述外部指令;或
接收一组存储器介质,所述存储介质组整体包括所述外部指令。
79、如权利要求55所述的装置,其中所述一个安全功能包括引导所述处理单元执 行以下步骤的指令,所述步骤如下:
从所述外部源请求所述外部指令;
发送响应于所述安全信息的数据到所述外部源,从而所述外部源能够验证所述处理 单元是否有权执行所述外部指令;和
从所述外部源接收所述外部指令。
80、如权利要求79所述的方法,其中所述外部指令包括应用软件、附加安全代码 的至少其中一个。
81、如权利要求55所述的装置,其中:
所述安全信号响应于复位状态或中断状态,所述中断状态响应于非可屏蔽中断或定 时器中断;和
响应于所述安全信号,所述处理单元传送控制到所述安全功能,当所述处理单元在 所述监视模式执行指令时,所述安全功能不能被改变。
82、如权利要求81所述的装置,其中,响应于所述安全功能,所述处理单元传送 控制到退出功能,所述退出功能能够在所述安全模式时,移除任何安全信息而不为所述 处理单元所使用。
83、如权利要求81所述的装置,
其中所述处理单元能够传递所述安全功能的参数,
从而,响应于所述非可屏蔽中断,所述安全功能在应用软件的要求下执行至少一个 所述的安全功能,所述应用软件由所述处理单元以所述监视模式来执行。
84、如权利要求81所述的装置,
其中所述处理单元能够传递所述安全功能的参数,
从而,响应于所述非可屏蔽中断,所述安全功能在应用软件的要求下执行至少一个 所述的安全功能,所述应用软件由所述处理单元以所述监视模式来执行;和
其中所述安全功能包括以下功能的至少其中之一:密码认证功能、密码签名功能、 密码安全功能、加密或解密功能、包括加密或解密密钥的功能,安全散列值功能。
85、一种存储器或海量存储器,其包括能够由计算设备解释来执行以下步骤的指令, 所述步骤如下:
由处理单元执行应用软件;
验证所述处理单元是否有权执行所述应用软件;和
在监视模式和安全模式之间区别所述处理单元;其中,在所述监视模式,所述处理 单元能够相对于所述应用软件透明地执行所述应用软件,和在所述安全模式,所述处理 单元能够验证所述处理单元是否有权执行所述应用软件。
86、如权利要求85所述的存储器或海量存储器,其包括能够由计算设备解释来执 行以下步骤的指令,所述步骤如下:
在所述监视模式中,由所述处理单元的一部分来执行指令,所述指令实质上与那些 可以由普通处理器的半导体芯片执行而不响应于所述安全模式的指令相同。
87、如权利要求85所述的存储器或海量存储器,其包括能够由计算设备解释来执 行以下步骤的指令,所述步骤如下:
在所述安全模式中,由所述处理单元执行由所述应用软件请求并得到授权的额外业 务。
88、如权利要求85所述的存储器或海量存储器,其包括能够由计算设备解释来执 行以下步骤的指令,所述步骤如下:
响应于多种技术中的至少其中一个,来中断所述监视模式并进入所述安全模式;和
在所述安全模式时,确定采用哪一种技术进入所述安全模式。
89、如权利要求85所述的存储器或海量存储器,其包括能够由计算设备解释来执 行以下步骤的指令,所述步骤如下:
响应于中断、复位信号或定时器至少其中的一个,来中断所述监视模式并进入所述 安全模式。
90、包括能够由计算设备解释来执行权利要求85中的步骤的指令的存储器或海量 存储器,包括以下步骤:
在所述安全模式中,退出所述安全模式并以所述监视模式执行所述应用软件。
91、如权利要求90所述的存储器或海量存储器,包括能够由计算设备解释来执行 以下步骤的指令,所述步骤如下:
在实质上不改变应用软件的源代码的情况下执行所述应用软件,从而该应用软件可 以得到实质上与普通处理器相同的处理器环境。
92、如权利要求90所述的存储器或海量存储器,包括能够由计算设备解释来执行 以下步骤的指令,所述步骤如下:
当所述应用软件需要安全处理器所监视的业务时,应用软件产生中断,从而使得重 新进入安全模式,将业务传送到应用软件,并退出安全模式,从而应用软件可以继续以 监视模式来执行。
93、如权利要求85所述的存储器或海量存储器,包括能够由计算设备解释来执行 以下步骤的指令,所述步骤如下:
在加电状态下以所述安全模式执行指令。
94、如权利要求93所述的存储器或海量存储器,包括能够由计算设备解释来执行 以下步骤的指令,所述步骤如下:
响应于所述加电状态,执行保存在包括所述处理单元的芯片内部的永久存储器中的 安全代码,所述执行安全代码的步骤包括以下步骤:
从一个或多个可信源加载附加代码;
验证所述可信源的真实性;和
验证所述附加代码的内容完整性。
95、如权利要求93所述的存储器或海量存储器,包括能够由计算设备解释来执行 以下步骤的指令,所述步骤如下:
响应于所述加电状态,执行保存在包括所述处理单元的芯片内部的永久存储器中的 安全代码,所述执行安全代码的步骤包括以下步骤:
从一个或多个可信源加载附加代码;
验证所述可信源的真实性;和
验证所述附加代码的内容完整性;
其中所述验证真实性和内容完整性的步骤是响应于所述芯片内部的永久存储器而 执行的。
96、如权利要求93所述的存储器或海量存储器,包括能够由计算设备解释来执行 以下步骤的指令,所述步骤如下:
响应于所述加电状态,执行保存在包括所述处理单元的芯片内部的永久存储器中的 安全代码,所述执行安全代码的步骤包括以下步骤:
从一个或多个可信源加载附加代码;
验证所述可信源的真实性;和
验证所述附加代码的内容完整性;
其中
所述验证真实性和内容完整性的步骤是响应于所述芯片内部的永久存储器而执行 的;并且
所述芯片内部的所述永久存储器的包括以下项的至少其中之一:加密密钥、安全散 列值、或用来验证所述可信源和认证所述附加代码的其他数据。
97、如权利要求85所述的存储器或海量存储器,其中所述应用软件包括至少一个 用来在所述安全模式中执行的指令。
98、如权利要求97所述的存储器或海量存储器,其中所述至少一个用来在所述安 全模式中执行的指令包括可以由所述处理单元代表一组安全核心代码来执行的附加功 能。
99、如权利要求97所述的存储器或海量存储器,其中所述至少一个用来在所述安 全模式中执行的指令包括可以由所述处理单元代表一组安全核心代码来执行的附加功 能,所述附加功能包括认证附加安全核心代码。
100、一种存储器或海量存储器,其包括能够由计算设备解释来执行以下步骤的指 令,所述步骤如下:
由处理单元执行指令,所述处理单元包括至少具有安全模式和监视模式的安全信 号;和
当所述安全信号指示所述安全模式时,由所述处理单元响应于所述安全信号,访问 至少一个安全功能,和当所述安全信号指示所述监视模式时,拒绝响应于所述安全信号 访问所述安全功能;
其中所述安全功能包括响应于外部源而记录外部指令的步骤,所述外部源的可信性 可以由所述处理单元验证。
101、如权利要求100所述的存储器或海量存储器,其包括能够由计算设备解释来 执行以下步骤的指令,所述步骤如下:
只有当所述安全信号指示所述安全模式时,才允许所述处理单元访问连接到所述处 理单元的至少一个安全电路。
102、如权利要求100所述的存储器或海量存储器,其包括能够由计算设备解释来 执行以下步骤的指令,所述步骤如下:
执行保存在存储器或海量存储器中的一组应用程序代码,所述存储器或海量存储器 连接到所述处理单元,所述执行应用程序代码的步骤的进行,对比于所述应用程序代码 在实质上相同的非安全处理单元上被执行而不响应于所述安全信号,没有实质上的改 变。
103、如权利要求100所述的存储器或海量存储器,其包括能够由计算设备解释来 执行以下步骤的指令,所述步骤如下:
当所述处理单元工作在所述监视模式时,由所述处理单元执行保存在连接到所述处 理单元的存储器或海量存储器中的一组应用程序代码。
104、如权利要求100所述的存储器或海量存储器,其中所述一个安全功能包括以 下步骤:
从所述外部源请求所述外部指令;
发送响应于所述安全信息的数据到所述外部源,从而所述外部源能够验证所述处理 单元有权执行所述外部指令;并且
从所述外部源接收所述外部指令。
105、如权利要求100所述的存储器或海量存储器,其包括能够由计算设备解释来 执行以下步骤的指令,所述步骤如下:
由所述处理单元监视到外部设备的访问;
所述监视步骤响应于所述安全信号并响应于一组访问规则,其中当所述处理单元尝 试违反所述访问规则而访问所述外部设备时,响应于此而执行至少一个安全功能。
106、如权利要求105所述的存储器或海量存储器,其中,所述监视步骤响应于由 所述处理单元的访问,响应于以下项的至少其中之一:
由所述处理单元请求的多个访问;
所述处理单元执行的多个指令;
由工作在所述安全模式的所述处理单元所设置的参数;或
所述处理单元正在工作的间隔。
107、如权利要求100所述的存储器或海量存储器,其包括能够由计算设备解释来 执行由所述处理单元保存用于只读访问的一组安全信息的步骤的指令。
108、如权利要求107所述的存储器或海量存储器,其中所述保存步骤包括从非易 失性存储器读取所述安全信息组的步骤。
109、如权利要求107所述的存储器或海量存储器,其中所述保存步骤包括从非易 失性存储器读取所述安全信息组的步骤,并包括当所述安全处理器被封装时使得对所述 非易失性存储器的写入无效的步骤。
110、如权利要求107所述的存储器或海量存储器,其中所述保存步骤包括从非易 失性存储器读取所述安全信息组的步骤,并包括当所述安全处理器被封装时使得对所述 非易失性存储器的写入无效的步骤,所述无效的步骤包括制作实质上不可访问的非连接 引脚。
111、如权利要求107所述的存储器或海量存储器,其中所述保存步骤包括从非易 失性存储器读取所述安全信息组的步骤,并且其中所述安全信息组对于所述安全处理器 是唯一的。
112、如权利要求100所述的存储器或海量存储器,其中所述一个安全功能包括以 下步骤:
从所述外部源接收所述外部指令;
构造响应于所述外部指令的数据;和
比较响应于所述外部指令的数据和至少一些所述安全信息,从而所述处理单元能够 验证所述外部指令是准确的。
113、如权利要求112所述的存储器或海量存储器,其中:
所述构造步骤包括响应于所述外部指令来确定一个计算的签名值;和
所述比较步骤包括尝试匹配所计算的签名值和包括在所述安全信息中的记录的签 名值。
114、如权利要求112所述的存储器或海量存储器,其中所述接收步骤包括以下项 的至少其中之一:
接收一组消息,所述消息组整体包括所述外部指令;或
接收一组存储器介质,所述存储介质组整体包括所述外部指令。
115、一种存储器或海量存储器,包括能够由计算设备解释来执行以下步骤的指令, 所述步骤如下:
在处理器上执行指令,所述处理器具有安全模式和监视模式;
其中当所述处理器以所述安全模式执行时,所述处理器具有到至少一个安全功能的 入口,其中当所述处理器以所述监视模式执行时,所述处理器没有到安全功能的入口;
其中在启动状态、中断状态的其中一个的期间,所述处理器以所述安全模式执行, 所述中断状态响应于非可屏蔽中断或定时器中断;
其中当所述处理器进入所述安全模式时,所述处理器传送控制到一组安全代码,当 所述处理器以所述监视模式执行时,所述安全代码不可以被改变;和
其中,与所述启动状态相关的一组所述安全代码包括可以由所述处理器执行的指 令,并且所述指令引导所述处理器响应于所述外部指令的外部源,而将外部指令添加到 安全代码,所述外部源的可信性可以由所述处理器响应于一组安全信息而进行验证。

说明书全文

1.发明领域

本发明涉及安全处理器,并涉及在其上的安全软件的执行,例如涉及能够安全执行 应用软件的安全处理器。

2.相关技术

在已知的计算系统中,当考虑计算系统的价值时,处理能的可用性不再是重要的 限制,所述处理能力例如由微处理器和其它处理设备所提供。而由那些处理器来执行(并 由那些处理器来呈现)的应用软件和多媒体内容的可用性,或者更准确地说,授权来使 用该应用软件和多媒体内容已成为实际上的限制。这种情况的一个结果是许多计算系统 的实际价值在于在该设备或平台上所执行的应用软件和多媒体内容。应用软件和多媒体 内容变得更容易传播,例如使用通信网络,或通过使用廉价的CD-ROM介质进行传播, 从而导致防止未授权复制和传播(有时称作“软件私有权”)具有经济上的重要意义。 因此,现有技术中的一个问题是确保这种有价值的应用软件和多媒体内容只有在被授权 时才可以在处理器上使用,例如已经对这种权利付费,或内容的真实性已经根据来自可 信的内容发布实体的信息而得到验证。

现有技术的另一问题在于,希望向应用软件和多媒体内容提供这样的特性,使得在 没有授权或更改的情况下不能在处理器上使用该应用软件和多媒体内容,而同时却不希 望重新设计或重新编写该应用软件或多媒体内容以提供该特性。存在大量的可用应用软 件和多媒体内容集,并且应用软件和多媒体内容的价值相当大,所以改变该应用软件或 该多媒体内容的方案可能很昂贵,不可靠并且不实用。

因此,无需实质性地改变原应用软件或多媒体内容,而将应用软件和多媒体内容限 制到那些授权有该应用软件和多媒体内容的处理器是很有利的。

发明内容

本发明提供了一种安全处理器,和一种使用该安全处理器的方法和系统,其能够确 保应用软件安全地执行,并能够确保只执行被授权的应用软件和只显示被授权的多媒体 内容。另外,确保被授权内容只能在已经购买该内容的权利或许可的设备上播放并能够 被验证也是重要的。所述安全处理器包括两种工作模式,监视模式和安全模式。前者对 该应用软件透明地执行应用软件。后者验证所述应用软件的执行(和多媒体内容的显示) 是得到授权的,并执行由该应用软件所需的任何特别服务。所述安全处理器对于该应用 软件可以呈现为与普通的处理器相同的硬件,从而,为普通处理器编写的应用软件无需 实质改变就可以在该安全处理器上执行。所述安全处理器在其呈现为与普通处理器硬件 相同的部分上只需要附加很少的硬件,从而该安全处理器可以运行而在实际上不会降低 速度和对于应用软件可用的其它资源。在一个实施例中,所述安全处理器的一部分实际 上与原普通处理器的半导体芯片相同(除了使用不同的芯片尺寸和制造技术的情况), 从而实际上确保了所述应用软件在所述安全处理器上的执行就如同在原普通处理器上 的执行一样。
在一个实施例中,安全处理器以安全模式加电启动执行。在该启动运行阶段,安全 处理器以安全模式执行安全代码。该安全代码被保存在安全处理器芯片内部的永久存储 器中并因此是可信的。该安全代码从一个或多个可信的源加载附加的源代码,从而参考 也保存在安全处理器芯片内部的永久存储器中的并且是可信的安全信息,来验证这些源 的可信性和附加源代码的真实性。所述安全信息可以包括但不必限于:加密密钥、安全 散列值(secure hash value),或其它用来验证可信源和验证附加源代码的真实性的数据。
一旦被加载,所述附加源代码就能使安全处理器从可信源请求应用软件,验证该安 全处理器是否有权执行所请求的应用软件,验证该应用软件是否已经被正确加载,并检 查该应用软件的完整性。在本发明的环境中,并不特别要求所述永久存储器或是可信源 具有在此所述的特定实现方式。例如,但不是为了以任何方式进行限定,永久存储器或 一个或多个可信源可以使用连接到安全处理器的硬件设备来代替或补充(例如,由用 户)。在该例子中,安全处理器在信任由该源加载的任何代码之前,将验证该连接的完 整性,验证其真实性,并校正该硬件设备的操作。
所述安全处理器能够退出安全模式并执行已经以监视模式被正确加载的应用软件。 应用软件无需进行实质性的改变就可以以该应用软件原来的代码执行,从而该应用软件 处于实质上与普通处理器没有显著不同的处理器环境。当应用软件需要安全处理器监视 的服务时,应用软件产生中断,从而使得重新进入安全模式,并将这些服务传送给应用 软件,并退出安全模式,从而该应用软件可以继续以监视模式执行。例如,但不以任何 方式限于,该应用软件可以请求要被请求、加载和执行的额外的应用软件模。其它的 服务还包括,安全处理器可以监视I/O操作,所述应用软件可以使用提供给可由安全处 理器执行的安全代码的API(应用程序编程接口)来请求该I/O操作。
所述安全处理器还可以使用定时器来中断应用软件,进入安全模式,执行任何所希 望的步骤,和重新进入监视模式。其中,可以使用不只一种技术来进入安全模式,所述 安全处理器能够确定通过哪一种技术来进入安全模式。所述安全处理器还能够记录对外 部存储器的访问,从而能够验证应用软件的正确执行。其它的特征还包括,安全处理器 还具有监视(即,检查并确认其属性)I/O操作的能力,或者,安全处理器还具有在应 用软件的请求下执行(优选地,在检查和确认其属性之后)安全操作的能力。
例如,但不是为了以任何方式进行限制,所述安全处理器能够检查在外部存储器中 应用软件打算访问的那些位置。如果应用软件打算访问由安全处理器所允许的位置范围 之外的任何位置,那么安全处理器对此做出响应,确定应用软件没有正确执行。例如, 但不是为了以任何方式进行限制,在这种例子中,应用软件可能具有软件错误,或可能 包括软件病毒,或可能是故意恶意设计的情况。响应于此,安全处理器可以采用合适的 行动来限制任何这种不正确的影响。例如,但仍然不是为了以任何方式进行限制,在这 种例子中,安全处理器可以采取行动限制应用软件访问到那些外部存储器位置,可能采 取行动停止应用软件的操作,或可能采取行动对应用软件执行软件病毒检查或软件病毒 清除。
所述安全处理器还能够代表应用软件执行加密或解密,从而应用软件无需知晓,对 于其普通操作,正在执行加密、解密,或其它安全特征。作为第一个例子,但不是为了 以任何方式进行限制,应用软件可以执行对从服务器、从外部海量存储器或从外部存储 器所加载的附加代码或多媒体内容的真实性检查,而无需访问安全处理器的唯一的ID 或密钥,但是仍然使用安全处理器的安全特征的全部能力。作为第二个例子,但仍然不 是为了以任何方式进行限制,应用软件可以加密或解密其与外部实体通信的安全信息, 仍然不需要访问安全处理器的唯一的ID或加密密钥或解密密钥,但是仍然使用安全处 理器的安全特征的全部能力。
在一个实施例中,所述安全处理器包括唯一的ID,并能够使用该唯一的ID(以及 与该唯一的ID相关的唯一的加密或解密密钥)来特定地识别安全处理器的特定情况。 在这些实施例中,当代表应用软件执行加密或解密时,安全处理器使用该唯一的ID和 唯一的加密或解密密钥。例如,但不是为了以任何方式进行限制,安全处理器可以代表 应用软件执行加密或解密,从而在与外部实体进行通信时使用该唯一的ID和唯一的加 密或解密密钥。在一个这样的例子中,安全处理器可以与外部实体进行通信来进行确认、 交换、或获得DRM(数字版权管理)信息。
所述安全处理器在非易失性存储器(例如,NVROM)中保存着所述唯一的ID、代 码签名或密码散列值(cryptographic hash),和唯一的加密或解密密钥,以及任何其他的 安全处理器的特殊情况的特异性信息。所述NVROM包括一个非连接(non-bonded)的 引脚,在制造或配置安全处理器期间使用,以记录安全处理器的特殊情况的特异性信息, 该引脚在制造或配置安全处理器之后保持非连接,从而使NVROM不能被进行第二次擦 写。
由于具有唯一的ID(和唯一的加密或解密密钥),包括安全处理器的系统具有多个 优点:
*使用安全处理器与服务器进行通信是可以追踪的,因此,尝试未授权下载应用软 件或多媒体内容的用户可以被通知进行付帐。
*由于安全嵌入了唯一的ID和唯一的加密或解密密钥,所以允许服务器信任安全 处理器,而无需验证或信任安全处理器的尝试下载应用软件或多媒体内容的部分,例如 其安全引导代码。服务器只需信任制造商来安全嵌入唯一的ID和唯一的加密或解密密 钥。
*包括安全处理器的系统对于用户擅改以尝试截取发向和来自安全处理器的信号 或在系统中出现的信号具有抵抗力,这是因为与安全处理器进行通信的敏感数据为了安 全可以被加密。尝试危害敏感数据的安全将会涉及到对安全处理器芯片的困难的解构过 程。
*在所述安全处理器中,执行应用软件或呈现多媒体内容的CPU基本上与原非安 全处理器相同,因此,尝试使该安全处理器的安全特征失效也将使得该CPU的所需功 能失效。
*所述安全处理器可以通过CPU安全地验证执行应用软件或显示多媒体内容的权 利。例如,但不是为了以任何方式进行限制,可信的服务器(或其它可信的实体,例如 认证机构)可能发布能够通过安全处理器验证其真实性的安全数字购买收据,例如通过 使用唯一的ID和唯一的加密或加密密钥。在这些例子中,所述安全数字购买收据可唯 一地识别有权执行应用软件或显示多媒体内容的特定设备(或设备种类)。
*所述安全处理器可以对应用软件和多媒体内容实施复制禁止或复制保护。例如, 但不是为了以任何方式进行限制,这种内容可以包括(1)一组允许CPU执行的已购买 的应用软件,或允许CPU呈现的已购买的多媒体内容,(2)能够使该执行或显示进行 的数字版权,(3)用于CPU和其它设备之间的信息,例如,对等层消息,但不是为了 限于特定的设备(或设备种类)。
附图简述
图1显示了一个系统框图,所述系统包括能够进行安全执行的安全处理器。
图2a和2b显示了操作能够进行安全执行的安全处理器的方法流程图
图3显示了一个电路框图,所述电路包括用来以实际上非可擦除方式编程非易失性 存储器的设备。
图4显示了操作电路的方法流程图,所述电路包括用来以实际上非可擦除方式编程 非易失性存储器的设备。

优选实施例的详细描述

在此说明书中,描述了本发明的优选实施例,包括优选的处理步骤和数据结构。本 领域的熟练技术人员将意识到,在熟读该申请之后,无需过多的实验或进一步的创新, 有可能使用多种没有具体描述的其它技术来实现本发明的实施例,并且这些其它技术将 落入本发明的范围和精神内。
词汇
下面的术语涉及或参考本发明或其实施例的多个方面。每个术语的一般意义的目的 在于进行说明,而不是为了限制。
*短语“安全处理器”描述了一种设备,所述设备具有确保只有可信的软件才可以 在子单元上执行的能力,所述子单元包括“处理器”或“处理单元”(在此有时称为 “CPU”)。在所述安全处理器内,处理器或处理单元的概念是宽泛的,并且至少包括以 下设备:具有通用指令集的通用处理器,具有有限指令集的专用处理器,一组能够执行 或中断程序指令的专用电路,一组能够仿真任何类型的安全处理器的硬件程序指令,及 其任何合理的概括,等等。
*短语“应用软件”描述了一组能够由处理器执行或中断的指令或参数。在此应注 意,应用软件的概念是宽泛的,并且至少包括以下项目:软件或硬件程序指令,软件或 硬件程序参数值,能够通过编程语言编译器编译或通过编程语言解释器解释的源代码, 用于编译或解释编程语言的宏定义,由应用程序接收并对其采取行动的命令或请求,及 其任何合理的概括,等等。
*短语“多媒体内容”描述了能够呈现给用户的一组信息或参数。在此应注意,多 媒体内容的概念是宽泛的,并且至少包括以下项目:动画,视听电影,静态图片,或声 音,其或者嵌入在用于通过软件或硬件程序指令进行解释和显示的数据中;或者嵌入在 用来产生这些数据本身的软件或硬件程序指令中;或者嵌入在用于多媒体内容的标记语 言中,例如DHTML、SGML、VRML、Macromedia Flash等等;由应用程序接收并对其 进行动作的命令或请求;及其任何合理的概括;等等。
*短语“监视模式”和“安全模式”描述了安全处理器的可能的工作状态。在此应 注意,监视模式和安全模式的概念是宽泛的,并且至少包括以下项目:任何可区别的状 态,其中由安全处理器执行或解释的指令具有对处理器能力的可区别的访问度,并且其 中安全处理器在处于安全模式时能够执行安全处理器处于监视模式时的任何类型的监 视或限制,等等。
*(由安全处理器对应用软件)进行透明执行和(由处理器对应用软件)的明显硬 件识别的概念描述了安全处理器执行应用软件的能力,就该应用软件来说,就像是该应 用软件正在普通处理器上执行那样。这具有这样的效果,即,安全处理器可以执行该应 用软件,而无需对该应用软件做任何修改,但是仍然能够保持如在此所描述的安全特征。 仅仅作为一个例子,并不是以任何方式进行限制,安全处理器的一部分可能实际上与原 普通处理器的半导体芯片相同,从而实际上确保了应用软件如同其在原普通处理器上那 样在安全处理器上同样地执行。
*短语“加电”描述了处理单元的启动操作阶段,无论其在电源实际变化之后发生、 在复位信号之后发生,或者在安全处理器的任何其它实际初始化状态之后发生。如在此 所描述的那样,加电的概念是宽泛的,并且意图包括在此所描述的任何启动操作状态, 及其概括。
*短语“安全代码”和“安全引导加载程序代码”描述了可以由安全处理器解释或 执行的程序指令,并且安全处理器已知该指令是可信的。安全代码例如可能由于已经被 保持在安全处理器芯片的永久存储器中而被认为是可信的,但不限于此。从这些可信的 安全代码开始,由于已经从可信资源接收并被先前建立的“安全代码”或“安全引导加 载程序代码”鉴别为正确,所以附加安全代码可以被建立为“安全代码”。在此应注意, 安全代码的概念是宽泛的,并且意图包括安全处理器可以信任该代码的任何程序代码, 该代码包括例如用来执行安全功能。
*短语“安全功能”和“安全核心软件”描述了可以由安全处理器解释或可执行的 程序指令,该指令对安全处理器来说已知是可以验证的,并能够实现与安全、认证或验 证相关的功能。例如,但不是为了以任何方式进行限制,包括数字签名、加密和解密、 数字签名的验证等的功能可以通过安全功能或安全核心软件来实现。在一个实施例中, 这种安全功能或安全核心软件可以使用API(应用程序编程接口)而可以由应用软件来 使用。在一个实施例中,安全核心软件通过安全引导加载程序代码加载并在执行之前对 完整性和/或真实性进行验证。与安全有关的软件部分包括在“安全代码”的概念内,所 述软件部分已经被验证并保存在安全处理器芯片的存储器内(可能是易失的)。
*短语“安全处理器芯片”(在此有时称作“芯片”)描述了在其上实施安全处理器 的物理硬件。如在此所描述的那样,安全处理器芯片包括硬件结构和程序指令,对于安 全处理器来说已知是可信的,并且其他人难于干扰或破坏其安全性。
本发明的范围和精神并不局限于这些定义中的任何一种,也不局限于在此所提到的 具体例子,相反,本发明意图包括由这些和其它术语所体现的最一般的概念。
系统单元
图1显示了一个系统框图,所述系统包括能够进行安全执行的安全处理器。
系统100包括安全处理器110、通信链路120、和至少一个软件或内容发布器130。 可选地,软件或内容发布器130(在此有时称为可信的服务器130)可以包括可信的服 务器,所述可信的服务器能够在线或离线传送附加内容到安全处理器110或到由安全处 理器110所控制的设备。
在一个实施例中,系统100还包括应用设备140,包括至少一个输入设备141和至 少一个输出设备142,这些设备在由安全处理器110执行的应用软件143的控制下进行 工作。
当安全处理器工作在监视模式时,应用设备140可以执行任何所需的应用程序。作 为一个例子,但不是以任何方式进行限制,应用设备140可以包括用来播放或参与实时 视听游戏的设备,例如,可以安装在电玩机(arcade)或个人计算机中。然而,在本发 明的上下文中对应用设备140并没有如此特定的要求。相反,应用设备140通常可以包 括游戏设备;个人计算机或个人工作站;任何手持设备,例如寻呼机,PDA(个人数字 助理)或其它手持计算机,笔记本或膝上计算机,电话,手表,位置或条件传感器,生 物测定传感或报告设备,起博器,电话设备,或远程寻的设备(remote homing device)。
更概括地说,只要安全处理器110能够执行在此描述的功能,应用设备140可以包 括遵循计算规范的任何设备。
为了向芯片附加传送真实的应用或内容,通信链路120可以包括从可信的服务器 130到安全处理器110的通信链路。例如,但不是为了以任何方式进行限制,通信链路 120可以包括使用因特网或其一部分的通信链路,或实时,或使用一个或多个存储和转 发设备,或使用一个或多个中间缓存设备,或通过存储介质进行物理传送。然而,在可 选实施例中,通信链路120可以包括到专用或公共交换电话网络的通信链路,租用线路 或其它专用通信链路,射频收发信机微波收发信机,无线或有线调制解调器,或其它 能够代表安全处理器110与可信的服务器130进行通信的设备或系统。更概括地说,通 信链路120可以包括任何用来传送内容的可想象到的技术,例如,从可信的服务器130 物理运送并传送的存储介质(例如,CD-ROM)。
可信的服务器130包括例如作为电子分布系统的一部分的内容发布、传送或服务实 体。在一个实施例中,可信的服务器130(可选地)能够为其分布的任何内容产生数字 签名,所述内容例如应用软件或多媒体内容,从而安全处理器110能够验证该内容的真 实性。在一个实施例中,可以使用数字签名技术来产生该数字签名,所述数字签名技术 带有公用密钥密码系统,类似属性的系统,或能够产生可以用来验证内容的真实性的信 息的其它类型的系统。
在可选实施例中,可信的服务器130可以包括能够接收包括信息请求的消息并产生 包括对于那些信息请求的响应的消息的逻辑远程设备。例如,但不是为了以任何方式进 行限制,可信的服务器130可以包括包含高端PC或工作站的因特网服务器。虽然在一 个实施例中,可信的服务器130包括单机服务器,但是,在本发明的上下文中对可信的 服务器130并没有如此特定的要求。相反,可信的服务器130通常可以包括能够如在此 所描述那样进行动作的任何设备,并可以包括硬件元件或软件元件,或包括两者。而且, 在本发明的上下文中,对可信的服务器130包括任何特定元件的组合,或对可信的服务 器130是单个设备,或甚至其包括任何特定设备的全部,并没有如此特定的要求。相反, 可信的服务器130通常可以包括另一个设备的一个或多个部分,并通常可以包括不只一 个联合或合作工作的设备(或其部分)。更概括地说,如上所述,可信的服务器130可 以包括任何用来产生或封装传送内容的可能想到的设备,例如用来写存储器介质(例如, CD-ROM)的设备,所述存储器介质有待于物理运送并传送到安全处理器110。
如上面所注意的那样,更概括地说,可信的服务器130可以包括用来传送内容的任 何可能想到的技术。在本发明的上下文中,对于任何实际在线内容传送或甚至对于任何 在安全处理器110和可信的服务器130之间的任何现场或实时链路来说,不存在特定要 求。例如,但不是为了以任何方式进行限定,应用软件或多媒体内容可以通过任何下面 的技术或它们的某些组合或联合,从可信的服务器130传送到安全处理器110:
*所述应用软件或多媒体内容可以使用交互或交换通信系统进行传送。
*所述应用软件或多媒体内容可以使用物理存储介质进行传送。
*所述应用软件或多媒体内容可以通过任何技术从第三方以编码或加密形式进行 传送,并可以通过任何技术从可信的服务器130传送用来解密或解密的密钥。
*所述应用软件或多媒体内容可以通过任何技术从第三方进行传送,并且可以通过 任何技术从可信的服务器130传送证书或其它真实性的保证。
*所述应用软件或多媒体内容可以通过任何技术,使用中间存储设备或其它类型的 缓存设备,使用因特网或任何其它分布技术进行传送。
所述安全处理器110包括监视处理器111、一组安全逻辑112、和一组安全信息113。 安全处理器110可以工作在监视模式或安全模式。当工作在监视模式时,安全处理器110 使用包括监视处理器111的电路。当工作在安全模式时,安全处理器110使用包括监视 处理器111和安全逻辑112的电路,并且还使用包括安全信息113的数据。
1.监视处理器
监视处理器111包括内部总线114、CPU A100、CPU存储器接口A103、海量存储 器接口A135、存储器接口A140、一组专用电路A145、海量存储设备A150、一组RAM A155。
内部总线114在监视处理器111的各部分之间能够传输信号,该信号包括对于数据 的请求和包括数据的响应。内部总线114连接到CPU存储器接口A103,海量存储器接 口A135、存储器接口A140、专用电路A145、和海量存储设备A150。
CPU A100可以包括任何能够执行在此所述的功能的通用处理器或专用处理器。例 如,CPU A100可以包括例如那些由AMD或Intel制造的通用处理器,或例如DSP或 嵌入的微控制器那样的专用处理器。
CPU存储器接口A103连接到CPU A 100。CPU存储器接口A 103从CPU A 100接 收存储器访问请求并记录CPUA 100对RAMA 155的访问。虽然在一个实施例中,CPU 存储器接口A103记录所有的这些访问,在可选实施例中,CPU存储器接口A 103可以 选择只记录这些访问中的一些,例如,只是那些在由安全逻辑112或安全信息113指定选定组的存储器位置中指定的访问。
海量存储器接口A 135执行与海量存储器设备A 150相适合的接口功能。所述海量 存储设备A 150可以包括硬盘软盘,磁带,或其他类型的海量存储器。
存储器接口A 140执行与外部存储器相适合的接口功能(即,RAMA 155)。RAMA 155包括所有形式的随机访问存储器,既可以是可擦写的也可以是不可擦写的,并且如 果可擦写,既可以是可擦写多次,也可以是仅可擦写一次。
专用电路A 145执行任何其它对于具体的监视处理器111的特定的功能,而不是已 经由CPU A100执行的功能。CPU A 100和专用电路A 145可以联合或合作执行所选的 功能。
2.安全逻辑
安全逻辑112包括安全模式开关电路A 105、安全定时器电路A110、一组安全引导 代码A115、访问控制电路A 133、安全模式激活信号A 160、一组访问控制信号A 163、 NMI(不可屏蔽中断)信号A 165、和用来接收外部复位信号A 170的端口A 171。此外, 带有安全功能的一组安全代码A 120可以保存在海量存储器A150中。
安全处理器110能够响应于外部复位信号A 170。响应于复位信号A 170,CPU A100 传送控制到(即,开始在新的位置执行指令)安全引导代码A 115中的预先选择的复位 位置。预先选择的复位位置以及安全引导代码A 115都不能被CPU A100或任何其它应 用软件改变。
响应于复位信号A 170,安全模式开关电路A105产生安全模式激活信号A160,该 信号建立访问权利以便允许CPU A100访问安全引导代码A115,执行其指令,并使用 该安全信息113读写数据。一旦复位,安全处理器110就传送控制到复位位置,并执行 所述安全引导代码A 115,并(所述安全模式激活信号A 160为逻辑TRUE)允许CPU A100访问芯片的限制安全部分。在一个实施例中,安全引导代码A115被保存在分离的 非易失性存储器A 115中,其位置及其内容都不能由任何应用软件改变。
在执行完任何必需的安全检查之后,安全引导代码A115从外部海量存储器A150 中查找并加载任何被包括在安全核心代码A120中的附加的软件和安全功能,并加载到 内部RAM A 120中。
在查找并加载任何附加的安全代码A120之后,CPU A 100传送控制到该安全代码 A120,并开始执行该安全代码。安全代码A120使得CPU A100准备鉴证并执行该应用 程序代码143。一旦完成准备执行该应用程序代码143,安全代码A 120就使安全处理 器110退出安全模式。
安全处理器110还能够响应于NMI信号A 165。NMI信号A165例如可以通过应用 程序代码143产生(例如,通过由CPUA100可以执行的程序指令)来请求要以安全模 式执行的业务。这种业务的例子可以是执行安全功能或其它只有安全代码A 120才有权 执行的功能。为了请求这种业务,应用程序代码143在安全逻辑112中设置选定的比特。 安全模式逻辑将安全模式激活信号A160设置为逻辑TRUE,从而使CPU A100能够访 问安全处理器110的安全部分。同时,安全逻辑112发送NMI信号A 165给CPUA100, 使得CPU A100传送控制给芯片内部的安全引导代码A 115。安全引导代码115执行应 用程序的业务,将结果呈递给在RAMA155中的某些共享存储器位置,并使用安全逻辑 112退出监视模式。预先选择的NMI处理器位置、安全引导代码A120和用来加载和验 证安全核心软件的技术不能由CPUA100或任何应用软件来改变。
如上所述,安全核心代码A 120被保存在内部存储器中(非易失性存储器中,或易 失性存储器中,在该情况下,其从外部储存器加载并验证)。安全代码开关电路A 105 产生安全模式激活信号A 160,其使得CPU A 100能够访问包括安全引导代码A 115的 非易失性存储器C 100,从而CPU A100可以执行其指令,并使用安全信息113读写数 据。
安全定时器电路A110能够响应于由安全模式开关电路A 105设置的参数而产生 CPU A100的定时器中断信号。安全逻辑112还可以响应于来自安全定时器的时间限制 已到的信号(timeout)而产生到CPU A 100的NMI信号A 165。作为响应,CPU A100 传送控制到安全核心代码A120中预先选择的定时器中断处理器位置。预先选择的定时 器中断位置和安全核心代码A 120都不能由CPU A100或任何应用软件(或保存在外部 存储器A150中的任何其它软件)来改变。
响应于定时器中断信号A 165,并类似于进入安全模式的其它方法,安全处理器110 将安全模式激活信号A160设置为逻辑TRUE,从而能够访问安全芯片的安全部分。
访问控制电路A133响应于安全模式激活信号A 160,通过产生访问控制信号A 163 来控制到安全处理器110的单元的访问,该控制电路连接到执行访问控制的安全处理器 110的每一个单元。当安全模式激活信号A 160指示安全处理器110处于安全模式时, 访问控制电路A 133允许CPU A 100访问安全处理器110的所有单元。当安全模式激活 信号A 160指示安全处理器110处于监视模式时,访问控制电路A 133允许CPU A100 只访问安全处理器110的后向兼容监视模式部分。在优选实施例中,这种后向兼容模式 部分不包括安全逻辑112(除非指示进入安全模式)和安全数据113。
更具体来说,当安全模式激活信号A160指示安全处理器110处于监视模式时,访 问控制电路A 133防止CPU A100访问安全模式开关电路A105(除非指示进入安全模 式)、安全定时器电路A110,安全引导代码A115、安全核心代码A120、访问控制电路 A 133本身、安全模式激活信号A 160、访问控制信号A 163、只读安全数据A125、R/W 易失性安全状态值A 130、加密/解密键B101、和许可信息B102。
3、安全信息
安全信息113包括一组只读安全数据A125、R/W易失性安全状态值A 130、一组私 密钥(例如来自公共密钥加密系统)、一组加密/解密密钥、一组可选的唯一的ID和一 组签名信息B101。
只读安全数据A125包括一组安全代码,如上所述,例如响应于复位信号A170,可 选地响应于NMI信号A 165,响应于定时器中断信号A 165,能够由CPU A100执行的 可用的代码,或当进入安全模式时的能够由CPU A100执行的可用的代码。
在一个实施例中,只读安全数据A 125包括一组一个或多个私密钥,和一组加密/ 解密密钥B101,优选地对于各个安全处理器110来说是唯一的。在这种实施例中,安 全处理器110使用加密/解密密钥B101通过使用公共密钥加密系统(例如通过使用在公 共密钥加密系统中的私密/公共密钥对的私密密钥)来解密来自可信源的消息。可选地, 安全处理器110可以具有另一组代码签名B103,其不同于加密/解密密钥B101,通过使 用该代码,使用其它认证技术认证可信源。类似地,在这种实施例中,安全处理器110 使用代码签名B101来验证要加载到存储器中的附加安全代码的准确性,例如当从已认 证的可信源接收到附加安全代码时,通过标注与该附加安全代码相关的数字签名或安全 散列值的正确性的方式来进行。
在一个实施例中,只读安全数据A125还包括一组密钥信息B102,通过该信息,各 个安全处理器110能够认证源并验证各个安全处理器110是否有权接收并执行相关的应 用软件。例如,许可信息B102可以包括来自可信权利机构的签署证明,指示许可各个 安全处理器110执行相关的专用软件。在这些实施例中,响应于许可信息B102,所认 证的可信源提供了安全处理器110可以加载并执行应用软件的相关能力。在一个实施例 中,这些能力包括应用软件本身,或授权安全处理器110加载并执行应用软件的DRM (数字版权管理)证明。
R/W易失性安全状态值A 130包括安全处理器110需要来执行安全代码的任何读/ 写易失性存储器。在一个实施例中,安全处理器110在R/W易失性安全状态值A130中 保存了其所有的易失状态,从而应用程序代码不能访问由安全代码所使用的任何状态信 息。安全处理器110在安全核心代码A120中还包括可以由CPUA100执行的指令,来 对将由CPUA100执行的任何软件进行相关的认证和有效检查。通过在R/W易失性安全 状态值A130中保存安全处理器110的所有易失状态,还能够增加用户尝试读取该状态 并违反安全处理器110的安全模式操作的安全性的工作因数。然而,在可选实施例中, 安全处理器110可以至少将其易失状态的一些保存在普通存储器中,从而应用程序代码 可以访问与该状态相关的某些值。
操作方法
图2显示了操作能够进行安全执行的安全处理器的方法流程图。
方法200由系统100来执行。虽然方法200以串行方式进行描述,但是方法200的 流程点和步骤可以通过联合或并行的分离单元异步或同步地执行,以管道方式或其他方 式进行。没有特定要求所述方法200必须以本说明书所列出的流程点或步骤相同的顺序 来执行,除非有明确的指出。
1、加电
在流程点210,安全处理器110准备好加电。
在步骤211,安全处理器110被加电。
在步骤212,产生复位信号A170,从而指示安全处理器110已经刚刚被复位。当安 全处理器110被复位时,产生安全模式激活信号A160(即,设置为逻辑TRUE),并且 CPUA100跳转到(即,传送执行控制到)安全引导代码A 115。
在步骤213,安全模式开关电路A 105产生安全模式激活信号A 160,其指示非易 失性存储器C100(图3)允许CPU A100访问安全引导代码A 115,执行其指令,并使 用安全信息113读写数据。然后,CPUA100传送控制到安全引导代码A115中的预先选 择的复位位置。
在步骤214,CPUA100执行来自安全引导代码A115的指令。
在步骤215,CPUA 100执行安全引导代码A 115。
在一个实施例中,一旦复位,下面在MIPS或MIPS兼容处理器上示例性的实现方 式导致进入安全模式。该示例性实现方式开始于流程点250,并包含本应包括在步骤214 和步骤215中的动作。
*在步骤251,复位信号产生进入安全模式的请求。
*在步骤252,如果并且只有做出到复位位置Oxlfbc0000的后续未缓存的读取,那 么安全逻辑112就准备将安全模式信号A 165设置为逻辑TRUE。
*在步骤253,CPU A100中断正常执行来响应于复位信号。
*在步骤254,CPU A100尝试从位置Oxlfbc0000取回下一个指令,从而调用复位 中断处理程序或NMI中断处理程序。
*在步骤255,安全逻辑112将安全模式信号A165设置为逻辑TRUE,从而能够 访问芯片的安全部分并执行引导安全代码。
*在步骤256,CPU A 100继续执行在安全引导代码A 120中的复位中断处理程序 或NMI中断处理程序。
在执行安全引导代码A 120之后,如果存在,下面的步骤就从海量存储器A150加 载安全核心或安全功能。
安全引导代码A115读取安全信息113,接收附加密码签署或可验证的指令,并将 那些附加指令记录在内部RAM A 155中。为了执行该步骤,CPU A100执行下面的子步 骤:
*在子步骤215,工作在安全模式的CPU A 100,在已经加载并通过安全引导代码 A120认证之后,执行来自外部海量存储器A150的软件(可以从服务器设备获得)。在 一个实施例中,消息被使用来自只读安全数据A 125的加密/解密密钥B101加密,并在 工作于安全模式时只有CPU A100能够访问。
虽然在一个实施例中,CPU A100使用通信链路120获得附加指令,在可选实施例 中,系统100可以通过其它手段获得附加指令(它们的全部或部分)。在此所述的一些 例子但不是为了以任何方式进行限制,包括获得此类附加指令的可能性,或者(1)通 过物理介质,或(2)从第三方获得,具有DRM(数字版权管理)证明或从服务器设备 获得的其它能力。
而且,虽然在一个实施例中,附近指令被以加密形式进行发送,但是在可选实施例 中,系统100也可以非加密形式获得这些附加指令(它们的全部或部分),来实施使用 那些附加指令的权利,所述附加指令使用DRM证书、其它能力或其它技术来管理。
*在子步骤216,工作于安全模式的CPU A100也认证所述的软件,并根据安全信 息验证其完整性,所述安全信息或者来自芯片内,或已经根据来自可信的服务器的消息 而被验证,所述可信的服务器的可信性已经通过安全软件或数据而建立。在一个实施例 中,CPUA 100使用公共密钥加密系统执行该认证子步骤,所述加密系统包括来自只读 安全数据A 125的加密密钥或代码签名B101,并使用包括在加密/解密密钥B101或其它 只读安全数据A125中的有关可信的服务器130的信息(例如,可信的服务器130的公 共密钥)。
*在子步骤216,可信的服务器130可选地验证安全处理器110是否有权从可信的 服务器130接收应用软件或其它附加指令。在一个实施例中,CPU A100使用公共密钥 加密系统,使用来自只读安全数据A125的加密/解密密钥B101,并使用来自只读安全 数据A 125的许可信息B102或其它信息执行该认证子步骤。
本领域普通技术人员将认识到,在熟读本申请之后,可以使用很多其它的技术来使 用加密签名和可信的根密钥来认证来自服务器的软件或数据。而且,并没有特定要求是 否只需要对可信的服务器130进行认证。在可选实施例中,可以是服务器和客户相互进 行认证。
*在子步骤217,工作在安全模式的CPU A100从可信的服务器130接收应用软件 或其它附加指令,并验证该应用软件或那些附加指令的准确性。在一个实施例中,CPU A100使用公共密钥加密系统,使用来自只读安全数据A125的加密/解密密钥B101,或 使用来自只读安全数据A125的应用软件或其它附加指令的安全散列值来执行该验证子 步骤。
*在子步骤218,工作在安全模式的CPU A100将应用软件或其它附加指令记录在 RAM A155中。该子步骤的结果是应用软件或其它附加指令准备好以由CPU A 100执行。
虽然在此描述了一个用来认证和加载应用软件的示例方法,但是其它和进一步的技 术也可能完成这些任务。如上所述,在本发明的上下文中,对于应用软件的认证是否涉 及任何特定的技术并无要求,尤其是,对于应用软件的认证是否涉及与可信的服务器130 的交互通信更无要求。
在一个实施例中,通过安全处理器110获得至少安全核心代码A120自身的某些部 分来作为这些附加指令。在一个实施例中,可以使用下面的技术:
*在启动(加电或接收到复位信号)时,CPUA100被迫执行安全核心代码A120, 所述安全核心代码由安全引导代码验证为正确和安全的。
*在通过自举加载程序(bootstrap loader)加载程序代码之后,CPU A100执行安全 核心代码A120,从而从海量存储器A150或其它外部设备向内部存储器加载并复制用来 执行安全功能的代码。在一个实施例中,所述内部存储器是芯片上的易失性存储器,例 如,SRAM存储器。
*非易失性可一次性擦写的存储器C110(图3)在制造安全处理器芯片时,使用强 加密的签名值进行初始化,所述强加密的签名值例如为160比特的安全散列值或文摘值。 在一个实施例中,安全散列值或文摘值可以包括SHAI安全散列值或其它已知的强加密 签名值。如在此所描述的那样,非易失性可一次性擦写存储器的构造和初始化防止其在 制造安全处理器芯片之后被应用软件修改。
*安全核心代码A 120的自举加载程序部分计算新加载程序代码的签名,并比较所 计算的签名和已经内部存储在非易失性存储器C110中的预先计算的签名。如果所计算 的签名和预先计算的签名匹配,那么安全核心代码A120的自举加载程序部分就得出结 论,新加载的程序代码是正确可信的。一旦得到这样的结论,就允许CPUA100以安全 模式执行新加载的程序代码。
*在一个实施例中,在每次尝试加载打算以安全模式执行的附加软件时,CPU A 100 重新验证新加载的程序代码是否正确可信。例如,而不是以任何方式进行限制,这些情 况可以包括(1)每次从RAMA155、海量存储器A150、或任何其它外部设备加载安全 核心代码A 120的一部分时,(2)每次希望加载附加软件并添加到安全核心代码A 120 时,例如需要由安全核心代码A120所提供的新的安全功能或新功能。
*如在此所注释的那样,在一个实施例中,CPU A100单独验证新加载的程序代码 是否正确可信。例如,但不是以任何方式进行限制,这些情况可以包括(1)当从RAM A 155、海量存储器A 150、或任何其它外部设备加载多个模块时,为每个模块保存一个 单独的预先计算的签名,(2)当希望在一系列模块中加载附加软件时,在每个模块中为 下一个种模块找到新的预先计算的签名,(3)既为每个模块保存单独的预先计算的签 名,又为一组这种模块保存预先计算的签名。
*在步骤219,安全处理器110从安全模式退出到监视模式。在此,后面将略述从 安全模式退出的一般示例方法。
2.业务请求
在流程点220,安全处理器110以监视模式执行应用软件。该安全模式准备好从应 用软件接收业务请求。
在步骤221,应用软件向安全处理器110提出业务请求。
在步骤222,在一个实施例中,应用软件将业务请求的参数放置在安全模式逻辑中 的一组选定的寄存器中。
在步骤223,安全代码逻辑112将安全模式信号A 160设置为逻辑TRUE。
在步骤224,安全模式逻辑112产生到CPUA100的NMI中断信号A165,从而CPU A100传送控制到安全核心代码A120来满足业务请求。
在步骤225,类似于步骤213,CPUA100以安全模式跳转到预先选择的中断处理程 序位置。安全模式开关电路负责A105产生安全模式激活信号A160,其使得CPUA100 能够访问所述安全代码,执行其指令,并使用安全信息113读写数据。
在步骤226,类似于步骤214,CPUA100执行来自安全代码的指令。安全代码处理 NMI中断。
在一个实施例中,下面在MIPS或MIPS兼容处理器上的示例性实现方式导致在应 用程序代码143的请求下进入安全模式。该示例性实现方式开始于流程点250。
*所述应用程序对安全模式逻辑中的寄存器执行未缓存的读取。如果并且只要遇到 来自NMI复位位置Oxlbfc0000的随后读取,那么这就“装备”了所述安全模式逻辑来 条件性地进入安全模式。
*在步骤252,如果并且只要对复位位置Oxlfbc0000做出后续未缓存的读取,那么 安全逻辑112就准备将安全模式信号A165设置为逻辑TRUE。
*在步骤253,安全逻辑112使得产生到CPUA100的NMI信号。
*在步骤254,CPU A100尝试从位置Oxlfbc0000取回下一个指令,从而调用复位 中断处理程序或NMI中断处理程序。
*在步骤255,安全逻辑112将安全模式信号A165设置为逻辑TRUE,从而能够访 问芯片的安全部分并执行引导安全代码。
*在步骤256,CPU A100继续执行安全代码A120中的复位中断处理程序或NMI 中断处理程序。
在一个实施例中,安全模式逻辑中的寄存器被预定来指示进入安全模式的原因;例 如,由于复位,由于来自应用程序代码的请求,等等。
安全核心确定进入安全模式的原因,并可能通过读取芯片的限制区域来执行由应用 程序请求的业务,并将结果返回给与该应用程序共享的存储器区域。
在执行完所请求的操作之后,安全核心通过安全模式逻辑触发确定的退出顺序(如 下面所述的那样),并返回到应用程序代码143。
在步骤227,安全处理器110将所请求操作的结果保存在共享的存储器中,例如RAM A155。
在一个实施例中,由应用软件提交的业务请求可以包括执行I/O操作的请求。在这 些实施例中,安全处理器110保留至少一些I/O操作以在安全模式执行,从而在没有安 全代码的帮助下,应用软件就不能执行那些I/O操作。
应用软件提出业务请求,由与该请求相关的参数指示所请求的业务是I/O操作。与 该请求相关的参数遵循由其设计人员为安全处理器110所选择的API(应用程序编程接 口),优选地与应用软件合作进行工作,而无需对应用软件进行实质性改变。
在一个实施例中,由应用软件所提出的业务请求可以包括加载附加软件的请求。在 这些实施例中,安全处理器110执行类似于步骤214的步骤及其子步骤。从而,在系统 100中,在类似于步骤214的那些子步骤中,CPU A100认证服务器设备作为可信的服 务器130,CPUA100从海量存储器A150或从可信的服务器130接收或加载附加软件, 并在验证这些软件的真实性和完整性之后,CPU A100将这些附加软件记录在RAM A155中。
可以通过安全模式逻辑以上面所示相同的机制来处理错误捕捉或I/O仿真。在这些 情况下,安全模式逻辑迫使CPU进入安全模式,并根据需要执行预先认证的软件来处 理错误捕捉或I/O请求。
在步骤228,安全处理器110从安全模式退出到监视模式。在此,后面略述从安全 模式退出的一般示例方法。
3.定时器中断
在流程点230,安全处理器110设置可以中断在监视模式中执行的应用软件的定时 器,并且定时器已准备好时间已到(go off)。
在步骤231,类似于步骤221,定时器时间已到,应用软件被中断。
在步骤232,类似于步骤222,产生定时器中断信号A 165,从而指示在安全处理器 110上的处理刚刚被中断。
在MIPS或MIPS兼容处理器上的安全定时器捕捉的实现方式的一个示例性方法如 下面那样。该示例方法类似于开始于流程点250的步骤。
*安全定时器被编程在CPU复位安全引导软件中来倒计时到零,并复位到确定安 全时间捕捉周期的值。该机制不能被任何应用软件屏蔽或中断,并在应用程序继续执行 时连续运行。
*定时器从已编程的设置开始倒计时,并且一旦达到零,就触发一个到CPU的NMI 信号A 165(中断其执行路径),如果并且只要向NMI路径位置做出后续的未缓存读取 请求,那么就装备安全模式逻辑来有条件地产生安全模式激活信号。
*一旦定时器中断,CPU就跳转来执行安全核心所驻留的NMI路径,以执行所需 的动作。
*一旦知道了对NMI位置的读取,安全模式逻辑就将安全模式激活信号设置为真, 并允许访问芯片的安全区域。
*负责处理定时器捕捉的安全核心路径执行其操作并再次通过安全模式逻辑最后 退出安全模式。
在步骤236,CPU A100退出安全代码,并返回到应用软件执行点。安全模式开关 电路A105取消产生安全模式激活信号A160,从而指示不再允许CPUA100访问安全代 码,执行其指令,或使用安全信息113进行读写数据。
4.被监视的存储器访问
在流程点240,安全处理器110准备好通过在监视模式执行的应用软件来记录到外 部存储器的访问。
在步骤241,CPU A100尝试从RAM A155进行读取或向其写入。为了执行该步骤, CPU A100发送存储器地址到CPU存储器接口A103。
在步骤242,CPU存储器接口A 103将该存储器地址连接到内部总线114,该总线 将该存储器地址连接到存储器接口A140,并连接到安全逻辑112。
在步骤243,包含访问控制电路A133的安全逻辑112确定是否允许CPU A100访 问在RAMA155中的该存储器地址。在一个实施例中,通常总是允许CPUA100访问在 RAM A155中的任何存储器地址。然而,在可选实施例中,访问控制电路A133可以限 制CPU A100访问所选的存储器地址,从而当CPU A100工作在监视模式时将RAM A155 的所选部分隔离。
在步骤244,包括访问控制电路A133的安全逻辑112通过CPUA100来在RAMA155 中记录对存储器地址的访问尝试。在一个实施例中,CPU A100只记录所选的这些存储 器地址。例如,但不是以任何方式进行限制,当CPUA100工作在监视模式时,访问控 制电路A133可以选择用来记录访问的RAMA155的一个或多个部分。然而,在可选实 施例中,访问控制电路A133可以尝试记录所有的这些存储器访问,可以尝试记录响应 于其模式的存储器访问,或可以尝试记录响应于由工作在安全模式的CPUA100所选择 的某些其它标准的存储器访问。在随着对限制的通常认证检查而启动的应用期间,可以 通过安全软件加载专用限制信息。
在一个实施例中,以上述任何一种机制来实现退出安全模式的方法。
*指示进入安全模式的原因的寄存器被清除。
*软件清除所有用来执行安全核心软件的缓存或内部存储器区域。
*安全核心软件从NMI路径返回。
非易失性存储器
图3显示了一个电路框图,所述电路包括用来以实际上非可擦除方式编程非易失性 存储器的设备。
电路300包括非易失性存储器C100、无效逻辑电路C110、外部程序逻辑电路C120、 非连接引脚C130、和一组外部编程引脚340。
在一个实施例中,非易失性存储器C100包括闪存或其它能够电编程并能够进行读 取的存储器,从而电路300可以确定非易失性存储器C100是否已经用数据进行了编程。 在本发明的上下文中,对于非易失性存储器C100包含什么样的特定存储器技术并没有 特定要求,只要其可以执行在此所描述的功能就可以。
无效逻辑电路C11O被连接到外部编程逻辑电路C120,从而,当来自无效逻辑电路 C110的程序使能信号(program enable signal)被关闭时,就不能输入到外部程序逻辑电 路C120,并且非易失性存储器C100也不能从外部编程引脚进行电编程。
无效逻辑电路C110还连接到非易失性存储器C100,并能够从非易失性存储器C100 读取值并将这些值与程序使能签名值进行比较,从而无效逻辑电路C110可以确定非易 失性存储器C100是否已经被初始编程。如果非易失性存储器C100已经使用程序使能 签名值进行初始编程,那么无效逻辑电路C110就能够使到外部程序逻辑电路C120的 输入能够进行,从而可以电编程非易失性存储器C100。如果程序使能签名值没有出现, 那么来自无效逻辑C110的程序使能输出将无效。
非连接引脚C130包括电可导垫,其位于安全处理器芯片上,并能够在封装芯片之 前被探测,但是并未连接到任何外部线路或包装上。这具有这样的效果,当制造安全处 理器芯片时,非连接引脚C130可以电连接到外部电路,但在制造和封装之后,非连接 引脚C130实际上就不能再电连接到任何外部电路。因此,在制造安全处理器芯片之后 和在封装安全处理器芯片之前,当编程非易失性存储器C100时,可以使用非连接引脚 C130,但是当完成制造和封装之后,在编程非易失性存储器C100时,就不能够再使用 非连接引脚C130,从而非易失性存储器C100就不能够被外部编程。
在制造之后进行晶片测试时,非连接引脚C130被连接到所选的电压(逻辑“0”), 从而使能外部编程逻辑电路C120,并且非易失性存储器C100可以被电编程,而不管来 自无效逻辑C110的程序使能输出的状态。
记录唯一信息的方法
图4显示了操作电路的方法流程图,所述电路包括用来以实际上非可擦除方式编程 非易失性存储器的设备。
当构造安全处理器110时,根据电路300来执行方法400。虽然方法400被描述为 串行的,但是方法400的流程点和步骤也可以联合或并行地由单独的单元异步或同步地 执行,以管道方式或其他方式。并没有特别要求必须以与本说明书所列出的流程点或步 骤相同的顺序来执行方法400,除非有明确指出。
在流程点410,在安全处理器110中的非易失性存储器C100准备好被编程。在一 个实施例中,该方法的结果能使得对于该特定安全处理器110唯一的安全信息被记录在 非易失性存储器中。
在步骤411,非连接引脚C130被连接到所选电压(逻辑“0”),从而外部程序逻辑 电路C120能够工作,并可以电编程该非易失性存储器C100。
在步骤412,非易失性存储器C100使用初始程序使能签名值(设置在其最后的存 储器位置中)进行电编程,从而,非易失性存储器C100准备好被进一步编程。
在步骤413,电路300被封装,从而非连接引脚C130不再能够用来连接到外部电 路。
在步骤414,非易失性存储器C100被电编程。
在一个实施例中,当执行该步骤时,对于安全处理器110的特定情况为唯一的安全 信息113被记录在非易失性存储器C100中。这具有这样的效果,安全处理器110的特 定情况变得能够唯一地区别于安全处理器的每个其它情况,并可以唯一地将自身标示为 可信的服务器130。
在步骤415,非易失性存储器C100进一步被电编程来擦除编程使能签名值。当编 程使能签名值不再存在时,无效逻辑电路C110确定非易失性存储器C100不再能够用 于编程,并使得外部程序逻辑电路C120无效。这具有这样的效果,非易失性存储器C100 不再能够通过外部编程引脚被进一步电编程。
在流程点420,非易失性存储器C100不再包括程序使能签名值,无效逻辑电路C110 确定非易失性存储器C100不再能够用于编程,并且无效逻辑电路C110能够使得外部 编程逻辑电路C120无效。一旦对安全处理器110加电,非易失性存储器C100就不能 再进一步从外部编程引脚被电编程。
可选实施例
虽然在此描述了优选的实施例,但是可能有多种变换,这些变换仍然处于本发明的 原理、范围和精神之内。在熟读本申请之后,这些变体对于本领域熟练技术人员来说将 变得清楚。
*对于所有可执行的代码、或甚至所有安全代码是否需要出现在集成了安全处理器 110的芯片上并无特定要求。在可选实施例中,安全处理器110可以涉及保存在外部RAM A155、海量存储器A150、或其它外部设备中的安全代码或其它可执行代码。
*对于是否需要将安全处理器110作为单个集成芯片来实现并无特定要求。在可选 实施例中,安全处理器110可以包括多个设备,这些设备使用加密或反监听或破坏保护 的信号进行连接。
*对于是否需要同时加载所有安全代码并无特定要求。在可选实施例中,安全处理 器110可以涉及多个片段的安全代码,这些代码以不同的时间进行加载和验证,例如按 顺序,或例如根据需要而进行。作为第一个例子,但不是为了以任何方式进行限制,当 工作在安全模式时,安全核心代码A120可以包括要加载并集成到由CPU A100执行的 指令中的附加软件的一个或多个模块的签名。作为第二个例子,但不是为了以任何方式 进行限制,所述安全核心代码A120可以包括要加载的附加软件的一个或多个模块的签 名,其自身的每一个包括要加载的附加软件的一个或多个模块的签名。
*存储器和海量存储器访问检查可以响应于所选的事件来执行。作为第一个例子, 但不是为了以任何方式进行限制,这种所选的事件可以包括应用软件对于加密/解密业 务、I/O业务、或安全签名或验证业务的任何请求。作为第二个例子,但不是为了以任 何方式进行限制,这些所选的事件可以包括海量存储器访问的周期性截取(例如,对于 所选值为N来说,每隔N次的访问)、周期性定时器中断,等等。
*认证和验证检查可以响应于所选的事件来执行,这类似于存储器或海量存储器访 问的检查。作为第一个例子,但不是为了以任何方式进行限制,这些所选的事件可以包 括应用软件对加密/解密业务、I/O业务、或安全签名或验证业务的任何请求。作为第二 个例子,但不是为了以任何方式进行限制,这些所选的事件可以包括对海量存储器方法 的存储器的周期性截取(例如,对于所选值为N的情况,每隔N次的访问),周期性定 时器中断,等等。
*除了在此上面所提到的那些之外,安全核心代码A120还可以提供附加的安全业 务给应用软件。例如,但不是为了以任何方式进行限制,这些附加业务可以包括对来自 服务器(而不是上面所描述的可信的服务器130)和其它消息方(例如在对等协议和应 用软件具有服务器色的协议中)的消息的认证和验证,对与服务器(而不是上面所描 述的可信的服务器130)和其它消息方交换的消息进行加密/解密,对与服务器(而不是 上面所描述的可信的服务器130)和其它消息方交换消息进行公共密钥签名,对从辅助 的可信服务器130加载并执行的其它附加软件进行认证和验证,对DRM许可信息的管 理,对由CPU A 100执行加载的软件的周期性(或响应于所选事件,如上所述)的认证 和验证,等等。
*除了那些在此上面所提到的之外,安全核心代码A120还可以提供与安全相关的 业务之外的附加业务给应用软件。例如,但不是为了以任何方式进行限制,这些附加业 务可以包括应用软件被许可操作的特定设备驱动器或对特定硬件的操作,等等。
在熟读本申请之后,本领域熟练技术人员将认识到,那些可选实施例和变化仅仅是 示例性的,而不是为了以任何方式进行限制。

发明背景

高效检索全球专利

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

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

申请试用

分析报告

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

申请试用

QQ群二维码
意见反馈