具有高表达能力的新型可信计算信任链的设计
龙宇 1 , 王辛 2 , 徐贤 3 , 洪璇 4     
1. 上海交通大学 计算机科学与工程系, 上海 200240;
2. 国防科技大学 计算机学院, 长沙 410073;
3. 华东理工大学 计算机科学与工程系, 上海 200237;
4. 上海师范大学 计算机系, 上海 200234
摘要:基于可信计算芯片的可信启动指从信任根开始,通过建立信任链并沿信任链逐步移交系统控制权的过程。然而,现有信任链是简单的单链结构,并不能满足用户需要。该文首先参考基于身份的层次式签名机制,提出支持多软硬件系统的多信任链方案。该方案支持树状的多启动模块预期或信任路径。其次,参考基于身份的模糊签名机制,提出了支持多种潜在信任状态的信任链方案,该方案支持存在多潜在状态的单信任路径。最后,对上述2种方案进行结合。通过对支持多软硬件系统的方案进行扩充,实现末端节点的密钥拆分,并对回退机制、TPM(trusted platform module)芯片存储等部分进行修改,最终实现了兼有前述2种新信任链的功能的第3种方案:既支持多启动模块预期,又支持多种潜在的信任状态,从而满足用户在动态决定启动模块的同时动态决定信任状态的需求。
关键词可信计算    基于身份的签名    信任链    
Highly-descriptive chain of trust in trusted computing
LONG Yu1, WANG Xin2, XU Xian3, HONG Xuan4     
1. Department of Computer Science and Engineering, Shanghai Jiao Tong University, Shanghai 200240, China;
2. State key Laboratory of Parallel and Distributed Processing, Department of Computer Science and Engineering, National University of Defense Technology, Changsha 410073, China;
3. Department of Computer Science and Engineering, East China University of Science and Technology, Shanghai 200237, China;
4. Department of Computer Science, Shanghai Normal University, Shanghai 200234, China
Abstract: The trusted boot process in trusted computing verifies the next boot module from the root of trust to establish a chain of trust. The classic chain of trust is a simple single-branch tree, but this may not satisfy complete user demands. This paper presents a multi-module chain of trust model based on HIBS (hierarchical identity-based signature) and a multi-pattern chain of trust model based on FIBS (fuzzy identity based signature) that overcome the limitations of single module expectations in a traditional chain so that the user can dynamically choose the module. The two chains of trust models are then combined to improve the results.
Key words: trusted computing     identity based signature     chain of trust    

随着计算机与网络技术的飞速发展与应用,人们在享受技术飞跃的巨大便利同时,也面临层出不穷的安全风险与危害,信息安全问题越来越受到人们的关注。保障相关信息的真实、可靠、私密与完整,使计算环境较为值得信赖,逐渐成为企业与消费者的一大需求。然而,大量的安全实践证明,脱离硬件而仅利用客户端软件并不足以实现安全。可信计算技术是在硬件支持的基础上,以预防系统内部安全威胁、保证终端可信为目标,解决计算机关键系统与软件可信性问题的一门技术[1-3]

可信计算组织TCG[4](trusted computing group)定义了可信平台模块TPM(trusted platform module)。TPM芯片是一个嵌入式安全子系统,可以完成公钥加密与签名算法、安全散列算法及安全存储加密密钥等功能。TPM芯片在本质上就是计算机系统中加入的可信第三方,这个可信第三方通过对系统进行度量与约束来保证系统的可信[3]。目前国际上广泛使用TPM 2.0标准。

在可信计算体系中,通过TPM芯片的度量与约束,可以实现安全启动。简言之,安全启动就是通过可信平台发挥相关的功能,以TPM芯片作为信任根建立一条信任链,系统的控制权沿着信任链被逐步移交。在机器的一系列启动过程之中,若任意启动模块对应的状态与预期值不匹配,则可终止机器的启动过程,计算机系统就停留在当前的可信部分之上,这样就可以保护系统免遭内部的恶意启动模块威胁,保证计算机系统中各种数据的安全性。这个过程也被称为信任链的建立过程。传统的信任链模型可以被抽象为一棵度为1的树,如图 1所示。

图 1 传统信任链模型

