亚马逊AWS官方博客

Category: Internet of Things*

Certificate Vending Machine:IoT设备接入AWS IoT平台解决方案

背景介绍 为了保证通信的安全性,IoT设备与 AWS IoT平台的MQTT通信使用基于证书的TLS 1.2双向认证体系。所谓的双向认证,即意味着IoT设备端需安装 IoT设备证书,并且,该证书应该由IoT平台所使用的CA证书进行签发,从而完成IoT平台对IoT设备端的认证,反之亦然。 为了保证IoT设备和IoT平台的安全对接,对于IoT设备端,需要安装2类证书: IoT设备证书 IoT平台CA证书 何时应当使用 Certificate Vending Machine? 对于部分已经出厂的IoT设备,可能在生产过程中没有预装任何证书,但是又希望这些设备连接至AWS IoT平台。此时,Certificate Vending Machine (简称CVM) 可以作为给IoT设备写入相关证书的可行方案,让IoT设备自行向CVM 服务器申请AWS IoT平台CA根证书与IoT设备证书,并且通过AWS IoT管理平台控制设备证书权限,确保物联网通信安全。 通过此文档的设计思想和相关源码,开发者可以快速开发出符合自己项目需求的CVM系统。但是需要注意,由于默认情况下,原设备没有任何证书进行申请证书阶段的TLS认证,所以使用CVM的过程中需要注意三点: IoT设备与CVM系统通信时,原生并没有安全保护手段,所以需要在受信的DNS环境下进行,以防中间人攻击。或者采用其他安全链接的方式,例如使用HTTPS与CVM 服务器交互(需要额外证书)。 IoT设备在利用CVM系统申请证书时, IoT设备本身应该具备唯一标识符用于设备的身份标识,例如序列号,client ID或者product ID等,通过该身份标识符进行证书申请及策略绑定。 所有通过CVM系统申请获发的IoT设备证书的CA根证书,只可以为AWS IoT平台默认使用的CA根证书(VeriSign Class 3 Public Primary G5证书)。如果需要使用自定义的CA根证书来进行IoT设备证书的签发,请参考另一篇文档 – JITR证书注册方式,即,为每个设备在出厂前写入独立的IoT设备证书和CA 根证书。 CVM实现原理 整个CVM实现可以分为三个部分: IoT设备端、CVM 系统和AWS IoT 平台 A. IoT设备端需要完成的: 通过HTTPS 请求证书。 请求时携带设备序列号以及密钥。 B. CVM 系统需要完成的: 向IoT设备提供远程访问API接口。 CVM系统作为代理向IoT平台申请每一个IoT设备的证书。 […]

Read More

介绍 AWS IoT Analytics:比以往任何时候都快地大规模交付 IoT Analytics

我非常喜欢的一个技术领域是物联网 (IoT)。甚至还是在我很小的时候,我就常常惹怒我的父母,因为我会将他们买的玩具拆开,想看看工具的工作原理以及我是否能够设法将玩具重新组装在一起。似乎我注定最终要从事充满艰难而且不断变化的技术领域的工作。因此,毫不奇怪,我现在真的非常喜欢学习和摆弄 IoT 设备和技术。这融合了我对开发和软件工程的喜爱以及我对电路、控制器以及电气工程学科的其他方面的好奇心;即使我算不上是一个电气工程师。 尽管有通过部署 IoT 设备和解决方案收集的各种信息,但老实说,我从未真正考虑过需要分析、搜索和处理这些数据,直到我遇到了一种异常情况,对于发生的异常,通过大量传感器数据进行搜索和查询的能力变得至关重要。当然,我清楚分析对于企业的重要性,它们有助于做出准确的决策和预测以推动组织的发展。但是我一开始并没有想到,使分析成为我的 IoT 解决方案的不可或缺的一部分是如此重要。是的,我及时吸取了教训,因为此 re:Invent 服务的发布使任何人均可以更轻松地处理和分析 IoT 信息和设备数据。 你好,AWS IoT Analytics!AWS IoT Analytics 是 AWS IoT 的一项完全托管服务,可提供对从您的 IoT 设备中收集的数据的高级数据分析。利用 AWS IoT Analytics 服务,您可以处理消息、收集和存储大量设备数据以及查询数据。此外,新的 AWS IoT Analytics 服务功能集成了用于可视化数据的 Amazon Quicksight,并通过与 Jupyter Notebooks 的集成引入了机器学习的功能。 AWS IoT Analytics 的优势 通过提供对预构建的分析功能的访问,帮助预测分析数据。 提供将来自服务的分析输出可视化的功能 提供清理数据的工具 可帮助识别收集的数据的模式 了解情况:IoT Analytics 概念 通道:存档未经处理的原始消息并收集来自 MQTT 主题的数据。 管道:使用来自通道的消息并允许消息处理。 活动:针对您的消息执行转换,包括筛选属性和调用 Lambda 函数高级处理。 […]

Read More

Amazon IoT 安卓SDK 中国区实践

作者:任庆杰,AWS解决方案架构师。 简介 物联网(IOT)是现在非常火热的一个概念。那么怎么样利用AWS提供的IoT服务,快速在自己的安卓智能设备上搭建起IoT的消息推送和订阅呢? 本文将分两部分为你解读: 1)如何动态生成和绑定设备证书 2)如何利用MQTT协议接入Amazon IoT 平台 服务简介 AWS IoT平台 AWS IoT 是一种托管的云平台,使互联设备可以轻松安全地与云应用程序及其他设备交互。AWS IoT 可以支持数十亿台设备和数万亿条消息,并且可以对这些消息进行处理并将其安全可靠地路由至 AWS 终端节点和其他设备。借助 AWS IoT,您的应用程序可以随时跟踪您的所有设备并与其通信,即使这些设备未处于连接状态也不例外。 Amazon Cognito Cognito Identity 可让您轻松实现联合身份,您可以让用户通过Amazon, OpenID, SAML或者自定义的身份认证系统进行认证。匿名或认证登录后,IoT设备被赋予临时性受限权限凭证,可以利用此凭证访问 AWS 资源。 过程介绍 1.  获取连接IoT的权限证书 1)通过安装在安卓设备上的SDK连接Amazon Cognito,认证用户(本文示例将采用匿名模式),并且获取临时权限的Access Key和Secret Key。 2)使用临时权限向AWS IoT发起创建证书请求,激活证书并且下载。 3)将证书加密存储为Keystore在设备上,用以认证之后的IoT请求。Android Keystore保护你存储在设备上的证书,让它不容易被它人破解和提取。 2.  通过MQTT协议连接AWS IoT,并订阅和推送消息。 1)连接设备与AWS IoT,使用Keystore来通过认证 2)与AWS IoT的设备网关交互来订阅和推送消息 3)通过规则引擎还可以过滤消息,并调度AWS各种服务 操作指南 1.  配置环境 1)下载并安装Android Studio 2)下载样例代码https://github.com/awslabs/aws-sdk-android-samples/ 3)在Android […]

Read More