![[AIX、Linux 和 Windows]](ngalw.gif)
发布在遥测通道上的隐私
通过使用 TLS 对通过连接的传输进行加密,可保护通过遥测通道向任一方向发送的 MQTT 发布的隐私。
连接到遥测通道的 MQTT 客户机使用 TLS 来保护使用对称密钥密码术在通道上传输的发布的隐私。 由于未对端点进行认证,因此您不能只信任通道加密。 应将保护隐私与服务器认证或相互认证结合起来。
除了使用 SSL 以外,某些种类的虚拟专用网 (VPN)(例如,IPSec)将对 TCP/IP 连接的端点进行认证。 VPN 将对流经网络的每个 IP 包进行加密。 一旦建立了这样一个 VPN 连接,您就已经建立了一个可信网络。 您可以使用 VPN 网络上的 TCP/IP 将 MQTT 客户机连接至遥测通道。
如需了解加密通道和验证服务器的典型配置,请咨询 MQ 使用 TLS 进行遥测通道验证。
在不认证服务器的情况下对 TLS 连接进行加密会将该连接暴露给中间人攻击。 尽管可以保护您交换的信息不被窃听,但是您并不知道是与谁在交换信息。 除非您控制整个网络,否则其他人就有可能拦截您的 IP 传输并且伪装成端点。
您可以使用支持匿名 TLS 的 Diffie-Hellman 密钥交换 CipherSpec 来创建加密 TLS 连接,而无需认证服务器。 在客户机和服务器之间共享并用于加密 TLS 传输的主密钥是在不交换专用签名服务器证书的情况下建立的。
由于匿名连接不安全,因此大多数 TLS 实现都不会缺省使用匿名 CipherSpecs。 如果遥测通道接受针对 TLS 连接的客户机请求,那么该通道必须具有受口令保护的密钥库。 默认情况下,由于 TLS 实现不使用匿名 CipherSpecs, 密钥存储必须包含客户端可以验证的私人签名证书。
如果您使用匿名 CipherSpec,那么服务器密钥库必须存在,但是它不需要包含任何私下签名的证书。