工业控制 | 能源技术 | 汽车电子 | 通信网络 | 安防监控 | 智能电网 | 移动手持 | 无线技术 | 家用电器 | 数字广播 | 消费电子 | 应用软件 | 其他方案

电路设计->综合电路图->综合电路图->安全存储器如何在可信任执行环境中发挥作用

安全存储器如何在可信任执行环境中发挥作用

作者:dolphin时间:2011-05-11

 如今的手机具有许许多多的新应用,包括存储敏感数据,以及提供像移动付费这类的安全业务。随着利用手机存储关键信息的现象前所未见地增长,如何保护手机不受那些能够盗取或滥用信用卡号码或安全数据内容密钥的流氓软件的侵害,并保护数据的安全正变得日益重要。
  手机需要一个可信任的执行环境(EE),来确保敏感数据的安全存储和处理而不被盗用。一个可信任的EE指的是任务的执行如预期所想。可信任的运算机构(TCG)采用行为名声(behavioral reputation)的概念,此时指的是文档中的“可信任运算”。可信任的行为是安全技术中的关键部分,因为它使人们相信一个EE的行为,进而允许人们分析环境安全的各个方面。完整了解如何创建和维护一个可信任的EE,将有助于像手机支付这类的应用。一旦客户、银行以及各种商业机构都能充分信任这些应用是安全的,这方面的应用将会增加。
  在《移动手机的安全》一书中,Chris J. Mitchell认为下面的几个方面是与移动运算相关的主要安全问题:鉴权、数据完整性、数据保密性以及非抵赖性(non-repudiation)。文中阐释了安全存储器在提供作为一个可信任EE的这些业务方面所扮演的关键作用,包括能够支持多方相关者的丰富访问控制机制。
  可信任的执行环境
  一个EE是一些定义一个运算架构的软硬件的集合。一个EE可以是一个带有存储器的简单CPU,或者是一个运行在负责管理一个处理器和各种外设的OS顶层JAVA虚拟机。一个可信任的EE是一个其执行与预期相一致的运算环境。TCG所指的行为名声的概念,就是本文中的可信任运算。
  显然,提供安全业务需要行为名声。TCG以及其它机构所采用的评估行为名声的方案是定义一个安全的启动过程,来验证手机的启动处于可信任状态。这个可信任状态的确认是通过验证手机中所执行代码(OS及其它)的完整性来获得的。
  但是,仅仅是提供安全启动对于提供一个可信任的EE来说是不够的,因为系统在安全启动后会遭受流氓软件的攻击,在任何大型的OS中都有一些流氓软件可以利用的安全漏洞。建议采用运行期间的完整性检查来确认代码的完整性。这些检查可以周期性地进行,也可以在关键事件发生前进行。不过,运行期间的完整性检查只能在攻击发生时方可检测到。虽然这可以降低破坏性的风险,但在存在流氓软件的环境中还不能提供一个可信任的EE。
  基于闪存的安全性
  许多对PC和手机的攻击可以追溯到攻击者修改非易失性存储器中的数据/代码。基于闪存的安全技术保护存储器免受这类攻击,防止未经授权的修改。单单是在基带处理器中提升安全保护的手机无法防止对闪存的修改。它只是能够检查到数据的修改而作为完整性检查的一部分,这种检查在某些情况下也显得有点太迟。
  TCG创建了可信任的平台模组(TPM)的概念,当其与PC集成到一起时,为大量的应用提供了改进的基于硬件的安全性。TPM是一个存储密钥、密码和数字鉴权的微控制器,通常安装到PC的主板上。TCG的手机工作组将TPM这一概念扩展到其MTM标准中手机的EE。与TPM和MTM不一样,基于闪存的安全不仅仅是检测完整性的失效,还确保完整性保持在一个合理的威胁模型(threat model)之下。该功能叫做完整性保护存储器,对避开针对手机的非易失性存储器的攻击非常重要。一个没有基于闪存的安全系统的MTM只能够检测数据/代码的变化,却无法有效地避免。但MTM检测到数据/代码的变化时,破坏可能已经发生了。
  基于闪存的安全所提供的完整性保护的另一个重要结果是数据的有效性。可信任EE的其它解决方案集中在数据的保密性上。例如,它们确保流氓软件无法读取用户的信用卡号码,但却无法保证信用卡号码不被病毒所删除,从而导致成千上万的用户无法使用他们的手机来进行移动支付。而基于闪存的安全技术则能够同时提供上述保密性和有效性。
  基于闪存的安全系统(图1)采用多芯片封装,包括非易失性存储器(闪存)以及一片提供对非易失性存储器的访问控制的安全处理器。该安全处理器还用作为一个可信任的EE,用于手机中提供安全业务。该安全处理器作为一个可信任EE是非常理想的,因为它最靠近存储完整性保护代码、数据以及密钥的非易失性存储器。因为它也是一个隔离的环境,只能执行基于闪存的安全系统所提供的专用软件,因而不会受到像缓冲器溢出这类的攻击。

图1:如何将基于闪存的安全系统嵌入到手机中。
  图2所示的是一个安全系统的方框图。其中,CPU是一片ARM7-TDMI处理器,运行速率约60MHz。加密引擎支持均衡加密(AES、DES、3DES)和非对称加密(PKI based on RSA)算法。安全处理器作为主处理器(基带处理器应用处理器)与闪存之间的看门狗,监控所有对闪存的访问。由安全处理器所提供的安全服务包括加密和闪存器件保护。

图2:基于闪存的安全系统方框图。
  安全处理器及安全闪存服务
  安全处理器为手机上运行的应用提供一个可信任的EE。手机OEM和网络运营商严格控制安全处理器上运行的软件,并且是与主机相互隔离的。只有经验证且信任的程序才能安装到安全处理器上。安全处理器上运行的软件比手机上运行的一般OS要小得多,故软件的验证比较容易。安全处理器提供与手机安全相关的四种安全服务(鉴权、数据完整性、数据保密性和非抵赖性)。图3给出了基于闪存的安全系统的软件结构。在主机平台上实现的API提供安全存储服务,以及加密服务。API将功能呼叫转换成通过存储器接口发往安全处理器的消息。
  为了消除对安全处理器的恶意消息攻击,利用精心定义的语法和语义设计这些消息被。在一个消息中,每个变量长度的数据域的开始带有一个特殊标记,随后是域长度,它在数据之前。这与C字符串不一样,其长度只有当你浏览字符串并发现一个无效字符后方可知道其长度。有一个消息分析器来分析消息并检查是否是有效的语法,直到语法检查通过后才对数据进行处理,这就对缓冲器溢出这类的攻击提供了保护。然后,才根据消息中特定域将消息分发到正确的中介(agent)。该中介根据消息中的规定为缓冲器分配足够的空间,并经消息分析器验证。只有有限的中介来处理有限的消息,这些中介将仔细地分析安全漏洞。消息不能生成能够在安全处理器中执行的任意的本地代码。消息中没有功能指针。



评论

技术专区