什么是 Azure Sphere?

Azure Sphere 是一种安全的高级应用程序平台,内置有适用于已连接到 Internet 的设备的通信和安全功能。 它包括一个已连接的安全跨界微控制器单元 (MCU)、一个基于 Linux 的自定义高级操作系统 (OS),和一个基于云的安全服务,该服务提供可续订的持续安全性。

Azure Sphere MCU 集成了实时处理功能,并且能够运行高级操作系统。 使用 Azure Sphere MCU 及其操作系统和应用程序平台,可创建连接 Internet 的安全设备,并且可远程更新、控制、监视和维护这些设备。 包括 Azure Sphere MCU 的连接设备(与现有 MCU 一起或取代)可提供增强的安全性、工作效率和机会。 例如:

  • 安全的应用程序环境、经过身份验证的连接和选择使用外围设备可最大程度地降低欺骗、恶意软件或拒绝服务攻击等导致的安全风险。
  • 软件更新可通过云自动部署到任何已连接的设备上,以便解决问题、提供新功能或抵制新出现的攻击方法,从而提高支持人员的工作效率。
  • 产品使用数据可通过安全连接报告给云,以便诊断问题和设计新产品,从而增加产品服务、积极的客户交互和未来发展的良机。

Azure Sphere 安全服务是 Azure Sphere 不可或缺的一部分。 利用该服务,Azure Sphere MCU 可安全可靠地连接到云和 Web。 该服务可确保设备仅使用授权版本的经批准的正版软件启动。 此外,它还提供了一个安全通道,通过该通道Microsoft可以自动下载和安装 OS 更新,以缓解安全问题。 制造商和最终用户均无需干预,便可关闭常见的安全缺口。

注意

Azure Sphere 将基于 PAPI 的接口称为 Azure Sphere(旧版),将集成的 Azure 资源管理器 接口称为 Azure Sphere(集成)。

Azure Sphere 方案

若要了解 Azure Sphere 如何在真实环境中运行,请考虑此方案。

Contoso, Ltd. 是一家白色家电制造商,该公司在其洗碗机中嵌入了 Azure Sphere MCU。 DW100 洗碗机将 MCU 与多个传感器以及 Azure Sphere MCU 上运行的载入高级应用程序相结合。 应用程序与 Azure Sphere 安全服务以及 Contoso 的云服务进行通信。 下图演示了此方案:

连接到 IoT、安全服务和制造商云目录Contoso 联网洗碗机

从左上角开始,按顺时针方向进行介绍:

  • Microsoft 通过 Azure Sphere 安全服务发布 Azure Sphere OS 更新。

  • Contoso 产品工程设计人员通过 Azure Sphere 安全服务发布其 DW100 应用程序的更新。

  • Azure Sphere 安全服务将更新后的 OS 和 Contoso DW100 应用程序软件安全地部署到最终用户处的洗碗机上。

  • Contoso 洗碗机支持与 Azure Sphere 安全服务通信,从而确定应在各个最终用户设备上运行哪个版本的 Azure Sphere 软件和 DW100 应用程序软件,并收集已向服务报告的任何错误报告数据。 Contoso 洗碗机还支持与 Contoso 云服务通信,以获取其他信息。

  • Contoso 云服务为应用程序的故障排除、数据分析和客户交互提供支持。 Contoso 的云服务可由 Microsoft Azure、其他供应商云服务或 Contoso 自己的云托管。

  • 最终用户处的 Contoso DW100 机型通过与 Azure Sphere 安全服务的连接下载更新的 OS 和应用程序软件。 它们还可以与 Contoso 的云服务应用程序通信,以报告其他数据。

例如,洗碗机上的传感器可监控水温、干燥温度和漂洗助剂剩余量,并将这些数据上传到 Contoso 的云服务,云服务应用程序会分析这些数据以确定是否存在潜在问题。 如果干燥温度异常(过高或过低),可能表示某个部件出现问题,Contoso 会远程运行诊断程序并通知客户需要进行维修。 如果洗碗机在保修期内,还可通过云服务应用程序确保客户当地的维修店内具有更换部件,从而减少维护次数和库存需求。 同样,如果漂洗剂剩余量过低,洗碗机会向客户发出信号,提示其直接从制造商处购买更多漂清剂。

所有通信都通过经身份验证的安全连接进行。 Contoso 支持和工程设计人员可使用 Azure Sphere 安全服务、Microsoft Azure 功能或 Contoso 特定的云服务应用程序来可视化数据。 Contoso 可能还会提供面向客户的 Web 和移动应用程序,洗碗机所有者可使用这些应用程序请求服务,监控洗碗机资源使用情况,或者与公司进行互动。

使用 Azure Sphere 部署工具,Contoso 将每个应用程序软件更新部署到相应的洗碗机机型,Azure Sphere 安全服务将软件更新分发到正确的设备。 只能在洗碗机上安装经过签名和验证的软件更新。

Azure Sphere 和高度安全设备的七个属性

