首页> 中国专利> 开放型通用抗攻击CPU及其应用系统

开放型通用抗攻击CPU及其应用系统

摘要

中央运算装置(GT)10秘密地具有私钥和密码引擎16。GT10在执行软件之前将附加于软件的许可投入到GT10。许可包含以与私钥成对的公钥对软件加密时使用的代码密钥进行加密的信息。当投入许可时,密码引擎16通过使用私钥对许可进行解密而获取代码密钥,使用该代码密钥对软件进行解密。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2007-12-12

    授权

    授权

  • 2005-11-16

    实质审查的生效

    实质审查的生效

  • 2005-09-14

    公开

    公开

说明书

技术领域

本发明涉及一种对抗企图篡改设备内部的信息或取出秘密信息这样的攻击的技术。

背景技术

近年来,随着数字内容的流通得到促进,提供了用于保护著作权等内容的权利的技术(DRM:(数字版权管理:Digital Rights Management))。作为DRM的例子,例如可列举出三洋电机、日立、富士通3家公司共同开发的UDAC(带访问控制的通用流通:Universal Distribution with AccessControl)。

当安装UDAC那样的DRM时,为了使内容保护的安全达到足够的级别,在利用者的系统中使DRM为TRM(防篡改模块:Tamper Resistant Module)很重要(以下将使DRM成为TRM这一处理称为DRM的TRM化)。现在,为了以面向消费者的产品一般实施的TRM化,大体分为硬件TRM和软件TRM这2种方法。

硬件TRM为这样的TRM,即,通过形成为不能从半导体的外部端子读出秘密信息等的构造,实施特殊涂覆和极微细化等而实现。将硬件TRM与软件TRM相比,特别是也可称为“抗攻击容器”。软件TRM为这样TRM,即,通过使希望加密的代码为难以解析的构造而加密,在执行的瞬间对该代码进行解密而实现。

然而,在过去的TRM中存在以下那样的问题。

1.硬件TRM的问题

