首页>参考读物>计算机科学与技术>安全

TPM 2.0原理及应用指南——新安全时代的可信平台模块
作者 : [美] 威尔·亚瑟(Will Arthur)大卫·查林纳(David Challener) 著
译者 : 王鹃 余发江 严飞 张立强 石源 等译张焕国 李彦 赵波 等审校
出版日期 : 2017-10-09
ISBN : 978-7-111-58201-4
定价 : 79.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 300
开本 : 16
原书名 : A Practical Guide to TPM 2.0:Using the Trusted Platform Module in the New Age of Security
原出版社: Apress
属性分类: 店面
包含CD :
绝版 : 未绝版
图书简介

图书特色

本书主要介绍TPM的使用方法和工作原理,并通过一些用例来描述TPM 2.0的主要功能,涵盖TPM 2.0新特性以及使用TPM 2.0构建安全解决方案的过程。此外,书中还介绍了可信软件栈TSS 2.0,并提供了通过TSS调用各类功能的代码范例。

非专业读者可着重关注介绍TPM的章节,包括TPM的历史、基础安全概念以及现有的TPM应用程序。
工程管理人员、安全架构师、应用程序开发人员等可以根据自己的需求和技术专长,结合本书对TPM进行深度研究。专业读者需要从高层次的角度了解TPM,并着重研究TPM的用例。

技术规范通常是难于理解的用户手册,TPM 2.0规范也不例外。
本书旨在对TPM 2.0规范进行深度解读,让开发人员更好地理解该规范,尤其是那些需要了解底层细节的开发人员。

随着2013年秋季提交给美国总统的网络安全报告中指出TPM芯片应该广泛应用于计算设备中,加上TPM 2.0标准的颁布,一股新的TPM热潮正在席卷而来。
本书旨在向开发人员、安全架构师、工程管理人员以及普通用户普及TPM 2.0知识。书中通过图表、底层代码示例以及高级用例阐述了安全知识和TPM的功能,意在激励广大开发人员使用TPM来解决当前的安全威胁,并让大众了解TPM 2.0。

本书内容:
TPM的历史以及为什么需要TPM 2.0
基本安全知识和原理
TPM 2.0架构的详细介绍和用例
TPM应用程序开发选项和调试技巧
主流平台技术,如Intel TXT、ARM TrustZone和AMD安全技术

图书前言

