《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 模擬設(shè)計(jì) > 業(yè)界動(dòng)態(tài) > 汽車軟件的安全啟動(dòng)

汽車軟件的安全啟動(dòng)

2023-02-23
來源:電子發(fā)燒友網(wǎng)
關(guān)鍵詞: 安全啟動(dòng) SDV ECU

  首語

  隨著軟件定義汽車(Software Defined Vehicles, SDV)的概念的提出,汽車軟件發(fā)展迅速,,其功能越來越多,,也變得越來越智能,汽車在為人們更好服務(wù)的同時(shí),,許多安全問題也隨之出現(xiàn),。汽車安全主要分為功能安全和信息安全,功能安全主要是要求降低汽車硬件的隨機(jī)失效概率,,信息安全則主要保證汽車軟件安全運(yùn)行,、正常升級。怎樣保證軟件能夠安全運(yùn)行,,讓汽車ECU只運(yùn)行完整的,、可信的軟件?這種要求可以讓汽車的安全啟動(dòng)(Secure Boot)來做到,。

  一,、安全啟動(dòng)了什么

  當(dāng)駕駛者準(zhǔn)備啟動(dòng)汽車時(shí),,汽車中各種各樣的軟件便會(huì)被加載,完成各種各樣的服務(wù),。這些軟件是汽車廠商設(shè)計(jì)并經(jīng)過驗(yàn)證的,,汽車廠商保證了他們的軟件可行性和安全性,并把這些軟件在汽車賣給消費(fèi)者之前就安裝在汽車中,,并在后期對軟件維護(hù)和優(yōu)化升級,,通過在線升級(On The Air, OTA)技術(shù)對汽車軟件進(jìn)行遠(yuǎn)程升級。消費(fèi)者能持續(xù)獲得可靠的優(yōu)質(zhì)軟件服務(wù),。

  

1.png

  這些看起來都沒什么問題,,但如果在消費(fèi)者使用過程,這些配套軟件被惡意替換,,那么不但軟件可能無法提供相應(yīng)的服務(wù)和安全性,,還極有可能對人和汽車本身造成嚴(yán)重傷害。所以汽車廠商在設(shè)計(jì)之初,,就考慮到這一問題,,實(shí)現(xiàn)了安全啟動(dòng)來應(yīng)對,安全啟動(dòng)是一段在啟動(dòng)引導(dǎo)程序(Bootloader)中的程序,,在實(shí)現(xiàn)汽車各項(xiàng)功能的軟件(App)啟動(dòng)之前,,Bootloader會(huì)首先啟動(dòng),對App進(jìn)行校驗(yàn),,主要檢查App的兩項(xiàng)指標(biāo):完整性(Integrity),、可信度(Authentication),如果檢查不通過,,則不會(huì)啟動(dòng)App,。完整性指軟件二進(jìn)制可執(zhí)行文件是否保持原樣,有沒有被篡改,;可信度指軟件的來源是否可靠,,在汽車軟件中,指是否是汽車廠商提供的,。這兩項(xiàng)指標(biāo)確保了汽車運(yùn)行的軟件是來自汽車廠商有安全保證的軟件,,并且沒有被篡改,從而保護(hù)了人和汽車的安全,。

  

2.png

  二,、怎樣保證安全

  怎么在汽車上實(shí)現(xiàn)對App的完整性和可信度的檢查呢?這里就需要一些密碼學(xué)(Cryptography)技術(shù),。

  先來了解一些名詞:

  哈希函數(shù)(Hash Function):可將任意長度數(shù)據(jù)轉(zhuǎn)化為指定長度摘要(e.g. SHA2安全哈希函數(shù),MD5)

  對稱加密(Symmetric Encryption):用同一把密鑰對數(shù)據(jù)進(jìn)行加解密(e.g. DES,,AES高級加密標(biāo)準(zhǔn))

  非對稱加密(Asymmetric Encryption):使用公鑰和私鑰對數(shù)據(jù)加解密(e.g. RSA,,ECC)

  完整性驗(yàn)證

  App可執(zhí)行文件是一個(gè)二進(jìn)制文件,,可以把App的可執(zhí)行文件作為哈希函數(shù)的輸入,會(huì)得到一個(gè)固定長度的哈希值(Hash Value),,這里就不得不提到哈希函數(shù)的一個(gè)特點(diǎn),,哈希函數(shù)的輸入值改變會(huì)影響輸出值,而且是極大的改變,,哪怕是輸入值的一位(Bit)數(shù)據(jù)被改變,。設(shè)想,使用哈希函數(shù)把汽車廠商的正版軟件作為輸入得到一個(gè)哈希值,,并把其保存起來,,黑客得到了汽車廠商的App并對其修改,然后想讓汽車運(yùn)行他修改過的軟件,,Bootloader在啟動(dòng)安全啟動(dòng)時(shí),,對修改后的App的再做一次哈希,發(fā)現(xiàn)與先前的值截然不同,,也就不會(huì)啟動(dòng)帶有風(fēng)險(xiǎn)的App,。這就保證了軟件的整體性。

  

