主板资格认证
先决条件
硬件要求:
运行 FreeRTOS AWS IoT 库的基于 MCU 的开发主板必须有:
-
以太网、Wi-Fi 或蜂窝连接功能
软件要求:
《FreeRTOS 移植指南》中的移植流程图标识了基于 MCU 的开发主板所需的 FreeRTOS AWS IoT 库。最小子集为:
FreeRTOS 内核
coreMQTT
AWS IoT 空中下载更新 (OTA)
测试要求:
对照 GitHub 存储库使用适用于 FreeRTOS 的 AWS IoT Device Tester 定义测试
,验证 FreeRTOS 库所需的硬件平台特定 API 的实现。请参阅使用 AWS IoT Device Tester (IDT) 验证移植的 FreeRTOS 库。 通过使用 Device Advisor 的 AWS IoT Core 验证互操作性。请参阅使用 AWS IoT Device Tester (IDT) 验证移植的 FreeRTOS 库的步骤 4。
建议
为提高安全性,我们建议执行以下操作。
-
为防止离线或临时入侵成为永久性入侵,请将密钥和凭证存储在可抵御物理攻击的硬件信任根中,例如安全元件
或安全飞地。 -
为了降低可能导致未经授权的数据泄露的网络欺骗
和中间人 攻击的风险,请为实现 DHCP、DNS、TCP/IP 和 TLS 等协议的 FreeRTOS 库使用真随机数生成器 (TRNG) 。有关更多信息,请参阅使用确定性随机位生成器生成随机数的推荐 (NIST SP 800-90A) 中的第 50 页。
资格认证步骤
使用 AWS IoT Device Tester (IDT) 验证移植的 FreeRTOS 库
将 FreeRTOS 库移植到主板上。有关说明,请参阅《FreeRTOS 移植指南》。
创建一个测试项目,然后从 FreeRTOS-Libraries-Integration-Tests
GitHub 存储库中移植所需的测试。调用测试运行器任务 RunQualificationTest 。 注意
为了获得良好的开发者体验,建议移植 FreeRTOS 库,然后使用 IDE 在本地运行相应的单个测试组来验证集成。
测试运行器任务在单个测试项目中运行,或者在您的演示应用程序项目中运行。
创建一个
manifest.yml文件以列出您的资格认证中使用的所有依赖项。依赖项包括 FreeRTOS 库和测试存储库。有关详细信息,请参阅FreeRTOS 清单文件说明。注意
IDT 使用
manifest.yml来查找针对特定 FreeRTOS 库版本进行完整性检查所需的依赖项,并配置测试项目以构建、刷新和运行测试二进制文件。IDT 不强制要求特定的项目结构,而是使用
manifest.yml文件中包含的参考路径。-
使用 Device Advisor 验证 AWS IoT 的互操作性。
-
创建一个与上述测试中使用的 OTA 相同的组件的演示项目,包括 FreeRTOS 库、移植、集成任务。
为了获得资格,该演示应用程序必须具备以下功能:
执行 MQTT 发布和订阅主题。
执行 OTA 更新。
创建支持 OTA 更新的引导加载程序。使用您自己的引导加载程序或 MCUBoot
。参阅 Labs-FreeRTOS-Plus-MCUBoot 。
注意
FreeRTOS GitHub
存储库具有演示各个任务的预配置示例。还有一个集成的 coreMQTT 代理演示 ,其中包含了 coreMQTT 和 OTA 任务。另请参阅 FreeRTOS 精选 IoT 集成:资格认证项目示例。 -
AWS IoT Device Tester 将针对 AWS IoT Device Advisor 运行您的演示。资格认证需要以下 Device Advisor 测试用例。
测试用例 测试用例 测试用例 必需 TLS TLS 连接 是 TLS TLS 支持 AWS AWS IoT 密码套件 是的,使用推荐的密码套件 TLS TLS 不安全服务器证书 是 TLS TLS 主题名称服务器证书不正确 是 MQTT MQTT Connect 是 MQTT MQTT Connect 抖动重试次数 是,无警告 MQTT MQTT 订阅 是 MQTT MQTT 发布 是 MQTT MQTT ClientPuback QoS1 是 MQTT MQTT No Ack PingResp 是
-
从 AWS IoT Device Tester 中运行测试并生成测试报告。
-
IDT 会配置测试,然后自动构建并刷写您的主板。要启用此功能,您必须将 IDT 配置为在
userdata.json文件中为您的设备运行构建和刷写命令。请参阅《适用于 FreeRTOS 的 IDT 用户指南》中的配置构建、刷写和测试设置。 -
在
device.json文件中提供设备支持的功能,例如连接类型、加密算法、密钥配置方法,以便 IDT 确定要运行的适用测试。请参阅《适用于 FreeRTOS 的 IDT 用户指南》中的在 IDT 中为 FreeRTOS 创建设备池。 -
为 IDT 创建和配置您的 AWS 账户,以便创建所需的云资源。请参阅《适用于 FreeRTOS 的 IDT 用户指南》中的为 IDT 创建和配置您的 AWS 账户,以便创建所需的云资源。
-
提交准备
编写入门指南,以便在您的设备上运行 MQTT 或 OTA 演示项目。请参阅利用 FreeRTOS 指南为设备创建入门指南的说明。
提供威胁建模文档,验证您是否降低了在《FreeRTOS 移植指南》的移植 OTA 库中介绍的AWS IoT 设备引导加载程序的威胁建模中定义的风险。在 APN 合作伙伴中心
提交设备时,必须将此文档作为支持资产上传。 为代码下载提供公共存储库。我们建议您提供公司 GitHub 存储库链接。
资格提交
IDT 测试报告。
AWS IoT Device Adisor 测试报告。
威胁建模文档。
包含可供下载的源代码的 GitHub 存储库。