在面向消费者的用途中较重视成本,为此需要对DRM进行半导体包化,但可加入到1块芯片的资源有限,所以不能提供多种多样的功能。在希望扩大记录许可钥匙和CRL(证书撤消列表:Certificate Revocation List)的区域的大小的情况和希望由XrML(可扩充权限标记语言(eXtensible rightsMarkup Language)表现内容利用条件的情况等中,由硬件TRM不能应对。

·当重视安全性时,需要使利用的处理器和记录媒体都在硬件TRM内,为此,制造后难以扩充功能。另外,由于这一原因,软件可利用的记录媒体受到限制,难于同时使处理器执行资源消耗高的一般的(不需要保护)的软件。另外,同时使处理器执行密钥不同的多个保护软件也较困难。即,硬件TRM没有通用性。

·由于需要内容的种类的追加和每次DRM升级时新的芯片的开发、新设立半导体制造工序等的生产线,所以,制造成本增大。

·由于在具有互换性的通用CPU芯片上仅开发、装载各个软件而向利用者提供多种类的功能,从而妨碍了逐渐实现顺利的错误修正和功能扩充的“信息技术的逐步进化”。

2.软件TRM的问题

·最根本的私钥不能加密,无论怎样分散等进行保管,也可仅由软件解析容易地找出私钥。

·如使用硬件ICE(在线仿真器:In Circuit Emulator),则通过跟踪执行内容,可容易地找出以私钥为首的各种秘密信息。

发明的公开

本发明的目的在于解决上述问题,提供具有与软件TRM同样的通用性并具有与硬件TRM同样的安全性的TRM。

为了达到上述目的,按照本发明的第1形式,在中央运算装置中,具有秘密地隐藏的第1私钥和进行加密和解密的密码单元,上述第1私钥与公钥成对,上述密码单元通过使用上述第1私钥对使用上述公钥加密的第1程序的第1许可进行解密,从而从上述第1许可获得用于对上述第1程序进行解密的代码解密钥匙。代码解密钥匙也可与对第1程序加密时使用的代码密钥相同。另外,第1许可可嵌入到第1程序,也可两者分别流通。

通过这样构成,用于对上述第1程序进行解密的钥匙的获得所需要的私钥秘密地记录于中央运算装置内,所以,不分散保管。因此,可解决通过解析程序而容易发现私钥的问题。

另外,也可使上述中央运算装置还具有高速缓存,上述密码单元从存储区域将构成上述第1程序的加密块输出到上述高速缓存时,按高速缓存单位对上述加密块进行解密。通过按高速缓存单位对加密块进行解密,记录到高速缓存,从而可比过去提高安全性。

另外,也可使上述中央运算装置还具有用户不能参照或篡改的抗攻击缓冲器,上述代码解密钥匙记录于上述抗攻击缓冲器中。记录于抗攻击缓冲器内的钥匙即使为内核模式,用户也不能参照或篡改,所以,可安全地保持代码解密钥匙。

在这里,上述抗攻击缓冲器还包含外部输出禁止信息和高速缓存锁定信息,上述外部输出禁止信息表示是否可将对应的上述抗攻击缓冲器内的信息输出到上述抗攻击缓冲器中,上述高速缓存锁定信息表示是否可将对应的信息输出到高速缓存外。

也可根据上述外部输出禁止信息和上述高速缓存锁定信息,管理第1程序和其它程序之间的上述第1许可的移动。这样,可使上述中央运算装置实现不能复制的专用柜。因此,例如即使当可在多个程序间移动许可时,也可防止再送攻击导致的许可的非法复制。

另外,在上述中央运算装置中,也可使上述第1许可包含上述第1程序的执行过程访问存储区域时的访问条件,还具有记录构成上述第1程序的加密块被记录的上述存储区域的地址和对上述存储区域的访问条件的TLB(转换后备缓冲器:Translation Look aside Buffer)、存储器管理单元、高速缓存、处理器内核。在该构成中,上述抗攻击缓冲器与上述TLB连接,上述存储器管理单元根据记录上述加密块的存储区域的地址,从上述TLB获取对上述存储区域的访问条件,然后,从上述抗攻击缓冲器获取与上述存储区域对应的上述代码解密钥匙。上述处理器内核根据上述存储器管理单元获取的上述访问条件,判定是否允许从上述执行过程对上述存储区域进行访问,在判定允许对上述存储区域进行访问的情况下,从上述执行过程对上述存储区域进行访问。上述密码单元使用由上述存储器管理单元获取的上述代码解密钥匙对上述存储区域内的上述加密块进行解密,将由此获得的代码写入到上述高速缓存中。

存储区域通过TLB与抗攻击缓冲器建立对应,用于对写入到该存储区域的块进行解密的钥匙根据该对应关系被获取。另外,对存储区域的访问也根据TLB内的访问条件被控制。因此,可安全地进行对存储区域的访问控制和块在高速缓存的加载。

在这里,也可使得在从上述第1程序的执行过程访问的存储区域从第1存储区域转换到第2存储区域的情况下,上述存储器管理单元还判定从上述抗攻击缓冲器获取的与上述第1存储区域对应的代码解密钥匙与对应于上述第2存储区域的代码解密钥匙是否一致,在判定为一致的情况下,执行从上述执行过程对上述第2存储区域的访问,在判定不一致的情况下,不执行从上述执行过程对上述第2存储区域的访问。这样,当根据Call、Jump或Return等命令,在执行过程中使地址从某一存储区域移动到与对应于该存储区域的代码解密钥匙不同的其它代码解密钥匙对应的其它存储区域时,不能从该执行过程访问上述其它存储区域。这样,可禁止某一所有者过程对其它所有者过程的存储区域的访问。

另外,也可使得在上述中央运算装置中,在上述抗攻击缓冲器对上述各代码密钥记录不同的数据密钥,上述密码单元使用上述数据密钥将上述高速缓存内的数据加密后,通过上述TLB记录到与上述数据密钥建立对应的存储区域,从上述存储区域读出加密的数据,使用上述数据密钥进行解密后,写入到上述高速缓存中。这样,可安全地进行使数据保留到存储区域或加载到高速缓存的操作。

另外,也可使得在上述中央运算装置中,当由第2代码利用通过执行第1代码获得的作业数据时,上述处理器内核以将对记录上述作业数据的存储区域的访问权提供给上述第2代码的形式设定上述TLB,而且,以上述第2代码从上述存储区域读出上述作业代码时使用对上述作业数据进行加密用的代码密钥的形式设定上述抗攻击缓冲器。

这样,即使在通常第1代码的代码密钥与第2代码的代码密钥不同的情况下,通过第1代码与第2代码共用数据密钥,从而可读出执行第1代码获得的数据。因此,即使在上述中央运算装置保护着2个或其以上的软件并执行的情况下,也可根据需要安全地共享存储区域。

另外,也可使得在上述中央运算装置中还具有寄存器和用于进行对寄存器的访问控制的寄存器访问控制表,上述处理器内核使用上述寄存器访问控制表内的密封标志,控制上述寄存器的密封和释放。这样,在过程将数据存放于寄存器时,可进行密封,使得不能从现在执行中的过程以外访问存放于寄存器中的数据。

另外,也可使得在上述中央运算装置中,当将上述TLB的内容记录到外部的页表时,上述密码单元将签名提供给记录的内容,在将上述页表的内容取入到上述TLB之前,上述密码单元确认上述签名是否正确。这样,可安全地将TLB的内容保持于页表。

另外,也可使得在上述中央运算装置中,当将上述抗攻击缓冲器的内容记录到外部存储装置内的加密钥匙表时,上述密码单元对记录的内容进行加密。这样,可将抗攻击缓冲器的内容安全保持在外部存储装置中。

也可使得生成TLB的内容的签名时使用的私钥和对抗攻击缓冲器的内容进行加密时使用的私钥都由中央运算装置内的处理器生成。

另外,也可使得上述中央运算装置与其它中央运算装置连接,上述中央运算装置通过与上述其它中央运算装置相互进行认证从而获得对话钥匙,上述中央运算装置的上述密码单元使用上述对话钥匙将上述中央运算装置的上述高速缓存的内容加密,同步传送到上述其它中央运算装置。这样,在具有多个具有上述构成的中央运算装置的多CPU中,可安全地使高速缓存内的内容同步。

另外,也可使得在上述中央运算装置中,上述密码单元执行上述第1程序之前,使用上述公钥对附加于第2程序的上述第2许可进行解密,从而获取对第2私钥进行加密时使用的私钥密钥,然后,使用上述获得的私钥密钥对上述第2私钥进行解密。

另外,也可使得在上述第2许可附加表示仅可从第1程序的执行程序读出的条件,上述第2私钥仅可从上述第1程序的执行程序读出。通过使得仅可从第1程序的执行过程读取第2私钥,从而可安全地维持管理秘密信息。

上述第1程序也可为TRM化要求的任何软件。例如,作为第1程序,可列举出可信计算模块、使上述中央运算装置实现电子钱包的程序、处理个人信息的软件、上述中央运算装置的安装代码的查毒软件、在多个中央运算装置间移动的移动代理(移動エ一ジエント)、机器人的控制程序及IC卡用的安全程序等。

另外,也可使得在上述中央运算装置中,对构成上述第1程序的块考虑多种各样的形式,与此相应地使中央运算装置具有更多的单元。

例如,也可使得块包含表示块的散列值的确认是否必要的散列确认要否信息,并还具有散列单元和散列确认单元,该散列单元根据上述散列确认要否信息计算出上述块的散列值,附加到上述块;该散列确认单元根据上述散列确认要否信息确认上述块的上述散列值。

另外,例如也可使得块包含表示块是否需要保护的加密要否信息,并且还具有保护块选择单元,该保护块选择单元根据上述加密要否信息判定将上述块输出到上述密码单元,还是原样输出到高速缓存或存储区域。

另外,为了减少对各块附加选择块的保护块选择单元,也可如以下那样构成。

例如,第1程序的执行文件的标题包含表示构成上述第1程序的块的构成的加密块位图,保护块选择单元根据上述加密块位图判定将上述块输出到上述密码单元中,还是原样输出到高速缓存或存储区域中。

另外,例如第1程序的代码的起始部分为如下的代码,其指定构成上述第1程序的多个块为明文块与加密块的组合的重复,在上述组合中明文块连续的数和加密块连续的数。

上述处理器内核通过执行该代码,判定将上述块输出到上述密码单元中,还是原样输出到高速缓存或存储区域中。

另外,也可使得在上述中央运算装置中,上述高速缓存与存储器之间还具有:上述密码单元介于其中间的高速缓存线;上述密码单元不介于其中间的高速缓存线。这样,可实现处理的高速化。

另外,作为本发明的其它形式,提供一种程序,该程序进行将执行保护程序的授权提供给中央运算装置的控制,其中,使上述中央运算装置执行包含如下内容的处理:上述保护程序由代码密钥加密,并且存在有许可,该许可对应于上述保护程序,包含上述代码密钥,而且由与秘密地设于上述中央运算装置中的私钥成对的公钥加密,在上述中央运算装置执行上述保护程序之前,将上述许可投入到上述中央运算装置中,通过在上述中央运算装置具有的密码单元中使用上述私钥对上述许可进行解密,从而从上述许可获取上述代码密钥,在上述密码单元使用上述代码密钥使上述保护程序解密。

该程序可获得与由具有上述构成的中央运算装置进行的处理同样的作用·效果。因此,由该程序也可解决上述问题。另外,记录上述程序的记录装置也由上述中央运算装置执行上述程序,也可获得与由具有上述构成的中央运算装置进行的处理同样的作用和效果。

另外,作为工序包含由构成上述中央运算装置的各单元进行的动作的软件执行授权方法也可获得与由具有上述构成的中央运算装置进行的处理同样的作用和效果。

另外,按照本发明的再另一形式,提供一种程序,该程序在计算机中执行,其特征在于,存在由代码密钥加密的程序和许可,该许可对应于上述保护程序,包含上述代码密钥,而且由与中央运算装置秘密具有的私钥成对的公钥加密,该中央运算装置设于应执行上述程序的计算机中,在执行上述程序之前,将上述许可投入到上述中央运算装置,由上述中央运算装置使用上述私钥解密,上述程序使用从上述许可获取的上述代码密钥,由上述中央运算装置解密。该程序为由上述中央运算装置保护的软件,通过由具有上述中央运算装置的计算机执行,可获得与硬件TRM同样的安全性。

另外,记录上述程序的、可由上述计算机读取的记录媒体也通过从该记录媒体加载程序,由具有上述中央运算装置的计算机执行程序,从而可获得与上述程序同样的作用和效果。

另外,按照本发明的再另一形式,程序生成装置生成在设置有具有上述构成的中央运算装置的计算机中执行的程序,其特征在于,具有:输入单元,其输入代码目标;连接程序前处理单元,其将所输入的上述代码目标分成多个块,并将NOP(空操作)命令追加到各块中;连接程序单元,其进行地址解决;保护代码执行形式生成单元,其通过使用代码密钥将各块加密,从而生成保护代码执行形式;许可生成单元,其生成许可,该许可包含上述代码密钥,由与上述私钥成对的公钥加密,上述许可在上述计算机执行上述保护代码执行形式之前投入到上述中央运算装置中,由上述密码单元使用上述私钥进行解密,上述保护代码执行形式使用从上述许可获取的上述代码密钥,由上述密码单元进行解密。

由上述程序生成装置,可从不能由上述中央运算装置保护的形式的代码模块生成可由上述中央运算装置保护的程序。所生成的程序由具有上述中央运算装置的计算机执行,从而可获得与硬件TRM同样的安全性。

附图的简单说明

图1为示出基本软件包的利用关系模型的图。

图2为示出编程模型的图。

图3为第1实施形式的实现GT的CPU的构成图。

图4为示出TRB内的各行的字段的构成的图。

图5为示出TLB内的各行的扩充字段的构成的图。

图6为关于FR体系结构的情况示出TLB内的字段的值与访问权限的对应的图。

图7为关于因特体系结构的情况示出TLB内的字段的值与访问权限的对应的图。

图8为示出加密钥匙表的构造的图。

图9为示出签名方式的一例的图。

图10为示出TRB、TLB、加密钥匙表和页表的关系的图。

图11为示出存储TRSS标志的字段的构成的一例的图。

图12为示出RACT的各行的字段构成的一例的图。

图13为示出RSSL寄存器的字段构成的一例的图。

图14为示出在一般的虚拟段空间与抗攻击段空间之间从代码执行过程访问数据时的方针的图。

图15为示出在GT10上保护过程动作的状态的图。

图16为说明GT的认证的图。

图17为示出可在GT许可中设定的访问权限和被授予权限的图。

图18为示出上述GT认证处理的一部分的流程图。

图19为示出用作超流通文件形式时的保护代码执行形式的一例的图。

图20为说明保护代码的加载和执行工序、及保护数据的保留和维持的图。

图21为说明对记录执行保护代码时的保护代码的页访问控制的图。

图22为示出由处理器内核进行的对保护代码和保护数据的访问控制的流程图。

图23为关于异常·中断处理的流程图。

图24为关于命令处理的流程图。

图25为说明起动保护代码文件时的OS内核60和GT动作的图。

图26为说明从执行保护代码的过程访问保护数据的原理的图。

图27为说明从主过程调用其它保护代码模块时进行的工序的流程图。

图28为说明从主过程调用其它保护代码模块时OS内核进行的处理的流程图。

图29为示出由抗攻击代码返回异常处理进行的用于防止密封寄存器非法访问的顺序例的图。

图30为示出由OS内核进行的保护上下文转换时的顺序的一例的图。

图31为示出保护数据区域的共享的一例的图。

图32为说明模块认证及保护数据解密钥匙共享工序的设定工序的图。

图33为示出调用抗攻击区域共享系统调入时的处理的流程图。

图34为示出DRM软件模块的构造模型的一例的图。

图35为示出由媒体DRM进行的处理的流程图(其中之1)。

图36为示出由媒体DRM进行的处理的流程图(其中之2)。

图37为示出由解码器DRM进行的处理的流程图(其中之1)。

图38为示出由解码器DRM进行的处理的流程图(其中之2)。

图39为示出由解码器DRM进行的处理的流程图(其中之3)。

图40为示出由再现应用程序进行的处理的流程图。

图41为示出秘密信息的维持和管理方式的图。

图42为示出用于许可管理的存储器访问的方式的图。

图43为实现第2实施形式的GT的CPU的构成图。

图44为示出第2实施形式的块的构造的图。

图45为示出ebim为4时的块的构造的图。

图46为示出由保护块选择程序进行的处理的流程图。

图47为示出由散列引擎进行的处理的流程图。

图48为示出由散列检验程序进行的处理的流程图。

图49为说明NOP的处理的图。

图50为多CPU的构成图。

图51为示出从代码目标输出保护代码执行形式的工具群的例的图。

图52为示出将GT安装于个人计算机或工作站时的系统构成例的图。

实施发明的最佳方式

下面参照附图说明本发明的实施形式。在相同装置等中采用相同的附图标记,省略说明。

本发明通过在CPU安装通用TRM功能,从而使CPU为具有通用性的抗攻击容器。在以下的说明中,将安装本发明的通用TRM功能的CPU称为“Generic TRM”,简称为GT。

(构成)

在说明GT的构成之前,说明GT与由该GT执行的软件的利用关系。

图1示出实现GT的CPU包和由该CPU包执行的GT基本软件包的利用关系模型。

如图1所示那样,GT基本软件包可分成应用程序层、DRM层、PKI程序库层。在应用程序层中包含受到保护的应用程序(以下称保护应用程序)。在DRM层包含解码器DRM30和媒体DRM40。在PKI程序库层包含PKI程序库20。解码器DRM30、媒体DRM40、及PKI程序库20为OS(操作系统:Operation System)的一部分。

各基本软件包分别具有以下那样的功能。这些功能过去已为人们所知,所以,省略说明。

PKI程序库:

·标准的PKIX(公钥基础结构(Public Key Infrastructure)(X.509))程序库

媒体DRM(包含虚拟媒体DRM,可信服务器DRM):

·许可生成·管理·删除·移动·复制的控制

·保护内容管理

·UDAC-MB/LB/PI认证·许可管理功能

·许可变换功能:在MB(媒体基体(Media Base)、PI(协议独立:Protocol Independent)、GT间的变换等

解码器DRM:

·从媒体DRM获取许可

·授权许可解密和内容解密钥匙的维持

·内容的解密、通用利用控制和向应用程序的安全传送

·利用控制功能扩充功能

如图1所示那样,各DRM30和40作为软件实现,不作为硬件实现。另外,GT10作为CPU实现。GT10(CPU)执行DRM30和40、PKI程序库20及保护应用软件50。

图2示出包含图1所示基本包以外的模块的在GT上的编程模型。

如图2所示那样,在OS除了上述PKI程序库20、解码器DRM30、及媒体DRM40外,还具有OS内核60和器件驱动程序70。器件驱动程序70是使周边硬件60动作所需要的软件。

包含保护应用软件50和未受到保护的应用程序的多个应用程序在该OS上运行。即,在过去的CPU上运行的其它应用程序也可在GT10上与使用了DRM功能的保护应用程序一起运行。这样,GT10为可与保护应用程序同时执行一般的没有保护的必要的应用程序的具有通用性的抗攻击容器。

OS内核60除了过去的动作外,在GT10中,当进行存储器管理和上下文的转换控制时,在寄存器密封等的GT10进行固有的处理(后述)。然而,在OS内核60进行这些处理并不对GT10的安全性产生影响。即,即使在OS内核60存在安全漏洞的情况下,也不对GT10的保护的安全性产生影响。

解码器DRM30、媒体DRM40、及这些DRM使用的PKI程序库20内的密码·解密程序库、及TRM化所需要的应用程序需要作为在GT10上受到保护的GT保护代码流通和执行。这些软件模块基本上需要使全文为暗文。

如上述那样,过去,在软件TRM存在扩充性,但具有可容易破坏的性质。然而,按照本发明,通过采用由GT10保护的DRM软件模块,可向DRM软件模块提供与硬件TRM同样的强度。另一方面,虽然硬件TRM存在没有扩充性、资源也受到限制的问题,但根据GT10,由于采用了DRM软件,所以,功能扩充时不必对装载GT10的CPU施加变更,可由DRM软件的升级应对。

DRM构造模型也可按照UDAC-MB(带访问控制-媒体基体的通用流通)UDAC-LA、UDAC-PI的各结构和规格。

下面,根据图3通过数据的交换说明实现第1实施形式的GT的CPU的构成。

图3示出假设仅由明文或暗文构成的代码块或数据块时的(仅支持ebim=0,1的情况)、GT内部的回路块的构成与回路块间的数据交换模型。

GT10具有处理器内核11、命令高速缓存12、数据高速缓存13、命令MMU(存储器管理单元)14、数据MMU15、密码引擎16,与RAM(随机存取存储器)17连接。

作为本发明的GT10的1个特征,具有对代码块或数据块进行加密或解密的密码引擎16,对使用该密码引擎16加密后的代码块和数据块进行解密后,保持在GT10内部的高速缓存12或13中,当从数据高速缓存12将作业数据输出到RAM17时,有时使用密码引擎16将该数据加密后输出。以下说明GT10的块间的数据交换。

首先,识别从RAM17输入的代码块为应由处理器内核11和命令MMU14保护的代码块(以下称保护代码块)或明文代码块中的哪一个。识别从RAM17输入的数据块为应由处理器内核11和数据MMU15保护的数据块(以下称保护数据块)和明文数据块中的哪一个。

分别从命令MMU14和数据MMU15相对RAM17指定保护块传送目标的地址,使得将保护代码块和保护数据块发送到密码引擎16。输出到密码引擎16的代码块和数据块被解密,分别输出到命令高速缓存12和数据高速缓存13。对保护代码块进行解密时使用的钥匙Kc和对保护数据块进行解密时使用的钥匙Kd从处理器内核11输出到密码引擎16。明文代码块或明文数据块原样分别输出到命令MMU14或数据MMU15。

另外,为了确保保护代码块和保护数据块的安全性,根据GT10,当从数据高速缓存13将作业数据输出到RAM17时,在数据高速缓存13的出口将作业数据加密。为此,先从数据高速缓存13将作业数据输出到密码引擎16,同时,从处理器内核11将用于对作业数据加密的钥匙Kd(与对保护数据块进行解密时使用的钥匙相同)输出到密码引擎16。密码引擎16使用该钥匙Kd对该作业数据进行加密,将加密后的作业数据输出到设于RAM17等的虚拟存储区域。另外,当进行加密时,在也可在数据块附加随机数。

当将数据块输出到虚拟存储区域时,由处理器内核11根据TLB(转换后备缓冲器:Translation Look aside Buffer)(未图示,后述)判断该数据块是否为应保护的数据块,根据判断结果决定当根据数据高速缓存功能指定地址时是否通过密码引擎16。另外,用于加密和密码的解密的钥匙Kc和Kd通过GT10内的密码引擎16对GT许可进行解密而获得,存放到抗攻击缓冲器(以下称TRB:防篡改缓存)(未图示,后述)。

命令MMU14和数据MMU15在图3中,作为分别的块而示出,但也可为1个模块。命令高速缓存12和数据高速缓存13也相同。

如上述那样,根据GT10,在高速缓存的出入口按高速缓存单位对加密了的代码块和数据块进行解密。可是,当在CPU内对代码一个个加密时,需要按2个字节左右进行。然而,为了获得足够的强度,在现在的技术中,要求将8字节左右形成为加密块,所以,按2个字节左右的单位不能维持足够的强度。然而,根据GT10,当对来自RAM17的加密了的代码块和数据块进行解密时,通过按高速缓存单位进行解密并维持,从而可安全地对保护代码块和保护数据块进行保护。

在GT10不具有命令高速缓存12的情况下,也可在GT10内设置RAM区域,在内部对所有执行代码进行解密,保存到内部的RAM区域后执行。这样,可确保与上述构成同等的安全性。另外,在GT10没有数据高速缓存13的情况下,在GT10的内部设置RAM区域,将需要保护的作业数据记录到GT10内部的RAM区域。这样,可确保与上述构成同等的安全性。

另外,过去,当将CPU内的作业数据暂时输出到RAM时,应保守秘密的数据有时泄漏。另外,通过监视该数据的内容,还可推测命令代码,从而也可推测保持于CPU内的私钥。然而,根据GT10,当从数据高速缓存将作业数据输出到RAM时进行加密,在使高速缓存恢复时对该数据进行解密,所以,可避免这样的问题。

在高速缓存12及13与RAM17之间,也可如明文的代码块用的高速缓存线、明文的数据块用的高速缓存线、用于对保护代码块进行解密的高速缓存线、用于对保护数据块进行加密的高速缓存线、及用于对保护数据块进行解密的高速缓存线那样,并列地具有多个高速缓存线。这样,可使GT10的处理高速化,提高保护代码块和保护数据块的安全性。

另外,如图3所示那样,在处理器内核11内具有寄存器。根据GT10,可在过去的虚拟存储区域追加抗攻击区域这样的机构,在该抗攻击区域内,可不使安全上的风险相互影响而执行多个保护软件。为此,处理器内核11具有抗攻击段选择程序(以下称TRSS)标志、寄存器访问控制表(以下称RACT)、及寄存器密封状态列表寄存器(以下称RSSL寄存器)(图中未示出)。

TRSS标志记录于指定虚拟存储区域内的段的段指定寄存器内的字段。处理器内核11根据TRSS标志可判断由寄存器示出的虚拟地址为抗攻击段空间内,还是为一般的虚拟段空间内。另外,当执行多个保护软件时,由处理器内核11使用RACT控制寄存器的密封和释放,从而不能从现在执行中的过程以外的过程访问寄存器。另外,表示寄存器是被密封还是释放的信息登录于RSSL寄存器。抗攻击段空间和抗攻击区域及寄存器的密封和释放将在后面详细说明。

这样,GT10通过使用TRM化的1组CPU而实现。GT10可将在GT10运行的DRM软件模块或其它需要保护的模块TRM化。因此,可减少制造硬件TRM的成本、特别是开始一批的开发成本。

下面依次说明TRB、TLB、TRSS寄存器、RACT、及RSSL寄存器。

TRB保持用于对程序代码(命令的连接)进行解密的钥匙Kc和将数据加密/解密的钥匙Kd等。而且,也有将Kd以及Kc合称为软件密钥的情况。TRB具有即使为内核模式用户也不能参照和篡改内部的构造、即抗攻击构造。在TRB内保持Kc和Kd的位置的识别根据Key ID(钥匙识别符)进行,在TLB内也具有识别连接的钥匙的位置的Key ID。使用该Key ID使TRB与TLB连接。

图4示出TRB内的各行的字段的构成表。如图4所示那样,TRB内的各行包含有效性标志p、外部输出禁止标志uo、高速缓存锁定标志cl、钥匙识别信息kid、密钥key、被授权代码钥匙ackey、及异常处理地址eadr等字段。另外,这些字段的大小是举例说明的,可根据GT10的结构和用途设为其它最佳的值。

有效性标志p为表示TRB有效还是无效的标志,在为打开(1)的情况下,表示TRB有效。

外部输出禁止标志uo为表示是否可将该行的内容输出到加密钥匙表的标志,在打开(1)的情况下,不输出到加密钥匙表。但是,在该情况,也可输出作为管理信息必要的p、uo、cl、及kid。外部输出禁止标志uo的缺省值为关闭(0),在该情况,该行的内容输出到加密钥匙表。在该情况,需要使TRB内的内容与加密钥匙表内的内容同步。加密钥匙表为存放GT10内的TRB的内容的存放单元。关于加密钥匙表在后面详细说明。

高速缓存锁定标志cl表示是否将由钥匙识别信息kid指定的抗攻击区域内的数据输出到高速缓存外,在为打开(1)的情况,该数据或代码不输出到高速缓存外。在cl为打开(1)的情况,GT10也可还具有转换以下2个模式的功能。

(a)仅将保护数据仅送出到CPU内装高速缓存的模式

(b)由明文将保护数据记录到外部(3次)高速缓存的模式

(a)也可利用到通过减少记录保护数据的区域,不进行密码·解密处理而提高处理能量的情况。(b)可提高处理性能,但使保护强度的级别降低。

钥匙识别信息kid为识别钥匙的信息,用于使TLB与TRB连接。

密钥key为用于对写入到与该线连接的页的代码或数据进行加密·解密的密码·解密钥匙的值。密钥例如为对称钥匙(通用钥匙)密码法的钥匙。在该字段记录Kc和Kd。

被授权代码钥匙ackey为用于对可访问连接的页的保护过程的执行代码进行解密的解密钥匙。在这里,保护过程指保护代码被执行的状态。该执行代码的页在包含与TRB内的行的钥匙识别信息kid相同的kid的TLB中的行使用页编号指定,对该页的访问权的种类也由TLB中的行指定。通常,被授代码钥匙ackey为其它行和自身行的密钥key。但是,如ackey的所有位为“0”,则表示所有的过程使用GT许可使用GT许可对访问权进行授权。另外,在由公钥KPgt(后述)加密了的值进入到ACgT.ackey(ACgt的ackey字段(后述)的情况(即ACgt.aef为on的情况),使其解密后获得的结果进入TRB.ackey。

异常处理地址eadr表示即将从key不同的页恢复到与该TRB内的行连接的页之前发生的异常处理代码的起始地址。异常处理地址(eadr)在根据不包含ACgt.eadr(ACgt内的eadr字段的值)的AUTHORIZE命令将行设定到TRB内时,作为缺省值在所有位设定“0”。当在返回到保护过程时等发生“抗攻击代码返回异常地址非法异常”时,必须停止该过程的执行,设该TRB的有效性标志(p)为off。而且,在需要对各数据页设置访问异常的情况,TRB.eadr(TRB内的eadr字段的值)也可定义为在加密的代码执行时执行的异常处理代码的地址。

也可使得存放于钥匙key字段的代码解密钥匙Kc和数据加密·解密钥匙Kd例如为作为随机数生成的对称钥匙密码方式的密钥,在GT10中,在密码·解密前后选择数据长度相同的密码方式。可使用随机数生成算法生成钥匙,也可使用GT10内的热随机数发生功能等生成。后者的生成法比前者的生成法安全的情况较多。Kc和Kd包含于后述的GT许可。通过将代码解密钥匙Kc或数据解密钥匙Kd和嵌入访问权等的GT许可作为参数执行CPU命令“访问授权命令(AUTHORIZE命令)”(后述),从而将值设定到与抗攻击区域内的TLB(后述)连接的TRB行内的各字段。

TLB管理存放保护代码和保护数据的地址和页的访问权。图5示出TLB内的各行的扩充字段的构成表。如图5所示那样,与GT10相关的TLB内的各行除过去的TLB具有的字段外,还包含物理页编号ppn、虚拟页编号vpn、访问权限rights、钥匙识别信息kid、加密块识别方式ebim、及数字签名sign等字段。访问权限rights字段分成权限级别pl、访问权ar、抗攻击性标志tr、调试模式标志df。这些所有的字段在GT10内必须处于该抗攻击区域内。另外,图5所示字段的大小用于举例说明,可根据GT10的结构和用途设为其它最佳的值。

有效性标志p表示TRB有效。

区域识别符id为TLB内的该行所示页区域的识别符。

物理页编号ppn表示物理页编号。虚拟页编号vpn表示虚拟页编号。

访问权限rights表示对该行所示页的访问权限。访问级别表示可访问页的权限的级别,访问权限ar示出对页的访问权的种类。权限级别pl和访问权ar如图6和图7所示那样根据TLB的各字段的值决定,设定到TLB。图6表示FR结构的情况,图7示出内部结构的情况。

抗攻击性标志tr表示该行所示页是否处于抗攻击段空间内(后述),如抗攻击性标志tr为打开(1),则表示该页处于抗攻击段空间内,与该行对应的行处于TRB内。抗攻击性标志的开·关在GT10认证时进行。

调试模式标志df表示调试模式是有效还是无效。如调试模式标志df为打开(1),则为有效。在抗攻击性标志tr和调试模式标志df为打开(1)的情况,与由访问权ar指定的值对应的调试模式产生动作,各ar的值的意义如下。

(a)PR的情况,仅可从全过程读出:R

(b)X的情况,可从全过程读出和执行;RX

(c)PRW的情况,可从全过程读出和写入:RW

(d)PWX的情况,可从全过程读写和执行:RWX

钥匙识别信息kid为为了连接到TRB内的钥匙信息而识别TRB内的行(insertion)的信息。

加密块识别方式ebim为识别加密的代码块或数据块的信息。

a)ebim=0的情况,块为明文。

b)ebim=1的情况,块为暗文(为缺省值,在省略ebim字段的情况,作为ebim=1处理)。

数字签名sign为连接从上述vpn到ebim的字段的字段连接数据的数字签名,GT10生成。

表示存放保护代码和保护数据的区域的TLB插入(行)内线的访问权限的值限于后述的TLB.tr关闭的情况,由OS管理。如过去那样,在本发明中访问权限的值也按3位左右描述,但按照本发明,还在TLB设置“抗攻击性标志tr”字段作为表示页处于抗攻击区域内。另外,将可利用该抗攻击区域的代码执行状态称为“抗攻击模式(Tamper Resistant Mode)”。

存放保护代码和保护数据的地址在利用该页之前设定于TLB。访问权限rights和加密块识别方式ebim、被授权代码钥匙ackey根据包含于GT许可的GT访问条件ACgt(后述)决定。

将代码解密钥匙Kc或数据密码·解密钥匙Kd和访问权的GT许可作为参数执行CPU命令“访问授权命令”(后述),从而在TLB行内对各保护页指定KeyID,将解密钥匙设定到与各Key ID对应的TRB行内的key字段。

下面说明TRB和TLB存放的场所。

TRB存放于GT10内,但假想GT10具有的存储容量被占满的情况。在该情况,GT10内的TRB的内容的至少一部分加密,将加密的内容记录到RAM17和硬盘等外部存储装置。将记录于该外部的TRB内的行的列表称为加密钥匙表。GT10在将TRB的内容加密的状态下记录于外部存储装置内的加密钥匙表进行管理,从加密钥匙表取出必要的信息在GT10内解密利用。在将TRB的内容加密或解密时使用的钥匙Ktrb例如为对称钥匙加密法的私钥。该密钥Ktrb存在即使当GT10的输入电源断开或GT10重置时也最好继续维持的情况。

下面,根据图8说明加密钥匙表的构造。如图8所示那样,在加密钥匙表中包含有效性标志p、外部输出禁止标志uo、钥匙识别信息kid、及存放加密的TRB的内容的字段等。

如图8所示那样,当记录到加密钥匙表时,在各行作为标题附加明文状态的TRB.p(TRB中的有效性标志p字段的值)和明文状态的TRB.kid(TRB中的钥匙识别信息kid字段的值)。这样,可由OS(监控模式)管理加密钥匙表,但Key ID以外的加密的内容不能参考也不能篡改。TRB内的字段中的p和kid也可按明文的状态从特定寄存器等看到。

当将TRB的内容记录于外部记录装置时,与其它保护数据块同样地通过数据高速缓存13的加密线进行。另外,在如图8所示那样对TRB的各行进行加密时,必须在行的起始部分附加随机数后加密。这样,指定Kc(代码的密钥)的软件开发者故意地多次重新改写TRB中的密钥key字段的值,大量地生成明文和暗文的对,从而可防止容易地解读对TRB进行加密的密钥Ktrb。

另外,也可从RAM17将加密钥匙表记录到图中未示出的硬盘,在GT10再起动后再利用。特别是有时为了构造具有硬件TRM级别的强度的软件DRM而需要在硬盘和快闪存储器等保存由密钥Ktrb加密的状态的Kd(数据加密钥匙)进行管理,所以,TRB的密钥Ktrb也可在GT10的电源切断后也在抗攻击区域内继续维持在FeRAM(铁电随机存取存储器)等非易失性存储器等。

加密钥匙表和TRB的内容的同步方式可考虑以下那样的方式,但本发明不限于其中的任一个。

(a)TRB内容向加密钥匙表的写出和从加密钥匙表向TRB的再取入通过向特定的寄存器的RW命令等进行。

(b)通过设定加密钥匙表的起始地址和行数(执行特别的命令),从而在必要时GT10自动地获得表与TRB的同步。另外,用户在必要时可获得同步地将快速命令安装于GT10。

另一方面,TLB的内容与一般的CPU同样地在GT10也作为页表记录于外部存储装置,GT内的TLB的内容与页表的内容同步地管理。GT10也可在必要时从页表将必要的信息取入到GT10内利用。

以下说明在TLB与页表之间的内容转移。当将TLB的内容记录到页表时,如TLB.tr(TLB内的tr字段的值)为打开,则GT10生成TLB.sign(TLB内的签名sign字段的值),设置到希望记录的内容。然后,将页表内的内容取入到GT内的TLB时,GT10确认附加于内容的签名,如签名正确,则使TLB签名非法异常(后述)发生,使该行的有效性标志(TLB.p)与抗攻击性标志(TLB.tr)无效(关闭)。

图9示出签名方式的一例。如图9所示那样,首先,GT10在包含TLB.vpn、TLB.rights、TLB.kid及TLB.ebim的数据连接GT10内的固定的随机数。接着,用SHA-1使连接的数据散列,使用GT10内的私钥Ktlb进行加密。这样,生成签名TLB.sign。成为带签名的对象的内容不满160位的情况,例如也可将作为填充字符的随机数字段追加到其内容。

以下,使用图10说明TRB、TLB、加密钥匙表及页表的关系。

如图10所示那样,TRB和TLB保持在GT10内。在TRB记录钥匙识别信息kid、对代码块进行解密时使用的Kc及对数据块进行加密·解密时使用的Kd等。在TLB存放区域识别符id、钥匙识别信息kid、虚拟页编号vpn、物理页编号ppn、访问权限rights等。区域识别符id与存放代码块和数据块的RAM17内的页对应。另外,TRB和TLB的内容按照钥匙识别信息kid形成对应。

在将TRB的内容记录于加密钥匙表的情况,对该内容追加随机数后使用密钥Ktrb进行加密。在将加密钥匙表的内容取入到GT10内的情况,使用密钥Ktrb对该内容进行解密。另一方面,在将TLB的内容记录到页表的情况,GT10使用密钥Ktlb生成基于该内容的签名TLB.sign,追加到该内容。

下面,说明GT10内的高速缓存、TLB、及TRB的同步。如上述那样,在TLB和TRB记录关于在页中记录的保护代码和对保护数据的访问控制的信息。因此,可设想到通过由硬件或软件对具有相同虚拟地址的2个TLB进行伪装以访问保护代码或保护数据的攻击。为了应对这样的攻击,在GT10中,处理器内核11也可在获得高速缓存、TLB、及TRB的内容的同步的同时实施访问控制的判断。更为具体地说,命令高速缓存12内的保护代码或数据高速缓存13内的保护数据的内容不仅连接到TLB行的虚拟地址(TLB.vpn),而且也可连接到该TLB行的数字签名(TLB.sign)的值和虚拟地址的对。在该情况,处理器内核11在该对不一致时作为不同的页进行访问控制的判断。

通过这样将访问许可保护代码的代码解密钥匙(Key)作为被授权代码钥匙(Authorized Code Key)嵌入GT许可,从而可在保护区域指定可访问的保护代码。然后,使得仅可从执行具有由TRB的Authorized Code Key字段(ackey)指定的Key的虚拟页上的代码的代码访问保护代码和保护数据。但是,访问权仅限于执行X或PWX的代码的情况,如该页的ackey的值全部为0,则授权从所有代码的执行。

当页B具有与作为页A的ackey指定的钥匙一致的key的值时,页B上的保护代码的执行状态在这里被称为页A(上的代码/数据)的“所有者过程(Owner Process)”。

而且,GT的执行权(X)意味着执行TRB.ackey(TRB的ackey字段)具有值的抗攻击页上的命令代码的权利。该权利提供给在该命令代码的1个之前执行的命令代码,存在以下那样的情形。

(a)在1个之前执行的命令之后接着现在应执行的命令的情况。

(b)在1个之前执行的命令为CALL和JUMP等转移命令的情况。

特别是在前面的命令和下一命令的虚拟页不同的情况,GT10必须重新确认用于指定接下来执行的这一命令代码是否被授权执行。该确认在后面说明。

下面说明TRSS标志。图11示出存储TRSS标志的字段的构成的一例。GT10在该虚拟存储空间的段指定寄存器具有TRSS标志。该标志分别相对代码段、数据段、堆栈段存在,分别被称为抗攻击代码段(TRCSS:TamperResistant Code Segment Selector)、抗攻击数据段选择程序(TRDSS:TamperResistant Data Segment Selector)、抗攻击堆栈段选择程序(TRSSS:TamperResistant Stack Segment Selector)。在TRSS标志打开的情况,页设定在抗攻击空间内,在关闭的情况,页设定在一般的虚拟空间内。

下面,说明RACT。图12示出RACT的各行的字段构成的一例。根据GT10,为了实现寄存器的密封和释放的功能,在抗攻击模块内具有RACT。RACT的各行包含寄存器IDrid、密封标志seal、及被授代码钥匙ackey等的字段。

寄存器IDrid为指定寄存器的ID。密封标志seal表示寄存器是否处于密封中,在为打开(1)的情况,寄存器在密封中,在为关闭(0)的情况,表示寄存器释放。非授权代码钥匙ackey与TRB的ackey同样,为寄存器的访问被许可的过程的代码页的钥匙key。

下面,说明RSSL寄存器。RSSL寄存器不为GT必需的功能,但也可具有备选功能。RSSL寄存器存放各寄存器的密封状态的信息。图13示出RSSL寄存器的字段构成的一例。如图13所示那样,RSSL寄存器具有与可密封的寄存器的数量相同的位长,各位表示与该位对应的寄存器的密封状态。在位为打开(1)的情况,表示该寄存器被密封,在为关闭(0)的情况,表示该寄存器释放。例如,在表示寄存器r1的密封状态地设定RSSL寄存器的第1位的情况,如第1位为打开,则意味着寄存器r1被密封。

下面,说明抗攻击段空间和抗攻击区域。如上述那样,TLB内的抗攻击性标志tr为打开(1)的页为包含于抗攻击段空间内的抗攻击区域。另外,在与该页对应的段指定寄存器内的行中,TRSS标志为打开。在抗攻击区域内的页存放保护数据。图14示出在一般的段空间与抗攻击段空间之间从代码执行过程访问数据时时的方针。一般虚拟段空间为没有必要保护的数据和代码记录的空间,抗攻击段空间为记录保护数据和保护代码的空间。

虽然可从在抗攻击段空间执行的代码访问一般虚拟段空间内的数据,但不能从在一般虚拟段空间执行的过程访问抗攻击段空间内的数据。另外,作为用户级别空间与监控空间的访问控制关系,即使在抗攻击段空间内,如许可所有者相同,则维持与一般虚拟空间的情况相同的方针。

另外,即使在抗攻击空间内,也不能在许可所有者不同的保护代码和保护数据的区域间相互访问。但是,通过使用后述的抗攻击区域共享功能,从而可相互访问。

按照上述访问方针,GT10的保护块不从其它过程受到影响。在GT10中,保护过程具有自身生成的抗攻击页,一般由OS管理。

图15示出在保护过程GT10上动作的样子。如图15所示那样,在GT10上,多个保护过程动作,各保护过程在抗攻击区域内生成页。作业数据在由GT10内的密码引擎16加密后存放到抗攻击区域(虚拟存储区域)。因此,虚拟硬件TRM的范围伸缩到RAM17和硬盘等,可以说没有一定的形式。为此,GT10生成和动作的保护过程可在“虚拟硬件TRM(Virtual HardwareTamper Resistant Module:VHTRM)”内动作。为此,根据GT10,可在具有与硬件TRM同样的强度的同时,消除伴随着硬件TRM的资源限制的问题。

另外,保护过程也可在全世界的CPU(GT10)空间自由移动(后述的GRID计算)。这样,什么样的攻击也可对抗,实现自身的使命,也可将集中了返回到原来的GT10的VHTRM的保护过程虚拟化,称为“抗攻击代理(Tamper Resistant Agent)”。

(命令集)

下面,说明提供给GT10的命令集。

首先,说明安装GT的CPU除了过去的CPU的命令集外为了实现作为GT10的功能而具有的基本命令。基本命令中存在以下的(1)~(9)。以下依次说明各命令。

(1)GT证书取出命令:Store GT certificate command

命令形式:STR_GT_CERT(certNum,certAdr)

输入寄存器:

certNum:在GT10内局部分配的证书编号。如具有N张证书,则0~N-1的值有效。

certAdr:写入证书的内容的地址

输出(异常处理):

errorCode:在没有指定的编号的证书的情况等设定。

动作:从GT10内取出由certNum指定的证书,写出到由certAdr指定的地址。

动作可能权限:所有级别

(2)访问授权命令:Access authorization command

命令形式:AUTHORIZE(licenseAdr,resultAdr,startVPN,numOfVP,kid)

输入寄存器:

LicenseAdr:存放了GT许可(后述)的地址

resultAdr:存放结果的地址

startVPN:抗攻击区域的起始虚拟页编号

numOfVP:连续的抗攻击区域的页数

kid:为了OS管理TLB与TRB的关系而分配的识别符

输出:

result:[GT许可‖startVPN‖numOfVP‖以上的签名]记录到resultAdr

errorCode(异常处理):在认证失败的情况等设定。

动作:对处于指定寄存器的存储器上的GT许可进行认证,将从GT许可取出的抗攻击区域的代码或数据解密钥匙key(Kc或Kd)、kid、ackey设定到与抗攻击区域内的TLB的TRB。另外,在TLB设定“抗攻击标志”(tr)和访问权(PR,X,PRW,PWX)、ebim、kid及sign。如正确地完成设定,则连接输入数据,附加其数字签名,记录到由resultAdr指定的地址。此时,将输入数据的连接散列,使用Kgt将结果加密,将该结果用作数字签名。在认证失败的情况和TLB不存在的情况等设定失败的情况,发生异常。

动作可能权限:仅监控级别(权限级别0)

(3)抗攻击权限设定命令:Set Tamper Resistant Rights command

命令形式:SET_TR_RIGHTS(rights,startVPN,numOfVP)

输入寄存器:

rights:访问权(指定ACgt.ar(后述))

startVPN:抗攻击区域的起始虚拟页编号

numOfVP:抗攻击区域的页数

输出(异常处理):

errorCode:在与输入对应的行不处于TLB或TRB的情况,或指定的访问权的范围比已设定的访问权宽的情况等发生。

动作:在由startVP和NumOfVP指定的虚拟区域为抗攻击空间的情况,在该区域的TLB设定由rights指定的访问权。但是,由rights指定的访问权必须为已设定于TLB的访问权的范围。

动作可能权限:仅监控级别(权限级别0)

(4)抗攻击异常地址设定命令:Set Tamper Resistant Exception command

命令形式:SET_TR_EXCEPTION(startAdr)

输入(仅立即或直接寻址)

startAdr:设定于TRB的抗攻击空间内的虚拟地址。指定为寄存器解除·返回异常等跳转目标。在希望密封的寄存器使用前,需要隐藏startAdr地执行,所以,不能作为输入参数利用寄存器。

输出(异常处理):

errorCode:与由startAdr指定的地址对应的行不存在于TRB内(不为抗攻击模式)。或者,没有该地址的访问权。

动作:将指定的startAdr设定到现在执行中的代码页的TRB.eadr(TRB内的eadr字段)。

动作可能权限:所有级别

(5)寄存器密封命令:Seal Register command

命令形式:SEAL_REG(registerList)

输入寄存器:registerList:密封的寄存器列表(标志列表)。关于与各寄存器对应的标志,由打开(1)表示密封寄存器,由关闭(0)表示不密封。

输出(异常处理):

errorCode:指定的寄存器不存在。或者,该寄存器已密封完毕。

动作:对于指定的寄存器,从具有与发出本命令的过程(代码执行状态)代码页的密钥Kc相同钥匙的代码页的过程以外不能访问。通过本命令的执行,在对应的寄存器的RACT.ackey(RACT的ackey字段)记录将执行本命令的代码加密的key的值。

动作可能权限:所有级别

(6)寄存器释放命令:Release Register command

命令形式:RELEASE_REG(registerList)

输入寄存器:

registerList:释放密封的寄存器列表。

输出(异常处理):

errorCode:不存在指定的寄存器。或者,该寄存器释放完毕。

动作:将指定范围的寄存器的值全部清零,解除密封。

动作可能权限:所有级别

(7)非授权区域存储栈命令:Store Stack to Unauthorized Area command

命令形式:STMEA_TO_UA(registerList)

输入:

registerList:记录于堆栈的寄存器的列表。标志的列表。在与各寄存器对应的标志打开(1)的情况,表示将该寄存器记录于堆栈,由关闭(0)表示不记录。

输出(异常处理):

errorCode:由registerList指定的寄存器不被密封。

动作:即使堆栈指针示出未被授权的抗攻击区域的情况,如指定的寄存器的RACT.ackey(RACT内的ackey字段)的值与对应于该区域的TRB.ackey(TRB内的ackey字段)一致,则指定的寄存器记录到堆栈指针的位置

动作可能权限:所有级别

(8)非授权区域堆栈加载命令:Load Stack from Unauthorized Areacommand

命令形式:LDMEA_FROM_UA(registerList)

输入:

registerList:从堆栈读出的寄存器列表

输出(异常处理):

errorCode:指定寄存器被密封。

动作:在堆栈指针表示抗攻击区域的情况,将堆栈指针的区域的TRB.ackey的值复制到指定的寄存器的RACT.ackey,将指定的寄存器的RACT.seal(RACT内的seal字段)设定为打开(1)。另外,在指定的寄存器加载堆栈指针的位置的数据。

动作可能权限:所有级别

(9)许可删除命令:Delete License command

命令形式:DELETE_LICENSE(kid)

输入:

Kid:为为了OS管理TLB与TRB的关系而分配的识别符,为用作AUTHORIZE命令的参数的值。

输出(异常处理):

errorCode:当kid出错时或删除失败时等设定。

动作:删除指定的kid的TRB和与其连接的所有的TLB,对应的页表和加密钥匙表的有效性标志也设定为关闭。另外,这些TLB表示的虚拟区域的高速缓存锁定也解除。

动作可能权限:仅监控级别(权限0级别)

除了上述(1)~(9)的基本命令外,作为性能和功能提高的扩充命令,可考虑(10)~(15)的命令等。以下,依次说明扩充命令。

(10)保护块开始命令:Protected Block Start command

命令形式:PRT_BLOCK_START(encryption_flag)

输入(直接参数):

encryption_flag:如由打开(1),则表示块被加密。

动作:

命令数据的特定的位位置如设置为特定图案,则成为加密块开始命令。本命令内的特定位列(7位左右)与高速缓存可能的命令长的最小值相同。另外,可指定的最大值与高速缓存可能的长度的最大值相同。在本命令的其它字节必须加入随机数。本命令数据的起始的边界必须与命令高速缓存单位的边界一致。

在随机数的长度对于安全性不够的情况,使该命令连续2个或其以上。在连续的情况,最后的本命令以外,0进入到块长的值。

保护代码块开始命令在GT10内解密后,成为相同长度的Nop命令。

在TLB.ebim的第2位打开的情况,必须检查包含于块的散列或签名(明文的情况)。散列或签名的位置例如为块的末尾。在块不包含散列和签名的情况,发生散列非安装异常。

该命令与第2实施形式(后述)对应。

(11)TRB加密钥匙更新命令:Refresh TRB Key command

命令形式:REFRESH_TRB_KEY

输入输出寄存器:无

动作:当将TRB记录于外部时,一定将使用的对称密码法的密钥Ktrb和用于页表的签名确认的密钥Ktlb置换成新的随机数值。

该命令在具有Ktlb和Ktrb泄漏的可能性的情况等使用。但是,在使用TRB对许可信息等进行加密后进行管理的情况,该命令后不能对以前的加密信息进行解密,所以,需要注意。在这样的情况,例如需要在更新前用别的钥匙加密而保留等处理。利用例的详细内容在后面说明。

(12)使保护区域的高速缓存优先的命令:

在重视保护数据的密码·解密速度的情况利用。

(13)在过程间不泄漏的热随机数生成命令:

(14)内装密码·解密命令

将为了实现GT10而安装于CPU内部的对称钥匙加密法和公钥密码法的加密·解密命令作为命令集显示给软件开发者,从而提高硬件资源利用效率。

(15)定期中断间隔设定命令

设定GT内装晶体发信机发生的内部中断的间隔。可在将与外部的可信赖的时钟安全地同步的安全时钟作为抗攻击过程实现的情况使用。

(异常处理)

实现GT10的CPU除了过去的异常处理外,安装有以下那样的异常处理。在异常处理中,大体分为抗攻击页访问权相关异常、抗攻击区域返回相关异常、寄存器密封相关异常、散列相关异常等。以下依次说明各异常处理。

·抗攻击页访问权相关异常

(1)证书指定错误

该异常处理在指定的编号或识别信息的GT证书(Cgt)没有的情况发生。

(2)GT许可认证故障

该异常处理在GT许可认证失败的情况发生。

(3)抗攻击空间页故障

即使TLB内的抗攻击性标志tr关闭(不为抗攻击模式)或与该页对应的行在TRB内没有,也要执行抗攻击区域的访问命令。

(4)TLB签名不一致异常

TLB.sign(TLB内的sign字段)的值与包含于块的签名不一致。在本异常发生的情况,GT10自动地停止该TLB从页表的加载。另外,关闭TLB内的对应的行的有效性标志(TLB.p)和抗攻击性标志(TLB.tr)。

(5)访问权非法扩大异常

指定的访问权的范围比由AUTHORIZE命令许可的访问权宽。在发生本异常的情况,GT10自动地拒绝访问权设定命令。

(6)加密钥匙表访问故障

该异常在指定不存在于TRB中的kid等检索钥匙的情况或TRB的页面调出失败的情况发生。

(7)许可删除故障

该异常在许可删除失败的情况发生。

·抗攻击区域返回相关异常

(8)抗攻击代码返回异常

:RETURN_TO_TAMPER_RESISTANT_CODE_EXCEPTION

当由call、jump或return在执行中使地址从一般的虚拟区域或抗攻击区域移动到代码解密钥匙Kc不同的抗攻击区域时,必定发生抗攻击代码返回异常。在该异常的处理中,当作为移动目标抗攻击区域的异常地址的TRB.eadr(TRB内的eadr字段)的内容受到确认,在该字段中存在异常地址时,处理器内核访问该异常地址。在不存在异常地址的情况,删除该TRB行,发生抗攻击代码返回异常地址非法异常。

(9)抗攻击代码返回异常地址非法异常

该异常在由抗攻击代码返回异常地址指定的空间不存在于抗攻击空间的情况发生。当返回到保护过程时等如本异常发生,则设与该地址对应的TRB内的行的有效性标志(p)关闭,强制地跳转到由OS等指定的地址。

·寄存器密封相关异常

(10)寄存器密封完毕异常

该异常在指定的寄存器由已具有相同Kc的代码密封完毕的情况发生。

(11)寄存器释放完毕异常

该异常在指定寄存器未被密封的情况发生。

(12)密封寄存器访问故障

:SEALED_REGISTER_ACCESS_FAULT_EXCEPTION

该异常在指定的寄存器已由Kc不同的其它代码密封完毕的情况发生。

·散列相关异常

(13)散列非安装异常

该异常在GT10未安装散列生成功能和检验功能的情况发生。

(14)散列不一致异常

该异常在GT10对保护代码或保护数据进行高速缓存时散列值不一致的情况发生。

(动作)

以下说明由GT10进行的处理。

(GT的认证)

首先,说明GT10的认证工序。在以下的说明中,以PKI的内容的理解为前提。

图16示出说明GT的认证的图。如图16所示那样,在GT的认证中介入用于生成保护应用软件50、解码器DRM30和40、密码模块(包含于PKI程序库20)的各软件包的的各开发商、生成GT10的开发商、PKI程序库模块用认证站CApki、DRM用认证站CAdrm、面向利用DRM的应用程序的认证站CAap、及认证GT的认证站CAgt。在图16中,细小的箭头示出数据流,粗的箭头表示许可或证书在软件包的嵌入。另外,图16中的括弧中的数字表示处理的次序。另外,各TRM软件由各TRM软件开发商秘密地生成的对称钥匙密码方式的密钥进行加密。

GT许可的生成和利用由以下那样的各系统应用和程序软件执行授权工序实现。

(1)GT制造商将产品化的GT10的个别公钥KPgt转交给GT专用的认证站CAgt。GT制造商在GT10内部嵌入私钥Kgt。

(2)GT专用的认证站CAgt向GT制造商发行GT10的公钥证书Cgt。GT10的公钥证书Cgt用类别私钥Kcgt签名,类别公钥KPcgt也可按由GT专用的认证站CAgt的路由私钥Kagt签名的证书的形式公开。另外,在公钥证书Cgt中也可不使用个别钥匙和类别钥匙双方,而是使用任一方。在没有类别钥匙的情况,公钥证书Cgt也可由路由私钥Kagt直接签名。

(3)GT制造商复制公钥证书Cgt,散发给TRM软件开发商。

(4)各TRM软件的开发商通过使用钥匙Kc对开发了的软件执行代码进行加密从而生成保护代码文件。

(5)各TRM软件的开发商使用从公开证书Cgt取出的GT10的公钥KPgt对钥匙Kc进行加密,生成(不能移动的)GT许可Lxx。关于GT许可的构造在后面说明。

(6)各TRM软件开发商在执行软件之前由OS的启动程序将许可Lxx投入到GT10地将GT许可Lxx嵌入到其软件包。

(7)在即将执行各软件之前,将该GT许可投入到GT10。GT10使用与公钥配对的私钥Kgt,对GT许可进行解密。即,在GT10内执行由各软件开发商进行的GT10的认证。这样,授权在GT10上执行该软件。在希望使由GT保护的软件成为自由软件等流通的情况,也可为了生成GT许可使用类别公钥KPcgt。另外,在希望使得不能在特定的GT10以外使用由GT保护的软件的情况,也可为了生成GT许可使用个别公钥KPgt。

(8)GT10将从GT许可取出的钥匙Kc和访问权设定到GT10内的TRB和TLB。用户即使在内核模式(监控级别/环0),也不能参考设定于TRB的Kc。

这样在TRM软件包嵌入用于向GT10提供执行授权的GT许可,加密的程序代码执行前将该GT许可投入到GT10。GT10使用个别私钥KgT对GT许可进行解密,从该GT许可取出程序代码的解密钥匙Kc,在与内部的TLB连接的TRB对各保护代码维持其解密钥匙Kc。在GT10中,加密了的代码一边使用解密钥匙Kc进行解密一边执行。

由PKI程序库模块用认证站CApki、DRM用认证站CAdrm和面向利用DRM的应用程序的认证站CAap构成的面向TRM软件包的认证站发行用于在各包的软件过程交换保护数据时对数据传送目标包进行认证的证书。另外,其中的DRM用认证站也可用于许可传送目标DRM的认证。

这里所示4种认证站都可通过不同的运用减轻内容(信息)流通业务的风险,但并不必须为这样的运用。也可包含PKI程序库20、解码器DRM30、及媒体DRM40作为1个OS评价,相对该OS产品整体生成GT许可,发行公开证书。

另外,虽然也可将GT许可插入到与保护代码相同的文件,但考虑到包超流通的方便,推荐作为与加密的执行代码之外的文件管理。

下面说明GT许可的构造。

许可生成侧获得许可授权目标GT(抗攻击容器)的个别公钥KPgt的证书Cgt,用它生成GT许可。证书Cgt也可为依据X.509的形式。个别公钥KPgt的证书Cgt为类别钥匙KPcgt,另外,类别钥匙KPcgt的证书Ccgt用认证站CAgt的路由公钥KPagt进行签名检验后利用。许可生成侧生成的GT许可的形式如下。

LicenseID‖Acgt.ar‖

    E    (KPpt,Ks)‖E(Ks,Key‖LicenseID‖ACgt‖Is)‖

    CgtID‖CgtIDackey‖else

其中,各字段的意义如下。

E(K,D):用钥匙K将数据D加密后的结果

A‖B:数据连接。表示数据A与数据B连接。

Ks:对话钥匙(随机数)。对称钥匙(通用钥匙)密码法的钥匙。

Key:代码解密钥匙/数据加密·解密钥匙。Kc/Kd。

LicenseID:许可系列编号。许可生成侧对各许可生成唯一的编号。也可在上位加入许可生成者的ID,在中位加入内容的ID。

ACgt:GT访问条件。表示在GT内可强制的代码/数据的利用条件,具有以下字段。

ebim:加密块识别方式。复制到图15所示TLB.ebim字段。各值的意义作为TLB的字段已说明。

aef:被授权代码钥匙加密标志(ackey encryption flag)。如为打开(1),则表示被授权代码钥匙ackey被使用个别公钥KPgt加密,如为关闭(0),则表示ackey的值直接进入到ACgt.ackey(ACgt的ackey字段)。

ackey:被授权代码钥匙。记录了可访问由密钥Kc或Kd解密的目标的过程代码的保护页的密钥key,或由个别公钥KPgt将密钥key加密了的值。在由个别公钥KPgt对密钥key进行加密的情况,当GT具有多个KPgt时,还附加识别使用了哪个KPgt的信息。对该过程的访问权的种类由ar指定。

eadr:异常处理地址。该字段为备用。为从key不同的页即将返回到设定了该GT许可的内容的页之前发生的异常处理代码的起始地址。

ar:基本访问权。具有以下那样的值。详细如图17所示。

(a)PR:仅可从由ackey指定的过程读出

(b)X:可从由ackey指定的过程读出和执行

(c)PRW:可从由ackey指定的过程读出和写入

(d)PWX:可从由ackey指定的过程读写和执行

uo:外部输出禁止标志。如为打开(1),则存放该许可的钥匙信息的TRB行不输出到(调出页面)加密钥匙表。该标志的缺省值为关闭(0),表示可输出到外部。

cl:高速缓存锁定标志。为备选功能。在该标志为打开的情况,由该GT许可指定保护的抗攻击区域的数据不到达高速缓存外。但是,在ar不包含写入权(PR或X)的情况,本标志无效。该标志的缺省值为关闭,表示可输出到外部。

df:调试模式标志(Debug mode Flag)。df如为打开,则表示与ar的指定相应的动作。参照TLB的说明。通过将GT许可内的ACgt的df打开,从而可按调试模式执行保护代码。另外,在按超流通等形式销售保护代码文件的情况,也可关闭df进行销售。

CgtID:KPgt的X.509的证书的识别符值。连接issuer和serialNumber的值。

CgtIDackey:备选。将ackey加密的KPgt的X.509证书的识别符值。连接issuer与serialNumber的值。在Acgt.aef关闭的情况省略。另外,在与CgtID相同值的情况也可省略。

Is:其它信息

图17表示可设定到GT许可的访问权和被授权权限的表。当为抗攻击性标志抗攻击模式时,从过程(代码执行状态)看到的保护数据或保护代码区域的访问权从图17中选择,设定为TLB。图17的“指定代码”指可由该TRB行内的Key字段或Ackey字段指定的钥匙解密的代码。

另外,在图17中,虽然没有“仅可执行”的权限,但也存在可指定FR等“仅可执行”的权限和“可读出和执行”的权限双方的CPU。该情况的抗攻击权限分别可表现为PX和PRX。同样,关于“可写入”的权限,也可指定PWX和PRWX双方。

GT许可由于以不可移动为条件,所以,不具有移动功能和CRL(Certificates Revocation List:证书失效列表)和LRL(License RevocationList:许可失效列表)。由于没有控制CRL和LRL的必要,所以,容易将GT安装到CPU。DRM的CRL控制和LRL控制由OS或应用程序进行。这样,可维持高扩充性。

另外,如上述那样,在希望使软件TRM为自由软件等的情况,也可在GT许可的生成中使用类别公钥。另外,在相反地希望仅在特定的GT利用软件的情况,也可使用与GT个别钥匙对应的公钥。

下面,使用图18详细说明上述GT认证处理的(8)的工序。在GT认证处理中,GT10通过执行访问授权命令(AHTHORIZE命令),从而根据GT许可在TLB和TRB设定钥匙Key和访问权等。

为此,首先,GT10使用与GT的公钥配对的私钥Kgt对GT许可进行解密(S1)。接着,GT10判定是否可正常地对GT许可解密(S2),在可正常解密的情况(S2:正常),GT10检索指定虚拟区域的TLB(S3)。在不能正常解密的情况(S2:异常),GT10发生GT许可认证故障(S11),前进到S16。在S16中,GT10将出错内容设定到resultAdr,返回主流程。

在S3中,检索TLB,结果,当获得指定虚拟区域的情况(S4:正常),GT10判定是否TRB中有空(S5)。作为S3的检索结果,在未能获得指定虚拟区域的情况(S4:无),GT10发生表示未分配存储器的这一情况的未分配异常(S12),前进到S16。

在S5中,当TRB有空时(S5:有),GT10根据GT许可在TRB内的uo、cl、kid、key、ackey的各字段设定值(S6)。在S5中,当TRB无空时(S5:无),GT10将TRB内的一部分的行输出到加密钥匙表(调出页面)(S13)。GT10在成功地调出页面的情况(S14:成功)前进到S6,在调出页面失败的情况(S14:失败),使加密钥匙表访问故障发生后(S15),前进到S16。

在S6后,GT10计算出存放于TLB的签名sign(S7),将ar、tr、df、kid、ebim、及sign设定到TLB(S8)。接着,GT10生成设定结果的签名(S9),将设定结果和由S9生成的签名设定到resultAdr(S10),返回到主流程。

(保护代码文件的构造)

下面,说明保护代码文件的构造。加密解除后的保护代码文件(执行形式)具有在保护代码块和明文代码块的重复构造的起始部分附加标题的构造。另外,在形成为可将保护代码文件用于超流通的文件的情况,在该文件的标题需要加入以下那样的信息。

·内容ID:作为与具有用于破解保护代码的密码的内容解密钥匙的GT许可连接信息,是必要的。

·内容密码方式:作为确定保护代码的加密方式的值,是必要。该值也可包含解密钥匙的长度。

图19示出用作超流通文件形式的情况的保护代码执行形式的一例。在图19,在SCDF(超流通内容形式:Super Content Distribution Format)文件上,作为SCDF的要素存放保护代码执行形式的内容。

(保护代码的加载和执行及保护数据的保留和维持)

下面使用图20说明保护代码的加载和执行工序、及保护数据的保留和维持。

如上述那样,实施了加密的保护代码文件由标题、保护代码块和明文代码块构成。保护代码文件在执行时加载到RAM17,根据在GT10(CPU)内的预测对各块复制到命令高速缓存12。其中,仅符合的命令由处理器内核11解释和执行。如图20所示那样,代码块中的保护代码块由解密高速缓存线解密后记录于命令高速缓存12。

在图20中,在命令高速缓存12与RAM17之间,具有对密码块进行解密、写入到命令高速缓存12的解密高速缓存线和将明文块写入到命令高速缓存12的明文高速缓存线的2种高速缓存线。通过这样具有多个高速缓存线,可使处理高速化。

另外,如图20所示那样,当通过保护代码的执行将保护数据输出到RAM17时,输出到预先作为虚拟存储器设定的抗攻击区域。在抗攻击区域,用于对保护数据加密和解密的对称密钥密码法的钥匙Kd形成相关,该钥匙Kd秘密地维持在GT10内。钥匙Kd作为对各代码解密钥匙Kc不同的随机数分配。保护数据一旦记录到GT10(CPU)内部的数据高速缓存13后,受到加密,然后输出到RAM17。另外,RAM17上的保护数据在GT10(CPU)内部解密后,记录到数据高速缓存13,此后符合的数据在处理器内核11得到利用。

在图20中,在数据高速缓存13与RAM17之间具有对密码块进行解密后写入到命令高速缓存12的解密高速缓存线,将数据高速缓存13的内容加密后写入到RAM17的抗攻击区域的密码高速缓存线,及在命令高速缓存12写入明文块的明文高速缓存线这样3种高速缓存线。由该构成也可使处理高速化。

可使加密的保护数据从RAM17保留到存储器18内。即,抗攻击区域不仅是RAM17内,而且可扩展到通过总线18连接的存储器19内。

(页访问控制)

如以上那样,GT10获得执行TRM程序代码的授权,将构成该保护代码文件的代码块加载到RAM17时,对保护代码块进行解密后执行。以下使用图21说明对执行保护代码时记录保护代码的页的访问控制。在图21中,箭头示出数据流,括弧内的数字表示处理的次序,与以下说明的工序的编号对应。

对记录保护代码的页的访问控制如以下那样进行。

(1)命令MMU14读出存储在预测命令指针(ip:instruction pointer)的虚拟地址。

(2)命令MMU14从TLB读取与虚拟地址对应的物理页编号ppn、抗攻击标志tr及抗攻击模式的访问权ar。

(3)抗攻击标志为打开的情况,命令MMU14从TRB读出代码解密钥匙(Kc)。

(4)命令MMU14在密码引擎16设定Kc。

(5)命令MMU14在命令高速缓存12和RAM17指定应高速缓存的保护代码块的地址。

(6)从RAM17将保护代码块投入到密码引擎16。

(7)由密码引擎16解密的保护代码块记录到命令高速缓存12。

(8)在存储命令指针的虚拟地址与预测命令指针一致的情况(即高速缓存符合的情况),处理器内核11从ip用寄存器读出TRSS标志,前进到下一工序。另一方面,在高速缓存不符合的情况,返同到上述(2)的工序。

(9)处理器内核11从ip用寄存器读出虚拟地址。

(10)处理器内核11从命令MMU14读出访问权ar,确认访问权。

(11)处理器内核11从记录了虚拟地址的内容的命令高速缓存12内读出保护代码块加以执行。

在工序(10),当记录了执行的命令的命令页转换时,处理器内核11在按工序(11)读出保护代码块之前,进行以下确认。

(a)记录了接下来执行的保护代码块的页的密钥(TRB.key)或被授权代码钥匙(TRB.ackey)与记录了刚执行的代码块的页的密钥(TRB.key)一致。

(b)关于以下执行的保护代码块的记录于TLB.ar的访问条件和接下来执行的访问一致

(a)和(b)的至少任一个不一致时,处理器内核11停止命令的执行,发生访问权异常。

下面,说明对记录了保护数据块的页的访问控制。保护数据块的访问控制通过在TRB和TLB设定GT许可的内容而受到强制。保护数据块的访问根据维持在TRB和TLB的被授权代码钥匙ackey、密码·解密钥匙Kd、访问权ar进行控制。

上述保护代码块的情况的访问控制工序和执行中的保护过程的对保护数据块的访问控制工序相同。另外,在上述工序(10)中,当记录执行的命令的页转换时和记录受到访问的保护数据的页转换时,在执行对保护数据的访问之前,处理器内核11确认以下点。

(a)记录受到访问的保护数据的页的密钥(TRB.key)或被授权代码钥匙(TRB.ackey)与记录执行代码的页的P密钥(TRB.key)一致

(b)记录受到访问的保护数据的页的访问权(TLB.ar)与接下来执行的访问一致

在(a)和(b)的至少任一个不一致的情况,处理器内核11中止保护数据的访问,使访问权异常发生。

以下根据图22更详细地说明由处理器内核11进行的对上述保护代码和保护数据的访问控制。

首先,处理器内核11等候异常/中断事件的发生(S21)。当异常/中断事件发生时,处理器内核11进行异常·中断处理(S35),返回到S21。图23详细地示出异常·中断处理。关于图23所示各种异常处理,在上述(异常处理)中详细进行了说明,所以,省略说明。

在异常/中断事件不发生的情况(S21:无),处理器内核11判定命令页转换是否已发生(S22)。

在命令页转换已发生的情况(S22:有),处理器内核11进行判断对命令页的访问权的有无的处理(S23)。在命令页转换未发生的情况(S22:无),前进到S28。

在S23的判断处理中,处理器内核11判断记录了接下来要执行的保护代码块的页的密钥(TRB.key)或被授权代码钥匙(TRB.key)是否与记录了刚执行过的代码块的页的密钥(TRB.key)一致,而且按照关于接下来执行的保护代码块的记录于TLB.ar的访问条件判定是否许可接下来执行的访问。在满足上述2个条件的情况,处理器内核11对接下来执行的代码判断具有对转换了的命令页的访问权(S24:有),前进到S25。在不是这样的情况(S24:无),处理器内核11对页访问故障异常进行排队(S27),返回到S21。

在S25中,处理器内核11判定记录了接下来执行的保护代码块的页的密钥(TRB.key)是否与记录了刚执行的代码块的页的密钥(TRB.key)一致,处理器内核11判定是否已在与该页对应的TRB内的行的eadr字段设定了值。在TRB.key不一致而且已在eadr字段设定了值的情况(S25:是),处理器内核11对抗攻击代码返回异常进行排队(S26),返回到S21。在TRB.key一致或在eadr字段未设定值的情况(S25:否),前进到S28。

在S28中,处理器内核11从命令页读出命令,对该命令进行解析。然后,处理器内核11确认现在执行的代码是否具有对在命令中指定的寄存器的访问权(S29)。在具有对该指定了代码的寄存器的访问权的情况(S29:有),前进到S30。在没有对该指定了代码的寄存器的访问权的情况(S29:无),处理器内核11对密封寄存器访问故障异常进行排队(S34),返回到S21。

在S30中,处理器内核11判定由寄存器示出的数据页是否正与前面的数据页转换。在未转换的情况(S30:无),执行命令(S33),返回到S21。图24详细地示出命令执行处理。关于图24所示命令,由于在上述(命令集)中进行了详细说明,所以省略说明。

在判定数据页正转换的情况(S30:有),处理器内核11进行判断对该数据页的访问权的有无的处理(S31)。S31的处理由于与在S23中说明的保护代码的情况相同,所以,省略说明。作为S31的判断结果,在处理器内核11判断接来下执行的代码具有对已转换的数据页具有访问权的情况(S32:有),前进到S33。在并非这样的情况(S32:无),前进到S27。

(保护软件的起动)

下面,根据图25说明起动在GT10上受到保护的软件即保护代码文件时的OS内核60和GT10的动作。在图25中,细箭头示出数据的连接,粗箭头表示数据流。另外,括弧内的数字表示处理的次序,与以下说明的工序的编号对应。

起动保护代码文件的工序如下。

(1)OS内核60通过设定TLB,从而确保成为加载保护代码和保护数据的区域的虚拟存储区域和物理存储区域,使虚拟存储器与物理存储区域连接。

(2)根据来自OS内核60的AUTHORIZE命令,GT10设定与TLB连接的TRB。

(3)根据来自OS内核60的CALL等的代码模块调用命令,GT10设定ip寄存器(在与调用目标命令不符的情况,GT10将相当的代码块解密,将解密后的代码复制到高速缓存)。

(4)GT10由TLB.ar(TLB内的ar字段)的内容确认执行由ip指定的地址的命令的权利。

(5)在确认到执行命令的权利的情况,GT10读出由ip指定的地址的命令(在图中为STR命令),解码并执行。

(对保护数据的访问)

下面,根据图26说明从执行GT保护代码的过程访问保护数据的原理。在该例中,前提为保护数据区域在保护代码执行前得到确保,从保护代码文件还加载初期值。另外,通过GT10执行来自OS60的AHRHORIZE命令,从而认为已进行对保护数据区域的访问授权和访问权设定。

下面,作为例子,关于执行命令“STR r0,[r1]”(寄存器r0的值所示内容写入到寄存器r1的值所示地址的命令)的情况,说明保护过程访问保护数据的工序和与其对应的GT10的动作。在图26中,箭头和括弧内的数字的意义与图25相同。

(1)保护代码执行存储器访问命令(STR和LDR等)。

(2)GT10确认与访问的地址对应的TLB内的行中的访问权信息TLB.ar(TLB内的ar字段)。

(3)保护代码访问具有与TLB.vpn(TLB内的vpn字段)一致的虚拟页编号的页的数据(在数据不在高速缓存的情况,保护代码从与该虚拟页对应的物理页对数据进行解密,复制到高速缓存。)

(从保护过程调用保护模块)

下面,说明从保护过程调用保护模块的工序。在从保护过程起动其它保护代码模块(DLL(动态连接程序(Dynamic Link Library))等)的情况,具有以下2个情况。

(a)调用的保护代码模块的代码解密钥匙Kc与调用该模块的保护过程(以下称主过程)的代码解密钥匙相同的情况

(b)调用的保护代码模块的代码解密钥匙Kc与主过程的代码解密钥匙不同的情况

在(b)的情况,当从保护主过程调用其它保护代码模块时进行的工序如图27所示那样。在图27中,箭头和括弧内的数字的内容与图25同样。在图27中,保护代码模块成为DLL,但这不过为一例。

(1)主过程通过TLB的设定等确保用于加载保护代码模块的虚拟区域和与该虚拟区域对应的物理区域。

(2)主过程通过访问授权(AUTHORIZE)命令生成与TLB连接的TRB,设定代码解密钥匙Kc,在TLB设定访问条件。

(3)主过程将利用的秘密信息用寄存器存放到该主过程的保护数据区域内的堆栈区域。(根据需要,保护数据高速缓存内的堆栈数据被加密后记录于外部存储器。)

(4)主过程执行寄存器释放(RELEASE_REG)命令。

(5)根据CALL命令等,主过程调用保护代码模块。

(6)主过程执行寄存器密封(SEAL_REG)命令。

(7)调用返回的情况,主过程使保留的堆栈返回到原来的寄存器。

图28示出在上述工序中由OS内核进行的处理的流程图。

在图27的工序的(1)中,主过程要求确保用于加载保护代码模块的虚拟区域和与该虚拟区域对应的物理区域时,调用抗攻击区域获取系统调入。该要求时,主过程将必要的区域大小和GT许可通知OS内核60。在该系统调入中,首先,OS内核60向处理器内核11输出将应用程序利用的寄存器的列表作为输入参数的非授权区域存储栈命令(STMEA_TO_UA)。该S91与图27的工序(3)对应。

接着,OS内核60向处理器内核11输出将应用程序利用的寄存器的列表作为输入参数的寄存器释放(RELEASE_REG)命令(S92)。这样,指定的寄存器被释放。该S93与图27的工序(4)对应。

OS内核60向处理器内核11输出将OS利用的寄存器的列表作为输入参数的寄存器密封(SEAL_REG)命令(S93)。在S94中,当这些命令的参数正确时(S94:正常),这些命令由处理器内核11执行,前进到S95。在不是这样的情况(S94:非法),前进到S103。

在S95中,OS内核60将由主过程指定的区域大小的入口设定到页表(S95)。在存在用于设定指定的大小的区域的抗攻击区域的资源的情况(S96:有),前进到S97。在抗攻击区域的资源不足的情况(S96:不足),前进到S103。

在S97中,OS内核60将GT许可、设定的地址、及页区域设定到输入寄存器,将访问授权(AUTHORIZE)命令输出到处理器内核11。该S97与图27的工序(2)对应。处理器内核11在正常地执行命令的情况(S99:正常),前进到S100。在不能正常地执行命令的情况(S99:异常发生),前进到S103。

在S100中,OS内核60将访问授权(AUTHORIZE)命令的结果设定为返回数据。此后,进行图27的工序(5),调用保护代码模块。接着,OS内核60将寄存器释放(RELEASE_REG)命令输出到处理器内核11,释放OS使用的寄存器(S101)。最后,OS内核60将被授权区域堆栈加载(LDMEA_FROM_UA)命令输出到处理器内核11,使笔记本和的数据加载到寄存器,返回到通常状态。该S95与图27的工序(7)对应。

在参数的非法、资源的不足和异常发生时,在S103中,OS内核60将出错内容设定为返回数据,前进到S101。

(抗攻击代码的返回时的异常处理)

当由Call、Jump或Return等命令在执行过程中使地址从一般的虚拟区域或抗攻击区域移动到代码解密钥匙Kc不同的抗攻击区域时,抗攻击代码返回异常发生。在该异常处理中,需要实施以下2个处理。

(a)寄存器密封的确认和寄存器释放完毕的情况的密封的再设定。

(b)抗攻击段选择程序的值的确认和与需要相应的再设定。

GT10在保护代码的寄存器密封之前,将解除·返回异常的起始地址设定在TRB。另外,保护代码需要包含解除·返回异常处理,以防止在由来自外部的中断释放寄存器的状态下继续执行,而使记录于寄存器的秘密信息泄漏。在该解除·返回异常处理中,GT10再次确认是否应已密封的寄存器是否被密封,如寄存器未被密封,则必须重新密封或中止保护代码的执行。

图29示出用于防止由抗攻击代码返回异常处理进行的密封寄存器非法访问的顺序例。图29示出当保护代码由非法代码一时中断后返回时发生异常的情况。在图29中,虽然在中断保护代码之前执行寄存器密封(SEAL_REGr1)命令,但在非法代码的执行中由于执行了寄存器释放(RELEASE_REG r1)命令,所以,返回时应已密封的寄存器未被密封。

图29所示抗攻击代码返回异常的顺序的最初的3行如下。

TST RSSL.r1ss,r1ssBit

BNE chk_seg

SEAL_REG r1

该3行通过检查与RSSL寄存器内的寄存器r1对应的位r1ss的值而确认保护代码利用的寄存器r1的密封状态,在r1未被密封的情况,表示重新密封r1的处理。

另外,非法代码由中断等夺取过程,还存在将数据和堆栈的TRSS标志设定为关闭(0)的可能性。即使TRSS标志成为关闭,当保护代码继续时,保护数据写入到一般虚拟区域,而不是抗攻击区域。为了防止这样的事态,在抗攻击代码返回异常处理中,需要进行ip(对于某些命令指针、CPU也称为PC(程序计数器))所示各虚拟地址的抗攻击数据/堆栈段选择程序的再设定。图29所示抗攻击代码返回异常的顺序的第4行~第6行如下。

Ch_seg CMP ip,trSegmentHead

       BMI ret

     ORR trdss,trdss,trBit

该3行表示进行ip所示的各虚拟地址的抗攻击数据/堆栈段选择程序的再设定的处理。当抗攻击代码返回异常处理结束时,过程返回到保护代码。在图29的顺序的最后,由非法代码再次中断过程,非法代码要将保护代码利用的寄存器r1的内容写入到一般虚拟区域(MOV r1[unprotectedArea])。然而,在抗攻击代码返回异常处理中,由于寄存器r1重新密封,所以发生密封寄存器访问故障(SEALED_REGISTER_ACCESS_FAULT_EXCEPTION)。

这样,由抗攻击代码返回异常的顺序,GT10在返回时对保护代码的秘密数据进行保护。

(保护上下文的转换的管理)

下面,设想从抗攻击用户过程向OS内核过程的上下文转换发生,所有寄存器保留到堆栈的情形。图30示出由OS内核进行的保护上下文转换时的顺序的一例。

在图30中,假设从应用程序1将保护上下文转换到应用程序2。最初,应用程序1利用的寄存器r1被密封。此后,转换保护上下文时,OS内核60执行非授权区域存储栈(STMEA_TO_UA)命令,这样,寄存器r1的值由数据密码·解密钥匙Kd加密后保留。另外,形成堆栈的寄存器r1根据寄存器释放(RELEASE_REG)命令清零。通过释放寄存器r1,从而可由应用程序2的过程利用寄存器r1。

此后,当保护上下文返回到原来的过程时,OS内核60通过执行非授权区域堆栈加载(LDMEA_FROM_UA)命令,从而将保留的寄存器的值解密,返回到寄存器r1。此后,寄存器r1再次被密封。当进行上下文转换时,由这样的保护上下文管理保障包含密封寄存器的寄存器的维持、返回,作为OS内核60的处理。

当OS内核60调用非保护系统调入时,需要将SP转换到一般虚拟空间的地址后调用等这样的构成。OS如过去那样将系统调入的返回值记录到一般虚拟区域即可。

另一方面,OS内核60调用保护系统调入时,将用于共享存放返回值的堆栈区域的GT许可作为参数等转移。OS通过将接受到的GT许可作为参数执行AUTHORIZE命令,从而可与应用程序过程共享抗攻击堆栈区域。

(保护数据区域的安全共享)

在上述说明中,即使是抗攻击空间内的过程也不能在许可所有者不同的代码和数据的区域间相互访问。然而,通过使用以下的抗攻击区域共享功能,可使得通过在由GT10保护、具有相互不同的代码解密钥匙Kc的软件包、程序库、目标和过程等保护代码模块间安全地交换保护数据。

图31示出保护数据区域的共享的一例。图31为说明播放过程和解码器DRM过程在GT10上动作的情况的图。

由解码器DRM过程解码后的数据被写入到DRM过程用的虚拟页。该解码后的数据使用数据密钥Kd加密后记录到RAM17内的共享物理页。记录到RAM17的共享物理页的数据使用数据解密钥匙Kd解密,写入到DRM过程用的虚拟页。播放(再现应用程序)过程读出该数据后再现。

下面详细说明设定这样的保护数据的共享的工序。

首先,为了共享保护数据,假设生成共享的保护数据区域的生成主模块和与生成主模块共享该保护数据区域的共享目标模块

生成主模块和共享目标模块即使作为包不同(即Kc不同),为了使得共享目标模块可读出生成主模块的保护数据区域,如图32所示那样,生成主模块必须认证共享目标模块。在该认证正常地结束后,必须在GT10内部设定TLB和TRB,使得共享目标模块可利用生成主模块的保护数据区域的密钥Kd。

下面,沿图32说明模块的认证和保护数据解密钥匙共享工序的设定工序。在图32中,括弧内的数字表示处理的次序,与以下的说明的工序的编号对应。另外,图32中的各符号的意义如下。

RN:生成主模块临时生成的随机数

KPacm:面向软件模块的认证站的路由公钥

Kacm:面向软件模块的认证站的路由私钥

Kdp:共享目标模块的私钥

KPdp:共享目标模块的公钥

C(KPdp,Kacm):共享目标包的公开证书

Kc1:生成主模块的代码解密钥匙

Kc2:共享目标模块的代码解密钥匙

(1)生成目标模块将临时生成的随机数送到共享目标模块。

(2)共享目标模块在连接由KPgt将自身的过程生成的虚拟区域的ID与Kc2加密后获得的值与随机数产生的数据,附加该数据的数字签名和对应于用于签名的私钥的公钥的证书。该证书必须为PKI程序库用认证站(CApki)、DRM用认证站(CAdrm)或面向应用程序的认证站(CAap)等的可信赖的第三者发行的证书。在该说明中,在证书中,解密钥匙Kc=”YYYYYY”用KPgt加密。

(3)共享目标模块利用一般的数据共享/过程间通信等将由(2)生成的数据送到生成主模块。

(4)生成主模块检查签名,在可确认其正当性的情况,将嵌入已受理的被授权代码钥匙authorized code key、访问权“PR”(抗攻击模式读出专用)、密码·解密钥匙Kd的GT许可、及指定虚拟区域作为参数,执行访问授权命令(AUTHORIZE))。而且,在该说明中,密码·解密钥匙Kd=”AAAAAA”嵌入到GT许可。

