IoT 安全解決方案第 1 篇 - 拒絕通用預設密碼

網路安全對於大企業而言不能再說「有會更好」,這已經成為必要條件,對於嵌入式與 IoT 產品而言更是如此。ETSI 已經推出新規範,以確保 IoT 與相關產品的安全設計,CEPD 對於此新規範的推出也深表贊同。

(圖片來源: CEPD)

隨著 IoT 在市場上越來越普及且受歡迎,現在正是針對常見的 IoT 安全問題進行教育的絕佳時機。本文是一系列文章的其中一篇,並以 IoT 與嵌入式安全性為重點說明。此外也會探討常見問題,並提供可能的解決之道。最後,期許大家在使用與設計 IoT 裝置時,都對安全性有多一點的認知。

預設密碼

絕大多數的 IoT 裝置都使用通用的預設密碼,例如 admin、1234、user 等等。更糟的是,許多使用者都不會將預設密碼更改成其他密碼。因此任何熟悉這些通用密碼的人,就可以取得完整權限。同樣購買該產品或對其有所瞭解的任何人都算的上是潛在的「駭客」群體。因此想當然爾,目前有一大群潛在的駭客是知道您裝置密碼的。

可能的解決方案

開發人員只要將密碼寫死在產品的程式碼庫中,是相當令人心動的做法。但如此做的風險遠大於優點。幸好,設計時可選擇以其他方式確保 IoT 裝置的安全。

隨機碼產生

初次開機時,IoT 裝置會產生一組隨機碼當作密碼。接著就可用安全的方式與最終使用者分享此密碼。由於密碼是隨機的,因此另一個裝置共用相同密碼的機率頗低。

隨機碼的產生可透過硬體與軟體方式達成。以 MikroElektronikaMIKROE-4090 為例,會產生真正的隨機碼序列。此外,許多現代處理器與微控制器都可提供真正或擬態的隨機碼產生器周邊。最後,C 與 C++ 可透過預先編譯的函式庫 (https://www.geeksforgeeks.org/generating-random-number-range-c/) 提供擬隨機能力。

重點在於,目前有許多方法可產生隨機碼。在您的 IoT 裝置中添加此功能,就可避開通用預設密碼的兩難困境,還可展現您產品真正優異之處。

需要變更密碼

若隨機碼的做法有點太麻煩,則將第一個步驟設定成要求使用者變更密碼。在 IoT 裝置發揮其用途前,先要求使用者輸入其自訂的密碼。雖然這會稍微添加使用者的負擔,但花個 30 至 60 秒來完成此步驟,對於保護使用者的安全及產品名聲來說相當值得。

限制嘗試出錯的次數

制訂規則可讓您的 IoT 產品對自動化攻擊更有抵抗力,例如在 3 分鐘內僅允許輸入錯誤密碼 5 次。請注意,絕大多數的「駭客行為」其實是機器迅速試圖猜出密碼。若您的 IoT 可拖延密碼輸入,就不會成為唾手可得的目標,並可阻撓駭客行為,可能就會放棄攻擊您的裝置。但這樣還不夠安全,只要再搭配上述任一建議做法,就可提升安全性。

這些問題與建議來自於 ETSI 的研究。可參考其發行的刊物 ETSI EN 303 645 v2.1.1 (2020 - 06) 瞭解其所有論點。

之後將發布更多有關 IoT 安全性的文章/部落格文章,敬請保持關注

關於作者

Image of Noah Madinger

Noah Madinger 是 Colorado Electronic Product Design (CEPD) 的資深工程師,從 2000 年代初期,即開始將新穎產品帶入市場。他的職責為開發技術解決方案,涵蓋硬體和軟體設計的眾多層面。他也負責管理專案和技術團隊,以及參與業務開發活動。Noah 熱衷於發表文章和刊物,藉此深入有趣的主題,並且和更多讀者互動。

Noah 的專業範疇包含回授控制系統、FPGA 和 MCU 架構嵌入式設計、航太應用。他提倡流程導向和測試導向開發典範,並且致力於實作工程流程至團隊動力。他重視新產品成熟及達到眾人期望所獲得的成就感。

More posts by Noah Madinger (Colorado Electronic Product Design (CEPD))
 TechForum

Have questions or comments? Continue the conversation on TechForum, Digi-Key's online community and technical resource.

Visit TechForum