簡體   English   中英

Mosquitto TLS 安全 - 可以讀取消息負載嗎?

[英]Mosquitto TLS Security - Can the message payload be read?

我在 aws ec2 上的 ubuntu 上運行 mosquitto 代理,在端口 8883 上使用 TLS。例如:

mosquitto_sub -h domain.com -t topic --cafile /etc/mosquitto/certs/ca.crt -p 8883

客戶端是 esp8266 使用 TLS 配置。

有人仍然可以攔截或讀取傳出或傳入的 mqtt 消息嗎?

所有通信都使用證書在端口 8883 上進行。

(1) MQTT 上下文最簡單的答案是:

使用另一個 MQTT 客戶端並訂閱“#”以查看您的代理從任何地方收到的所有消息。

如果您知道您的 esp8266 客戶端正在發布或訂閱的主題,請與其他客戶端(例如使用“mosquitto_sub”)訂閱所有這些主題。

經紀人向所有訂閱的客戶提供關於上述主題“主題”的消息,獨立於他們的通信通道安全。

這樣你就可以通過任何其他客戶端獲得 esp8266 的消息。 例如,如果未加密通道未停用: mosquitto_sub -h domain.com -t topic -p 1883

TLS 確保僅對通信通道進行加密,而不是在將實際負載放入客戶端和服務器之間的通道之前對其進行加密。

(2) 如果 (1) 不是預期的答案,而您更想竊聽加密通信:

  • 簡短的回答是:不,不是用瑣碎的工具; 這就是 TLS 的目的。

MQTT 安全基礎知識的好文章:https://www.hivemq.com/blog/mqtt-security-fundamentals-tls-ssl/

  • 長答案是:

[免責聲明:不假設第 3 方的高級能力]

TLS 通信已正確加密,要解密 MQTT 通信,客戶端和服務器在成功握手后需要使用 session 機密。

解決方案需要您作為經紀人的經營者。

有一篇關於如何做的簡短文章: https://adrianalin.gitlab.io/popsblog.me/posts/decrypt-mqtt-tls-traffic/

在本質上:

  • 如果在那里配置 session 機密,則可以使用 Wireshark 竊聽流量。
  • 要獲得您根據文章調整並重新構建 mosquitto 的秘密,以便您的經紀人打印 session 秘密。

(您是否能夠在 AWS 中的 EC2 實例上使用 root 權限設置它,是另一個問題)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM