陸超
(上汽大眾汽車有限公司,上海201805)
智能網(wǎng)聯(lián)化是目前汽車開發(fā)一個(gè)亮點(diǎn),需要在控制整車成本同時(shí),提供用戶豐富生態(tài)服務(wù)。基于低成本收放機(jī)平臺(tái),采用手機(jī)車機(jī)互聯(lián)技術(shù)方案,同時(shí)支持有線及無線連接方式,手機(jī)端傳輸移動(dòng)在線服務(wù)數(shù)據(jù),車機(jī)進(jìn)行投屏,支持智能語(yǔ)音識(shí)別、多輪對(duì)話、微信語(yǔ)音聊天,通過微信群進(jìn)行群組導(dǎo)航等功能是一個(gè)可行的解決辦法,APP 可快速響應(yīng)新功能需求進(jìn)行更新。本文提出相關(guān)應(yīng)用場(chǎng)景下的車機(jī)、手機(jī)APP、后臺(tái)服務(wù)器三者間通信及數(shù)據(jù)存儲(chǔ)的一種安全機(jī)制方案及應(yīng)用說明。
整個(gè)網(wǎng)絡(luò)中的參與節(jié)點(diǎn)包括車機(jī)端、云端和移動(dòng)端,三者在系統(tǒng)中是獨(dú)立的個(gè)體,進(jìn)行數(shù)據(jù)鏈接之前的雙方要建立可靠、安全的信任關(guān)系認(rèn)證?;跀?shù)字證書的認(rèn)證是目前公認(rèn)的認(rèn)證方式最佳實(shí)踐,該認(rèn)證方式既能識(shí)別個(gè)體身份,也能靈活控制使用范圍和使用期限,并且基于數(shù)字證書也是目前最為成熟的[1],所以本方案中會(huì)為車端、移動(dòng)端和云端的設(shè)備及個(gè)人簽發(fā)相應(yīng)的數(shù)字證書,以此作為身份認(rèn)證的憑據(jù),用以驗(yàn)證對(duì)方的數(shù)字簽名。
網(wǎng)絡(luò)通信屬于基礎(chǔ)設(shè)施范疇,是一切服務(wù)的基礎(chǔ)條件,必須保證其高可靠性、高可用性、高保密性。需要著重防范以下風(fēng)險(xiǎn):a. 數(shù)據(jù)泄露,采用明文發(fā)送數(shù)據(jù)的HTTP 業(yè)務(wù)造成數(shù)據(jù)篡改、泄露、流量劫持等安全問題。通過網(wǎng)絡(luò)嗅探設(shè)備等技術(shù)手段能還原HTTP 報(bào)文內(nèi)容。b.弱算法和協(xié)議,隨著時(shí)間的推移,過時(shí)的加密算法和存在安全漏洞的加密協(xié)議均可導(dǎo)致用戶敏感信息泄露。眾所周知,截至目前,DES 對(duì)稱算法已經(jīng)不安全,MD5摘要算法可被碰撞,密鑰長(zhǎng)度在1024 位以下的RSA 非對(duì)稱算法已不安全,SSL 2.0 協(xié)議也已不安全[2]。國(guó)家密碼管理局要求金融機(jī)構(gòu)、黨政機(jī)關(guān)、重點(diǎn)企業(yè),必須使用國(guó)密算法和國(guó)密協(xié)議。c.DNS 劫持,也稱為釣魚攻擊,以危害巨大且不容易被用戶感知著稱。用戶只要接入黑客掌握的公共WiFi,或者瀏覽一下黑客所掌控的特殊構(gòu)建的WEB 頁(yè)面,DNS 就會(huì)被黑客篡改,并可以成功躲過常規(guī)安全軟件檢測(cè)。可導(dǎo)致用戶遭受DNS 詐騙或者敏感數(shù)據(jù)被竊取和篡改。d.通信過程未/弱加密,存在被破解風(fēng)險(xiǎn)。
主要包括服務(wù)器大數(shù)據(jù)存儲(chǔ),業(yè)務(wù)信息存儲(chǔ);手機(jī)端用戶數(shù)據(jù)臨時(shí)緩存;車機(jī)端車輛數(shù)據(jù)、用戶信息存儲(chǔ);明文保存敏感信息數(shù)據(jù)在本地,存在被竊取風(fēng)險(xiǎn)。
智能手機(jī)作為當(dāng)今人手必備的隨身設(shè)備,安裝有各種應(yīng)用,而且屬于開放網(wǎng)絡(luò)。
手機(jī)APP 可以通過USB 和Wifi 和車機(jī)進(jìn)行連接,同時(shí)需要和云端連接獲取相應(yīng)數(shù)據(jù)。在手機(jī)端會(huì)保存相應(yīng)的用戶信息、鑒權(quán)信息等,需要進(jìn)行加密保護(hù)。
低成本收放機(jī)開發(fā)定義可以連接WiFi 熱點(diǎn),但是車機(jī)本身無法上網(wǎng),收放機(jī)通過車身CAN 總線,獲取車輛數(shù)據(jù)、車況數(shù)據(jù)等,同時(shí)通過車機(jī)終端可以進(jìn)行車輛的設(shè)置,是車輛智能化控制不可或缺的核心部分。所以對(duì)車機(jī)終端安全防護(hù)是整車安全以及車聯(lián)網(wǎng)安全核心。
在本項(xiàng)目中車機(jī)與手機(jī)連接,手機(jī)只是車機(jī)CAN 總線數(shù)據(jù)的接收端,因此由車機(jī)對(duì)需要傳遞給手機(jī)的數(shù)據(jù)進(jìn)行加密保護(hù),車機(jī)端CAN 總線數(shù)據(jù)的安全性由車機(jī)端的安全機(jī)制來確保。
手機(jī)端和車機(jī)端采用TCP 的通訊鏈路,基于TLS1.2 協(xié)議,證書采用自簽名方式實(shí)現(xiàn)。手機(jī)端與后臺(tái)采集HTTPS 的通訊鏈路,基于TLS1.2 的協(xié)議,證書購(gòu)買CA 數(shù)據(jù)簽名機(jī)構(gòu)Wosign 的簽名的證書。車機(jī)端的安全隔離與權(quán)限控制由車機(jī)端系統(tǒng)進(jìn)行控制及授權(quán)[3]。手機(jī)端既需要和車機(jī)端通訊,同時(shí)也需要與后臺(tái)通訊,手機(jī)端Link APP 的內(nèi)部數(shù)據(jù)存儲(chǔ)為加密存儲(chǔ)。整體架構(gòu)圖如下:
圖1 整體架構(gòu)圖
Link 手機(jī)APP 和WeCloud 云端通過HTTPS 進(jìn)行請(qǐng)求,HTTPS 請(qǐng)求是目前互聯(lián)網(wǎng)公認(rèn)的加密傳輸協(xié)議,基于TLS 協(xié)議之上的應(yīng)用層協(xié)議,采用專業(yè)的CA 機(jī)構(gòu)- 沃通Wosign 的證書。一般需要加密傳輸?shù)闹饕怯脩粜畔?、鑒權(quán)信息、涉及車輛相關(guān)的信息,以上這些訪問均采集HTTPS 加密傳輸?shù)姆绞健?/p>
手機(jī)終端Link APP 在整體架構(gòu)中,既需要跟TSP 服務(wù)進(jìn)行交互,也跟車機(jī)終端通過USB 或者Wifi 進(jìn)行數(shù)據(jù)交互。手機(jī)App 和WeCloud 云端通過HTTPS 進(jìn)行請(qǐng)求,這些請(qǐng)求均采用HTTPS 加密傳輸?shù)姆绞絹泶_保數(shù)據(jù)安全。手機(jī)App 和車機(jī)終端之間通過USB 或者WIFI 構(gòu)建數(shù)據(jù)傳輸局域網(wǎng)通道。
手機(jī)端主要存貯兩個(gè)文件:“私鑰,和加密簽名證書”,目前的手機(jī)系統(tǒng)都會(huì)分配App 目錄以供存貯相應(yīng)的文件,安全性由系統(tǒng)來負(fù)責(zé)。但考慮到這種機(jī)制容易被人破解,因此將這些文件以動(dòng)態(tài)申請(qǐng)目錄的方法,存貯在其它系統(tǒng)級(jí)目錄,從命名上無法猜測(cè)到是證書和私鑰文件,增加破解的難度。
由于操作系統(tǒng)都是可以Root 的,所以不存在絕對(duì)的安全,但是對(duì)于Link 這樣的一款產(chǎn)品來說,主要功能都存在于手機(jī)端,并沒有可以操控車機(jī)的功能接口,統(tǒng)計(jì)數(shù)據(jù)也是以加密SDK 的方式直接提交后臺(tái),并沒有特別需要提升安全等級(jí)的敏感數(shù)據(jù)和內(nèi)容[4]。
3.3.1 方案一
AES 對(duì)稱密碼在出車機(jī)出廠時(shí)預(yù)置到車機(jī)里,每個(gè)項(xiàng)目生成一個(gè)。由車機(jī)端產(chǎn)生私鑰,并進(jìn)行公鑰證書生成。首次連接時(shí),通過AES 加密方式傳遞相應(yīng)的公鑰證書(自簽)及數(shù)字簽名(自簽)信息。手機(jī)端做為TLS 客戶端,車機(jī)端做為TLS 服務(wù)端,建立TLS 加密傳輸通道。TLS 使用1.2 版本,加密套件:TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
優(yōu)點(diǎn):a.車機(jī)端生成私鑰及證書,私鑰由車機(jī)保存,由于車機(jī)不能聯(lián)網(wǎng),定制系統(tǒng)相對(duì)安全。b.首次獲取證書使用對(duì)稱密鑰,相對(duì)安全。
缺點(diǎn):a.手機(jī)存儲(chǔ)的對(duì)稱密碼、證書存在被破譯風(fēng)險(xiǎn)。b.車機(jī)存儲(chǔ)證書,存在更新問題。
3.3.2 方案二
車機(jī)端與手機(jī)端建立TLS 單向認(rèn)證安全鏈接。WeCloud 作為自簽名CA,手機(jī)端作為TLS 服務(wù)端,車機(jī)端作為TLS 客戶端 。 TLS 使 用 1.2 版 本 , 加 密 套 件 :TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
優(yōu)點(diǎn):a.整個(gè)鏈路相對(duì)安全。b.手機(jī)APP 非唯一私鑰,確保ID 不同。c.簽名證書由云端生成。
缺點(diǎn):a.手機(jī)不聯(lián)網(wǎng),無法獲取簽名證書,車機(jī)與手機(jī)無法互聯(lián)。b.網(wǎng)絡(luò)波動(dòng)影響連接成功率。c.車機(jī)存儲(chǔ)證書,存在更新問題。d.私鑰存儲(chǔ)安全存在風(fēng)險(xiǎn)。e.使用TLS 建立的連接,發(fā)現(xiàn)WIFI 方案下,已知三星部分手機(jī),華為部分手機(jī)存在TLS 握手時(shí)間過長(zhǎng),大概20~40S,導(dǎo)致連接超時(shí),存在適配性問題。f.使用手機(jī)驗(yàn)證碼作為連接前提,增加了用戶使用的復(fù)雜度,降低了用戶使用產(chǎn)品的意愿。
車機(jī)端防護(hù)主要體現(xiàn)在兩個(gè)方面:a. 對(duì)CA 證書的安全存儲(chǔ),以防止被人為篡改并連接偽造的惡意手機(jī)APP。b.對(duì)進(jìn)程的權(quán)限控制,以防止進(jìn)程與手機(jī)APP 的通信已經(jīng)被劫持的情況下,也只能訪問有限的系統(tǒng)資源。
提前釋放CA 證書存儲(chǔ)到車機(jī),證書通過混淆算法處理成加密字符串的形式。將該證書做進(jìn)只讀文件系統(tǒng)(rootfs),由于文件系統(tǒng)是只讀的,所以該證書不會(huì)被人為篡改。該證書將只屬于相關(guān)進(jìn)程的用戶組,其他進(jìn)程無法訪問它,這樣就保證了機(jī)密性。
圖2 認(rèn)證流程
采取權(quán)限管理機(jī)制,對(duì)各個(gè)應(yīng)用進(jìn)程制定DAC 規(guī)則并限制其能力。各個(gè)應(yīng)用進(jìn)程都只屬于各自的用戶,這樣相關(guān)進(jìn)程就只能訪問自己必須訪問的資源,而不能訪問屬于其他進(jìn)程的資源。相關(guān)進(jìn)程如必須訪問某些系統(tǒng)級(jí)資源,則給它賦予特定的能力,這樣它就可以像root 用戶那樣訪問那些必須的系統(tǒng)資源,但它依然不能訪問超出該能力之外的資源。車機(jī)各個(gè)進(jìn)程之間的通信,會(huì)基于已有的事件ID,超出定義范圍外的事件ID 會(huì)被對(duì)方拒絕;這樣相關(guān)進(jìn)程將無法獲取未定義的車身數(shù)據(jù)。