物联网 (IoT) 安全依赖于多层保护,可从物联网设备的硬件基础一直延伸到执行环境。不过,对于任何联网设备来说,威胁依然存在,针对云连接的典型物联网应用要求也可能让物联网设备和云服务暴露在新攻击之下。为了缓解这些威胁,物联网云提供商采用特定的安全协议和策略,但若使用不当,它们反而会让物联网应用更容易受到攻击。通过使用预先配置的开发板,开发人员可以快速借鉴主要物联网云服务所使用的安全方法,对连接进行身份验证以及授权使用物联网设备和云资源。
本文将说明两大云服务 Amazon Web Services (AWS) 和 Microsoft Azure 所使用的连接要求,并且介绍开发人员可以如何使用来自众多供应商的开发套件及相关软件,来快速连接这些服务。
物联网门户在云服务中所扮演的角色
当一台物联网设备连接到某个资源,如云服务或远程主机,其自身以及因扩展整个物联网网络而可能受到伪装成合法服务或服务器的威胁。相反地,云服务本身也面临着来自黑客的类似攻击威胁,黑客会模仿物联网设备事务以试图对云防御机制进行渗透。为了帮助确保保护物联网设备和云资源,云服务需要采用特定的安全协议对登录进行双向身份验证并对后续操作加以授权,以确定是否允许使用服务。此类协议通常包含在一系列服务内,以在物联网设备和云资源之间提供安全门户。
类似于其他可用的物联网云服务平台,AWS 和 Azure 分别提供特定入口门户,以供物联网设备用来与每家提供商的全套云资源进行交互。这些云资源包括虚拟机 (VM) 和软件即服务 (SaaS) 产品等。Azure IoT Hub 和 AWS IoT 使用功能类似的机制和能力组合,能够为各自相应的企业云产品提供此类门户。
在最低程度上,这些及其他物联网门户会使用特定的身份验证协议来建立安全连接。这些协议可通过每家提供商的软件开发套件 (SDK) 实现。对于 AWS,物联网设备使用双向身份验证来连接设备网关。而设备网关会使用设备注册表中保存的信息来连接物联网设备和其他物联网支持服务。该寄存器可存储唯一设备标识码、安全凭证,以及管理对 AWS 服务进行访问所需的其他元数据(图 1)。在 Azure 中,身份注册表具有类似的功能。
AWS IoT 和 Azure IoT 都提供有相关服务,能在与每台物理物联网设备有关的虚拟设备中维护状态信息。在 AWS IoT 中,设备影子将为 AWS IoT 提供此功能;而设备孪生则为 Azure IoT 提供类似功能。
这种安全门户概念可延伸到物联网边缘服务,例如 AWS Greengrass 或 Azure IoT Edge 等。这些边缘服务产品可将部分云服务和功能下放至本地网络,并且在大规模部署中,边缘系统会放置在靠近物联网设备和系统的位置。开发人员可以使用 Azure IoT Edge 等服务来实现应用业务逻辑,或提供所需的其他功能来缩短延迟,或向本地操作人员提供服务,如工业自动化等(图 2)。
应对物联网门户连接性要求
不管是通过边缘系统进行连接,还是直接连接至提供商的物联网服务,物联网设备通常需要满足一系列要求,才能连接提供商的物联网门户并使用提供商的云服务。虽然细节有差异,但物联网设备至少要提供某些项目,如私钥、X.509 证书或其他安全令牌。在设备-云连接序列的身份验证阶段,这些密钥、证书或令牌会为物联网门户提供关于物联网设备身份的认证或证明。此外,物联网云服务通常需要一套策略规范,用于定义物联网设备和云服务之间交互所需的访问权限。
和其他企业计算要求一样,需要使用由主要物联网云服务(如 AWS IoT 和 Azure IoT)指定的特定格式和程序,来提供用于身份验证的认证信息以及用于访问管理的策略信息。这些服务不仅在最低程度上支持基于证书的身份验证,它们还支持使用其他形式的认证。例如,开发人员可以在 AWS IoT 中使用以 JSON Web Token (JWT) 为基础的基于令牌的身份验证方法,或在 Azure IoT 中使用共享访问签名 (SAS) 令牌。
如前文所述,这些服务使用注册表来保存每台物联网设备的元数据。除安全和其他信息以外,此类注册表还会保存访问权限策略,而这些策略需要进行定义以连接物联网设备。虽然针对不同的云服务有不同的指定方式,但这些策略定义对不同通信通道和实体的访问权限进行了描述。例如,一项简单的 AWS IoT 访问权限策略可能会使用 JSON 格式来指明:AWS 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 格式来描述物联网设备的 AWS IoT 访问权限策略。(代码
转载请注明:IT运维空间 » 安全防护 » 物联网安全基础知识:安全连接到物联网云服务
发表评论