“太有创造力了!”
“这本书太吸引人了!在读完最后一页之前我实在没法放下它。”
“我读得精疲力尽,连续三晚上熬夜看这本书,我的安眠药呢?”
“书里的悬念太折磨人了,我必须得把它们读完!”
如果你读完本书有上述评价,那么我们会非常高兴。然而对于任何一本数字安全方面的书籍,能够得到上述评价都会令人怀疑。数字安全相当于计算机的灾害保险。很少有人会关注它,并且人们通常不喜欢为它花钱直到灾难真的发生。到了那个时候,人们才会庆幸做好了准备或是为没有防范而难受。
也许,我们听上去像不停地叫着“天塌啦,天塌啦”的“四眼仔”,但是请一定要记住我们的话:数字安全的灾难正在降临。我们可以举出一大堆数据来证明数字安全威胁正在不断增加,但是也许你已经听过这些,并且,实话实说,你毫不在乎,至少是不够在乎。估计在这样的灾难对你个人产生影响之前,任何形式的说教都不能引起你的关注。
当你的声誉受到损害,财务受到影响,身份被盗,身体健康受到威胁,贵公司的声誉和财务受到损害时,你才意识到网络安全的重要性,但是那时可能已经太晚了。就像生活在洪泛区的人们,对于他们来说,洪水是否来临已经不是问题,关键在于灾难来临时,是否准备好了如何应对。而现在正是购买数字安全保险的时候!不要等到洪水来袭。
本书可以作为数字安全保险策略的一部分。TPM被设计为数字安全解决方案的核心构件之一。在2013年11月给美国总统的“立即加强国家网络安全”的报告中建议“普及采用一个能够提供基本安全功能并遵循工业标准的微芯片(Trusted Platform Module,TPM),该芯片可以为手机和计算机提供加解密的基本安全功能。嵌入了TPM芯片的计算机和设备能够创建加密密钥并进行加密,并且只能由TPM进行解密。TPM提供了高级网络安全所需要的有限但基本的功能。今天许多笔记本电脑和台式机中都具有TPM芯片。这些芯片被企业用于安全磁盘加密等任务,但它们尚未在智能手机、游戏机、电视机、车载计算机系统以及其他计算机设备和工业控制系统中大量应用。而这些系统需要使用TPM,因为这些设备将会成为日益互联的设备生态系统的组成部分。”
本书的目的是鼓励年轻一代IT经理、安全架构师、系统程序员、应用程序开发人员和一般用户使用TPM作为越来越复杂的安全问题解决方案的基石,从而阻止针对个人及其雇主、国家机构的信息安全威胁的进一步加剧。同时,TPM也是一个很酷的工具。有很多工程师像孩子一样利用TPM玩着简单的加密技术。这种向朋友发送加密消息的能力很吸引人,正如人们年轻的时候被间谍游戏吸引一样。并且,除了乐趣之外,TPM的另一个吸引人之处在于可以利用它来保护自己的私有数字财产不被侵犯。
TPM 2.0技术可以实现上述这些目标。我们相信这项技术,并希望读者也成为TPM 2.0的拥护者。希望你也会对这项技术感到兴奋,并且正如英特尔的创始人之一Robert Noyce 所说的:“利用它去做一些更棒的事。”
为什么选择这本书
技术规范通常是很差的用户手册,TPM 2.0规范也不例外。一位技术规范的读者甚至认为它是“因难于理解而安全”的。
尽管规范企图尽可能清楚地描述功能,但其主要目标是描述TPM应如何工作,而不是如何使用它。它是针对TPM的实现者编写的,而不是为使用TPM的应用程序开发者。
另外,不管怎样,TPM指令的详细操作是用C语言源码描述的。在C语言中数据结构使用各种关键字和修饰符来定义,这些关键字和修饰符允许将Word文档解析成C的头文件。 Microsoft与TCG对规范中的源码颁发了开源许可证,这些源代码可用于实现TPM。 尽管C语言可以非常准确地描述操作行为,但代码的可读性总是比文本差。本书的主要目的之一就是对规范进行解读,让开发人员能更好地理解,尤其是那些需要了解规范的底层细节的开发人员。
许多读者不需要了解TPM的详细操作,他们只是想知道如何使用TPM的各种功能,以便利用这些功能开发新的安全应用。这些读者希望TCG软件栈(TCG Software Stack,TSS)可以隐藏底层的处理细节。因此,本书主要介绍如何使用TPM,以及TPM的工作原理。在本书中,TPM的特性会通过一些用例来描述。这些用例虽然不是非常全面,但它们描述了TPM 2.0规范中主要的功能。TPM 2.0 规范的内容非常丰富,除了这些用例之外,还可以用来实现一些其他的功能。
本书读者对象
在撰写本书时,我们想要努力吸引众多的读者群体:底层嵌入式系统开发人员、驱动程序开发人员、应用程序开发人员、安全架构师、工程管理人员,甚至一些安全领域的非技术用户。我们鼓励人们尽可能地广泛使用TPM。
非专业的读者可着重关注介绍TPM的章节,包括TPM的历史(第1章)、基础安全概念(第2章),以及现有的TPM应用程序(第4章)。如果你不是专业程序员,但是有明确的安全需求,那么通过这几章对TPM的介绍,可以知道TPM的基本使用方法,从而设计更多的新安全应用。
工程管理人员可以根据自己的需求和技术专长,按照自己的方式对TPM进行深入研究。我们也希望企业高层管理者可以读一读这本书,了解TPM提供的优势,对TPM相关的项目进行资助。例如,当他们意识到:利用TPM,一个IT公司可以在允许所有设备接入网络之前对它们进行安全性识别;TPM中的真随机数生成器可以产生系统获取随机数函数的随机种子;TPM设计中内嵌的抗字典攻击保护功能可以帮助增强原本较弱的密码口令。企业高管可能会决定提供这些功能,让公司的每个人都来使用。
安全架构师必须要了解TPM 2.0的功能,并根据正在开发的应用,深入了解TPM的工作原理,以知道它所能提供的安全保证。同时,他们可以利用TPM的功能连接不同的设备和接口来实现可信的软件与网络。
应用程序开发人员,无论是架构师还是实现者,都需要重点关注这本书。这些读者需要从高层次的角度了解TPM,并着重研究TPM的用例。TPM 2.0的功能丰富,本书描述的用例希望能够激发你开发新的安全应用程序。开发人员不仅需要知道正确使用TPM所带来的安全保障,还必须知道对称和非对称密钥的基础知识以及在应用程序开发中使用的哈希函数,当然,他们不需要了解这些密码算法的细节。
我们也希望这本书对嵌入式系统开发人员、中间件开发人员和将TCG技术集成到操作系统及引导代码中的程序员有用。TPM现在公开了更多的通用加密功能,当一般的加密库由于资源限制或许可权问题无法使用时,使用TPM的加密功能将是一个更好的选择。本书提供的内容对于底层开发人员已足够深入,可以满足他们的需求,并且可以用作解释规范的关键工具。为此,我们使用了图表以及代码实例来解释相关的概念。我们希望随着技术成本的降低(密码运算集成到嵌入式软件中的成本降低)以及对嵌入式软件攻击的加剧,嵌入式系统中将越来越多地使用TPM。
本书的组织结构和内容
如果你刚开始学习安全方面的知识,或者需要对基础知识进行复习,第2章对理解本书所需要了解的基础知识进行了介绍。该章提供了密码学的高级知识:我们解释了对称和非对称密钥、安全哈希算法,以及如何使用消息验证码(MAC)来作为对称密钥数字签名。该章只是简单介绍用于实现加密算法的数学知识,因为本书不是一本一般用途的安全或密码学教科书,而且大多数TPM 2.0开发人员不需要掌握这些深奥的数学知识。
第3章介绍了TPM 2.0及其设计原理。该章首先介绍了TPM 1.2的应用程序和用例,这些应用程序和用例也适用于TPM 2.0。接着,该章描述了TPM 2.0规范提供的新功能。该章可以帮助你了解为什么人们对这项技术感到兴奋并希望在自己的应用程序和操作环境中使用它。
第4章描述了使用TPM的现有应用程序(目前大多是基于TPM 1.2的)。假设这些应用程序中的大部分将被移植到TPM 2.0。其中,一些是开源程序;一些是学术研究组织编写的用于验证TPM功能的演示代码;一些则在很早前就存在了,它们恰好可以用来使用TPM的某些特性;而另一些则是专门编写来使用TPM功能的通用程序。
第5章对TPM 2.0规范进行了高度的概括,对其中的关键部分给出了指引,并对如何使用规范给出了一些最佳实践。
第6章介绍了如何搭建和使用运行TPM 2.0代码示例的执行环境。
第7章介绍了可信软件堆栈(TSS)。之所以提早介绍这部分内容,是因为后续的代码示例使用了TSS的各个层。
第8章开始深入探讨TPM 2.0功能,并介绍了TPM 2.0实体:密钥、数据块和非易失性(NV)索引。
第9章讨论TPM的hierarchy。
第10章着重介绍了TPM的密钥。
第11章介绍了NV索引。
第12章介绍了PCR和验证。
第13章是本书最深入的章节之一,如果你正在开发使用会话和授权的底层代码和系统,那么本章对你十分重要。
第14章讨论扩展授权。
第15章解释了密钥管理。
第16章介绍TPM的审计功能。
第17章介绍了解密和加密会话以及如何设置它们。 
第18章描述了对象、序列和会话上下文管理以及资源管理器的基本功能。
第19章介绍了TPM启动、初始化和配置。在使用TPM时,这些会在使用密钥和会话之前发生,但TPM实体、会话是理解TPM初始化和配置的前提条件。因此我们在前3章之后包括了本章的内容。
第20章介绍了调试TPM 2.0应用程序的最佳实践。
第21章描述了可以使用TPM 2.0功能的高级应用程序。
第22章介绍了使用TPM 2.0设备作为安全解决方案的平台级安全技术。
需要的基础知识
尽管这是一本技术书籍,但是我们尽可能地假设读者是零基础的。代码示例使用的是C语言,有一定的C语言基础对阅读本书是有帮助的。但是,本书中绝大多数的概念都是独立的,因此本书的大部分内容对于非程序员来讲也是可以理解的。我们对安全概念进行高度概括,并尽最大努力使你能够理解书中的内容。
了解TPM 1.2和2.0规范对阅读本书会有帮助,但并非是必需的。我们希望你从www.trustedcomputinggroup.org上下载TPM 2.0规范,以便在阅读本书时参考。
致谢
非常感谢外部和内部评审人的贡献、编辑和建议:
Ken Goldman撰写了许多章节,并认真地检查了书中的技术性错误。
Emily Ratliff 和 Jon Geater为第22章的ARM和AMD部分提供了专业的知识和经验。Bill Futrall也为第22章提供了相关资料。
Paul England 、David Wooten 和Ari Singer 帮助我们理解了规范。
Paul England帮助我们了解了Microsoft的TPM接口。
Monty Wiseman、Justin Osborn、Alex Eydelberg、Bill Futral、Jim Greene和Lisa Raykowski都对本书做了技术性评论。
来自英特尔的Patrick Hauke为我们提供了支持和指导。
感谢TSS和TPM WG成员的很多直接或间接的贡献。

