在产品的整个生命周期中提供保护

Version 1

    尽早认识到产品安全方面的漏洞,对于正确预算处理能力和存储资源至关重要

    笔者:Brian Neill
    在设计安全产品时,必须解决大量的隐藏问题。尽管密码系统是安全性的重要构建模块,但它自身的算法却无法保证产品的安全性。嵌入式产品设计人员必须考虑产品从设计、制造、操作到报废,整个生命周期内的安全问题和需求。从根本上说,安全就是保护某项资产的价值,其中包括设备自身,以及设备处理或存储的数据、设备的配置和正确的运行。为了确保设备配有保护其价值所必需的安全防护资源,许多通常不明晰的安全问题在产品设计的前期就应得到解决。这些问题涉及的范围十分广泛,从选择正确的密码,确保产品可由第三方承包商安全制造,到具有可保护未来销售的报废产品策略。
    在初始阶段设计安全性
    在产品设计的最初阶段,开发人员就应该考虑所有可能发生的问题,并制定防范或应对攻击的安全措施。最有效的安全措施就是与其它技术各司其职,以解决不同的产品漏洞。例如,人们能否从设备中盗取数据?能否对产品进行篡改,并导致其发生异常(如,进行随机呼叫,或误报信息)?设备能否进行拷贝和复制?
    这些都是应在产品设计过程得到解决的。如若不然,它们中的某项问题就极有可能发生在现场运行的产品中。那样,该产品就需要进行安全更新。由于产品往往从最初阶段就经过了有效设计,因此,在投入运行后对其进行安全更新非常困难。在现场设计过程中,除了物流以外,新的安全防护所需的额外资源也会非常稀缺。
    通常(如反克隆控制),制造商仅仅在出现问题或产品利润受到损害的情况下才会采取措施来防止对知识产权的侵害。而这带来的结果就是将工程师的设计决策权转移给了业务决策者。后者将在添加存储和处理能力所需的成本与预计的产品利润缩减二者之间进行权衡。正是由于这个原因,人们最初通常会忽略伪造产品所带来的问题,直到最终某些底线要求对此类克隆问题进行处理。尽管如此,仍然很难在生产成本增加和产品利润之间做出权衡。因此,最好能够在开始阶段,即在设备克隆成为需要执行者关注的问题之前,就能够制定出完善的安全策略。
    电子反克隆
    在电子领域内,“反克隆”一词是指用于防范知识产权侵害的技术安全措施。目前,可通过逆向工程、生产过剩或伪造等行为来窃取硬件设计。此外,还可通过“翻新(uprevs)” 零件市场产品,对固件进行侵权。这样,伪造者就能将廉价的产品换成更昂贵的、性能完善的产品。
    反克隆安全措施真的能够保护产品吗?是的,但前提是人们具备合理的预期。读者需要认识到,电子伪造也是一种商业活动。成功的反克隆安全措施将增加伪造行业的成本,却不会增加原始产品制造商自身的成本。实际上,完全避免 IP 窃取是不可能的。但可以对产品进行设计,使其难于复制,并使得复制的代价高昂,这样产品就可以有效防范卑劣的窃取行为。因为非法的商业活动也是以盈利为目地的。
    根据反造假与灰色市场联盟(Association for Counterfeit and Grey Market Abatement)的估计,在全球市场中,有十分之一的电子产品为伪造产品。避免产品因伪造而导致的收入损失也是产品设计团队的职责所在。幸运的是,目前已有产品能够帮助抵制电子伪造。从设备的角度出发,防范伪造侵害通常需要隐藏并保护产品中的机密信息。而这些“机密信息”则采用密码技术来保护设备中的关键数据或操作。只要这些密钥不被泄漏,安全设施就能够起到作用。
    隐藏的机密信息
    产品真的能够保护芯片中的机密信息吗?如果产品为构建于英特尔®无线可信平台(WTP)之上的移动电话,那么本地 WTP 应用编程接口(API)就能够安全地存储这些机密信息。它所采用的方法可能会使攻击者损坏设备中的 WTP 处理器。虽然对设备的伪造并非完全不可能,但这种方法显著提高了对移动设备成功伪造的成本,尤其在每个设备中受保存的“机密信息”都不同的情况下更为有效。
    即便没有专用的可信处理器,多家第三方半导体公司提供的其它安全组件也能够实现相同的功能。这些组件可以添加至产品的主板之中。另外,产品将要求最终用户记住某项机密信息,或采用混淆技术,将机密信息分为几个部分,并隐藏在设备中的不同位置。某些安全服务公司已掌握了密钥混淆的尖端技术。
    在安全领域,“机密信息”几乎可以与“密钥”等同。前者通常用于通称各种类型的密钥。当详细讨论机密信息保护时,就会涉及到各类密码。在后文中,当对密码作为安全构建模块进行讨论时,将会涉及到其中的某些类型。
    安全制造
    隐藏机密信息的产品必须符合目前全球制造环境的现状。简单说来,产品可能并不是由设计该产品的公司进行生产。很多公司与第三方制造商签订合同,使其生产产品,从而将利润最大化。通常,这些制造商与原始设备的设计公司并不位于相同的地理区域。尽管这种方法可能会提高嵌入式产品的市场收益,但它同时也造成了各种助长灰色市场的安全问题,尤其在伪造、克隆或非法过度生产活动方面更为严重。
    77.JPG
    防范克隆的机密信息和唯一的密码标识需要在制造过程中输入设备,但合同中规定的生产场所却是最有可能将密钥和标识泄露给伪造者的地方。产品设计和工程团队常常直接将其设计交给制造物流企业,而在这中间没有任何的安全生产计划或规定。在产品上市日程安排的实际情况中,最简单也是最不安全的密钥物流解决方案通常在最后一刻才加以实施:密钥以无保护格式(如电子邮件、FTP,或光学介质)批量发送给离岸合同制造商。企业应该仔细考虑如何消除工程设计团队与制造团队之间的安全鸿沟,而后在产品设计中添加专用的安全特性。此外,还应设计出专门用于密钥注入的特殊制造系统。
    “从安全工程师的角度出发,在设计安全产品时,除密码外,还存在着大量需要应对的技术挑战。”
    安全报废策略
    安全风险可能会在产品制成几年后才会显露出来。因此,开发人员需要事先考虑产品报废时可能发生的情况。最根本的问题就是固件克隆的记忆。旧款产品能否被轻易地改装,并在未来与新的产品竞争?反改装策略是个敏感的话题。例如,在欧洲,最新的环境友好型法律已经禁止在打印机上安装可能会阻止或限制改装可能性的设备。
    嵌入式产品正逐步采用通用计算平台(该平台是对操作系统的完善),这种平台可通过重新装配的固件进行配置。这种方法对于现场升级非常方便。但它同时也意味着产品能够出于某些原因,使用原本应在其它产品中使用的固件来重新分配任务。实际上,旧款产品可以采用新产品的固件进行改装,从而对创新技术产品的销售造成冲击。然而,如果在产品设计的过程中始终考虑到安全性和密码系统,则能够相对轻松地添加数字签名来进行固件升级。这一特性将有效防范未经授权的改装和翻新。需要注意的,如果没有对产品的整体安全设计给予足够重视,那么这一特性将很容易失去效用。
    采用加密系统的工程设计
    上文所提及的大部分设计注意事项都将采用加密技术来构建保护产品的安全措施。这意味着嵌入式设备应具备执行加密计算所必需的资源。此处,将基于英特尔® XScale® 处理器,对某些常用加密算法的性能指标评测结果进行对比。尽管密码系统并非实现安全性的最终目的,但它却是安全产品和系统的基本构建模块之一。因此,我们有必要知道各种加密算法在处理要求和存储上的不同。
    密码套件是一系列用于实施安全措施的补充加密算法。通常,套件中包括安全哈希函数(hash function)、对称密匙加密算法和公共加密算法。密码套件应该根据安全等级加以选择,使其处理时间和存储空间的预算可以被人们所接受。由于每种加密算法的有效性不同,因此套件中每种密码的密钥长度都必须进行调整,使其与相应的其它密钥匹配。
    例如,美国国家标准准与技术研究所(NIST)的高级加密标准(AES)为对称密匙密码。椭圆曲线密码(ECC)则为一系列非对称(公钥)机制。两种密码互为补充,可配合使用来实现产品的安全性。每种密码都有其自身的优势。
    88.JPG
    采用 128 位的 AES,其作用相当于 256 位的 ECC 算法。 RSA 则是另一种公钥密码算法。AES-128 相当于采用 3072 位密钥的 RSA。通常,更高的位数能够满足更高的处理要求。因此,谨慎选择密码套件对于嵌入式产品的高效设计至关重要。
    表 1 给出了在 Xscale® 处理器上运行不同密码的相对性能指标评测结果。注意 ECC 和 RSA 公钥数字签名操作不断增长的计算需求。性能指标的差距随着密钥长度的增加而增加。如欲获得详细信息和算法比较,请查看 NIST 网站(NIST 与 Certicom 的 ECC 常见问题解答的相关参考资料的详细列表位于:www.certicom.com/index.php?action=res,ecc_faq)。表二提供了 NIST 的一部分对比信息,这为审核美国国家安全局(NSA)的“Suite B” 算法提供了很高的参考价值,该算法主要针对基于美国政府的“密码现代化计划”的进一步建议和对比(www.nsa.gov/ia/industry/crypto_suite_b.cfm)。
    正如每个安全工程师都会强调的,密码系统应该从密码编码者那里购买,但工程师常常沉迷于编写自己的密码算法中的新奇之中。从安全工程师的角度出发,在设计安全产品时,除了密码系统外,还存在着大量需要应对的技术挑战。处理密码系统实施过程中的漏洞(前提是它们被查找出来)将增加项目实施阶段的时间和复杂性。而那些资源原本能够在高级安全测试和分析过程中得到更好的应用。通过实现高品质的加密算法,工程师可以更轻松地将密码作为构建模块,来解决更高级别的安全问题,同时也提高了它们解决此类高级问题的可能性。
    为产品设计安全性是一项综合性的工作。在产品设计阶段需要识别并解决对产品的威胁,这样安全措施就能够在设备处理能力和存储方面得到正确的预估。在产品的使用阶段内(实现其预定目标之前和之后)也必需处理好安全性问题。在产品生命周期的这些阶段内,忽略安全性将产生很多隐藏的漏洞,从而极大地影响了嵌入式产品的正常运行。
    99.JPG