增強認證 MQTT 5 0 新特性

2021-10-24 02:47:21 字數 1818 閱讀 3575

mqtt v5 帶來了了很多新的特性,我們會盡量以通俗易懂的⽅方式展示這些特性,並**這些特性對開發者 的影響。到目前為止,我們已經**這些 mqtt v5 新特性,今天我們將繼續討論:增強認證

在物聯網的應用場景中,安全設計是非常重要的乙個環節,敏感資料洩露或是邊緣裝置被非法控制等事故都是不可接受的,但是相比於其他應用場景,物聯網專案還存在著以下侷限:

為了解決上述問題,mqtt 協議 提供了簡單認證和增強認證,方便在應用層驗證裝置。

mqtt connect 報文使用使用者名稱和密碼支援基本的網路連線認證,這個方法被稱為簡單認證。該方法也可以被用來承載其他形式的認證,例如把密碼作為令牌(token)傳遞。

伺服器在收到 connect 報文後,可以通過其包含的使用者名稱和密碼來驗證客戶端的合法性,保障業務的安全。

相比於增強認證,簡單認證對於客戶端和伺服器的算力占用都很低,對於安全性要求不是那麼高,計算資源緊張的業務,可以使用簡單認證。

但是,在基於使用者名稱和密碼這種簡單認證模型的協議中,客戶端和伺服器都知道乙個使用者名稱對應乙個密碼。在不對通道進行加密的前提下,無論是直接使用明文傳輸使用者名稱和密碼,還是給密碼加個雜湊的方法都很容易被攻擊。

基於更強的安全性考慮,mqtt v5 增加了新特性增強認證,增強認證包含質詢/響應風格的認證,可以實現對客戶端和伺服器的雙向認證,伺服器可以驗證連線的客戶端是否是真正的客戶端,客戶端也可以驗證連線的伺服器是否是真正的伺服器,從而提供了更高的安全性。

增強認證依賴於認證方法和認證資料來完成整個認證過程,在增強認證中,認證方法通常為 sasl( ****** authentication and security layer ) 機制,使用乙個註冊過的名稱便於資訊交換。但是,認證方法不限於使用已註冊的 sasl 機制,伺服器和客戶端可以約定使用任何質詢 / 響應風格的認證。

認證方法是乙個 utf-8 的字串,用於指定身份驗證方式,客戶端和伺服器需要同時支援指定的認證方法。客戶端通過在 connect 報文中新增認證方法欄位來啟動增強認證,增強認證過程中客戶端和伺服器交換的報文都需要包含認證方法字段,並且認證方法必須與 connect 報文保持一致。

認證資料是二進位制資訊,用於傳輸加密機密或協議步驟的多次迭代。認證資料的內容高度依賴於認證方法的具體實現。

相比於依靠 connect 報文和 connack 報文一次互動的簡單認證,增強認證需要客戶端與伺服器之間多次交換認證資料,因此,mqtt v5 新增了 auth 報文來實現這個需求。增強認證是基於 connect 報文、connack 報文以及 auth 報文三種 mqtt 報文型別實現的,三種報文都需要攜帶認證方法與認證資料達成雙向認證的目的。

要開啟增強認證流程,需要客戶端向伺服器傳送包含了認證方法欄位的 connect 報文,伺服器收到了 connect 報文後,它可以與客戶端通過 auth 報文繼續交換認證資料,在認證完成後向客戶端傳送 connack 報文。

scram 認證非規範示例

kerberos 認證非規範示例

在增強認證的過程中,客戶端與伺服器需要進行多次認證資料的交換,每次交換都需要通過認證演算法對認證資料進行加解密的計算,所以它需要更多的計算資源以及更穩定的網路環境,因此它並不適合算力薄弱、網路波動大的邊緣裝置,而支援增強認證的 mqtt 伺服器 也需要準備更多的計算資源來應對大量的連線。

增強認證完成之後,客戶端可以在任意時間通過傳送 auth 報文發起重新認證,重新認證開始後,同增強認證一樣,客戶端與伺服器通過交換 auth 報文來交換認證資料,直到伺服器向客戶端傳送原因碼為 0x00( 成功) 的 auth 報文表示重新認證成功。需要注意的是,重新認證的認證方法必須與增強認證一致。

在重新認證的過程中,客戶端和伺服器的其他報文流可以繼續使用之前的認證。

主題別名 MQTT 5 0 新特性

mqtt v5 相較於 mqtt v3.1 和 v3.1.1 提供了許多新特性。我們會盡量以通俗易懂的方式展示這些特性,並 這些特性對開發者的影響。我們已經 過其中一部分 mqtt v5 新特性,今天將繼續討論 主題別名。主題別名 topic alias 是 mqtt v5.0 中新加入的與主題名 ...

MQTT 5 0 正式成為OASIS標準

作為oasis mqtt技術委員會的一員,emq在上週收到oasis的一項公告 在最近的投票中,mqtt 5.0 標準以17票通過0票反對被批准為oasis標準。委員會將準備並發布作為oasis標準的最終版,並在完成後通知委員會成員。mqtt協議是一種基於客戶端 伺服器架構的 以發布和訂閱方式傳遞訊...

微軟Silverlight 5 0新特性

微軟silverlight 5.0新特性 最近微軟發布了silverlight 5.0的路線圖。主要如下 1 改進的資料繫結支援和更好地支援mvvm silverlight最大的優勢之一是它的資料繫結。微軟將提供增強的資料繫結能力以及除錯功能。開發者可以除錯繫結表示式和其它siverlight 5....