作者: Kim Rowe 我們的社會非常依賴互聯網去完成我們的大多數商業活動,因為在這些活動中通信、金融交易和娛樂占很大的部分。隨著越來越多的設備加入物聯網(IoT),對互聯網的依賴性只會越來越強。如果這些設備是不安全的,那么這種依賴性將產生顯著的安全漏洞。如果不能保證每個設備的安全,那么這些設備將很容易受到攻擊并發生故障。 現在被激活并處于工作狀態的許多物聯網設備需要服務許多年時間,具體取決于應用類型。舉例來說,水電氣等公用事業儀表很少會更換。通信基礎設施設計可以運行和共存長達50年的時間。電力傳輸系統需要持續運行30年或更長時間。住宅、辦公室、工業大樓和其它建筑物通過數十年翻新一次,可以持續使用無限長的時間。如果現在這些新系統是不安全的,那么隨著威脅的發展,它們可能很快被淘汰掉。 為了保護用戶在智能設備上的投資,防止這些設備受到入侵破壞,安全性對所有這些新設備來說都是最基本的要求。在今后幾年中,近500億個物聯網設備有望登錄互聯網,其中很大部分將是微控制器或具有有限資源的小型微處理器。幸運的是,這些小設備要比大的多的設備安全得多,因為它們更容易得到保護,并且不會遭受相同類型的威脅。這并不意味著安全性很容易滿足,只是如果你正確地發揮了MCU和小型MPU功能的話,難度沒那么大。本文將討論如何保護物聯網上的小設備。 必要的物聯網安全功能 為了完整地保護MCU或小型MPU,通常要求采用以下一些安全功能,雖然其中一些功能并不是對每個系統都是必要的。對于深度嵌入的MCU和MPU產品來說,使用標準信息技術安全解決方案的安全機制是核心安全機制。這些安全協議包括: ●TLS ●IPSec/VPN ●SSH ●SFTP ●安全引導程序和自動回退 ●過濾 ●HTTPS ●SNMP v3 ●安全無線鏈路 ●加密和解密 ●加密的文件系統 ●DTLS(僅針對UDP的安全性) ●安全電子郵件 TLS、IPSec/VPN、HTTPS、安全無線鏈路和DTLS都是安全通信鏈路可以采用的方法。SFTP提供安全的文件傳輸,SSH則提供安全的遠程訪問,安全電子郵件可以在加密的鏈路上提供電子郵件服務。 具有自動回退功能的安全引導程序可以確保系統不會被破壞。SNMPv3、加密的數據和加密的文件系統可以通過加密保護本地數據的安全,或者將要發送到另外一臺機器的數據的安全。過濾實際上是一種防火墻功能,用于拒絕有害的和未被邀請的客戶的訪問。下面先討論系統級的安全性,然后詳細討論每個部分和每個項目。 系統安全性 安全性的強弱只取決于最弱的鏈路或部件。為了保證系統的安全,所有的各種通信通道、所有的文件傳送、所有的數據存儲和任何更新方式都必須是安全的。在具有動態加載、可執行文件修改和其它復雜功能的系統中,很難做到真正的安全。想象以下的場景: 入侵者通過使用電子郵件、FTP或其它一些方式將文件移動到機器上。 文件是動態加載的,當它運行時,它會破壞其它可執行文件,然后清理并刪除自己。 如果病毒是新的,或者對系統來說是未知的類型,那么它就不會被系統認出來是病毒,從而大搖大擺地進入系統并感染它。 考慮通信鏈路不安全或沒有得到正確保護的另外一種場合。在這種場合中,可能存在讀取最低限度數據的方法。也可能存在將新數據注入數據流的方法,繼而這個數據流被用來破壞接收系統。 通過互聯網向一個設備加載一個不安全的映像就是一個很好的例子。當這個新的映像被加載和運行時,它將接管系統,當然前提是它擁有正確的訪問權。 還有一種情景,即設備上的一些關鍵數據被偷竊了。除非數據已經被加密,或者處于一個加密的文件系統中,否則就很可能從設備中恢復出受限制的數據。這是另一種需要考慮的情景。 為了確保系統的安全性,通常最好的方法是認真考慮設備信息是如何被訪問的。通常較高的安全性要求:你知道的東西(口令),你有的東西(借記卡或可穿戴設備),以及你是什么(虹膜掃描)。 對于小型設備來說,這可能有點過份了,但在要求非常高安全性的場合,通過一些間接方法是可以滿足這些要求的,只要各個部分都是安全的。通過與服務器進行安全的交互,進而安全地訪問設備,那么設備的安全性接口就既可以在更大的機器上運行,也可以用來保護小設備的安全。 安全系統的另外一個關鍵要素是分層的安全性,以及人們只能獲得部分訪問權的前提條件。好的設計實踐是盡可能使用層次化的安全特性。在這種情況下,入侵者也許能夠訪問系統的某個部分,但沒有其它顯著措施的話將不能訪問整個系統。舉例來說,將兩個不同的防火墻級聯在一起來保證服務器的安全,這樣一臺服務器的漏洞可以由第二個防火墻堵住。 下文先回顧提供各種安全功能的部件或軟件組件(圖1),然后討論如何使用這些組件來滿足上述各種情景中的要求。 圖1:物聯網就緒操作系統應該包含的與安全性有關的互聯網協議組件將允許在整套協議之上實現無縫集成,從而提供高質量的安全性。 通信安全 這類安全協議用于確保機到機通信是安全的。它有一個信任層,可確保某些信息是可以依賴的,并且可以建立安全的通信。 TLS或較老的SSL是最常用的方法,可用于為TCP流套接字或具有順序數據和保證送達承諾的流連接提供通信安全。DTLS是一種較新的協議,用于提供安全的UDP傳送,或基于TLS的數據報分組。這兩種協議都適用于應用到應用的通信。 IPSec或虛擬專用網(VPN)使用TCP棧中的虛擬鏈路安全性,它的設置比較復雜,但允許應用程序通過鏈路實現安全的通信,即使應用程序本身不提供安全性。這種方法使用不是很廣泛,一方面是因為設置有一定難度,另一方面是許多人認為算法開發中美國國家安全局(NSA)的界入使得安全性可疑的事實。 HTTPS是基于TLS的一種安全的網絡服務器訪問協議,它能提供安全的應用層訪問。同樣,SSH提供對遠程用戶的安全終端模擬訪問。 安全的無線鏈路可以確保無線信號不會被收集,數據不會被任何有天線的人提取出來。 安全電子郵件用于確保用電子郵件發送的數據不會以明文方式傳送。一種選項是在數據發送前進行加密。更簡單更通用的解決方案是在加密的鏈路上提供電子郵件服務,這種加密的鏈路可以確保所有電子郵件數據對管理電子郵件的服務器來說都是安全的。 使用SNMP進行安全的文件傳輸 SNMPv3可以加密數據,同時加密和解密例程用于保護數據。如果所有數據都是重要的,那么可以使用文件加密方法,雖然這樣做會犧牲一點性能。 過濾和防火墻保護。通過過濾掉經過網絡服務器抵達的所有數據包可以阻止未授權的訪問。使用先進的過濾技術,設計師可以確保正確的用戶取得訪問權,系統能防止未授權的訪問。這些過濾規則可能需要逐個設備去設置。通常它與SSH或SNMP共同起作用。 安全的引導程序。安全啟動是一個安全系統的重要部分(圖2)。一般經常需要更新固件,而以安全的方式進行更新是非常重要的。這種方法可以取消所有出廠固件更新,并且利用自動回退機制可以極大地增強更新能力。借助自動回退機制,如果新版本(可能被破壞了的版本)無法啟動,可以自動啟動以前的安全版本——這是層次化安全機制的一個組成部分。 圖2:Unison RTOS能夠在最低層次提供額外的安全啟動功能,因此可以完整地保護系統。沒有解釋器或加載一個程序并加以運行然后利用系統漏洞的其它方法,攻擊系統就會變得異常困難。 重新審視系統安全性 現在讓我們考慮一下具有有限資源的MCU或MPU安全性,它們需要借助如果不是全部也是大部分這些協議來實現安全。為了提供實際例子,考慮Unison操作系統——一種微型POSIX RTOS,它具有現成的這些功能。 首先,使用安全通信協議,與目標設備交談的所有應用程序都可以做到很安全,包括電話應用、對微型網絡服務器的安全網絡訪問等。像緩沖器溢出攻擊等騙局就不可能發生了,因為Unison設計在很少的資源條件下運行,必須防止任何不合理的資源使用。安全的無線鏈路是可以使用的。VPN也可以使用。 為了將文件發送到系統,可以使用SFTP。這樣可以保證數據在傳輸過程中不會被破壞——這對于保證系統更新的安全非常重要。 向TCP服務器中的前端處理過程中增加過濾功能可以確保只有授權的請求和更新得到處理。這樣可以防止設備受到入侵者的破壞,極大地提高安全性。 另外,SSH可以用來借助基于終端的方法對設備進行遠程設置。與網絡服務器相比,這種方法比基于腳本的方法更有幫助,可以保證設備的設置也是安全的。 此時數據流入流出設備都是安全的。任何修改或設置也是安全的,授權的應用和用戶可以獲取對設備數據和功能的訪問權。 如果設備被偷了怎么辦?為了保證這種情況下的安全,要么加密設備上存儲的數據,要么不保存本地數據,或者使用加密的文件系統。這樣可以確保設備上的關鍵數據的安全。 如果用戶有設備,并且有口令,那么通常被認為具有合理的安全性?梢栽黾又讣y掃描、虹膜掃描、掌紋和其它設備等方面的額外安全性,從而實現與設備的安全,或連接到安全訪問站的安全。 上面討論了幾乎所有的安全場景,還有一種除外,即破壞安全系統的程序執行問題還沒有考慮。在MCU和某些MPU案例中,程序是從閃存運行的單個鏈接映像。在這種情況下,不可能給系統增加任何東西,因為整個映像是從閃存運行的,如果啟動機制或刷新機制是安全的,那么入侵者根本不可能引入新的代碼。對Unison操作系統來說就是這樣,因此這種系統特別安全。 當系統中存在解釋器的時候,就不能下相同的結論了。解釋性程序可以利用MCU或MPU上的自由訪問權而到處修改系統,除非安裝了精心設計的安全機制,比如使用內存保護單元或內存管理單元(MMU)。 本文小結 可以使用標準的信息技術安全協議、安全啟動以及通過限制解釋器的使用保證MCU和小型MPU系統整體的安全運行。安全性不應該是事后的想法,或置于操作系統的頂層——安全性應該設計進系統,并作為一個有機組成部分進行集成和測試,從而實現真正的安全。 作者簡介: Kim Rowe是RoweBots公司的創始人,致力于向以萬聯網為目標的OEM開發人員提供Unison實時操作系統以及完整的一站式物聯網系統產品開發。Kim在系統工程領域中積累了30多年的豐富經驗,擁有工商管理碩士(MBA)和工程碩士學位。 |