(5)执行访问授权命令的结果,在与共享目标模块的TLB连接的TRB内的行设定GT许可的内容。这样,共享目标模块从共享保护区域读出的数据在由钥匙Kd正常解密的状态下高速缓存。

结果,按照图32所示例,在TLB的第4行设定对物理页编号“002”的访问权“PR”,在与该TLB内的行对应的TRB的第4行将数据钥匙Kd=“AAAAAA”设定到Key字段。这样,共享目标模块可使用数据钥匙Kd=“AAAAAA”对生成主模块的保护数据区域(与TLB的第2行对应)进行解密而读出。

当在不同模块间进行相互认证时,在工序(2)中,共享目标模块由生成主模块的公钥或利用公钥加密了的对称钥匙加密法的钥匙对生成的发送信息加密,送到生成主模块即可。该信息在生成主模块以外不能解密。

在图10所示TLB内,ID为2的行和ID为7的行以共享保护区域的情况为例加以示出。

图33示出调用抗攻击区域共享系统调入时的处理的工序。该工序(S110~S123)除了系统调入时的输入参数为区域的起始地址而不是区域大小外,其它与图28所示工序(S90~S103)相同,所以,省略说明。

内容再现(播放)应用程序也可使用上述本地数据共享方式从媒体DRM40获得数据,对其进行再现,并进一步编辑。在编辑和记录该结果的情况,必须依照在GT许可中指定的访问条件。另外,再现应用程序必须将这些处理生成为GT保护代码。

