導(dǎo)讀:
伴隨著“軟件定義汽車”的趨勢(shì),車內(nèi)的軟件占比越來(lái)越大,在運(yùn)行時(shí)確定具體行為的部分越來(lái)越多,“網(wǎng)聯(lián)化”又使得車內(nèi)與外界的聯(lián)系越來(lái)越緊密,“網(wǎng)絡(luò)安全”這座大冰山也慢慢進(jìn)入汽車人的視野。同其他技術(shù)一樣,“網(wǎng)絡(luò)安全”相關(guān)的技術(shù)與問(wèn)題都可參考PC行業(yè)、互聯(lián)網(wǎng)行業(yè),但其又有汽車行業(yè)的一些特性。這篇文章,就將結(jié)合汽車行業(yè)的特性,講一講網(wǎng)絡(luò)安全。
1
基本概念
1.1 功能安全與網(wǎng)絡(luò)安全
“功能安全”對(duì)汽車行業(yè)的工程師而言,是老熟人了,標(biāo)準(zhǔn)流程體系都很完善。隨著汽車的“網(wǎng)聯(lián)化”,“網(wǎng)絡(luò)安全”出現(xiàn)了,所以很多人第一反應(yīng)是“這兩者有什么區(qū)別”?
圖1網(wǎng)絡(luò)安全:網(wǎng)絡(luò)安全是指網(wǎng)絡(luò)系統(tǒng)的硬件、軟件及其系統(tǒng)中的數(shù)據(jù)受到保護(hù),不因偶然的或者惡意的原因而遭受到破壞、更改、泄露。功能安全:是指電子電氣系統(tǒng)在設(shè)計(jì)或?qū)嵤┥鲜艿奖Wo(hù),從而避免其發(fā)生故障后導(dǎo)致的人身、財(cái)產(chǎn)損害。 這兩者的區(qū)別在于“網(wǎng)絡(luò)安全”防范的是外部的惡意,如車主的好奇心、黑客的攻擊等;而“功能安全”防范的是失效/故障,這個(gè)故障可能是自身老化/設(shè)計(jì)導(dǎo)致的,也可能由于外部的常見(jiàn)工況導(dǎo)致的,如沙塵、振動(dòng)、下雨等。 這兩者也是互相關(guān)聯(lián)的,比如說(shuō)網(wǎng)絡(luò)安全也可能導(dǎo)致功能失效,因此建議各個(gè)有功能安全要求的,最好也考慮一下網(wǎng)絡(luò)安全。這一塊很多文章都講的比較多,大家可以自行搜索一下。
1.2 網(wǎng)絡(luò)安全防護(hù)的目的
上文中提到網(wǎng)絡(luò)安全防范的是“外部的惡意”。對(duì)一個(gè)系統(tǒng)而言,“外部的惡意”是存在極大的不確定性的,取決于以下幾個(gè)因素:
當(dāng)前系統(tǒng)對(duì)攻擊者的價(jià)值
當(dāng)前系統(tǒng)與攻擊者的關(guān)系
攻擊者的心情
攻擊者的興趣
....
這些因素除了第1條之外,其他的都是無(wú)法預(yù)測(cè)、無(wú)規(guī)律的,除了勸你為人低調(diào)一些之外好像毫無(wú)辦法,所以,我們只能針對(duì)“當(dāng)前系統(tǒng)對(duì)攻擊者的價(jià)值”對(duì)“外部的惡意”來(lái)進(jìn)行評(píng)估。而攻擊者的目的呢,相應(yīng)的我們也簡(jiǎn)化為理性的“獲取利益”。
所以,從理性的角度上來(lái)講“網(wǎng)絡(luò)安全”就是一場(chǎng)“道高一尺,魔高一丈”、“無(wú)止盡”的攻防游戲。
圖2
而網(wǎng)絡(luò)安全防護(hù)的目的與其他的攻防游戲一樣,是“讓攻擊者付出的代價(jià)比攻破此系統(tǒng)帶來(lái)的收益高”。非常典型的例子,就是“人民幣造假”。人民幣的造假現(xiàn)象現(xiàn)在相對(duì)比較少,是因?yàn)椋?/p>
要想造出真的人民幣,比如說(shuō)仿制100元人民幣,單張的制造成本要高于100元
央行不斷推進(jìn)新版人民幣,采用新技術(shù),始終將仿制成本高于安全線
造假的人民幣,一旦被抓獲,要處三年以上有期徒刑甚至無(wú)期徒刑
從上面這個(gè)例子,也可以看出,這個(gè)攻防游戲是“無(wú)止盡”的。因?yàn)殡S著技術(shù)的進(jìn)步,攻擊者達(dá)到同樣的攻擊水平,需要付出的成本會(huì)越來(lái)越低,這時(shí)網(wǎng)絡(luò)安全防護(hù)則需要不斷升級(jí)自己的技術(shù),重新提高攻擊者的攻擊成本。 OK,講了這么多概念,接下來(lái)講一講干貨,現(xiàn)代電子商務(wù)的基石——公鑰基礎(chǔ)設(shè)施PKI。
2
PKI與非對(duì)稱加解密
公鑰基礎(chǔ)設(shè)施這個(gè)名詞講起來(lái)比較拗口,要想把它徹底搞清楚,大家可以買一本書(shū)去看,從底向上,我將其分為5個(gè)層級(jí)。為避免過(guò)程過(guò)于枯燥,先從最常見(jiàn)的“數(shù)字證書(shū)”講起。
圖3
2.1 層級(jí)四:數(shù)字證書(shū)
現(xiàn)代電子商務(wù)或網(wǎng)絡(luò)通信的一大問(wèn)題在于,如何在不可信的環(huán)境中做到身份認(rèn)證,即"如何證明我是我?”在中國(guó),用“身份證”,在數(shù)字領(lǐng)域,用“數(shù)字證書(shū)”。 咱們可以隨便打開(kāi)一個(gè)網(wǎng)頁(yè),如果是Chrome的話,可以點(diǎn)擊網(wǎng)址左邊的“鎖”,打開(kāi)其“證書(shū)”,便可以看到如下信息。
圖4
數(shù)字證書(shū)的信息大概包含這么三類: 1、使用者信息
使用者:最重要的域,目前一般為域名,用戶個(gè)人使用則為姓名。
公鑰:非對(duì)稱加密中用戶公開(kāi)的那個(gè)密鑰,誰(shuí)都能看到
有效期
2、頒發(fā)者信息
頒發(fā)者:誰(shuí)頒發(fā)的這個(gè)證書(shū)?
頒發(fā)者的簽名:頒發(fā)者對(duì)該證書(shū)的所有信息的數(shù)字簽名,表明他對(duì)這個(gè)證書(shū)的真實(shí)性負(fù)責(zé)。
3. 其他:如證書(shū)的版本號(hào)、序列號(hào)等,在此略過(guò)不表 我們?cè)诖蜷_(kāi)一個(gè)網(wǎng)頁(yè)時(shí),如果是HTTPS網(wǎng)址的,瀏覽器會(huì)自動(dòng)檢查網(wǎng)站證書(shū)的有效性,如網(wǎng)站的域名與“使用者”是否匹配?證書(shū)是否有效?證書(shū)的頒發(fā)者是否有效?等等。若網(wǎng)站證書(shū)有問(wèn)題,瀏覽器則會(huì)顯示相應(yīng)的警告。若此證書(shū)有效,則瀏覽器會(huì)開(kāi)始使用證書(shū)內(nèi)的信息(主要是公鑰),用于與其進(jìn)行通信。
2.2 層級(jí)二及三:非對(duì)稱加解密及數(shù)字簽名
數(shù)字證書(shū)的關(guān)鍵在于公鑰,以及頒發(fā)者的簽名。為什么公鑰可以公開(kāi)?為什么數(shù)字簽名就可以代表頒發(fā)者?接下來(lái)講這兩個(gè)問(wèn)題。 非對(duì)稱加解密就是指一種特殊的加解密算法,這種算法的加密密鑰(公鑰)和解密密鑰(私鑰)是不一樣的,且由公鑰是極難推斷出私鑰的,即使有大量的明文和密文對(duì)也一樣。常見(jiàn)的有RSA算法,及橢圓曲線(ECC)算法。
圖5:非對(duì)稱加解密之公私鑰 因?yàn)橛幸粚?duì)不一樣的密鑰,所以其中一把密鑰可以作為公鑰公開(kāi)出來(lái)。私鑰需要自行妥善保存,比如說(shuō)存在加密機(jī)中。 這樣的話,如果A要給B發(fā)送加密消息,那么就B的公鑰加密一下,發(fā)送出來(lái),只有A才能用自己的私鑰解密。 那么公鑰可以用于發(fā)送方加密,私鑰可不可以用于發(fā)送方加密呢?也可以,只是不叫“加密”,叫簽名,因?yàn)橐话l(fā)出去,大家都可以解密。下面是個(gè)例子:
圖6
上圖中,B使用公鑰驗(yàn)簽后,發(fā)現(xiàn)生成的摘要與原摘要一致,就算驗(yàn)簽成功。因?yàn)槟苁褂肁的公鑰解密的信息,只可能是用A的私鑰加密的。由于只有A才會(huì)擁有A的私鑰,所以可以確定“這段明文”確實(shí)是由A發(fā)送的。
2.3 層級(jí)五:PKI體系
前文中反復(fù)提到了“使用A的公鑰驗(yàn)簽”、“使用A的公鑰簽名”,那么如何獲取A的公鑰呢?獲取到了之后,如何相信A的公鑰真的是A的公鑰呢?這就需要使用到PKI體系了。下面是百度中的定義: 公鑰基礎(chǔ)設(shè)施是一個(gè)包括硬件、軟件、人員、策略和規(guī)程的集合,用來(lái)實(shí)現(xiàn)基于公鑰密碼體制的密鑰和證書(shū)的產(chǎn)生、管理、存儲(chǔ)、分發(fā)和撤銷等功能。 其核心是證書(shū)的產(chǎn)生和分發(fā)層級(jí):
圖7
關(guān)鍵的流程就兩個(gè): 1、證書(shū)的簽發(fā)流程:即怎么樣才能拿我自己的證書(shū)呢?簡(jiǎn)單的說(shuō),填個(gè)表,找個(gè)子CA,付一筆年費(fèi),就可以拿到了,上面寫(xiě)著大伽A證明大牛B證明凡人C是凡人C。復(fù)雜的說(shuō):
全世界有大概幾十家左右的根CA(Certificate Authority),計(jì)算機(jī)上都會(huì)預(yù)置這些CA的數(shù)字證書(shū)。比如Amazon、Verisign這種,他們有一整套的機(jī)制保證自己是可信的?;诖耍麄冇凶约旱臄?shù)字證書(shū),及與之匹配的私鑰。
若想建立自己的子CA,則可向這些家申請(qǐng),要每年付出不菲的年費(fèi)。那么這些根CA會(huì)給你的子CA生成一個(gè)私鑰以及配對(duì)的數(shù)字證書(shū)(公鑰)。
若普通用戶要獲取自己的數(shù)字證書(shū),則向子CA申請(qǐng)即可,流程與上一步一樣。
2、證書(shū)的信任流程:即我為什么相信你是你呢?簡(jiǎn)單的說(shuō),就是因?yàn)槟闶稚夏昧藗€(gè)證明信,上面有某某單位的公章,我因?yàn)橄嘈胚@個(gè)單位,又相信這個(gè)公章不是偽造的,所以相信你是你。復(fù)雜的說(shuō)(拿bing.com為例):
圖8
先查驗(yàn)DigiCert Baltimore Root的證書(shū),是否與我本地預(yù)置的證書(shū)一致。
再檢查Microsoft IT TLS CA 2的證書(shū)上的數(shù)字簽名,是不是真的是由DigiCert Baltimore Root生成的。
再檢測(cè)bing.com的證書(shū)上的數(shù)字簽名,是不是真的由Microsoft IT TLS CA 2生成的。
由以上兩個(gè)流程就可產(chǎn)生分層級(jí)的信任關(guān)系,而在不可信的網(wǎng)絡(luò)中建立了信任關(guān)系(信任錨)之后,其他的應(yīng)用業(yè)務(wù)就好開(kāi)展了。3、PKI體系還有另外一些問(wèn)題:
證書(shū)的吊銷——給某人發(fā)了證書(shū)后,這人用此證書(shū)從事非法經(jīng)營(yíng)怎么辦?把他的證書(shū)吊銷,具體的方法有OCSP及CRL。
證書(shū)的更新——給某人發(fā)了證書(shū)后,這證書(shū)過(guò)期了咋辦?如何更新呢?所以證書(shū)的有效期的選擇也需要謹(jǐn)慎考慮,太短的話頻繁失效,更新起來(lái)麻煩。太長(zhǎng)的話,它又有可能出現(xiàn)私鑰的保存問(wèn)題。
私鑰的存儲(chǔ)——私鑰是信任的核心,如果私鑰被他人竊取或復(fù)制,那么整個(gè)信任體系就失效了,特別是ROOT CA的。所以,私鑰最好不要離開(kāi)生成的機(jī)器,且在物理上與外界隔絕,如使用加密機(jī):私鑰始終不可見(jiàn),只可重新生成,不可拷貝等。
2.4 層級(jí)一:NPC問(wèn)題(附加題) 前文有提到過(guò),在知道“公鑰”及很多“明文密文對(duì)”時(shí),也很難推斷出“私鑰”,這是為什么呢?此節(jié)簡(jiǎn)要講一下這個(gè)問(wèn)題,這屬于密碼學(xué)的范疇。 RSA的數(shù)學(xué)基礎(chǔ)是大數(shù)的分解問(wèn)題,屬于NPC(非確定性多項(xiàng)式完全問(wèn)題)問(wèn)題;橢圓曲線的本質(zhì)是離散對(duì)數(shù)問(wèn)題,也屬于NPC問(wèn)題。 NPC問(wèn)題是指這樣的一類問(wèn)題:無(wú)法在多項(xiàng)式時(shí)間復(fù)雜度內(nèi)計(jì)算出問(wèn)題的答案,但一旦知道答案便可在多項(xiàng)式時(shí)間復(fù)雜度內(nèi)驗(yàn)證答案是否正確。用計(jì)算機(jī)的語(yǔ)言表達(dá)是指其時(shí)間復(fù)雜度>O(n^a),可能為指數(shù)級(jí)O(2^n),甚至O(n!)。當(dāng)需要求解的n較大時(shí),這類問(wèn)題的求解就遠(yuǎn)超出當(dāng)前計(jì)算機(jī)的計(jì)算能力。 以RSA為例,當(dāng)前使用較多的密鑰長(zhǎng)度為2048位,超級(jí)計(jì)算機(jī)需要數(shù)十年才能破解。即使隨著科技發(fā)展2048位被破解了,那就用4096位吧,破解所需要算力上升2^2048倍。而加密、解密所需的代價(jià)只上升幾十倍(具體沒(méi)算過(guò),但NPC問(wèn)題的驗(yàn)證為多項(xiàng)式復(fù)雜度,可控)。 所以,只要NPC問(wèn)題未被解決,即證明其可轉(zhuǎn)化為P問(wèn)題,PKI體系仍是堅(jiān)如磐石。因?yàn)榧词沽孔佑?jì)算機(jī)可輕松破解2048位的RSA密鑰,那大不了就增加一點(diǎn)難度吧,用4096位的。
2.5PKI在汽車行業(yè)的應(yīng)用場(chǎng)景
PKI體系在汽車行業(yè)的應(yīng)用場(chǎng)景非常廣泛,如遠(yuǎn)程車控、近場(chǎng)車控、安全啟動(dòng)、Ethernet通信安全等等。在此處講一個(gè)優(yōu)先級(jí)最高的“遠(yuǎn)程車控”的實(shí)例。 1. 企業(yè)應(yīng)該先行建立自己的PKI體系,即引入一個(gè)PKI供應(yīng)商,將證書(shū)的頒發(fā)、申請(qǐng)、吊銷等公用模塊建立起來(lái)。接下來(lái),在其之上,建立各應(yīng)用的流程。
圖9
2. 手機(jī)端、云端與車端Tbox,都在本地生成自己的私鑰,并在云端申請(qǐng)完自己的證書(shū)。這也需要制定相應(yīng)的業(yè)務(wù)流程。 三端都需要妥善保管好自己的私鑰,手機(jī)端可以將私鑰存儲(chǔ)在TEE中,云端可存儲(chǔ)的選擇會(huì)較多,車端可存儲(chǔ)在HSM或TEE中。若沒(méi)有這些硬件的存儲(chǔ)方式,可以使用軟件的白盒加密方法,安全性也有一定保障。白盒加密也就是說(shuō)即使遭遇白盒攻擊,其密鑰也較難被破解。 3. 大家都具備證書(shū)與私鑰后,業(yè)務(wù)流程就變地相當(dāng)簡(jiǎn)單:
圖10
云端與車端由于交互較多,建議兩端通過(guò)雙向認(rèn)證交換“會(huì)話密鑰”(對(duì)稱密鑰)。因?yàn)閷?duì)稱加密要比非對(duì)稱加密快上千倍,根據(jù)密鑰長(zhǎng)度不同會(huì)稍有變化。交換會(huì)話密鑰的流程可參考TLS的雙向認(rèn)證的握手流程。
手機(jī)端將車端指令發(fā)給云端,并使用自己的私鑰進(jìn)行簽名。云端收到之后,使用手機(jī)A的數(shù)字證書(shū),進(jìn)行驗(yàn)簽。
云端將車控指令用協(xié)商好的“會(huì)話密鑰”加密后,發(fā)送給車端。車端驗(yàn)證后,即可在內(nèi)部執(zhí)行。
在采用PKI體系之前,業(yè)內(nèi)的“遠(yuǎn)程車控”也有解決方案,只是這些方案的根基都在于“方案設(shè)計(jì)”的保密性,無(wú)法防范內(nèi)部員工或離職員工的攻擊。而基于PKI體系的方案,不依賴于任何個(gè)人,沒(méi)有脆弱性。
責(zé)任編輯:lq
-
電子商務(wù)
+關(guān)注
關(guān)注
3文章
283瀏覽量
25472 -
汽車行業(yè)
+關(guān)注
關(guān)注
0文章
293瀏覽量
15330 -
網(wǎng)絡(luò)安全
+關(guān)注
關(guān)注
10文章
3104瀏覽量
59530
原文標(biāo)題:軟件定義汽車?yán)顺毕?,被忽視的汽車網(wǎng)絡(luò)安全!
文章出處:【微信號(hào):Mouser-Community,微信公眾號(hào):貿(mào)澤電子設(shè)計(jì)圈】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論