Azure Sphere 平台主要目标是以低成本提供高价值的安全性,以便价格敏感的微控制器驱动型设备能够安全可靠地连接到 Internet。 随着联网玩具、设备和其他消费设备的普及,确保安全性至关重要。 不仅必须保证设备硬件本身的安全,还必须保证其软件及云连接的安全。 操作环境中任何地方出现安全漏洞都会威胁到整个产品,甚至可能威胁到附近的任何事物。

基于 Microsoft 在 Internet 安全方面数十年的经验,Azure Sphere 团队已经确定了高度安全设备的 7 个属性。 Azure Sphere 平台围绕这 7 个属性而设计:

基于硬件的信任根。 基于硬件的信任根可确保设备及其标识不可分离,从而防止设备伪造或欺骗。 Microsoft 设计的 Pluton 安全子系统硬件将生成不可伪造的加密密钥并对此进行保护,将由该密钥标识每个 Azure Sphere MCU。 这可确保从工厂到最终用户均不能篡改硬件信任根,保证其安全可靠。

深层防御。 深度防御提供了多层安全性,因此针对每个威胁具有多个缓解措施。 Azure Sphere 平台中的每个软件层都会验证其上一层是否安全。

小型可信计算基础。 设备的大多数软件仍在可信计算基之外,从而缩小了攻击面。 只有安全的安全监视器、Pluton 运行时以及 Pluton 子系统(均由 Microsoft 提供)在可信计算基础上运行。

动态隔间。 动态隔离舱限制任何单个错误的达到范围。 Azure Sphere MCU 具有硬件防火墙等硅应对措施,可防止某一组件的安全漏洞扩散到其他组件。 受约束的“沙盒”运行时环境可防止应用程序损坏受保护的代码或数据。

无密码身份验证。 相较于密码验证,使用由不可伪造的加密密钥验证的签名证书可提供更安全可靠的身份验证。 Azure Sphere 平台要求对每个软件元素进行签名。 设备到云和云到设备的通信需要进一步的身份验证,这可以通过证书实现。

错误报告。 设备软件或硬件中的错误在新兴的安全攻击中很常见;导致设备故障的错误构成拒绝服务攻击。 设备到云通信提供潜在错误的预警。 Azure Sphere 设备可以自动向基于云的分析系统报告操作数据和错误,并且可以远程执行更新和服务。

可更新的安全性。 设备软件会自动更新以更正已知漏洞或安全漏洞,无需产品制造商或最终用户进行干预。 Azure Sphere 安全服务将自动更新 Azure Sphere OS 和应用程序。

Azure Sphere 体系结构

Azure Sphere 硬件、软件和安全服务协同工作,实现了设备维护、控制和安全的独特集成方法。

硬件体系结构为连接的设备提供了一个基本安全的计算基础,通过该体系结构可专注于产品。

软件体系结构,在 Microsoft 编写的安全监视器上运行安全的自定义 OS 内核,同样可将软件工作集中在增值 IoT 和特定于设备的功能上。

Azure Sphere 安全服务支持通过安全的云到设备和设备到云通道进行身份验证、软件更新和错误报告。 这样可生成安全的通信基础结构,可确保你的产品运行的是最新 Azure Sphere OS。 有关云体系结构的体系结构关系图和示例,请参阅 “浏览 Azure 体系结构”。

硬件体系结构

Azure Sphere 分频 MCU 在单个芯片上包含多个内核,如下图所示。

硬件体系结构Azure Sphere MCU 硬件体系结构

每个内核及其关联的子系统都位于不同的信任域中。 信任的根位于 Pluton 安全子系统。 体系结构的每层都假定可能会危及它上面的层。 在每个层中,资源隔离和动态隔离舱提供了额外的安全性。

Microsoft Pluton 安全子系统

Pluton 安全子系统是 Azure Sphere 的基于硬件(硅片)安全的信任根。 它包括安全处理器内核、加密引擎、硬件随机数字生成器、公钥/私钥生成、不对称和对称加密、支持安全引导的椭圆曲线数字签名算法 (ECDSA) 验证、在硅片中支持使用云服务进行远程证明的标准引导,以及包括熵检测单元在内的各种篡改对策。

在安全启动过程中,由 Pluton 子系统启动各种软件组件。 它还提供运行时服务,处理来自设备其他组件的请求,并管理设备其他部分的关键组件。

高级应用程序核心

高级应用程序核心具有 ARM Cortex-A 子系统,该子系统具有完整的内存管理单元 (MMU)。 它通过使用信任区域功能实现基于硬件的进程隔离,并负责运行操作系统、高级应用程序和服务。 它支持两个操作环境:Normal World(NW),该环境在用户模式和监督器模式下运行代码,以及仅运行Microsoft提供的安全监视器的安全监视器的安全世界(SW)。 高级应用程序在 NW 用户模式下运行。

实时核心

实时核心具有 ARM Cortex-M I/O 子系统,可以以裸机代码或实时操作系统(RTOS)的形式运行支持实时的应用程序。 此类应用程序可以映射外围设备并与高级应用程序通信,但无法直接访问 Internet。

