安全防護之認證/訪問控制
物聯網雲平台系統架構主要包含四大組件:1.設備管理,2.用戶管理,3.業務管理,4.數據管理,5.安全防護。
其中安全防護,是物聯網平台不可或缺的的一部分;但是對於中小企業來說,能做出一個穩定鏈接、功能完備的物聯網平台已實屬不易,基本無暇再顧及安全防護策略;針對這一現狀國內已湧現出一些專註於物聯網安全的企業;如青蓮雲等可以為平台企業定製安全防護方案。目前國內的公有雲平台,包括最近一年內上線的阿里雲物聯網套件、騰訊雲物聯網通信等在內測時就為行業客戶開放了安全防護功能。
今天我們討論一下,基於emqttd開源平台的物聯網安全防護中的設備連接認證策略。
在討論之前我們來看一下「物聯網安全防護框架」:
從上圖我們可以看出,認證層是物聯網安全防護框架的基礎部分之一;認證層提供驗證物聯網客戶端的標識信息並用於驗證。當互連的物聯網設備(如,嵌入式設備和網關或端點設備)需要訪問物聯網基礎設施,信任關係根據該設備的「身份信息」決定是否允許訪問。身份信息的存儲和呈現方式基本上也各不相同。
在一般的企業的物理網平台中,物聯網設備都是通過人為認證(如用戶名、密碼、令牌或生物特徵)來確定的。但物聯網設備則不需要人為交互,其認證方式包括射頻識別(RFID)、共享密鑰、證書、端點的MAC地址或某種類型的基於不可變硬體的可信root。
emqttd開源平台給出的認證插件使用的是用戶名和密碼方式;下面我們已emqttd2.2的ubuntu版本為例來看一下其實現的配置過程。
一、mysql資料庫的配置
1.1創建資料庫
如上圖所示的步驟用phpmyadmin或其他方式,創建名為emqttd_auth的資料庫。
1.2下載資料庫源文件並解壓
從github上下載mysql認證插件https://github.com/emqtt/emq-auth-mysql並解壓,我們需要的文件名為mqtt.sql。
1.3資料庫源文件導入資料庫
按照以上步驟導入資料庫源文件到名稱為emqttd_auth的資料庫中。
1.4mysql資料庫中加入認證用戶名密碼
在mysql資料庫中加入認證的用戶名和密碼;其中密碼是SHA256加密後的密碼。
二、配置./etc/emq.conf中不可匿名訪問
找到安裝文件夾中emq.conf文件將mqtt.allow_anonymous = true修改為mqtt.allow_anonymous = false,不允許匿名訪問。
三、配置emq認證/訪問控制插件
按上圖在./etc/plugins/emq_auth_mysql.conf 文件中相關配置參數。
四.啟動插件並驗證認證訪問效果
4.1啟動插件
安裝上圖方式從控制台啟動emqtt的mysql數據認證訪問庫插件。
4.2驗證認證/訪問控制插件效果
通過emqttd自帶的dashboard(host:18083)來驗證我們的認證訪問控制效果;可以看到加入到資料庫中的用戶名密碼(test:test),可以連接到mqtt broker,用戶名密碼為空或者不在mysql的emqttd_auth表中會提示用戶名或者密碼錯誤並且不能連接到mqtt broker。
如果您在配置過程中遇到不順利的地方歡迎在留言區留言我們一起討論:)
相關資料連接:
emqttd官網
emqttd的github首頁
https://github.com/emqtt/emqttd
※晚上吃什麼可以減肥,效果比不吃晚飯都好
※EOS主網已上線,你還有什麼不明白的嗎?
TAG:全球大搜羅 |