3.png

  但這還不夠,,哈希函數(shù)的實(shí)現(xiàn)方式是公開的,,汽車廠商可以正常的App生成一個(gè)哈希值H1存放起來,那么黑客也可以生產(chǎn)一份經(jīng)過修改的App的哈希值H2替換之前的H1,, 并把修改后的App刷入汽車中,,這樣Bootloader啟動(dòng)時(shí)發(fā)現(xiàn)保存的哈希值H2和即將要運(yùn)行的App(經(jīng)過修改的)一致,則會(huì)正常運(yùn)行,。就可以騙過安全啟動(dòng)的驗(yàn)證,,達(dá)到運(yùn)行修改后App的目的。解決這一問題,,這就要提到另一個(gè)技術(shù)——一次性可編程(One Time Programmable,, OTP),這是單片機(jī)的一種存儲(chǔ)器類型,,其作用是程序燒入單片機(jī)后,,將不可再次更改和清除,汽車廠商可以將自己App所生成的哈希值存儲(chǔ)到這樣的存儲(chǔ)器中,,就可以保證經(jīng)過安全啟動(dòng)驗(yàn)證的App一定是汽車廠商所提供的,,這塊區(qū)域也不可能被篡改。

  可信度驗(yàn)證

  但接下來還有一個(gè)問題需要解決,,前面我們提到過OTA技術(shù),,汽車廠商會(huì)在消費(fèi)者使用汽車過程中,持續(xù)對汽車軟件進(jìn)行維護(hù)和升級,,如果汽車廠商把最初那一版App的哈希值放到了OTP存儲(chǔ)器中,,那么結(jié)果就是,,汽車廠商對App升級后,由于這塊區(qū)域的內(nèi)容無法被更改(汽車廠商也無法修改),,結(jié)果就是升級App后,,由于安全啟動(dòng)校驗(yàn)不通過,導(dǎo)致軟件無法啟動(dòng),。所以我們得采取其他的解決方案,。

  這里可以使用數(shù)字簽名(Digital Signature)技術(shù),可以采用非對稱加密算法,,利用私鑰(Private Key)對汽車廠商App的哈希值進(jìn)行加密生成一個(gè)簽名保存起來,,簽名只能用公鑰(Public Key)才能解密,簽名解密后是一串哈希值,,我們就可以用這個(gè)哈希值和即將要啟動(dòng)的App的哈希值進(jìn)行比較,。這樣看起來就好了很多,在OTA升級時(shí),,利于數(shù)字簽名技術(shù)對將要升級的App進(jìn)行完整性和可信度驗(yàn)證,,確保將要升級的App沒有被篡改并且確實(shí)來自于汽車廠商(汽車廠商利用私鑰加密,汽車軟件升級驗(yàn)證時(shí)用公鑰解密),,然后將簽名寫入FLASH某個(gè)區(qū)域(不需要OTP特性),。那么公鑰放在那里呢?前面提到的OTP又派上用場了,,這塊區(qū)域就可用來存儲(chǔ)和汽車廠商成對的公鑰,。

 

4.png

  當(dāng)然也有采用基于分組密碼的消息認(rèn)證碼算法(Cipher-based Message Authentication Code,CMAC)的方案進(jìn)行安全啟動(dòng)的驗(yàn)證,,其目的是相似的,,只不過使用的方法不同。

  如何實(shí)現(xiàn)加解密

  有了解決方案,,如何實(shí)現(xiàn)這些復(fù)雜的算法呢,?這里就要講一講車規(guī)級MCU的發(fā)展歷史了,在一開始,, MCU的芯片廠商并沒有集成硬件來完成加密算法(Cryptographic Algorithm),,加解密過程基本都是軟件來實(shí)現(xiàn)的,其實(shí)軟件加解密這一塊離大家都很近,,比如,,熟悉Linux的同學(xué)知道,兩個(gè)客戶端要進(jìn)行SSH通信前,,需要提前生成SSH鑰匙,,這里的SSH鑰匙就是上面提到的非對稱加密算法中的公鑰和私鑰。這樣實(shí)現(xiàn)加密算法的方法就是軟件實(shí)現(xiàn),所以早期汽車實(shí)現(xiàn)這些加密算法也都是通過軟件層面實(shí)現(xiàn)的,。這種方式有一定缺陷,,比如加解密過程中,,需要MCU中主核(一般是M4或M7)來完成整個(gè)算法,,期間也不能做其他的事,主核在設(shè)計(jì)之初也沒有考慮對加解密算法進(jìn)行優(yōu)化,,結(jié)果就是實(shí)際效率會(huì)差很多,。 目前,主流的方法是通過硬件實(shí)現(xiàn)加密算法,,例如硬件安全模塊(HSM,,Hardware Security Modules)和安全硬件拓展(SHE,Secure Hardware Extension),。

  SHE顧名思義,,是對MCU的擴(kuò)展,它主要提供類似于OTP的存儲(chǔ)空間,,并不能為主核提供硬件加速,,結(jié)構(gòu)圖如下:

  

