当前位置: 首页 > 科技观察

物联网安全基础:安全连接到物联网云服务

时间:2023-03-19 10:25:15 科技观察

物联网(IoT)安全依赖于多层保护,从物联网设备的硬件基础一直延伸到执行环境。然而,任何连接的设备仍然存在威胁,云连接的典型物联网应用程序要求也可能使物联网设备和云服务面临新的攻击。为了减轻这些威胁,物联网云提供商采用了特定的安全协议和策略,但如果使用不当,它们会使物联网应用程序更容易受到攻击。使用预先配置的开发板,开发者可以快速借用主要物联网云服务使用的安全方法来验证连接并授权使用物联网设备和云资源。本文解释了亚马逊网络服务(AWS)和MicrosoftAzure这两个主要云服务使用的连接要求,并描述了开发人员如何使用来自各种供应商的开发工具包和相关软件快速连接到这些服务。IoT门户在云服务中的作用当IoT设备连接到资源(例如云服务或远程主机)时,它本身以及整个IoT网络都可能因伪装成合法服务或服务器而受到威胁。相反,云服务本身也面临着来自黑客的类似威胁,他们模仿物联网设备交易试图渗透云防御。为帮助确保物联网设备和云资源的保护,云服务需要特定的安全协议来进行登录的相互验证和后续操作的授权,以确定是否允许使用该服务。此类协议通常包含在一组服务中,以在物联网设备和云资源之间提供安全门户。与其他可用的物联网云服务平台类似,AWS和Azure各自提供特定的入口门户,物联网设备可以使用这些入口门户与每个提供商的全套云资源进行交互。这些云资源包括虚拟机(VM)和软件即服务(SaaS)产品等。AzureIoTHub和AWSIoT使用一组相似的机制和功能为其各自的企业云产品提供此类门户。至少,这些和其他物联网门户使用特定的身份验证协议来建立安全连接。这些协议可通过每个提供商的软件开发工具包(SDK)获得。对于AWS,IoT设备使用相互身份验证连接到设备网关。设备网关使用设备注册表中保存的信息来连接物联网设备和其他支持物联网的服务。注册表存储唯一的设备标识符、安全凭证和管理对AWS服务的访问所需的其他元数据(图1)。在Azure中,IdentityRegistry提供类似的功能。AWSIoT和AzureIoT都提供维护与每个物理IoT设备关联的虚拟设备中的状态信息的服务。在AWSIoT中,DeviceShadow将为AWSIoT提供此功能;而DeviceTwin将为AzureIoT提供类似的功能。这种安全门户概念扩展到AWSGreengrass或AzureIoTEdge等物联网边缘服务。这些边缘服务产品将一些云服务和功能卸载到本地网络,并且在大规模部署中,边缘系统放置在靠近物联网设备和系统的位置.开发人员可以使用AzureIoTEdge等服务来实现应用程序业务逻辑,或者提供减少延迟所需的额外功能,或者为本地运营商提供服务,例如工业自动化(图2)。解决物联网门户连接要求无论是通过边缘系统连接还是直接连接到提供商的物联网服务,物联网设备通常需要满足一组要求才能连接到提供商的物联网门户并使用提供商的云服务。虽然细节各不相同,但物联网设备至少必须提供某些项目,例如私钥、X.509证书或其他安全令牌。在设备-云连接序列的身份验证阶段,这些密钥、证书或令牌为物联网门户提供物联网设备身份的身份验证或证明。此外,IoT云服务通常需要一组策略规范来定义IoT设备和云服务之间交互所需的访问权限。与其他企业计算要求一样,需要使用AWSIoT和AzureIoT等主要物联网云服务指定的特定格式和程序来提供用于身份验证的凭证信息和用于访问管理的策略信息。这些服务不仅最低限度地支持基于证书的身份验证,而且还支持使用其他形式的身份验证。例如,开发人员可以在AWSIoT中使用基于JSONWebToken(JWT)的基于令牌的身份验证方法,或在AzureIoT中使用共享访问签名(SAS)令牌。如前所述,这些服务使用注册表来保存有关每个物联网设备的元数据。除了安全和其他信息外,此类注册表还包含连接物联网设备需要定义的访问权限策略。尽管针对不同的云服务有不同的规定,但这些策略定义描述了不同通信渠道和实体的访问权限。例如,一个简单的AWSIoT访问策略可能使用JSON来指定在AWSIoT设备注册表中具有特殊“事物”名称的IoT设备只能在具有相同关联事物名称的通道中连接并发布消息(清单1)。{"Version":"2012-10-17","Statement":[{"Effect":"Allow","Action":["iot:Publish"],"Resource":["arn:aws:iot:us-east-1:123456789012:topic/${iot:Connection.Thing.ThingName}"]},{"Effect":"Allow","Action":["iot:Connect"],"Resource":["arn:aws:iot:us-east-1:123456789012:client/${iot:Connection.Thing.ThingName}"]}]}清单1:开发人员使用JSON格式描述IoT设备权限策略的AWSIoT访问.(代码来源:AWS)云就绪开发工具包虽然云提供商提供了有关此类格式和程序的详细规范,但提供商的支持论坛通常充满了开发人员遇到的非常小但非常重要的细节。使无法成功完成身份验证和访问管理。更糟糕的是,从安全的角度来看,无意中滥用身份验证或不完整的访问策略定义可能导致对物联网设备、网络和应用程序的攻击。有了现成可用的开发板和配套软件包,开发人员可以快速浏览这些连接程序,并使用供应商提供的示例快速连接到物联网云。例如,EspressifSystems的ESP32-AzureIoT套件或SeeedTechnology的AZ3166IoT开发套件均包含Azure认证的开发板,旨在轻松连接到Microsoft云。Microsoft提供了完整的分步演示,包括支持的开发工具包的身份验证和访问凭据等。以AZ3166开发板为例,开发人员只需按下板上的一个按钮即可发起与本地Wi-Fi网络的连接。连接后,他们可以使用MicrosoftVisualStudioCode的AzureIoT工具扩展包中的AzureIoTDeviceWorkbench开发、调试AzureIoT中心并与之交互。使用此工具集及其代码示例包,开发人员可以在AzureIoTHub中为IoT设备创建对象,并使用提供的文件配置关联的身份注册表,其中包含用于连接到AzureIoTHub的网络板的凭据和其他元数据(图3)).AzureIoTDeviceWorkbench提供额外的支持软件和元数据,使开发人员能够快速加载AZ3166板和代码示例,并开始将板的温度和湿度传感器的测量值流式传输到AzureIoTHub。在IoT云中创建物理IoT设备的表示和配置相关注册表所涉及的必要步骤只是将设备连接到IoT云。但是,要充分利用云服务,AzureIoTHub还需要访问权限策略。要监控来自AZ3166传感器的设备到云的消息,开发人员只需使用Azure共享访问策略屏幕来选择旨在快速启用必要访问权限的预构建策略(图4)。使用AWSIoT时,开发人员可以求助于开发套件,例如MicrochipTechnology的AT88CKECC-AWS-XSTK-B零接触配置套件和配套软件,以快速评估云连接。此版本是对早期Microchip零接触配置工具包的更新,预加载了身份验证凭据。使用套件随附的其他脚本,开发人员可以快速将他们的电路板连接到AWSIoT,而无需处理私钥和证书(请参阅“安全锁定IoT设备的零接触方法”)。其他开发套件包括Renesas的RTK5RX65N0S01000BERX65N云套件和InfineonTechnologies的KITXMC48IOTAWSWIFITOBO1AWSIoT套件,它们扩展了对AWSIoT连接的支持并支持快速开发基于AmazonFreeRTOS的应用程序。AWS提供了详细的说明来帮助注册板、创建身份验证凭证以及加载提供的JSON策略以连接到AWSIoT和使用AWS服务。简化大规模物联网部署的配置开发工具包(如前文所述)可以作为快速构建物联网应用程序原型和探索物联网云服务连接需求的有效平台。但在实际应用中,开发人员通常需要转向更高级的方法,旨在简化实际应用中物联网设备的配置。AzureIoT和AWSIoT都支持各种方法,以允许在大规模部署中对单个设备或大量IoT设备进行更自动化的配置。以AWSIoT为例,开发人员可以使用引导程序进行证书配置。也就是说,智能产品附带引导凭据,其中包含请求和访问新凭据的相关最低访问权限(图5)。使用引导证书时,设备可以连接到云(参见图5中的“1”)、请求(“2”)新证书、接收(“3”)由AWS无服务器Lambda函数生成的证书URL,并从AWS无服务器Lambda函数中检索("3")证书URL。AWS简单存储服务(S3)存储桶检索(“4”)证书。相反,使用新凭证,设备可以重新登录AWSIoT(“5”)以继续正常操作。AWS还提供其他云服务,以支持使用AWSLambda函数等执行资源动态配置身份验证令牌。例如,汽车应用程序可能依赖于一系列临时连接,其中使用令牌更实用、更安全。在AWSIoT身份验证和授权模块批准令牌请求后,AWSSecurityTokenService(STS)生成令牌以传输到汽车系统。使用此令牌,这些系统可以访问需要通过AWSIdentityandAccessManagement(IAM)服务进行身份验证的AWS服务(图6)。AWS为访问权限的动态分配提供了类似的功能。此时,其他AWSLambda函数被分配了一组与有效令牌关联的策略(图7)。其他物联网云服务允许开发人员更有效地处理大规模部署中的配置。例如,AWSIoT提供队列配置功能,包括支持前面描述的引导方法的更大规模部署。AzureIoT的设备预配服务提供组注册功能,以支持使用相同的X.509证书或SAS令牌预配大量IoT设备。共享安全责任物联网云提供商提供了几种有效的方法来提高物联网应用程序的端到端安全性。尽管如此,IoT开发人员不能指望这些方法能够完全满足其特定IoT应用程序的安全要求。在实践中,云服务提供商使用特定模型(例如AWS的责任共担模型)来仔细概述其在IoT应用程序安全中的特定角色和职责(图8)。AWS和MicrosoftAzure都提供共同责任文档,描述和解释提供商自己的角色以及客户在保护资源、数据和应用程序方面的角色。在其文档中,Microsoft还概述了共享安全责任与合规性要求之间的一些关系。最后,云提供商还负责保护云,而客户负责云中使用的应用程序、数据和资源。总结IoT应用程序依赖于基于硬件的加密和安全密钥存储机制构建的安全层。与任何联网产品一样,当物联网设备连接到云服务时,任何形式的交互都可能存在安全威胁。为了保护自己和他们的客户,物联网云提供商对身份验证和访问管理有特定的要求。虽然提供商会提供有关此类要求和相关规范的详细文档,但开发人员可能会发现,他们为实现安全连接而付出的努力有时会使资源面临风险,甚至适得其反,使它们无法访问。使用开发板和相关软件,开发者可以快速连接云服务,快速设计物联网应用原型,同时确保端到端的安全性。