然而,传统信任链的定义偏于简单,仅仅能够支持“先度量验证,再加载运行”这一最基本功能,并不能支持当前日益复杂灵活的需求,影响了可信计算的进一步发展[5-9]:传统信任链结构始终是单链(即下一级可信状态为单一预期),不能解决多条信任路径(即下一级可信状态存在多种预期)的情况;传统信任链对应的模块,其启动方式(信任状态预期)也仅有一种预期,并不能支持启动模块下多种启动方式预期(多种潜在信任状态预期)的情况。

针对可信计算传统信任链的局限性,本文利用新型公钥密码技术,对传统可信计算信任链模型进行重定义,构建出具有灵活表达能力的可信计算信任链结构,以此来支持不同应用场景下的用户需求。

1 基础知识 1.1 素数阶的双线性配对

G1, G2均为阶为素数p循环群。双线性映射$\hat e $ : G1×G1G2对于任意的G1上的生成元P, P′和任意的a, bZp*满足:

1) 双线性性:$\hat e $(Pa, Pb)=$\hat e $(P, P′)ab

2) 非退化性: $\hat e $(P, P′)≠1G2,其中1G2G2的单位元。

1.2 基于身份的签名

Shamir等[10]首先提出了基于身份的公钥密码的思想并提出了第一个基于身份的签名,随后又出现了多个高效的方案[11]。在基于身份的体制下,用户的公钥可以由用户的身份ID公开计算得到。一个常见的基于身份的签名体制通常包括如下算法。

1) 初始化算法:由可信任的第三方私钥生成机构(private key generator,PKG)运行, 得到系统公开参数以及PKG的私钥。

2) 用户私钥生成算法:由PKG运行, 根据用户的ID,生成用户的签名私钥,并返回给用户。

3) 签名算法:由用户运行, 用户利用签名私钥生成对消息的签名。

4) 验证算法:由验证者执行, 验证者利用签名人的ID来验证对消息的签名的有效性。

基于身份的签名存在多种变体,如基于身份的层次式签名[12](hierarchical identity based signature, HIBS)和基于身份的模糊签名[13-14](fuzzy identity based signature, FIBS)。HIBS中支持树形的签名私钥生成结构,FIBS中支持对签名的模糊验证。

特别地,基于身份的高效数字签名算法大多使用基于双线性映射的配对密码[11], 而配对密码往往被认为效率相对较低, 但在TPM 2.0[15-16]中,已经纳入了基于椭圆曲线的多个算法。此外,近期有文[17]指出TPM 2.0可有效实现两类直接匿名认证(direct anonymous attestation,DAA)算法[18-19]。事实上文[19]来源于文[20], 而文[18]和[20]都是基于配对的密码算法。因此,在TPM 2.0环境下,在理论和实践中均可以合理地认为存在配对密码的有效实现。

2 支持多软硬件系统的多信任链

传统的信任链结构始终是单链,这意味着开机启动时,启动序列预期就已存在且单一不变。然而,实际中却存在类似同时拥有Windows和Ubuntu 2个操作系统,且各个操作系统下也有若干软件的情形。若使用传统信任链模型,需要在启动前修改启动序列预期。这既不方便,更无法支持用户动态决定启动模块的情形。利用基于身份的层次式签名,结合可信平台自身特点,本文将传统的单链预期扩展为树状结构,支持2个甚至多个预期,进而支持启动时用户的动态决定。

2.1 方案构想及图示

图 2为方案图示。其中RTM代表信任根,大写字母加数字代表信任根上所支持的不同软硬件系统。本方案支持从RTM到任一叶子节点建立信任链路,并支持具有公共路径的2条信任链路的回退。

图 2 支持多软硬件系统的多信任链模型

图中弯线箭头表示假设计算机已建立信任链RTM→A1B1C1D1之后,用户希望建立RTM→A1B1C2D3。则本方案支持直接回退到B1,再选择C2D3,不需要从RTM重新开始执行信任链的构建。

类比HIBE中的符号,下面将信任链上的单个软硬件的身份(identity)记为IDi;将信任路径从信任根到当前正在被验证签名的模块的有序节点序列(路径树)记为ID tuple, 如ID tuple=(IDA1, IDB1, IDC1, IDD1)代表图 2中从A1D1的路径。在加载模块之前,验证方首先查启动序列(即ID tuple)是否符合预期。使用Qi代表IDi节点对应的验证密钥,并用(IDi, Qi)的映射表形式进行保存,以供给验证根据IDi读出Qi

2.2 方案设计 2.2.1 TPM芯片的出厂设置

1) 群G1, G2,其阶数均为质数q

2) G1的任意生成元(generator)P0G1G1的单位元(identity element)S0