连接性和通信

第一款 Azure Sphere MCU 提供 802.11 b/g/n Wi-Fi 无线电,工作频率为 2.4GHz 和 5GHz。 高级应用程序可以配置、使用和查询无线通信子系统,但无法直接对其进行编程。 除使用 Wi-Fi 之外或不使用 Wi-Fi,正确配备的 Azure Sphere 设备可以在以太网上进行通信。

多路复用 I/O

Azure Sphere 平台支持各种 I/O 功能,因此可配置嵌入式设备以满足市场和产品需求。 I/O 外围设备可以映射到高级应用程序核心或实时核心。

Microsoft 防火墙

硬件防火墙是带有芯片的防御设备,它提供“沙盒”保护,以确保 I/O 外围设备仅可供它们映射到的核心访问。 防火墙实行区隔划分,从而防止位于高级应用程序核心中的安全威胁影响核心对其外围设备的实时访问。

集成的 RAM 和 Flash

Azure Sphere MCU 包括至少 4MB 的集成 RAM 和 16MB 的集成闪存。

软件体系结构和 OS

高级应用程序平台运行 Azure Sphere OS 以及特定于设备的高级应用程序,这些高级应用程序既可以与 Internet 进行通信,也可以与在实时核心上运行的支持实时的应用程序进行通信。 下图显示了此平台的元素。

Microsoft 提供的元素以灰色显示。

应用程序平台高级应用程序平台

Microsoft 提供并维护除特定于设备的应用程序之外的所有软件。 设备上运行的所有软件(包括高级应用程序)都由 Microsoft 证书颁发机构 (CA) 签名。 通过受信任的 Microsoft 管道提供应用程序更新,并且在安装之前验证每个更新与 Azure Sphere 设备硬件的兼容性。

应用程序运行时

Microsoft 提供的应用程序运行时基于 POSIX 标准的子集。 它由在 NW 用户模式下运行的库和运行时服务组成。 此环境支持你创建的高级应用程序。

除了其他约束,应用程序库支持高级应用程序所需的网络、存储和通信功能,但不支持直接通用文件 I/O 或 shell 访问。 这些限制可确保平台保持安全,并且 Microsoft 可以提供安全和维护更新。 此外,受限库提供了一个长期稳定的 API 曲面,这样系统软件可更新以提高安全性,同时保持应用程序的二进制兼容性。

OS 服务

操作系统服务托管高级应用程序容器,并负责与 Azure Sphere 安全服务进行通信。 它们管理所有出站流量的网络身份验证和网络防火墙。在开发过程中,OS 服务还与连接的电脑和正在调试的应用程序通信。

自定义 Linux 内核

自定义的基于 Linux 的内核在主管模式下运行,同时还有一个启动加载程序。 内核针对 Azure Sphere MCU 的闪存和 RAM 占用情况进行了精心调整。 它为在单独的虚拟地址空间中预先执行用户空间进程提供了一个曲面。 驱动程序模型向 OS 服务和应用程序公开 MCU 外围设备。 Azure Sphere 驱动程序包括 Wi-Fi(包括 TCP/IP 网络堆栈)、UART、SPI、I2C 和 GPIO 等。

安全监视器

Microsoft 提供的安全监视器在 SW 中运行。 它负责保护对安全敏感的硬件,例如内存、闪存和其他共享 MCU 资源,以及安全地公开对这些资源的有限访问。 安全监视器中转站和入口可以访问 Pluton 安全子系统和硬件信任根,并充当 NW 环境的监视器。 它启动引导加载程序,向 NW 公开运行时服务,并管理 NW 无法访问的硬件防火墙和其他硅组件。

Azure Sphere 安全服务

Azure Sphere 安全服务包括三个组件:无密码身份验证、更新和错误报告。

  • 无密码身份验证。 身份验证组件提供远程证明和无密码身份验证。 远程证明服务通过质询-响应协议连接,该协议使用 Pluton 子系统上测量的引导功能。 它不仅验证是否使用了正确的软件启动该设备,而且验证是否使用了该软件的正确版本。

    证明成功后,身份验证服务将接管。 身份验证服务通过安全的 TLS 连接进行通信,并颁发设备可向 Web 服务(如 Microsoft Azure 或公司的私有云)提供的证书。 Web 服务验证证书链,验证设备是否为正版、其软件是否为最新以及其源是否为 Microsoft。 然后,该设备可安全可靠地与联机服务连接。

  • 更新。 更新 服务 为 Azure Sphere OS 和应用程序分发自动更新。 更新服务可确保持续运行,并支持远程服务和更新应用程序软件。

  • 错误报告。 错误 报告 服务为已部署的软件提供简单的故障报告。 若要获取更丰富的数据,可使用 Microsoft Azure 订阅中包含的报告和分析功能。

默认情况下,使用 Azure Sphere 安全服务存储的所有数据均已静态加密。 安全服务使用每个此类服务的数据加密实现将数据存储在 Azure 存储Azure Cosmos DBAzure 密钥库中。