當前位置: 華文世界 > 數位

浮思特| 對無線MCU硬體加密以強化安全防護

2024-01-18數位

曾用以保護工業控制器等裝置的網路空隙目前已被填補,這得益於無線網路套用的增長。無線網路的引入提高了便利性和靈活性,但同時也為黑客攻擊提供了便捷之道。無線網路的發展也伴隨著黑客竊取資訊的能力在提高,而嵌入式裝置一直都極易受到攻擊。因此,我們需要使用多種手段支持高級安全性,以強化防止攻擊的裝置。

安全強化的核心是一套基本構建塊,當它們一起使用時,可以抵禦黑客攻擊並保持完整性。 一個啟用無線的裝置需要確保它可以維護自己的程式碼和數據的控制權,並支持與能提供必要認證以獲得信任的遠端端點的私有通訊。

裝置認證之所以至關重要的一個例子是中間人攻擊。 這是一種黑客截取兩個合法裝置間通訊、監聽對話並篡改它們收到的封包,以獲取秘密或進入一個或兩個裝置的攻擊。 一個常見的對Wi-Fi裝置的攻擊是建立一個偽裝成合法路由器的存取點,該存取點會向真實的存取點和裝置自身轉發被篡改的數據。透過這樣的技術,攻擊者可能會學習到執行成功登入所需的存取程式碼,或者他們可能會註入錯誤的數據或malware導致裝置出現故障。 因此保護好對話是至關重要的,這也指明了我們需要使用加密技術來讓未經授權的監聽者難以實施攻擊。

每一個安全的物聯網裝置的中心都需要有一個可信根。這是嵌入裝置中一套可以被電腦的作業系統和軟體充分信任的功能。 在當今的裝置中,可信根是透過使用公鑰基礎設施 (PKI) 加密技術保證的,這是一種檢查任何裝置的真實性和其操作有效性的機制。PKI建立在生成一對在使用中非對稱的加密鍵的基礎上。一個是可以自由分發並用於加密發送給私鑰持有者的訊息的公鑰。 透過在公共網路上無風險地傳輸公鑰,可以大大提高基於加密的安全性的可延伸性,這相比對稱金鑰系統有著巨大的改進。

由於對稱系統使用同一個金鑰進行加密和解密,因此必須始終保密該金鑰以防止未經授權的使用者獲取。這使得把可信金鑰送達使用者變得非常困難,因為他們必須使用其他的、具有高信任度的通訊渠道來獲得金鑰。

在PKI下,只有私鑰的持有者可以解密由公鑰的持有者發送的訊息。因此,金鑰必須保密。然而,PKI支持的協定意味著永遠無需向其他使用者發送私鑰。所有通訊都可以透過使用公鑰和使用私鑰數位簽名的證書來支持。 PKI交易可能會對計算能力要求極高,這使得其在嵌入式系統中的實施變得困難。然而,使用專用的MCU會減輕處理器和加密數據的主處理器的負擔。

幾乎在整個網路中都被使用的傳輸層安全協定 (TLS) 也是基於PKI的,它可以防止未經授權的監聽並幫助防止中間人攻擊。然而, 有了PKI核心,我們可以透過加密和保護資訊,超越僅是防禦。這個核心可以和設計良好的硬體特性相結合,對嵌入式系統建立一個可信根,確保裝置只能執行經過授權的程式碼,並只能和網路中的其他經過授權的裝置通訊。

可信根背後的思想是,只有被可信方簽名的程式碼才被允許在引導時執行,而且程式碼除了由同一可信方更改之外不能被更改。引導程式碼的關鍵因素是它是使用PKI技術進行數位簽名的,這生成了一個與程式碼內容本身關聯的雜湊值。這個簽名過程通常由裝置制造商執行,制造商首先獲取或生成一個被制造商的私鑰保護的基於PKI的電子證書。用於這一過程的電子證書通常是由一個高信任度機構生成的根證書衍生出的。根證書支持生成一系列衍生證書,它們指向一個核心可信實體 – 這是一個對攻擊者來說難以妨礙的信任鏈。

當程式碼被載入進裝置並使用匹配的公鑰分析時,程式碼簽名需要精確地匹配二進制檔的內容。對軟體的任何更改都會使雜湊值無效,裝置應拒絕從該影像引導。這有助於防止以操作儲存影像以插入惡意程式碼為中心的攻擊。

觀看公共程式碼驗證金鑰的人需要把它儲存在安全記憶體中,以及裝置自身的私鑰,它將用於生成與其他裝置通訊的可信金鑰對。除了程式碼驗證金鑰和本地系統的私鑰的安全儲存外,裝置還提供了一個可被用於驗證由裝置制造商或服務營運商提供的其他數位簽名真實性的可信任根證書目錄。

程式碼更新以及需要從伺服器發送的其他安全數據可以使用類似的流程進行驗證。首先,伺服器生成一個公鑰/私鑰對並行送公鑰版給裝置。這個被用於生成一個臨時的金鑰對。衍生出來的公鑰被傳輸到套用伺服器。加密的檔可以透過一個不安全的頻道比如Wi-Fi傳輸,並在裝置上解密,然後可以進行最後的真實性檢查。

如果簽名不匹配,任何未經授權的程式碼或數據更新都可以被拒絕。此外,裝置被保護免受可能涉及重設期間的中斷的攻擊。一個擁有部份安裝的固件的裝置可能會因為在重新啟動時軟體處於不確定狀態而變得易於攻擊。在重設後會觸發自動回滾以確保只有完全安裝並認證過的固件才能執行。

理想情況下,可信根使用PKI運算將可信區的覆蓋範圍從自身擴充套件到系統的其他元素,例如被簽名並在執行前檢查過的套用程式碼。 然而,惡意程式碼可能在工廠被引入,或者需要執行各種服務導致非信任程式碼被載入。另一種情況可能是黑客獲取裝置的物理存取權並透過直接操作記憶體匯流排來插入他們自己的程式碼。一個安全警報記數器追蹤存取違規行為,比如嘗試使用一個無效或不正確的安全令牌讀取或寫入檔。當系統達到預定義的安全警報限制時,裝置將會被鎖住。要從釘選狀態恢復,必須將裝置恢復到工廠設定和程式碼庫。

在裝置上有一個硬體加密引擎的優勢是處理器無需載入可能不受信任的程式碼來執行PKI演算法,然後再測試引導軟體的來源去執行其余部份。 加密和安全功能的程式碼不僅由一個並列執行於主Cortex-M4核心的專用網路處理器執行,它還儲存在不能被具有物理存取系統能力的攻擊者修改的ROM中。

透過這個方法,我們有了一個極高安全性的無線微控制器的基礎,這個控制器可以實作物聯網的承諾,即安全、保護良好但靈活的智慧控制環境。 軟體開發人員需要采取額外措施以避免開啟安全漏洞,但透過使用加密和僅與可信任方通訊,大大降低了攻擊者獲取對裝置的存取權的可能性。