构建安全的物联网解决方案(1-2)IoT 应用程序设计开发
大部分 IoT 解决方案都包含三个主要的层。在每层中运行的 IoT 解决方案组件需要包含特定的安全措施,以防范各种漏洞。
获取设备模拟器的代码
MQTT 是一种用于 IoT 设备和应用程序的最流行的消息协议,它得到了 IoT 领域的许多关键参与者的支持。MQTT 为 IoT 解决方案提供了一种轻量型、容易使用的通信协议。
MQTT 本身指定了一些安全机制,但所有常见的实现都支持最新的安全标准,比如用于传输安全的 SSL/TLS。MQTT 没有强制要求对其应用程序使用某种特定的安全方法,而是将决定权留给了应用程序设计者。因此,IoT 解决方案可以基于应用程序上下文和特定的安全需求。
大部分 MQTT 部署都使用了传输层安全(Transport Layer Security,TLS),所以数据已加密并经过了完整性验证。类似地,大部分 MQTT 实现(包括 IBM Watson IoT Platform 中的实现)也在 MQTT 服务器中使用了授权功能来控制访问。
除了设备模拟器程序之外,我们还提供了一个代理应用程序客户端,用于显示从设备收到的 MQTT 消息并向设备发送示例命令。这个代理应用程序客户端示例应用程序生成用于设备身份验证的 OTP 密钥,并发送唯一的应用程序 ID 供设备执行应用程序验证。这个客户端生成命令消息(包括有效和无效的消息)来测试不同的场景。
您可以下载代理应用程序客户端的代码,并按照自述文件中的说明来在本地构建和运行它。
获取代理应用程序客户端的代码
Q物联网 » 设计和构建安全的 IoT 解决方案(1) 保护 IoT 设备和网关
http://www.qwulian.cn/miothtml/1986.html
徐占强
- 设备/网关层:防范发送恶意命令的“虚假”服务器,或者防范尝试监听从设备发来的私有传感器数据的黑客。这一层的安全考虑因素将在系列的第 1 部分(本文)中讨论。
- 网络/传输层:防范发送假的度量数据的“虚假”设备,这些数据可能损坏应用程序中持久保存的数据。这一层的安全考虑因素将在系列的第 2 部分中讨论。
- 应用层:防范非法的数据使用,或防范在应用层中运行的分析流程被恶意操纵。这一层的安全考虑因素将在系列的第 3 部分中讨论。
- 应用程序安全性
- 对 IBM Watson IoT Platform 的受保护的 API 调用
- Node-RED 安全性
- 解密消息
- 消息校验和验证
- 对设备执行身份验证(只有受信任的设备才能发送数据)
- 授权
- API 安全性
- 安全配置
- 安全的传输
- 身份验证
- 消息有效负载加密
- 证书配置和验证
- 安全的 MQTT 传输
- 安全引导
- 防火墙
- 固件更新和补丁
- 用户 ID/密码身份验证
- 一次性密码(One Time Password,OTP)身份验证
- 服务器唯一 ID 身份验证
- 消息有效负载身份验证
获取设备模拟器的代码
MQTT 是一种用于 IoT 设备和应用程序的最流行的消息协议,它得到了 IoT 领域的许多关键参与者的支持。MQTT 为 IoT 解决方案提供了一种轻量型、容易使用的通信协议。
MQTT 本身指定了一些安全机制,但所有常见的实现都支持最新的安全标准,比如用于传输安全的 SSL/TLS。MQTT 没有强制要求对其应用程序使用某种特定的安全方法,而是将决定权留给了应用程序设计者。因此,IoT 解决方案可以基于应用程序上下文和特定的安全需求。
大部分 MQTT 部署都使用了传输层安全(Transport Layer Security,TLS),所以数据已加密并经过了完整性验证。类似地,大部分 MQTT 实现(包括 IBM Watson IoT Platform 中的实现)也在 MQTT 服务器中使用了授权功能来控制访问。
除了设备模拟器程序之外,我们还提供了一个代理应用程序客户端,用于显示从设备收到的 MQTT 消息并向设备发送示例命令。这个代理应用程序客户端示例应用程序生成用于设备身份验证的 OTP 密钥,并发送唯一的应用程序 ID 供设备执行应用程序验证。这个客户端生成命令消息(包括有效和无效的消息)来测试不同的场景。
您可以下载代理应用程序客户端的代码,并按照自述文件中的说明来在本地构建和运行它。
获取代理应用程序客户端的代码
Q物联网 » 设计和构建安全的 IoT 解决方案(1) 保护 IoT 设备和网关
http://www.qwulian.cn/miothtml/1986.html
徐占强
物联网开放平台和系统分析师
水态组织理论提出者和实践者
自由职业高级研究员及导师
Q物联网(www.qwulian.cn)创始人
水滴儿(www.shuidier.com)创始人
水态组织创办人及《水态组织》 作者