作者:ANDR WEIMERSKIRCH, PH.D.,KAI SCHRAMM, PH.D.
當今的嵌入式航空電子設備和其他安全關鍵型系統越來越面臨著提高安全性的要求。因此,利用數字簽名和Rivest Shamir Adleman(RSA)和橢圓曲線加密(ECC)算法的軟件下載/刷新方案有助于防止未經授權的訪問和偽造。
現代世界中越來越多的設備配備了多種嵌入式系統。這一趨勢的一個明顯例子是航空業,它使用大量電子控制單元 (ECU) 來控制幾乎所有東西,例如空調、發動機甚至制動系統[1]。ECU通常允許通過引導加載程序下載更新的程序和數據代碼。必須確保軟件的真實性和安全啟動過程,因為越來越多的嵌入式設備用于安全敏感應用,例如飛機的發動機控制。因此,必須防止對這些設備的任何本地或遠程篡改[1]。
為了防止偽造或未經授權的訪問,必須安全地更新軟件(通常存儲在可重新編程的閃存中)。在引導過程中(軟件通常在安全的后端服務器上簽名,然后使用引導加載程序安裝),系統必須通過檢查數字簽名來驗證新固件的真實性。僅當此驗證成功時,設備才能執行新固件。討論了一種基于數字簽名的安全軟件下載/燒錄方案,集成了Rivest Shamir Adleman(RSA)算法和橢圓曲線加密(ECC)簽名算法,作為授予這種保證的一種手段[3]。
通過數字簽名實現真實性
數字簽名提供完整性和真實性;經過數字簽名的數據不能被惡意第三方更改,否則接收方不會檢測到。此外,接收方可以驗證數據是否確實由聲明的簽名者簽名。此外,簽名者不能否認他是簽名的合法創建者(不可否認性)。此外,數字簽名是使用非對稱加密算法(如 RSA 算法或 ECC)生成和驗證的。
數字簽名的計算如圖 1 所示。有一對密鑰由私鑰SK和公鑰PK組成。只有簽名者可以訪問 SK,而 PK 可以公開分發。一般來說,SK只為嵌入式系統的制造商所知,例如航空業的OEM,而PK內置于每個嵌入式系統中。程序代碼 x 首先被哈希為一個短的固定長度值 y。通常,y 是通過應用安全哈希算法 (SHA)1 系列的哈希函數來計算的。然后使用私鑰SK在y上計算數字簽名。此后可以使用公鑰PK驗證簽名。
圖1:在嵌入式系統制造商處生成數字簽名
因此,軟件頒發者(即嵌入式系統的制造商)持有用于對軟件進行簽名的私鑰SK,ECU持有相應的公鑰PK用于驗證它(再次參見圖1)。
安全軟件下載
利用安全的軟件下載過程是在現代嵌入式系統中維護這些所需信息安全級別的關鍵。安全軟件下載過程包括幾個獨特但至關重要的步驟(參見圖 2):
第 1 步:軟件開發完成。
步驟 2:將程序目標代碼傳遞到軟件頒發者安全環境中的信任中心,該信任中心使用其私鑰 SK 對目標代碼進行簽名。
第 3 步:然后將簽名傳回并附加到程序目標代碼。
第 4 步:代碼包和簽名包現在存儲在數據庫中,該數據庫可能包含不同嵌入式系統的版本。
步驟5:將適當的程序代碼下載到嵌入式系統。
第 6 步:然后使用相應的公共驗證密鑰 PK 驗證相應的程序代碼。
圖2:安全軟件下載過程
在此安全軟件下載的上下文中,RSA 適合進行簽名驗證。這是因為它允許非常快速的簽名驗證,并且可以在不侵犯專利的情況下在軟件中實現。表 1 中顯示了此實現的一些性能值。
表 1:與各種加密算法相比,在 ARM MPCore @ 400 MHz 上測量的 RSA 簽名驗證的運行時間
頒發單個私鑰/公鑰對就足夠了,這樣私鑰 SK 存儲在信任中心,公鑰 PK 存儲在嵌入式系統中。信任中心可能是與任何計算機網絡斷開連接的電腦和保存密鑰的安全智能卡。嵌入式系統只需要存儲公鑰,這樣系統本身就不會存儲任何機密信息。但是,必須保護此公鑰免受操縱(也就是說,它必須存儲在可以讀取但不能覆蓋的安全內存中[3])。因此,安全存儲插座包括只讀存儲器(ROM)或一次寫入多次讀取(WORM)存儲器,必須在生產過程中由制造商初始化[1]。
安全軟件刷機
在閃存過程中,每個軟件塊都可選加密,并事先計算簽名。接下來,外部編程設備對引導加載程序進行身份驗證(例如,通過使用質詢-響應機制)。然后,外部設備逐塊傳遞到嵌入式系統的引導加載程序。引導加載程序解密并存儲每個塊,并在其上計算哈希[2]。最后,在引導加載程序計算出新閃存程序文件的哈希值后,它會執行數字簽名驗證。如果簽名驗證成功,則接受并激活下載的文件。否則,將激活安全程序,引導加載程序將等待下載正確的閃存文件。
數字簽名確保安心
通常,固件中內置了引導加載程序以更新程序。但是,在大多數情況下,沒有實施任何機制來避免下載以未經制造商授權的方式更改設備行為的操縱程序。所提出的機制是操縱攻擊的有效對策。這種機制已經在各種應用中成功實施,例如汽車領域[3]、航空領域,甚至手機行業。我們強烈建議實施所述的基于數字簽名的非對稱加密方法。
審核編輯:郭婷
-
嵌入式
+關注
關注
5089文章
19170瀏覽量
306792 -
ecu
+關注
關注
14文章
892瀏覽量
54639
發布評論請先 登錄
相關推薦
評論