ATMEL白皮书:智能互连的物联网边缘节点的真正安全

物联网(IOT)掀起了近几十年来最大的技术浪潮之一。预计到2020年将有500亿台设备实现互连,形成可能覆盖我们周围一切事物的网络。物联网将跨越工业、商业、医疗、汽车和其它应用,影响数十亿人。鉴于其对个人、机构和系统的影响范围甚广,安全性上升成为所有物联网系统中最关键的组成部分,任何负责任的商业物联网企业都必须真正把握安全性的理念受到了广泛认可。

  在评估物联网网络脆弱性时,开发人员将目光对准了最基本的元素—边缘节点。而作为物联网中的“物”,数量众多的传感器和执行器向物联网提供数据并执行来自云端或用户与电脑、手机、车载系统、智能家电或其它平台交互产生的指令。边缘节点通常是小型低成本的智能设备,但正是由于它们访问的资源有限,往往被错误地认为不易受到攻击。与边缘节点交互的服务器以及与之连接的网络已经拥有了成熟的安全技术,而边缘节点到目前为止还未具备这样的技术。

  当谈到保护这样的系统时,人们常把“加密”与“安全”视为相等,但其实那只是安全难题的一个方面。创建安全环境的首要任务之一是稳妥地发现和证明连接到您网络的设备的身份。必须首先确定是谁要连接到网络,因为如果没有预先建立起安全的身份认证,加密和传输层安全协议(如SSL/TLS)做的就是“保护”那些根本不应该进入您的网络访问者。

图1. 尽管有安全通道,攻击者仍然可以从边缘节点侵入网络

图1. 尽管有安全通道,攻击者仍然可以从边缘节点侵入网络

  为了更好地理解节点安全,让我们以登录网上银行账户作类比。首先在您的电脑和银行网站之间建立一个安全的(即经过加密和认证的)连接(这是一个https链接)。然而,这个安全链接只是在您的电脑和银行之间创建加密通信通道时对您的电脑进行了验证,而并没有对您本人进行认证。此时,银行还不了解您是不是一个骗子。您需要输入密码。这个密码是您的加密密钥,所以从理论上来讲,只有您和银行知道。一旦它被发送到银行就会与已经保存的您的密码进行比较。如果相匹配,那么对银行而言,这证明您就是您所声称的人。从这个例子可以看到,网上银行的安全性由两个层次来提供:1)传输层建立安全连接,2)应用层通过密码证明(认证)您的身份。同样,如果物联网受到足够重视,那么物联网的节点安全也必须由多个层次来提供。

  物联网节点也使用传输层安全协议来创建连到云端的安全连接。但要实现真正的安全,物联网节点还必须获得应用层的安全性。这意味着不只是通信通道(即,管道),节点本身也需要经过认证。除了通道认证,应用层应建立加密和数据完整性检查机制来保护流经管道的数据。

  考虑到这一点,由于这些物联网设备往往是一些简单小型设备,而其操作绝少或无需与人互动,因此,也带来了一种新的网络连接范式。这通常会引发各种各样的疑问。一方面,对基础设施安全性的担忧让人们怀疑“如何确定一台物联网设备是可信的?甚至怎么知道连接到您的网络的是一台真实的物联网设备,而不是假扮物联网节点的某台恶意入侵设备?”。这遭到了一些现实问题的反驳,比如“有人知道我的温控器设定了几度又有什么大不了的呢?”、“谁在乎是否有人知道我的灯是开着的?”、“谁想知道我的计步器记录我走了几步路呢?”。

  如果您不仅考虑该设备访问了自身的哪些数据,还开始关心该设备已经在网络上访问了超出其本身范围的哪些数据,就会遇到更加实质性的问题。几宗广泛报道的数据泄漏事故是由非安全网络节点通过假冒身份造成的,而恶意入侵者可以伪装成一个物联网节点从而进入公司网络。一旦进入网络,安全性变得更加脆弱,它们最终能够访问受害者的客户数据库并破坏生产流程。如果恶意入侵者除了访问云服务,还可能访问并控制节点本身的操作,那么确定节点的身份(认证)将成为一个极为重要的考虑因素。

  尽管现有的SSL/TLS等网络安全技术可以很好地保护未遭受入侵的边缘节点与服务器之间的通信通道,它们却不是无敌的--不能防止非入网型攻击。可以很容易地看到,如果攻击者控制了边缘节点,SSL/TLS将无济于事。

  严密的安全性包括三个基本要素,其首字母缩写为“CIA”:

  · 保密性-Confidentiality:储存或以正进行发送的数据都应只供授权人可见;

  · 完整性-Integrity:发送的消息不应在到达目的地之前被修改;

  · 真实性-Authenticity:可以向人们保证“消息的发送者正是声称的本人”。

  满足这些元素要求的技术有多种,其共性是使用密钥或私钥作为验证识别标签的独特部分。如何管理这些密钥的存储和通信决定了系统的安全性。

  目前面临的挑战是在实现边缘节点安全性的同时确保可用计算能力、内存、电源以及预算维持在有限范围内。本文的目的是确定边缘节点的关键安全策略,说明密钥在所有安全解决方案中发挥的核心作用,并勾勒出成功的密钥管理技术。

  安全身份的级联裨益

  一旦某个节点或设备被确认为是“可信的”,便可充分获得无数的其它好处。包括安全通信、生态系统控制和安全存储。

