0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

将物联网设备连接到云端的安全解决方案

电子设计 来源:郭婷 作者:电子设计 2019-03-19 08:27 次阅读

尽管人们越来越意识到需要安全性,但开发人员经常发现自己在安全性方面采取了快捷方式,将物联网设备连接到云端。在许多情况下,合适的安全机制的复杂性,微型电池供电的物联网设备中可用的有限内存和处理资源以及运输产品的需求之间的冲突似乎是不可克服的。

解决这些问题和为简化物联网设备中安全功能的实施,Microchip Technology和Google合作创建了一种方法,将Microchip的安全硬件功能与称为JSON Web令牌(JWT)的简单数据结构相结合。结果是确保物联网设备与Google Cloud IoT核心服务之间相互身份验证的简便方法。

本文将介绍物联网设备安全威胁,并介绍当前用于应对该威胁的设备。它将确定安全漏洞以及开发人员和嵌入式系统设计人员如何使用JWT关闭它们。

物联网设备的安全漏洞

对物联网设备的攻击可以采取多种形式,绝不仅限于大规模的物联网部署。对于希望利用用于分布式拒绝服务(DDoS)攻击的僵尸网络中的许多单个设备的资源的黑客来说,即使是最小的物联网也是一个很有吸引力的目标。因此,每一类物联网设备的设计者都不可避免地需要通过基于硬件的强大安全机制来保护他们的系统,从而阻止攻击。

例如,使用系统内存或闪存存储用于加密和身份验证的私钥会使IoT设备容易受到攻击。更糟糕的是,黑客可以窃取这些密钥并使用它们来访问物联网网络和附加的公司资源。

安全IC

Microchip Technology的CryptoMemory和CryptoAuthentication IC等专用安全设备具有硬件功能基于保护私钥和其他秘密数据的机制。 EEPROM阵列集成在这些器件中,提供安全存储,只能通过器件的SPI或I 2 C串行接口访问的加密安全机制(图1)。因此,这些设备提供了一种向任何物联网设备设计添加安全存储和其他安全功能的简单方法。

将物联网设备连接到云端的安全解决方案

图1:Microchip Technology硬件安全设备(如AT88SC0204C CryptoMemory IC)提供安全存储,使用集成加密机制保护对片上EEPROM的访问。 (图片来源:Microchip Technology)

Microchip CryptoAuthentication系列的成员(如ATECC608A)增强了安全存储基础,并支持安全设计中常用的加密算法。在其硬件功能中,该器件具有多种算法的硬件加速功能,包括:

非对称加密算法:

FIPS186-3椭圆曲线数字签名算法(ECDSA)

FIPS SP800-56A椭圆曲线Diffie-Hellman(ECDH)

NIST标准P256椭圆曲线加密(ECC)

对称加密算法:

SHA-256哈希密码术

基于哈希的消息身份验证代码(HMAC)密码术

AES-128密码术

AES-GCM( Galois字段乘法)密码学

密钥派生函数(KDF):

伪随机函数(PRF)KDF

基于HMAC的提取 - 并且扩展KDF(HKDF)

对于加密专家来说,这组加密功能代表了支持更高级别安全协议所需的全面机制列表。身份验证和安全数据交换。例如,KDF功能提供了传输层安全性(TLS)协议所需的基本机制,用于在交换甚至开始之前验证数据交换会话中的参与者。

在此协议中,TLS会话以客户端向服务器发送启动安全会话的请求。服务器使用其数字证书进行响应,客户端使用该证书来确认服务器的身份。在客户端以这种方式验证服务器之后,会话设置继续通过使用服务器的公钥来生成会话密钥,以加密使用PRF KDF或更强大的HDKF创建的一些随机值。

TLS身份验证协议是Internet安全的基础。称为证书颁发机构(CA)的整个证书提供商行业已经发展为支持安全通信的这一关键组件。公司从CA获得可信证书,以便在自己的服务器上安装,以支持上述标准TLS服务器身份验证协议。

对于物联网应用,网络与公司来源广泛而深入地连接,这种单向认证不足以确保保护。例如,具有欺诈性证书的黑客可以将自己表示为物联网设备的合法服务器,作为更广泛攻击的一部分。

