通过建立信任根来确保物联网的安全

时间:2019-01-25 14:28来源:21Dianyuan

摘要:互联世界对安全性的需求在很长时间内都是关注的焦点,这甚至在物联网(IoT)出现之前的很长时间内就已经存在。但是在物联网中有数十亿台设备收集数据并相互通信时,足以引起人们更大的关注。

本文作者:贸泽电子 Mark Patrick

互联世界对安全性的需求在很长时间内都是关注的焦点,这甚至在物联网(IoT)出现之前的很长时间内就已经存在。但是在物联网中有数十亿台设备收集数据并相互通信时,足以引起人们更大的关注。简单来说,物联网的庞大规模增大了攻击面,这意味着即使是能力最差的网络犯罪分子也有较好的机会来窃取你的秘密。

有一段时间,人们认为物联网的规模会产生自身的保护,通过默认方式来提供安全保障。然而,很明显的是,一旦发现任何漏洞(通常称为“零日(Zero Day)”),对其攻击和利用的方法就会迅速传播到全球各地。这可能(且可悲的是经常发生)就像对无线接口使用相同的默认密码一样简单,忽略了向客户解释在将产品投入使用时更改密码的重要性。在这个世界上,越来越多的设备具有无线接口旨在供本地网络使用,并能够对特定距离附近的任何人都会开放,这是一个巨大且太常见的疏忽。

借助一个不太好(甚至没有)的无线接口密码绝不是网络攻击者侵入私有网络的唯一途径,更通常的是网络上设备的行为方式。网络用户通常假设同一网络上的所有设备都是“友好的”,但显然事实并非总是如此。防止这种攻击需要更多的深谋远虑。

安全性较差的产品将再也无法避开窥探者的注意。设备制造商已经懂得,一旦设备投入生产和面市,从安全漏洞中恢复的成本可能远高于在设计阶段实施强大保护。

然而,对许多人来说,安全仍然是个谜团。他们可能会觉得所拥有的安全水平已经足够。但只有在“零日”到来之前,也许才是这样。

建立信任根
目前大多数设备是基于软件定义,即所执行的软件决定了设备功能,这一点在物联网的主力器件微控制器中最为明显。这种通用IC几乎完全采用嵌入式软件进行配置,因此遵循的逻辑是,控制该软件的人就可以控制微控制器及其所支持的物联网设备。确保微控制器在加电时加载和执行的软件真实正确、未经更换、且未被篡改,这就是我们现在称为建立信任根的内容。

适用于软件受到保护的术语名为“不可变(immutable)”,意思是它无法更改。当然,如果软件存储在设备上的方式不安全,那么软件仍然可以很容易地改变。但是如果有合适的技术,一旦有改变发生就可以检测到这种改变,这就是信任跟得以维持有效的原理。在实践中,软件应该在每次加载时使用某种形式的认证和确认进行验证,但也许更根本的是将软件存储在包含一些安全机制的非易失性存储器中,以便能够锁定代码以防止修改或篡改。对于需要通过无线更新的系统,可能会带来其自身的一些问题,但是如果通过不安全的链接进行固件更新其结果也是一样容易出问题。那么设备制造商该怎样来真正保护他们的设备呢?

你的数字指纹
根据资产保密的性质和等级,可以在物联网中应用多种级别的安全性。例如,通过简单地忽略已被篡改的数据可能是更安全且操作上可行的方式,此时所有的挑战在于篡改的检测。执行此操作的一种最常用方法是哈希码(hash code)。

哈希码是一种独特的唯一识别数字标记,类似于人的指纹,它是通过将数学算法应用于数字资产而生成,并且对于所有实际应用,它生成的值对于特定数据模式是唯一的。这意味着就任何数字资产而言,可以通过使用相同的算法重新生成其哈希码,并比较两个哈希码来进行验证。这种方法显然比将数字资产的每一位与“黄金”版本(这种版本甚至可能都不存在)进行比较更加简单和快速,并且比简单的校验和(checksum)更安全。在发送数字资产时,如果附加其哈希码,可以使任何其他设备轻松确定该资产是否已更改,如果有改变,则哈希码也将更改。通过这种方式,根据哈希码定义,无法通过哈希码验证的任何资产都属于被更改之列,因此应进行隔离或丢弃。

有很多种算法来生成哈希码,目前最广泛使用的可能是SHA-256算法。在软件中执行这种算法会占用大量处理性能,并消耗大量功率,这对于超低功耗微控制器单元来说显然是一个巨大挑战。出于这个原因,一些MCU现在采用硬件加速器通过SHA-256算法在数据上生成哈希码,还可以使用专用IC来单纯地执行加速加密功能,这意味着功能较弱或简单的MCU仍然可以构成安全系统的基础,并支持Root of Trust环境以实现安全的软件运行。

为了解释在实践中如何实现这一目标,这里考虑采用Maxim Integrated的DS28C36作为例子介绍。这是一颗经过安全认证的IC,可在具有任何MCU和外部非易失性存储器资源的嵌入式系统中使用,能够创建用于安全启动或无线固件升级的信任根(见图1)。


 
图1:Maxim Integrated经安全认证的DS28C36 IC。
 
它的工作原理是使用公钥和私钥以及SHA-256哈希码,在软件开始在MCU上运行之前对其进行验证。使用公钥和私钥方法,并通过对称和非对称功能,可实现这种验证(有关非对称公钥/私钥加密的更多详细信息,请参见下文)。在使用DS28C36时,制造商会在开发实验室等安全环境下生成公钥和私钥,私钥永远不会离开安全环境,因此不会被泄露。使用私钥可对固件进行编码,而相应的公钥则嵌入到设备之中。