图2. 通过身份验证的节点可以获得的众多好处。

图2. 通过身份验证的节点可以获得的众多好处。

  正如您所看到的,一旦可以验证物联网设备与自称相符,您就可以获得只可在可信、安全的环境中才能拥有的好处。

  边缘节点的隐患:什么可能出错?

  在讨论解决方案之前,我们需要更好地了解边缘节点存在哪些隐患,以便提供有效的保护。这其中包含两个方面:识别攻击者侵害节点的方法和了解这种攻击的后果。

  攻击模式

  有四种方法来侵入边缘节点:通过网络、通过外部端口、通过毗邻攻击(有时被称为“旁路攻击”),以及直接侵入设备。

  网络攻击。只有网络的入口得到最好的保护才能算是安全的。处在密切监控下却毫无保护的节点不再能够幸免:Shodan1等网络工具可以查找网络、识别出所有未受保护的节点。虽然TLS保护可以发挥巨大作用,但是边缘节点的TLS实现缺陷、加密算法未充分使用随机数、未监测出的恶意软件、黑客专家发起的猛烈协议攻击,甚至是最近发现的FREAK2攻击等协议本身的弱点都可能导致细微的漏洞。即使在受到全面保护的网络中,攻击者也可以通过伪造固件更新并以其编写的代码替换合法代码的方式来入侵防御薄弱的边缘节点。

  端口攻击。(有线或无线的)网络端口可能是小型基础边缘节点上唯一可用的连接。然而,复杂的边缘节点可能配有插入不同传感器的模块端口、USB或其它端口,甚至是无线端口来连接一些配件、耗材(如墨盒),或是用于测试和调试设备。每种端口均提供了一个接入边缘节点的机会。攻击可能通过一个未使用的端口,或者一个可以被拆卸并更换为设计用于实现攻击的其它硬件的配件来实施。与网络端口不同,没有既定的标准来保护这些端口。

  毗邻攻击。不连接任何边缘节点也可能发生复杂攻击。通过在无保护装置上进行电源线窃听,或是测量信号发送或振动,可以提取出密钥信息。利用制造功率波动等非法行为或故障可以把设备置于无记录非安全的状态下。

  物理攻击。最后,坚定的攻击者可能会拆卸边缘节点来探查其(有/无电源的)内部电路,甚至取出并逆向处理芯片来获取嵌入式存储器的内容。

  Comprehensive security must protect against all of these modes of attack.

  全面的安全保护必须防范所有这些攻击模式。

  后果

  当然,我们只看护那些我们认为有价值的东西。简单的传感器节点对于攻击者来说似乎没什么价值,但是成功攻击的后果却可以把整个网络和连接到该网络的所有东西都置于危险境地。

  通过突破边缘节点,甚至是网络的安全漏洞,攻击者可以获得其安全性应受到保护的所有秘密,特别是实现安全性所需的密钥。一旦获取了钥匙,便可突破包括加密和消息认证在内的所有其它安全保护。

  一旦攻击者控制了边缘节点,他或她就可以在不引发任何警报的情况下改变网络节点的行为。对于其它的服务器而言,被控制的边缘节点仍然是一个“可信”的实体,于是继续主动向其泄露秘密而丝毫没有发觉它们已经落入坏人之手。

  这种泄密会削弱消费者对其财务、医疗,身份及其它数据的隐私和安全的信心。同时(在美国)还可能违反美国联邦贸易委员会(FTC)对于贸易问题、美国医治保险携带和责任法案(HIPAA)/美国食品药品监督管理局(FDA)对于医疗保健应用,或美国证券交易委员会(SEC)/联邦存款保险公司(FDIC)对于金融交易的规定。对空域控制和道路交通系统等网络、电网、飞机和汽车的攻击还可能影响公共安全,部分不安全会造成工业运作的不可靠。

  密钥加密形成良好安全性的基础

  有很多种协议和方法可以解决各种安全问题,而所有这些均以一种或另一种方式使用了加密“密钥”。密钥类似于密码,但有两个关键不同:

  · 密码归可以控制和随意改变它们的用户所有。相反,密钥是系统固有的一部分,密钥的某些方面必须保秘,用户并不知道其安全事务中涉及的秘密或私钥。

  · 密码往往很短,只有十几个字左右。相比之下,钥匙长而神秘,只能由计算机而不是人类来读取。

  密钥可能是永久性的也可能是暂时性的,这意味着可以为特定的交易或通信生成、然后销毁密钥。在大多数情况下,密钥是系统中的秘密。为保证这些系统的安全通信,必须在创建系统时插入预先共享的密钥,或在部署之后实地进行安全的密钥交换。一旦获知对方的密钥,系统可以使用它们来验证消息或作为加密和解密算法的输入。由于多台终端设备可能拥有相同的密钥,将设备序列号引入算法有助于确保如果单台设备遭到黑客攻击,其获取的密钥只在该设备所在系统有效,而不会伤及其它。(这种技术被称为采用多元化密钥的“对称”认证。3)

  还有许多其它类型的交易。人们可能通过互联网从某个公司购买一件商品,这种交易就没有必要与其分享用户的秘密。因此,最安全的做法是使用公钥/私钥对,即所谓的“非对称”或“公钥基础设施(PKI)”系统。这意味着用户有两个密钥:从来不与任何人分享的私钥和共享的公钥。它们之间通过复杂的数学关系(如RSA或椭圆曲线Elliptic Curve)关联起来。关键是要确保用公钥计算出私钥是极端困难的。基于大素数分解的RSA密钥已使用多年。椭圆曲线密码机制(ECC)是一种新方法,由于可以用更短的密钥达到类似的安全级别,因此减少计算量,而越来越受欢迎。这两种密钥都是所谓的数学“陷门”系统,意味着其计算是极难反转的。(他们因为很容易通过,却不可能反向走出而被称之为“陷门”。)使用ECC和RSA(陷门函数)分解来尝试确定私钥的值是行不通的。

  安全性最基本的要求是避免密钥落入未授权人的手中。绝不能“明文”(没有加密)传输密钥,而私钥更是不能在任何时间任何范围内传输,包括在可以被攻击者“嗅探”到简单密钥检索操作的系统内。用软件实现的密钥意味着存储在RAM中的密钥可以被攻击者使用正确的工具探测到 -- 这是糟糕的实践。

  保护密钥的最好方法是存储在受保护的硬件,尤其是可以处理所有涉及密钥计算的硬件中。这样,密钥不会离开它的藏身之处,并且如果措施得当,可以对任何外部观察者屏蔽所有涉及密钥的操作。如果必须与其它实体共享密钥,那么它应该是一个使用秘密密钥计算出来并在通信时加密的(如在使用RSA的TLS协议情况下)临时(会话)密钥。私钥不应该离开它的保险柜。安全地共享会话密钥的另一种方式是使用椭圆曲线密钥交换机制(ECDH)等密钥协议算法,安全地保护各方私钥的同时只明文发送公钥。

  保护边缘节点的正确方法

  我们已经介绍了边缘节点受到攻击的多种可能方式。所有下列措施均涉及以一种或另一种方式保存密钥来确保挫败这些攻击。虽然不可能100%地保证安全,这些措施至少提供了可能的最佳保护,并确保攻击者无法获取关键系统的密钥。每个方法都满足CIA重要元素的要求:

  · 证明进入网络的所有访客的身份。(真实性)

  · 加密消息。(机密性)

  · 为所有消息附加消息认证码(MAC)以证明消息没有在途中被篡改。(完整性)

  · 验证试图附加到节点的所有配件。(真实性)

  此外,可以采取以下措施防止“毗邻”或“旁路”攻击。这些都是可以在整个系统或只在某一关键子系统中采用的实用方法。

  · 将密钥存储在受到保护的硬件中,确保无电路接触密钥。

  · 屏蔽系统以防止电磁辐射泄露密钥信息。

  · 添加特别电路以挫败监控功率或其它信号的企图。其中可能包括虚假计数器或带有随机元素争夺有用信息的电路。

  · 加密存储的密钥。尽管可以防止电路接触密钥,一个坚定的攻击者可能会尝试剥离芯片外层来查看其内部的嵌入式闪存,并以这种方式获取密钥。加密可以化解这种攻击。

  · 避免使用不必要的端口。有些端口看起来是有用的,例如调试端口;但是,如果存在不使用它的可能,那么没有该端口,系统反到更加安全。

  在整个制造过程中保护密钥也极其重要。一个深思熟虑的方案必须要保持密钥从其诞生到插入密钥存储装置的全程机密性。使用加密格式并在受保护硬件中存储密钥的硬件安全模块(HSM)是一个绝佳的、行之有效的方法。

  保护密钥的真正解决方案

  Atmel公司以加密元器件4的形式提供一系列的加密解决方案。作为硬件加密加速器的这些元器件往往注重的是其帮助主机处理器摆脱复杂数学算法的有用性。但还有一个更重要的方面:加密操作涉及到的密钥必须存储在隐蔽的受到保护的硬件中,确保密钥在软件或未受保护的硬件中进行同样的计算而可能暴露的方式下永不可见。

  Atmel的加密元器件包括ATSHA204A和ATAES132A,前者是基于安全哈希算法(SHA)对称性认证、对成本敏感的理想选择,后者使用高级加密标准(AES)算法进行对称性认证、同时提供32K字节安全的EEPROM)。Atmel公司的最新产品ATECC508A,在其前代产品ATECC108A上添加了椭圆曲线密钥交换(ECDH)5密钥协议。基于椭圆曲线密码机制(ECC)的这两款元器件都内置有基于椭圆曲线数字签名算法(ECDSA)6的非对称认证能力,所有四款加密元器件均以受保护的基于硬件的安全密钥存储为特征,这正是最强的优势所在。

  同时拥有椭圆曲线数字签名算法(ECDSA)和椭圆曲线密钥交换(ECDH)的ATECC508A是保障物联网边缘节点安全的完美选择。只需向物联网节点等含有微控制器的任何系统中添加一个微小的ATECC508A,即可为该系统方便有效地带来保密性、完整性和认证机制。

