胡 姣 曹慧穎 李岳洪 吳 根
(威凱檢測技術(shù)有限公司 廣州 510663)
隨著5G網(wǎng)絡(luò)逐漸普及,網(wǎng)絡(luò)的傳輸速率得到了極大的提升,伴隨而來的是海量而廣泛的數(shù)據(jù)傳輸。在萬物互聯(lián)的時代里,越來越多的傳統(tǒng)單機設(shè)備得益于軟硬件的發(fā)展,得以接入網(wǎng)絡(luò),其中最為常見的就是各類智能家電產(chǎn)品。
相比與傳統(tǒng)家電,智能家電特點在于可以通過設(shè)備間的互聯(lián)帶給用戶高效和便利,通過大數(shù)據(jù)學(xué)習(xí)運算實現(xiàn)更為人性化的用戶場景式體驗。所以,相比之下智能家電的更新?lián)Q代更加頻繁,市場熱情也在不斷壓縮著產(chǎn)品品質(zhì)提升和功能拓展的周期。對于廠商而言,如何將產(chǎn)品適應(yīng)其市場環(huán)境,則是一個值得不斷探索的問題。一方面技術(shù)實現(xiàn)降本增效帶給廠商足夠的價值收益,另一方面產(chǎn)品的迭代能力不僅僅可以作為賣點,更可以為用戶帶來更好的使用體驗。
而遠(yuǎn)程升級OTA技術(shù)則很好的滿足了當(dāng)前的需求。OTA是一種基于無線移動網(wǎng)絡(luò)進行下載應(yīng)用程序并完成升級的物聯(lián)網(wǎng)技術(shù)。簡單來說就是OTA技術(shù)支持設(shè)備通過無線網(wǎng)絡(luò)進行固件升級,從而實現(xiàn)解決漏洞、功能迭代的目的。正是由于OTA技術(shù)可以突破地理、時間等局限性因素的能力,越來越多的廠商使用OTA技術(shù)作為產(chǎn)品的固件升級方案,也更加值得進一步分析研究。
雖然OTA技術(shù)可以極好的解決當(dāng)前的功能需求,但其支持無線網(wǎng)絡(luò)傳輸和實時傳輸?shù)奶匦砸馕吨糜谏壍墓碳畔?jīng)公網(wǎng)傳輸,易發(fā)生人為篡改,從而存在潛在的安全風(fēng)險。
OTA升級固件往往涉及到設(shè)備的功能的改變,若受到惡意攻擊或發(fā)生故障,不但可能影響設(shè)備原有功能,影響用戶體驗,還有可能造成設(shè)備非正常工作,產(chǎn)生安全事故。以O(shè)TA應(yīng)用更加廣泛的汽車行業(yè)為例,2020年哈弗H6在中汽中心進行碰撞測試時安全氣囊無法正常彈出,經(jīng)檢測是由OTA未經(jīng)確認(rèn)自動升級導(dǎo)致。2015年Jeep自由光OTA系統(tǒng)被破解,黑客給車輛固件加入病毒,通過CAN可直接控制車輛減速、制動甚至控制發(fā)動機停轉(zhuǎn)。由此可見,確保OTA安全可靠在OTA技術(shù)應(yīng)用日益廣泛的今天有著更為重要且急迫的地位,這意味著針對OTA安全性和可靠性的檢測要求和方法的研究更具有現(xiàn)實意義。
OTA升級作為一種遠(yuǎn)程升級技術(shù)在智能家電領(lǐng)域廣泛應(yīng)用,并且對智能家電產(chǎn)生重要影響。為確保升級的可靠性和安全性,需要進行多方面的檢測和測試。下文將從功能要求、安全性要求和可靠性要求三方面來對的OTA檢測要求及方法進行討論,并基于智能家電設(shè)備檢測實例進行分析與探討。
OTA功能測試的目的是確保OTA升級功能的正常運行并提供良好的用戶體驗。測試范圍涵蓋從升級通知到升級流程完成的驗證,主要分為以下幾個方面:
首先是OTA升級通知方式測試,主要對用戶操作界面進行檢測。在OTA升級開始之前,制造商通過推送等方式提醒用戶進行更新。常用的升級通知一般為應(yīng)用內(nèi)推送通知,通過智能家電的控制終端(如手機等移動端)應(yīng)用向用戶發(fā)送通知,以最直接的方式告知用戶有新的固件版本可供升級。升級信息應(yīng)包含固件版本號和變更內(nèi)容,如圖1所示,以便用戶了解并選擇是否啟動升級或后續(xù)升級。
圖1 固件升級內(nèi)容界面
其次是在升級流程過程中的功能測試。在進行OTA升級時,服務(wù)器端會創(chuàng)建新版本的固件包,并通過移動端下發(fā)通知,用戶收到升級通知后,可以選擇開始下載固件,主要升級示意圖如圖2所示。
圖2 固件升級過程示意圖
用戶操作 “開始下載”或類似的按鈕后,設(shè)備端會發(fā)送請求到OTA服務(wù)器端,請求下載最新固件版本。OTA服務(wù)器端收到請求后,OTA服務(wù)器端將固件文件發(fā)送到設(shè)備端。設(shè)備端收到固件文件后,會對文件進行驗證,以確保它的完整性和真實性。一旦固件文件被驗證為有效,設(shè)備端會啟動固件安裝過程。這個過程包括備份當(dāng)前的固件版本和系統(tǒng)狀態(tài),然后將新固件寫入設(shè)備端。在整個安裝過程中,由于部分設(shè)備存在存儲空間較小且存在設(shè)備運行和升級同時進行的情況,各個階段往往并沒有清晰的劃分,而是隨著設(shè)備的時鐘輪轉(zhuǎn)而周期性進行。在安裝完成后,設(shè)備端通過重啟進入新版本固件系統(tǒng),設(shè)備端向服務(wù)器發(fā)送升級成功的通知并告知用戶升級已完成。
在上述過程中,OTA固件升級流程可以歸納為OTA下載、安裝、重啟、安裝完成四部分。測試過程也應(yīng)依據(jù)這四部分展開,通過功能驗證OTA升級包的下載和安裝是否成功。同時,也要模擬升級過程中出現(xiàn)意外情況如:斷電、斷網(wǎng)等導(dǎo)致固件安裝失敗,以驗證設(shè)備是否能夠回滾到之前的版本,確保設(shè)備可繼續(xù)正常使用。
OTA升級功能測試的核心目標(biāo)是確保設(shè)備可以順利執(zhí)行升級,同時提供用戶友好的升級體驗。這一測試階段對升級功能的可靠性和用戶滿意度至關(guān)重要。
固件OTA升級的安全性測試可以分為三個測試部分的重點,因為它直接關(guān)系到設(shè)備、系統(tǒng)及應(yīng)用程序的安全性和穩(wěn)定性。安全測試主要集中在三個關(guān)鍵方面,即防劫持、防提取和防篡改。
首先在防劫持方面,由于OTA升級通過網(wǎng)絡(luò)進行遠(yuǎn)程更新,需要有足夠的安全措施,以防黑客或惡意攻擊者入侵,所有與OTA升級相關(guān)的通信必須采用加密通信協(xié)議。如使用協(xié)議TLS 1.3 和SSL 3.0,以確保數(shù)據(jù)在傳輸中受到加密保護,難以被竊聽或篡改。
當(dāng)設(shè)備處于OTA升級時,安全測試可以使用網(wǎng)絡(luò)抓包工具例如Wireshark捕獲OTA升級時的通信數(shù)據(jù)包,并檢查通信協(xié)議如:TCP、UDP、HTTP等相關(guān)信息頭和數(shù)據(jù)部分,跟蹤其相關(guān)的通信流量,以確認(rèn)是否使用了加密協(xié)議。如圖3所示某產(chǎn)品固件升級采取的是HTTP協(xié)議的向服務(wù)器獲取固件包bin文件的GET請求,HTTP屬于明文傳輸,未使用加密協(xié)議,故存在一定風(fēng)險。此外,也可以模擬中間人攻擊方式嘗試攔截和篡改通信流量,以測試系統(tǒng)是否能夠檢測到并拒絕中間人攻擊。
圖3 監(jiān)聽通信數(shù)據(jù)包
其次在防提取方面,為了確保固件不能通過串口、調(diào)試接口等手段非法提取出來,制造商可以采取一系列措施,包括禁用或限制串口訪問、抹去不必要的絲印、使用加密串口通信等。對這方面的檢測首先通過視檢,檢查印刷電路板(PCB)上是否存在可用于調(diào)試接口或連接點。這些接口包括UART串口、JTAG接口、SWD接口等。若存在調(diào)試接口則使用專業(yè)的工具模擬各種固件提取手段,嘗試提取設(shè)備的固件。以測試設(shè)備是否存在防提取措施,評估設(shè)備的安全性。
測試固件提取通常需要使用專門的硬件和軟件工具,以及領(lǐng)域相關(guān)技術(shù)知識。測試前需要查閱設(shè)備的技術(shù)文檔,了解設(shè)備調(diào)式接口或UART接口位置和串口通信協(xié)議等重要信息。如常見的串口通信協(xié)議有UART、RS-232、SPI 、I2C和CAND等,不同的應(yīng)用和硬件設(shè)備可能需要使用不同的串口通信協(xié)議,因此在選擇和實施串口通信時,需要考慮通信需求、硬件支持和協(xié)議的適用性。如圖4所示選用USB TO TTL串口轉(zhuǎn)換器,該設(shè)備上使用UART串口通信,引腳分別為 RX、TX、GND、VCC。通過該串口轉(zhuǎn)換器將設(shè)備主控板與電腦PC串口軟件建立連接,測試者可通過輸入一些特定的命令、腳本等方式嘗試獲取設(shè)備的shell訪問權(quán)限。
圖4 使用串口工具與主板建立連接
另一方面也可以通過芯片兼容的燒錄接口工具如圖5、圖6所示來獲取固件,嘗試通過各種途徑以檢測硬件設(shè)備的防提取能力。
圖5 燒錄器與設(shè)備建立連接
最后在防篡改方面,測試固件防篡改的重要性同樣不可忽視。因為未經(jīng)授權(quán)的固件修改可能會導(dǎo)致設(shè)備故障,產(chǎn)生安全漏洞。為了評估固件是否受到保護,以防止未經(jīng)授權(quán)的修改或篡改,制造商采用數(shù)字簽名的方法來確保固件的完整性和真實性。在這個過程中,私鑰用于生成固件的數(shù)字簽名,而設(shè)備上的公鑰用于驗證簽名。如果固件被篡改,簽名將不匹配,設(shè)備將拒絕加載篡改的固件。通常制造商使用數(shù)字簽名算法(如RSA或ECDSA)生成固件的數(shù)字簽名。
測試者通過獲取制造商提供的正規(guī)固件包,并使用一些專用工具來提取固件文件的內(nèi)容。對提取的固件文件進行修改包括新增代碼、數(shù)據(jù)等,修改完后使用私鑰生成新的數(shù)字簽名。將篡改后的固件包按照制造商的標(biāo)準(zhǔn)要求部署到服務(wù)器上,以模擬OTA升級。操作設(shè)備進行設(shè)備固件升級,查看是否升級成功,從而以驗證的固件是否具有防篡改機制。如果升級成功說明設(shè)備無法正確檢驗篡改固件的簽名,則須建議制造商采取措施來加強固件的安全性,如更新簽名算法或加強密鑰管理等。
固件OTA升級的可靠性要求是為了確保設(shè)備在進行OTA升級時能夠穩(wěn)定、可靠地與OTA升級服務(wù)器建立和維護通信連接,以確保升級過程的成功和設(shè)備的正常運行。OTA可靠性要求可簡單概括為升級的可靠性和異常情況的處理兩部分。
在檢測升級可靠性方面,包括在正常網(wǎng)絡(luò)條件下的升級、在高延遲網(wǎng)絡(luò)條件下的升級和升級過程中斷電后的恢復(fù)測試升級,多次進行升級測試設(shè)備并統(tǒng)計計算能夠順利完成升級的比例。
測試者通過模擬升級環(huán)境來滿足試驗條件,例如可以通過模擬網(wǎng)絡(luò)連接中斷通方式如關(guān)閉Wi-Fi或模擬臨時網(wǎng)絡(luò)中斷,來測試設(shè)備是否能夠正確識別中斷并在連接恢復(fù)后繼續(xù)升級過程,并通過確認(rèn)升級過程中的連接建立、數(shù)據(jù)下載、固件驗證和設(shè)備重啟等階段驗證固件OTA成功率。
對于開發(fā)商而言,為了提高升級的可靠性,可使用斷點續(xù)傳機制并使用可靠的通信協(xié)議,從而使設(shè)備在網(wǎng)絡(luò)中斷后能夠從中斷處繼續(xù)下載升級,而無需重新開始整個升級過程。
在異常情況處理的方面,設(shè)備在OTA升級過程中可能會遇到各種異常情況,設(shè)備應(yīng)能夠適當(dāng)?shù)靥幚磉@些異常情況以確保升級的可靠性和安全性。這包括升級包版本不兼容、設(shè)備斷電、升級超時、存儲空間不足、設(shè)備故障等。當(dāng)遇到升級過程異常情況時,制造商應(yīng)盡可能提供用戶友好的反饋和通知,以告知用戶發(fā)生了異常情況,并提供解決方案或建議。如果在升級過程中發(fā)生嚴(yán)重故障,應(yīng)能夠回滾到之前的工作狀態(tài),以確保設(shè)備的可用性。
綜上所述,升級可靠且有合適的異常處理方式是確保OTA升級的成功和可靠性的關(guān)鍵因素。這些因素對于設(shè)備的正常運行和用戶滿意度至關(guān)重要。制造商需要在設(shè)計和測試過程中考慮這些因素,并不斷改進OTA升級的流程,以提高設(shè)備的性能和用戶體驗。
本文分析了OTA升級中常見的問題與安全風(fēng)險,并從功能、安全性和可靠性三方面提供了一些關(guān)于OTA升級的測評方法和防護對策。目前,智能家電行業(yè)在OTA升級的安全意識和有效解決方案方面存在一定缺乏,智能家電網(wǎng)絡(luò)和信息安全標(biāo)準(zhǔn)也尚未完善。因此,未來需要結(jié)合具體案例進行進一步研究和探討,以不斷改進和加強OTA升級的安全性。OTA升級將帶來更多創(chuàng)新功能,例如更智能的自動化、更高效的能源利用以及更強的互聯(lián)互通性。與此同時,安全性測試將持續(xù)發(fā)展,以應(yīng)對不斷增加的網(wǎng)絡(luò)威脅,確保智能家電設(shè)備的數(shù)據(jù)和隱私得到充分保護。