为了在再现应用程序中强制再现时间和期限的限制,需要安全定时器。安全定时器的构造也可作为在GT10之外独立的硬件TRM实现。或者,在GT10内装晶体发信机等的情况,也可使用上述定期中断间隔设定命令作为抗攻击软件进行构造。在所有这些情况,当设想定时器因为某各原因停止的情况时,需要具有与外部的可信安全定时器(Trusted Secure Timer)同步的功能。

(DRM软件构造模型)

下面说明DRM软件模块的构造模型。解码器DRM30、媒体DRM40、及这些DRM使用的PKI程序库20内的密码·解密程序库及需要TRM化的其它应用程序作为在GT10上受到保护的GT保护代码流通和执行。这些模块基本上以全文为暗文,从而在GT10受到保护。

图34示出DRM软件模块的构造模型的一例。在该模型中,假设上述4个模块由不同的开发商开发,用不同的代码密钥key(Kc)加密。在图34中,细黑箭头表示加密了的许可钥匙的交接,细白箭头表示解密后的许可钥匙的交接,粗黑箭头表示加密后的内容的交接,粗白箭头表示复合的内容的交接。括弧内的数字表示工序的次序。下面根据图34说明内容和其许可钥匙的下载、管理、再现工序。

(1)从互联网等网络通过下载应用程序在记录媒体记录加密许可钥匙和加密内容。

