EDN China > 技术文章 > 嵌入式系统 > 参考设计 > 正文
? 2016博客大赛-不限主题,寻找电子导师,大奖升级??

现实世界中的嵌入式安全

21ic?? 2011年05月12日 ?? 收藏0

  假如您是一位电子工程师,受聘于一家公司,职责是为汽水自动售货机添加嵌入式安全性能。在面试时,凭着对加密技术的渊博知识,您给新雇主留下了深刻印象。现在,表现的时候到了。从表面看来,这个工作应该像利用优良的加密算法挑选芯片一样简单,但现实世界可不是这样简单的。

  自动售货机等嵌入设备的安全隐忧

  为什么要召集大队人马来保护汽水自动售货机?因为汽水自动售货机存在安全隐忧,而且世界各地的机器制造商都感受到了这种实际存在的问题。通过机器固件提高安全性呈现出日益上升的趋势,虽然乍一看来,这些机器似乎并不需要这样的安全性能。汽水自动售货机是本文所选取的一个例子,你不难想到其他这样的例子:例如停车计时器、自助洗衣房里的洗衣机和烘干机、收费亭和售票机等。

  目前的售货机正在实现联网,以便提供有助于削减运营成本和增加收益的直观实时信息。现在,机主可以知道哪台机器需要维修,而且掌握着相关资料,可以选择最适合的产品组合并安装机器。实时信息是对抗竞争和盗贼的有利武器。利用这一信息流的竞争者可以利用这些信息来提高产品的竞争攻势,也可隐藏机主信息(例如,拒绝服务攻击)。同样,现在盗贼也知道可以抢劫哪台机器或者何时进行抢劫。

越来越多的应用领域发现了实现机器联网的价值

图1 越来越多的应用领域发现了实现机器联网的价值,从而引发了对嵌入式安全的需求

  如何实施保护

  上面做了简要的介绍,得出的结论是:产品设计者必须保护由自动售货机发送的信息。一种相当简单的方法就是对网络上的信息进行加密,并防止自动收货机内的密钥和固件被非法访问。

  网络信息的加密简单而直接。首先,确定一种良好的加密算法,最佳候选算法是那些公开算法而非私密性算法,因为公开算法已经通过了公众检验,高级加密标准(AES)算法便是一个很好的例子;接着,在自动售货机的MCU中应用该算法。为了实现这一点,您可以通过在固件中嵌入该算法,也可以选择在硬件中固化该算法的MCU。

  最后但同样重要的是,按照推荐模式使用算法。为了通过加密算法实现信息的安全性,所需的不仅仅是将明文顺序全部打乱以获得密文。大部分公开的算法都有运行的推荐模式,以此来保证它们加密数据的保密性。

  AES可用的样例模式包括密码段链接(CBC)、密码反馈(CFB)、填充密码块链接(PCBC)、输出反馈(OFB)和计数器(CTR),可将他们按照不同组合方式来加以使用,从而提高加密强度。有关这些算法类型和使用的深入讨论不属于本文讨论的范围。需要知道的一点是,仅仅拥有这些算法并不能保障安全。

  防止无正当理由获悉密钥或未经授权访问固件,这种做法不是那么直接,因此理解起来难度较大。对于许多安全措施而言,这往往最容易产生弱点。这一弱点源自对攻击者资源的低估和对硬件防入侵篡改的集成电路价值的低估。通常,人们把加密等同于安全,因此,没有看到防篡改保护集成电路的投资价值。

  选择安全MCU,还是采用其他方法

  您作为一名受人尊重的电子工程专业人士,通过阅读本杂志保持与当前业界趋势同步,您能够快速分析事实,并提出十分简单的解决方案:利用安全MCU替换自动售货机中的MCU,并增加少量的额外固件。安全MCU可以保护固件和密钥,加密通信,并实现硬件防篡改和防侵入。

  事实上,它们可以检测到多种复杂的攻击,并采取从简单的延迟应答到关机的各种措施。安全MCU是银行用来运营ATM机的IC芯片。现在让您设计一个解决方案,方案中不采用安全MCU,能办到吗?

  事实是,安全MCU成本更高,而且,您的公司也许要坚持使用它们的标准处理器。安全MCU的编写代码也比较难,导致更高的工程成本。

  现实世界中的工程解决方案

  当市场营销、采购乃至工程师同事们集体投票,对一个看上去具有绝对把握的解决方案进行表决,作为一名工程师,您该怎么做?重新设定您的期望。我们的做法是,这意味着,不必依赖安全MCU,不必期望固件的更大内存,也不要忽视任何改变。

  重新评估您的策略。不是把一切都集成一团,以放入安全MCU的单个保护外壳中,而是以不损害安全性能的方式,把系统分解成非安全的和安全的部分。非安全的部分将包含售货机的核心业务(销售)逻辑,而安全的部分将包括两个子组件,一个用于保护密钥,另一个用于验证系统完整性。

  密钥保护需要在物理保护之下进行存储和使用,这种物理保护与安全MCU所提供的安全保护相类似。这需要采用一种集成电路,这种集成电路须与安全MCU一样具备较强的物理性能,此外,无须其他东西。

  您也必须保护系统的完整性,防止系统运行中受到流氓固件的攻击,这些流氓固件可绕过加密,篡改数据或向未经授权的接收端发送数据。系统完整性的最好保护是,利用哈希算法检测固件内未经授权的改变,并采取相应措施。

  哈希算法生成一种被称为给定信息摘要的压缩指纹。就像人类的指纹一样,这个摘要是唯一的。被广泛采用的著名的安全哈希算法(SHA)就是一个哈希算法的范例。为检测固件篡改,在使用中,您需要定期地产生它的现场摘要,并与出厂时生成的参考进行比较。您也许已经在问,是什么能保证任何人都无法伪造摘要或参考。


上一页12下一页
?? ?? ??


打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

1.扫描左侧二维码
2.点击右上角的分享按钮
3.选择分享给朋友
?? ??

嵌入式安全? 自动售货机? MCU?

相关文章

我来评论
美国的游客
美国的游客 ??? (您将以游客身份发表,请登录 | 注册)
?
有问题请反馈