WILLIAM E. LAMIE,Express Logic總裁
物聯網 (IoT) 正在推動互聯嵌入式設備的爆炸式增長,其中絕大多數基于 32 位微處理器和微控制器,控制我們的大部分重要基礎設施,包括電網、交通系統、化學和制造工廠等。意識到保護敏感數據的必要性,開發人員正在爭先恐后地生產安全的系統,同時滿足設備和系統快速開發和部署的需求。
當然,安全性是并且應該是物聯網設備和系統的可靠性、安全性、連接性和性能特征的一個組成部分。在由適當的 32 位硬件和實時操作系統 (RTOS) 組合形成的平臺上開發和構建這些設備被證明是匯集物聯網設備所需的所有功能的首選方式。
隨著 32 位嵌入式設備在功能和復雜性方面的提升,它們也獲得了通信要求和多線程執行。這些都是需要實時操作系統的要求。使用 RTOS 可以帶來快速、有保證的實時性能,通常還有預構建的文件系統和通信堆棧,開發人員可以簡單地將其包含在構建映像中并通過操作系統的應用程序編程接口 (API) 進行訪問,而無需從頭開始構建和測試它們。
標準 API 和多線程執行的存在意味著在添加新功能時具有更大的靈活性,同時更容易將應用程序遷移到新的處理器環境。它還使不同的開發團隊更容易處理應用程序項目的不同方面,并充滿信心地將他們的工作結合在一起。由于許多 RTOS 由監管機構“預認證”,它們可以加快整個項目的認證過程,縮短上市時間和成本。簡而言之,使用 RTOS 為構建具有高功能和可靠可靠性的創新連接設備奠定了可靠的基礎。
RTOS 增強 IoT 安全性最近導致 Netflix、Twitter、PayPal 和其他主要網站癱瘓的分布式拒絕服務 (DDoS) 攻擊是由尋找用戶設備(網絡攝像頭、路由器等)的網絡機器人引起的。只是忽略了更改出廠默認用戶名和密碼。它只是從一個常見的默認值列表中工作,并且能夠滲透到成千上萬的設備中。設計良好的 RTOS 有助于確保密碼得到良好實施和正確使用。
雖然提供密碼和用戶名很重要,但保護它們免受未經授權的訪問和破壞也很重要。這可以通過將它們保存在內存的安全區域中來實現,在該區域可以保護它們免受系統上可能運行的其他代碼的影響。更具體地說,該區域不應用于數據通信。
破解密碼可以授予對設備及其網絡的訪問權限,但黑客可以通過其他更微妙的方式獲得一定程度的控制,以及竊取或以其他方式破壞數據。這些涉及連接機制和通信協議,以及由 RTOS 控制的內部存儲器管理。
安全性需要了解從一個實體到另一個實體的數據流:知道誰擁有數據,誰可以寫入和讀取數據,以及這些讀取和寫入可能對控制產生的影響。這導致了許多安全通信協議的開發,這些協議已與當今先進的 RTOS 集成在一起,以保護數據免遭竊聽和篡改。
基礎之一是傳輸層安全 (TLS) 協議,它繼承了安全套接字層 (SSL) 協議。TLS 通過使用客戶端和服務器之間的握手會話來工作,在該會話中,客戶端請求標識并發送包含服務器名稱及其公共加密密鑰的證書。客戶端發送一個它支持的密碼套件列表,然后服務器選擇一個。服務器還發送它的公共加密密鑰,客戶端使用它來加密一個隨機數。雙方使用該號碼來生成唯一的會話密鑰。會話密鑰僅用于該會話的各方之間的加密和解密。
需要注意的是,TLS 本身并不執行加密和解密。這是通過使用高級加密標準 (AES) 等機制的獨立軟件加密引擎完成的。AES 和其他加密引擎使用通過 TLS 生成的會話密鑰來執行該任務。TLS 于 1999 年 1 月發布,用于創建私人通信標準。它構成了其他安全協議和策略的基礎,可以內置并與它們一起使用,例如簡單郵件協議 (SMTP) 或 HTTP 安全 (HTTPS) 協議,它們完全位于 TLS 之上,因此可以自己加密。
一旦開發人員不得不投入大量時間和精力來讓這些不同的協議協同工作。然而,今天,現代 RTOS 提供與包含這些協議的安全 TCP/IP 堆棧的集成,并允許開發人員選擇他們需要的核心協議,例如 IPv4、IPv6、UDP 等,以及更高級別的附加協議,例如 TLS、SSL 和 DTLS(圖 1)。這使開發人員可以專注于應用程序所需的安全通信策略。
圖 1:現代 TCP/IP 網絡堆棧帶有核心網絡協議,例如 IPv4、IPv6、TCP 和 UDP,以及一整套附加的更高級別的附加協議。
內存保護保護重要代碼有許多方法可以保護重要代碼免受損害,其中許多涉及某種分離方案和內存保護。受保護的內存位于安全區域,外部通信或從其他地方加載的代碼不會干擾運行設備的代碼的核心功能。
這些方法包括不允許任何動態加載代碼但需要更新單個可執行映像的 RTOS。它們還提供線程的動態加載,但維護某些不可侵犯的內存區域。這些有時被稱為“分離內核”,其中至少有一個不可訪問的內存區域以及連接到網絡、外圍設備和動態加載功能的幾個部分。
確實提供這種內存保護的 RTOS 提供了從一個線程到無限數量的粒度級別,可以保護和防止意外或未經授權的訪問。這消除了難以診斷的程序崩潰和安全漏洞的常見原因。這些選擇提供安全性,同時還提供靈活性和可升級性,而無需完全重新加載系統。
在現實世界的實現中,Express Logic 的 ThreadX 內核可以將一個或多個應用程序線程捆綁到一個“模塊”中,該“模塊”可以在目標上動態加載和執行(XiP)(圖 2)。模塊也有一個完全獨立于 ThreadX 本身的地址空間。這使 ThreadX 能夠在模塊周圍放置內存保護(通過 MPU 或 MMU),這樣模塊外的意外訪問將無法破壞任何其他軟件組件。
圖 2:在現實世界的實現中,ThreadX 允許將一個或多個應用程序線程捆綁到一個“模塊”中,該“模塊”可以在目標上動態加載和執行 (XiP)。
安全是一項共同的責任與 ARM 等硬件制造商合作的趨勢也在增長,他們正在將安全措施內置到他們的處理器中。例如,較新版本的 Cortex-M MPU 可以增強 RTOS 安全功能,例如 Express Logic 的新 X-Ware 安全平臺,以配合并增強整體安全功能。應該注意的是,即使是 RTOS 提供的最好的安全功能也代表了一個平臺:構建真正安全的設備和應用程序的基礎。
制造商 OEM 和應用程序開發商共同承擔構建平臺提供的安全功能的責任。這允許他們實現諸如安全引導加載程序之類的東西,并使用 TLS 和 DTLS 協議來保護敏感數據傳輸,利用內存分區來創建安全的應用程序,哦,是的,安裝強密碼保護。
結論當今的 RTOS 為構建功能強大、可靠、安全和可靠的設備和應用程序奠定了堅實的基礎。通過精心設計的安全機制,包括安全堆棧、良好的內存分區以及強大的生態系統和設備級合作伙伴,它們提供了抵御惡意攻擊的第一道防線。
審核編輯 黃昊宇
評論
查看更多