(2)许可钥匙在加密的状态通过下载传送到媒体DRM40。

(3)在媒体DRM40内被解密的许可钥匙使用后述的方法安全地进行管理,在加密的状态下记录到记录媒体。许可钥匙的再加密使用在GT10受到保护的PKI密码程序库20实施。

(4)在存在用户的再现要求的情况,媒体DRM40从记录媒体取出许可钥匙进行解密。

(5)媒体DRM40对解码器DRM30进行认证,使用与解码器DRM30共享的对话钥匙将许可钥匙加密,然后传送到解码器DRM30。关于该钥匙的共享和工序(7)的保护数据的共享,在(保护数据区域的安全的共享)中说明。

(6)解码器DRM30将从记录媒体取出的加密内容和从媒体DRM40获得的许可钥匙作为参数将解密处理委托给PKI密码程序库20。

(7)解密后的内容通过共享保护数据区域送到再现应用程序。

(8)再现应用程序对内容进行再现。

下面,使用图35~图40更详细地说明上述工序。

首先,使用图35和图36说明由媒体DRM进行的的处理。

首先,媒体DRM40执行抗攻击权限设定(SET_TR_RIGHTS)命令和寄存器的密封(SEAL_REG)命令(S131和S132)。接着,媒体DRM40取出嵌入到自身的秘密信息(S133)。媒体DRM40判定与取出的秘密信息对应的GT许可是否存放到记录许可的许可DB(S134)。在已存放到许可DB的情况(S134:有),前进到S136,在还未存放到许可DB的情况(S134:无),媒体DRM40将该GT许可设定到许可DB后(S135),前进到S136。

