防篡改查看源代码讨论查看历史
防篡改(Tamper resistance)是指通过包装、系统或其他物理措施抗击产品正常用户的篡改(tamper,故意引发故障或造成破坏)的行为。应用防篡改有着许多原因。
防篡改范围从简单的特征(例如List of screw drives#Tamper-resistant types|特殊样式的螺丝)到复杂的设备不等,它们使自身不可操作或者加密板间所有的传输数据,或者需要使用特殊的工具和知识才能操作。包装上经常有防篡改的设备或特征,以防止对包装或产品的篡改。
防篡改设备具有一个或多个组件:防篡改、篡改检测[1] 、篡改响应和篡改证明。在一些应用中,设备只有Tamper-evident|篡改证明而不防止篡改。
安全
几乎所有的电源设备和附件只能使用螺丝刀(或类似替代品,例如指甲锉或厨刀)打开。这是为防止儿童或其他人不小心或无意间打开设备而造成危险或伤害自己(例如遭受电击、烧伤或割伤)或损害设备。有时(尤其是为避免訴訟),制造商进一步使用防篡改螺丝,使其不能用标准工具打开。防篡改螺丝还用于许多公共建筑中的电气配件,减少可能对他人造成危险的篡改或破坏行为。
保修和支持
以制造商非预期方式修改而导致设备故障的用户可能拒绝承认,从而制造商的售后服务必须提供保修或帮助进行修复。Tamper-evident|篡改印记密封可能足以解决此问题,但是,这种印记不易被远程检查,并且许多国家有法定条款规定,制造商可能仍必须为此类设备提供服务。防篡改螺丝能阻止大多数普通的好奇用户进行篡改。在美国,马格努森-莫斯保修法禁止制造商仅因篡改而使保修失效。只有在篡改实际影响了故障的部件并可能导致故障时,保修才可能被拒绝。
芯片
防篡改微处理器用于存储和处理隐私或敏感信息,例如私钥或電子貨幣信息。为防止攻击者检索或修改信息,芯片被设计为不能从外部访问信息,只能由内部的嵌入式软件访问。嵌入式软件也应包含适当的安全措施。
防篡改芯片包括所有Secure cryptoprocessor|安全加密处理器,例如IBM 4758和智慧卡中的芯片,以及Clipper芯片。
目前已经认为,是简单的电子设备安全地防止篡改很困难,因为有多种可能的攻击方式,包括:
- 各种形式的物理攻击(微喷、钻孔、文件、溶液等)
- 冻结设备
- 施加超限的电压或功率浪涌
- 应用异常时钟信号
- 使用辐射诱导软件错误(例如微波或电离辐射)
- 测量某些操作的精确时间和功率要求(见Power analysis|功率分析)
防篡改芯片在设计上可能将其敏感数据(尤其是加密密钥)Zeroisation||清零,如果其检测到安全封装被穿透或者环境参数超越规范。芯片甚至可以被设计为“冷归零”,即电源被切断后仍有自我归零的能力。此外,一些加密产品使用的芯片所用的定制化封装方法可以设计为在内部预加应力,使芯片在遭遇干扰时断裂。
然而,攻击者可能拥有任何他能够取得的设备,并可能有大量样品来进行测试和实践,这样意味着不可能完全消除有充分动机和准备的对手。因此,保护系统的一项重要元素是整体系统设计。尤其是,防篡改系统应该“优雅失败”,确保一个设备被攻陷不会危及到整个系统。由于最复杂的攻击可能需要花费数十万美元,因此精心设计的系统在实践中可能不会被攻陷。
军事
美国的所有新军事计划中都要求配有防篡改。
DRM
防篡改技术已应用于智慧卡、机顶盒和其他使用数字版权管理(DRM)的设备。在这些情况下,问题不在于阻止用户破坏设备或伤害自己,而是阻止他们提取代码或获取和保存解码后的比特流。这通常通过每个芯片中植入的许多子系统功能完成(使内部信号和状态不可访问),并确保芯片之间的总线被加密。
DRM机制也在诸多方面使用证书和不对称密钥加密。在这些情况下,防篡改是为禁止用户访问设备的有效证书或公钥/私钥。使软件对篡改攻击具有鲁棒性的过程被称为“软件防篡改”。
核工业
准备出售给其他不拥有核武器的国家的核反应堆必须实现防篡改,以防止核扩散。例如,被提议的小型密封便携式自控反应堆(SSTAR)将具有多种防篡改技术,使核材料难以被取得,确保反应堆的运输被密切跟踪,并在检测到尝试进入时发出声音警报(及可以触发军方响应)。
包装
包装有时需要防篡改。例如:
- 药品法规的要求
- 可能遭遇盗窃或窃取的高价值产品
- 为可能的法律诉讼而需要保持不变的证据
抗篡改功能可以被内置或添加到包裝。
例如:
- 额外的包装层(单层包装或组件不能“防篡改”)
- 需要工具才能开启的包装
- 超强且安全的包装
- 不能重新密封的包装
- 拆封印记密封和特征
包装的防篡改可以由该主题的顾问和专家评估。另外,可以由公众进行详细的现场测试来比较各种包装。
软件
当软件包含遏制逆向工程的措施,或者防止用户违背制造商所愿进行修改(例如去除某些使用限制)时,它也是一种防篡改。一种常用的方法是代码混淆。
但是,在软件中进行有效的防篡改比在硬件上更难,因为通过仿真几乎可以任意操作软件环境。
如果实现有可信计算,软件的防篡改保护程序可以达到硬件防篡改的程度,因为用户可能必须攻破信任芯片才能绕过远程认证和可信存储。但是,当前的规范也清楚表明,不能期望芯片防篡改应对极为复杂的物理攻击;也就是说,其不旨在达到与防篡改设备的同等安全性。
这样做的副作用是增加软件维护的复杂性,因为如果验证软件更新,更新过程中的任何差错都可能导致误报和失败。
篡改
篡改涉及故意改变或掺假产品、包装或系统。解决方案可能涉及产品的生产、包装、分发、后勤、销售和使用的所有阶段。并没有单一的解决方案可以完成“防篡改”,经常需要配备多层次的安全方案来减少篡改的风险。 要考虑的方面可能包括:
- 确定谁可能是潜在的篡改者,例如:普通用户、儿童、精神病患、被误导的人、破坏者、有组织罪犯、恐怖分子等。他们有着何种层面的知识、材料和工具等资源?
- 确定对产品、包装或系统进行未授权访问的所有可行方法。除了主要的进入方式,还应考虑二次或“后门”等方法。
- 控制或限制对相关产品、系统的访问。
- 提高防篡改功能,使篡改更加困难、耗时等。
- 添加Tamper-evident|篡改印记功能,帮助指出存在篡改。
- 告知人们如何观察篡改证明。
篡改(Tamper)意味着在没有权威方面授权的情况下,干扰某物品或造成损害。