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