单向SSL可以保护IoT设备吗?


9

我正在考虑将IoT设备连接到我的本地网络(默认设置,无VPN,无NAT,无DMZ),无论是否可以访问Internet。我的设备将作为HTTP服务器运行,并提供具有身份验证和授权的RPC机制。它使用mDNS进行广告宣传,我使用移动应用程序或RaspberryPi与之对话。

物联网开发中的规范似乎是具有相互(双向)SSL。 这是否意味着单向SSL无法保护我的流量?为什么?

笔记:

  • 我确实了解单向SSL和双向SSL之间的技术差异,我不明白为什么在物联网生产中从来没有考虑过单向(几乎)。
  • 我知道在本地设备上使用相互SSL是很困难的:您需要与客户端共享服务器公钥和证书,反之亦然。另一方面,单向似乎更容易(不需要用户操作)。
  • 与单向SSL加密相比,像飞利浦Hue这样的大量量产的设备宁愿开放并不受保护的本地http终结点。为什么要做出这一选择?
  • 我希望这个问题不是基于观点的。如果是这种情况,我们深表歉意。

Answers:


8

当“服务器”位于可以匹配其所提供证书的CN的已知位置(固定主机名)时,SSL / TLS可以很好地工作。

这不适用于家庭网络上的设备(例如大多数IoT设备),因为它们倾向于获取从RFC1918块发出的IP地址,并且没有DNS条目。这意味着不能向它们颁发证书(当然可以,但是大多数浏览器会拒绝它们)。这就是为什么诸如Philips Hue之类的设备使用设备的不安全HTTP端点的原因,它们基本上依赖对安全网络的访问来保护设备。

当使用双向TLS时(即设备连接到某个中央服务时),客户端具有其自己的证书/私钥来验证其能够代表所有者使用该中央服务器。

为了澄清您的问题,您不需要将服务器证书/密钥分发给所有客户端,仅需要颁发证书的CA证书即可证明该证书受信任。

编辑:

本地设备连接安全的一个很好的例子是宜家的Tradfri照明,该照明使用DTLS上的COAP和设备上的预共享密钥(在QR码中),用于生成每个客户密钥。这样可以确保物理访问以设置新客户端,并保护本地网络中正在运行的数据。


如果主机不是使用固定的DNS名称或IP地址,则正常的证书验证将失败,因为该证书断言该地址处的设备就是它所说的身份(正常的“单面” SSL)。对于相互认证的SSL,您不应为双方使用相同的密钥/证书。服务器和客户端应达到由相互信任的CA签署的自己的证书/密钥
hardillb '18

感谢您的回答,对不起,@ hardillb沉默已久。“这意味着不能向它们颁发证书(当然可以,但是大多数浏览器都会拒绝它们)。” 考虑到与IoT设备的通信,我看不到何时使用浏览器进行通信……“您不需要将服务器的cert / key分发给所有客户端,只需将CA的证书分发出去”对于单向TLS,对吗?因为我相信,对于相互之间,您确实需要提供证书和密钥,这会使事情变得更加困难。关于Tradfri,预共享密钥用于身份验证,而不用于加密。
valentin

tradrfi预共享密钥不是用于握手并创建每个设备的密钥进行加密的
hardillb '18

1

通常,TLS的优点远不止x.509,但许多实现将其限制为仅x.509。

x.509是一种用于安全间接信任的技术。如果“ B”具有由“ C”签名的证书,并且“ C”由“ A”信任,则“ A”信任“ B”。在现实生活中也是如此;您信任一个您不认识的人,如果一封信是由您信任的人签名的。也许您看到了陷阱:如果这封信上写着,请喝杯咖啡,您不会开车。因此,证书中的其他信息也与信任范围有关。这就是服务器通常在其证书中使用DNS名称或ip地址的原因。通常,您可能会包含不同的信息(例如“客厅灯”),但是许多实现也至少已预先配置为使用/检查DNS / IP内容。而且只有当有人关心可信任的“

如果您可以花时间在其中,请检查您的实现,如果它还提供了PSK密码套件。如果没有,也许您可​​以调整服务器证书的“验证检查”。但这需要大量阅读才能找到一个好的解决方案。有时使用的TLS实现只是不提供此功能。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.