本文主要圍繞以下四大內容展開:
汽車信息安全“七大”
談“信任”
“信任根”
基于信任的網絡安全左移實踐
一、??? 汽車信息安全“七大”
首先說一下整車信息安全的七大領域和資產的七大安全屬性。
基于TARA分析,通過多次實踐,形成整車信息安全的七大領域:
1.? 數據與隱私安全
2.? 業務與功能安全
3.? 應用與平臺安全
4.? 環境安全
5.? 通信安全
6.? 后臺與移動安全
7.? 生產與售后安全
這七個領域全部都要考慮風險評估和安全措施,通常在做安全設計的咨詢工作時需要要從這七個方面考慮,尤其是需要進行VTA認證的車型,要對這七個方面的安全做充分的考慮。
我們在做TARA分析的時候,要識別資產,針對資產來做威脅分析與風險評估。通常我們在考慮資產的安全屬性時,也會考慮7大安全屬性。很多人經常提到的是機密性、完整性和可用性三個屬性,但為什么僅僅是CIA三個屬性還不夠,那是因為汽車的一些獨特性,還需要額外加四個。比如新鮮性,因為汽車是一個實時運行的系統,它的執行器很多都是具備實時性的。舉個例子,現在的剎車和一個小時候后剎車完全是不一樣的,現在指令它不能在一小時后被別人來重放攻擊。要解決這個問題,就要確保指令的有效性,在時間上有效性,也就是這里說的新鮮性。至于新鮮性用什么技術手段來保證,是用新鮮度值還是用時間戳或者用挑戰值,這是下一個階段,進行安全方案設計的時候要解決的問題。但是在威脅分析的時候,這個因素必須要考慮在里面。再說真實性,作為物聯網的設備來說,有的設備是容易被偽造的。如何防止被偽造的設備攻擊,那么就要驗證它的真實性,要給這個設備一個證書或者一個私鑰的身份。所以我們在做咨詢的時候,對于每一個資產要考慮七個安全屬性的分析。當然不是所有的資產都包含這七個屬性,要根據資產的類型具體情況具體分析。
?
二、談“信任”
1、信任與安全的關系
系統安全工程是為了解決漏洞的一系列方法和規則,實際上本質是提供必要的信任證明,以抵抗復雜的網絡攻擊。首先從原理上來看,要用技術來解決,用流程來保證,還要具備完整的信任鏈條。例如,零信任架構,零信任是一個以資源保護為核心的網絡安全范式,核心是資源保護,這里有兩個前提。第一個是信任,信任從來不是隱式授權的,信任是可以傳遞的。A信任B,B信任C,A就可以信任C。通常叫信任鏈,但是中間如果有A信任B,B信任C,C不信任D,所以A是不能信任D的。第二個是持續評估,舉個例子,一個小時之前這個器件是安全的,不代表現在這個器件還是安全的,沒有被篡改,很多時候都跟時間關聯比較大,所以要做一個持續性評估。
2、通過信任構建安全示例
安全啟動的目的主要是去驗證代碼的安全性,但如果要驗簽,驗簽完之后才能知道加密是可信的,然后固件、OS系統才能啟動。APP也要驗簽,確保APP沒有被別人篡改。如何得知驗簽是可信的,驗簽用的密鑰是否容易被別人篡改,是否容易被別人拿到,如何確保這個密鑰可信。使用的密碼學算法是否容易被別人攻擊(所以通常都選擇一些規范的密碼學算法)。
用戶登錄的目的是做身份的可信認證,通常會通過可信的認證因子進行認證,如驗證碼、口令、生物特征等。
安全診斷是車的零部件會做一些安全診斷,執行器做診斷的時候,如何做身份的驗證,如何確保接入的診斷儀是合法的,包括執行器是否是唯一標識的,通常會使用27服務或29服務。
數據安全是全磁盤加密FDE,是可信的用戶身份+可信的密碼算法。
車載系統常用的防火墻,防火墻的基本工作原理是黑白分明的,嚴進嚴出,但會給予一個假定,假定防火墻的引擎和規則配置是值得信任的,黑白名單規則會按照意愿生效。但是基于信任鏈的思想,需要為假設做出證明,證明引擎值得信任,做了任何一個假設,都要去證明它,這是一個復雜的系統性安全工程。
三、“信任根”???
1、“信任根”的定義
信任根,從基本定義來看,信任根是平臺中的一個計算引擎+一段代碼+可能的數據,通常這個數據是一組密鑰,它提供基礎的安全服務,如機密性、完整性、可用性、標識、真實性、授權性還有度量性。信任根還有個特點,它的代碼和數據的可信證明是由自身完成不依賴于其他實體的,就是它必須要自證它是安全可性的。
2、常見的“信任根”
常見的信任根有HSM、TEE、TPM等,通常HSM按照EVITA規范分為三種,Full、Medium、Light三種功率,放到不同的位置上,什么地方應該放什么。因為它是提供的安全的能力不一樣,可能有的地方,在Light上確保執行器安全就足夠了。TPM有個比較強的能力,能做平臺的度量,平臺度量是度量的一個重要的特點,所以它會放一個度量的信任根在里面。TEE處于這兩者之間,它的安全性和數據處理的能力處于HSM和TPM之間。目前在很多車載設備里,至少需要包括其中一種類型,有的時候會做組合。
3、“信任根”與七大領域
談下信任根與七大領域的關系。第一個,數據與隱私安全,在做數據和隱私安全的時候,會考慮到音視頻,比如說音視頻的這種機密性要加密存儲,那么加密的密鑰能否會被別人盜走,如果盜走的話信息就沒有機密性可言了。還有例如哨兵模式中的視頻加密密鑰,這個密鑰是不允許車廠獲得的,因為哨兵模式所產生的視頻信息,它是不屬于車廠的,是屬于車主的。那么車廠必須要證明,要去拿邏輯來證明,車廠只能碰到它的密文,絕對碰不到它的明文,碰了明文就違反了個人隱私保護。
說到業務和功能安全,藍牙鑰匙等遠程控車指令比較多,這時候會做MAC密鑰,這個密鑰放到哪,怎么存儲?
考慮應用與平臺安全,會有一些關鍵業務代碼。比如說,在自動駕駛里有AI算法,它的模型是非常重要的,這樣關鍵業務代碼能防止被別人篡改。環境安全,是外部的一些設備,尤其是現在v2x如何確保外部環境實體的一些設備、身份、唯一性標識及其完整性保護。
通信安全是車內通信的真實性、完整性和新鮮性,例如SecOC驗簽。
后臺與移動安全,通過機密容器去確保環境的安全,這樣的話,這個機密容器生成的時候,它本身的安全是保護的,然后生產過之后,它屬于售后的問題,在售后的時候,怎么確保售后不會出現安全風險,這些問題都會在車型準入的審核中被提出并審核。如果這個系統不能在一開始做整車系統的概念設計階段就把這些安全需求系統的提出來的話,后面付出的代價就比較大。
四、基于信任的網絡安全左移實踐
1、豆莢基于信任的實踐-OTA安全
把TEE放到TBOX上去,方案目標是做通信安全,做OTA安全。通常為了信道的安全,系統都會使用TLS協議,數據是加密的。但是安全有個特點是木桶原理,信道是安全的,但在進信道之前呢?在信道往外傳的時候加密數據,在加密的環境里是否能拿到這個密鑰,不從信道拿,從加密的環境拿,這樣的話,這個密鑰的安全性就需要包括用密鑰對中心的數據做加密的環境是否安全,所以我們在TEE系統里面把密鑰存在里面去,然后把TLS協議進行分解,跟加密相關的業務邏輯,這叫關鍵代碼,把這個關鍵代碼給放到TEE系統里,因為TEE系統能保護這種應用程序的執行。
OTA業務為了保證升級包的機密性,通常會進行加密。OTA密文下載下來之后要在TBOX上進行解密,解密后是明文,TBOX是在車里的,容易被第三方touch到。這樣的話,如何確保下載下來的明文不會被別人篡改。通過安全啟動去做驗簽,在OTA升級完成之后,不能啟動篡改,但是它本身下載的時候,如何防止別人看到原文。利用可信執行環境TEE,把它的密文,解密動作放到TEE里來做,做完之后放到芯片指定的一個區域里面,用芯片的加密器件來處理,最后引導的時候,通過芯片的加密器件再把它解開,然后再傳通,在Linux運行之前,Linux系統是看不到原文的。有個重要的環節是這里面很多證書密鑰系統都是在生產線上完成的,也就是說在生產線上,如果不把這種證書和它的設備、私鑰生成的話,后面可能就沒有更安全的通道可以加進去。通常情況下會默認工廠環境是可信的,這時候我們認為后加的流程是不可信的。在工廠環境中,通常還要再加一個動作,就是做一個安全產線,即密鑰不能以明文形式進入,必須是對密鑰進行加密的密文進入。進入之后,在生產線上通過程序把加密的密鑰解開,再存到安全區域。
安全是木桶原理,木桶的短處永遠是最弱的地方。我們在做TARA和安全方案設計時,要把流程分析清楚,因此網絡安全和功能安全有時候是很難區分的,如果我們不了解執行器的工作原理,就找不到信息源。所以說網絡安全跟功能安全是要互相配合的,互相合作的。
2、豆莢基于信任的實踐-ZT-V
現在汽車的SOA架構有什么好處,又存在哪些隱患呢。因為SOA的開放性,SOA最主要目的是資源和服務共享,讓汽車具備更多的智能服務。但它的問題是,一旦開放的話,肯定會帶來很多風險,所以我們要結合零信任來考慮安全的SOA架構。零信任基本核心是3+1,第一個是身份認證,第二是隔離,第三個訪問控制,再加上一個持續的審計、持續的度量,再把可信的思想即信任根和可信度量加里面,來做SOA項目的安全防護。
3、豆莢基于信任的實踐-TEE
可信執行環境TEE在汽車領域使用的場景廣泛,也能夠很好地解決問題。第一個是密鑰,和HSM、TPM有些類似的地方,需要根據具體的情況,來分析什么時候用HSM,什么時候用TEE,什么時候用TEE和HSM結合。
第二個是敏感代碼的保護,TEE提供環境,運算能力更強,很多時候HSM做不到一些運算但它能做。例如安全UI,目前可能用的比較少,在一些特殊的環境可能會用,因為UI會被別人仿造,甚至UI上的動作也會被模仿,如何防止UI被劫持也是個問題。
再來看資源隔離,不管是HSM、TPM,還是TEE,都是具備隔離保護能力的。在CCC車鑰匙的規范里面就有明確指示,哪段邏輯要放哪部分的數據,那些隱私數據、機密數據是需要放到TEE環境的。
內容保護方面,視頻流最后是一定要解碼的,解碼之后,這個解完的碼通常都放到Rich里面,這樣的話就需要考慮Rich是否安全。TEE和TPM比較相似,有一個單獨的Rich區域,它是安全的,它是不能被Android、Opreating系統所防的。安全支付比如說現在我們用的手機上所有的支付手段,不管是微信支付,還是支付寶支付,它的TAs(Trusted Applications)生成隱式的串號都是在TEE執行里面的。
4、基于信任的網絡安全左移實踐
在做咨詢的時候,在后期遇到最大的問題是如何去支持客戶,支持主機廠,零部件供應商去解決準入認證評審中的問題。很多時候我們都要從前面開始考慮,如果把問題都放在最后的測試階段,問題解決的難度就變大了,所以要提前把這些安全的問題識別出來,不光要把安全的問題識別出來,還要把方案提出來。從咨詢工作中總結得知,這些安全目標要在咨詢前提出來,比如在做通信的時候,基本上機密性、身份真實性、完整性、新鮮性都要提前考慮,信道可用性也要考慮。固件,固件的機密性、完整性、可用性、新鮮性也是要考慮的,ECU的可用性、真實性、抗抵賴性、訪問控制,包括數據的機密性、完整性、可用性等等。
?
針對以上安全目標,也有控制手段。
不光要技術手段,而且也要靠規則來約束一些安全配置和安全存儲設定,但這些內容過多,所以需要建立規則,即做一些規范把曾經遇到過的問題梳理出來,如前面所提到的七大安全屬性。通常資產分為四類,數據流、實體類,實體類分內部實體和外部實體,數據存儲。數據流要考慮機密性、完整性、可用性和新鮮性,但是在分析外部實體時候,要考慮真實性和不可抵賴性。雖然定了七個安全屬性,但對于不同的資產,要求是不一樣的。需要慢慢整理出來,同時在發現問題的時候一定要提出解決對策。
例如機密性問題,通常會怎么解決,例如加密、混淆、隱藏、訪問控制、隔離、脫敏,但是具體用哪個,就得看這個功能,所以為什么說網絡安全和功能安全有時候結合是比較緊密的。
對于完整性的問題,可以用訪問控制、消息認證碼、公鑰簽名、一次性編程,還是要看硬件,如果真的是硬件的話,就用一次性編程。對于一些軟件,尤其是應用軟件,用訪問控制。
在做分析的過程中,僅僅用這些經驗和最佳實踐做指導,有時候用起來也不是特別方便。所以按照IDS思想做工具,把它變成工作時內部信任的工具,這樣的話就有一個知識庫。把最佳實踐和實際的案例做對比,做映射,放到知識庫里。工具的最主要目的是提高設計效率,像早期做TARA分析的時候,一個TBOX大概有160個資產,都要資產分析,尤其是攻擊路徑的時候,我們提供一個規則庫,這樣做很好但特別耗時間,而且最主要的是有些地方是重復的,這樣如何提高效率,所以需要用到一些工具。做TARA分析,并不是為了分析而分析,最終目的是幫助客戶做合規,提高整車安全的安全。R155包括國內即將推出來的《GB汽車整車信息安全技術要求》 ,還有陸續推出的數據安全規范,把這些合規的要求也要加到這里面去,通過這幾年形成的規范和最佳實踐,形成工具,這樣就能真正提高效率,提供更好的服務。
編輯:黃飛
?
評論
查看更多