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