图3.ATECC508A与任何微处理器配合使用能够安全地提供保密性、数据完整性和真实性。

图3.ATECC508A与任何微处理器配合使用能够安全地提供保密性、数据完整性和真实性。

  只需很小的成本就可以将ATECC508A添加到任何微控制器中。它采用的单总线或二线制串行总线(I2C)仅连接最少的引脚数,封装规格可以小到2毫米×3毫米。小于150纳安的睡眠电流使其功率消耗极低。

  加密元件接收处理器提供的输入,在内部执行计算并返回签名、认证、会话密钥等计算结果,而不会泄漏计算方法。高品质的真随机数发生器(TRNG)有助于成功防止交易被回放。内部序列号有助于确保密钥的唯一性,而大容量的计数器则用于追踪认证过程。

  物理和加密的对抗措施使得攻击者无法通过嗅探操作或探测装置来获取密钥。

  · 整个芯片均覆盖着蛇形金属图案,阻止内部信号释放被外部检测到,并提供视觉障碍,阻止攻击者打开包装观察和探测操作。保护壳与其余电路通电相连,如果它被攻破,该芯片将不再运行,防止坚定的攻击者探测电路节点以获取密钥。

  · 调节器和计数器用于混淆电源和信号特征。

  · 没有额外的内部测试和调试衬垫,所以即使打开包装也不会发现额外的接入点。

  Atmel加密元器件的一个重要好处是,通过使用简单的模块(可从Atmel公司购置)可以很容易地在生产过程中进行配置,确保密钥和签名证书安全插入到加密元器件。也可以由Atmel或Atmel公司的授权经销商来进行配置。