尽管存在风险,但物联网开发人员经常难以实施TLS相互身份验证协议,因为证书,密钥,使用TLS实现客户端身份验证所需的软件可能会超出许多物联网设备的功能。通过合作,Microchip Technology和Google创建了一种替代方法,将ATECC608A功能与称为JSON Web令牌(JWT)的简单数据结构相结合。结果是确保物联网设备与Google Cloud IoT核心服务之间相互身份验证的简便方法。

基于JWT的身份验证

RFC 7519中指定,JWT是行业标准容器关于准备和传输JWT的实体的信息,称为索赔。 JWT结构本身包含三个部分:

标题,包括JSON名称:密码算法的名称(“alg”)的值对(例如,ECDSA的“EC256”使用NIST P-256曲线)用于签署令牌和令牌的类型(“typ”)(这些令牌的“JWT”)

Payload,包括JSON名称:每个索赔的值对

签名,它使用标头中指定的算法来编码密钥以及标头和声明集,每个单独转换为加密前的base64 URL编码表示

RFC 7519为在有效负载或其他部分中指定声明提供了极大的灵活性。该标准甚至允许在没有签名或加密的情况下创建的不安全JWT,在这种情况下,标头将包括算法的名称:值对{{alg“:”none“}。对于与Google Cloud IoT核心服务一起使用的JWT,Google需要签名部分以及包含三个强制声明的有效负载,包括:

“iat” - 以ISO 8601 UTC时间戳格式创建令牌时的“颁发时间”,自1970-01-01T00:00:00Z以来的秒数(例如,2019年6月30日的1561896000 12 :格林威治标准时间00:00 PM)

“exp” - 指定令牌到期时间的UTC时间戳,最大24小时超过“iat”值加上10分钟宽限期,以解决不同之间的系统时钟偏差客户端和服务器(例如,2019年7月1日1561982400,格林威治标准时间00:00 00:00)

“aud” - 包含开发人员Google Cloud项目ID的字符串

< p> Google的物联网设备身份验证方案将基于TLS的常规服务器身份验证与使用这些相对简单的声明创建的JWT进行物联网设备身份验证相结合。要启动新会话,IoT设备会打开一个到服务器的安全套接字,并使用前面描述的相同TLS协议对服务器进行身份验证。

此过程的下一步依赖于Google IoT云对用于物联网网络事务的轻量级消息队列遥测传输(MQTT)协议。使用安全套接字到经过身份验证的服务器,IoT设备使用其唯一的JWT作为登录密码“登录”到该服务器的MQTT主机服务(清单1)。

将物联网设备连接到云端的安全解决方案

虽然IoT设备发送用户名作为此登录序列的一部分,但用户名不用于身份验证。因此,传输了一个虚拟用户名(清单2)。相反,IoT设备的认证基于作为登录密码发送的JWT进行。由于JWT签名是标头,有效负载和设备私钥的组合,因此Google Cloud IoT核心服务可以验证JWT是否真正来自授权设备。对于此验证,Google Cloud IoT服务使用以前由IoT设备开发人员使用下述密钥管理流程存储在Google云中的设备公钥。与单独使用TLS相比,此方法通过混合方法提供相互身份验证,从而加快流程,同时降低物联网设备资源需求。

将物联网设备连接到云端的安全解决方案

关键使能器

ATECC608A及其供应链的功能是此方法的关键推动因素。虽然任何MCU最终都可以从JWT报头和有效负载生成加密加密签名,但任何仅使用软件执行的方法在没有基于硬件的安全密钥存储的情况下仍然容易受到攻击。此外,对于许多资源有限的物联网设备或具有严格响应时间要求的应用,“仅软件”实现所需的处理器负载和执行延迟可能是禁止的。最后,没有丰富的安全算法和更高级协议经验的开发人员很难实现所需的软件功能。 Microchip通过其CryptoAuthLib库解决了这些问题(图2)。

将物联网设备连接到云端的安全解决方案

图2:因为CryptoAuthLib使用硬件抽象层(HAL)将API函数和核心基元与底层硬件分开,所以开发人员可以定位他们的适用于各种支持设备的软件。 (图片来源:Microchip Technology)

Microchip CryptoAuthLib简化了安全IoT功能的实现,例如Google JWT身份验证协议,将复杂的安全操作简化为通过CryptoAuthLib应用程序编程接口(API)提供的一组函数调用。对于物联网开发人员而言,最重要的可能是Microchip CryptoAuthLib核心功能充分利用了诸如ATECC608A之类的Microchip加密IC,可加快设计中安全功能的执行速度。例如,清单1中对atca_jwt_finalize()的调用使用可用的加密设备(如ATECC608A)来创建用作清单2中密码的JWT。在这种情况下,ATECC608A加速JWT签名的加密,读取设计的私有来自其集成安全存储的关键,以完成前面描述的签名创建过程。

然而,即使使用复杂的软件和安全设备,由于传统上管理密钥和证书所需的方法,物联网设备仍然容易受到攻击。过去,私钥需要在外部生成并在制造,分发甚至部署期间加载到安全存储设备中。即使使用硬件安全模块和安全设施,在“需要知道”它们的唯一设备之外短暂存在这些秘密代表了可能导致其意外或意图暴露的安全弱点。通过利用ATECC608A的功能,Microchip和Google在很大程度上消除了传统的安全漏洞。

在这种新方法中,Microchip使用ATECC608A生成密钥对的能力,而无需私钥离开设备(图3)。然后,Microchip使用中间证书对设备生成的公钥进行签名,该证书由客户提供并存储在Microchip安全设施内的安全服务器中。最后,Microchip安全地将公钥传输到Google Cloud IoT设备管理器中的客户帐户,该设备管理器可为每个设备存储最多三个公钥,以支持密钥轮换策略。部署后,IoT设备可以使用ATECC608A安全功能来创建前面描述的相互身份验证过程中使用的JWT。

将物联网设备连接到云端的安全解决方案

图3:Microchip Technology和Google Cloud IoT服务相结合,简化了密钥和证书的配置,提供了一种旨在加强IoT应用安全性的受保护机制。 (图片来源:谷歌)

Microchip和Google之间的此次合作让开发人员可以完全卸载这一关键密钥管理流程。对于自定义要求,开发人员可以使用CryptoAuthLib API函数atcab_genkey()实现自己的密钥管理过程,这会导致ATECC608A生成密钥对,将私钥存储在其安全存储中,并返回关联的公钥。/p>

为了探索密钥生成和其他ATECC608A安全功能,开发人员可以快速建立一个围绕Microchip SAM D21 Xplained Pro评估套件构建的综合开发环境。基于Microchip ATSAMD21J18A 32位Arm ® Cortex ® -M0 + MCU,SAM D21 Xplained Pro套件提供了Microchip高级软件框架(ASF)支持的完整硬件平台驱动程序和代码模块。

为了评估包括ATECC608A在内的CryptoAuthentication设备,开发人员可以简单地将CryptoAuth XPRO-B附加板插入Xplained Pro板的两个扩展头之一。 Microchip提供了用于评估CryptoAuthLib与ATECC608A的安全功能的示例软件。更进一步,开发人员可以将Microchip ATWINC1500-XPRO Wi-Fi附加板插入另一个标头,以运行Microchip示例软件,该软件演示了本文中描述的相互认证流程,包括TLS服务器认证和JWT设备认证。

结论

虽然物联网应用安全带来了多项要求,但关键挑战通常在于为物联网设备和云资源实施相互身份验证。在资源有限的物联网系统中,传统协议可能超过可用内存和处理资源。使用Microchip Technology CryptoAuthLib库和ATECC608A CryptoAuthentication IC,开发人员可以实施基于JSON Web Tokens的更高效方法,以便将IoT设备安全地连接到Google Cloud IoT服务。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Google
    +关注

    关注

    5

    文章

    1699

    浏览量

    56754
  • microchip
    +关注

    关注

    52

    文章

    1443

    浏览量

    116801
  • 物联网
    +关注

    关注

    2860

    文章

    41250

    浏览量

    357384
收藏 人收藏

    评论

    相关推荐

    使用全球蜂窝无线电模块将物联网设备快速安全连接到云端

    作者:Jens Wallmann 如需将便携式或远程网络终端设备连接到联网 (IoT),或使用机对机通信 (M2M) 远程控制机器,通过云端进行数据交换的移动无线电
    的头像 发表于 01-01 17:04 417次阅读
    使用全球蜂窝无线电模块将物<b class='flag-5'>联网</b><b class='flag-5'>设备</b>快速<b class='flag-5'>安全</b>地<b class='flag-5'>连接到</b><b class='flag-5'>云端</b>

    桂花网蓝牙网关:功能强大、应用广泛的联网连接设备

    联网迅速发展的今天,蓝牙网关作为连接设备的关键组件,发挥着越来越重要的作用。北京桂花网公司作为一家专业的
    发表于 12-12 16:06

    联网vx2解决方案(车联网设备安装部署案例)

    之一,负责将车辆内部的数据传输到云端,并接收云端下发的指令。 在此篇文章中,我将分享一个使用SV900车载网关进行部署的车联网解决方案,以展示如何通过车载网关实现车辆的远程监控和管理。
    的头像 发表于 11-16 17:20 250次阅读
    车<b class='flag-5'>联网</b>vx2<b class='flag-5'>解决方案</b>(车<b class='flag-5'>联网</b><b class='flag-5'>设备</b>安装部署案例)

    MCU是怎么为联网端点设备提高安全性的?

    MCU 是怎么为联网端点设备提高安全性的?
    发表于 10-17 08:53

    基于飞腾派的边缘联网

    网络连接实现远程控制和监管。还可以通过手机 APP 或云端平台控制教室中的设备,以及监管设备的运行状态和故障情况。边缘
    发表于 09-21 16:50

    用于蜂窝连接的ST4SIM安全解决方案

    意法半导体的ST4SIM SIM和eSIM产品组基于基本型、加密型和GSMA SGP.02配置。我们的解决方案允许设备随时随地联网,同时确保资产安全。得益于合作伙伴提供的
    发表于 09-08 06:14

    STM32Wx赋能工业联网解决方案

    STM32Wx 赋能工业联网解决方案, 陈列了STM32 MCU 及 MPU 产品组合、STM32Wx 无线产品、2.4GHz 产品系列、Sub-GHz 产品系列等。
    发表于 09-05 06:06

    ARM联网整体解决方案-数据表

    ARM联网整体解决方案提供了一种独特的基于解决方案的方法,最新的专业处理能力与先进的软件和工具相结合。 ARM
    发表于 08-29 06:06

    新唐工业计算机/服务器安全智联升级方案

    和用户同样首重安全性,工业设备连接到网络,网络安全的议题是最重要的考虑,必须兼具安全与高互联性
    发表于 08-25 08:07

    新唐对应四大联网安全攻击的保护措施

    的防护。 Platform Security Architecture (PSA) 为联网装置定义了安全基础,是 Arm 于 2017 年所提出,主要希望提供一个清晰的框架来保护及整合连接
    发表于 08-21 08:14

    设计一个片上系统-为安全联网创建一个系统设备

    Flexible Access的IP。创建SoC解决方案的最快方法安全联网设备将使用Corstone-201基础IP。因此,本指南也可
    发表于 08-02 09:33

    如何模块连接到联网和Arduino板?

    我如何模块连接到联网和 Arduino 板
    发表于 06-12 06:12

    如何配置ESP8266以连接到VPN?

    的选择。 但这是我的问题: - VPN 是最好的解决方案吗? - 如果是:如何配置 ESP8266 以连接到 VPN?这有可能吗? 这样的项目 ——我是否也必须在我这边进行配置,或者只在
    发表于 06-01 10:16

    如何房间的窗户连接到联网

    看看我是如何制作一个很棒的项目的,我房间的窗户连接到联网
    发表于 05-22 07:40

    联网和智能电网之间的关系是什么

    联网应用,包括收集、处理能源和电力相关信息的系统。目标是提高电力的生产和分配效率。有大量的耗能设备具有连接到联网的能力。这有助于与公用
    发表于 04-07 09:22