發(fā)送E⑶生成MAC表的過程相同,再次不在詳述。
[0118]另外,本發(fā)明的另一個(gè)實(shí)施例中提供一種網(wǎng)關(guān)生成MAC表的不意圖。
[0119]圖4不出了本發(fā)明的實(shí)施例的網(wǎng)關(guān)生成MAC表的不意圖。
[0120]參照?qǐng)D4,本發(fā)明的實(shí)施例中,數(shù)據(jù)通信過程中,網(wǎng)關(guān)也參與數(shù)據(jù)幀的接收和發(fā)送,因此,網(wǎng)關(guān)同樣生成MAC表對(duì)數(shù)據(jù)幀進(jìn)行認(rèn)證,其生成MAC表的過程如下:
[0121]第六隨機(jī)序列生成器g6根據(jù)第一隨機(jī)序列rl和第六種子密鑰k6生成第六隨機(jī)序列r6,然后將第一隨機(jī)序列rl與第六隨機(jī)序列r6進(jìn)行異或計(jì)算生成MAC表,其中,第一隨機(jī)序列rl對(duì)第六隨機(jī)序列生成器g6的控制方式為:如果rl中正在進(jìn)行異或運(yùn)算的位與前一位相同,那么g6中的狀態(tài)值增加1,否則,g6的狀態(tài)值不變。。
[0122]在本發(fā)明的實(shí)施例中,網(wǎng)關(guān)和E⑶中生成的MAC表相同,并且同步計(jì)數(shù)器的值也是同步的,從而在進(jìn)行認(rèn)證時(shí),根據(jù)接收的數(shù)據(jù)幀中的MAC對(duì)應(yīng)的發(fā)送ECU的計(jì)數(shù)器值,查找自身的MAC表中相同的計(jì)數(shù)器值對(duì)應(yīng)的MAC,然后判斷二者是否相同,如果相同,則判斷該數(shù)據(jù)幀為安全,否則判斷為非法幀,可以拒絕接收該數(shù)據(jù)幀,或者也可以通過設(shè)置報(bào)警單元報(bào)警該數(shù)據(jù)幀為非法幀。
[0123]本發(fā)明的基于廣播的CAN總線認(rèn)證方法及系統(tǒng),通過在網(wǎng)關(guān)和E⑶中生成相同的MAC表,并在數(shù)據(jù)通信過程中在數(shù)據(jù)幀中加入MAC,網(wǎng)關(guān)和ECU對(duì)接收的數(shù)據(jù)幀的MAC與自身的MAC進(jìn)行認(rèn)證,可以判斷該數(shù)據(jù)幀是否為安全,從而可以防御外界對(duì)CAN總線的攻擊。同時(shí),本申請(qǐng)中網(wǎng)關(guān)通過廣播的方式將加密序列發(fā)送到各個(gè)E⑶,提高了認(rèn)證效率,另外,本申請(qǐng)的方法計(jì)算復(fù)雜度低,延時(shí)小,并能夠高效地實(shí)現(xiàn)對(duì)數(shù)據(jù)幀的認(rèn)證,具有較好的安全性。
[0124] 雖然結(jié)合附圖描述了本發(fā)明的實(shí)施方式,但是本領(lǐng)域技術(shù)人員可以在不脫離本發(fā)明的精神和范圍的情況下做出各種修改和變型,這樣的修改和變型均落入由所附權(quán)利要求所限定的范圍之內(nèi)。
【主權(quán)項(xiàng)】
1.一種基于廣播的CAN總線認(rèn)證方法,其特征在于,所述方法包括: 51、對(duì)當(dāng)前啟動(dòng)的所有電子控制單元進(jìn)行完整性驗(yàn)證,并為網(wǎng)關(guān)和通過完整性驗(yàn)證的電子控制單元分配種子密鑰; 52、所述網(wǎng)關(guān)根據(jù)所述種子密鑰生成加密序列,并將所述加密序列廣播發(fā)送到所述通過完整性驗(yàn)證的電子控制單元; 53、所述網(wǎng)關(guān)和所述通過完整性驗(yàn)證的電子控制單元根據(jù)所述加密序列分別生成相同的消息認(rèn)證碼表和同步計(jì)數(shù)器,計(jì)數(shù)器值初始化為O ; 54、所述通過完整性驗(yàn)證的電子控制單元中的發(fā)送電子控制單元在發(fā)送數(shù)據(jù)幀時(shí),在所述數(shù)據(jù)幀的數(shù)據(jù)域附上所述發(fā)送電子控制單元的計(jì)數(shù)器的值對(duì)應(yīng)的消息認(rèn)證碼; 55、所述通過完整性驗(yàn)證的電子控制單元中的接收電子控制單元和所述網(wǎng)關(guān)接收附有消息認(rèn)證碼的數(shù)據(jù)幀時(shí),判斷所述數(shù)據(jù)幀中的消息認(rèn)證碼與自身的計(jì)數(shù)器值對(duì)應(yīng)的消息認(rèn)證碼表中的消息認(rèn)證碼是否相同; 56、是則判定所述數(shù)據(jù)幀安全;否則判斷所述數(shù)據(jù)幀為非法幀; 57、將所述發(fā)送電子控制單元、網(wǎng)關(guān)和接收電子控制單元的計(jì)數(shù)器的值加1,并判斷所述發(fā)送電子控制單元、網(wǎng)關(guān)和接收電子控制單元的計(jì)數(shù)器的值是否超過預(yù)定的閾值; 58、是則返回步驟S2,重新生成消息認(rèn)證碼表;否則返回步驟S4,進(jìn)行下一個(gè)數(shù)據(jù)幀的通信。
2.根據(jù)權(quán)利要求1所述的CAN總線認(rèn)證方法,其特征在于,所述步驟S2具體包括: 所述網(wǎng)關(guān)生成隨機(jī)序列,在所述種子密鑰的控制下生成偽隨機(jī)序列,并將所述偽隨機(jī)序列和所述隨機(jī)序列進(jìn)行異或計(jì)算生成加密序列。 將所述加密序列廣播發(fā)送到所述通過完整性驗(yàn)證的電子控制單元。
3.一種基于廣播的CAN總線認(rèn)證系統(tǒng),其特征在于,所述系統(tǒng)包括: 網(wǎng)關(guān),用于生成加密序列,并進(jìn)行廣播發(fā)送; 多個(gè)電子控制單元,用于接收所述網(wǎng)關(guān)的加密序列并生成消息認(rèn)證碼表和同步計(jì)數(shù)器,并在進(jìn)行數(shù)據(jù)通信時(shí)根據(jù)所述消息認(rèn)證碼表和所述同步計(jì)數(shù)器判斷所述數(shù)據(jù)通信是否安全。
4.根據(jù)權(quán)利要求3所述的CAN總線認(rèn)證系統(tǒng),其特征在于,所述系統(tǒng)還包括驗(yàn)證單元,用于對(duì)所述電子控制單元進(jìn)行完整性驗(yàn)證,并為所述網(wǎng)關(guān)和通過完整性驗(yàn)證的電子控制單元分配種子密鑰。
5.根據(jù)權(quán)利要求4所述的CAN總線認(rèn)證系統(tǒng),其特征在于,其中,所述網(wǎng)關(guān)包括: 第一種子密鑰接收器,用于接收所述驗(yàn)證單元分配的種子密鑰; 第一偽隨機(jī)序列生成器,用于根據(jù)所述種子密鑰生成第一偽隨機(jī)序列; 第一隨機(jī)序列生成器,用于生成第一隨機(jī)序列; 第一異或計(jì)算器,用于將所述第一偽隨機(jī)序列與所述第一隨機(jī)序列進(jìn)行異或計(jì)算生成加密序列; 第一計(jì)數(shù)器生成器,用于生成第一同步計(jì)數(shù)器值,實(shí)現(xiàn)與所述電子控制單元計(jì)數(shù)器值的同步。
6.根據(jù)權(quán)利要求4所述的CAN總線認(rèn)證系統(tǒng),其特征在于,所述電子控制單元包括發(fā)送電子控制單元和接收電子控制單元。
7.根據(jù)權(quán)利要求6所述的CAN總線認(rèn)證系統(tǒng),其特征在于,所述發(fā)送電子控制單元具體包括: 第二種子密鑰接收器,用于接收所述驗(yàn)證單元分配的第二種子密鑰; 第三種子密鑰接收器,用于接收所述驗(yàn)證單元分配的第三種子密鑰; 第二偽隨機(jī)序列生成器,用于根據(jù)所述第二種子密鑰生成第二偽隨機(jī)序列; 第二異或計(jì)算器,用于將接收的加密序列與所述第二偽隨機(jī)序列進(jìn)行異或計(jì)算,生成第二隨機(jī)序列; 第三隨機(jī)序列生成器,用于根據(jù)所述第三種子密鑰和所述第二隨機(jī)序列生成第三隨機(jī)序列; 第三異或計(jì)算器,用于將所述第二隨機(jī)序列與所述第三隨機(jī)序列進(jìn)行異或計(jì)算,生成消息認(rèn)證碼表; 第二計(jì)數(shù)器生成器,用于生成第二同步計(jì)數(shù)器值,實(shí)現(xiàn)與所述網(wǎng)關(guān)和所述接收電子控制單元計(jì)數(shù)器值的同步。 數(shù)據(jù)發(fā)送單元,用于為通信的數(shù)據(jù)幀附上與生成的所述第二同步計(jì)數(shù)器的值對(duì)應(yīng)的消息認(rèn)證碼,并對(duì)附上所述消息認(rèn)證碼的數(shù)據(jù)幀進(jìn)行發(fā)送。
8.根據(jù)權(quán)利要求6所述的CAN總線認(rèn)證系統(tǒng),其特征在于,所述接收電子控制單元具體包括: 第四種子密鑰接收器,用于接收所述驗(yàn)證單元分配的第四種子密鑰; 第五種子密鑰接收器,用于接收所述驗(yàn)證單元分配的第五種子密鑰; 第四偽隨機(jī)序列生成器,用于根據(jù)所述第四種子密鑰生成第四偽隨機(jī)序列; 第四異或計(jì)算器,用于將接收的加密序列與所述第四偽隨機(jī)序列進(jìn)行異或計(jì)算,生成第四隨機(jī)序列; 第五隨機(jī)序列生成器,用于根據(jù)所述第五種子密鑰和所述第四隨機(jī)序列生成第五隨機(jī)序列; 第五異或計(jì)算器,用于將所述第四隨機(jī)序列與所述第五隨機(jī)序列進(jìn)行異或計(jì)算,生成消息認(rèn)證碼表; 第三計(jì)數(shù)器生成器,用于生成第三同步計(jì)數(shù)器值,實(shí)現(xiàn)與所述發(fā)送電子控制單元計(jì)數(shù)器值的同步。 第一數(shù)據(jù)接收單元,用于接收數(shù)據(jù)幀,并判斷所述數(shù)據(jù)幀中的消息認(rèn)證碼與自身的計(jì)數(shù)器值對(duì)應(yīng)的消息認(rèn)證碼表中的消息認(rèn)證碼是否相同,若相同則判斷該數(shù)據(jù)幀為安全幀,否則為非法幀。
9.根據(jù)權(quán)利要求5所述的CAN總線認(rèn)證系統(tǒng),其特征在于,所述網(wǎng)關(guān)還包括: 第六種子密鑰接收器,用于接收所述驗(yàn)證單元分配的第六種子密鑰; 第六隨機(jī)序列生成器,用于根據(jù)所述第六種子密鑰和所述第一隨機(jī)序列生成第六隨機(jī)序列; 第六異或計(jì)算器,用于將所述第一隨機(jī)序列與所述第六隨機(jī)序列進(jìn)行異或計(jì)算,生成消息認(rèn)證碼表; 第二數(shù)據(jù)接收單元,用于接收數(shù)據(jù)幀,并判斷接收的數(shù)據(jù)幀中的消息認(rèn)證碼與自身的計(jì)數(shù)器值對(duì)應(yīng)的消息認(rèn)證碼表中的消息認(rèn)證碼是否相同,若相同則判斷所述數(shù)據(jù)幀為安全幀,否則為非法幀。
【專利摘要】本發(fā)明涉及一種基于廣播的CAN總線認(rèn)證方法及系統(tǒng),該方法包括:對(duì)所有電子控制單元ECU進(jìn)行完整性驗(yàn)證,為網(wǎng)關(guān)和通過驗(yàn)證的ECU分配種子密鑰;網(wǎng)關(guān)生成加密序列,廣播發(fā)送到通過驗(yàn)證的ECU;網(wǎng)關(guān)和通過驗(yàn)證的ECU生成相同的消息認(rèn)證碼MAC表和同步計(jì)數(shù)器,計(jì)數(shù)器值初始化為0;發(fā)送ECU在發(fā)送數(shù)據(jù)幀的數(shù)據(jù)域附上其計(jì)數(shù)器的值對(duì)應(yīng)的MAC;網(wǎng)關(guān)和接收ECU判斷數(shù)據(jù)幀中的MAC與自身的計(jì)數(shù)器值對(duì)應(yīng)的MAC表中的MAC是否相同;是則判定數(shù)據(jù)幀安全;否則為非法幀;將發(fā)送ECU、網(wǎng)關(guān)和接收ECU的計(jì)數(shù)器的值加1,判斷發(fā)送ECU、網(wǎng)關(guān)和接收ECU的計(jì)數(shù)器的值是否超過預(yù)定的閾值;是則重新生成MAC表;否則進(jìn)行下一幀通信,進(jìn)行下一個(gè)數(shù)據(jù)幀的通信。本發(fā)明通過在通信的數(shù)據(jù)幀中加入消息認(rèn)證碼,可以防御對(duì)CAN總線的攻擊。
【IPC分類】H04L12-40, H04L9-32
【公開號(hào)】CN104767618
【申請(qǐng)?zhí)枴緾N201510158954
【發(fā)明人】王劍, 張子鍵, 袁堅(jiān)
【申請(qǐng)人】清華大學(xué)
【公開日】2015年7月8日
【申請(qǐng)日】2015年4月3日