图4. 在生产过程中配置ATECC508A

图4. 在生产过程中配置ATECC508A

  总结

  安全性是成功部署物联网7的基础。目前,边缘节点是确保物联网安全性中最薄弱的环节,而加密密钥的保护锁定了边缘节点。实现锁定的最佳方式是采用受保护的硬件。这是保持这些密钥和其它秘密远离窥探的唯一途径。Atmel的CryptoAuthentication™加密元器件系列产品提供了在受保护的硬件中存储并管理密钥以实现多层次安全性的坚实手段。Atmel公司广泛的微控制器、无线器件和加密元件的组合带来了智能、安全连接物联网及更多的尖端科技。

  参考资料

  1. https://www.shodan.io/

  2. http://en.wikipedia.org/wiki/FREAK

  3. http://www.atmel.com/Images/Atmel-8834-CryptoAuth-ATSHA204-Authenticatio...

  4. http://www.atmel.com/Microsite/security/overview.aspx

  5. https://www.semiwiki.com/forum/content/3966-ecdh-key-exchange-practical-...

  6. http://blog.atmel.com/2014/08/06/the-abcs-of-ecdsa-part-1/

  7. http://blog.atmel.com/2015/01/02/is-the-internet-of-things-just-a-toy/

来源:宿迁经信网