物联网应用连接到 Google Cloud怎样去实现
扫描二维码
随时随地手机看文章
Google Cloud 之类的企业级云服务为物联网开发人员提供了各种功能服务,从可扩展虚拟机服务到交钥匙型人工智能 (AI) 应用,不一而足。而这些服务的基本要求则是使用特定的安全方法来建立并维护物联网设备与云端之间的安全连接。但是对开发人员而言,实施适当的安全机制可能会导致延迟,从而增加本就交期紧迫的设计项目的复杂性。
Microchip Technology 的 PIC-IoT WG 开发板采用专用安全 IC 构建,为 Google Cloud 连接提供交钥匙型解决方案。该套件使用专用安全 IC,可提供一个综合性平台,用于加速开发能够安全连接到 Google Cloud 服务的物联网设计。本文介绍了安全连接的关键要求,并阐示了开发人员如何在典型的物联网设计中使用 PIC-IoT WG 来满足这些要求。
安全的复杂性
确保物联网设备与远程主机服务器之间安全连接的能力,是全面保护物联网应用和相关网络企业资源的基础。对于这些服务器和其他企业级系统可以提供的功能和性能,以资源有限的微控制器和最小内存构建的物联网设备则完全无法提供。若是希冀简单的物联网设备能传送传感器数据或实时操控致动器,而出于物联网设备本身的性质局限,即使只是实现最基本的安全算法,可能也无法达到处理要求。
安全方法所依赖的基本原则,即突破安全屏障所付出的代价应比屏障保护的资产价值更高昂。对于基于算法的安全方法,这意味着解密加密信息或破坏认证协议在计算方面应该是令人望而却步的。至少,破坏基于算法的安全性应当需要一定水平的计算资源和所需时间,其代价超过受保护数据或通信通道的价值或时效。因此,加密算法试图将有价值的数据掩藏在一系列复杂的计算密集型处理步骤之下,且必须使用密钥才能解开。例如,广泛使用的高级加密标准 (AES) 算法对数据进行多轮循环处理,各轮循环均包含数个步骤,即首先生成密钥,然后再进行字节替换、移位和矩阵计算(图 1)。
加密算法专门采用一系列复杂操作的示意图
图 1:为了使解密难以实现,甚至无法实现,加密算法专门采用一系列复杂操作,比如 AES 算法的这个步骤,将数据与私钥生成的字节相结合。(图片:Wikimedia Commons)
对于诸如 AES 一类的对称加密算法,加密信息接收者需使用相同的密钥才能解密数据。相反,非对称算法使用一对密钥,一个私钥和一个公钥,消除了因使用共享密钥可能造成的风险,可代价却是使计算变得更为复杂。采用这种算法时,发送者和接收者在交换公钥的同时,对各自持有的私钥保密。因此,其中一方可以使用另一方的公钥来加密信息,但信息只能使用另一方的私钥进行解密。
为了进一步提供保护,高级算法会建立在非对称公钥加密算法之上,仅在特定的信息交换会话期间,才允许安全交换用于加密数据的短期共享私钥。考虑到这些密钥交换的关键性,如椭圆曲线 Diffie-Hellman 算法 (ECDH) 等更高级的算法可将密钥深深掩藏在复杂的椭圆曲线计算之下。诸如传输层安全 (TLS) 之类的认证协议通过使用数字证书,将 Diffie-Hellman 密钥交换之类的机制与正式验证方法相结合;而数字证书可在公钥中嵌入来自认证机构(CA,可证明证书的真实性)的可验证数字签名。
正如简要说明所述,安全方法依赖于各层的加密算法和协议,而最终仍取决于私钥。虽然这些层次能经受住黑客的持续攻击,但如若私钥被发现了,整个安全结构顷刻就会分崩离析。
因此,基于硬件的安全密钥存储是物联网设备安全性的基本要求。此外,这些算法和协议的计算复杂性决定了对专用加密引擎的需求,这些引擎必须能够为资源有限的微控制器分担复杂的计算。
基于硬件的安全
专用安全元件硬件设备,如 Microchip Technology 的 ATECC608A CryptoAuthenticaTIon IC,具备保护密钥和提高加密算法执行速度所需的特性。除了这些特性外,ATECC608A 还提供片上 EEPROM,可安全存储多达 16 个密钥、证书和其他数据,以及其他必要的功能,包括符合 NIST SP 800-90A/B/C 标准的随机数发生器。
ATECC608A 不仅是一种安全存储设备,还可以提高多种算法的执行速度,包括用于对称加密的 AES 和非对称加密的 ECDH。此外,该器件还支持更高级别的服务,包括安全引导(请参阅“使用加密芯片为物联网器件设计增加安全引导”)。
除了通过分担这些算法的执行任务所获得的直接性能优势之外,ATECC608A 还具备加密引擎、安全存储和其他功能,将安全性从根本上提升到另一个层次:密钥与不受信任的实体保持隔离。这些实体包括不特别注重安全性的微控制器、微控制器上运行的软件以及使用软件的个人。设备还能生成私钥,这为制造或分销设施的部署提供更进一步的安全性。
与传统基于软件的安全方法相比,结果是减少了威胁向量的数量。这进而支持纵深防御原则,即有效安全策略的核心。
ATECC608A 的这种功能全面集成方式简化了硬件接口的要求。该器件可作为另一个 I2C 外设运行,甚至可以与其他器件共享微控制器的 I2C 总线,如 Microchip Technology 的 MCP9808 等数字传感器(图 2)。
Microchip Technology 的 ATECC608A CryptoAuthenTIcaTIon IC 示意图
图 2:由于 Microchip Technology 的 ATECC608A CryptoAuthenTIcation IC(左)完全在片上完成安全处理,因此可以提供简单的 I2C 硬件接口,与其他 I2C 器件一起使用,如 Microchip Technology 的 MCP9808 I2C 数字温度传感器(右)。(图片:Microchip Technology)
然而,就软件层面而言,ATECC608A 丰富的功能会使接口复杂化。Microchip Technology 的 CryptoAuthLib 库将接口抽象为一组直观函数调用,可在 CryptoAuthLib 应用程序编程接口 (API) 中使用。该库与 Microchip Technology 的 MPLAB X 集成开发环境 (IDE) 中的相关驱动程序和中间件捆绑在一起。虽然 CryptoAuthLib API 和驱动程序可为采用 ATECC608A 的定制设计提供基础元素,但在实现安全连接到 Google Cloud 所需的完整安全链方面,开发人员仍面临着其他挑战。而 Microchip Technology 的 PIC-IoT WG 开发板也能消除这一障碍。
开发端到端的物联网应用
PIC-IoT 板基于 ATECC608A 和 Microchip Technology 的低成本 PIC24FJ128GA705 16 位微控制器,这款无线物联网设计包含了 Microchip Technology 的 ATWINC1510 Wi-Fi 模块、Vishay Semiconductor 的 TEMT6000X01 环境光传感器和 MCP9808 I2C 温度传感器。此外,开发人员通过添加数百种 MikroElektronika 的 Click 板提供的传感器和致动器,可以轻松扩展硬件基础平台。对于软件开发,Microchip Technology 提供了 MPLAB X IDE 及相关的 MPLAB 代码配置器 (MCC) 快速原型开发工具。
该电路板和相关软件可以为基本端到端物联网应用评估提供交钥匙型平台,而这类应用的运行建立在物联网传感器设备与 Google Cloud 服务的安全连接基础之上。该套件以独特的方法实现了相互身份验证,即使对于资源受限的物联网设备也能进行验证。使用该方法,物联网设备可以使用轻型 TLS 服务来验证 Google 端的连接,并用 JavaScript Object Notation (JSON) Web Token (JWT),向 Google 服务器证明自身身份(请参阅“将 IoT 设备安全连接到云端的更简单的解决方案”)。除了器件驱动程序、板级支持包和中间件服务外,Microchip Technology 还通过 MPLAB 开发套件,并作为适用于 PIC-IoT 板的完整样例物联网应用一部分来演示该方法。
通过样例应用程序,开发人员不仅可以获得使用云应用的经验,还可以获得主要云服务提供商提供的物联网专用服务,将物联网设备连接到云端的经验。例如,物联网设备可通过 Google Cloud IoT Core 访问 Google Cloud 资源,该 IoT Core 提供了设备连接、相关元数据管理等所需的一系列服务(图 3)。
Google Cloud 提供专用服务 Google Cloud IoT Core 的示意图
图 3:与其他企业云提供商一样,Google Cloud 也提供专用服务 Google Cloud IoT Core,旨在满足将物联网设备与云资源结合相关的独特要求。