本發(fā)明涉及信息安全,尤其是指面向智能電網(wǎng)場(chǎng)景下的網(wǎng)絡(luò)節(jié)點(diǎn)認(rèn)證及密鑰交換協(xié)議方法。
背景技術(shù):
1、在智能電網(wǎng)中,從發(fā)電、輸電、配電到用電的每一個(gè)環(huán)節(jié)都連接著大量的電力設(shè)備和電網(wǎng)用戶。電表讀數(shù)、用戶服務(wù)信息和系統(tǒng)控制命令等數(shù)據(jù)通過(guò)智能電網(wǎng)的通信系統(tǒng)進(jìn)行傳輸。然而,這些數(shù)據(jù)在傳輸過(guò)程中并不是絕對(duì)安全的。類似于互聯(lián)網(wǎng)或傳統(tǒng)電話網(wǎng)絡(luò),智能電網(wǎng)的通信系統(tǒng)也面臨著來(lái)自攻擊者的重放攻擊、流量分析和拒絕服務(wù)攻擊等威脅與干擾。另一方面,并非所有電力設(shè)備或電網(wǎng)用戶都絕對(duì)可信。智能電網(wǎng)需要驗(yàn)證系統(tǒng)中電力設(shè)備或電網(wǎng)用戶是否真正擁有其聲稱的合法身份,以確保電力設(shè)備的穩(wěn)定運(yùn)行、電網(wǎng)系統(tǒng)的安全可靠以及合法用戶的經(jīng)濟(jì)利益。
2、在進(jìn)行節(jié)點(diǎn)認(rèn)證或通信時(shí),若存在主密鑰已經(jīng)被攻擊破解的情況,現(xiàn)有技術(shù)往往缺乏有效的抵御手段,導(dǎo)致會(huì)話密鑰被破解,通信數(shù)據(jù)被竊??;同時(shí),由于部分智能電網(wǎng)通信協(xié)議缺乏強(qiáng)有力的節(jié)點(diǎn)認(rèn)證機(jī)制,并且數(shù)據(jù)包中缺乏時(shí)間戳字段,電網(wǎng)設(shè)備無(wú)法確認(rèn)消息的來(lái)源和新鮮度。因此,攻擊者可以簡(jiǎn)單地將之前嗅探到的合法數(shù)據(jù)包在后續(xù)的某個(gè)時(shí)間點(diǎn)重新發(fā)送,從而實(shí)施重放攻擊。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明的目的是克服現(xiàn)有技術(shù)中的智能電網(wǎng)的節(jié)點(diǎn)認(rèn)證存在安全隱患,密鑰容易被破解導(dǎo)致進(jìn)行數(shù)據(jù)通信安全性較低的缺陷,提供一種面向智能電網(wǎng)場(chǎng)景下的網(wǎng)絡(luò)節(jié)點(diǎn)認(rèn)證及密鑰交換協(xié)議方法。
2、本發(fā)明的目的是通過(guò)下述技術(shù)方案予以實(shí)現(xiàn):
3、面向智能電網(wǎng)場(chǎng)景下的網(wǎng)絡(luò)節(jié)點(diǎn)認(rèn)證及密鑰交換協(xié)議方法,包括以下步驟:
4、系統(tǒng)初始化,為接入節(jié)點(diǎn)生成主密鑰,為每個(gè)匯聚節(jié)點(diǎn)生成身份標(biāo)識(shí);?匯聚節(jié)點(diǎn)將自己的身份標(biāo)識(shí)打包成請(qǐng)求發(fā)送至接入節(jié)點(diǎn),接入節(jié)點(diǎn)收到請(qǐng)求后,生成第一隨機(jī)數(shù)和匯聚節(jié)點(diǎn)密鑰,然后通過(guò)主密鑰、第一隨機(jī)數(shù)和匯聚節(jié)點(diǎn)密鑰通過(guò)加密計(jì)算生成中間密鑰和身份認(rèn)證參數(shù),并將中間密鑰和身份認(rèn)證參數(shù)發(fā)送至匯聚節(jié)點(diǎn);
5、匯聚節(jié)點(diǎn)和接入節(jié)點(diǎn)之間進(jìn)行節(jié)點(diǎn)認(rèn)證,包括:
6、步驟a1,匯聚節(jié)點(diǎn)生成第二隨機(jī)數(shù),并根據(jù)中間密鑰、第二隨機(jī)數(shù)和匯聚節(jié)點(diǎn)消息序列號(hào)通過(guò)加密計(jì)算生成掩碼和匯聚節(jié)點(diǎn)認(rèn)證信息,然后更新匯聚節(jié)點(diǎn)消息序列號(hào),并將掩碼、匯聚節(jié)點(diǎn)認(rèn)證信息和匯聚節(jié)點(diǎn)消息序列號(hào)作為密鑰中間變量打包發(fā)送至接入節(jié)點(diǎn),請(qǐng)求接入節(jié)點(diǎn)進(jìn)行認(rèn)證;
7、步驟a2,接入節(jié)點(diǎn)接收到密鑰中間變量后對(duì)密鑰中間變量進(jìn)行還原,得到第二隨機(jī)數(shù)和接入節(jié)點(diǎn)消息序列號(hào),然后計(jì)算接入節(jié)點(diǎn)認(rèn)證信息,若匯聚認(rèn)證信息和接入節(jié)點(diǎn)認(rèn)證信息數(shù)值相等且接入節(jié)點(diǎn)消息序列號(hào)的數(shù)字在預(yù)設(shè)的閾值范圍內(nèi),接入節(jié)點(diǎn)與匯聚節(jié)點(diǎn)的節(jié)點(diǎn)認(rèn)證通過(guò),然后更新接入節(jié)點(diǎn)消息序列號(hào);
8、步驟a3,根據(jù)第二隨機(jī)數(shù)、匯聚節(jié)點(diǎn)消息序列號(hào)、匯聚節(jié)點(diǎn)密鑰、身份認(rèn)證參數(shù)和主密鑰進(jìn)行加密計(jì)算得到會(huì)話密鑰。
9、本方案中,在智能電網(wǎng)場(chǎng)景下,接入節(jié)點(diǎn)與若干個(gè)匯聚節(jié)點(diǎn)進(jìn)行通信,而每個(gè)匯聚節(jié)點(diǎn)又與若個(gè)傳感節(jié)點(diǎn)進(jìn)行通信,接入節(jié)點(diǎn)是中心服務(wù)器,而傳感節(jié)點(diǎn)是通信終端。接入節(jié)點(diǎn)負(fù)責(zé)驗(yàn)證匯聚節(jié)點(diǎn)的身份,接入節(jié)點(diǎn)存儲(chǔ)有主密鑰,主密鑰為后續(xù)的認(rèn)證過(guò)程提供最基礎(chǔ)的安全保障,也是一切認(rèn)證安全性的基礎(chǔ)。匯聚節(jié)點(diǎn)是中間節(jié)點(diǎn),負(fù)責(zé)將內(nèi)網(wǎng)中的傳感節(jié)點(diǎn)的數(shù)據(jù)進(jìn)行匯總并傳遞給接入節(jié)點(diǎn),同時(shí)也負(fù)責(zé)接收來(lái)自接入節(jié)點(diǎn)的指令或數(shù)據(jù),在分發(fā)給內(nèi)網(wǎng)中的傳感節(jié)點(diǎn)。本方案的設(shè)計(jì),在接入節(jié)點(diǎn)和匯聚節(jié)點(diǎn)進(jìn)行通信時(shí)主密鑰不會(huì)傳輸,而是通過(guò)以主密鑰與第一隨機(jī)數(shù)和匯聚節(jié)點(diǎn)密鑰以加密的方式進(jìn)行傳輸,因此通信通道即使被竊聽也無(wú)法還原關(guān)鍵信息。同時(shí),由于隨機(jī)數(shù)在每次進(jìn)行驗(yàn)證時(shí)均不同,因此以隨機(jī)數(shù)生成的中間密鑰即使被竊取也無(wú)法進(jìn)行還原,且生成隨機(jī)數(shù)的載體,例如第一隨機(jī)數(shù)對(duì)應(yīng)的接入節(jié)點(diǎn),第二隨機(jī)數(shù)對(duì)應(yīng)的匯聚節(jié)點(diǎn)在使用過(guò)隨機(jī)數(shù)進(jìn)行加密計(jì)算后均不會(huì)對(duì)使用過(guò)的隨機(jī)數(shù)進(jìn)行存儲(chǔ),因此,即使有攻擊攻破獲取了接入節(jié)點(diǎn)或匯聚節(jié)點(diǎn)內(nèi)的存儲(chǔ)信息,也無(wú)法獲取以往生成的隨機(jī)數(shù),因此本方案的設(shè)計(jì)有效降低了短期密鑰泄漏的可能性。
10、作為優(yōu)選,面向智能電網(wǎng)場(chǎng)景下的網(wǎng)絡(luò)節(jié)點(diǎn)認(rèn)證及密鑰交換協(xié)議方法還包括匯聚節(jié)點(diǎn)和傳感節(jié)點(diǎn)之間進(jìn)行節(jié)點(diǎn)認(rèn)證,包括:
11、步驟b1,為每個(gè)傳感節(jié)點(diǎn)生成傳感節(jié)點(diǎn)密鑰和身份識(shí)別符;
12、步驟b2,匯聚節(jié)點(diǎn)生成第三隨機(jī)數(shù),然后根據(jù)第三隨機(jī)數(shù)和身份識(shí)別符進(jìn)行加密計(jì)算生成加密認(rèn)證數(shù)值,并將第三隨機(jī)數(shù)和匯聚節(jié)點(diǎn)加密認(rèn)證數(shù)值發(fā)送至傳感節(jié)點(diǎn);
13、步驟b3,傳感節(jié)點(diǎn)收到第三隨機(jī)數(shù)和匯聚節(jié)點(diǎn)加密認(rèn)證數(shù)值后,根據(jù)第三隨機(jī)數(shù)和自身的身份識(shí)別符計(jì)算傳感節(jié)點(diǎn)加密認(rèn)證數(shù)值,判斷匯聚節(jié)點(diǎn)加密認(rèn)證數(shù)值和傳感節(jié)點(diǎn)加密認(rèn)證數(shù)值是否相等,若相等,則傳感節(jié)點(diǎn)生成第四隨機(jī)數(shù),并將第三隨機(jī)數(shù)、第四隨機(jī)數(shù)以及自身的傳感節(jié)點(diǎn)密鑰組合后進(jìn)行加密計(jì)算得到傳感節(jié)點(diǎn)加密認(rèn)證數(shù)值分片,然后將第四隨機(jī)數(shù)、傳感節(jié)點(diǎn)加密認(rèn)證數(shù)值分片和打包后發(fā)送至匯聚節(jié)點(diǎn)作為相應(yīng);
14、步驟b4,匯聚節(jié)點(diǎn)收到相應(yīng)后根據(jù)第三隨機(jī)數(shù)、第四隨機(jī)數(shù)進(jìn)行加密計(jì)算得到匯聚節(jié)點(diǎn)加密認(rèn)證數(shù)值分片,然后判斷匯聚節(jié)點(diǎn)加密認(rèn)證數(shù)值分片和傳感節(jié)點(diǎn)加密認(rèn)證數(shù)值分片是否相同,如果相同則證明傳感節(jié)點(diǎn)合法,匯聚節(jié)點(diǎn)和傳感節(jié)點(diǎn)之間的節(jié)點(diǎn)認(rèn)證通過(guò)。
15、在匯聚節(jié)點(diǎn)和傳感節(jié)點(diǎn)的認(rèn)證流程中,匯聚節(jié)點(diǎn)需要驗(yàn)證匯聚節(jié)點(diǎn)加密認(rèn)證數(shù)值分片和傳感節(jié)點(diǎn)加密認(rèn)證數(shù)值分片是否相等來(lái)對(duì)傳感節(jié)點(diǎn)進(jìn)行認(rèn)證,由于傳感節(jié)點(diǎn)加密認(rèn)證數(shù)值分片的計(jì)算過(guò)程中用到了傳感節(jié)點(diǎn)密鑰,而合法的傳感節(jié)點(diǎn)密鑰只有在可信環(huán)境下完成注冊(cè)的節(jié)點(diǎn)才能獲得,因此可以認(rèn)為認(rèn)證的過(guò)程是合法的。
16、由于在匯聚節(jié)點(diǎn)和傳感節(jié)點(diǎn)的認(rèn)證流程中使用了第三隨機(jī)數(shù)和第四隨機(jī)數(shù),在第一隨機(jī)數(shù)倍重放發(fā)送的情況下,認(rèn)證的隨機(jī)性仍然可以由第四隨機(jī)數(shù)保證,因此具備了抵御重放攻擊的能力。
17、作為優(yōu)選,在匯聚節(jié)點(diǎn)和接入節(jié)點(diǎn)之間進(jìn)行節(jié)點(diǎn)認(rèn)證通過(guò)后,還對(duì)匯聚節(jié)點(diǎn)密鑰進(jìn)行更新,具體為:
18、根據(jù)第二隨機(jī)數(shù)、匯聚節(jié)點(diǎn)消息序列號(hào)、匯聚節(jié)點(diǎn)密鑰、身份認(rèn)證參數(shù)和主密鑰進(jìn)行加密計(jì)算得到會(huì)話密鑰,根據(jù)會(huì)話密鑰得到密鑰更新認(rèn)證參數(shù);
19、接入節(jié)點(diǎn)生成第五隨機(jī)數(shù)并生成一個(gè)新的匯聚節(jié)點(diǎn)密鑰,然后接入節(jié)點(diǎn)更新中間密鑰和掩碼,并將更新的掩碼發(fā)送至匯聚節(jié)點(diǎn);
20、匯聚節(jié)點(diǎn)收到掩碼后還原出新的匯聚節(jié)點(diǎn)密鑰,并根據(jù)匯聚節(jié)點(diǎn)密鑰計(jì)算得到會(huì)話密鑰,根據(jù)會(huì)話密鑰到密鑰更新認(rèn)證參數(shù),判斷接入節(jié)點(diǎn)生成的密鑰更新認(rèn)證參數(shù)和匯聚節(jié)點(diǎn)生成的密鑰更新認(rèn)證參數(shù)是否相同,若相同,則將匯聚節(jié)點(diǎn)密鑰進(jìn)行更新。
21、本方案的設(shè)計(jì),確保了認(rèn)證的前向安全性,協(xié)議的前向安全性是指在長(zhǎng)期使用的主密鑰泄漏的情況下也不會(huì)導(dǎo)致過(guò)去使用的會(huì)話密鑰泄漏,在本方案中,前向安全性即為即使主密鑰泄漏也不會(huì)導(dǎo)致使用過(guò)會(huì)話密鑰被攻擊者獲取,由于在計(jì)算會(huì)話密鑰時(shí)用到了中間密鑰和第二隨機(jī)數(shù),這兩個(gè)參數(shù)會(huì)隨著每次認(rèn)證成功后動(dòng)態(tài)的更新,而攻擊者獲取到主密鑰后并不能推斷出中間密鑰和第二隨機(jī)數(shù)的具體值,也就無(wú)法得到會(huì)話密鑰。
22、同時(shí),本方案的設(shè)計(jì)實(shí)現(xiàn)了匯聚節(jié)點(diǎn)對(duì)接入節(jié)點(diǎn)的反向認(rèn)證,該認(rèn)證過(guò)程通過(guò)驗(yàn)證接入節(jié)點(diǎn)生成的密鑰更新認(rèn)證參數(shù)和匯聚節(jié)點(diǎn)生成的密鑰更新認(rèn)證參數(shù)是否相等來(lái)實(shí)現(xiàn):接入節(jié)點(diǎn)處理完成匯聚節(jié)點(diǎn)的認(rèn)證請(qǐng)求后會(huì)向匯聚節(jié)點(diǎn)返回認(rèn)證響應(yīng),結(jié)合響應(yīng)中包含的密鑰信息和本地存儲(chǔ)的密鑰資料,匯聚節(jié)點(diǎn)可以還原出新的中間節(jié)點(diǎn)密鑰、計(jì)算出會(huì)話密鑰,并進(jìn)一步通過(guò)哈希運(yùn)算得到。由于計(jì)算接入節(jié)點(diǎn)生成的密鑰更新認(rèn)證參數(shù)的過(guò)程中用到了會(huì)話密鑰,會(huì)話密鑰的計(jì)算過(guò)程又用到了主密鑰和中間密鑰,這兩組密鑰只有接入節(jié)點(diǎn)能夠同時(shí)持有,所以可以認(rèn)為能夠提供正確密鑰更新認(rèn)證參數(shù)的節(jié)點(diǎn)是合法的接入節(jié)點(diǎn)。
23、作為優(yōu)選,在接入節(jié)點(diǎn)與匯聚節(jié)點(diǎn)的認(rèn)證及匯聚節(jié)點(diǎn)密鑰更新完成后,接入節(jié)點(diǎn)通過(guò)已有的所有匯聚節(jié)點(diǎn)的身份標(biāo)識(shí)以及各自的匯聚節(jié)點(diǎn)密鑰,利用密鑰派生函數(shù)生成包含所有匯聚節(jié)點(diǎn)的群組密鑰。生成的群組密鑰可以在網(wǎng)絡(luò)中安全傳輸,確保通信的整體安全性和密鑰的一致性。
24、作為優(yōu)選,在匯聚節(jié)點(diǎn)和傳感節(jié)點(diǎn)的節(jié)點(diǎn)認(rèn)證后,還對(duì)傳感節(jié)點(diǎn)密鑰進(jìn)行更新:選取加密認(rèn)證數(shù)值的未選用的分片作為新的傳感節(jié)點(diǎn)密鑰,選取加密認(rèn)證數(shù)值的其他未選用的分片生成新的會(huì)話密鑰。
25、本方案的設(shè)計(jì)實(shí)現(xiàn)了傳感節(jié)點(diǎn)與匯聚節(jié)點(diǎn)的雙向認(rèn)證,由于在加密認(rèn)證數(shù)值的分片計(jì)算中用到了初始的傳感節(jié)點(diǎn)密鑰,而合法的傳感節(jié)點(diǎn)密鑰只有在可信環(huán)境下完成注冊(cè)的節(jié)點(diǎn)才能獲得,所有可以認(rèn)為所有的通過(guò)加密認(rèn)證數(shù)值的分片對(duì)比驗(yàn)證的雙方都是合法節(jié)點(diǎn)。
26、作為優(yōu)選,在匯聚節(jié)點(diǎn)和傳感節(jié)點(diǎn)的認(rèn)證及傳感節(jié)點(diǎn)密鑰更新完成后,匯聚節(jié)點(diǎn)通過(guò)已有的所有傳感節(jié)點(diǎn)的身份標(biāo)識(shí)以及各自的傳感節(jié)點(diǎn)密鑰,利用密鑰派生函數(shù)生成包含所有傳感器節(jié)點(diǎn)的群組密鑰。
27、作為優(yōu)選,所述的匯聚節(jié)點(diǎn)密鑰的存儲(chǔ)密鑰槽位的數(shù)量為兩個(gè),接入節(jié)點(diǎn)還生成標(biāo)識(shí)位,所述的標(biāo)識(shí)位用于定義具體的密鑰槽位對(duì)應(yīng)的匯聚節(jié)點(diǎn)密鑰為當(dāng)前有效匯聚節(jié)點(diǎn)密鑰。
28、作為優(yōu)選,在對(duì)匯聚節(jié)點(diǎn)密鑰進(jìn)行更新后,指定未使用的密鑰槽位存儲(chǔ)新的匯聚節(jié)點(diǎn)密鑰。
29、作為優(yōu)選,所述的傳感節(jié)點(diǎn)密鑰的存儲(chǔ)密鑰槽位的數(shù)量為兩個(gè),匯聚節(jié)點(diǎn)還生成標(biāo)識(shí)位,所述的標(biāo)識(shí)位用于定義具體的密鑰槽位對(duì)應(yīng)的傳感節(jié)點(diǎn)密鑰為當(dāng)前有效傳感節(jié)點(diǎn)密鑰。
30、作為優(yōu)選,在對(duì)傳感節(jié)點(diǎn)密鑰進(jìn)行更新后,指定未使用的密鑰槽位存儲(chǔ)新的傳感節(jié)點(diǎn)密鑰。
31、本方案密鑰槽位的設(shè)計(jì)抵御了同步化攻擊,兩個(gè)密鑰槽位分別存儲(chǔ)當(dāng)前使用的密鑰和未來(lái)將要使用的密鑰,并使用標(biāo)識(shí)對(duì)密鑰存儲(chǔ)的槽位進(jìn)行控制。匯聚節(jié)點(diǎn)向接入節(jié)點(diǎn)發(fā)送認(rèn)證請(qǐng)求時(shí),在其中包含了標(biāo)識(shí)位,接入節(jié)點(diǎn)在選擇密鑰時(shí)就會(huì)使用標(biāo)識(shí)位的值所對(duì)應(yīng)槽位中存儲(chǔ)的密鑰,而在更新密鑰時(shí)就會(huì)存儲(chǔ)在另一個(gè)槽位中。在進(jìn)入密鑰更新流程后,匯聚節(jié)點(diǎn)除更新本地存儲(chǔ)的中間密鑰或傳感節(jié)點(diǎn)密鑰外,還會(huì)反轉(zhuǎn)標(biāo)標(biāo)識(shí)位,這樣就可以保證標(biāo)識(shí)位總是表示當(dāng)前密鑰所處的槽位。
32、作為優(yōu)選,所述的加密算法為哈希算法。
33、本發(fā)明的有益效果是:本發(fā)明實(shí)現(xiàn)了接入節(jié)點(diǎn)與匯聚節(jié)點(diǎn)之間、匯聚節(jié)點(diǎn)之間和傳感節(jié)點(diǎn)之間的雙向認(rèn)證,確保后續(xù)通信中使用的是一致且安全的密鑰,從而保障了通信的安全性;
34、本發(fā)明具有前向安全性,即使主密鑰泄漏也不會(huì)導(dǎo)致使用過(guò)的會(huì)話密鑰被攻擊者獲取到;
35、本發(fā)明有效的抵御了重放攻擊、短期密鑰資料泄漏、去同步化、設(shè)備存儲(chǔ)被攻破的安全威脅,進(jìn)一步降低了通信的安全性。