上架指导

计算机\安全

封底文字

随着2013年秋季给美国总统的网络安全报告中指出TPM芯片应该广泛应用于计算设备,加上TPM 2.0标准的颁布,一股新的TPM热潮正在席卷而来。

本书旨在向开发人员、安全架构师、工程管理人员以及普通用户普及TPM 2.0知识。本书通过图表、底层代码实例以及高级应用案例阐述了安全性和TPM的功能,意在激励广大开发人员使用TPM来帮助解决当前的安全威胁,并让大众了解TPM 2.0。

本书内容:
·TPM的历史以及为什么需要TPM 2.0
·基本安全知识和原理
·TPM 2.0架构的详细介绍,包括用例
·TPM应用程序开发选项以及调试技巧
·主流平台技术,如Intel TXT、ARM TrustZone和AMD安全技术,以及如何使用TPM 2.0

作者简介

[美] 威尔·亚瑟(Will Arthur)大卫·查林纳(David Challener) 著:
Will Arthur是英特尔公司数据中心工程组的资深固件工程师。他领导了英特尔可信执行技术(TXT)中服务器端认证代码模块(ACM)的开发。作为一名活跃在可信计算组织的TPM和TSS工作小组的参与者,他编写了TCG TPM 2.0系统接口、TPM 2.0 TAB和资源管理规范,开发了TCG版本的代码并实现了这些规范,审查并校订了TPM 2.0规范的可读性和准确性。Will在底层嵌入式固件和软件开发方面拥有超过30年的工作经验,并且最近的19年一直在英特尔公司工作。Will在亚利桑那州立大学获得了计算机科学学士学位。
David Challener自十多年前起就致力于可信计算方面的工作。目前他是TPM工作组的联合主席,之前曾担任过TSS工作组、TCG技术委员会和董事会的主席。他还为很多其他TCG规范做出过贡献。他拥有伊利诺伊大学应用数学博士学位,目前就职于约翰霍普金斯大学应用物理实验室。
About the Reviewers 技术评审人
Justin D. “Ozzie” Osborn是约翰霍普金斯大学应用物理实验室的商业设备运营组的首席科学家。他在软件逆向工程和嵌入式软件开发方面有近十年的工作经验。他曾参与了涉及TPM软件开发和对TPM解决方案的漏洞分析的项目。
Monty Wiseman是英特尔数据中心集团(DCG)的安全架构师。他目前参与的项目包括TCG架构、Intel TXT技术、启动保护以及其他与安全相关的项目。Monty参加并领导了TCG PC客户工作组和TPM 1.2安全评估工作组。他还参加了TPM和其他TCG工作组,并且是英特尔在TCG技术委员会的代表。Monty在桌面、网络和大型机环境中拥有20年的工作经验,并在Novell、Fujitsu和Control Data公司中担任安全及其他技术职位。自1975年以来,他一直从事从大型机到微型计算机的硬件和软件开发。

