本發(fā)明涉及信息刷寫技術(shù)領(lǐng)域,特別是涉及一種基于網(wǎng)絡(luò)安全的加密刷寫方法及裝置。
背景技術(shù):
目前,隨著汽車電子產(chǎn)品越來越復(fù)雜化,客戶對于產(chǎn)品功能要求的多樣化,在線刷寫的功能顯的尤為重要??梢栽诓粨p壞汽車面板,不拆卸問題ecu的情況下完成程序的重新燒錄,不僅使研發(fā)過程中試驗用硬件大量減少,也使產(chǎn)品在流向市場后的維修帶來了極大的便利性。uds(unifieddiagnosticservices,統(tǒng)一診斷服務(wù))基于osi(opensystemsinterconnection,開放式系統(tǒng)互聯(lián))參考模型設(shè)計,是目前汽車領(lǐng)域廣泛使用的一種車載診斷協(xié)議標(biāo)準,主要用于ecu的故障檢測以及版本控制。在線刷寫采用uds的上傳下載服務(wù),可以通過can/lin總線進行通訊,為車載ecu電控單元的在線刷寫提供了安全保障。各零部件供應(yīng)商因研發(fā)過程中整改問題的便利而使用在線刷寫程序,而這種方式也逐漸被各主機廠接受和使用。
簡單來講,汽車控制單元將程序分為兩塊,為applsw應(yīng)用軟件和fblsw下載軟件。在正常開車過程中,程序運行在appl應(yīng)用程序這側(cè),當(dāng)進行程序的刷新時,程序運行在fbl下載程序這側(cè)。fbl通過接受上位機發(fā)送的數(shù)據(jù),覆蓋原有的appl數(shù)據(jù),從而實現(xiàn)程序的更新。fbl就是在操作系統(tǒng)內(nèi)核運行之前運行的一段小程序。通過這段小程序,可以初始化硬件設(shè)備,建立內(nèi)存空間映射,從而將系統(tǒng)的軟硬件環(huán)境帶到一個合適的狀態(tài),當(dāng)滿足啟動流程條件,開啟下載解密,擦除存儲空間,下載功能,最后判斷傳輸?shù)臄?shù)據(jù)是否正確,正確則退出刷寫狀態(tài),否則需要重新下載。
在整個刷寫流程中,僅在進入刷寫模式后,有一個下載解密的步驟來校驗待刷ecu和上位機是否滿足安全下載的條件,該步驟使用了uds診斷中的0x27服務(wù)來保證目前上位機是否合法以及待刷的程序是否安全。但僅靠0x27服務(wù),并不能保證刷寫的安全,尤其是在多供應(yīng)商合作過程中,其他供應(yīng)合作商可以通過實時監(jiān)控記錄下載數(shù)據(jù)流從緩存中獲取目標(biāo)文件,獲取目標(biāo)文件中的內(nèi)部算法,如此不能保證內(nèi)部算法的安全性和防破解性,內(nèi)部算法的安全性較低。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的是提供一種基于網(wǎng)絡(luò)安全的加密刷寫方法及裝置,以實現(xiàn)提高內(nèi)部算法的安全性。
為解決上述技術(shù)問題,本發(fā)明提供一種基于網(wǎng)絡(luò)安全的加密刷寫方法,該方法包括:
采用加密算法對需要刷寫的目標(biāo)文件進行加密,得到加密后的目標(biāo)文件;
將加密后的目標(biāo)文件存儲在緩存中;
在刷寫目標(biāo)文件時,利用密鑰對緩存中的加密后的目標(biāo)文件進行解密,生成解密后的目標(biāo)文件,將解密后的目標(biāo)文件刷寫到芯片中。
優(yōu)選的,所述采用加密算法對需要刷寫的目標(biāo)文件進行加密,得到加密后的目標(biāo)文件之后,還包括:
采用哈希算法對加密后的目標(biāo)文件進行安全校驗,生成第一安全校驗結(jié)果。
優(yōu)選的,所述將解密后的目標(biāo)文件刷寫到芯片中之后,還包括:
采用加密算法對刷寫到芯片中的解密后的目標(biāo)文件進行重新加密,采用哈希算法對重新加密后的目標(biāo)文件進行安全校驗,生成第二安全校驗結(jié)果;
將第一安全校驗結(jié)果與第二安全校驗結(jié)果進行比對,若相同,則刷寫成功。
優(yōu)選的,所述加密算法為aes加密算法。
本發(fā)明還提供一種基于網(wǎng)絡(luò)安全的加密刷寫裝置,用于實現(xiàn)所述基于網(wǎng)絡(luò)安全的加密刷寫方法,包括:
加密模塊,用于采用加密算法對需要刷寫的目標(biāo)文件進行加密,得到加密后的目標(biāo)文件;
存儲模塊,用于將加密后的目標(biāo)文件存儲在緩存中;
刷寫模塊,用于在刷寫目標(biāo)文件時,利用密鑰對緩存中的加密后的目標(biāo)文件進行解密,生成解密后的目標(biāo)文件,將解密后的目標(biāo)文件刷寫到芯片中。
優(yōu)選的,所述加密模塊還包括:
第一校驗單元,用于采用哈希算法對加密后的目標(biāo)文件進行安全校驗,生成第一安全校驗結(jié)果。
優(yōu)選的,所述刷寫模塊還包括:
第二校驗單元,用于采用加密算法對刷寫到芯片中的解密后的目標(biāo)文件進行重新加密,采用哈希算法對重新加密后的目標(biāo)文件進行安全校驗,生成第二安全校驗結(jié)果;
比對單元,用于將第一安全校驗結(jié)果與第二安全校驗結(jié)果進行比對,若相同,則刷寫成功。
優(yōu)選的,所述加密算法為aes加密算法。
本發(fā)明所提供的一種基于網(wǎng)絡(luò)安全的加密刷寫方法及裝置,采用加密算法對需要刷寫的目標(biāo)文件進行加密,得到加密后的目標(biāo)文件;將加密后的目標(biāo)文件存儲在緩存中;在刷寫目標(biāo)文件時,利用密鑰對緩存中的加密后的目標(biāo)文件進行解密,生成解密后的目標(biāo)文件,將解密后的目標(biāo)文件刷寫到芯片中。可見,在緩存中存儲的目標(biāo)文件為采用加密算法進行加密后的目標(biāo)文件,該目標(biāo)文件是加密文件,即使其他供應(yīng)合作商通過實時監(jiān)控記錄下載數(shù)據(jù)流從緩存中獲取目標(biāo)文件,那么獲取的目標(biāo)文件是一個加密后的文件,無法獲取原始的目標(biāo)文件,也就無法從原始的目標(biāo)文件里獲取內(nèi)部算法,但是最終寫入的芯片中的文件是解密后的目標(biāo)文件即原始的目標(biāo)文件,而實時監(jiān)控記錄下載數(shù)據(jù)流只能從緩存中獲取數(shù)據(jù),不能從芯片中獲取數(shù)據(jù),因此保證了內(nèi)部算法的安全性和防破解性,提高了內(nèi)部算法的安全性。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。
圖1為本發(fā)明所提供的一種基于網(wǎng)絡(luò)安全的加密刷寫方法的流程圖;
圖2為合作供應(yīng)商fbl中插入算法和密鑰示意圖;
圖3為刷寫數(shù)據(jù)前增加解密的流程圖;
圖4為刷寫數(shù)據(jù)后重新加密計算校驗碼的流程圖;
圖5為本發(fā)明所提供的一種基于網(wǎng)絡(luò)安全的加密刷寫裝置的結(jié)構(gòu)示意圖。
具體實施方式
本發(fā)明的核心是提供一種基于網(wǎng)絡(luò)安全的加密刷寫方法及裝置,以實現(xiàn)提高內(nèi)部算法的安全性。
為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明方案,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
請參考圖1,圖1為本發(fā)明所提供的一種基于網(wǎng)絡(luò)安全的加密刷寫方法的流程圖,該方法包括:
s11:采用加密算法對需要刷寫的目標(biāo)文件進行加密,得到加密后的目標(biāo)文件;
s12:將加密后的目標(biāo)文件存儲在緩存中;
s13:在刷寫目標(biāo)文件時,利用密鑰對緩存中的加密后的目標(biāo)文件進行解密,生成解密后的目標(biāo)文件,將解密后的目標(biāo)文件刷寫到芯片中。
可見,該方法中,在緩存中存儲的目標(biāo)文件為采用加密算法進行加密后的目標(biāo)文件,該目標(biāo)文件是加密文件,即使其他供應(yīng)合作商通過實時監(jiān)控記錄下載數(shù)據(jù)流從緩存中獲取目標(biāo)文件,那么獲取的目標(biāo)文件是一個加密后的文件,無法獲取原始的目標(biāo)文件,也就無法從原始的目標(biāo)文件里獲取內(nèi)部算法,但是最終寫入的芯片中的文件是解密后的目標(biāo)文件即原始的目標(biāo)文件,而實時監(jiān)控記錄下載數(shù)據(jù)流只能從緩存中獲取數(shù)據(jù),不能從芯片中獲取數(shù)據(jù),因此保證了內(nèi)部算法的安全性和防破解性,提高了內(nèi)部算法的安全性。
基于上述方法,具體的,需要刷寫的目標(biāo)文件中存儲有內(nèi)部算法,需要刷寫的目標(biāo)文件中包含敏感信息代碼。
進一步的,步驟s11中,采用加密算法對需要刷寫的目標(biāo)文件進行加密,得到加密后的目標(biāo)文件之后,還包括:采用哈希算法對加密后的目標(biāo)文件進行安全校驗,生成第一安全校驗結(jié)果。
進一步的,步驟s13中,將解密后的目標(biāo)文件刷寫到芯片中之后,還包括:采用加密算法對刷寫到芯片中的解密后的目標(biāo)文件進行重新加密,采用哈希算法對重新加密后的目標(biāo)文件進行安全校驗,生成第二安全校驗結(jié)果;將第一安全校驗結(jié)果與第二安全校驗結(jié)果進行比對,若相同,則刷寫成功。
具體的,所述加密算法為aes加密算法。
進一步的,步驟s11之前,還包括:在進行芯片燒錄口連接時,輸入用于讀取內(nèi)存的密鑰,驗證密鑰成功后,讀取芯片中的內(nèi)存空間程序。如此,其他供應(yīng)商也不能通過芯片燒錄口直接讀取內(nèi)存程序來獲取內(nèi)部算法,必須具有正確的用于讀取內(nèi)存的密鑰,僅當(dāng)輸入正確的該密鑰時,才允許讀取芯片中的內(nèi)存空間程序。
本發(fā)明提供的一種基于網(wǎng)絡(luò)安全的加密刷寫方法,用于在多供應(yīng)商合作刷寫過程中,該方法能夠極大程度上減少和避免自身代碼被破解的可能性,加強了對于敏感信息的安全加密。
基于本方法,具體實施過程如下:
1、在原有的fbl的程序中插入一段公開的加密程序來實現(xiàn)加密,但有保密的密鑰,圖2為合作供應(yīng)商fbl中插入算法和密鑰示意圖;在按照常規(guī)流程生成刷寫目標(biāo)文件(.s19/.hexetc.)時,當(dāng)涉及到公司內(nèi)部敏感信息如核心加密算法時,使用該段加密程序來實現(xiàn)對內(nèi)部敏感信息代碼的加密,使得即便該刷寫數(shù)據(jù)被其他供應(yīng)商獲取但仍不能直接讀取相應(yīng)的核心算法信息;
2、在正式的刷寫過程中,當(dāng)刷寫到涉及公司內(nèi)部敏感信息如核心加密算法時,跳轉(zhuǎn)到步驟1中的加密程序?qū)υ摱蚊舾行畔⒋a進行解密,從而將解密后的源程序刷入到芯片的flash中;
3、在刷寫完成后,需要校驗刷入的數(shù)據(jù)是否安全有效,此時需要通過對刷入的涉及敏感信息的代碼進行重新加密并進行安全校驗,校驗通過則刷寫成功,退出刷寫流程,否則需要重新下載程序。
進一步的,在進行芯片燒錄口連接時,在芯片中增加一個用于讀取內(nèi)存的密鑰,僅當(dāng)輸入正確的該密鑰時,才允許讀取芯片中的內(nèi)存空間程序。
更詳細的,本方法具體流程包括:一、在使用燒錄工具通過燒錄口連接芯片,進行芯片燒程之前,增加密鑰1,長度為128個比特,僅當(dāng)密鑰1輸入完全正確,則允許繼續(xù)燒錄,否則拒絕連接;二、刷寫目標(biāo)文件(.s19/.hexetc.)生成后,為了數(shù)據(jù)的保密性,利用aes(rijndael)算法對數(shù)據(jù)進行加密,aes的密鑰2保存在我方,避免其他供應(yīng)商通過讀取目標(biāo)文件進行算法破解;三、當(dāng)目標(biāo)文件刷寫到芯片中時,再使用密鑰2進行數(shù)據(jù)解密,如圖3所示,以保證芯片中的數(shù)據(jù)是未加密的源代碼;四、在實際應(yīng)用pc上位機進行程序更新時,需要使用aes算法對數(shù)據(jù)進行加密,如圖4所示,以保證與當(dāng)時目標(biāo)文件中的數(shù)據(jù)相同;五、使用hash-256算法對刷寫數(shù)據(jù)進行安全校驗,校驗結(jié)果與pc上位機中事先保存的結(jié)果進行對比,一致則刷寫成功,否則刷寫失敗。
本方法大大增強了數(shù)據(jù)的安全加密性,使得核心代碼被破解的概率大大降低,并且汽車電子模塊的整車安全性也大大提高。在使用燒錄工具連接ecu燒錄口時,需進行密鑰1校驗,通過則繼續(xù)燒錄,否則拒絕連接;在目標(biāo)文件生成后,通過自行制作的工具使用aes算法進行敏感數(shù)據(jù)加密,刷寫過程中,再通過在fbl中插入的aes加密算法和密鑰2進行敏感數(shù)據(jù)解密;數(shù)據(jù)刷寫完成后,使用hash-256算法對整個appl數(shù)據(jù)進行簽名校驗,并與pc上位機比對校驗結(jié)果,一致則刷寫成功,否則刷寫失敗。
請參考圖5,圖5為本發(fā)明所提供的一種基于網(wǎng)絡(luò)安全的加密刷寫裝置的結(jié)構(gòu)示意圖,該裝置用于實現(xiàn)上述基于網(wǎng)絡(luò)安全的加密刷寫方法,該裝置包括:
加密模塊101,用于采用加密算法對需要刷寫的目標(biāo)文件進行加密,得到加密后的目標(biāo)文件;
存儲模塊102,用于將加密后的目標(biāo)文件存儲在緩存中;
刷寫模塊103,用于在刷寫目標(biāo)文件時,利用密鑰對緩存中的加密后的目標(biāo)文件進行解密,生成解密后的目標(biāo)文件,將解密后的目標(biāo)文件刷寫到芯片中。
可見,該裝置中,在緩存中存儲的目標(biāo)文件為采用加密算法進行加密后的目標(biāo)文件,該目標(biāo)文件是加密文件,即使其他供應(yīng)合作商通過實時監(jiān)控記錄下載數(shù)據(jù)流從緩存中獲取目標(biāo)文件,那么獲取的目標(biāo)文件是一個加密后的文件,無法獲取原始的目標(biāo)文件,也就無法從原始的目標(biāo)文件里獲取內(nèi)部算法,但是最終寫入的芯片中的文件是解密后的目標(biāo)文件即原始的目標(biāo)文件,而實時監(jiān)控記錄下載數(shù)據(jù)流只能從緩存中獲取數(shù)據(jù),不能從芯片中獲取數(shù)據(jù),因此保證了內(nèi)部算法的安全性和防破解性,提高了內(nèi)部算法的安全性。
基于上述裝置,具體的,需要刷寫的目標(biāo)文件中存儲有內(nèi)部算法,需要刷寫的目標(biāo)文件中包含敏感信息代碼。
進一步的,加密模塊還包括:第一校驗單元,用于采用哈希算法對加密后的目標(biāo)文件進行安全校驗,生成第一安全校驗結(jié)果。
進一步的,刷寫模塊還包括:
第二校驗單元,用于采用加密算法對刷寫到芯片中的解密后的目標(biāo)文件進行重新加密,采用哈希算法對重新加密后的目標(biāo)文件進行安全校驗,生成第二安全校驗結(jié)果;
比對單元,用于將第一安全校驗結(jié)果與第二安全校驗結(jié)果進行比對,若相同,則刷寫成功。
進一步的,所述加密算法為aes加密算法。
以上對本發(fā)明所提供的一種基于網(wǎng)絡(luò)安全的加密刷寫方法及裝置進行了詳細介紹。本文中應(yīng)用了具體個例對本發(fā)明的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想。應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以對本發(fā)明進行若干改進和修飾,這些改進和修飾也落入本發(fā)明權(quán)利要求的保護范圍內(nèi)。