□郭 凱 緱步清
探索基于軟件Keyladder的NB-IoT產品安全啟動升級,主要是針對窄帶物聯網(NB-IoT)的3GPP LTE R13版本標準體系,基于物聯網發展對網絡安全以及軟件升級啟動和合法性校驗的要求,開發與設計新的基于NB-IoT終端的安全啟動和升級方法,確保窄帶物聯網技術(NB-IoT)的安全啟動和升級。本文基于軟件Keyladder的性能,針對NB-IOT技術與產品運行的安全與風險現狀,闡述如何在軟件Keyladder上實現NB-IoT產品安全啟動升級。
現階段的NB-IoT產品安全性不強,實施強調細化NB-IoT軟件啟動機制,科學設置安全校驗法這套解決方案,可以使用高中低的配置和自適應性,解決當下物聯網產品安全啟動與校驗升級存在的安全問題。基于軟件Keyladder實現NB-IoT產品的安全啟動升級,是利用軟件實現的Keyladder作為NB-IoT終端的啟動加密方式,按照信息安全分割執行程度,將原有的啟動機制細化成APP1和APP2,根據內存資源由原來的軟件裁剪出來的APP1,在Flash執行,App2在內存執行用來做簽名校驗[1]。將終端軟件分割成兩段,裁剪出從Flash直接啟動的APP1,與安全相關需要解密在內存里執行的APP2,并提供一種根據產品性能可配置的安全校驗方法,確保終端產品的安全性和防抄版的能力。具體過程如下。
(一)切割程序,組建小模塊。利用軟件Keyladder實現信息的多級加解密,然后使用程序編譯文件,將啟動程序切割成從Flash執行的APP1、在內存中實現信息加密與執行的APP2。
(二)設置信息模塊。信息模塊主要是包含了APP1和APP2在Flash的地址和長度信息、數據塊描述區地址和長度信息、安全配置模塊地址和長度信息,完善組件信息模塊,是要為確保信息的完整性。
(三)提高模塊的安全性。在APP1與APP2中配置安全模塊,使用加解密算法配置(AES、TDES、RSA等)、完整性校驗算法配置(SHA、MD5、CRC等),使用軟件Keyladder實現設備版本信息、配置版本信息的多級加密,保護產品信息。
(四)設置數據塊描述區。數據塊描述區的設定,在于將升級數據進行分組與加密標識,通過數據塊分組數、數據塊加密標識以及對應采用的加密算法標識和數據加密key,標識數據塊校驗標識,使用校驗算法[3]。
(五)設置打包工具。采用程序打包工具對APP1與APP2內的數據與程序進行打包處理,按照百分比配置APP1的校驗算法配置和確定APP1的校驗比例;配置APP2的加密算法和確定APP2的加密比例,APP2的校驗算法配置和APP2的校驗比例(按百分比計),確保軟件Keyladder的加密使用,確保解密數據塊描述區和安全配置模塊的root key的使用。
比對常規的程序啟動,基于軟件Keyladder的NB-IoT產品設計中,通過數據描述區的加密和校驗百分比,解密對應的數據,完成啟動合法性校驗,完成APP1與APP2的配合運行。具體環節如下。第一,上電啟動后初始化芯片;第二,用根密鑰解密組件信息,解析獲取APP1、APP2、安全配置、數據塊描述區在flash中存儲地址、大小;第三,根據組件信息中提取的安全策略地址和大小,用根密鑰解密安全配置數據,解析獲取本地安全配置版本,產品ID,支持的加密和校驗方式等;第四,根據組件信息中提取數據塊描述區地址和大小,用root key解密數據塊描述區后,獲取APP1及APP2的分組數、各組加密方式、校驗方式、加密密鑰、各組校驗值等;第五,解析數據,先解析APP1分組數據,由APP1校驗進行校驗。先用設備ID解密APP2,然后并根據數據塊描述區的校驗比例配置進行逐塊校驗,校驗成功后將APP2加載到指定內存地址進行校驗與啟動操作;第六,如果APP1或是APP2數據校驗失敗則復位重啟;第七,APP1和APP2的簽名校驗都成功,則跳轉到APP1,程序開始從APP1 flash地址執行,根據裁剪信息加載內存中的APP2。
基于軟件Keyladder的NB-IoT產品安全升級的方案,是通過打包工具將配置好校驗加密比例的APP1和APP2以及用RootKey加密的安全配置信息、數據描述區等數據打包成一個升級文件,再對整個升級分解做RSA和SHA的數字簽名計算,確保升級軟件的合法性和完整性,具體環節如下:第一,將打包的升級軟件通過NB-IoT的私有協議下載到本機的OTA臨時存放區后,設置升級標志重啟。第二,程序啟動后從OTA臨時存放區獲取升級數據,并用根密鑰解密數據頭信息,獲取打包數據的大小、簽名,然后用BOOT模塊的公鑰對整個升級數據做簽名校驗。第三,RootKey解密組件信息,數據塊描述區,以及安全配置信息;解析組件信息,獲取APP1、APP2、安全策略、數據塊描述區在flash中存儲地址、大小;解析安全策略,獲取安全策略版本、產品ID、支持加密方式、支持校驗方式,跟本地安全策略進行對比,檢查版本是否增加,產品ID是否匹配,加密校驗方式是否匹配;解析數據塊描述區,獲取APP1及APP2的分組數、各組加密方式、校驗方式、加密密鑰、各組校驗值等。第四,校驗APP1和APP2的合法性和完整性,根據設備ID信息二次加密APP2,將所有數據按組件信息的地址升級Flash的指定區域。第五,完成升級后復位重啟跳轉到啟動流程。
綜上所述,針對目前的NB-IOT軟件終端,要確保軟件的安全校驗,第一種,將終端軟件切割成兩段,將安全啟動程序分割成以flash直接啟動的APP1;第二種是進行加密內存、執行安全操作的APP2,利用兩種App特點與功能,設計產品性能的安全校驗方法,以提高終端產品的安全性與防抄版能力,實現產品安全升級。