OptoBlog

groov史诗安全系列第3部分:设备原始通信,或如何以及为什么MQTT岩石

发布的 本果园在2019年4月29日9:15:28

故事是这样的:一个阀门制造商想要鉴定其网络化智能阀门用于核反应堆的植物。智能阀可以报告各种各样的关键数据指向一个数据库系统,也是由SCADA系统的植物。但得到认证,使用智能阀必须接受严格的安全审计信息技术(it)部门。

经过一周的测试,这家伙放弃对阀门制造商说,“你的智能阀坏了。我们不能沟通。没有开放端口。它不能工作,因为它不会回应。”

智能阀门制造商简单地回答说:“没错。”

因为没有网络端口打开智能阀门,没有办法通过网络达到阀门。但是一旦制造商解释道,这家伙批准阀用在工厂。

因此,智能阀门制造商如何过关?如何智能阀报告数据和接受命令从SCADA系统没有开放端口吗?

诀窍是,阀门的所有数据传达给其他系统设备是。也就是说,数据通信源自智能阀(客户端)和通过阀门的设备防火墙和出去到指定的服务(在这个例子中服务器或数据库)。

让我们快速总结上一篇博文防火墙(如果你还没有读过,一定要检查出来)。简单来说,防火墙阻止所有传入连接请求。但防火墙通常允许出站连接服务,源自防火墙后面,并跟踪这些连接允许返回数据传回到原始服务。

安全的类比
如果你认为这就意味着我们的防火墙设备只能发送数据,而不是接收数据,继续阅读。这就是一个数据通信方法像MQTT进来,这是很酷。

我们有一个伟大的系列MQTT主题的教学视频,包括它是什么,它是如何工作的,MQTT经纪人扮演什么角色等等。所以我不会重复的。

这足以说MQTT发布/订阅协议支持的设备可以用来发布实时的值到一个中央代理在一个认证,加密,持久连接。虽然连接活动,设备可以订阅任何新值或命令,代理收到其他设备或服务。

MQTT安全


它的工作方式是我们MQTT-enabled设备通过网络安全地连接到MQTT代理使用TLS加密,以及一个用户名和密码登录代理。

一旦建立连接和活跃,设备问题device-originating数据包,说,“我还活着(状态),这是我的新变化值(report-by-exception数据),与任何新消息,请回复给我(新命令或值)”。

代理接受数据包并发送响应我们的设备订阅接收任何数据,其中可能包括命令从其他设备或服务,在相同的活动连接。代理还安全地将我们的设备的数据转发到身份验证的设备或服务订阅接收它在活跃的连接。

与此同时,设备继续发送一个小2字节“心跳”在预定的时间间隔,保持安全,加密的网络连接活跃并保持其状态的代理通知。

安全——发布/订阅

因为心跳的传播和新数据来源于我们的设备在防火墙后面,防火墙允许返回沟通任何新的命令或值与其他设备和服务。因此零防火墙开放端口,我们的设备可以同时报告值接收命令。这是双向通信然后早在在相同的端口,端口是关闭的。

很酷,对吧?

MQTT与groov史诗

当然,光电子22的设备不是智能阀;这是一个groov史诗般的边缘可编程工业控制器groov史诗是保护自己的防火墙设备,适用同样的原则。这些出站,device-originating MQTT通信可以从史诗传播网络接口,并没有防火墙端口被打开,允许数据流。

想想这个。如果没有开放端口的配置groov史诗的防火墙对于一个给定的接口(ETH1,不可信的网络),一个糟糕的演员上运行一个端口扫描groov史诗ETH1上不会发现一个单独的端口开放利用。

MQTT数据流

但是因为MQTT设备原始数据流,和防火墙允许数据出去,通信将发生。史诗的防火墙跟踪会话状态,当数据包从代理回来到,他们可以通过通过。

Device-originating通信是一个非常强大的方法,确保网络安全,因为不需要开放端口的设备数据流。

需要澄清的是,MQTT这个方法并不是唯一的选择;您还可以使用HTTP (S) GET和POST,也因为他们来自设备。消息从主机和穿过防火墙。一包从服务返回的数据,允许通过防火墙,因为它有返回相同的会话ID /头。但是与HTTP GET和POST, MQTT通常更容易实现和管理。

你在控制

记住,你是在控制设备的防火墙groov史诗。您可以打开端口服务或者你可以关闭它。如果选择使用device-originating通信只,您可以配置您的groov史诗没有防火墙端口打开。

您的IT部门,然后笑着说,“你的史诗坏了;它不会对我们的端口测试。”

一点:作为最佳实践的一部分,所有的出站通信应使用传输层安全加密,或TLS,即使他们不是MQTT流量。否则,你的API密钥,用户名、密码和数据可以容易“中间人”攻击,坏蛋可以查看和拦截线数据。你不希望这样。所以使用加密所有出站流量。(寻找一个未来的博客对用户身份验证、加密和证书)。

其他主要安全此体系结构的优点是,所有设备的用户名和密码存储在代理(或账户)。这意味着所有试图连接到代理的管理代理通过这些设备账户(访问控制列表,或acl)。这极大地简化了MQTT的安全管理架构,因为只有一个地方管理谁或者什么访问您的数据。

最后,即使你的设备,应用程序,或机器不是走向核电站,你绝对应该考虑使用device-originating沟通等方法的好处MQTT-for你所有设备数据通信的需要,无论是在你的植物或从遥远的资产,无论他们可能。

直到下次。

干杯,伴侣。

想要了解更多关于安全groov史诗?阅读我们的技术,groov史诗的安全设计和最佳实践

在本系列的其他文章:

主题:安全,MQTT,groov史诗,网络安全,防火墙,史诗的安全

写的本果园

    订阅电子邮件更新

    最近的帖子

      文章的主题

      看到所有