3) 随机选择的s0Zq*,计算Q0=s0P0

4) 映射H1, H2: {0, 1}*G1

5) 双线性映射:$\hat e $ : G1×G1G2

s0不可见,其余信息params={G1, G2, S0, $\hat e $, q, P0, Q0, H1, H2}均公开可见。

2.2.2 验证方的数据准备

验证方拥有启动路径树,并能读取映射表。

以下假设已经建立ID tuple=(ID1, ID2, …, IDy),用户选择IDx模块的情景。注意IDx不一定是IDy的下级,这种情况下为方便描述,假设IDx是已有ID tuple路径之上的某节点的兄弟节点。

2.2.3 TPM芯片的回退检查

1) TPM芯片检查IDx是否已经在ID tuple中,若在则取消此次验证过程;

2) TPM芯片将IDx发给验证方;

3) 验证方检查路径树:

a) 若IDx不在路径树中,则验证不通过;

b) 若IDx在路径树中,验证方将从根RTM到IDx的启动路径发给TPM芯片。

4) TPM芯片将接收到的路径与当前信任链比对,保存公共部分ID1, ID2, …, IDt-1,令IDt=IDx,更新并保存ID tuple=(ID1, ID2, …, IDt),公开可见。

2.2.4 TPM芯片密钥生成

首先根据IDt查密钥映射表,若存在密钥信息则跳过本阶段直接签名。

1) 上级密钥读密钥映射表可得;

2) 为第t级目标启动模块任意选定stZq*

3) 计算Pt=H1(ID1, ID2, …, IDt)∈G1

4) 计算St=St-1+st-1PtQt=stP0

5) 将IDtQt存入密钥映射表;

6) 预保存Stst,对外不可见;在TPM芯片收到验证方验证通过的回复后,它们将正式保存并替代之前保存的St-1st-1

2.2.5 TPM芯片的签名生成

1) TPM读取PCR测量值M

2) 计算PM=H2(ID1, ID2, …, IDt, M)∈G1

3) 计算Sig=St+stPM

4) 发送签名Sig。

2.2.6 验证方进行验证

1) 验证方读取TPM芯片ID tuple并查路径树,验证是否符合预期。若不符,则不能通过验证并回复TPM芯片;

2) 若符合预期,则验证方根据SML与ID tuple计算出PCR预期值M′;

3) 计算PM=H2(ID1, ID2, …, IDt, M′)∈G1

4) 使用式(1)验证,若成立则通过验证并回复TPM芯片;若不成立则拒绝并回复TPM芯片:

$ \begin{array}{l} \hat e({P_0}, {\rm{Sig}}) = \hat e({Q_0}, {P_1}) \times \\ \hat e({Q_t}, {P_{M'}})\mathop \Pi \limits_{i = 2}^t \hat e({Q_{i - 1}}, {P_i}); \end{array} $ (1)

5) TPM芯片根据验证方的回复确定信息取舍:若验证通过,保留密钥映射表中新添加的密钥信息与当前IDt,下次验证时ID1, ID2, …, IDt即为前述ID1, ID2, …, IDy;若验证不通过,则删去密钥映射表新的密钥信息,也不保存IDt,下次验证时ID1, ID2, …, IDt-1即为前述ID1, ID2, …, IDy

2.3 方案分析 2.3.1 正确性与安全性

方案的正确性与安全性分析均与HIBS方案一致。

2.3.2 效率分析

此方案可支持多软硬件系统所构成的树状信任链结构。由于有回退机制,用户可选的启动模块范围不仅包括图 2中的叶节点,还包括由当前链中的所有节点为父节点的全部路径,支持从当前信任链任意途径节点开始的信任传递。对于TPM芯片而言,主要的代价增加来源于密钥映射表。事实上,若取消回退机制(其他机制保持不变),即可大大降低该存储负担。实际使用可依据场景给予取舍。

3 支持多种潜在信任状态的信任链

传统信任链中的另一个问题是一种信任状态对应唯一一种启动方式。无法满足某一启动状态存在多种潜在信任态的场景:如要求系统包括某操作系统的一系列补丁中的一个或几个即可启动。另一方面,基于身份的模糊签名可应用于模糊签名验证之中。通过将FIBS应用到可信计算中,本文提出了支持多潜在信任态的信任链模型及方案。

3.1 方案构想及图示

类似节2.1,将此场景抽象为图 3

图 3 支持多种潜在信态的信任链模型

图 3中,启动模块B拥有3个启动项,分别是B1B2B3,且门限要求是2。用户在B启动前需要选择至少包含其中2项启动项作为信任状态。因此对于模块B,共有C32+C33=4种符合预期的潜在信任状态。事实上本文的方案支持ABC及后继结点均存在多个潜在状态的情形。用符号ω表示启动含有多种潜在信任状态的模块的当前启动项。

3.2 方案设计 3.2.1 TPM芯片的出厂设置

传统信任链进行签名所使用的AIK密钥仍需携带,此外需要额外携带的参数有:

1) 群G1, G2,阶数均为质数q

2) G1的任意生成元PG1

