我正在构建一个类似小型物联网的系统,其中mqtt设备(客户端)正在发送和接收与安全相关的关键信息或命令。
我已经知道,无需通过客户端的PK证书进行客户端身份验证,就可以选择建立TLS连接。
通常,mqtt客户端设备没有足够的资源来支持PKI,首先,该设备必须存储证书,并在有效期已过或原始证书已被撤销时不时地使用新发行的证书更新证书。
我认为这就是为什么许多mqtt代理可以选择在TLS握手期间配置打开/关闭客户端身份验证的原因。
但是,我担心的是,通过客户端身份验证步骤是否会遇到任何安全问题,例如冒充我的设备之一的某些其他恶意设备可以连接到代理的机会可能会获得这些关键信息和命令。
我的问题是,考虑到设备的约束资源,我可以采取哪些最佳选择和做法来最大程度地减少此类风险。
最佳答案
缺少客户端身份验证意味着包括攻击者在内的每个人都可以声称自己是有效客户端。可能存在诸如公共服务之类的用例,而这并不是问题,而另一些用例中,服务器仅希望限制对特定已知客户端的访问。