随着Windows 11操作系统的正式发布,Microsoft公司将TPM这个词语再次推向了普通公众的视野。Windows 11相关的安全组件依赖TPM进行加密,因此Windows 11强制要求计算机主板安装TPM芯片。即使非IT从业人员,可能也曾在安装Windows 11的过程中查找过关于TPM的启用方式,从而对TPM有初步了解。
TPM是一种安装在计算机主板内部的安全加密处理芯片,可以执行有关安全密钥的基础运算工作,并提供严格的物理安全防护机制。目前许多系统安全项目与应用程序开发项目已经将TPM作为基础安全层的核心模块,为上层应用生态系统提供基于底层硬件的高强度安全保护。
由于TPM官方发布的标准规范非常难理解,并且实现方式极为复杂,因此使得开发基于TPM的应用系统十分困难,也造成了TPM技术未能很好的普及。不过完全不用担心,这正是本书将要解决的问题。
1. TPM能做什么
TPM芯片通常安装在计算机主板上,其不仅可以管理各种类型的安全密钥,也能够通过编程的方式去使用这些安全密钥。
简单来说,TPM的主要作用是为上层应用系统提供安全加密运算、安全密钥管理能力。
基于TPM可以实现如下场景:
(1) 生成安全密钥。例如RSA、AES、ECC等。
(2) 存储安全密钥。支持临时或永久存储密钥。
(3) 管理安全密钥。支持加密、导入、导出、迁移密钥。
(4) 保护安全密钥。支持以多种授权方式限制对密钥的读取,并抵御暴力破解。
(5) 使用安全密钥。应用系统以编程方式读取并使用密钥。
除此之外,TPM还具有许多其他功能,本书将在第3~19章介绍TPM的常用功能。
2. 读者人群
如果已经购买并开始阅读本书,说明可能具有安全领域相关的从业经验、对TPM有初步了解或项目上有开发需求。因为TPM是一项较为复杂的安全技术,其涉及的安全知识也非常广泛,所以建议至少需要具备一定的安全理论基础与编程开发经验,这样阅读起来会感到非常轻松。
如果缺少有关系统安全方面的理论基础,也不必过于担心,因为本书已经尽量将阅读门槛降到最低。除此之外,本书第1章与第2章还会简要介绍安全方面的相关概念。
TPM使用C语言作为标准应用程序接口(Application Programming Interface,API),虽然最近也出现了基于高级语言的API,例如.NET或Java版本,但是其实这些所谓的高级语言API并非真正意义上的API,它们只是对TPM底层C语言API的简单封装。在使用高级语言API时,有时仍无法避免需要处理底层指针与底层数据结构,并且经常需要处理字节流缓冲、内存、编码、解码等,所以,本书适合有一定开发经验的IT从业人员。当然,如果已经熟悉C或C++语言,那就再好不过了。关于TPM开发语言的选择将在第3章介绍。
综上所述,本书适合的人群以及建议的阅读方式为: 系统分析师(快速阅读)、系统架构师(完整阅读)、开发人员(完整阅读)、测试人员(完整阅读)、项目经理(部分阅读)、产品经理(部分阅读)。
3. 如何阅读
做任何事情都需要花费成本,读书也是一样。但是,如果上来就用大量篇幅强行灌输复杂难懂的TPM理论知识,可能使读者直接产生“从入门到放弃”的想法,这也是许多IT从业人员只喜欢看视频教程却不喜欢看书的原因。许多教材、文档及技术规范可能通篇只介绍理论概念,阅读起来需要极大的耐心与扎实的技术功底,这不是每个人都能做到的。
本书不会对TPM的理论知识从头到尾进行深入讲解,而是在简要介绍基础概念后,立即以示例代码形式演示TPM的实际开发过程。随着内容的逐渐深入,本书在介绍示例代码的同时也会穿插一些新的理论知识,以增量方式让读者潜移默化地完成TPM开发方法的学习。
作者也是程序员,每天都要阅读大量的产品手册与协议规范,并运用到实际的方案设计与项目开发之中,深知程序员的时间何等珍贵。如何快速消化、吸收那些动辄上千页的技术规范,并立即设计出安全可靠的系统架构方案才是眼下最关心的问题。程序员与研究员不同,没有时间逐字逐句地研究技术规范,因此,本书的理念是以清晰直观的示例代码指导读者轻松地开发TPM应用程序。
4. 快速开始
TPM的官方规范非常难以理解,通篇都在介绍TPM的底层数据结构。如果再结合系统安全知识展开来讲,TPM开发将会是一门非常复杂的系统安全学科。更不友好的是,TPM自身的API架构十分接近硬件底层,并以C语言为通信接口,使得开发人员使用起来难上加难,使原本有趣的编程工作沦为一种精神折磨。即使现在已经出现了基于C#或Java的高级语言API,但是直接阅读官方的示例代码依然会使人一脸茫然。
不过不必担心,本书只会精选TPM标准规范中常用的功能部分,以通俗易懂的文字解释其背后的工作原理与实际应用场景,真正做到使读者快速入门、快速掌握、快速开发。对于TPM标准规范中一些不常用的特性(例如审计)或深入的理论知识,本书有意不涉及。如果读者有兴趣且有时间,建议在阅读完本书后,尝试阅读TPM官方发布的标准规范,这对深入理解TPM理论知识非常有帮助。
虽然本书主要以示例代码为主,但并不是说可以完全忽略TPM背后的理论知识。无论是系统分析师、系统架构师还是编写代码的程序员,都是企业安全与系统安全的直接责任人,只有具备了深厚的理论基础,才能面对系统安全设计的严酷挑战。
TPM是为企业信息安全保驾护航的那把锁,时刻守护着上层应用系统与企业数字资产的安全。随着近年来安装有TPM芯片的计算机的日益普及,越来越多的应用系统开始整合TPM。掌握TPM技术已经成为一项新的流行技能,赶快跟随本书进入TPM的开发之旅吧!