丁櫟力
(中車青島四方機(jī)車車輛股份有限公司,山東 青島 266111)
隨著國(guó)家排放標(biāo)準(zhǔn)的逐步提高,電控發(fā)動(dòng)機(jī)的數(shù)量越來(lái)越多,電控系統(tǒng)的核心-電子控制單元 (ECU)已經(jīng)成為柴油機(jī)不可或缺的組成部分。ECU與傳統(tǒng)柴油機(jī)零部件的區(qū)別是它除了擁有硬件實(shí)體部分還有數(shù)據(jù)內(nèi)容部分。ECU要想正常工作,必須刷寫相應(yīng)的程序和數(shù)據(jù),目前能進(jìn)行數(shù)據(jù)刷寫的系統(tǒng)有EOL、INCA、CANape等。生產(chǎn)過(guò)程中多使用EOL系統(tǒng),而在開發(fā)和售后支持的時(shí)候會(huì)使用INCA或CANape進(jìn)行數(shù)據(jù)的刷寫以及上傳下載操作。對(duì)于ECU的售后服務(wù)來(lái)講不僅僅是更換零件本身,它同時(shí)還需要相應(yīng)的數(shù)據(jù)支持,因電控燃油系統(tǒng)的特殊性,給ECU刷寫不同的數(shù)據(jù)可能會(huì)實(shí)現(xiàn)不同的控制功能,數(shù)據(jù)與電控燃油系統(tǒng)不匹配可能會(huì)導(dǎo)致部件的損害,由此造成發(fā)動(dòng)機(jī)無(wú)法正常工作。以上的種種使得發(fā)動(dòng)機(jī)電控?cái)?shù)據(jù)的安全性問(wèn)題越來(lái)越凸顯。
無(wú)論是整個(gè)整車行業(yè),還是單獨(dú)的發(fā)動(dòng)機(jī)廠商,都面臨電控發(fā)動(dòng)機(jī)數(shù)據(jù)二次刷寫不可控的情況。本文的研究旨在建立一套基于INCA刷寫ECU的保密管理系統(tǒng),通過(guò)硬件和軟件相結(jié)合的方法,在刷寫ECU數(shù)據(jù)的同時(shí),增加審批授權(quán),用戶管理以及記錄的追溯查詢等模塊,保證數(shù)據(jù)傳遞過(guò)程的安全性。主要是限制工程師尤其是廠外工程師在使用INCA時(shí)對(duì)ECU的數(shù)據(jù)刷寫操作,做到使用INCA數(shù)據(jù)刷寫的過(guò)程可控,并記錄刷寫的信息,防止已出廠電控發(fā)動(dòng)機(jī)的ECU數(shù)據(jù)的隨意修改,保證數(shù)據(jù)的安全性。
NCA是ETAS公司推出的通用標(biāo)定工具,軟件全稱為Integrated Calibration and Acquisition System,可以使用它來(lái)進(jìn)行ECU數(shù)據(jù)的測(cè)量標(biāo)定以及數(shù)據(jù)刷寫,其工程的組成如圖1所示。
圖1 INCA工程
就數(shù)據(jù)的刷寫而言,其實(shí)質(zhì)就是通過(guò)通信協(xié)議,將數(shù)據(jù)文件下載到ECU存儲(chǔ)區(qū)中的過(guò)程,這個(gè)過(guò)程除了需要INCA軟件本身外,至少還要包含以下幾個(gè)要素。
1)硬件設(shè)備。通過(guò)以太網(wǎng)或USB等方式連接電腦,K線或CAN線方式連接ECU,通常需支持?jǐn)?shù)據(jù)刷寫所需的協(xié)議,如KWP2000、UDS等,是電腦上INCA軟件與ECU的連接橋梁,主要是進(jìn)行協(xié)議轉(zhuǎn)換。
2)數(shù)據(jù)文件。包含編譯后生成的程序及數(shù)據(jù)的原始文件 (HEX或S19格式)以及A2L文件等,符合芯片廠商定義及相應(yīng)的ASAM標(biāo)準(zhǔn)。
3)配置文件。即Prof文件,由ECU的廠商提供,定義整個(gè)數(shù)據(jù)刷寫流程的細(xì)節(jié),包括刷寫區(qū)域、數(shù)據(jù)交換格式、安全校驗(yàn)算法等,是INCA數(shù)據(jù)刷寫過(guò)程的關(guān)鍵控制文件。
Prof文件,即數(shù)據(jù)刷寫配置文件,是與ECU的版本及對(duì)應(yīng)的軟件版本息息相關(guān)的。一般說(shuō)來(lái),不同的ECU使用不同的Prof文件,同一ECU的不同軟件版本使用不同的Prof文件,即使是同一版本的ECU軟件 (如V720)針對(duì)不同的終端廠商(如濰柴和玉柴),也會(huì)使用不同的Prof文件加以區(qū)分。下面以濰柴EDC17 V720的Prof為例,進(jìn)行說(shuō)明。
Prof文件解壓后是一個(gè)文件夾,其中包含一系列文件,如圖2所示,按照功能可以分為4部分。
圖2 Prof文件
1)prof文件夾。其中包含數(shù)據(jù)刷寫時(shí)的安全校驗(yàn)算法dll文件,即平時(shí)我們常說(shuō)的seed&key文件,用來(lái)控制數(shù)據(jù)刷寫的權(quán)限。
2)profe文件夾。包含多個(gè)互相調(diào)用的“*.pri”、“*.prm”文件以及“*.cnf”配置文件,用來(lái)定義整個(gè)數(shù)據(jù)刷寫的過(guò)程。其中“*.cnf”文件用來(lái)說(shuō)明所使用的通信介質(zhì)、通信協(xié)議、地址區(qū)間等,還包含對(duì)刷寫CAN協(xié)議的各種參數(shù)描述,如時(shí)間參數(shù)、例程設(shè)置、ECU ID、波特率等信息;“*.prm”文件是腳本語(yǔ)言文件,規(guī)定刷寫的整體流程,并通過(guò)調(diào)用具體的pri文件將其具體化;“*.pri”文件也是腳本語(yǔ)言文件,記錄了執(zhí)行刷寫各個(gè)子功能的詳細(xì)過(guò)程。
3)info文件。為說(shuō)明文檔,其中.bak文件為其備份。
4)install文件。初始化文件,在Prof文件被導(dǎo)入INCA軟件時(shí)使用,同樣的.bak文件為其備份。
原有刷寫流程見圖3。根據(jù)對(duì)INCA數(shù)據(jù)刷寫過(guò)程的分析,采用控制Prof文件調(diào)用的方式實(shí)現(xiàn)對(duì)數(shù)據(jù)刷寫過(guò)程的控制。具體如圖4所示,在原有刷寫流程中,將調(diào)用Prof文件實(shí)體隱藏,用我們稱之為“虛擬接口”的文件取代,這樣當(dāng)INCA數(shù)據(jù)刷寫時(shí),由“虛擬接口”負(fù)責(zé)引導(dǎo),獲取真正的Prof文件并進(jìn)行控制。在實(shí)際的系統(tǒng)開發(fā)過(guò)程中,又主要是虛擬化Prof文件中seed&key文件的接口。
圖3 原有刷寫流程
圖4 INCA保密系統(tǒng)方案
在這種思路的前提下,根據(jù)具體使用對(duì)象和環(huán)境的不同,可以將真實(shí)的Prof文件 (主要是seed&key文件)置于網(wǎng)絡(luò)服務(wù)器中管理或保密介質(zhì)中管理,由此又可以分為網(wǎng)絡(luò)方式和U盾方式兩種實(shí)現(xiàn)形式,其系統(tǒng)的整體架構(gòu)見圖5。
圖5 INCA保密系統(tǒng)架構(gòu)
本地客戶端軟件是本次INCA保密系統(tǒng)的關(guān)鍵部分,它被安裝在INCA軟件所在的電腦上,作為INCA的插件形式存在。它是整個(gè)保密系統(tǒng)實(shí)現(xiàn)的前端,也是與最終INCA用戶交互的部分,客戶端軟件主要實(shí)現(xiàn)以下功能。
1)用戶權(quán)限控制,用戶如果要進(jìn)行數(shù)據(jù)刷寫操作,必須使用用戶名和密碼登陸,根據(jù)早已賦予的刷寫權(quán)限和次數(shù)進(jìn)行操作,不登陸無(wú)法進(jìn)行。
2)與INCA關(guān)聯(lián),釋放"虛擬接口"文件,并在INCA啟動(dòng)后監(jiān)控?cái)?shù)據(jù)刷寫過(guò)程,一旦需要,調(diào)用網(wǎng)絡(luò)或U盾方式獲取數(shù)據(jù)。
3)與網(wǎng)絡(luò)服務(wù)器或U盾連接,傳遞seed,在網(wǎng)絡(luò)服務(wù)器或U盾中計(jì)算后返回key,供數(shù)據(jù)刷寫安全訪問(wèn)中使用。
4)簡(jiǎn)單的用戶信息獲取,如獲取用戶當(dāng)前權(quán)限,當(dāng)前可用的刷寫次數(shù)等,相關(guān)的信息都需在用戶登陸后才能獲得。另外還能實(shí)現(xiàn)用戶刷寫過(guò)程信息的上傳。
網(wǎng)絡(luò)方式適用于當(dāng)客戶端電腦連接于局域網(wǎng)時(shí)使用,例如試驗(yàn)臺(tái)架所使用的電腦。
在網(wǎng)絡(luò)連接的方式下,用戶通過(guò)客戶端軟件登陸后,便建立了客戶端電腦 (安裝有INCA軟件)與服務(wù)器的連接,真實(shí)的seed&key算法置于服務(wù)器中,當(dāng)用INCA進(jìn)行刷寫操作時(shí),客戶端軟件會(huì)根據(jù)具體的需求,向服務(wù)器發(fā)送請(qǐng)求及seed,服務(wù)器計(jì)算對(duì)應(yīng)的key并根據(jù)用戶的授權(quán)次數(shù)判斷是否是被授權(quán)的刷寫操作,如果是則返回key至客戶端軟件至INCA,完成刷寫過(guò)程并記錄;如果刷寫未被授權(quán),則拒絕,INCA的數(shù)據(jù)刷寫過(guò)程會(huì)終止。
U盾方式在技術(shù)人員攜帶安裝INCA的電腦外出,脫離網(wǎng)絡(luò)時(shí)使用,如出差人員等。在本次的INCA保密系統(tǒng)開發(fā)中,我們使用了更改特殊文件系統(tǒng)的普通U盤作為U盾的載體,當(dāng)然也可以使用專用的U盾硬件實(shí)現(xiàn),其作用和效果應(yīng)該是一致的。
U盾的存在主要是應(yīng)對(duì)無(wú)網(wǎng)絡(luò)連接環(huán)境下保密系統(tǒng)的使用。首先U盾的授權(quán)是必須連接網(wǎng)絡(luò)進(jìn)行的,在這時(shí)會(huì)根據(jù)U盾的ID號(hào)關(guān)聯(lián)特定的用戶,事先根據(jù)申請(qǐng)授權(quán)當(dāng)前U盾某個(gè)具體用戶特定的刷寫次數(shù)權(quán)限;這樣用戶離線使用INCA時(shí),只需要插上U盾,輸入相應(yīng)的用戶名及密碼,就可以進(jìn)行數(shù)據(jù)刷寫。U盾的刷寫次數(shù)及時(shí)間都受一定限制,如果長(zhǎng)時(shí)間不用會(huì)自動(dòng)鎖定,默認(rèn)為30天,再次使用需重新激活,這樣即使U盾丟失也可確保數(shù)據(jù)的安全。
U盾方式與網(wǎng)絡(luò)方式的區(qū)別就在于,網(wǎng)絡(luò)方式向網(wǎng)絡(luò)服務(wù)器請(qǐng)求,而U盾方式向U盾請(qǐng)求,在使用時(shí)終端用戶并沒(méi)有明顯的感受。
服務(wù)器是整個(gè)INCA保密系統(tǒng)的中樞,其中保存了不同種類的安全校驗(yàn)算法,并在接收到客戶端請(qǐng)求時(shí)承擔(dān)判斷權(quán)限、計(jì)算key、記錄過(guò)程的工作,根據(jù)使用用戶的數(shù)量不同,對(duì)其的性能要求也不同。
服務(wù)器上安裝數(shù)據(jù)庫(kù),用來(lái)記錄用戶信息,保留刷寫記錄,權(quán)限分配控制等,同時(shí)服務(wù)器也對(duì)外提供Web服務(wù),實(shí)現(xiàn)用戶登錄,安全訪問(wèn)計(jì)算等工作。
另外,INCA保密的管理平臺(tái)也是系統(tǒng)的重要組成部分,除了提供基本的用戶管理、權(quán)限分配、刷寫記錄查詢等功能外,它還承擔(dān)著管理制作U盾的工作,在U盾連接到網(wǎng)絡(luò)上時(shí),通過(guò)管理程序的控制,可以增加刪除U盾中的用戶,賦予用戶刷寫權(quán)限等工作。
本次的INCA保密系統(tǒng),在不改變現(xiàn)有的INCA軟件的情況下,通過(guò)網(wǎng)絡(luò)及U盾與管理平臺(tái)結(jié)合的方式,可以實(shí)現(xiàn)數(shù)據(jù)刷寫的事先授權(quán)及過(guò)程可控,能夠很大程度上限制未經(jīng)許可的隨意刷寫改變ECU數(shù)據(jù)。同時(shí),刷寫的過(guò)程信息能夠?qū)崿F(xiàn)追溯,也利于監(jiān)控發(fā)現(xiàn)不良端倪。