3) 随机选择sZq*,令Q=sP

4) 映射H: {0, 1}*×G2Zq*

5) 双线性映射$ \hat e$ : G1×G1G2

TPM芯片出厂设置对应原FIBS算法的Setup阶段。其中s不可见,其余params={G1, G2, $ \hat e$, q, P, Q, H}公开可见保存。

3.2.2 验证方的数据准备

本阶段只引入2个表格。

1) “门限表”:将所有启动模块ID映射到启动所需最低启动项数目d,ID与d在启动模块安装或升级时添加进表, d=1表示该点退化为传统单点。验证方与TPM芯片均可读取该表。

2) “集合表”:将d>1的启动模块ID映射到该模块对应所有预期的启动项集合η=(ηi)i=1n。该表在各模块进行安装或升级时进行更新。集合元素由启动项进行编码生成,也可直接采用补丁的版本编号;n′表示所有预期的启动项数目,必大于等于d。该表仅验证方持有与使用。

3.2.3 TPM芯片的密钥生成

首先TPM芯片获取待启动模块的ID,通过查询门限表来确定d。启动信息包括ID与用户选定的启动项组成的集合ω=(ωi)i=1nωi即为各个启动项对应的编码数值。n表示数目,与某次启动有关。具体流程为:

1) 生成Zq*上的d-1维多项式p(x),p(0)=s(若d=1,则退化为一般的基于身份的签名);

2) 计算Di=p(ωi) PG1, i=1, 2, …, n

3.2.4 TPM芯片的签名生成

本阶段对应原算法Signature,具体流程为:

1) TPM读取PCR测量值M

2) 任选tZq*,计算r= $ \hat e$(P, P)tG2h=H(M, r)∈Zq*

3) 生成Zq*上的d-1维多项式f(x),且f(0)=t

4) 计算Vi=f(ωi)P+hDi, i=1, 2, …, n并组成V=(Vi)i=1n

5) 发送签名σ={ID, ω, r, V}。

由于没有修改单链结构,验证通过后不会重新验证,故TPM不需额外保存任何数据。

注意密钥生成与签名生成基于的身份信息是ω而非ID,ID仅供读取dη时使用。

3.2.5 验证方进行验证

本阶段对应原算法Verification。与节2方案不同,本方案不需验证ID是否符合预期。

1) 依据模块ID查询集合表拿出η集合,查询门限表拿出对应d值;

2) 若|ωη|<d,则不符合门限条件,验证不通过;若|ωη|≥d,则选择ωηd个元素组成集合S

3) 借助SML通过ID与ωη计算出PCR预期值M′,计算h′=H(M′, r);

4) 若式(2)成立则通过验证,可以启动模块与ωη对应的启动项:

$ \mathop \Pi \limits_{{\omega _i} \in S} \hat e{({V_i}, P)^{^\Delta {\omega _i}, {S^{(0)}}}} = r\hat e(P, Q)h'. $ (2)

其中Δωi, S(0)即Lagrange多项式插值[21],给定集合S并指定ωi点即可求出。

3.3 方案分析 3.3.1 正确性与安全性

方案的正确性与安全性分析均与FIBS方案一致。

3.3.2 效率分析

与节2的方案不同,本方案中TPM芯片只需要保留出厂数据,因此存储量相对于传统信任链模型而言没有增加。在某启动模块含有较多个潜在启动项时,由于dn较大,会增加TPM的运算代价。但若信任链中大多节点为单点(仅一个潜在启动项的启动模块),则这些节点处的运算代价并没有增加。另外值得注意的是,若某启动模块包含TPM预期之外的启动项,并不会影响TPM的验证结果。

4 支持多软硬件系统与多潜在信态的新信任链

