表 1. 安全启动加载程序技术确认设备首次加电启动时软、硬件都处于已知的可信赖状态。为了尽可能降低时延,代码分几个阶段进行验证并载入。如果检测到某个阶段遭到破坏,设备会启动灾难恢复模式并进行设备再配置,如果没有问题,设备就会载入首个代码影像,即 ROM 启动加载程序,这是由硅芯片厂商提供的,不能修改,因此能确保验证有效。将使用散列方法进行后续代码验证,有时还会采用唯一芯片 ID 进行验证,之后进行解密。我们将启动进程分解为几个阶段,这使设备能加速与用户进行互动,缩短了用户所觉察到的启动时延时间。
安全启动加载程序技术是避免执行两难困境的关键,也是成功确认软、硬件均处于已知可信赖状态的关键(见表 1)。当设备首次加电后,处理器会执行已知的 ROM 启动加载程序。这个代码影像是设备专用的,并只支持最基本的功能,其中包括有限的加密功能,以验证并确认后续启动加载程序代码,并在检测到破坏情况下启动灾难恢复模式。该代码不能修改,这一点至关重要;换言之,由于其不能被更改,因此不会遭到损坏,也毋需进行确认。请注意,诸如显示功能等确认故障通知信息等功能可能实现片外存储,或在通过 ROM 启动加载程序确认的代码中有选择性的执行,不过在确认已发生故障的情况下,ROM 启动加载程序不能确保相关代码的可用性。
ROM 启动加载程序确认用户启动加载程序的常见方法是采用散列来确认代码是否被改动,随后再对代码解密(代码加密是为了避免有可能导致代码安全性受影响或者泄露加密信息的逆向工程破解)。一旦 ROM 启动加载程序验证了用户启动加载程序,用户启动加载程序就可依次验证并确认主应用(即应用启动加载程序),然后用户就能开始存取受保护的内容。如果处理器采用唯一的硅芯片 ID,只可以读取但不能修改,那么代码确认的安全性还能进一步提高。此外,OEM 厂商除了能用这种唯一的 ID 作为密钥根 (root for secret key) 而外,也能用它来对内容加密,使内容锁定于特定的播放器。
如果 ROM 启动加载程序确定用户启动加载程序遭到篡改,那么设备将进入灾难恢复模式。灾难恢复模式是 DRM 的重要组成部分。首先,该设备必须通知用户设备将不能再回放内容(即没有损坏设备,但需要再配置),并解释如何成功地完成设备再配置。不能低估这一步骤的重要性,因为用户一发现设备不能回放内容就会拨打技术支持电话并支付昂贵的费用,用户要是对此不满,甚至会向经销商退货。
管理许可证过期有着许多不同的机制,具体取决于使用何种 DRM 标准。在任何情况下,都要明确告诉用户什么过期了,怎么延期许可证。有时许可证会设定过期日期,即歌曲下载到便携式媒体播放器后能播放比方说一周的时间,然后继续播放就必须让播放器重新连接到可信的内容服务器(比如通过 PC 在因特网上连接到可信的服务器)。