馬瀟宇
摘要:嵌入式系統已廣泛用于電子信息工程領域,系統安全與數據安全十分重要。安全性通常為密碼學、計算科學以及網絡等領域所關注,往往被視為嵌入式系統設計的附加功能。而事實上,安全性問題同成本、性能和功率等問題一樣,均應被納入嵌入式系統設計的考慮范圍。該文基于嵌入式系統開發與設計在安全方面所面臨的挑戰,從終端用戶的角度分析嵌入式系統的典型功能安全需求,進而解析嵌入式系統架構以及硬件和軟件設計面臨的潛在安全問題。此外,研究還考查了解決上述問題的解決方案,借鑒當前的理論與實踐研究成果,提出需要在嵌入式系統架構和設計方法上進行創新與改進。
關鍵詞:嵌入式系統;安全;協議;密碼
中圖分類號:TP391 文獻標識碼:A
文章編號:1009-3044(2020)05-0240-02
開放科學(資源服務)標識碼(OSID):
1 概述
如今,各類嵌入式系統對安全性的需求越來越高,從低端系統例如掌上電腦、手機、網絡傳感器和智能卡等,到高端系統如路由器、網關、防火墻、存儲服務器和Web服務器等,安全防護愈發重要。技術推動電子系統的更新發展,但同時也可能被應用于對系統的攻擊,從而讓安全問題變得復雜。隨著互聯網的發展,信息和通信安全受到了廣泛的關注。例如,各種安全協議和標準(如IPsec、SSL、WEP和WTLS)用于安全通信。雖然安全協議和密碼算法從功能的角度考慮了安全問題,但不少嵌入式系統都受到其所處的環境和所擁有的資源的限制。對于此類系統,有不少因素正促使對安全問題的考慮從以功能為中心的角度轉移到系統架構(硬件/軟件)設計問題上。[1]
首先,用于破壞安全性的攻擊技術,如軟件、物理和側信道攻擊越來越多,這就要求面對邏輯上或物理上被惡意訪問或攻擊,嵌入式系統也能保證其安全性。只有在系統架構及其實現中內置攻擊防御,才能確保對這些攻擊的抵抗能力。其次,許多嵌入式系統的處理能力很容易被安全處理的計算需求所淹沒,難以實現在安全與成本、性能之間的平衡。再次,電池驅動系統和小尺寸器件,如掌上電腦、手機和網絡傳感器通常在嚴格的資源限制(有限的電池容量、存儲和計算能力)下運行。而要讓這些設備達到一定安全要求,便要突破以上限制條件。再其次,嵌入式系統架構需要足夠靈活,以支持安全機制和標準的快速升級更新。最后,新的安全目標,如拒絕服務和數字內容保護需要安全領域和嵌入式系統架構方面之間的深度緊密合作。[2]
本文將基于嵌入式系統安全的重要性,回顧不斷發展的安全趨勢和標準,說明安全需求如何轉化為系統設計挑戰,進而提出通過結合先進的嵌入式系統體系結構和設計方法來應對這些挑戰的新型解決方案。
2 嵌入式系統安全要求
嵌入式系統提供的關鍵功能經常可能被惡意破壞。在討論嵌入式系統的常見安全需求之前,必須要注意,典型的嵌入式系統制造涉及許多方面,例如供應和使用鏈等。安全性的要求往往取決于考慮的角度。以智能手機為例,最終用戶的主要關注點可能是通過手機存儲個人數據信息和進行數據通信的安全性,而內容提供商的主要關注點可能是傳輸到手機的多媒體內容的拷貝保護。此外,手機制造商可能還關心手機內部專有固件的保密性。同樣,潛在的惡意實體類型也可能有所不同。從內容提供商的角度來看,手機的最終用戶可能是不受信任的實體。嵌入式系統有著典型的、廣泛的安全需求,但其安全模型將制約其適用的安全需求組合。當用戶在公共網絡或通信通道發送或接收敏感信息,潛在攻擊者也可訪問網絡時,就需要安全功能來實現數據機密性、數據完整性保護以及對等身份驗證。數據機密性保護敏感信息不遭竊取;數據完整性確保信息不受非法更改;對等身份驗證驗證信息是否由適當的方(而不是偽裝者)發送和接收。這些安全功能皆為當今廣泛應用的嵌入式系統所必需。[3]
另一個重要的安全功能是嵌入式系統的可用性。惡意程序經常阻止嵌入式系統執行功能,導致性能下降或完全拒絕服務(DoS)給合法用戶。嵌入式系統安全通常需要在其使用周期內保護關鍵或敏感信息(代碼或數據),包括確保這些信息在使用周期結束后被正確擦除。安全存儲涉及保護嵌入式系統存儲設備中的信息,無論是系統外部還是內部。內容安全或數字版權管理(DRM)保護系統中使用數字內容的權利,內容提供商較為關注。最后,防篡改指即使設備被惡意入侵或者控制,也能確保安全性,并且可以在物理上或邏輯上進行探測追溯。
3 安全機制
上面描述的基本安全功能通常使用三種不同的加密算法:對稱密碼、非對稱密碼和安全哈希算法來實現。
對稱密碼要求發送者使用密鑰來加密數據(被加密的數據通常稱為明文)并將加密的數據(通常稱為密文)傳輸給接收者。在接收到密文后,接收者使用相同的密鑰解密并重新生成明文。密文應該具有這樣的特性,即第三方在沒有訪問密鑰的情況下很難推斷出明文。因此,在傳輸過程中保證了數據的機密性。對稱密碼的例子包括DES、3DES、AES和RC4。
MD5和SHA等安全哈希算法將任意消息轉換為唯一的固定長度值,從而為消息提供唯一的“指紋”。哈希函數通常用于構造消息認證碼(MACS),例如HMAC-SHA,它還包含一個密鑰,以防止篡改數據的對手通過重新計算哈希來避免檢測。
非對稱算法(也稱為公鑰算法)使用一對密鑰:其中一個密鑰鎖定數據,而另一個密鑰解鎖數據。為給定收件人加密郵件只需要已知的公鑰,但解密只能使用收件人的私鑰,收件人應對此保密。因此,使用私鑰f假設它是保密的)提供程序用戶或主機身份驗證。因此。數字簽名通常使用公鑰密碼和安全散列來構造。用戶可以通過使用私鑰加密消息的哈希值來“數字簽名”:任何人都可以通過使用公鑰解密來驗證此簽名。[4]
非對稱密碼(如RSA、Diffie-Hellman等)依賴于使用計算量更大的數學函數,如大整數的模冪運算,因此比對稱密碼慢得多。對稱密碼通常用于加密大容量數據,而非對稱密碼則用于通過公共網絡建立(傳輸)對稱密碼的密鑰。安全解決方案通常依賴于在安全協議中使用密碼算法組合的安全機制。各種安全技術和機制圍繞這些密碼算法而設計,以提供特定的安全服務。例如:
(1)安全通信協議(通常稱為安全協議)提供確保與嵌入式系統之間的安全通信通道的方法。IPSec和SSL是安全協議的流行示例,分別廣泛用于虛擬專用網(VPN)和安全Web事務;
(2)數字證書提供了將身份與實體關聯起來的方法,而指紋識別和語音識別等生物識別技術則有助于最終用戶的身份識別。
數字簽名作為手寫簽名的電子等價物,既可以用來驗證數據源,也可以用來驗證其身份;
(3)數字版權管理(DRM)協議,如OpenPMP、ISMA和MO-SES,提供了安全框架,旨在保護應用程序內容免受未經授權的使用。
安全存儲和安全執行要求系統的體系結構根據安全考慮進行定制。簡單的例子包括使用專用硬件來阻止對內存中受保護區域的非法訪問,對系統上執行的固件和軟件進行身份驗證,保護與給定應用程序或進程相關的代碼和數據的機密性和完整性,硬件和軟件技術,以保持整個內存層次結構中數據的機密性和完整性,并在處理器中執行加密代碼以防止總線探測等。
4 安全攻擊與對策
對電子和計算系統的各種攻擊表明,黑客很少利用精心設計的密碼算法來進行攻擊。相反,黑客依賴于利用實現的軟件和硬件組件中的安全漏洞。因此,除非在整個設計周期中考慮安全性,否則嵌入式系統實現漏洞很容易被利用來繞過或削弱功能安全措施。
4.1 嵌入式系統安全漏洞解析
4.1.1 軟件
嵌入式系統中的軟件是安全漏洞的主要來源。三個因素,即復雜性、可擴展性和連接性因素會導致軟件管理安全風險。
(1)復雜性:軟件的復雜性隨著應用功能的提升而提高,代碼行的增加會出現錯誤和安全漏洞的可能性。隨著嵌入式系統與互聯網的融合和更多代碼的加入,嵌入式系統軟件也變得越來越復雜。C和C++因效率高而成為非常流行的嵌入式系統編程語言,但缺乏安全性,難以防范例如類似緩沖區溢出等的簡單攻擊。[5]
(2)可擴展性:現代軟件系統,如Java和.NET,都是為擴展而構建的。可擴展主機接受更新或擴展(移動代碼)以增量改進系統功能。操作系統通過動態可加載的設備驅動和模塊支持可擴展性。高級嵌入式系統被設計成可擴展的(如JZME、Java卡),但可擴展系統本質上很難防止軟件漏洞作為不需要的擴展被接入。[5]
(3)連接性:大量嵌入式系統連接到互聯網,小故障的傳播可能導致大規模的安全漏洞。攻擊者不再需要對系統進行物理訪問來啟動自動攻擊,只需利用易受攻擊軟件的漏洞。并利用網絡的傳播效應即可彌漫全網。[5]
4.2 物理和側信道攻擊與防篡改硬件
除了軟件攻擊,還有物理和側信道攻擊,利用系統實現或其標識屬性來破壞嵌入式系統的安全性。歷史上。其中許多攻擊被用來破壞智能卡等嵌入式系統的安全性。物理和側信道攻擊通常分為侵入性和非侵入性攻擊。侵人性攻擊包括進入設備進行觀察,操縱和干擾系統內部。由于針對集成電路的入侵攻擊通常需要昂貴的設備,因此相對難以安裝和重復。侵入性攻擊的實例包括微探測和逆向工程。而非侵人性攻擊無須打開設備,僅需要初期投入,與侵入性攻擊相比更為廉價。非侵入性攻擊有多種形式,包括定時攻擊、功率分析攻擊、故障感應技術和電磁分析攻擊等。
5 嵌入式安全處理體系結構
以往的嵌入式系統只執行單個或幾個固定的功能,但當前的遠程嵌入式系統可以執行多種功能,還可以提供下載新軟件的功能,以便在使用現場而不是回到受控環境中,實現即時應用或應用更新。這無疑提高了嵌入式系統的靈活性和可用性,但也增加了被惡意攻擊的可能性。因此,嵌入式系統本身應該提供所需的安全功能,實現安全防護,抵御惡意攻擊,特別是對于資源受限的嵌入式系統,其在網絡計算環境中更易面臨額外風險。
安全嵌入式處理系統的體系結構設計,應基于不同的宏架構模型,包括嵌入式通用處理器(EP)與特定于應用程序的指令集處理器(ASIP)以及與處理器總線連接的自定義硬件加速器的EP等。其次,基本處理器參數應詳細化指令集體系結構和微體系結構選項,用于在適當的情況下調整基本處理器。再次,安全處理功能要實現對自定義指令與硬件加速器的選擇。例如,選擇要通過自定義指令、硬件加速器或通用指令原語實現的功能。攻擊防御功能涉及嵌入式處理器和嵌入式系統設計中抗攻擊特性的選擇,可以同時防止軟件攻擊和物理攻擊,包括用于管理安全存儲器空間的增強存儲器管理單元、處理隔離架構、用于阻止功率分析攻擊的附加冗余電路和故障檢測電路。[6]
6 結束語
目前,安全嵌入式系統設計在研究和普及部署方面還處于起步階段。盡管從歷史上看,各種安全問題都是在密碼學、網絡安全和計算機安全的背景下得以研究、解決,但新興網絡環境,尤其是嵌入式系統網絡環境帶來的問題迫使研究者們重新審視安全保護問題。網絡空間的范圍較大,而嵌入式系統范圍有限,其安全問題解決方案與網絡空間安全問題也會有所不同。但同時,嵌入式設備資源的有限性給實現安全水平預期也帶來了新的挑戰。架構和設計方法的進步將使推動嵌入式系統設計的進步及系統應用范圍的拓展。而為了實現嵌入式系統在應用程序和環境要求范圍內的安全性,研究者應該基于嵌入式系統的基本安全功能,在不影響設備性能、體積、能耗、成本和可用性的前提下,為各種攻擊提供防御。
參考文獻:
[1]趙波,倪明濤,石源,等,嵌入式系統安全綜述[J].武漢大學學報:理學版,2018,64(2):95-108.
[2]曹榮祥,陳雙龍,一種增強嵌入式系統安全性的安全防護技術[J].指揮控制與仿真,2007,29(6):112-115.
[3]何立民.物聯網時代嵌入式系統的安全性設計[J].單片機與嵌入式系統應用,2016,16(7):82-83.
[4]郭福洲.嵌入式系統的安全啟動機制研究與實現[J].電子測試,2019,406(1):86-87.
[5]【美】戴維·克勒德馬赫,[美]邁克·克勒德馬赫,著,周慶國,姚琪,劉洋,等譯嵌入式系統安全[Ml.北京:機械工業出版社,2015.
[6]王明劍,謝永強,王建新.嵌入式信息系統安全體系構建與應用[J].信息安全與通信保密,2005(7):203-206.
【通聯編輯:朱寶貴】