随着物联网的兴起,愈来愈多的新兴应用开始竞相崭露头角,例如:人工智能、车联网、以及愈来愈聪明的日常用品。为了因应整个新兴产业链〈包含品牌厂商、代工厂商(ODM)、方案设计公司、甚至是终端产品和客户〉对安全性的要求,目前主要的主芯片〈包含SoC系统单芯片、微控制器、微处理器、ASIC特殊应用积体电路〉设计公司,多半已整合了硬体的加密引擎、乱数产生器 (RNG) 、以及安全〈但有限〉的存储器存储空间在主芯片上。

尽管如此,多数的系统仍必须将开机程序码、固件、操作系统、应用程序代码、各项参数设定或使用者资讯等资料存在外部的闪存中,而现有的闪存皆使用几乎兼容的指令、接脚和封装,使得所有存在闪存中的资料,几乎没有门槛就能轻易地被复制而使用,导致产业链中各个环节都有可能被骇客攻击而造成财务、商誉、隐私等损失。

本文将详述安全认证闪存的独特性和安全性,以及如何与授权的主控制器配对,而加强闪存在系统上的安全性

现有方案的安全疑虑

有关外部闪存的存储,我们可以从两种状态来思考,一是静态资料储存于存储器中,另一是从外部闪存到主芯片的资料传输过程。

以最基本的防止产品或商标被盗用或复制为例,存储于外部闪存的应用程序代码在现行方案下,可以轻易的被复制、使用。若有心人士想要盗版某智能家居的空调自动温度调节器,只要对自动温度调节器的主机板进行拆解分析,就能精确识别所有标准化的零组件,进而正确而几乎毫无门槛或困难地复制主机板的所有配置,包含存在闪存里的应用程序代码等。

有鉴于此,为了保护闪存里的应用程序代码不被直接复制使用,最常用的方法,就是利用闪存内的唯一识别码 (Unique IDentifier,UID)。然而,UID事实上却只是个微不足道的屏障,任何具备基础安全知识的工程师,都能根据闪存的规格书轻易找到UID,并解除了主芯片与闪存之间透过UID的信任配对。一旦配对被解除,所有信任根源就瓦解了,闪存里的应用程序代码又可以轻易的被复制使用,上述的自动温度调节器也又回到了完全没有保护的状态。

上述所利用的安全系统弱点,在于所用的唯一识别码UID的独特性,不但永久不会改变,且为公开的明文,一旦从存储器中读出,即可删除配对或直接复制此UID,而使非授权的系统可以正常运作。

上述仅以保护设计、商标、或是方案公司授权金为例。其实在物联网的系统中,安全性所受到的威胁远远超过产品本身的仿冒,更严重的有可能是既有产品遭到恶意程序的植入和窜改,而使得原本的系统失去控制权,甚至被入侵后所发动的攻击,有可能间接影响该产品或公司的商誉。

既然如此,如何提升外部闪存的安全性,提升其被复制、窜改、甚至非法存取的困难度而提供比较安全的外部存储环境呢?

华邦的解决方案: 安全密钥储存及动态一次性认证密码

为防止产品或商标被盗用或复制、以及解决外部闪存透过网路被恶意程序植入和窜改的安全问题,华邦的安全认证闪存 (Authentication Flash) 提供特殊的密钥储存空间,以及透过单向性计数器 (Monotonic Counter) 和HMAC SHA-256 的算法所产生的一次性密钥,来克服UID 永久不变的明码的弱点,提升系统对于外接快产存储器资料存储、身分识别的安全性。

华邦的安全认证闪存 (Authentication Flash)

华邦电子生产各种串行式NOR型及NAND型闪存,并以此闻名,是世界顶级的串行式闪存制造与供应商,光在2016年就出货了超过21亿颗SpiFlash® 串行式闪存芯片,全球市占率约为30%。身为串行式闪存领导者,华邦电子努力解决闪存可能会面临到的安全疑虑,因此我们推出了W74M系列安全认证闪存 (Authentication Flash)。透过对称性加密,也就是让主芯片和存储器共享一个相同的「根钥 (Root Key)」做绑定(Binding)。

Figure 1_authentication 图一 : W74M多芯片封装架构

