2015年TPM2.0 library specification(Trusted Platform Module)正式成为国际标准ISO/IEC 11889,首次成体系支持中国密码算法体系,包括SM2/SM3/SM4密码算法。这是中国密码算法技术和标准的又一次重要突破,也是中国信息安全标准在国际标准化工作中的重要进展。
ISO/IEC 11889标准带来哪些好处?
ISO/IEC 11889的核心在于一颗可信密码安全芯片,它可有效阻止硬件设备运行非法程序,包括BIOS级别,外设固件级别的恶意程序;能有效的保护具有计算能力的设备,防止非法用户/设备访问;提供物理安全级别的敏感数据的加密保护,保护加密密钥,安全配置策略等信息。软件方式的数据盗取,通信链路上的中间人和重放攻击,以及本地物理现场的探针、抛片等物理攻击方式对可信安全芯片来说都不管用。ISO/IEC 11889 支持中国商用密码算法体系(SM2/SM3/SM4),使得在数据安全保护上更加牢不可破。
可信计算的应用场景是什么?
有计算能力的设备都可使用可信计算,例如小型机、服务器、台式机、笔记本、平板电脑、智能手机、打印机、手写板、工业控制系统、电动汽车控制系统、IoT设备等,用途非常广泛。
拥有自己的TPM应用,就不用操心防御中间人攻击,重放攻击,字典攻击这些问题,采用TPM协议不管走到网络的那个角落都不会遭受到这些攻击,即使TPM指令的通信传输协议不加密。
快速入门
如何快速建立基于ISO/IEC 11889标准的学习、开发与应用环境呢?下面我们以国民技术Z32H330TC芯片为例,做一详细介绍:
1, 硬件平台:中国型号的SurfacePro 5/6/7/8/9,Surfacebook内嵌了国民技术的TPM2.0密码安全芯片,更多平台也已经支持。
2, 安全BIOS:BIOS中的度量应用安全机制在您购买的硬件设备上已经集成啦,可以抵御badBIOS这样的恶意攻击。当然有研究精神的小伙伴可以研究下BIOS中的TPM2.0开发,您参考下面链接,它提供了TPM2.0的BIOS驱动和TREE操作代码。
https://svn.code.sf.net/p/edk2/code/branches/UDK2015/SecurityPkg/Tcg/
3, OS驱动:LinuxKernel 4.0开始支持TPM2.0芯片,如Ubuntu20.04,Fedora等,完美支持国民技术Z32H330TC芯片。
TPM中间件:开源项目TPM2.0-TSS实现了TPM2.0的各种API:
从下面的链接获取完全的资源,依照INSTALL安装编译:
https://github.com/tpm2-software/tpm2-tss
以管理员权限resourcemgr成功运行中间件,"Initializing local TPM Interface"提示成功找到物理TPM驱动,现在有API啦,试试吧。
软件工具
开源项目TPM2.0 Tool在TSS2.0基础上包装了常用的TPM2.0功能,可以直接使用。功能包括:
— NVTool:芯片内部用于用户使用的存储空间的操作,包括定义分配存储区/释放存储区/读存储区/写存储区/所有存储区列表/锁定存储区读等操作。
— 证明工具:包括声明所有者/获取平台背书密钥公钥/获取芯片生产商/获取身份密钥公钥/身份密钥解析/生成身份报告凭据请求/激活身份报告凭据/平台配置寄存器列表/平台状态引证。
— 密钥管理工具:生成主密钥/存储密钥/密钥生成/密钥对象加载/外部密钥对象加载。
— 加密工具:对称加/解密、RSA加/解密、数据封装。
— 签名工具:签名/验签(RSA,ECC,SM2)、密钥来源证明。
— 其他工具:获取随机数/计算Hash值/计算HMAC/读取密钥公钥对象。
以上常用的安全操作、密码服务操作非常齐全,快快动手开发自己的TPM应用吧
开源项目对TPM2.0的支持显示出ISO/IEC 11889标准强大的生命力,为新一代标准的广泛应用奠定了基础,也为安全可信应用系统开发提供了高端体验。