在S136,媒体DRM40生成许可管理用的抗攻击数据区域。关于S136的处理,在后面根据图36详细说明。

在可生成许可管理用的抗攻击数据区域的情况(S137:正常),前进到S138,在不能生成许可管理用的抗攻击数据区域的情况(S137:出错),前进到S142。

在S138中,媒体DRM40将许可管理用的抗攻击数据区域初始化(S138),等候许可接收要求、再现授权要求或结束要求。在接收到许可接收要求的情况((S139:有),媒体DRM40接收许可(S143),返回到S139。在接收到再现授权要求的情况,媒体DRM40进行再现授权(S144),返回到S139。在接收到结束要求的情况(S141:有),执行寄存器释放(RELEASE_REG)命令(S145),结束处理。

在许可管理用的抗攻击数据区域的生成失败的情况(S137:出错),媒体DRM40将出错显示输出到输出装置(图中未示出)(S142),前进到S145。

下面,根据图36说明图35的S136。当生成许可管理用抗攻击数据区域时,首先,媒体DRM40使用代码密钥Kd生成访问权PRW的GT许可(S151)。接着,媒体DRM40调用抗攻击区域获取系统调入(S152)。关于S152的处理,如上述相同。

在获取抗攻击区域时如未产生错误(S153:无),则确认途中生成的签名(S154),如签名正确(S155:一致),则正常地返回到主流程。当获取抗攻击区域时如产生错误(S153:有)或签名不正确(S155:不一致),则将错误返回到主流程。

下面,根据图37~图39说明由解码器DRM进行的处理。首先,解码器DRM30执行抗攻击权限设定(SET_TR_RIGHTS)命令和寄存器密封(SEAL_REG)命令(S161和S162)。接着,媒体DRM40取出嵌入于自身的秘密信息(S163)。

然后,解码器DRM30生成解密后的内容用的共享保护数据区域(S164)。关于该S164,在后面使用图38详细说明。

在S164的处理正常进行的情况(S165:正常),解码器DRM30在接收再现授权要求、再现要求、及结束要求中的任一个之前等候。在未正常进行S164的处理的情况(S165:出错),解码器DRM30在输出装置(未图示)显示产生错误这一情况(S169),前进到S175。

在接收到再现授权要求的情况(S166:有),解码器DRM30从媒体DRM40获取内容的许可钥匙(S170),返回到S166。

在接收到再现要求的情况(S167:有),解码器DRM30判定是否已获取内容的许可钥匙(S171)。在已获取内容钥匙的情况(S171:已获取),解码器DRM30对加密块进行解密,进行共享该情况的处理(S173)。关于S173将根据图39在后面详细说明。接着,解码器DRM30将返回值通知到再现应用程序(S174),返回到S166。在S171的判定中,当未能获取许可钥匙时(S171:无),在输出装置(图中未示出)进行出错显示(S172),前进到S175。

在接收到结束要求的情况(S168:有),前进到S175,解码器DRM30执行寄存器释放(RELEASE_REG)命令,结束处理。

下面,根据图38详细说明图37的S164。为了生成解密后的内容用共享保护数据区域,首先,解码器DRM30调用抗攻击区域获取系统调入,以获取用于记录由解码器DRM30解码后的内容的抗攻击区域(S181)。关于该处理已进行了说明。在生成了抗攻击区域的情况(S182:正常),前进到S184。在并非这样的情况(S182:出错),将出错表示输出到输出装置(未图示)(S183),返回到主流程。

在S184中,解码器DRM30使GT10对用于将加密了的内容解密的PKI密码程序库进行认证。该认证工序与在(保护数据区域的安全共享)中使用图32说明的认证工序相同。

在正常地进行了S184的认证的情况(S185:正常),前进到S187。在未正常进行S184的认证的情况(S185:出错),将出错显示输出到输出装置(未图示)(S186),返回到主流程。

在S187中,解码器DRM30调用抗攻击区域共享系统调入。在正常地进行了S184的处理的情况(S188:正常),返回到主流程。这样,解码器DRM30和PKI程序库可共享写入到抗攻击区域的保护数据。在未正常进行S184的处理的情况(S188:出错),将出错显示输出到输出装置(未图示),返回到主流程。

下面,根据图39更详细地说明图37的S173。首先,解码器DRM30判定再现应用程序是否已认证(S191)。在已认证的情况(S191:已认证),前进到S196。在还未认证的情况(S191):未认证),进行S192~S195。该处理由于与图38的S184~S188相同,所以,省略说明。在S192~S195的处理中,当已发生错误时(在S193和S195中出错),将出错显示输出到输出装置(未图示)(S198),返回到主流程。在S192~S195正常进行的情况,再现应用程序和解码器DRM30共享抗攻击区域,再现应用程序可读出由解码器DRM30写入到抗攻击区域的内容。

