本發(fā)明涉及計算機技術(shù)領(lǐng)域,主要涉及了一種安全服務(wù)管理實體SSME模塊的校驗方法及裝置。
背景技術(shù):
近年來,隨著汽車工業(yè)的普及,私家車擁有量的激增,道路擁塞的日益嚴(yán)重,交通事故的頻發(fā),以及各式各樣車載設(shè)備的不斷涌現(xiàn),創(chuàng)建高性能、高擴展性、安全的車用自組織網(wǎng)絡(luò)給無線研究者們提出了新的挑戰(zhàn)。作為V2X(vehicle to X,車輛對外界通信)的熱門技術(shù)之一的WAVE(Wireless Access in Vehicular Environments,車載通信無線接入)協(xié)議棧由IEEE制定,基于802.11的無線通信協(xié)議棧,具有部署容易、成本較低等優(yōu)點。
根據(jù)WAVE 1609.2標(biāo)準(zhǔn),為提升車聯(lián)網(wǎng)的安全性,車聯(lián)網(wǎng)設(shè)備(例如,汽車、路邊單元等接入車聯(lián)網(wǎng)的設(shè)備)中必須有SSME(Secure Service Management Entity,安全服務(wù)管理實體)模塊,用于存儲數(shù)字證書及相關(guān)信息,并向設(shè)備內(nèi)其他模塊提供正確的數(shù)字證書相關(guān)信息。在該標(biāo)準(zhǔn)中,假定SSME模塊所提供的所有信息都是可信的。
由于SSME模塊是軟件模塊,也就是說SSME模塊可以被惡意軟件感染和/或控制,進而成為攻破車聯(lián)網(wǎng)安全系統(tǒng)。因此SSME模塊成為整個WAVE車聯(lián)網(wǎng)安全的薄弱環(huán)節(jié)。
技術(shù)實現(xiàn)要素:
基于此,為解決安全服務(wù)管理實體SSME模塊在被惡意軟件感染和/或控制后,提供錯誤的數(shù)字證書和相關(guān)信息導(dǎo)致車聯(lián)網(wǎng)設(shè)備出現(xiàn)安全問題,特提出了一種安全服務(wù)管理實體SSME模塊的校驗方法。
一種安全服務(wù)管理實體SSME模塊的校驗方法,包括:
確定待校驗的SSME子模塊作為目標(biāo)模塊,通過哈希函數(shù)生成所述目標(biāo)模塊的目標(biāo)校驗值;
根據(jù)已存儲的Merkle樹中獲取根節(jié)點的值和所述目標(biāo)模塊在所述Merkle樹中對應(yīng)的驗證路徑,所述驗證路徑為所述目標(biāo)模塊對應(yīng)的葉節(jié)點到所述根節(jié)點所經(jīng)過的子節(jié)點的序列;
將所述目標(biāo)校驗值迭代地與所述驗證路徑上的子節(jié)點值進行哈希得到校驗根值;
當(dāng)所述校驗根值與所述根節(jié)點的值匹配時,確定所述目標(biāo)模塊校驗通過。
在其中一個實施例中,所述將所述目標(biāo)校驗值迭代地與所述驗證路徑上的子節(jié)點值進行哈希得到校驗根值還包括:將所述目標(biāo)校驗值作為第一哈希值;獲取所述目標(biāo)模塊對應(yīng)的葉節(jié)點的父節(jié)點作為目標(biāo)父節(jié)點,迭代執(zhí)行:將和所述目標(biāo)模塊對應(yīng)的葉節(jié)點組成目標(biāo)組合的子節(jié)點作為驗證節(jié)點,確定所述驗證節(jié)點的值作為第二哈希值;將所述第一哈希值和所述第二哈希值兩兩哈希得到所述目標(biāo)父節(jié)點的值作為第一哈希值,將所述目標(biāo)父節(jié)點的父節(jié)點作為目標(biāo)父節(jié)點;在所述目標(biāo)父節(jié)點為根節(jié)點時,結(jié)束迭代;將所述根節(jié)點的值作為所述校驗根值。
在其中一個實施例中,計算SSME模塊中各個SSME子模塊的哈希值作為所述Merkle樹的葉節(jié)點的值;將所述葉節(jié)點作為目標(biāo)節(jié)點,迭代執(zhí)行:將所述目標(biāo)節(jié)點不重復(fù)兩兩組合,遍歷得到的組合,對于遍歷到的目標(biāo)組合,計算目標(biāo)組合的哈希值作為所述目標(biāo)組合中的節(jié)點的父節(jié)點的值;在遍歷結(jié)束后,將所述父節(jié)點作為目標(biāo)節(jié)點;在所述父節(jié)點為根節(jié)點時,結(jié)束迭代;存儲所述Merkle樹。
在其中一個實施例中,當(dāng)所述SSME模塊安裝完成或所述SSME模塊升級完成后,執(zhí)行所述計算SSME模塊中各個SSME子模塊的哈希值作為所述Merkle樹的葉節(jié)點的值的步驟。
在其中一個實施例中,所述計算SSME模塊中各個SSME子模塊的哈希值作為所述Merkle樹的葉節(jié)點的值之前還包括:將所述SSME模塊劃分為2N個SSME子模塊,其中N為正整數(shù)。
此外,為解決安全服務(wù)管理實體SSME模塊在被惡意軟件感染和控制后,提供錯誤的數(shù)字證書和相關(guān)信息導(dǎo)致車聯(lián)網(wǎng)設(shè)備出現(xiàn)安全問題,特提出了一種安全服務(wù)管理實體SSME模塊的校驗裝置。
一種安全服務(wù)管理實體SSME模塊的校驗裝置,包括:
校驗值確定模塊,用于確定待校驗的SSME子模塊作為目標(biāo)模塊,通過哈希函數(shù)生成所述目標(biāo)模塊的校驗值;
參數(shù)獲取模塊,用于根據(jù)已存儲的Merkle樹中獲取根節(jié)點的值和所述目標(biāo)模塊在所述Merkle樹中對應(yīng)的驗證路徑,所述驗證路徑為所述目標(biāo)模塊對應(yīng)的葉節(jié)點到所述根節(jié)點所經(jīng)過的子節(jié)點的序列;
校驗根值確定模塊,用于將所述目標(biāo)校驗值迭代地與所述驗證路徑上的子節(jié)點值進行哈希得到校驗根值;
校驗結(jié)果處理模塊,用于當(dāng)所述校驗根值與所述根節(jié)點的值匹配時,確定所述目標(biāo)模塊校驗通過。
在其中一個實施例中,所述校驗根值確定模塊還用于將所述目標(biāo)校驗值作為第一哈希值;獲取所述目標(biāo)模塊對應(yīng)的葉節(jié)點的父節(jié)點作為目標(biāo)父節(jié)點,迭代執(zhí)行:將和所述目標(biāo)模塊對應(yīng)的葉節(jié)點組成目標(biāo)組合的子節(jié)點作為驗證節(jié)點,確定所述驗證節(jié)點的值作為第二哈希值;將所述第一哈希值和所述第二哈希值兩兩哈希得到所述目標(biāo)父節(jié)點的值作為第一哈希值,將所述目標(biāo)父節(jié)點的父節(jié)點作為目標(biāo)父節(jié)點;在所述目標(biāo)父節(jié)點為根節(jié)點時,結(jié)束迭代;將所述根節(jié)點的值作為所述校驗根值。
在其中一個實施例中,所述裝置還包括存儲模塊,用于計算SSME模塊中各個SSME子模塊的哈希值作為所述Merkle樹的葉節(jié)點的值;將所述葉節(jié)點作為目標(biāo)節(jié)點,迭代執(zhí)行:將所述目標(biāo)節(jié)點不重復(fù)兩兩組合,遍歷得到的組合,對于遍歷到的目標(biāo)組合,計算目標(biāo)組合的哈希值作為所述目標(biāo)組合中的節(jié)點的父節(jié)點的值;在遍歷結(jié)束后,將所述父節(jié)點作為目標(biāo)節(jié)點;在所述父節(jié)點為根節(jié)點時,結(jié)束迭代;存儲所述Merkle樹。
在其中一個實施例中,所述裝置還包括檢測執(zhí)行模塊,用于當(dāng)所述SSME模塊安裝完成或所述SSME模塊升級完成后,調(diào)用所述存儲模塊。
在其中一個實施例中,所述存儲模塊還用于將所述SSME模塊劃分為2N個SSME子模塊,其中N為正整數(shù)。
實施本發(fā)明實施例,將具有如下有益效果:
采用了上述的安全服務(wù)管理實體SSME模塊的校驗方法及裝置之后,當(dāng)確定待校驗的SSME子模塊為目標(biāo)模塊之后,通過哈希函數(shù)生成目標(biāo)模塊對應(yīng)的校驗值,根據(jù)已存儲的Merkle樹獲取根節(jié)點的值和目標(biāo)模塊在所述Merkle樹中對應(yīng)的葉節(jié)點的驗證路徑,然后將所述目標(biāo)校驗值迭代地與所述驗證路徑上的子節(jié)點值進行哈希得到校驗根值,判斷校驗根值是否與根節(jié)點的值匹配,若是,則目標(biāo)模塊校驗通過。由于存儲的Merkle樹的根節(jié)點的值是在安裝或升級SSME模塊后,根據(jù)SSME子模塊對應(yīng)的葉節(jié)點生成的,因此通過對比校驗根值和根節(jié)點的值則能驗證SSME子模塊的完整性,從而提高車聯(lián)網(wǎng)設(shè)備的可靠性和安全性。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
其中:
圖1為本發(fā)明實施例提供的一種SSME模塊的校驗方法流程圖;
圖2為本發(fā)明實施例提供的一種Merkle樹的示意圖;
圖3為本發(fā)明實施例提供的一種驗證目標(biāo)模塊的示意圖;
圖4為本發(fā)明實施例提供的一種SSME模塊的校驗裝置結(jié)構(gòu)圖;
圖5為一個實施例中運行SSME模塊的校驗方法的計算機設(shè)備的結(jié)構(gòu)示意圖。
具體實施方式
下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
為解決安全服務(wù)管理實體SSME模塊在被惡意軟件感染和控制后,提供錯誤的數(shù)字證書和相關(guān)信息導(dǎo)致車聯(lián)網(wǎng)設(shè)備出現(xiàn)安全問題,在一個實施例中,特提出了一種安全服務(wù)管理實體SSME模塊的校驗方法。該方法的實現(xiàn)可依賴于計算機程序,該計算機程序可運行于基于馮諾依曼體系的計算機系統(tǒng)之上,該計算機程序可以是車聯(lián)網(wǎng)設(shè)備中針對SSME模塊的安全驗證軟件中的一個獨立的應(yīng)用,或者基于安全驗證軟件應(yīng)用開發(fā)的功能選項或應(yīng)用插件,該車聯(lián)網(wǎng)設(shè)備可以是汽車,也可以是路邊單元等接入車聯(lián)網(wǎng)的設(shè)備,該SSME模塊基于WAVE 1609.2標(biāo)準(zhǔn)安裝與車聯(lián)網(wǎng)設(shè)備中,用于存儲數(shù)字證書及相關(guān)信息,并向車聯(lián)網(wǎng)設(shè)備內(nèi)其他模塊提供正確的數(shù)字證書相關(guān)信息。
該方法執(zhí)行后,在車聯(lián)網(wǎng)設(shè)備安裝SSME模塊時,應(yīng)當(dāng)獲取每個SSME子模塊的哈希值,根據(jù)這些哈希值兩兩組合,繼續(xù)哈希,以此類推,直至計算出Merkle樹的根節(jié)點的哈希值,并存儲Merkle樹。每當(dāng)需要調(diào)用一個SSME子模塊時,需通過該SSME子模塊的哈希值校驗該SSME子模塊的完整性,從而提高了車聯(lián)網(wǎng)設(shè)備的可靠性和安全性。
需要注意的是,當(dāng)SSME模塊進行升級時,應(yīng)當(dāng)同步更新所存儲的Merkle樹中包含的校驗信息,包括重新計算哈希值、重新計算Merkle樹,以及將重新計算結(jié)果更新所存儲的信息。
具體的,如圖1所示,一種安全服務(wù)管理實體SSME模塊的校驗方法,包括:
步驟S102:確定待校驗的SSME子模塊作為目標(biāo)模塊,通過哈希函數(shù)生成所述目標(biāo)模塊的校驗值。
將運行中需要調(diào)用的SSME子模塊作為待校驗的SSME子模塊,將待校驗的SSME子模塊作為目標(biāo)模塊。其中,待校驗的SSME子模塊至少為一個。僅針對待校驗的SSME子模塊進行驗證,而不是整個SSME模塊,可確定SSME子模塊是否可信,且提高了校驗的查找效率。
本發(fā)明實施例中,獲取目標(biāo)模塊的校驗信息,通過哈希函數(shù)生成校驗信息對應(yīng)的校驗值。目標(biāo)模塊的校驗信息可為該目標(biāo)模塊的身份標(biāo)識,該身份標(biāo)識可以是一串字符或數(shù)字,且能夠唯一標(biāo)識該SSME子模塊,即每一個SSME子模塊的身份標(biāo)識都是唯一的,如使用該SSME子模塊的用戶的昵稱或用戶的聯(lián)系方式、MAC地址、設(shè)備ID等,本發(fā)明實施例不作限定。
本發(fā)明實施例中,哈希函數(shù)的構(gòu)造方法可為直接定址法、數(shù)字分析法、平均取中法、折疊法、除留余數(shù)法和隨機數(shù)法等中的一種或多種構(gòu)造方法的結(jié)合,本發(fā)明實施例不作限定。
步驟S104:根據(jù)已存儲的Merkle樹中獲取根節(jié)點的值和所述目標(biāo)模塊在所述Merkle樹中對應(yīng)的驗證路徑,所述驗證路徑為所述目標(biāo)模塊對應(yīng)的葉節(jié)點到所述根節(jié)點所經(jīng)過的子節(jié)點的序列。
Merkle樹,用來同步數(shù)據(jù)一致性的算法,也稱為Merkle哈希樹,這是因為它所構(gòu)造的Merkle樹的所有節(jié)點都是哈希值。Merkle樹具有以下特點:
1)它是一種樹,可以是二叉樹,也可以多叉樹,無論是幾叉樹,它都具有樹結(jié)構(gòu)的所有特點;
2)Merkle樹的葉節(jié)點的值由設(shè)計你指定,如Merkle樹將數(shù)據(jù)的哈希值作為葉節(jié)點的值;
3)非葉節(jié)點的值是根據(jù)它下面所有的葉節(jié)點值,然后按照一定的算法計算而得出的。如Merkle樹的非葉節(jié)點的值的計算方法是將該節(jié)點的所有子節(jié)點進行組合,然后對組合結(jié)果進行哈希計算所得出的哈希值。
本發(fā)明實施例中,在車聯(lián)網(wǎng)設(shè)備安裝SSME模塊時,應(yīng)當(dāng)獲取每個SSME子模塊的哈希值,根據(jù)這些哈希值兩兩組合,繼續(xù)哈希,以此類推,直至計算出Merkle樹的根節(jié)點的哈希值,并存儲Merkle樹。也就是說,通過存儲的Merkle樹可獲得根節(jié)點的值和對應(yīng)的SSME子模塊的驗證路徑,對SSME子模塊的校驗信息進行存儲,若該SSME子模塊被篡改則對應(yīng)的校驗信息與存儲的校驗信息必然不匹配,從而對SSME子模塊進行校驗。
具體的:計算SSME模塊中各個SSME子模塊的哈希值作為所述Merkle樹的葉節(jié)點的值;將所述葉節(jié)點作為目標(biāo)節(jié)點,迭代執(zhí)行:將所述目標(biāo)節(jié)點不重復(fù)兩兩組合,遍歷得到的組合,對于遍歷到的目標(biāo)組合,計算目標(biāo)組合的哈希值作為所述目標(biāo)組合中的節(jié)點的父節(jié)點的值;在遍歷結(jié)束后,將所述父節(jié)點作為目標(biāo)節(jié)點;在所述父節(jié)點為根節(jié)點時,結(jié)束迭代;存儲所述Merkle樹。
如圖2所示的Merkle樹,每個SSME子模塊對應(yīng)一個葉節(jié)點,如葉節(jié)點1對應(yīng)于子模塊1,葉節(jié)點2對應(yīng)于子模塊2,葉節(jié)點n對應(yīng)于子模塊n。通過計算哈希函數(shù)得到葉節(jié)點的值,這些葉節(jié)點兩兩組合得到該葉節(jié)點的父節(jié)點,繼續(xù)執(zhí)行哈希,如葉節(jié)點1和葉節(jié)點2組合構(gòu)造父節(jié)點11,父節(jié)點11的值為葉節(jié)點1和葉節(jié)點2哈希計算得到的哈希值;葉節(jié)點3和葉節(jié)點4組合構(gòu)造父節(jié)點33,父節(jié)點33的值為葉節(jié)點3和葉節(jié)點4哈希計算得到的哈希值。將父節(jié)點2作為目標(biāo)節(jié)點,與父節(jié)點4構(gòu)造父節(jié)點111,則父節(jié)點111的值為父節(jié)點2和父節(jié)點4哈希計算得到的哈希值,再將父節(jié)點111作為目標(biāo)節(jié)點,以此類推,直至構(gòu)造Merkle樹的根節(jié)點,獲取該根節(jié)點的值和對應(yīng)的葉節(jié)點的驗證路徑。
驗證路徑為所述目標(biāo)模塊對應(yīng)的葉節(jié)點到所述根節(jié)點所經(jīng)過的子節(jié)點的序列。如圖2所示的Merkle樹中,假設(shè)子模塊1為目標(biāo)模塊,則子模塊1在Merkle樹中對應(yīng)的驗證路徑為父節(jié)點11、父節(jié)點111、……、父節(jié)點1…1。
需要說明的是,該SSME模塊的SSME子模塊的數(shù)量應(yīng)該是雙數(shù),則將所述SSME模塊劃分為2N個SSME子模塊,其中N為正整數(shù)。
為了確保存儲的位置是安全可靠的,將Merkle樹存儲于可信存儲區(qū)域,可以是安全芯片這種固定的硬件設(shè)備,也可以是可信執(zhí)行環(huán)境(Trusted Execution Environment,TEE)這種軟件環(huán)境。
步驟S106:將所述目標(biāo)校驗值迭代地與所述驗證路徑上的子節(jié)點值進行哈希得到校驗根值。
根據(jù)目標(biāo)校驗值和驗證路徑上的子節(jié)點值獲取校驗根值,具體的:將所述目標(biāo)校驗值作為第一哈希值;獲取所述目標(biāo)模塊對應(yīng)的葉節(jié)點的父節(jié)點作為目標(biāo)父節(jié)點,迭代執(zhí)行:將和所述目標(biāo)模塊對應(yīng)的葉節(jié)點組成目標(biāo)組合的子節(jié)點作為驗證節(jié)點,確定所述驗證節(jié)點的值作為第二哈希值;將所述第一哈希值和所述第二哈希值兩兩哈希得到所述目標(biāo)父節(jié)點的值作為第一哈希值,將所述目標(biāo)父節(jié)點的父節(jié)點作為目標(biāo)父節(jié)點;在所述目標(biāo)父節(jié)點為根節(jié)點時,結(jié)束迭代;將所述根節(jié)點的值作為所述校驗根值。
舉例來說,結(jié)合一個具體的實施例。如圖3所示,目標(biāo)模塊為子模塊3,子模塊3的驗證路徑為父節(jié)點22,通過步驟S104獲取的校驗值為121,則第一哈希值為121,將子模塊3對應(yīng)的葉節(jié)點3的父節(jié)點22作為目標(biāo)父節(jié)點,驗證節(jié)點為葉節(jié)點4,則第二哈希值為葉節(jié)點4的值122。通過第一哈希值121和第二哈希值122哈希得到目標(biāo)父節(jié)點的值為13;將父節(jié)點22的父節(jié)點作為目標(biāo)父節(jié)點,即此時的目標(biāo)父節(jié)點為根節(jié)點,第一哈希值為13,驗證節(jié)點為父節(jié)點11,則第二哈希值為父節(jié)點11的值12,通過第一哈希值13和第二哈希值12哈希得到目標(biāo)父節(jié)點的值為1。由于目標(biāo)父節(jié)點為根節(jié)點,則校驗根值為1。
需要注意的是,SSME模塊升級是必不可少的,當(dāng)SSME模塊升級完成后,應(yīng)當(dāng)同步更新所存儲的校驗信息,包括重新計算哈希值、重新計算Merkle樹,以及將重新計算結(jié)果更新所存儲的信息。
步驟S108:當(dāng)所述校驗根值與所述根節(jié)點的值匹配時,確定所述目標(biāo)模塊校驗通過。
當(dāng)校驗根值與根節(jié)點的值匹配時,說明目標(biāo)模塊所構(gòu)造的Merkle樹的校驗根值與存儲的Merkle樹的根節(jié)點的值一致,表示該目標(biāo)模塊沒有被修改,從而驗證SSME子模塊的完整性,提高了車聯(lián)網(wǎng)設(shè)備的可靠性和安全性。
舉例來說,如圖3所示,假設(shè)目標(biāo)模塊為子模塊3,已存儲的Merkle樹的根節(jié)點的值為1,通過步驟S106獲取校驗根值為1,則校驗根值與根節(jié)點的值匹配,子模塊3校驗通過,則子模塊3可以為車聯(lián)網(wǎng)設(shè)備內(nèi)其他模塊提供正確的數(shù)字證書相關(guān)信息。
為解決安全服務(wù)管理實體SSME模塊在被惡意軟件感染和控制后,提供錯誤的數(shù)字證書和相關(guān)信息導(dǎo)致車聯(lián)網(wǎng)設(shè)備出現(xiàn)安全問題,在一個實施例中,特提出了一種安全服務(wù)管理實體SSME模塊的校驗裝置。如圖4所示,上述安全服務(wù)管理實體SSME模塊的校驗裝置包括校驗值確定模塊102、參數(shù)獲取模塊104、校驗根值確定模塊106以及校驗結(jié)果處理模塊108,其中:
校驗值確定模塊102,用于確定待校驗的SSME子模塊作為目標(biāo)模塊,通過哈希函數(shù)生成所述目標(biāo)模塊的校驗值;
參數(shù)獲取模塊104,用于根據(jù)已存儲的Merkle樹中獲取根節(jié)點的值和所述目標(biāo)模塊在所述Merkle樹中對應(yīng)的驗證路徑,所述驗證路徑為所述目標(biāo)模塊對應(yīng)的葉節(jié)點到所述根節(jié)點所經(jīng)過的子節(jié)點的序列;
校驗根值確定模塊106,用于將所述目標(biāo)校驗值迭代地與所述驗證路徑上的子節(jié)點值進行哈希得到校驗根值;
校驗結(jié)果處理模塊108,用于當(dāng)所述校驗根值與所述根節(jié)點的值匹配時,確定所述目標(biāo)模塊校驗通過。
在其中一個實施例中,所述校驗根值確定模塊106還用于將所述目標(biāo)校驗值作為第一哈希值;獲取所述目標(biāo)模塊對應(yīng)的葉節(jié)點的父節(jié)點作為目標(biāo)父節(jié)點,迭代執(zhí)行:將和所述目標(biāo)模塊對應(yīng)的葉節(jié)點組成目標(biāo)組合的子節(jié)點作為驗證節(jié)點,確定所述驗證節(jié)點的值作為第二哈希值;將所述第一哈希值和所述第二哈希值兩兩哈希得到所述目標(biāo)父節(jié)點的值作為第一哈希值,將所述目標(biāo)父節(jié)點的父節(jié)點作為目標(biāo)父節(jié)點;在所述目標(biāo)父節(jié)點為根節(jié)點時,結(jié)束迭代;將所述根節(jié)點的值作為所述校驗根值。
在其中一個實施例中,所述裝置還包括存儲模塊110,用于計算SSME模塊中各個SSME子模塊的哈希值作為所述Merkle樹的葉節(jié)點的值;將所述葉節(jié)點作為目標(biāo)節(jié)點,迭代執(zhí)行:將所述目標(biāo)節(jié)點不重復(fù)兩兩組合,遍歷得到的組合,對于遍歷到的目標(biāo)組合,計算目標(biāo)組合的哈希值作為所述目標(biāo)組合中的節(jié)點的父節(jié)點的值;在遍歷結(jié)束后,將所述父節(jié)點作為目標(biāo)節(jié)點;在所述父節(jié)點為根節(jié)點時,結(jié)束迭代;存儲所述Merkle樹。
在其中一個實施例中,所述裝置還包括檢測執(zhí)行模塊1102,用于當(dāng)所述SSME模塊安裝完成或所述SSME模塊升級完成后,調(diào)用所述存儲模塊。
在其中一個實施例中,所述存儲模塊110還用于將所述SSME模塊劃分為2N個SSME子模塊,其中N為正整數(shù)。
實施本發(fā)明實施例,將具有如下有益效果:
采用了上述的安全服務(wù)管理實體SSME模塊的校驗方法及裝置之后,當(dāng)確定待校驗的SSME子模塊為目標(biāo)模塊之后,通過哈希函數(shù)生成目標(biāo)模塊對應(yīng)的校驗值,根據(jù)已存儲的Merkle樹獲取根節(jié)點的值和目標(biāo)模塊在所述Merkle樹中對應(yīng)的葉節(jié)點的驗證路徑,然后將所述目標(biāo)校驗值迭代地與所述驗證路徑上的子節(jié)點值進行哈希得到校驗根值,判斷校驗根值是否與根節(jié)點的值匹配,若是,則目標(biāo)模塊校驗通過。由于存儲的Merkle樹的根節(jié)點的值是在安裝或升級SSME模塊后,根據(jù)SSME子模塊對應(yīng)的葉節(jié)點生成的,因此通過對比校驗根值和根節(jié)點的值則能驗證SSME子模塊的完整性,從而提高車聯(lián)網(wǎng)設(shè)備的可靠性和安全性。
在一個實施例中,如圖5所示,圖5展示了一種運行安全服務(wù)管理實體SSME模塊的校驗方法的基于馮諾依曼體系的計算機系統(tǒng)的終端。該計算機系統(tǒng)可以是汽車等車聯(lián)網(wǎng)設(shè)備,也可以是路邊單元等接入車聯(lián)網(wǎng)的設(shè)備。具體的,可包括通過系統(tǒng)總線連接的外部輸入接口1001、處理器1002、存儲器1003和輸出接口1004。其中,外部輸入接口1001可選的可至少包括網(wǎng)絡(luò)接口10012。存儲器1003可包括外存儲器10032(例如硬盤、光盤或軟盤等)和內(nèi)存儲器10034。輸出接口1004可至少包括顯示屏10042等設(shè)備。
在本實施例中,本方法的運行基于計算機程序,該計算機程序的程序文件存儲于前述基于馮諾依曼體系的計算機系統(tǒng)的外存儲器10032中,在運行時被加載到內(nèi)存儲器10034中,然后被編譯為機器碼之后傳遞至處理器1002中執(zhí)行,從而使得基于馮諾依曼體系的計算機系統(tǒng)中形成邏輯上的校驗值確定模塊102、參數(shù)獲取模塊104、校驗根值確定模塊106、校驗結(jié)果處理模塊108、存儲模塊110以及檢測執(zhí)行模塊1102。且在上述安全服務(wù)管理實體SSME模塊的校驗方法執(zhí)行過程中,輸入的參數(shù)均通過外部輸入接口1001接收,并傳遞至存儲器1003中緩存,然后輸入到處理器1002中進行處理,處理的結(jié)果數(shù)據(jù)或緩存于存儲器1003中進行后續(xù)地處理,或被傳遞至輸出接口1004進行輸出。
具體的,上述處理器1002用于確定待校驗的SSME子模塊作為目標(biāo)模塊,通過哈希函數(shù)生成所述目標(biāo)模塊的校驗值;根據(jù)已存儲的Merkle樹中獲取根節(jié)點的值和所述目標(biāo)模塊在所述Merkle樹中對應(yīng)的驗證路徑,所述驗證路徑為所述目標(biāo)模塊對應(yīng)的葉節(jié)點到所述根節(jié)點所經(jīng)過的子節(jié)點的序列;將所述目標(biāo)校驗值迭代地與所述驗證路徑上的子節(jié)點值進行哈希得到校驗根值;當(dāng)所述校驗根值與所述根節(jié)點的值匹配時,確定所述目標(biāo)模塊校驗通過。
在可選實施例中,在上述處理器1002還用于將所述目標(biāo)校驗值作為第一哈希值;獲取所述目標(biāo)模塊對應(yīng)的葉節(jié)點的父節(jié)點作為目標(biāo)父節(jié)點,迭代執(zhí)行:將和所述目標(biāo)模塊對應(yīng)的葉節(jié)點組成目標(biāo)組合的子節(jié)點作為驗證節(jié)點,確定所述驗證節(jié)點的值作為第二哈希值;將所述第一哈希值和所述第二哈希值兩兩哈希得到所述目標(biāo)父節(jié)點的值作為第一哈希值,將所述目標(biāo)父節(jié)點的父節(jié)點作為目標(biāo)父節(jié)點;在所述目標(biāo)父節(jié)點為根節(jié)點時,結(jié)束迭代;將所述根節(jié)點的值作為所述校驗根值。
在可選實施例中,在上述存儲器1003用于計算SSME模塊中各個SSME子模塊的哈希值作為所述Merkle樹的葉節(jié)點的值;將所述葉節(jié)點作為目標(biāo)節(jié)點,迭代執(zhí)行:將所述目標(biāo)節(jié)點不重復(fù)兩兩組合,遍歷得到的組合,對于遍歷到的目標(biāo)組合,計算目標(biāo)組合的哈希值作為所述目標(biāo)組合中的節(jié)點的父節(jié)點的值;在遍歷結(jié)束后,將所述父節(jié)點作為目標(biāo)節(jié)點;在所述父節(jié)點為根節(jié)點時,結(jié)束迭代;存儲所述Merkle樹。
在可選實施例中,在上述處理器1002還用于當(dāng)所述SSME模塊安裝完成或所述SSME模塊升級完成后,調(diào)用所述存儲模塊。
在可選實施例中,在上述存儲器1003還用于將所述SSME模塊劃分為2N個SSME子模塊,其中N為正整數(shù)。
以上所揭露的僅為本發(fā)明較佳實施例而已,當(dāng)然不能以此來限定本發(fā)明之權(quán)利范圍,因此依本發(fā)明權(quán)利要求所作的等同變化,仍屬本發(fā)明所涵蓋的范圍。