图2:基于闪存的安全系统方框图。 安全处理器及安全闪存服务
安全处理器为手机上运行的应用提供一个可信任的EE。手机OEM和网络运营商严格控制安全处理器上运行的软件,并且是与主机相互隔离的。只有经验证且信任的程序才能安装到安全处理器上。安全处理器上运行的软件比手机上运行的一般OS要小得多,故软件的验证比较容易。安全处理器提供与手机安全相关的四种安全服务(鉴权、数据完整性、数据保密性和非抵赖性)。图3给出了基于闪存的安全系统的软件结构。在主机平台上实现的API提供安全存储服务,以及加密服务。API将功能呼叫转换成通过存储器接口发往安全处理器的消息。
为了消除对安全处理器的恶意消息攻击,利用精心定义的语法和语义设计这些消息被。在一个消息中,每个变量长度的数据域的开始带有一个特殊标记,随后是域长度,它在数据之前。这与C字符串不一样,其长度只有当你浏览字符串并发现一个无效字符后方可知道其长度。有一个消息分析器来分析消息并检查是否是有效的语法,直到语法检查通过后才对数据进行处理,这就对缓冲器溢出这类的攻击提供了保护。然后,才根据消息中特定域将消息分发到正确的中介(agent)。该中介根据消息中的规定为缓冲器分配足够的空间,并经消息分析器验证。只有有限的中介来处理有限的消息,这些中介将仔细地分析安全漏洞。消息不能生成能够在安全处理器中执行的任意的本地代码。消息中没有功能指针。
安全处理器提供安全存储器服务,包括存储密钥、证书、代码和数据。可以根据应用中的安全需求来制订这些内容的访问权限。
图3:基于闪存的安全软件结构。 安全分区
非易失性存储器可以被分成独立的存储器分区,每个分区具有单独的访问控制。有一个单独的硬件强制性访问控制来控制程序的读取、程序的擦除,以及改变分区的访问权限的其它动作。访问可以通过密码控制,为了增强安全性,也可以采用PKI鉴权。在不同的寿命阶段,由不同的保管者来创建这些分区。例如,网络运营商可以创建一个代码分区,其中包括OS和运营商的其他验证软件。该分区将只有一个读取访问,没有任何的鉴权,故代码可以任意地执行。而同时,程序的擦除却需要运营商的PKI鉴权。这就防止了主机平台上运行的任何流氓软件来修改代码分区。从而在并非只是启动过程中的所有时间内,维持了OS和其他相关软件的完整性。
具有丰富的访问控制的安全分区提供了数据完整性和保密性。该分区可以被保护,免于未授权的人利用密码或PKI鉴权来读取访问。从而提供了所需数据的保密性。相似地,分区还可以被保护避免未授权的写操作,从而保持了数据的完整性。
该访问控制还具有一个附加功能,即定义了单独分区的可用性。例如,在通过SIM卡锁检查之前,主代码分区被锁定到只能读取。这就迫使在SIM卡锁检查没有通过之前无法使用手机。
存储对象
基于闪存的安全系统被用来存储数据、代码、密钥、证书以及代币。移动设备通常将密钥存在ROM中,但与闪存相比其灵活性较差且容量有限。在非易失性存储器中加密的密钥也能够提供保密性,但无法防止密钥被流氓软件擦除。而基于闪存的安全系统则允许存储一个虚拟的数量无限的密钥。在任何时候可以利用OTA更新来增加更多的密钥。通过将存储对象存储到合适的分区中,可以提供保密性,完整性和鉴权。
动态加密和加密服务
安全处理器还提供一个动态加密功能。该功能允许主机向存储器发送纯文本,文本在写入闪存时被加密。所用的加密算法是AES-CTR。
密码服务是PKCS#11 API的一个子集。API独立于主机平台,并支持对称密钥和公钥。API将功能呼叫转换成送往安全处理器的消息,在这里利用加密闪存内核进行处理。密钥的完整性和保密性得到很好的保护,因为它们不会离开安全处理器。由安全处理器提供的加密服务允许人们在安全处理器与外部服务器之间创建一个安全的通信信道。该通信通道的安全与主机平台无关。从而可以实现FOTA和移动商业这类的应用。安全处理器提供一个高级的设备鉴权,这是由于根密钥根本不会离开安全处理器。
结论
基于闪存的安全系统提供了一个可信任的EE,以及一个具有丰富的访问控制机制的安全非易失性存储器,支持多方保管。具有PKI的安全非易失性存储器意味着代码和数据的完整性得到保护,结果使数据完整性和保密性更加安全。鉴权和非抵赖性是安全处理器的结果,构成一个具有嵌入式加密闪存内核的隔离式可信任EE。此外,安全非易失性存储器使得数据在任何时候都可用。仅仅利用编码是不可能实现这一性能的。利用加密学,像MTM这类的其它方案虽然能够监测到数据是否被篡改,但却无法防止篡改。如果没有保护,病毒还能摧毁成千上万手机上的信用卡号,从而使得用户无法进行移动支付。
有基于闪存的安全系统提供的存储器完整性保护使得密钥的配置更加灵活。具有较大的容量来存储加密密钥和数字证书。更进一步,还能够通过空中无线接口进行密钥更新。
对PC和手机的许多攻击可以追溯到非易失性存储器中数据和代码的篡改。基于闪存的安全系统保护存储器免受这类攻击,而其他类型的手机安全方案则不能。像MTM或基带安全解决方案倚赖的是安全启动以及在运行时间内检查数据和代码有无变化。实际上,在检查时,修改的代码可能已经对敏感数据进行了篡改。而防止对数据和代码的篡改,构建一个可信任的EE是至关重要的。
采用基于闪存的安全存储器来创建并维护一个可信任EE将有助于实现更先进的手机应用,例如手机支付安全和可靠性应用,并增加公共机构和消费者的采用。
编辑:博子 | |