高安全等级嵌入式应用的设计考虑
扫描二维码
随时随地手机看文章
新闻总是乐于报道安全系统遭到攻击的事件:操作系统漏洞、非法入侵政府网络、的信用卡帐户信息被窃等等。安全性不仅仅涉及到和服务器,嵌入式领域也越来越关注安全性问题,例如交通灯、家庭安全系统、烟雾探测器、ATM、收银机等,由此看来,风险无处不在。
嵌入式系统需要安全保护的原因有多种,某些应用中,政府部门需要对敏感数据进行保护,例如:病历、信用卡信息等。有时还会对销售流程进行安全保护,例如,公司可能以低于成本价出售打印机,通过打印机耗材的高利润进行补偿。利用安全技术可以鉴别耗材的真伪,避免使用第三方的假冒产品。某些情况下,安全技术被用来保护知识产权,嵌入式设备中可能包含极具创新的算法,制成成品后,为了保护来之不易的产品设计,需要增加安全性,以防止盗版。
安全性设计是一个折中的过程一理想的安全产品设计将耗资无限,而不具备安全保护的设计则不需要任何安全功能的花费。每种特定应用都必须确定所要求的安全等级,具体了解安全系统需要保护什么?
加密安全吗?
选择合适的加密工具对于通讯架构来说至关重要,应选择公共算法,应用较为普遍的算法包括:DES、RSA或DSA。许多人认为选择一个模糊的私有算法会更安全,实际情况并非如此,公开算法已经经过学术界、政府机构和业内专家的评估。私有算法看起来安全,而且也经过一位收取一定费用的专家的评审,但是,如何保证事物背后的安全性,如何保证评审人员的可信度?另外,私有算法还可能需要支付许可权费用、版权费用等,限制今后的选择权。
尽管加密技术对于嵌入式系统的安全性来说至关重要,但这只是一个方面。假设现实世界场景中,两个人通过相互传递编码信息进行交流。攻击者可能窃取此信息,如果信息编码所采用的加密技术可靠,这种攻击将是无效的。有胆量的攻击者可能会直接对人进行攻击。与破解加密信息相比,强迫参与者泄漏通讯密码会更加容易。
这个例子对于嵌入式应用非常形象,例如ATM与银行之间的加密通信。试图破译传输线上的加密PIN数据几乎是不可能的,有些攻击者可能认为攻击ATM机更有效。攻击者可能会在夜深人静时打开ATM。在一系列攻击后获取ATM与银行通信的密钥。然后,攻击者将ATM恢复原位后离开。这种情况下,对传输线的监测使攻击人员获取了密钥,可以解密所有帐号和PIN数据。
值得庆幸的是,目前的ATM具备强大的物理层和逻辑安全技术的保护。当然,上述例子也提出了以下几个安全性问题:
·加密技术只提供一层保护,不能完全阻止攻击者的行为。
·贮存在ATM机中最有价值的东西是密钥,而非账号、PIN数据或现金。
·一个安全的嵌入式设备必须在遭受攻击时有所反应,擦除有价值的密钥。
对嵌入式系统的攻击
攻击者通过什么途径得到ATM的密钥呢?
攻击着可能从最简单的操作开始,假如密钥存储在外部存储器,攻击者只需简单地访问地址和数据总线窃取密钥。即使密钥没有连续存放在存储器内,攻击者仍然可以破解外部代码,确定哪个存储器包含有密码。引导装入、调试和测量状态下都是遭受简单攻击的薄弱环节。这些工作状态通常允许对微处理器内存和寄存器读/写操作。即使这些状态的文件不公开,对于有着广泛社交经验的工程师来说,通过微处理器厂商的雇员来获取这些信息也是轻而易举的事情。
尝试了简单的攻击手段后,如果没有达到目的的话,攻击者还会采取更为诡异的手段。从简单的时序和功率分析中观察加密操作的时序和功率消耗。对于设计不理想的加密过程可能会在处理密钥1时比处理0时消耗更多的时间和功率,这为攻击者提供了足够的信息,使其推算出密钥。如果这种简单的分析手段不起作用,攻击者便会使用差分能量分析(DPA)技术。差分能量分析是一种统计攻击方法,通过采集上千次运行时的能量损耗数据,最终,从功率脉冲信号中获取密码。虽然这种方法耗时,但可以自动操作。此外,攻击者还可能采用故障注入攻击,使微处理器运行在工作范围以外的条件下,从而产生故障信息,导致密码泄漏。攻击者也可能试图拆除微处理器的塑料封装,用微探针分析密码数据。内存具有规则的结构,很容易在硅片中识别出来,利用微探针设备可以很容易地对此操作。
面对上述种种攻击,工程师必须采取适当的措施为嵌入式系统提供有效防护。
防攻击措施
在高安全性应用中需要具有唯一的质询,单一品牌的处理器。安全微处理器,例如DallasSemiconductor的(图1),能够满足最高安全级别的设计需求。
优秀的安全处理器非常注重密钥保护,使用非易失备份储存敏感信息。这种应该采用定制的可归零或瞬间擦除的存储器,一旦检测到篡改操作时即刻擦除存储器内容。利用连续工作的或有供电的时钟检测篡改事件(例如温度攻击、电压攻击或微探针攻击)。这种安全监测可以确保攻击者利用外部时钟控制时无法阻止清零过程。使用片上存储器,攻击者无法窃取器件内部传输的密钥。另外,假如对器件实施物理攻击,密钥会被立刻擦除。
为了确保攻击者无法控制内存总线、插入可能窃取密钥的指令,安全处理器对外部存储器总线进行加密,并对程序存储器提供完整性监测,密钥随机产生,每个器件不同,这种加密方法确保攻击者无法复制或窃取产品设计,提供有效的知识产权保护。假如攻击者试图插入随机指令,完整性检查就会报告检测错误,认为侦测到篡改事件。
安全处理器同样配备了硬件加密加速器,可以在纳秒级(而不是毫秒级)时间内执行三DES算法。另外,硬件加速器设计运行在固定数量的时钟周期,不管密钥内容如何,都会消耗同样的能量。随机数生成器也能够把一系列虚假的执行周期添加到加密算法的头部和尾部,禁止功率时序分析。
结语
设计者必须确定具体应用对安全级别的要求,一次成功的攻击会产生什么样的后果。对于安全级别要求较高的嵌入式系统宁可废除其操作功能,也不能泄漏密码,必须对多种攻击措施有所考虑。对于防攻击措施要求较高的应用,可以使用等安全微处理器,能够在任何情况下对加密数据提供有效保护。