习惯性的买一堆书,抽空慢慢看,买书如山倒,读书如抽丝。在豆瓣上分享专业书籍书评的人,我算是为数不多的一个吧,无论是否有人问津,自得其乐。

tcg作为可信计算的国际标准,开始接触应该在10年左右,因为做pki/ca会关注密钥的应用领域,结合android启动手机的智能应用,从底层安全做起,就关注到tcg在手机端的应用,在中国移动的背景下和终端公司讨论过类似bootloader启动的安全方案,甚至基于uefi结合tcg的迁移,arm的trustzone作为可以结合的安全解决方案省去tpm或gp的成本,是个可以运作的解决方案,在移动支付,应用商场,统一身份认证领域,可能比pkisim卡的应用要划算。遗憾的是并没有落地,空剩方案。

当然诸多统一身份认证方案中还尝试过和网络部,数据部讨论过通信认证能力向互联网业务开放开放,pki甚至是eid的身份认证的方案,只不过最后被杭研和互联网做了一个和阿里,腾讯无二的毫无竞争力浪费了好资源的纯互联网模式的统一认证方案,给抢了去,也是个比较遗憾的题外话。

在工信部做应用签名试点阶段,也曾尝试和intel,软件司,信息安全协调司沟通过手机端的可信计算的方案,在智能机起步阶段老东家尝试做services phone的时候还和沃勤等方案厂商讨论过交流,当时还是受限于tpm和gp的成本以及研发成本包括市场的清晰度问题,同样不了了之。

在等保2.0中,加强了可信计算的范畴,进一步强化了密码技术在信息安全领域的应用,而在沈昌祥等院士推动下,可信计算的概念也是持续升温,在云计算领域,可信云联盟也是高举可信计算的大旗,再来看这本书,重温一些概念和细节,对该领域的改进和发展做些跟进,也是关注物联网和云计算可信计算体系完整构建方案的参考。

tpm作为tcg的基础单元,从硬件的领域着手建立密钥处理,可信计算的度量和存储,功能和指令的基础设施是整个可信计算的基础。相对于tpm1.2对于密码算法的固定,tpm2.0通过模板实现了算法的自定义,支持国产算法,对于强调自主创新的国家关键基础设施领域而言,意义重大。

tpm的三个密码树,实现了持久化的tpm厂商信任链的构建,平台信任链的构建,存储信任链的构建,tpm厂商信任链在保障tpm自身的可信之外对于隐私计算和保护隐藏tpm本身信息的模式具有现实意义。平台信任链作为设备制造商,对固件,操作系统以及公共组件的度量,升级实现了可信的完整性校验安全模式,存储主要用于企业和组织的信任链构建,自定义终端,人员的认证密钥体系。临时的信任链构建断电消失,只能用于临时的密钥体系实现。

层级结构的密钥机制源自于种子和密钥模板创建的根密钥,然后由根密钥创建层级的密钥,层级密钥在上级密钥加密后可以存储在tpm之外,有了种子和模板,密钥可以动态生成,对于空间的节省和安全的折衷提供了良好的方案,tpm应用了证书的概念,却未严格按照x.509的标准实现,可信的依据仍然是签名机制的验证,不过tpm大量使用明文加密钥的hash方式hmac算法代替了rsa的公钥签名机制,简化了计算的资源消耗。

tpm密钥结构的访问关注到授权和会话,密码授权的方式安全性低,易用性好,hmac授权是主要采用的授权算法,可以支持授权和会话的模式,还支持比较复杂的授权和会话模式策略授权ea,通过各种授权模式的组合实现灵活复杂的授权模式,比如支持在不同设备上访问同一个云服务应用的复杂tpm组合授权模式。密钥体系设计中,关于密钥应用的风险其实是最高的,引入密码体系的本意提升安全却因为应用的不规范导致安全漏洞比较常见,tpm的机制在这方面做的尤其到位。

nv作为非易逝存储器,可以实现基于地址和句柄的自定义数据结构存储空间,相关的应用和自定义方案设计可以加以利用。pcr寄存器作为各级度量结果的存储单元,是可信计算逐级验证的来源。

作为tcg的一部分tpm的指令以及编程接口至关重要,面向底层的tss软件栈,通过sapi接口访问,支持tcti的命令行和tab访问网关以及实现tpm与内存缓存交换的资源管理rm,实现相应的功能。高层的api封装底层接口可以通过fapi实现大部分功能。

tpm是一个功能完整,架构强大的终端密钥管理,应用系统,在大部分pc上已经实现,不过由于功能强大,安全设计带来的复杂性,而缺少应用层的支持,缺少用户友好的中间件以服务的方式支持,并没有得到广泛的应用,这也是需要反思和推动的,但无论如何,对密钥保存应用的思想非常值得借鉴和推广,如果具备了tpm,不防好好的利用起来,对于物联网和云计算,这套机制用途要远大于pc。