在节2和3中分别基于HIBS和FIBS,针对支持多软件系统与多潜在信任态的新型信任链进行了设计。本节则将2种信任链模型进行结合。

4.1 方案构想及图示

上文所述的2种新型信任链都有各自的应用场景,而针对存在多个软硬件模块的预期,且各个模块又有各自的启动项和门限需求的场景,需要同时借助2个方案的特点。图 4给出了存在此需求的一棵路径树示例,其中B1C1C2节点都存在多个潜在信任状态。

图 4 预期路径树及各自复合节点结构

然而,实现图 4的结构并不容易。这是因为HIBS算法与FIBS算法之间存在差异。HIBS将ID视作字符串,签名与验证使用的ID必须完全一致;FIBS将ID视作集合,允许签名与验证使用的ID有一定区别。因此2个方案并不能平凡的融合。但是在本文的系统中,由于节3的方案中启动的身份信息是两部分:标识启动模块的字符串ID与表征启动方式集合ω, 由于前者并没有参与方案的密钥生成,且仍是字符串,故而复合节点仍拥有表征整体的字符串ID,可以加入到支持多软硬件系统多信任链中,进而同时使用ID与ω进行密钥生成。

4.2 方案设计

启动信息引入了ω,故TPM芯片ID tuple被扩展为ID tuple=(ID1 ω1, ID2 ω2, …, IDt-1 ωt-1, IDtωt)的形式,以此表征既存信任链。回退检查阶段的比对要同时比对ID与ω。若目标模块与当前链中某点ID相同而ω不同,就视作启动方式变化了,需要重新度量验证。同时TPM芯片ID tuple中ω表征被用户选择且预期内启动项的集合,即已排除不符合预期的项。

4.2.1 TPM芯片的出厂设置

1) 群G1, G2,阶数均为质数q

2) G1的任意生成元P0G1G1的单位元S0

3) s0Zq*,令QZq*0=s0P0

4) 2个映射H1, H2: {0, 1}*G1

5) 双线性映射$ \hat e$: G1×G1G2

s0不可见,其余信息params={G1, G2, S0, $ \hat e$, q, P0, Q0, H1, H2}均公开可见保存。

4.2.2 验证方的数据准备

路径树、集合表、门限表,均应该保留且仅供验证方持有或读取。与节3不同,门限表不再为TPM芯片可读,TPM芯片在回退阶段交互获得d值。

假设已建立信任链ID1 ω1, ID2 ω2, …, IDy ωy,对i∈{1, 2, …, y},di=1时ωi取空集$\mathit{\emptyset} $。若用户选择IDx模块,且选择的启动项组成集合${\omega _x} = ({\omega _{x, {\rm{ }}j}})_{j = 1}^{{n_x}} $nx表示选择启动项的数目,各启动项用下标1, 2, …, nx标识, 进行以下过程。

4.2.3 TPM芯片的回退检查

1) TPM芯片检查IDxωx是否已经在ID tuple中:

若IDx存在且ωx一致,取消本次验证过程;

若IDx存在但不一致或IDx不在当前链中,则继续;

2) TPM芯片将IDx发给验证方;

3) 验证方检查路径树:

若IDx不在路径树中,则验证失败并回复TPM芯片;

若IDx在路径树中,验证方将从根RTM到IDx父级的启动链以及查询门限表得出的dx都发给TPM芯片;

4) TPM芯片接收到dx与启动链,将此链与当前信任链比对,保存公共部分ID1ω1, ID2ω2, …, IDt-1ωt-1。令IDt=IDxωt=ωxdt=dx,更新保存ID tuple=(ID1ω1, ID2ω2, …, IDt-1ωt-1, IDtωt),公开可见。

回退阶段首先要排除用户选定当前链中模块的情形,在本方案中,IDx存在且ωt集合也相同时才取消签名验证;若集合不同,说明用户选择另一种启动方式并要求重启该模块,回退时要丢弃本模块及以下所有节点。而为了能够丢弃本模块可信性,只需将验证方发回的启动链更改为从RTM到IDx父级为止即可。

注意此时ID tuple中最后一项IDtωt,集合ωt包括用户选定的所有启动项,而不是如ω1, ω2, …, ωt-1一样是用户选定的预期启动项。

4.2.4 TPM芯片的密钥生成

1) 为第t级目标启动模块任意选定stZq*

2) Pt=H1(ID1, ID2, …, IDt)∈G1

3) 生成St=St-1+st-1PtQt=stP0, stSt不可见,Qt可见,保存在密钥映射表中。