上电时,MCU从外部存储器加载已使用私钥加密的固件。但是,它不会立即开始执行,而是MCU的启动管理器检索代码并将其传递给DS28C36,DS28C36调用其嵌入式SHA-256硬件模块并从固件生成哈希码,该哈希码是通过使用私钥并在安全环境中加密代码时生成,然后将其与嵌入在固件证书中的哈希码进行比较。再后,使用DS28C36内部的公钥,可以验证代码的签名,此时IC通知MCU(通过其GPIO接口)开始执行固件是安全的。这个过程甚至允许采用一个非常低成本、简单的MCU来实现信任根。可以使用DS28C36EVKIT来评估DS28C36(见图2)。


 
图2:DS28C36EVKIT评估板。
 
非对称加密 - 物联网安全的关键
长久以来,Cyphers一直用于敏感信息的加密,但最能够直接理解的是对称密钥方法,这很大程度上与使用钥匙打开门锁非常相似。任何拥有钥匙的人都可以打开锁,任何准确的钥匙副本也都可以使用。使用对称密钥方法加密数据时,发送方使用密钥加密数据,接收方使用相同的密钥对其进行解密。这种方法的弱点总是基本相同,无论是使用实体锁和钥匙,还是虚拟钥匙来锁定数字数据,只有密钥安全的情况下系统才会安全。如果密钥丢失,被盗或共享,则任何人都可以锁定(加密)或解锁(解密)资产。

这种情况使得安全密钥的存储和分发难以管理,特别是当数百万台设备需要相同密钥的环境下,这种情形在物联网部署中很常见。如果密钥被泄露,那么使用该密钥的每个设备都将受到损害。

另一种替代方案是非对称密钥方法,它使用两个不同的密钥,其中一个密钥为保密(私钥),而另一个密钥则无需保密(公钥)。实质上,私钥的状态与公钥在生成时并没有区别,任何一个都可以被指定为私钥或公钥。重要的是其中一个密钥要指定为私钥,且永远不会被共享。然后,在默认情况下,第二个密钥成为公钥,并且可以共享此密钥。事实上,公钥甚至可以自由发布在互联网上,供任何人使用,因为对绝大多数人来说,它完全没有价值。这是非对称密钥方法的核心潜在优势所在。

与大多数加密技术一样,非对称密钥方法也是采用一种算法,该算法生成两个不同但互补的密钥。用一个密钥加密的任何数据都可以用另一个密钥解密。但是,绝对不能用公钥对私钥进行反向工程复制,这就是为什么将其中一个密钥公开是安全的。因为公钥是免费提供,所以私钥持有者不能信任使用公钥加密的任何内容。相反,对于接收使用私钥加密消息的任何设备,如果使用公钥对其进行解密则是安全的。这就是通过哈希码进行身份验证非常重要的原因。

将上述非对称密钥方法付诸实践可以通过各种方式实现,其中之一是利用Microchip Technology的ATECC608A 加密认证器件(图3),这是一款功能齐全的加密协处理器,能够安全地存储多达16个密钥。它能够使用Elliptic Curve Digital Signature (ECDSA: FIPS186-3)、Elliptic Curve Diffie-Hellman (ECDH: FIPS SP800-56A) 和NIST Standard P256 Elliptic Curve Support通过硬件支持非对称签名、验证和密钥协议。它还具有面向对称算法的硬件加速功能,其中包括SHA-256和HMAC,以及AES-128加密/解密。此外,还支持安全启动和受保护的下载功能。


 
图3:Microchip Technology的ATECC608A。
 
ATECC608A的功能可以覆盖整个密钥生命周期(包括私钥生成),并且能够比标准微处理器上运行软件快1000倍的速度执行非对称加密功能。多个私钥和公钥组合可以安全地存储在设备本身,并且它还支持随机的私钥生成,且不允许私钥离开设备。公钥可作为创建私钥的一部分而自动生成,但也可以在事件之后生成。

保护云端
许多物联网设备将需要连接到在云端运行的服务,这可能会带来严重的安全威胁。如果这些服务是金融服务,就会成为网络罪犯特别感兴趣的对象。在本地存储私钥,而没有采用强大安全保护的物联网设备存在很大的风险。如果私钥被泄露,在网络犯罪分子拥有私钥后,他们就有可能创建无限数量的可信伪造设备,这就加强了使用ATECC608A等IC的必要性。

通过云端服务来补充其产品(如智能设备)的制造商现在可以使用云服务提供商和芯片制造商(如Microchip)集成的技术来保护这些设备。该过程包括在安全的生产环境中批量创建私钥,然后通过安全的TLS连接将其加载到ATECC608A单元,并放置在云服务提供商的服务器上。Amazon Web Services(AWS)IoT称之为自带证书(Bring Your Own Certificate ,BYOC)功能,并使用这种功能来验证互联设备向AWS IoT发送的消息。

认真对待安全问题
物联网现在是产品和服务的巨大结合体,其中的产品和服务完全是前所未有的。与许多技术创新一样,物联网进行了许多默默无闻的真正努力,但这并不意味着它在任何方面都是安全的。在互联设备中应用实施足够安全措施的需求从未如此强烈,借助于这里介绍的解决方案,OEM能够更容易地理解和整合这些措施。
 

免责声明:本文若是转载新闻稿,转载此文目的是在于传递更多的信息,版权归原作者所有。文章所用文字、图片、视频等素材如涉及作品版权问题,请联系本网编辑予以删除。
我要投稿
近期活动
帖子推荐更多

Copyright 2008-2024 21dianyuan.com All Rights Reserved 备案许可证号为:津ICP备10002348号-2