[物聯網協定與資安的距離] MQTT 通訊協定淺談

飛飛
H1dra Security Team
10 min readOct 12, 2020

--

圖片來源:https://reurl.cc/kV1ljd

前言

在物聯網 IoT 的世界當中有許多傳送給伺服器或接收來自伺服器訊息的方法,常見的接收與傳送的方法有:網站標準通訊協定─ HTTP 通訊協定或是透過雙方連續通訊的 WebSocket,而今天的主軸,來介紹由 IBM 提出,現在轉變成開放原始碼的 MQTT 協定,內容包含 MQTT 原理、在伺服器中安裝 MQTT Broker 以及與 MQTT 有關的 CVE。

常見的 IoT 通訊協定

常見的 IoT 通訊協定

在前言中提到三種通訊協定,分別為以下 HTTP、 WebSocket、 MQTT:

  1. HTTP:Web 標準通訊的協定,可以透過 Web 服務來實作傳送與接收資料。
  2. WebSocket:雙向通訊與連續接收和傳送資料,單一路徑進行收與送。
  3. MQTT:發布與訂閱,執行一對多通訊的通訊協定。

MQTT 原理

1999 年 IBM 提出第一版本的 MQTT 協定,為了滿足「簡單」、「輕量級」、「網路環境差」的需求,透過「發布」與「訂閱」方式,進行一對多通訊的通訊協定,而在 MQTT 協定中的角色有三種,分別為傳送訊息的使用者─ Publisher 、透過中繼通訊伺服器就算不知道雙方 IP 也可以輕鬆傳訊─ Broker、以及接收訊息的使用者─ Subscriber。

MQTT 的版本

  • MQTT v3.1.0
  • MQTT v3.1.1 (目前使用):使用 TCP / IP 協議
  • MQTT v5( 2018 年 01 月釋出)
  • MQTT-SN(2013 年釋出):嘗試使用 UDP 進行傳輸、近幾年規範未更新

MQTT 協定中的角色

MQTT 協定中的角色
  1. Publisher: 作為傳送訊息的使用者

--

--

飛飛
H1dra Security Team

尋找自己的意義,在資訊圈努力打滾求生存。