译者序

可信计算是增强信息系统安全的一种行之有效的技术。它基于一个硬件安全模块,建立可信的计算环境。可信硬件安全模块担任信任根的角色,通过密钥技术、硬件访问控制技术和存储加密等技术保证系统和数据的信任状态。基于可信硬件安全模块,可建立从硬件可信根→BIOS→操作系统→应用系统的信任链,从而检测和验证系统的可信性。
可信平台模块(Trusted Platform Module,TPM)是可信计算中一种植于计算机内部为计算机提供可信根的芯片。该芯片的规范由可信计算组织(Trusted Computing Group,TCG)来制定。目前TPM已经应用到大多数商用计算机、服务器和个人计算机。针对TPM,2003年TCG颁布了TPM 1.2规范。TPM 1.2总体上是成功的,但也存在一些问题。例如适合PC平台,不适合服务器平台和嵌入式平台;只配置公钥密码,没有对称密码;哈希函数的设置存在一些问题;密码方案不支持本地化,世界各国应用困难;密钥和证书种类繁多,管理困难。
为解决这些问题,2014年TCG推出TPM 2.0规范。2015年TPM 2.0规范成为ISO/IEC国际标准。 TPM 2.0 改进了TPM 1.2的一些不足,如密码算法多样化、支持密码算法本地化(支持中国商用密码算法)、支持虚拟化、统一授权框架、增强了健壮性,从而为TPM的应用建立了更好的生态环境。
TPM 2.0被称为下一代的TPM。然而目前有关TPM 2.0的介绍资料非常少,广大科技工作者迫切需要一本介绍TPM 2.0的书籍,为此,机械工业出版社引进了本书。
本书是一本介绍TPM 2.0的技术专著,涵盖了TPM 2.0新特性以及如何使用TPM 2.0构建安全解决方案。书中既介绍了TPM 2.0及其设计原理,又介绍了TPM 2.0的基本功能、可信软件栈TSS 2.0以及如何编写代码通过TSS调用这些功能,同时还提供了相关范例,并介绍了利用TPM 2.0在新安全时代解决实际问题的技术方案。
本书的作者都是可信计算领域的著名专家,他们参与了TCG规范的制定,其中第一作者Will Arthur是英特尔公司资深固件工程师。他领导了英特尔可信执行技术(Intel TXT)中服务器端认证代码模块(ACM)的开发,并编写了TCG TPM 2.0系统接口、TPM 2.0 TAB和资源管理规范。第二位作者David Challener目前是TCG TPM工作组的联合主席,之前曾担任过TSS工作组、TCG技术委员会和董事会的主席。
本书最大的特点是简明实用,既可以作为信息安全领域科技人员的技术参考书,也可以作为高等院校相关专业的教材或教学参考书。
本书由武汉大学王鹃、余发江、严飞、张立强、石源等翻译,武汉大学张焕国、赵波,英特尔公司李彦、姚颉文、龙勤、魏刚,国民技术公司刘鑫,华为公司李金明,大唐高鸿信息技术有限公司郑驰等审校。洪智、张雨菡、文茹、汪昕晨、胡威、樊成阳、李弈、李江琪、何能斌、张浩喆、马佳慈、王杰也参与了部分翻译和书稿整理工作。
由于译者的专业知识和外语水平有限,书中错误在所难免,敬请广大读者批评指正,在此先致感谢之意。

译 者
2017年7月

图书目录


译者序
关于作者
技术评审人
前言
第1章 TPM的历史1
1.1 为什么是TPM1
1.2 TPM规范:从1.1b到1.2的发展史2
1.3从TPM 1.2发展而来的TPM 2.03
1.4TPM 2.0规范的发展历史4
1.5小结5
第2章 基础安全概念6
2.1 密码攻击7
2.1.1 穷举攻击7
2.1.2针对算法本身的攻击8
2.2安全相关定义9
2.3密码大家族10
2.3.1 安全哈希(或摘要)10
2.3.2 哈希扩展11
2.3.3 HMAC:消息认证码12
2.3.4 KDF:密钥派生函数12
2.3.5 认证或授权票据13
2.3.6 对称密钥13
2.3.7 nonce15
2.3.8 非对称密钥15
2.4公钥认证17
2.5小结18
第3章 TPM 2.0快速教程19
3.1TPM 1.2的使用场景20
3.1.1 身份识别20
3.1.2 加密21
3.1.3 密钥存储21
3.1.4 随机数生成器22
3.1.5 NVRAM存储22
3.1.6 平台配置寄存器 23
3.1.7 隐私启用23
3.2 TPM 2.0额外功能的使用场景24
3.2.1 算法灵活性(TPM 2.0新功能)24
3.2.2 增强授权(TPM 2.0新功能)26
3.2.3 密钥快速加载(TPM 2.0新功能)28
3.2.4非脆性PCR(TPM 2.0新功能)28
3.2.5灵活管理(TPM 2.0新功能)29
3.2.6 按名称识别资源(TPM 2.0新功能)30
3.3 小结30
第4章 使用TPM的现有应用程序31
4.1 与TPM交互的应用程序接口31
4.2 TPM管理和WMI33
4.2.1平台加密程序33
4.2.2 虚拟智能卡34
4.3 使用TPM的应用程序34
4.4 应该使用但还未使用TPM的应用程序36
4.5构建TPM 1.2应用程序36
4.6TSS.Net 和TSS.C++37
4.7 Wave Systems Embassy 套件38
4.8 开发TPM时应该要注意的问题38
4.8.1Microsoft BitLocker38
4.8.2IBM文件/文件夹加密39
4.9TPM 2.0 中新的可管理解决方案39
4.10 小结40
第5章 规范指南41
5.1 TPM 2.0库规范42
5.2 一些定义42
5.2.1 常规定义43
5.2.2命令字节流的主要字段定义43
5.2.3响应字节流的主要字段定义44
5.3第三部分:命令44
5.4 数据细节48
5.4.1 常用数据结构体48
5.4.2 联合体49
5.4.3 规范化数据(canonicalization)50
5.4.4 字节顺序(endianness)51
5.5 第二部分:符号语法51
5.6 第三部分:表格修饰符51
5.7 规范中的常用部分52
5.8如何在规范中寻找信息52
5.9加强对TPM 2.0规范的理解53
5.9.1Will53
5.9.2Ken54
5.9.3David54
5.10 其他TPM 2.0规范55
5.11 小结55
第6章 执行环境56
6.1设置TPM56
6.1.1 Microsoft模拟器56
6.1.2 用源码构建模拟器57
6.1.3 设置模拟器的二进制文件版本57
6.1.4 运行模拟器57
6.1.5 测试模拟器58
6.2 设置软件栈59
6.2.1 TSS 2.059
6.2.2 TSS.net60
6.3 小结60
第7章 TPM软件栈61
7.1TSS概述61
7.2FAPI63
7.3 SAPI68
7.3.1 命令上下文分配函数69
7.3.2 命令准备函数70
7.3.3 命令执行函数71
7.3.4 命令完成函数72
7.3.5 简单代码示例73
7.3.6 SAPI测试代码74
7.4 TCTI75
7.5TAB75
7.6RM76
7.7 设备驱动76
7.8 小结77
第8章 TPM 实体78
8.1 永久性实体78
8.1.1 持久性hierarchy78
8.1.2 临时性hierarchy79
8.1.3 重置词典攻击锁定79
8.1.4 PCR79
8.1.5 保留句柄80
8.1.6 口令授权会话80
8.1.7 平台NV启用80
8.2 NV索引80
8.3 对象81
8.4 非持久性实体81
8.5 持久性实体81
8.6 实体名称82
8.7 小结84
第9章 hierarchy85
9.1三个持久性hierarchy85
9.1.1平台hierarchy86
9.1.2 存储hierarchy87
9.1.3 背书hierarchy87
9.2 隐私88
9.2.1 激活证书88
9.2.2 其他隐私考虑90
9.3 空hierarchy91
9.4 密码原语92
9.4.1 随机数生成器92
9.4.2 摘要原语92
9.4.3 HMAC原语94
9.4.4 RSA原语95
9.4.5 对称密钥原语95
9.5 小结95
第10章 密钥97
10.1 密钥命令97
10.2 密钥生成器98
10.3 主密钥和种子98
10.4 密钥持久存留101
10.5 密钥缓存101
10.6 密钥授权102
10.7 密钥销毁102
10.8 密钥hierarchy103
10.9 密钥类型和属性103
10.9.1 对称和非对称密钥属性103
10.9.2 复制属性103
10.9.3 受限的签名密钥105
10.9.4 受限的解密密钥106
10.10 上下文管理与加载106
10.11 空hierarchy107
10.12 认证107
10.13 密钥解析109
10.14 小结111
第11章 非易失性索引113
11.1 NV普通索引114
11.1.1 NV计数器索引116
11.1.2 NV位字段索引116
11.1.3 NV扩展索引117
11.1.4 混合索引117
11.1.5 NV访问控制119
11.1.6 NV写入119
11.1.7 NV索引句柄值120
11.1.8 NV名称121
11.1.9 NV口令122
11.2 专用命令122
11.3小结123
第12章 平台配置寄存器124
12.1 PCR值124
12.1.1 PCR数量126
12.1.2 PCR命令126
12.1.3 PCR授权126
12.2 PCR验证128
12.2.1 PCR quote操作的细节129
12.2.2 PCR属性130
12.2.3 PCR授权与策略131
12.2.4 PCR算法131
12.3 小结132
第13章 授权与会话133
13.1 会话相关的定义134
13.2 口令、HMAC和策略会话134
13.3 会话与授权135
13.4 授权角色138
13.5 命令和响应授权域细节139
13.5.1 命令授权域139
13.5.2 命令授权结构139
13.5.3 响应授权结构141
13.6 口令授权:最简单的授权方式141
13.6.1 口令授权生命周期142
13.6.2 创建一个口令授权实体142
13.6.3 更改已创建的实体的口令授权142
13.6.4 使用口令授权143
13.6.5 代码示例:口令会话143
13.7 开启HMAC和策略会话146
13.7.1 TPM2_StartAuthSession命令147
13.7.2 会话密钥和HMAC密钥的细节148
13.7.3 TPM2_StartAuthSession句柄和参数149
13.7.4 会话变体150
13.8 HMAC和策略会话的区别151
13.9 HMAC授权152
13.9.1 HMAC授权的生命周期152
13.9.2 HMAC与策略会话代码示例154
13.9.3 使用HMAC会话发送多命令(滚动随机数)163
13.9.4 HMAC会话安全164
13.9.5 HMAC会话数据结构164
13.10 策略授权165
13.10.1 EA的工作原理166
13.10.2 策略授权中的时间间隔167
13.10.3 策略授权的生命周期168
13.11 组合授权生命周期171
13.12 小结172
第14章 扩展授权策略173
14.1 策略和密码174
14.2 扩展授权的原因174
14.2.1 多种认证方式174
14.2.2 多因素认证175
14.3 EA的工作步骤175
14.4 创建策略176
14.5 基于命令的断言185
14.6 多因素认证186
14.6.1 实例1:智能卡和口令186
14.6.2 实例2:基于口令的仅用于签名的密钥策略187
14.6.3 实例3:PC状态、口令和指纹187
14.6.4 实例4:适用于一次引导周期的策略187
14.6.5 实例5:灵活的PCR策略188
14.6.6 实例6:组权限策略188
14.6.7 实例7:1~100的NVRAM策略189
14.7 复合策略:在策略中使用OR逻辑189
14.7.1 制定复合策略190
14.7.2 实例:工作或家用计算机的策略191
14.8 创建策略时的注意事项192
14.8.1 终端用户角色192
14.8.2 管理员角色192
14.8.3 替补角色192
14.8.4 办公室角色192
14.8.5 家庭角色192
14.9 使用策略授权命令193
14.9.1 启动策略193
14.9.2 满足策略193
14.9.3 如果策略是复合的194
14.9.4 如果策略是灵活的(使用通配符)195
14.10 认证的策略196
14.11 小结197
第15章 密钥管理198
15.1 密钥生成198
15.2 密钥树:使用相同算法集的密钥在一棵树里200
15.3 复制201
15.4 密钥分发203
15.5 密钥激活203
15.6 密钥销毁204
15.7 综合205
15.7.1 实例1:简单密钥管理205
15.7.2 实例2:启用了TPM 2.0 Windows系统的IT企业206
15.8 小结207
第16章 TPM命令审计208
16.1 为什么要审计208
16.2 审计命令210
16.3 审计类型210
16.3.1 命令审计210
16.3.2 会话审计211
16.4 审计日志211
16.5 审计数据212
16.6 专属审计213
16.7 小结213
第17章 解密和加密会话214
17.1 加密和解密会话的作用214
17.2 实际用例215
17.3 解密和加密的限制215
17.4 解密和加密设置215
17.4.1 伪代码流216
17.4.2 示例代码218
17.5 小结227
第18章 上下文管理228
18.1 TAB和RM:一个高层次的说明228
18.1.1 TAB229
18.1.2 RM230
18.1.3 RM操作230
18.2 对象、会话和序列的管理232
18.2.1 TPM上下文管理特性232
18.2.2 上电和关机事件的特殊规则234
18.2.3 状态转换图235
18.3 小结236
第19章 启动、关机和配置237
19.1 启动和关机237
19.2 配置240
19.2.1 TPM制造商配置240
19.2.2 平台OEM配置242
19.2.3 终端用户配置242
19.2.4 解除配置243
19.3 小结244
第20章 调试246
20.1 底层应用程序调试247
20.1.1 问题247
20.1.2 分析错误码247
20.1.3 调试跟踪分析248
20.1.4 更复杂的错误249
20.1.5 最后一招249
20.2 常见的错误250
20.3 调试高级应用程序251
20.3.1 调试过程252
20.3.2 典型的错误252
20.4 小结254
第21章 利用TPM 2.0解决更复杂的问题255
21.1 使用基于EK生成的IDevID对PC进行远程配置255
21.1.1 方案1256
21.1.2 方案2257
21.1.3 方案3258
21.2 数据备份259
21.3 特权分离259
21.4 服务器登录保护260
21.5 在嵌入式系统中锁定固件,但允许更新261
21.6 小结261
第22章 基于TPM 2.0的平台安全技术262
22.1 三种技术262
22.2 Intel可信执行技术263
22.2.1 概述264
22.2.2 如何使用TPM 2.0设备268
22.3 ARM TrustZone269
22.3.1 概述270
22.3.2 TrustZone的实现271
22.4 AMD安全技术273
22.4.1 硬件验证引导274
22.4.2 AMD平台上的TPM274
22.4.3 SKINIT274
22.5 小结275
附录A 中国可信云社区276
附录B 相关开源合作项目和升级277

教学资源推荐
作者: [英]Ross J.Anderson
作者: 主编:王瑞民副主编:史国华 李娜参编(按姓氏笔画顺序):杨姣 宋伟 高淼 龚玉猛
作者: 庞建民 陶红伟 刘晓楠 岳峰 编著
作者: 张焕国 赵波 王骞 等著
参考读物推荐
作者: 大学霸IT达人 编著
作者: Dan Farmer;Wietse Venema
作者: [美]帕斯卡·阿克曼(Pascal Ackerman)著