密钥生成阶段保存的密钥信息在验证不通过时要删除。

4.2.5 TPM芯片的签名生成

1) TPM芯片读出PCR测量值M

2) PM=H2(ID1, ID2, …, IDt, M)∈G1

3) 若dt=1则发送签名Sig=St+stPMQt

dt≥2则生成dt-1维多项式pt(x),系数均取自{1, 2, …, q-1 }且pt(0)=st,生成新点Vt, j=p(ωt, j)P0, ωt, jωt并组成Vt=(Vt, j)j=1nt,发送签名Sig=St+stPMVt

本方案禁止验证方从TPM芯片读取目标模块的Qt。故而dt=1时需要TPM芯片发送Qt;若dt≥2则拆分Qt并发送Vt,验证方需要先恢复出Qt点。而对于其各级祖先,则无论是否是复合节点,都不必拆分Q点,验证方都可以直接读取。回退阶段保证了各级祖先的可信,故不必验证它们的门限要求,也不用拆分相应密钥。

本阶段只考察本阶段门限,前驱模块由之前的阶段负责。

4.2.6 验证方进行验证

1) 验证方读取TPM芯片ID tuple中各级ID并查询路径树,若路径不符合预期则不通过验证并回复TPM芯片;

2) 若符合预期,则依据IDt查询门限表得到dt

a) 若dt=1,借助SML根据ID1ω1, ID2ω2, …, IDt-1ωt-1, IDtωt计算PCR预期值M′,之后计算PM= H2(ID1, ID2, …, IDt, M′)∈G1,使用式(3)计算;

$ C = \left\{ \begin{array}{l} \hat e({Q_t}, {P_{M'}}), \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;{d_t} = 1;\\ \mathop \Pi \limits_{{\omega _t}, j \in T} \hat e{({V_{t, j}}, PM')^\Delta }^{_{{\omega _{t, j}}}, T(0)}, \;\;\;\;{d_t} \ge 2. \end{array} \right. $ (3)

b) 若dt≥ 2,则依据IDt查询集合表拿出ηt集合,同时读出ωt

ⅰ)若|ωtηt|<dt,则不符合门限条件,验证不通过并回复TPM芯片;

ⅱ)若|ωtηt|≥dt,则选择ωtηtdt个元素组成集合T,借助SML根据ID1ω1, ID2ω2, …, IDt-1ωt-1, IDtωtηt计算PCR理论值M′,计算PM=H2(ID1, ID2, …, IDt, M′)∈G1,并使用式(3)计算;

3) 检验式(4)是否成立,若不成立则回复TPM芯片不通过,若成立则回复给TPM芯片肯定答复与ωtηt集合,加载启动该模块以及ωtηt中的启动项。

$ \hat e({P_0}, {\rm{Sig}}) = C\hat e({Q_0}, {P_1})\mathop \Pi \limits_{i = 2}^t \hat e({Q_{i - 1}}, {P_i}). $ (4)

4) TPM芯片根据验证方的回复确定信息取舍:若不通过则删去密钥映射表新的密钥信息与IDtωt,下次验证时ID1ω1, ID2ω2, …, IDt-1ωt-1即为回退检查阶段的ID1ω1, ID2ω2, …, IDyωy;若验证通过,则保留密钥映射表中新的密钥信息与ID tuple中的IDt,用ωtηt替代ωt,下次验证时ID1ω1, ID2ω2, …, IDtωtηt即为回退检查阶段的ID1ω1, ID2ω2, …, IDyωy

4.3 方案分析 4.3.1 正确性与安全性

以下对公式(3)与(4)的合理性进行推导。

在式(3)中,集合T与点PM已由计算得出,VtQt从TPM芯片接收(不是读取),ωt, jT中使用的下标j即为ωt集合中的元素下标,这样才能按序对应查找到Vt, j点;而在式(4)中,Sig从TPM芯片接收,各级ID与P0可从TPM芯片读取,Pi, i∈{1, 2, …, t}可用映射H1计算得出,Qi, i∈{0, 1, 2, …, t-1}从TPM芯片读取,故而公式中全部参数均可得到。

dt=1,则将公式(3)代入式(4)得出的验证式与公式(1)完全一致:

$ \hat e({P_0}, {\rm{Sig}}) = \hat e({Q_0}, {P_1})\hat e({Q_t}, {P_{M'}})\mathop \Pi \limits_{i = 2}^t \hat e({Q_{i - 1}}, {P_i}). $

dt≥1,则对公式(3)进行变形(T集合元素个数至少为d, 故Lagrange插值法可用):

$ \begin{align} & C=\underset{{{\omega }_{t}},j\in T}{\mathop{\Pi }}\,\hat{e}{{\left( {{V}_{t,j}},{{P}_{{{M}'}}} \right)}^{\Delta }}^{_{{{\omega }_{t,j}}},T(0)}= \\ & \underset{{{\omega }_{t}},j\in T}{\mathop{\Pi }}\,\hat{e}{{(p({{\omega }_{t,j}}){{P}_{0}},{{P}_{{{M}'}}})}^{\Delta }}^{_{{{\omega }_{t,j}}},T(0)}= \\ & \underset{{{\omega }_{t}},j\in T}{\mathop{\Pi }}\,\hat{e}{{({{P}_{0}},{{P}_{{{M}'}}})}^{p({{\omega }_{t,j}})}}{{^{\Delta }}^{_{{{\omega }_{t,j}}},T(0)}}= \\ & \hat{e}({{P}_{0}},{{P}_{{{M}'}}})\sum\limits_{{{\omega }_{t}},j\in T}{{{^{p({{\omega }_{t,j}})}}^{\Delta }}^{_{{{\omega }_{t,j}}},T(0)}}= \\ & \hat{e}{{({{P}_{0}},{{P}_{{{M}'}}})}^{p\left( 0 \right)}}=\hat{e}\left( p\left( 0 \right){{P}_{0}},{{P}_{{{M}'}}} \right)=\hat{e}({{Q}_{t}},{{P}_{{{M}'}}}). \\ \end{align} $ (5)

将式(5)代入式(4)中,同样会得出式(1),故而式(3)和(4)可用于签名验证。

4.3.2 效率分析

该方案通过对支持多软硬件系统的多信任链完整方案进行扩充,主要增加了在签名阶段对末端节点的Q点进行拆分的情况,并对回退机制、TPM芯片存储等方面也略作修改,保留了完整方案功能性质,增强了信任链的功能。最终在从当前信任链任意途径节点开始信任传递的基础上,增加了对各个启动模块多种潜在启动方式预期的支持。

本方案整合了前述2种信任链的功能,所得的信任链具有最强的表达能力,但实现代价也最高。验证方将持有路径树、门限表、集合表 3个表,且若节点多为复合节点则集合表会较大。TPM芯片ID tuple项增加了项目集合的保存,其存储代价也将较大。整体来说,对于验证方与TPM芯片,其存储代价都有所增加。与此同时,本方案与节2方案相比,也需要额外交互开销与计算开销,后者的代价主要来自于启动项集合的比对与维护,还有拆分节点。降低整体信任链的复杂性,尤其是降低启动项带来的复杂性,将会减轻方案的实现代价。

5 结论

本文针对传统可信计算信任链结构过于简单的问题,首先提出了2种不同的扩展应用情景,并借助相应算法提出2种不同功能的新型信任链,并进一步将这2种新信任链进行结合,得出同时整合2种功能、可适用于更为复杂应用情景的信任链方案。本文所得的3种新型信任链模型相对于传统信任链模型而言具有更强的表达能力,极大拓展了可信计算信任链所支持的信任策略。本文中所有方案均为基于配对的公钥算法。目前TPM芯片2.0中已经支持多个基于椭圆曲线的公钥算法。结合基于配对密码的研究进展,可合理假设本文中所涉及的签名算法可以在TPM 2.0芯片中予以实现。因此,此工作可视为对可信计算理论的核心算法的前瞻性研究。

参考文献
[1] PEARSON S. Trusted computing platforms, the next security solution[M]. London, England: HP Labs, 2002.
[2] 张焕国, 刘玉珍, 余发江, 等. 一种新型嵌入式安全模块[J]. 武汉大学学报:理学版, 2004, 50(A01): 7–11.
ZHANG H G, LIU Y Z, YU F J, et al. A new type of embedded secure module[J]. Journal of Wuhan University (Natural Science Edition), 2004, 50(A01): 7–11. (in Chinese)
[3] 李子臣. 移动互联网时代信息安全新技术展望[J]. 信息通信技术, 2012(6): 75–80.
LI Z C. The new techniques of information security in mobile network[J]. Journal of Information and Communication, 2012(6): 75–80. (in Chinese)
[4] Trusted Computing Group. TCG software stack (TSS) specification, version 1. 2[Z/OL]. (2005-02-01). https://www.trustedcomputinggroup.org/.
[5] 秦中元, 胡爱群. 可信计算系统及其研究现状[J]. 计算机工程, 2006, 32(14): 111–113.
QIN Z Y, HU A Q. Trusted computing system and its current research[J]. Computer Engineering, 2006, 32(14): 111–113. DOI:10.3969/j.issn.1000-3428.2006.14.041 (in Chinese)
[6] CHALLENER D, YODER K, CATHERMAN R, et al. A practical guide to trusted computing[M]. London, UK: Pearson Education, 2007.
[7] 沈昌祥, 张焕国, 冯登国, 等. 信息安全综述[J]. 中国科学E辑:信息科学, 2007, 37(2): 129–150.
SHEN C X, ZHANG H G, FENG D G, et al. The summarization of information security[J]. Science China Ser E:Information Sciences, 2007, 37(2): 129–150. (in Chinese)
[8] 刘宏伟, 朱广志. 可信计算平台认证机制研究[J]. 计算机工程, 2006, 32(24): 149–151.
LIU H W, ZHU G Z. Research on attestation scheme of trusted computation platform[J]. Computer Engineering, 2006, 32(24): 149–151. (in Chinese)
[9] 张旻晋, 桂文明, 苏涤生, 等. 从终端到网络的可信计算技术[J]. 信息技术快报, 2006, 4(2): 21–34.
ZHANG M J, GUI W M, SU D S, et al. The trusted computing techniques from end to network[J]. Information Technology Letter, 2006, 4(2): 21–34. (in Chinese)
[10] SHAMIR A. Identity-based cryptosystems and signature schemes[C]//Advances in Cryptology-CRYPTO 1984. Santa Barbara, CA, USA: Springer Berlin Heidelberg, 1985: 47-53.
[11] BONEH D, FRANKLIN M. Identity-based encryption from the Weil pairing[C]//Advances in Cryptology-CRYPTO 2001. Santa Barbara, CA, USA: Springer Berlin Heidelberg, 2001: 213-229.
[12] GENTRY C, SILVERBERG A. Hierarchical ID-based cryptography[C]//Advances in Cryptology-ASIACRYPT 2002. Queenstown, NZ, USA: Springer Berlin Heidelberg, 2002: 548-566.
[13] SAHAI A, WATERS B. Fuzzy identity-based encryption[C]//Advances in Cryptology-EUROCRYPT 2005. Arhus, DK, USA: Springer Berlin Heidelberg, 2005: 457-473.
[14] WANG C J. A provable secure fuzzy identity based signature scheme[J]. Science China Information Sciences, 2012, 55(9): 2139–2148. DOI:10.1007/s11432-011-4454-x
[15] Trusted Computing Group[Z]. TCG TPM library 2. 0, 2014. (2014-10-01). http://www.trustedcomputinggroup.org/tpm-library-specification/.
[16] CAMENISCH J, CHEN L Q, DRIJVERS M, et al. One tpm to bind them all: Fixing tpm2. 0 for provably secure anonymous attestation[C]//38th IEEE Symposium on Security and Privacy. San Jose, CA, USA: IEEE, 2017: 901-920.
[17] CHEN L Q, LI J. Flexible and scalable digital signatures in tpm 2. 0[C]//Proceedings of the 2013 ACMACM Sigsac Conference on Computer and Communications Security. Berlin, Germany: ACM, 2013: 37-48.
[18] BRICKELL E, LI J T. A pairing-based daa scheme further reducing TPM resources[C]//Proceedings of the 3rd International Conference on Trust and Trustworthy Computing. Berlin, Germany: Springer Berlin Heidelberg, 2010: 181-195.
[19] CHEN L Q, DAN P, SMART P. On the design and implementation of an efficient DAA scheme[C]//Proceedings of the 9th Smart Card Research and Advanced Application IFIP Conference. Passau, Germany: Springer Berlin Heidelberg, 2010: 223-237.
[20] CAMENISCH J, LYSYANSKAYA A. Signature schemes and anonymous credentials from bilinear maps[C]//Advances in Cryptology|CRYPTO'04. Santa Barbara, CA, USA: Springer Berlin Heidelberg, 2004: 56-72.
[21] SHAMIR A. How to share a secret[J]. Communications of the ACM, 1979, 22(11): 612–613. DOI:10.1145/359168.359176