5.png

  HSM就強(qiáng)大得多,擁有自己的CPU,,并且有類似OTP的安全存儲(chǔ)區(qū)域,,其結(jié)構(gòu)如下:

  

6.png

  目前,大多數(shù)高端車規(guī)級芯片都會(huì)集成SHE和HSM,,國外芯片廠商有ST,、NXP、infineon等,,國內(nèi)芯片廠商有芯馳,、地平線、黑芝麻等,,比較常見內(nèi)嵌HSM模塊的芯片有意法半導(dǎo)體的SPC58,、英飛凌的Trave系列、芯馳的G9X,。

  三,、安全啟動(dòng)流程

  上述的這些解決方法和工具已經(jīng)可以實(shí)現(xiàn)完整的安全啟動(dòng)過程,這里要介紹一個(gè)安全啟動(dòng)的概念——信任錨(Trust Anchor),,大家可以把它理解為運(yùn)動(dòng)會(huì)中接力賽的接力棒,,其實(shí)仔細(xì)想想就會(huì)發(fā)現(xiàn),上面講的很多安全啟動(dòng)的內(nèi)容都是Bootloader來完成的,,那么Bootloader的完整性和可信度又該怎么保證呢,?其實(shí)就是靠這個(gè)信任錨,BootRom(是一段固化在芯片Rom中的程序)它先檢查Bootloader的完整性和可信度,確保沒有問題后,,將信任錨傳遞給Bootloader,,然后Bootloader進(jìn)行密鑰的檢查、簽名驗(yàn)證等操作,,確保App是正確的,,然后才啟動(dòng)App完成各種服務(wù)。

  

7.png

  四,、發(fā)展與挑戰(zhàn)

  汽車軟件發(fā)展迅速,,它給人民生活帶來極大的便利,但機(jī)會(huì)和風(fēng)險(xiǎn)是并存的,,汽車軟件的信息安全問題也不容小覷,,以UNECE/WP. 29 (R155、R156) 和 ISO/SAE 21434 為代表的汽車信息安全的國際法規(guī)與標(biāo)準(zhǔn)已經(jīng)發(fā)布與實(shí)施,,我國也早已將發(fā)展智能網(wǎng)聯(lián)汽車上升到國家戰(zhàn)略高度,,國家各部委根據(jù)在車聯(lián)網(wǎng)關(guān)鍵部件和生命周期各環(huán)節(jié)的職責(zé)劃分,制定相關(guān)政策及執(zhí)行監(jiān)管,,包括網(wǎng)信辦,、工信部、交通運(yùn)輸部,、公安部,、國標(biāo)委等,共同推動(dòng)建立健全智能網(wǎng)聯(lián)汽車信息安全管理機(jī)制,。例如,,市場監(jiān)管總局分別在2020年11月和2021年6月發(fā)布文件,規(guī)范了 OTA 技術(shù)在召回工作中的應(yīng)用,,明確要求生產(chǎn)者采用 OTA 方式消除汽車產(chǎn)品缺陷,、實(shí)施召回的,須向市場監(jiān)管總局備案,。要求車企在使用 OTA 開展技術(shù)服務(wù)活動(dòng)時(shí),,需向市場監(jiān)管總局質(zhì)量發(fā)展局備案;車企如果使用 OTA 消除車輛缺陷,、實(shí)施召回的,,也需要向市場監(jiān)管總局質(zhì)量發(fā)展局備案。

  汽車信息安全技術(shù)也在不斷進(jìn)步,,國內(nèi)外汽車廠商都在努力做出安全可靠的汽車軟件,。相關(guān)外企研發(fā)出HSM模塊,并嵌入加密算法,、訪問控制,、完整性檢查等技術(shù)到汽車控制系統(tǒng),,但是目前HSM仍然不支持國密算法,存在技術(shù)壁壘,,未能實(shí)現(xiàn)國產(chǎn)自主可控,。國內(nèi)對于芯片集成安全硬件還不完備,此種情況下能有一款支持國密標(biāo)準(zhǔn)的國產(chǎn)汽車硬件安全模塊對國內(nèi)汽車行業(yè)十分重要,。國密算法是我國自主研發(fā)創(chuàng)新的一套數(shù)據(jù)加密處理系列算法,,隨著我國智能汽車信息安全的要求,需要將國密算法嵌入到硬件加密芯片中結(jié)合使用,。

  最好的情況就是,,能在芯片層面保證安全啟動(dòng)的方案和App軟件都是自主可控,這樣就可以最大程度的保證人和汽車的安全,。





更多信息可以來這里獲取==>>電子技術(shù)應(yīng)用-AET<<

新聞圖片.jpg


本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,,并不代表本網(wǎng)站贊同其觀點(diǎn),。轉(zhuǎn)載的所有的文章、圖片,、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有,。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容,、版權(quán)和其它問題,,請及時(shí)通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,,避免給雙方造成不必要的經(jīng)濟(jì)損失,。聯(lián)系電話:010-82306118;郵箱:[email protected],。