在S196中,解码器DRM30使用PKI程序库20对加密了的内容进行解密。解密了的内容被写入到共享化的的抗攻击区域。在已进行解密的情况(S197:正常),返回到主流程。在未正常进行解密的情况(S197:出错),前进到S198。

下面,根据图40说明由再现应用程序进行的处理。

首先,再现应用程序执行抗攻击权限设定(SET_TR_RIGHTS)命令和寄存器的密封(SEAL_REG)命令(S201和S202)。接着,再现应用程序取出嵌入到自身的秘密信息(S203)。接着,再现应用程序对解码器DRM30要求认证(S204)。根据该认证要求进行上述S192。

在正常地进行了认证的情况(SS205:正常),再现应用程序等候接收再现要求等要求或结束要求。在未正常进行认证的情况(S205:出错),再现应用程序将出错显示输出到输出装置(未图示)(S214),前进到S216。

在接收到再现要求的情况(S206:有),再现应用程序对解码器DRM30要求对密码块进行解密(S210)。在来自解码器DRM30的返回值正常的情况(S211:正常),再现应用程序再现该块(S212)。在内容的再现结束之前(S214:否),反复进行S210~S212。当内容的再现结束时(S214:是),返回到S206。

当接收再现要求以外的要求时(S207:有),再现应用程序执行其要求(S208),返回到S206。当接收结束要求时(S209:有),再现应用程序使GT10执行寄存器释放(RELEASE_REG)命令(S216),结束处理。

(秘密信息的管理)

图41示出维持和管理与发行证书的公钥密码法的公钥对应的私钥Kdrm等由DRM代码包开发者生成的秘密信息。在图41中,细箭头示出数据流,粗白箭头表示钥匙等的嵌入。另外,括弧内的数字表示处理的次序,与以下说明的工序的编号对应。

特别是与公钥证书对应的私钥从在CRL的指定时等从仅停止特定的GT和特定的DRM的设置的必要性出发,需要使用本方式。本方式的工序大体如下。

(1)开发者生成的私钥(Kdrm等)在类别·个别的情况都由开发者生成的对称钥匙加密法的钥匙Kprd进行加密,嵌入到包内。

(2)进行了GT许可化后的Kprd和访问条件“PR”以仅可按抗攻击模式读出的形式嵌入到保护代码内。

(3)代码全体由Kc加密,作为DRM进行保护包化。

(4)Kc由KPgt加密,作为DRM许可进入到DRM包。

(5)在执行DRM时,从VHTRM将该GT许可投入到GT10,在GT10内部由Kprd读出。

(6)由Kprd将Kdrm解密、利用。

这样,开发者指定的GT上的指定过程以外的过程不能读私钥Kdrm。在特定的GT被破坏的情况,仅使被破坏的GT的公钥密码法的公钥证书失效即可。因此,即使是面向相同DRM的情况,面向其它的GT的证书(Cdrm2)也可正当地利用。

本方式不仅可用作管理DRM的私钥的方法,而且也可用作管理其它保护包的私钥的方法。

(UDAC许可管理)

关于保护内容和UDAC许可的一般信息的管理方式,也可继续UDAC-MB和UDAC-LA的方式。图42示出用于许可管理的存储器访问的方式。

如图42所示那样,内容解密钥匙等的许可的秘密信息记录于RAM17内的保护数据区域受到管理。该保护数据区域内的信息也可作为文件存储到存储器和快闪存储器等。通过在记录秘密信息时由数据密钥Kd进行加密,从而在CPU(GT10)的再起动时也可在安全保护许可的秘密信息的状态下利用。该数据密钥Kd在由TRB密钥Ktrb加密的状态下作为加密钥匙表的行保存到一般的外部存储装置。

为了提高Ktrb和Ktlb的抗攻击功能,需要隔一定的期间更新Ktrb和Ktlb的内容。在更新之前,必须按抗攻击过程生成的临时钥匙将所有许可信息加密后备份。在由更新改变Ktrb和Ktlb后,重建页表和加密钥匙表。只要将许可信息解密,在重建的抗攻击区域列表即可。

上述私钥管理也可作为前提进行CRL的管理。另外,各许可的CRL控制功能也可在上述许可管理功能内具有。1个DRM包的证书以仅发行GT10具有的证书的数量为原则。在使DMR包自身失效的情况,仅为了用于该GT而发行的DRM包证书失效。

在对程序内容进行超流通、处理UDAC许可的情况,也可不利用DRM软件,而是作为简单版超流通功能直接利用GT许可。另外,也可使用在GT上构筑的DRM软件,作为UDAC-MB和PI许可处理。在使用DRM软件的情况,仅UDAC-MB/PI许可中的基本访问权(PR、X、PRW、PWX)在DRM内变换成GT许可,使用CPU的访问控制命令(AUTHORIZE)强制。关于其它访问条件,在GT保护DRM内进行强制处理。

当然,不仅UDAC,而且使用当今的软件TRM的各公司的DRM也可通过GT保护化而具有硬件TRM级别的抗攻击性。

(变形例)

以上GT许可作为不移动的情形进行了说明,但DRM间的许可移动功能的实现也可能。在相同GT上执行的2个DRM过程间的许可移动·授权可通过由(保护数据的安全的共享)认证的共享抗攻击区域实现,也可利用UDAC-MB和UDAC-PI等协议实现。但是在安装有许可的移动功能的情况,为了防止再送攻击进行的非法复制,必须在TRM内将许可管理用秘密信息存放到以下的UPL(Unreplicatable Private Locker:不能复制的专用柜)。在希望仅由GT实现该UPL的情况,通过在TRB.uo(TRB内的uo字段的值)和TRB.cl(TRB内的cl字段的值)双方都为on的抗攻击区域存储许可管理用秘密信息,从而使其成为可能。

但是,对于在切断GT的电源后也需要维持使用UPL管理的许可的情况,即使是存放许可管理用秘密信息的UPL的区域也需要成为非易失性存储元件,成为Permanent UPL(半永久UPL)。关于将抗攻击空间的一部分分配给Permanent UPL的方法,在这里不特别规定。

为了在GT的外部实现TRM化的UPL,UPL需要在UPL内安装UDAC-MB等的TRM认证协议。作为在外部实现的Permanent UPL,可利用安装了UDAC的Secure MMC等。

下面,说明第2实施形式。在第1实施形式中,代码块和数据块为明文或暗文(ebim=0或1)。按照第2实施形式,块也可为暗文和明文及其它信息的组合。

下面,根据图43说明实现第2实施形式的GT的CPU的构成。

在图43中,省略与图3所示第1实施形式同样的部分。如图43所示那样,第2实施形式的GT100除了第1实施形式的构成外,还具有保护块选择程序101和104、散列检验程序102、及散列引擎103。

保护块选择程序101根据ebim的值识别从高速缓存11或12输出的加载块或数据块是否为应保护的块。在输出的情况为应保护的块的情况,保护块选择程序101将该块输出到散列引擎103。散列引擎103生成该块的散列,在生成散列后,密码引擎16对该块进行加密,输出到RAM17。另一方面,在从高速缓存11或12输出的块不为应受到保护的块的情况,保护块选择程序101将该块输出到RAM17。

另外,保护块选择程序104识别从RAM17输出的代码块或数据块是为加密的块还是为明文的块。在输出的块为加密的块即保护块的情况,保护块选择程序104将该保护块输出到密码引擎16。密码引擎16将该保护块解密,将解密后的块输出到散列引擎103。散列引擎生成该块的散列,输出到散列检验程序102。散列检验程序102确认生成的散列,在确认到散列正确的情况,将该块输出到高速缓存12或13。另一方面,在从RAM17输出的块不为保护块的情况,保护块选择程序104将该块输出到高速缓存12或13。

在图43中,具有保护块选择程序101和104,但也可将保护块选择程序101和104构成为1个保护块选择程序。这样,可使回路小型化。

下面,说明第2实施形式的TLB内的字段。在图5所示TLB中包含ebim字段。按照第1实施形式,该ebim的值为0或1。按照第2实施形式,作为该ebim可取的值,还追加2~7。下面说明与ebim的值相应的块的构造。

a)ebim=0的情况,仅明文(虚假许可,与第1实施形式相同)

b)ebim=1的情况,暗文(与第1实施形式相同)

c)ebim=2的情况,保护块开始识别代码使用

d)ebim=3的情况,同上而且仅加密块

e)ebim=4的情况,仅带签名明文块

高速缓存加载时必须确认签名

f)ebim=5的情况,仅带散列的加密保护块。

解密后必须确认散列

g)ebim=6的情况,保护块开始识别代码使用。

必须确认签名/散列

h)ebim=7的情况,同上而且仅加密块。必须确认散列

即,本字段的各位具有以下那样的意义。

位0:加密标志。在该标志打开的情况,表示块被加密。

位1:保护块开始识别代码标志。在该标志为打开的情况,表示在块附加有保护块开始识别代码。在该标志为关闭的情况,GT10不需要识别保护块开始识别代码。

位2:散列附加·确认标志。在该标志为打开的情况,当将数据扫出到GT10外时,GT10在该数据块附加散列。另外,当将代码和数据取入到GT10内时,确认附加于块的散列值。在该标志为关闭的情况,不需要在块附加或确认散列。

这些ebim的值与第1实施形式相同,根据包含于GT许可的被授权代码钥匙ACgt内的ebim字段的值设定。

下面根据图44说明第2实施形式的块的构造。根据GT10,也可使保护代码块与保护数据块的构造相同的形式。这样,可提高CPU内的回路资源的利用率。如图44所示那样,由开发者和创作者生成的块包含随机数、一般命令和数据,在必要的情况还包含散列。在ebim为1或5的情况,通过将该块加密,从而生成保护块。在ebim为2、3、6或7的情况,将该块加密后,按明文在起始部分附加保护块标题识别代码,从而生成保护块。保护块标题识别代码包含表示块是否为保护块的加密标志和表示是否在块的最后附加散列的散列标志。保护块标题识别代码和加密的随机数部分构成保护块开始命令。

RAM17上的保护块通过在GT10内解密,从而获得明文的一般命令和数据。在ebim为1或5的情况,随机数部分和散列部分不使代码和数据的地址改变地变换成NOP(No Operation)命令后,加载到命令高速缓存12或数据高速缓存13。在ebim为1的情况,与第1实施形式相同。在ebim为2、3、6或7的情况,除了随机数部分、散列部分外,保护块标题识别代码也变换成NOP(无操作(No Operation)),然后加载到高速缓存12或数据高速缓存13。

将处理器内核11上的作业数据等加密后的情况的保护块构造也为与对由开发者或创作者生成的块进行加密的情况的保护块同样的构造。

图45示出ebim为4的情况的块的构造。如图45所示那样,当ebim为4时,RAM上的块成为在明文的代码或明文的数据附加了签名的构造。当在命令高速缓存12或数据高速缓存13上加载块时,签名变换成NOP命令。签名也可为用密钥Kc或Kd将代码或数据的散列(SHA-1等)加密的值。Kc和Kd由GT许可指定,设定到TRB的密钥字段(TRB.key)。

下面,说明由第2实施形式的GT进行的处理。基本的动作与第1实施形式和第2实施形式相同,所以,在以下的说明中,重点说明由进一步附加的构成进行的处理。

首先,根据图46说明由保护块选择程序104进行的处理。

首先,保护块选择程序104等候从RAM17(外部存储器)取出块的加载要求(S221)。当从RAM17发出块的加载要求时(S221:要求),保护块选择程序104从TLB读入与预测的块的地址对应的行的ebim字段的值(S222)。

保护块选择程序104判定ebim的第1位是否为打开(S223)。ebim的第1位表示是否在块附加保护块开始命令。在ebim的第1位为打开的情况(S223:on),在该块附加保护块开始命令。保护块选择程序104读出附加到该块的起始部分的保护块开始命令(S224),在该保护块开始命令判定加密标志是否为打开(S225)。加密标志为加密标志为打开的情况(S205:on),前进到S229。在S229中,保护块选择程序104将该块输出到密码引擎16,返回到S201。在该情况,该块在解密后被传送到高速缓存12或13。

在加密标志为关闭的情况(S225:off),保护块选择程序104还判定ebim的第2位是否为打开(S226)。ebim的第2位表示在传送该块时是否需要散列的确认。在ebim的第2位为打开的情况(S226:on),处理前进到S209。在ebim的第2位为关闭的情况(S226:off),保护块选择程序104将该块传送到高速缓存12或13(S227)。

在S223的判定中,当ebim的第2位为关闭时(S223:off),保护块选择程序104进一步判定ebim的第0位是否为打开(S228)。ebim的第0位表示是否需要将该块加密。在ebim的第0位为打开的情况(S228:on),处理前进到S229。在ebim的第0位为关闭的情况(S228:off),保护块选择程序104进一步判定ebim的第2位是否为打开(S230)。在ebim的第2位为打开的情况(S230:on),处理前进到S229。在ebim的第2位为打开的情况(S230:off),保护块选择程序104将该块传送到高速缓存12或13(S231),返回到S221。

接着,根据图47说明由散列引擎103进行的处理。

首先,散列引擎103等候散列要求的事件发生(S241)。当事件发生时,散列引擎103读入进行散列要求的块(S242)。然后,散列引擎103读入与该块的地址对应的ebim,判定该ebim的第2位是否为打开(S243)。在ebim的第2位为打开的情况(S243:on),散列引擎103生成该块的散列(S244),将该块和生成的散列的内容传送到下一回路块(S245),返回到S241。另一方面,ebim的第2位为关闭的情况(S243:off),散列引擎103不生成散列,将该块传送到下一回路块(S246),处理返回到S241。

下面,根据图48说明由散列检验程序102进行的处理。

首先,散列检验程序102等候散列要求事件发生(S251)。当事件发生时散列检验程序102读入要求的块(S252)。接着,散列检验程序102读入与该块的地址对应的ebim,判定该ebim的第2位是否为打开(S253)。在ebim的第2位为打开的情况(S253:on),散列检验程序102比较由散列引擎103生成的散列与附加到该块的散列(S254)。进行比较后,在2个散列不一致的情况(S254:不一致),向处理器内核11通知散列不一致异常发生(S255),返回到S251。在2个散列一致的情况(S254:一致),散列检验程序将该块传送到下一回路块(S256),返回到S231。

