本发明涉及tpm技术领域,特别是一种用于提升非x86系统应用安全性的tpm芯片及方法。
背景技术:
可信平台模块(tpm,trustedplatformmodule)是一项安全密码处理器的国际规范,旨在使用装置中整合的专用微控制器(安全硬体)处理装置中的加密密钥。tpm的技术规范由称为可信计算组织(tcg)的信息业联合体编写。国际规范化组织(iso)和国际电工委员会(iec)已于2009年将规范规范化为iso/iec11889。
tpm芯片的实现规范,最早只有英特尔自定义用于南桥芯片的lpc(lowpincount)接口,一般非x86系统很难使用。近几年,tcg组织增定非x86系统常用的spi及i2c为接口规范,从此一般的非x86的应用处理器可透过spi或i2c使用tpm芯片。具体可参见tcg技术文档1“tcg_pc_client_platform_tpm_profile_ptp_specification_family_2.0_revision_1.3.v22”。
目前虽然spi及i2c接口加入成为tpm规范,但是tpm主体仍沿用自x86系统所使用的locality概念,locality的保护及区隔必须由平台本身负完全责任,具体可参见上述技术文档1,在tpm2.0中,locality地址(localityaddress)定义参见图1所示。正常情况下只要写入tpm芯片的地址符合附图1中的定义,规范tpm芯片都会允许写入。
由上可知,单靠规范,tpm芯片自身是无法对不同的locality地址作保护和区隔。在x86系统中,locality的保护及区隔是透过pc芯片组与微软的操作系统形成配套,但是这种配套基本是不存在于非x86系统中。
参见图2所示,以spi接口的tpm芯片为例,非x86的应用处理器可直接透过spi接口与tpm芯片连接,处理器中无论是tee(trustedexecutionenvironment)的程序还是ree(richexecutionenvironment)的程序,都可以调用spi的程序,进而读写任何locality所对应的tpmspi地址,这使得tpm芯片在非x86系统中应用产生根本上的安全问题。
tpm规范中,pp管脚(physicalpresence)是用来提供acpi与操作系统及tpm固件之间的通讯机制(具体可参见文档physical-presence-interface_1-30_0-52)x86系统使用acpi,但是一般非x86系统很少使用。因此pp管脚定义在tpm的原始用途,在非x86系统使用tpm芯片时是没有用的。在英飞凌公司最新的tpm2.0芯片中,已经取消了pp管脚的原有功能(具体可参见文档infineon-tpmslb96702.0-ds-v11_15-en)。
技术实现要素:
本发明的主要目的在于克服现有技术中的上述缺陷,提出一种用于提升非x86系统应用安全性的tpm芯片及方法,通过改变tpm芯片管脚pp的用法,使得非x86系统应用安全性获得提升,同时本发明的tpm芯片兼容于标准tpm命令的芯片。
本发明采用如下技术方案:
根据本发明的第一方面,提供一种用于提升非x86系统应用安全性的tpm芯片,所述tpm芯片设置有pp管脚;所述pp管脚与外部gpio接口相连接并接受所述外部gpio接口控制,以限制非x86系统应用处理器中tee或ree对所述tpm芯片指定locality地址的写入和/或读取。
根据本发明的一个实施方式,所述外部gpio接口包括非x86系统应用处理器中tee所控制的gpio接口。
根据本发明的一个实施方式,写入和/或读取大于等于指定locality地址的条件包括:写入和/或读取地址符合tpm规范中locality的定义以及pp管脚使能;
写入和/或读取小于指定locality地址的条件包括:写入和/或读取地址符合tpm规范中locality的定义以及pp管脚非使能。
根据本发明的一个实施方式,写入和/或读取大于等于指定locality地址的条件包括:写入和/或读取地址符合tpm规范中locality的定义以及pp管脚非使能;
写入和/或读取小于指定locality地址的条件包括:写入和/或读取地址符合tpm规范中locality的定义以及pp管脚使能。
根据本发明的一个实施方式,所述tpm芯片其他管脚的定义符合tpm规范且所述tpm芯片的封装同标准tpm芯片。
根据本发明的第二方面,提供一种用于提升非x86系统应用安全性的方法,所述方法包括通过外部gpio接口使能或非使能tpm芯片的pp管脚,以限制非x86系统应用处理器中tee或ree对所述tpm芯片指定locality地址的写入和/或读取。
根据本发明的一个实施方式,所述外部gpio接口包括非x86系统应用处理器中tee所控制的gpio接口。
根据本发明的一个实施方式,写入和/或读取大于等于指定locality地址的条件包括:写入和/或读取地址符合tpm规范中locality的定义以及pp管脚使能;
写入和/或读取小于指定locality地址的条件包括:写入和/或读取地址符合tpm规范中locality的定义以及pp管脚非使能。
根据本发明的一个实施方式,写入和/或读取大于等于指定locality地址的条件包括:写入和/或读取地址符合tpm规范中locality的定义以及pp管脚非使能;
写入和/或读取小于指定locality地址的条件包括:写入和/或读取地址符合tpm规范中locality的定义以及pp管脚使能。
根据本发明的第三方面,提供一种非x86系统,所述非x86系统包括所述的用于提升非x86系统应用安全性的tpm芯片。
由上述对本发明的描述可知,与现有技术相比,本发明具有如下有益效果:
(1)本发明一种用于提升非x86系统应用安全性的tpm芯片及方法,通过改变tpm芯片管脚pp的用法,对不同的locality地址作保护和区隔,使得非x86系统应用安全性获得提升;
(2)本发明的tpm芯片其他管脚的定义符合tpm规范且所述tpm芯片的封装同标准tpm芯片,因此兼容于标准tpm命令的芯片。
上述说明仅是本发明技术方案的概述,为了能够更清楚地了解本发明的技术手段,从而可依照说明书的内容予以实施,并且为了让本发明的上述和其他目的、特征和优点能够更明显易懂,以下列举本发明的具体实施方式。
根据下文结合附图对本发明具体实施例的详细描述,本领域技术人员将会更加明了本发明的上述及其他目的、优点和特征。
附图说明
图1为tpm规范中locality地址(localityaddress)定义图;
图2为现有技术的tpm芯片与非x86系统的应用处理器通过spi接口进行通信的结构框图;
图3为本发明实施例的tpm芯片与非x86系统的应用处理器通过spi接口进行通信的结构框图。
具体实施方式
以下通过具体实施方式对本发明作进一步的描述。
根据本发明的第一方面,提供一种用于提升非x86系统应用安全性的tpm芯片,所述tpm芯片设置有pp管脚;所述pp管脚与外部gpio接口相连接并接受所述外部gpio接口控制,以限制非x86系统应用处理器中tee或ree对所述tpm芯片指定locality地址的写入和/或读取;所述外部gpio接口能够使能或非使能所述pp管脚,即将所述pp管脚设置为1或0。
参见图3所述,根据本发明的一个实施方式,所述外部gpio接口包括非x86系统应用处理器中tee所控制的gpio接口。
可以理解的是,所述外部gpio接口也可以是由其他安全环境所控制的gpio接口,只要该gpio接口能够使能或非使能所述pp管脚即可,本发明实施方式不做进一步的举例说明。
根据本发明的一个实施方式,写入和/或读取大于等于指定locality地址的条件包括:写入和/或读取地址符合tpm规范中locality的定义以及pp管脚使能;
写入和/或读取小于指定locality地址的条件包括:写入和/或读取地址符合tpm规范中locality的定义以及pp管脚非使能。
具体的,所述tpm芯片决定是否写入和/或读取大于等于localityn(n小于等于4)地址必须同时满足下列条件:
a、写入和/或读取地址符合图1中定义的localityn~locality4;
b、pp管脚使能。
所述tpm芯片决定是否写入和/或读取小于localityn(n小于等于4)地址必须同时满足下列条件:
a、写入和/或读取地址符合图1中定义的locality0~localityn-1;
b、pp管脚非使能。
具体实施时,当tee(trustedexecutionenvironment)要写入大于等于localityn的地址之前必须先透过gpio接口使pp管脚使能,待写完后立刻透过gpio接口使pp管脚非使能(失效)以避免其它ree(richexecutionenvironment)中的程序写入。本发明中,所述使能用逻辑1表示,所述非使能用逻辑0表示。
根据本发明的一个实施方式,所述tpm芯片其他管脚的定义符合tpm规范且所述tpm芯片的封装同标准tpm芯片。
所述tpm芯片仅就决定写入locality地址的条件做出修改,原标准tpm命令固件仍可沿用。此外,所述pp管脚用法虽有改动,但仍是标准tpm芯片定义的管脚,所以所述tpm芯片的封装仍与标准tpm芯片相同。
如上所述,本发明tpm芯片与标准tpm芯片的主要差别是在于决定写入locality地址的条件,如下以spi接口的tpm为例进行说明。假如locality3和locality4是要保护的locality地址,pp管脚的使能准位是逻辑1,如下说明具体实现决定写入locality地址条件的方法。
tpm的硬件会将写入的地址解析存于24位寄存器locaddr[23:0],如下以pp代表pp管脚的逻辑准位,决定写入locality3和locality4地址的条件信号分别为wen_loc3和wen_loc4,上述条件用硬件描述语言verilog分别可表示为:
wen_loc3=(locaddr[23:12]==12'hd43)&&pp;
wen_loc4=(locaddr[23:12]==12'hd44)&&pp;
相应的,决定写入locality0、locality1和locality2地址的条件信号分别为wen_loc0、wen_loc1和wen_loc2,上述条件以硬件描述语言verilog分别可表示为:
wen_loc0=(locaddr[23:12]==12'hd40)&&!pp;
wen_loc1=(locaddr[23:12]==12'hd41)&&!pp;
wen_loc2=(locaddr[23:12]==12'hd42)&&!pp。
本发明的tpm芯片依照wen_loc0~4信号进行判断,如果为逻辑1,则允许写入对应的locality地址;如果为逻辑0,则不允许写入。
可以理解的是,上述写入和/或读取大于等于指定locality地址的条件也可以是:写入和/或读取地址符合tpm规范中locality的定义以及pp管脚非使能;
写入和/或读取小于指定locality地址的条件包括:写入和/或读取地址符合tpm规范中locality的定义以及pp管脚使能。
因此,决定写入locality3和locality4地址的条件信号分别为wen_loc3和wen_loc4,上述条件用硬件描述语言verilog分别可表示为:
wen_loc3=(locaddr[23:12]==12'hd43)&&!pp;
wen_loc4=(locaddr[23:12]==12'hd44)&&!pp;
相应的,决定写入locality0、locality1和locality2地址的条件信号分别为wen_loc0、wen_loc1和wen_loc2,上述条件以硬件描述语言verilog分别可表示为:
wen_loc0=(locaddr[23:12]==12'hd40)&&pp;
wen_loc1=(locaddr[23:12]==12'hd41)&&pp;
wen_loc2=(locaddr[23:12]==12'hd42)&&pp。
尽管上述示例以tpm芯片与非x86系统的应用处理器通过spi接口进行连接进行说明,对于非x86系统,与tpm芯片进行连接的接口还可以是i2c,通过i2c接口进行通信时,locality地址的详细说明可以参考上述的tcg技术文档1,本发明实施方式不做具体说明。
根据本发明的第二方面,提供一种用于提升非x86系统应用安全性的方法,所述方法包括通过外部gpio接口使能或非使能tpm芯片的pp管脚,以限制非x86系统应用处理器中tee或ree对所述tpm芯片指定locality地址的写入和/或读取。
根据本发明的一个实施方式,所述外部gpio接口包括非x86系统应用处理器中tee所控制的gpio接口。
根据本发明的一个实施方式,写入和/或读取大于等于指定locality地址的条件包括:写入和/或读取地址符合tpm规范中locality的定义以及pp管脚使能;
写入和/或读取小于指定locality地址的条件包括:写入和/或读取地址符合tpm规范中locality的定义以及pp管脚非使能。
根据本发明的一个实施方式,写入和/或读取大于等于指定locality地址的条件包括:写入和/或读取地址符合tpm规范中locality的定义以及pp管脚非使能;
写入和/或读取小于指定locality地址的条件包括:写入和/或读取地址符合tpm规范中locality的定义以及pp管脚使能。
具体的,本方法中tpm芯片pp管脚的用途修改方式及使用方法同一种用于提升非x86系统应用安全性的tpm芯片,此处不再重复说明。
根据本发明的第三方面,提供一种非x86系统,所述非x86系统包括所述的用于提升非x86系统应用安全性的tpm芯片。
所述非x86系统包括大型机、小型机或unix服务器等。在大型机、小型机或unix服务器等非x86系统中使用本发明的tpm芯片,能够提升非x86系统应用的安全性。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
1.一种用于提升非x86系统应用安全性的tpm芯片,设置有pp管脚;其特征在于,所述tpm芯片的pp管脚与外部gpio接口相连接并接受所述外部gpio接口控制,以限制非x86系统应用处理器中tee或ree对所述tpm芯片指定locality地址的写入和/或读取。
2.根据权利要求1所述的用于提升非x86系统应用安全性的tpm芯片,其特征在于,所述外部gpio接口包括非x86系统应用处理器中tee所控制的gpio接口。
3.根据权利要求1所述的用于提升非x86系统应用安全性的tpm芯片,其特征在于,写入和/或读取大于等于指定locality地址的条件包括:写入和/或读取地址符合tpm规范中locality的定义以及pp管脚使能;
写入和/或读取小于指定locality地址的条件包括:写入和/或读取地址符合tpm规范中locality的定义以及pp管脚非使能。
4.根据权利要求1所述的用于提升非x86系统应用安全性的tpm芯片,其特征在于,写入和/或读取大于等于指定locality地址的条件包括:写入和/或读取地址符合tpm规范中locality的定义以及pp管脚非使能;
写入和/或读取小于指定locality地址的条件包括:写入和/或读取地址符合tpm规范中locality的定义以及pp管脚使能。
5.根据权利要求1所述的用于提升非x86系统应用安全性的tpm芯片,其特征在于,所述tpm芯片其他管脚的定义符合tpm规范且所述tpm芯片的封装同标准tpm芯片。
6.一种用于提升非x86系统应用安全性的方法,其特征在于,通过外部gpio接口使能或非使能tpm芯片的pp管脚,以限制非x86系统应用处理器中tee或ree对所述tpm芯片指定locality地址的写入和/或读取。
7.根据权利要求6所述的用于提升非x86系统应用安全性的方法,其特征在于,所述外部gpio接口包括非x86系统应用处理器中tee所控制的gpio接口。
8.根据权利要求6所述的用于提升非x86系统应用安全性的方法,其特征在于,写入和/或读取大于等于指定locality地址的条件包括:写入和/或读取地址符合tpm规范中locality的定义以及pp管脚使能;
写入和/或读取小于指定locality地址的条件包括:写入和/或读取地址符合tpm规范中locality的定义以及pp管脚非使能。
9.根据权利要求6所述的用于提升非x86系统应用安全性的方法,其特征在于,写入和/或读取大于等于指定locality地址的条件包括:写入和/或读取地址符合tpm规范中locality的定义以及pp管脚非使能;
写入和/或读取小于指定locality地址的条件包括:写入和/或读取地址符合tpm规范中locality的定义以及pp管脚使能。
10.一种非x86系统,所述非x86系统包括根据权利要求1至5中任意一项权利要求所述的tpm芯片。
技术总结