随着物联网在医疗保健、智能家居、智能城市和自动驾驶汽车等领域在我们的生活中变得越来越普遍,设备的安全性变得更加重要。我们不仅需要保护所有这数十亿台设备发送的数据,而且还需要关注使用这些设备的个人的安全。入侵物联网系统的入侵者可能会对人类造成严重的身体伤害。
因此,物联网安全已成为物联网发展不可避免的话题。
为什么安全对于物联网系统如此重要?
我们在新闻中听说黑客利用儿童智能玩具等物联网系统的漏洞。入侵者能够访问玩具的摄像头、扬声器和麦克风,并能够监视孩子。在另一个例子中,黑客能够侵入起搏器并操纵心率并耗尽电池,可能对患者造成严重伤害。
这些物联网系统遭到破坏的原因是缺乏安全性。弱密码和无加密使入侵者更容易破坏这些系统。如果采取了安全措施,发生这些入侵的可能性就会降低。
最新的 DZone 参考卡
分布式 SQL 入门
很容易看出安全性是如何被忽视的。系统在没有安全性的情况下也能正常工作,那为什么还要费心呢?此外,一旦系统设计、测试并运行,您就希望将产品推向市场,对吗?然而,忽视物联网系统的安全性可能是短视且代价高昂的。对于您的客户来说,这可能意味着财产、数据隐私的损失,在最坏的情况下,可能意味着人身安全甚至生命的损失。对于您的公司来说,这可能意味着产品召回的成本、可能的法律费用以及品牌声誉和信任的损失。这些都是可以通过一些简单的前期安全措施来避免或减轻的后果。
物联网网络常见安全风险
以下是我们在构建物联网网络时可能需要牢记的一些常见安全风险。
身份验证和授权机制不足:身份验证机制较弱或没有身份验证机制的物联网设备可能容易受到未经授权的访问。重要的是,不仅要控制设备访问,还要控制设备连接到网络后允许执行的操作。
弱密码:某些供应商可能对同一设备型号使用相同的密码。其他供应商可能使用易于猜测的弱密码,例如“admin”或“password”。正如我们将在后面的文章中展示的那样,最复杂的加密算法无法克服容易猜到的密码,例如使密码与用户名相同。弱密码使攻击者可以轻松访问设备及其数据。物联网供应商应实施严格的密码策略,并要求用户更改默认密码。
不安全的通信协议: 在物联网通信中使用 TCP 等明文通信而不是 TLS 使得攻击者很容易拦截数据。例如,在中间人攻击中,攻击者可以窃听物联网通信以收集密码、健康信息和其他个人数据等个人数据。
缺乏用户培训: 物联网供应商可能无法向用户提供适当的安全意识。这使得未受过教育的用户容易受到攻击。物联网供应商为其用户提供适当的安全培训非常重要。
拒绝服务 (DoS) 攻击: 物联网网络可能容易受到 DoS 或分布式 DoS 攻击,其中大量设备被用来利用软件缺陷或只是用恶意流量淹没网络。为了防止此类攻击,物联网网络需要采取强大的安全措施,包括防火墙、入侵检测和预防系统以及访问控制。此外,物联网网络应设计为具有弹性,能够自动检测和减轻攻击,而无需大量的管理工作。
物联网供应商需要在其物联网设计的各个方面优先考虑安全性,从最初的设计阶段到部署,包括售后,以确保其设备安全且能够抵御攻击。
我们可以使用 MQTT 做什么来保护我们的物联网系统?
在构建物联网系统时,我们需要考虑安全性的几个方面。它们可以根据它们所在的不同协议层进行分解。即网络层、传输层和应用层。
网络层: MQTT 在 IP 网络中运行,因此网络层安全最佳实践均适用于 MQTT。即,正确使用防火墙、VPN 和 IPsec 来帮助防止入侵者访问物联网网络上的数据。
如果您刚接触 MQTT,可以参考以下博客快速了解:
什么是 MQTT?为什么它是物联网的最佳协议?
MQTT 最简单的入门指南
传输层: 在传输层,我们不建议直接通过TCP、WebSocket等协议发送明文数据。例如,应用层用于认证的用户名、密码等敏感数据可能会使应用层的安全机制失去作用。因为当入侵者直接从传输层窃取数据时,他可以直接知道我们正在使用的用户名和密码。
最好借助 TLS 加密协议为我们的数据提供端到端的安全性。除了将数据变成难以破解的密文数据外,TLS还可以提供多重保护,例如支持客户端确认服务器身份的合法性。当要求客户端使用证书时,服务器也可以确认客户端是否合法。这样可以有效避免中间人攻击。
应用层: 虽然看起来我们在传输层提供了足够的安全保护,但并不是所有系统都支持TLS。运行在应用层的MQTT协议还通过用户名和密码字段提供密码认证和令牌认证的支持,确保只有合法设备才能访问MQTT代理。MQTT 5.0还引入了增强的身份验证机制,提供双向身份确认。
另一方面,应用层的安全机制通常是安全保障的最后一层。除了验证访问者的身份之外,我们最好检查访问者可以执行的操作,例如访问者可以向哪些主题发布消息,可以从哪些主题消费消息。
概括
总而言之,MQTT 安全是保护物联网系统免受各种攻击和威胁的关键因素。