下面,说明第2实施形式的变形例。在第2实施形式中,根据ebim,保护块选择程序作为选择块的形式进行说明。该方式以外的方式在以下加以例示。

1.在执行文件的标题嵌入加密块位图的方法。保护块选择程序先读入该位图,判断将块输出到一般线还是输出到解密线。

2.使代码的起始部分为明文,在该起始的代码中,指定在多少块的明文之后出现多少块的保护代码,使其重复,GT100最初执行该代码(命令)。该代码也可在途中改变。按照该方式,可缩小保护代码块选择程序的功能。如可按地址的下位的位选择保护保护代码,则可进一步缩小选择程序的功能。

下面,说明第3实施形式。按照第1和第2实施形式,当保护代码和保护数据进入到高速缓存内时,作为变换随机数的结果获得的NOP每隔高速缓存线长度存在。这样,产生无意义地使用高速缓存内的资源的问题。第3实施形式涉及解决该问题的技术。按照第3实施形式,可由以下的方法1~3有效地利用高速缓存的资源。

方法1)将在随机数长和块数的积加上虚拟区域长获得的长度设为物理区域长(虚拟区域长+随机数长×块数=物理区域长)。通过在RAM17上具有伸出为虚拟页的大小的部分,从而使得在高速缓存内不记录伸出的部分即变换随机数的NOP。

方法2)将具有等于随机数长与块数的积的长度的区域设定为NOP专用的物理区域。

方法3)不在高速缓存内记录NOP。图49示出按照本方法的NOP的处理。如图49所示那样,RAM17的保护代码块或保护数据块被加密。根据情况,保护代码块或保护数据块包含保护块标题识别代码。当该保护代码块或保护数据块在GT10内解密时,可获得一般命令(或一般数据)、随机数及散列的块。在高速缓存内记录其中的一般命令或一般数据,不记录应记录NOP的虚拟地址的数据。在代码访问了NOP的虚拟地址的情况,将NOP返回到代码。可从OS等读取存储于虚拟存储器的NOP,也可不读。

下面,说明第4实施形式。第4实施形式涉及在具有2个或其以上的上述说明的GT10的CPU即多CPU中使保护过程动作的情况。

在由多CPU使保护过程动作的情况,需要在以下那样的情况设置。

1.仅具有1个代码解密钥匙Kc的保护过程在多个CPU上平行地执行多个线索的情况

2.与按照窥探功能的保护代码和保护数据等高速缓存内容的自动同步对应。

图50示出具有GT10A和GT10B的多CPU的构成。如图50所示那样,GT10A、GT10B、及RAM17通过总线连接。GT10A和GT10B分别具有高速缓存。在由GT10A和GT10B并行地执行多个线索的情况,在执行之前,GT10A和GT10B通过DCTP(数字传送内容保护(Digital TransmissionContent Protection))的完全认证(Full Authentication)等的相互认证而获得对话钥匙Ksnp。GT10A和GT10B在交换秘密信息、保护代码和保护数据的情况,使用对话钥匙Ksnp。这样,GT10A和GT10B可安全地交换Ktrb和Kc、Kd等。GT10A和GT10B使用对话钥匙Ksnp对高速缓存内的数据进行加密,相互同步传送,从而实现高速缓存内容的同步。

下面说明第4实施形式。使用过去的编译程序和汇编程序生成的程序代码目标不具有GT保护相关的信息。由图51所示那样的方式可将其变换成在GT的保护代码执行形式和SCDF(超流通内容形式:Super ContentDistribution Format)。

图51示出从代码目标输出保护代码执行形式的工具群的例。在图51中,提出了这样的例子,即,生成保护代码执行形式和许可,并为了超流通实施执行形式而通过SCDF生成工具生成SCDF数据。

如图51所示那样,SCDF生成工具具有连接程序前处理部、连接程序、保护代码执行形式生成部、及SCDF制作部。首先,代码目标由连接程序前处理部分成多个块,在各块追加NOP命令。接着,连接程序进行地址解决。另外,连接程序后,保护代码执行形式生成部通过使用代码密钥对各块进行加密,从而生成保护代码执行形式。另一方面,GT许可生成部生成包含上述代码密钥,由与上述私钥成对的公钥加密的许可。

下面,说明第5实施形式。为了实现由GT10进行的保护,需要GT10和由GT10保护的DRM软件模块。然而,当初GT也不普及,OS也不支持GT10的功能,所以,需要用以下那样的背景推进普及。

(1)当初由软件TRM开发CPU扩充部分的硬件命令仿真程序,对过去的面向CPU的DRM软件进行仿真。这样,即使是过去的面向CPU的DRM软件也可在GT10中作为保护软件运行。

(2)DMR部分流用现存的DRM模块。

(3)要由OS支持GT10的功能需要在OS包外具有抗攻击空间管理、保护上下文转换管理和DRM等。

另外,当初应用程序和解码器DRM形成1个包,Kc和Kd也可相同。

下面,作为第6实施形式~第12实施形式说明在上述各实施形式中说明的GT应用例。

在GT应用例中列举了各种各样的例子,但在这里,作为例子,可列举出个人计算机、工作站、PDA(个人数字助理)、手机(包含简单型手机)、智能卡等IC卡、RFID媒体、AV(视听)设备、GRID计算、机器人等,下面对其进行说明。

首先,作为第6实施形式,说明GT在个人计算机和工作站的应用。图52示出将GT10或100安装于个人计算机和工作站的情况的系统构成例。如图52所示那样,在母板装载GT10或100。在系统控制器内装USB(通用串行总线)控制器、IDE(综合设备电路)控制器、IEEE1394控制器、视频控制器、及音频控制器等。

在图52中,将媒体DRM芯片嵌入到记录数据内容的存储卡、IC卡、磁盘、磁光盘、数字多用途盘等记录媒体。该媒体DRM芯片为在GT10或100上受到保护的模块。通过这样构成,不特别装入密码·解密专用芯片,通过在计算机采用GT,从而可按与硬件TRM相同的强度保护数字内容。在图52中,作为系统控制器记载了North Bridge,作为接口记载了USB和IDE,作为串行总线记载了IEEE1394,但不限定系统构成。

另外,仅通过软件开发·追加,按与硬件TRM相同程序的强度的安全级别实现个人认证、TCPA、电子钱包、个人信息保护、可信GRID计算(TrustedGRID Computing)等。

另外,通过在PC等加载作为GT保护软件生成的电子投票软件,从而可从PC进行电子投票。另外,通过在PC等加载作为GT保护软件生成的文件管理软件,从而可构成安全文件系统。

下面,作为第7实施形式,说明在PDA和手机等移动设备的应用。

对于PC的TCPA(可信计算平台联盟(Trusted Computing PlatformAlliance))功能,在过去方式中需要另行将特别的硬件装置连接于PC,但如在PC装载GT,则仅在该PC上的软件开发即可实现该功能。

手机的终端认证功能也可同样按比过去方式强度高的安全强度实现。例如,交换手机的SIM(用户身份模块)卡的功能通过使用在安装GT的手机间交换保护数据的软件,从而更安全地实现。

即使在将GT适用到手机和PDA(个人数字助理)等移动产品的情况,不特别装入密码·解密专用芯片,也可实现硬件TRM级别的强有力的内容保护。

当然,如追加软件,则可将个人认证功能、信用卡功能、专用卡功能、个人信息保护功能等提供给手机或PDA,这些功能可按与硬件TRM同等的强度的安全级别实现。

下面,作为第8实施形式,说明在IC卡和RFID模块等的安全卡和模块的应用。

关于IC卡,在过去的方式中,每当对IC卡内的安全功能进行定制时,需要进行实施了TRM化的个别的芯片生产。而且,需要对个别的芯片按照硬件TRM评价基准进行审查。

然而,按照本实施形式,以后在GT作为软件追加应保护的安全功能,即可制作具有与硬件TRM同等级别的追加安全强度。即使关于IC卡的安全评价,仅对在GT追加的固件实施即可。

如在IC卡、RFID模块等安全卡和模块安装GT10或100,则不需要对各定制的芯片实施TRM化,仅对CPU部分实施TRM化即可。为此,不特别装入密码·解密专用芯片等即可实现硬件TRM级别的强力的媒体DRM。也可仅通过追加软件按硬件TRM级别的强力的安全实现个人认证功能、信用卡功能、专用卡功能等。

另外,在GT的寿命比CPU短的情况,也可仅更换GT的主存控制部分。GT主存控制指TRM、TLB等的部分。但是,在该情况,需要用超高速总线连接CPU与IC卡。

下面,作为第9实施形式,说明在AV设备的应用。

在将GT装载于AV设备的情况,不需要对各定制的芯片实施TRM化,仅对CPU部分实施即可。为此,不特别装入密码·解密专用芯片等即可实现具有与硬件TRM相等程度的强度的强力的DRM。另外,通过在AV设备除了GT外还追加软件,由此也可使AV设各具有个人认证、在线计费功能等。这些功能也可按与硬件TRM相同程度的强度实现。

下面,作为第10实施形式,说明在移动代理保护的应用。

GT的代理可实现按移动目标抵抗非法地完成使命的保护功能。即,GT可作为抗攻击代理相对VHTRM提供安全的移动功能。通过使移动代理抗攻击化,从而可实现与适用到在第11实施形式中说明的GRID计算时同样的安全功能。

下面,说明作为第11实施形式,说明在GRID计算的应用。

在GRID计算和网络代理中,过去存在以下问题。

1.完整性(Integrity):在GRID计算的受委托方,不能确认是否由委托的执行代码正确的CPU使用正确的数据正确地执行。为此,即使受委托方用户不论进行了什么样的非法动作,即使改写执行代码的病毒进入到受委托方的计算机,也没有确实地确认的手段。

2.机密性(Confidentiality):在计算的受委托方,存在带代码和数据泄漏和非法复制的危险。

3.计费(Accounting):在计算的受委托方,存在计费处理的非法动作和CPU利用量数据的篡改的危险,所以,需要保证计费处理和计费数据的完整性。

4.当为了解决上述问题而使用软件TRM时,处理大幅度变慢,所以,不符合重视处理速度的GRID计算的要求。而且,如具有关于计算机的特定知识,则容易破解软件TRM。

由于存在这样的问题,所以,作为GRID计算的受委托方,不能积极地利用一般的个人计算机和工作站。

然而,作为在安装了GT的CPU上运行的保护代码,通过开发在计算受委托方执行的软件,从而可实现以下内容,所以,解决了上述问题。

1.安全的CPU(GT)的认证和执行代码篡改防止保护

2.计算处理篡改防止功能

3.安全计费

4.执行代码的非法复制、非法利用的防止

5.计算被委托方的选择的最佳化

6.需要可靠性的情况可指定TRM的级别和证书生效日等。

作为第12实施形式,说明在机器人的应用。

替代人和动物的作业和动作的自律型机器人的研究和其发表很多,关于其安全性的讨论也进一步变得重要。此前仅是作为信息处理装置的计算机受到病毒等攻占的威胁,但现在需要设想物理地移动、在其某些用途方面超过人力之上的机器人可能出现同样的事态。然而,通过在机器人具有以下的机构,可解决这样的问题。

1.在机器人用的危险部件的CPU全部安装GT,装入机器人认定机关发行的证书。

2.机器人用的CPU具有仅执行可确认的代码的机构。

3.机器人用的CPU不与没有证书的CPU交换安全级别高的信息。

4.嵌入作为GT保护软件实现“杀人·伤害禁止规则”、认定机关发行的证书的私钥。

5.仅在根据规则利用“杀人·伤害禁止规则”实现软件的应用程序嵌入认定机关发行的证书的私钥。

6.使得从所有的机器人全输入处理和可能产生危害的动作处理的程序代码控制该规则引擎,对整体进行GT保护化。

7.在程序代码一定预先附加数字签名。在执行代码之前,进行签名检验,在没有执行授权的情况停止。

8.对集成软件整体进行GT保护化。

这样,可对抗使机器人凶犯化的病毒和中央控制功能篡改等。

下面,作为第13实施形式,说明在个人信息保护的应用。

当今,“.NET”这样的获得了来自众人的信赖的个人信息管理服务管理着许多个人信息,其它服务仅能获得提供自身服务所必要的个人信息和其统计信息程度。因此,这些服务为了获得营业战略上的顾客统计信息或提供广告邮件服务,需要利用特定的个人信息管理服务。这样的状况的安全上的问题如下。

1.回收个人信息的服务存在不遵守提示给服务利用者的“个人信息保护方针”的可能性。通过使用P3P(隐私优先的平台(Platform for PrivacyPreference):用于隐私控制的基础)等,即使更换了方针,也没有对其进行强制的技术。

2.在处理个人信息的服务中,存在处理个人信息的工作人员自身非法泄漏个人信息的可能性。

为了解决这些问题,按照本实施形式,在提供各服务的服务器的CPU安装GT,在其上作为GT保护代码将处理个人信息的服务器DRM软件和服务器应用程序包化。如上述那样,在GT许可中可相对执行软件的过程设定访问条件。因此,对于此前不能从外部强制访问控制的服务器也可强制应用程序操作中的访问条件。

这样,可相对一般消费者提供能够信赖的个人信息管理服务。另外,可促进个人信息向服务网站的积极的提供,进行按照利用者的要求的场所间的积极的个人信息交换,从而可使广告·营业活动和消费活动更活跃。

下面,作为第14实施形式,说明在抗病毒手段的应用。

在过去的抗病毒手段中,并用软件的数字签名检验功能和病毒检验软件。然而,在该方式中,相对最新的病毒在签名检验功能或查毒软件起动之前改写动作的执行文件的攻击无力对抗。

如为具有代码签名逐次确认功能的GT,则可对抗这样的病毒。为此,在CPU装载第2实施形式的GT,用GT保护用于安装代码检验的软件(代码和数据)。然后,在从引导程序起动查毒软件之前由GT(CPU)逐次确认代码签名。而且,在按GT的抗攻击模式执行查毒软件。查毒软件在执行各代码之前计算代码的散列,或确认签名。

这样,可破坏不能对抗新种类病毒的系统上的安全漏洞。关于代码签名检验功能已进行了说明。

这样,通过在抗病毒手段采用GT,与过去的方式相比,可实现强度非常高的抗病毒软件。

以上,说明了GT的各种各样的应用例。通过这样采用装载了GT的CPU,从而可促进受到信息安全上的威胁抑制的各种尖端信息技术在社会基础的适用。例如,可期待如下那样的产业上的技术革新。

1.使得过去由于内容保护的强度和功能问题而未能积极地提供给PC的内容积极地流入到互联网,另外,使用各种P2P(个人到个人)技术积极地促进超流通。

2.通过在利用者认证、电子钱包等的应用,仅利用一般的信息设备的购物通过追加软件即可安全实现。这样,担心通过互联网购物的利用者也可购物。销售侧也可安心地在网站放置物品进行销售,市场变宽,促进了全民办的互联网销售业务。

3.通过实现强力的个人信息保护功能,可实现安心地积极推销个人信息实现的通过互联网的广告活动和消费活动的进一步的活跃。

4.可积极地利用GRID计算,作为该GRID计算,过去害怕使用看不见、不知道的CPU,或无偿借出CPU的不公平感使得不能积极地提供计算能力。这样,一般的共享CPU的利用效率提高到10倍左右或其以上。因此,如单纯进行计算,则各计算机的处理速度与仅由本地的CPU计算时相比,平均可提高10倍左右或其以上的速度。或者,可在必要的计算中集中世界的CPU。

5.由强力的病毒对抗和模块使用费P2P计费安全促进软件部件的“超流通”和以超越网络的自律协调型分散开发为目标的“超流用(Superappropriation) ”。

6.由GT实现的安全性的保障积极地促进了强力的实用机器人在社会的渗透。

另外,将来,GT作为在任何时间任何地点由任何人都可利用的安全的通用计算处理基础,成为高可信无处不在的计算(Trusted ubiquitouscomputing)的基础设施。

以上说明了本发明的实施形式,但本发明不限于上述实施形式,可进行其它各种各样的变更。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号