物联网(IoT)在很大程度上是一个现代的狂野西部。设备连接到网络而不考虑安全性,这为坏的参与者提供了一个诱人的进入系统的入口。更重要的是,这些设备很少更新,运行的固件与部署时一样不安全。这是一个你何时,而不是如果,妥协的问题。
我们如何保护设备并确保它们的安全?这就是微软的Azure Sphere——微软深入防御的物联网平台的用兵之处,该平台融合了硬件、软件和云来保护你的设备和网络。最初在2018年5月宣布,Azure Sphere最终实现了普遍可用,硬件和软件已经准备就绪。
Azure Sphere的核心是一个加固的基于arm的微控制器,其设计目的是实现微软所说的“高度安全设备的七个特性”。它们是基于硬件的信任、深度防御、小型可信计算基础、动态划分、基于证书的身份验证、错误报告和可更新安全性。像这样对硬件和软件设计采取一种自以为是的方法是明智的,因为它可以确保每个使用Azure Sphere的人都在同一个页面上,并且使用相同的安全模型。
第一个Azure球认证微控制器是联发科的MT3620。基于Arm的Cortex-A7设计,这是一个功能强大的芯片,足以运行基于linux的操作系统。这意味着它并不是市场上最便宜的设备——树莓派比Arduino还要贵。微软已经宣布了来自NXP和高通的额外硬件,让你可以选择不同功能的供应商和微控制器——NXP增加了人工智能和图形支持,而高通增加了蜂窝网络连接。
基于联发科MT3620的开发板,这是第一个Azure球形认证的MCU(微控制器单元)。
除了主要的Cortex-A7和wi-fi功能外,联发科的MT3620还有两个额外的Cortex-M4F内核来管理I/O和设备的许多其他功能。然后,整个芯片被微软自己的安全子系统Pluton锁定,并使用一个单独的Cortex-M4F来管理安全启动和监视系统操作。Pluton不是用户可以访问的:它是硬件和云托管的Azure Sphere服务之间的链接。
Azure Sphere MCU的架构:多核,每个都在不同的信任域中,信任的根驻留在微软的Pluton安全子系统中。
Pluton是Sphere处理设备安全的地方。核心是平台运行其加密过程的地方,包括它自己的基于硬件的随机数生成器和用于管理网络加密以及安全启动和测量启动操作的工具。它可以提供一种检测软件和操作系统篡改的方法。当一个Azure Sphere设备启动时,Pluton核心将确保平台的各个组件具有正确的数字签名,并尽可能使用远程认证来确认启动的软件是安全的。一旦设备启动并运行,Pluton将继续监视操作。
Azure Sphere是微软首次公开进军Linux世界。它已经在使用自己的Linux发行版作为Azure网络的一部分,但是Sphere的自定义内核和围绕它构建的软件打算用于更广泛的发行版。不仅如此,它还是软件运行的地方。微软为您的代码提供了所需的库,使它能够访问带有网络、存储和通信功能的Sphere微控制器硬件。为了保证设备的安全,它们是与硬件交互的唯一方式——没有通用的文件访问,也没有shell。您只能通过Azure Sphere服务的Azure组件或连接到开发人员PC的设备上的调试服务与您的设备进行交互。应用程序是用C语言构建的,在Visual Studio或Visual Studio代码中使用Azure Sphere SDK。如果您喜欢Linux,您可以在Visual Studio代码中开发Ubuntu 18.04,并且Windows和Ubuntu都可以使用与SDK绑定的命令行工具。您可以编写高级应用程序或低级实时代码,这取决于您计划如何使用Sphere微控制器。
Azure Sphere平台的关键特性之一是它的安全应用程序部署服务。每个Azure Sphere设备都有自己的唯一ID,存储在设备上。您将使用通过云服务管理的自己的ID来注册作为产品一部分的每个设备。一个设备只能是一个产品的一部分,产品可以组合多个设备。您可以将设备ID看作是微控制器的单个序列号,将产品看作是围绕Sphere硬件和软件构建的智能烤面包机。
Azure Sphere场景:配备了MCU的设备(本例中为DW100洗碗机)通过高级应用程序(在MCU上运行)与Azure Sphere安全服务和制造商的云服务进行通信。
一个有用的特性是能够设置设备组。这些工具可以帮助您管理部署,允许您为开发、测试和生产隔离一些设备。有5个默认的设备组,每个组都有不同的功能——例如,允许您将Azure Sphere操作系统的预览版部署到某些设备上,并控制哪些设备获得哪些应用程序版本。应用程序被分配到设备组并自动部署,因此您可以将部署过程构建到现有的软件开发生命周期中,使用独立的软件分支进行开发和测试,并通过合并到独立的生产分支来触发最终的部署。
Azure Sphere部署的核心是一个二进制映像。这是一个经过加密签名的二进制文件,它已经打包好,可以交付给所选的设备组。一旦交付,一个图像只能被替换,它不能被改变。映像只能由Azure Sphere管理员部署,所以要降低团队管理员的数量以降低风险。
参见:Microsoft Azure:内部人员指南(免费PDF)(TechRepublic)
部署由Azure Sphere云服务管理,使用与Windows Update相同的基础设施。虽然与市场上许多小型微控制器相比,Azure Sphere设备适用于更复杂的物联网应用和服务,但仍有可能部署到数十万台甚至数百万台设备上。从头开始构建软件部署和更新服务是不现实的,因此使用Windows update及其端到端安全性和经过验证的可伸缩性是非常有意义的。
Azure Sphere消除了物联网的大部分风险,这将使其成为其他物联网平台的一个有吸引力的替代选择,让你既可以使用安全的硬件,又可以确保你的软件和设备操作系统是最新的。构建在熟悉的工具和服务上也会有所帮助,使这些设备所需的应用程序更容易交付。