一旦根钥经过绑定,便绝不会在主机(认证者)和存储器(被认证者)之间直接传输,W74M 上的根钥特殊储存空间被设定为一次性写入(OTP),以防止被覆写,此外,根钥一旦写入,就再也读不出来 (没有读取的指令,即便原厂也没有办法读出已写入的根钥)。

而安全认证的流程,则是由根钥和随机数经杂凑函数SHA-256产生讯息鉴别码HMAC Key(Hash-based Message Authentication Code,HMAC),再将HMAC key 和单向性计数器 (Monotonic Counter) 通过HMAC SHA-256加密算法产生永远不会重复的一次性密钥 (One Time Password)。这个一次性认证用的密钥A,需挂载于主芯片发给W74M存储器的指令中。另一方面,W74M存储器也以相同动作产生的密钥B,并比对密钥A与密钥B,若相同则W74M才继续正常执行主芯片下的指令。

SHA-256为256位的安全杂凑算法(Secure Hash Algorithm),由美国国家标准技术研究所 (National Institute of Standards and Technology,NIST) 作为联邦资料处理标准 (Federal Information Processing Standard,FIPS) 发布的加密散列函数。此加密函数亦被用于处理金融交易,在实务中通常被视为无法破解的加密函数。

由于HMAC有一部分是由随机数生成,因此HMAC每次生成的数值皆不同。前面所提到的攻击模式,可以成功读取传统固定的UID,却无法对W74M进行攻击 (根钥是读不出来的)。而且由于SHA-256非常安全,实际上攻击者不可能透过解密HMAC找出根钥,因此这种方法可说是零风险。

图一显示了W74M两个重要的特性。第一,非挥发性的单向性计数器加强了存储器安全认证的强度。当根钥完成初始化时,计数器便依据主芯片的指令从零开始逐一增加,无法重设或归零。此计数器具有只限于存储器和主芯片才知道的唯一值。如果双方的计数器值不相等,存储器的HMAC数值就不会与主芯片计算值相同,这时W74M认证设备会将遭篡改的信号回报系统。

主芯片也可以使用上述安全认证原理,防止攻击者篡改存在闪存中的固件,借此保护主机系统免于遭受恶意软体的入侵。此外,也可防止攻击者使用储存不同固件或是应用程序代码的W74M芯片取代正版安装在主机板上的W74M芯片,而达到防止产品直接被复制使用的风险。

图一所示W74M另一个重要的特性是每个W74M芯片中有四组根钥、HMAC Key、单向性计数器的组合,其中任何一组可用于对主芯片的认证,而另外三组则可用于认证不同阶层的物件,如图二所示。

Figure 2_authentication 图二: 由W74M启用的多层认证

每个认证通道皆能安全地储存一组独立的根钥,对应所要认证的物件。换言之,每一个W74M都可以分别跟主机设备、网际网路闸道器、云端服务绑定不同的根钥,且皆保持秘密,任何一台设备都不会知道另一台设备之根钥。

这种多层认证能力可以实现另一个用途,那就是用一颗W74M芯片认证4个不同组件的合法性,例如下列无人机的复杂系统:

• 无人机之主要处理器

• 可拆卸电池模组

• 遥控器

• 相机模组

安全、加密的验证,使无人机制造商能确保品牌相机及原厂电池的限定使用,并防止未经授权的遥控器劫持飞行中无人机的可能性。

华邦的安全认证闪存 (Authentication Flash) 的导入

如上所述,W74M提供四组非常严谨的安全认证功能,且根钥储存于外部设备无法读取的一次性可编程记忆空间内。然而,W74M安全认证的实施和导入还需要系统的安全配置,才能确保从生产到成品的制造流程中,每组W74M和主芯片或其他阶层对象内的根钥为各阶层专属的秘密。虽然华邦电子可以提供W74M的根钥预烧录,但是绝大部份仍是由客户端依据W74M客制化的根钥配置在既有的生产流程中导入根钥的绑定。

W74M系列安全认证闪存芯片,提供32Mb至1Gb之间各种容量,并采用标准封装。这意味着W74M可直接使用在目前标准闪存的PCB脚位,减少物料成本及组件数的同时,提供最安全的认证级别。

W74M也可应用于不需闪存的多层物件认证,(产品型号W74M00AVSSIG及 W74M00AVSNIG)。

更多关于产品讯息请点击: 华邦电子安全认证闪存