返回 登录
0

设计和构建安全的 IoT 解决方案, 保护在网络上传输的 IoT 数据

物联网(Internet of Things,IoT)解决方案是设备和传感器的复杂网络,这些设备和传感器通过网络和云来收集和交换数据。随着越来越多的数据向越来越多的应用程序公开,安全性成为了 IoT 开发人员的主要挑战。
本系列文章将重点介绍 IoT 应用程序在三个架构层上的安全性:设备、数据和应用程序。本系列的第 1 部分介绍了 IoT 安全性基础,然后描述了保护设备或网关的各种方法。第 2 部分(本文)将重点介绍网络和传输层的安全性,包括 IBM Watson IoT Platform。第 3 部分将介绍应用层的安全要求,以及在 IBM Bluemix 平台中创建一个分析 IoT 应用程序的实现方法。

保护在网络上传输的数据
传输层安全(Transport Layer Security,TLS)为在网络上传输数据提供了安全保护。数据被加密,以预防任何人监听和了解其内容。TLS(也被称为 Secure Sockets Layer, SSL)被广泛用于对许多网站提供安全的访问。TLS 确保在数据传输执行之前,在服务器和客户端之间建立了信任。它使用客户端必须验证的服务器证书来实现此目的。在某些情况下,服务器还会验证特定于客户端的证书。
MQTT 采用 TCP 作为传输协议,并且在默认情况下,不会使用加密的通信建立连接。尽管实现 TLS 会影响数据传输的性能和服务器上的负载,但大部分 MQTT 代理(包括 IBM Watson IoT Platform)都支持使用 TLS 让应用程序能够保护敏感数据的交换。
当然,您可以通过让 IoT 应用程序加密它发送和接收的数据来添加额外的安全保护。例如,IoT 应用程序可以使用 MQTT PUBLISH 来加密它们发送的数据。此实现对不受信任的环境或设备与代理之间的不安全网络连接尤为重要。
如果使用 MQTT CONNECT 包的 username 和 password 字段来执行身份验证和授权,那么应该认真考虑使用 TLS。端口 8883 是用于安全的 MQTT 连接的标准端口。

使用用于 IBM Watson IoT Platform 的 REST API 读取加密的消息
还可以使用 IBM Watson IoT Platform API 从 Watson IoT Platform 消息存储中读取历史数据。设备可以加密有效负载及添加其他校验和字段(checksum field)来保护数据。图 1 描述了此场景的流程。
图片描述
如上图所示,设备加密有效负载的数据部分并将它作为一个 JSON 元素发送。它另外生成数据部分的校验和(在加密及编码之前),并将此作为另一个 JSON 元素发送。应用程序使用 IBM Watson IoT Platform API 从 Watson IoT Platform 拉取消息,解密及解码数据部分,然后通过比较所生成的校验和以及消息中所存储的校验和来最终执行校验和的验证。
……
详细内容请看设计和构建安全的 IoT 解决方案,第 2 部分

评论