每一天,我們都一再意識到有越來越多的「物」將被連接到物聯網(IoT),其範圍涵蓋了家用電器、智慧照明、居家安全、健康和健身穿戴式裝置,以至於大量的工業應用等。這種連接性可望改善我們的生活、提高我們的生產力,使我們更安全。
雖然使用追蹤裝置保護我們的財產、甚至我們的孩子,以及運用感測器使我們能夠「關照」獨自生活的父母等技術是非常受歡迎的,但安全--特別是物聯網的安全,在最近的許多新聞報導中已經引起了討論,其中的一些例子,包括透過駭客手段控制車輛、透過具連接能力的玩具監視兒童等,無論這些行為是惡意還是具備犯罪意圖,很顯然的,IoT裝置的設計都需要因應這些安全課題。
安全性的設計需要納入裝置和系統中,但這有時是不便的,因為它增加了開發時間、元件成本和複雜性。但在另一方面,供應商也不想遭受可能由駭客攻擊造成的品牌名譽損失,因此應該鼓勵他們保護其產品免受安全性漏洞的威脅。
瞭解「什麼需要被保護」是關鍵,廣泛的安全問題可以分為三類:
.安全通訊
.裝置的安全性
.軟體應用程式的安全性
這些安全類型涵蓋了開發人員常遇到的問題。在這裡,值得感謝的是大多數安全性漏洞都已經由具備如何使用各種技術之專業人員所解決。但硬體和軟體設計工程師可不能輕敵,他們必須假設潛在的駭客至少像他們一樣聰明。
為通訊加密
物聯網的一切都與通訊相關,所以保護經由有線或無線網路傳輸的資訊是不可或缺的。透過無線傳輸的資料特別容易被竊聽,因其不需實體存取電纜。使用強大的演算法,例如大多數無線IoT協定使用的高級加密標準(AES)密碼加密此資料,肯定能提供基本保護。
由於AES加密是用於諸如ZigBee、智慧藍牙和Thread之無線通訊標準的協議堆疊中,因此設計者可能不需要理解其作業細節。然而,知道基本AES加密塊大小是16位元組,則有助於解釋為什麼密碼塊模式(例如計數器模式)將透過改變每塊的密碼來提高長於16位元組消息的安全性。除了這一點以外,為了確保消息不被篡改,許多協定使用經認證的密碼塊模式,其提供對始發者(Originator)金鑰之唯一「指紋」。Bluetooth Smart和諸如ZigBee和Thread的IEEE-802.15.4協定都使用某種形式用於加密的計數器密碼塊模式,和用於認證的密碼塊連結消息認證碼(CBC-MAC)。
對於物聯網裝置和雲端之間的通訊,則強烈建議使用密碼協定建立安全連接來進行金鑰交換。
實體快閃記憶體安全性
除了網路節點之間的通訊外,還需要防止實體連接到IC引腳的任何人讀取其所包含的資料或代碼、或攔截在IoT裝置內的IC之間傳輸的資料。對於具有嵌入式快閃記憶體的微控制器(MCU),下列三個步驟必須遵循;
.鎖定整個快閃記憶體
這是在MCU內實現的,通常需要將金鑰序列寫入暫存器以解鎖記憶體。
.禁用正常調試操作
在開發期間,不可避免的需要使用MCU的調試介面進行編程更改。一旦開發完成,在設計進入生產之前,確保此介面的安全至關重要。雖然這可能妨礙客戶退回故障產品的後期診斷,但是還有其它方法可解決這個問題。
.使用安全引導載入程式上傳經身份驗證的韌體
這對於確保僅有合法之現場韌體更新可被加諸於IoT裝置是至關重要的。
這些措施應確保裝置上的韌體是安全的;實際上,當正確實施時,即使MCU製造商都不能讀取快閃記憶體記憶體內容。然而,實體安全性不如加密代碼那麼安全,因為理論上,具有專業知識和昂貴存取裝置的人士仍可讀取快閃記憶體記憶體內容。
當多方涉及專案開發或提供軟體時,應用層安全性尤其重要,並且這需要在同一平台上運作軟體的安全分區。
軟體應用層安全性
例如,在特定應用的代碼上工作的設計者,可使用包括用於特定協議的通訊堆疊之軟體發展環境。如果堆疊提供者提供原始程式碼或連結器庫,則此彙編代碼將會暴露予應用程式開發人員。
為避免此類問題,由開發環境提供的代碼應被保護,使不可信任之應用開發者無法存取或對安全的彙編代碼實施反向工程。安謀(ARM)的uVisor監控核心是其mbed作業系統(OS)的一部分,其在具有記憶體保護單元(MPU)的M系列ARM核心上創建隔離的安全域,而這可使防禦應用程式因應安全性漏洞和其他惡意軟體。
小心裝置安全陷阱
預設密碼形同虛設
我們都聽說過「避免使用預設密碼」,IoT裝置,如同許多其他如路由器的互聯網連接的裝置應該採用密碼保護。當駭客遇到密碼介面時,他或她將透過嘗試經典的預設密碼(例如「password」、「12345」和「admin」等),如果這些密碼或任何其他密碼嘗試成功,這可能重演許多其他裝置重複使用相同密碼的情形。
因此,重要的是,IoT裝置開發人員需要一種方式,來確保使用者被迫從出廠預設密碼更改為更安全密碼、並且將週期性改變密碼。從安全性的角度來看,預設的靜態密碼可被認為是沒有密碼。
IoT供應鏈安全防護環環相扣
為了激發消費者和商業用戶對物聯網的信心,並確保物聯網的成功和廣泛部署,整個產業對已經非常明顯的安全問題均需要給予足夠的關注,而這需要在多個領域採取行動,包括從業界標準組織(如無線協定)到嵌入式微控制器的設計者和製造商,以至於物聯網設備開發人員自身。
整個業界都必須投入時間、精力和必要的資源,以確保終端裝置不易受到駭客或資料竊取的攻擊。這需要提供安全連接的加密資料和認證,MCU和記憶體晶片可以鎖定未經授權存取的安全連接協議,以及對於運作在同一平台上之其他軟體有所 隔離保密的軟體。
最後,物聯網裝置開發業者對其產品安全是需要負責的,因為如果他們有所閃失,聲譽將受到最大的損害,而本文所列出的幾個簡單預防措施,則應有助於確保大多數連接裝置和系統設計都能夠安全無虞。
(本文作者為Silicon Labs內容行銷經理)