何小慶
面對增長迅速、應用碎片化的物聯網系統,安全問題層出不窮。安全是物聯網發展的一個熱點,已成為物聯網產品必備特性。基于MCU的物聯網設備多數在節點和邊緣,支撐了系統的數據采集和控制,重要性不言而喻。因為系統資源防護能力薄弱,成為黑客的主要攻擊對象。可喜的是,基于MCU的IoT芯片的安全機制越來越完善,功能也大幅度增強,技術上正在從外置芯片向MCU內置安全功能的方向發展。
物聯網安全旨在保護代碼/數據和系統功能
物聯網設備與應用雖然多種多樣,但其架構本質上與嵌入式系統架構是相似的。今天,使用微控制器(MCU)構建的物聯網系統無處不在。安全性首先要保護嵌入式固件不被非法復制或者篡改,設備數據不被盜取以及系統功能安全,即系統功能應穩健可靠。
在物聯網世界中,攻擊是現實存在的,攻擊的本質是黑客利用系統漏洞來訪問資產。防止黑客攻擊是物聯網安全的重要任務。對于環境檢測警報設備或監控攝像機等物聯網設備而言,拒絕服務攻擊(DoS攻擊)是一個主要威脅。攻擊者希望通過成功的嘗試獲得經濟收益,特別是如果攻擊可以像物聯網環境那樣大規模地傳播。聯網設備對黑客非常有吸引力,因為它們可以遠程訪問。聯網設備因為協議漏洞提供攻擊機會,如果攻擊成功,單個被黑客攻擊的設備可能會危及整個網絡的完整性。
物聯網安全旨在保護代碼、數據和系統功能。代碼保護是保證固件知識產權及其完整性,數據保護(包括加密密鑰)是保證用戶數據的機密性并避免身份盜用。隨著物聯網設備訪問云資源的數量倍增,設備的訪問控制管理變得越發重要,物聯網設備資產變得更加敏感。這里資產可以包括傳感器數據(健康數據和位置信息)、用戶數據(賬號和密碼)、交易記錄和密鑰,以及設備和用戶身份等。最后,系統功能安全應受到保護,以避免設備故障或服務故障。
四項技術構建安全的
物聯網架構
構建安全物聯網架構是為了應對多種形式的攻擊,這樣的系統架構必須在單個系統中實現多種類型的安全機制,應在設備硬件和軟件應用兩個方面考慮整體安全性。
一方面,如果設備沒有外部入侵保護(例如開放了調試端口),則無法為機密應用程序運行提供可信計算環境。另一方面,如果設備沒有抵御黑客通過應用攻擊設備的能力,或者它允許進行完全設備訪問,強大的設備自身保護也是無用的。完整的系統安全實現涉及設備保護機制以及一系列穩健性的安全應用,保護機制必須有必要的硬件支撐,還需要在固件開發方面付出巨大努
力。它需要良好的軟件技能和密碼學知識,同時必須權衡開發成本和設備安全,以下是構建物聯網安全架構幾個關鍵技術。
一是TrustZone技術。Arm的Trust Zone技術在智能手機芯片中被大量采用,為手機安全提供基礎保障。今天許多MCU芯片已經在使用基于Trust Zone的IP核,比如Arm Cortex M23/M33,它們內置了Trust-Zone技術,量產的MCU有Microchip SAML11、NuMicroM2351、NXPLPC5500和STM32L5系列。
Arm的TrustZone技術將系統分為安全和非安全兩種狀態,有特定的命令使CPU在兩種狀態之間切換。為了區分和隔離安全代碼,基于TrustZone技術的MCU存儲器被分在了不同的區域,每一個區域都由硬件來保護不受軟件攻擊,任何從非安全區域向安全區域的訪問,或者運行的代碼和當前的系統安全狀態不符,都會導致硬件錯誤發生。
圍繞TrustZone核心技術,Arm聯合5家獨立安全測試實驗室及咨詢機構,推出面向IoT安全的“平臺安全架構(PSA)”以及相關認證。PSA安全認證有三個級別,不同的認證過程和要求對應被認證產品不同的應用場景。國產芯片公司也在快速跟進TrustZone技術,紫光展銳最近推出基于PSA架構的雙核ArmCortex M33安全MCU。
使用TrustZone的優勢是方便建立一個物聯網安全生態環境。考慮到自主可控,以及物聯網系統中信任硬件(SE)重要性,國內芯片企業在RISC-V開放指令集架構上開發類似安全技術,比如平頭哥半導體最近推出的無劍安全平臺。
二是安全通信技術。通信安全是物聯網系統的重要部分,許多高端的嵌入式系統中已經有了SSL/TLS/SSH和IPSec協議軟件,某些云計算服務需要安全的協議支持,比如AWSIoT需要物聯網設備端支持TLS,否則無法正常接入。有些資源受限的基于MCU物聯網設備無法支持基于TCP的TLS安全協議,采用UDP的DLS可以提供安全通信鏈路,云端需要提供響應的接口,比如為Huawei LiteOS和華為Ocean-Connect IoT提供支持。
安全協議為構建物聯網安全提供一個非常好的基礎,安全協議的設計目標是為了防止數據報文被竊聽(嗅探)、中間人攻擊、回放攻擊和未經授權與物聯網節點通信的請求。
三是安全引導和升級技術。安全引導可以防止在引導過程中將沒有授權的軟件加載到設備上。安全引導一般分為兩個階段。第一個階段是放在只讀的存儲器中,該階段引導的主要任務是驗證第二階段引導的程序的真實性。第二個階段引導程序是放在FLASH存儲器中,它要驗證加載的操作系統和應用程序確實來自可信的來源。
安全引導過程一般要靠數字簽名來保護代碼的真實性。代碼的映像由OEM在設備制造時使用自己的私鑰進行簽名,然后設備節點使用OEM的公鑰來驗證代碼映像簽名。
安全固件升級過程與引導類似,在升級過程中要驗證新代碼的映像已經是由OEM簽名了的。如果驗證無效,系統就會丟棄文件并停止升級。只有有效的映像文件才能被接受,而且隨后被保存到設備存儲器中。
以智能門鎖為例,我們看一下升級中的兩種安全隱患。第一是智能門鎖自身的可靠性,第二是來自對智能門鎖的外部攻擊。門鎖自身的可靠性,比如在升級過程中設備電源掉電了,使得更新后的程序代碼無法運行。外部攻擊,比如黑客發送早期有缺陷的OTA升級包,此外還有黑客對于門鎖電子部件的物理攻擊,比如盜取存儲器中的密鑰。
物聯網操作系統,比如Amazon FreeR-TOS與基于云的AWS IoT平臺,提供設備管理和遠程監測,設備管理服務包括對OTA更新的支持。它利用AWS內置的服務,比如亞馬遜用于代碼簽名的Certificate Management和身份訪問管理(IAM)。Amazon FreeRTOS嵌入式軟件提供在MCU上執行的OTA代理,協調OTA操作,從云端下載新升級包,驗證升級包并處理在下載期間的任何中斷。這個升級包的傳輸借助加密的MQTT通信鏈路,OTA代理機構為滿足MQTT報文格式要求,要對升級包再次封裝,好處是不需要另外借助HTTP連接上的TLS鏈路。
四是安全工具、軟件和服務。基于MCU的物聯網安全開發需要軟件和工具的支持和服務,MCU公司提供基礎安全軟件,比如NXP Secure Boot Tool 和TEE配置工具。許多物聯網操作系統集成了安全協議,多數支持安全的OTA機制。新出的TencentOS tiny安全框架提供了DTLS和TLS安全協議,加固了COAP及MQTT傳輸層,可確保物聯網終端在對接騰訊云時實現安全認證和數據加密;安全框架還提供與騰訊云IoTHub配套的密鑰認證方案,確保資源受限設備也能在一定程度上實現設備安全認證。
安全操作系統方面,NXP推薦源自FreeRTOS的SafeRTOS,ST與Arm和安全操作系統供應商Prove&Run合作,于2019年10月在Arm TechCon上進行了STM32L5的演示。NXP的LPC55S69-EVK評估板支持MCUXpresso集成開發環境和開發軟件,包括外設驅動程序、安全和連接中間件,還包括基于Amazon FreeRTOS的演示和基于ArmTrustZone的安全示例。嵌入式MCU軟件工具公司IAR推出安全IoT設備生命周期管理工具Embedded Trust,Segger公司提供安全編程設備,這些為基于MCU物聯網系統安全開發和維護提供了堅實的基礎。
中國企業在物聯網安全服務上頗具特色,近期360北極星團隊、梆梆安全和紐創信安介紹了他們的安全服務和解決方案。從事移動安全的企業也在轉向物聯網領域,比如國民技術32位高性能安全MCU芯片已經在和阿里IoT云以及中移物聯網合作。
物聯網安全與行業應用密切相關,某些應用是物聯網安全高危區,比如智能家居、網聯汽車、智慧城市、智能制造和智慧醫療,物聯網上的潛在威脅既可謀財害命,也可對國民經濟和生活造成重大危機,這些均需引起企業和主管單位的高度重視。