丁魏

摘要:本文結合實際的項目情況,從升級包安全角度出發,探索了智能設備在進行FOTA升級的過程中,需要對升級包做哪些方面的防護,有時如何使用各種加解密技術達到安全防護效果的。
[關鍵詞]FOTA安全 升級包安全 文件驗簽 文件加密
1 安全需求
身份認證:認證升級包是從真正的服務器上下發下來的,并確保下載下來的文件為客戶經過認證并簽發的升級包。同時智能設備必須驗證服務器的真實性。
信息機密性:升級包為智能設備廠商的核心資產,因此我們需保障升級包在網絡上傳輸過程中不被竊取,竄改;保障即使該升級包落入惡意攻擊者手中,也無法通過逆向工程,反編譯等手段破解程序包中的核心程序及重要的軟件資產信息。
數據防篡改:在進行FOTA升級的時候,必須保障每個字節的正確性,否則就會導致升級失敗。所以在進行軟件更新時,必須保證系統更新包是從真實的FOTA服務器下載下來的并沒有被篡改。
數據完整性:一個不完成的升級包是無法進行FOTA升級的。因此我們在升級包到達智能設備之后,都要進行反復的進行完整性校驗,確保升級包的完整性。
2 技術說明
在升級包防護措施實施中,我們會用到各種加密算法。為了更能理解后面做的防護措施,我們把一些主要使用到的技術及其特點列舉如下:
HASH:中文名為哈希,該算法可以把任意長度的輸入,通過散列算法變成固定長度的消息摘要函數,相當于信息指紋。常用的HASH算法包括MD5、SHA256等。在這我們使用文件的HASH值來判斷文件完整性以及是否被篡改。
AES:常用的的對稱加密算法,有速度快,簡單等特點。主要分為AES128,AES192,AES256三種算法。從安全性來看,AES256安全性最高,從性能來看,AES128性能最高。在這我們使用該算法對升級包進行加密處理,加密之后能夠保障升級包的隱私性。
RAS:常用非對稱加密算法,公開密鑰密碼體制,使用了不同的加密密鑰與解密密鑰對。其中一個稱為公鑰,一個稱為私鑰。在這我們使用私鑰對升級包的HASH值進行簽名,使用私鑰對升級包的HASH進行驗簽。
HTTPS:HTTPS為HTTP協議,上添加了SSL安全證書,用于安全的數據傳輸和身份驗證。在這我們使用HTTPS技術下發升級包,保障升級包傳輸過程的安全和下載來源的可靠性。
KMS:秘鑰管理服務器,提供秘鑰的分發,秘鑰管理,公私鑰對的生成等功能。
3 架構設計
如圖1所示。
根據實際安全需求以及項目詳情,構思了一套完成的升級包防護方案,該方案能有效的對升級包的身份認證,保障升級包的信息機密性,數據完整性,隱私性等要求。以下結合具體的流程步驟,闡述升級過程具體的防護措施。
流程步驟:
步驟1:計算獲取原始升級包的HASH值,使用該HASH值作為參數去獲取升級包加密需要的加密因子。文件的HASH值可以認為是文件的指紋,使用它作為獲取加密因子的參數,能達到不同文件得到不同加密因子的效果。
步驟2:使用獲取到的加密因子和AES256算法對文件進行加密處理,得到加密后的升級包。
步驟3:獲取加密包的HASH值,把它作為對升級包簽名的內容。
步驟4:獲取對稱加解密的秘鑰對,用來做文件簽名使用。
步驟5:使用獲取到的秘鑰對中的私鑰,采用RSA加密算法對加密包的HASH值進行簽名,簽名后生成了一段字符串,此段字符串即為數字簽名的憑證。對升級包進行簽名之后,只有使用公鑰進行才能驗簽通過,從而達到身份認證的功能。
步驟6:把簽名好的字符串和簽名秘鑰對中的公鑰拼接在升級包后面,作為升級包的一部分,下發到智能設備中。
步驟7:使用HTTPS加密通道,下發升級包,采用TLS1.2加密協議,保障升級包來源的可靠性,以及升級包在傳輸過程中不被監聽和截取。
步驟8:升級包下載到智能終端之后,程序根據預先約定的規則對升級包進行拆解。拆解后為加密包、驗簽公鑰及簽名字符串三塊。
步驟9:使用智能設備預置的根證書對拆分好的公鑰進行認證,認證通過說明該公鑰為合法的公鑰。
步驟10:使用認證過的公鑰對簽名字符串進行驗簽,驗簽過程也就是對簽名字符串進行解密的過程,解密后和加密升級包的HASH值進行比較,如果一致,則代表驗簽通過。從而達到了認證了升級包來源的可靠性及完整性的效果。
步驟11:驗簽通過后的升級包還是個加密的升級包,需要對其進行解密之后才能使用。我們再使用升級包的原始HASH值,去獲取升級包的解密秘鑰,并使用AES256算法對該文件進行解密,解密之后得到的文件即為原始文件。至此,我們可以使用該升級包進行對固件進行后續的升級操作。
4 結論
安全為FOTA升級過程中非常重要的一環,升級包的安全作為整個安全體系中的一部分至關重要。我們既要保障升級包來源的可靠性,安全性,隱密性,同時還需要考慮實際上設備的處理能力。
我們在該實踐方案中使用AES256算法保障了升級包的隱私性,使用RSA簽名算法認證了升級包的身份,使用文件的HASH驗證了文件的完整性,使用HTTPS技術保障了傳輸過程中的安全。我們從安全需求角度出發,使用了各種加解密算法及安全流程,保障了升級包的安全,可靠,機密,完整等特性。
參考文獻
[1]劉楊。基于混沌映射的分組密碼研究[D].華東理工大學,2011.
[2]趙劍。基于Android的手機銀行系統的設計與實現[D].西安電子科技大學碩士論文,2014.