本發(fā)明涉及信息安全領(lǐng)域,尤其是一種安全組通信方法和系統(tǒng)以及相關(guān)設(shè)備。
背景技術(shù):
對于具有安全需求的組通信,系統(tǒng)通常為同一組內(nèi)的組成員節(jié)點(diǎn)分配所在組對應(yīng)的組密鑰,從而使得同一組內(nèi)的組成員節(jié)點(diǎn)利用相同的組密鑰來正常進(jìn)行組通信。這種方式可以降低服務(wù)器操作的復(fù)雜性,減少服務(wù)器維護(hù)和管理的密鑰數(shù),但是對于安全性和實(shí)時性要求較高的組成員節(jié)點(diǎn)存在一定風(fēng)險(xiǎn)。如果用于通信的密鑰被其他組成員節(jié)點(diǎn)獲得,信息會被輕易破解。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例所要解決的一個技術(shù)問題是:如何提高組通信的安全性。
根據(jù)本發(fā)明實(shí)施例的第一個方面,提供了一種安全組通信方法,包括:服務(wù)器節(jié)點(diǎn)為同一組內(nèi)的每個組成員節(jié)點(diǎn)分別生成不同的密鑰鏈,密鑰鏈中包括至少一個密鑰;每個組成員節(jié)點(diǎn)從服務(wù)器節(jié)點(diǎn)獲取本節(jié)點(diǎn)對應(yīng)的密鑰鏈,或者每個組成員節(jié)點(diǎn)按照與服務(wù)器節(jié)點(diǎn)相同的初始參數(shù)和生成方法生成本節(jié)點(diǎn)對應(yīng)的密鑰鏈;服務(wù)器節(jié)點(diǎn)和每個組成員節(jié)點(diǎn)分別按照預(yù)先協(xié)商的方法從本節(jié)點(diǎn)對應(yīng)的密鑰鏈中啟用一個相同的密鑰;服務(wù)器節(jié)點(diǎn)和組成員節(jié)點(diǎn)基于啟用的密鑰進(jìn)行通信。
在一個實(shí)施例中,服務(wù)器節(jié)點(diǎn)為同一組內(nèi)的每個組成員節(jié)點(diǎn)分別生成不同的密鑰鏈包括:服務(wù)器節(jié)點(diǎn)為同一組內(nèi)的每個組成員節(jié)點(diǎn)分別生成不同的初始化種子;服務(wù)器節(jié)點(diǎn)與同一組內(nèi)的每個組成員節(jié)點(diǎn) 分別協(xié)商生成次數(shù);服務(wù)器節(jié)點(diǎn)根據(jù)生成次數(shù)分別對每個組成員節(jié)點(diǎn)的初始化種子進(jìn)行相應(yīng)次數(shù)的二次單向函數(shù)計(jì)算,各次計(jì)算得到的密鑰組成該組成員節(jié)點(diǎn)對應(yīng)的密鑰鏈,密鑰鏈中的密鑰數(shù)量等于生成次數(shù)。
在一個實(shí)施例中,服務(wù)器節(jié)點(diǎn)根據(jù)生成次數(shù)分別對每個組成員節(jié)點(diǎn)的初始化種子進(jìn)行相應(yīng)次數(shù)的二次單向函數(shù)計(jì)算,各次計(jì)算得到的密鑰組成該組成員節(jié)點(diǎn)對應(yīng)的密鑰鏈包括:服務(wù)器節(jié)點(diǎn)將組成員節(jié)點(diǎn)的初始化種子作為計(jì)算種子代入第一單向函數(shù),計(jì)算出中間種子;將中間種子代入第二單向函數(shù),計(jì)算出密鑰,并添加到密鑰鏈;根據(jù)生成次數(shù)將中間種子作為計(jì)算種子繼續(xù)進(jìn)行二次單向函數(shù)計(jì)算,直到密鑰鏈中的密鑰數(shù)量等于生成次數(shù)。
在一個實(shí)施例中,方法還包括:服務(wù)器節(jié)點(diǎn)向同一組內(nèi)的每個組成員節(jié)點(diǎn)發(fā)送對應(yīng)的初始化種子和二次單向函數(shù),并與每個組成員節(jié)點(diǎn)協(xié)商生成次數(shù),以便組成員節(jié)點(diǎn)按照與服務(wù)器節(jié)點(diǎn)相同的初始化種子、生成次數(shù)和二次單向函數(shù)以及與服務(wù)器節(jié)點(diǎn)相同的生成方法生成本節(jié)點(diǎn)對應(yīng)的密鑰鏈。
在一個實(shí)施例中,每個組成員節(jié)點(diǎn)從服務(wù)器節(jié)點(diǎn)獲取本節(jié)點(diǎn)對應(yīng)的密鑰鏈包括:服務(wù)器節(jié)點(diǎn)與每個組成員節(jié)點(diǎn)建立安全通信信道,服務(wù)器節(jié)點(diǎn)通過安全通信信道向每個組成員節(jié)點(diǎn)發(fā)送服務(wù)器節(jié)點(diǎn)生成的與每個組成員節(jié)點(diǎn)對應(yīng)的密鑰鏈。
在一個實(shí)施例中,服務(wù)器節(jié)點(diǎn)和每個組成員節(jié)點(diǎn)分別按照預(yù)先協(xié)商的方法從本節(jié)點(diǎn)對應(yīng)的密鑰鏈中啟用一個相同的密鑰包括:服務(wù)器節(jié)點(diǎn)和每個組成員節(jié)點(diǎn)按照密鑰鏈中密鑰排列的順序,啟用位于密鑰鏈中相同位置的密鑰。
在一個實(shí)施例中,在服務(wù)器節(jié)點(diǎn)與組成員節(jié)點(diǎn)之間的鏈路上還設(shè)置有網(wǎng)關(guān)節(jié)點(diǎn),服務(wù)器節(jié)點(diǎn)將同一組內(nèi)各個組成員節(jié)點(diǎn)啟用的密鑰發(fā)送給該組的網(wǎng)關(guān)節(jié)點(diǎn);網(wǎng)關(guān)節(jié)點(diǎn)利用各個組成員節(jié)點(diǎn)啟用的密鑰對每個組成員節(jié)點(diǎn)分別進(jìn)行認(rèn)證。
在一個實(shí)施例中,方法還包括:當(dāng)服務(wù)器節(jié)點(diǎn)檢測到同一組內(nèi)的 組成員節(jié)點(diǎn)所屬的網(wǎng)關(guān)節(jié)點(diǎn)發(fā)生變更后,服務(wù)器節(jié)點(diǎn)和每個組成員節(jié)點(diǎn)分別按照預(yù)先協(xié)商的方法從本節(jié)點(diǎn)對應(yīng)的密鑰鏈中啟用一個新的相同的密鑰;服務(wù)器節(jié)點(diǎn)向變更后的網(wǎng)關(guān)節(jié)點(diǎn)發(fā)送啟用的新的密鑰,以便網(wǎng)關(guān)節(jié)點(diǎn)利用各個組成員節(jié)點(diǎn)啟用的新的密鑰對每個組成員節(jié)點(diǎn)分別進(jìn)行認(rèn)證。
在一個實(shí)施例中,方法還包括:各個組成員節(jié)點(diǎn)利用各自啟用的密鑰通過網(wǎng)關(guān)節(jié)點(diǎn)與組內(nèi)的其他組成員節(jié)點(diǎn)進(jìn)行通信。
在一個實(shí)施例中,各個組成員節(jié)點(diǎn)為位于物聯(lián)網(wǎng)的終端,服務(wù)器節(jié)點(diǎn)為物聯(lián)網(wǎng)服務(wù)器。
根據(jù)本發(fā)明實(shí)施例的第二個方面,提供一種用于安全組通信的服務(wù)器節(jié)點(diǎn),包括:第一密鑰鏈生成模塊,用于為同一組內(nèi)的每個組成員節(jié)點(diǎn)分別生成不同的密鑰鏈,密鑰鏈中包括至少一個密鑰;第一密鑰啟用模塊,用于按照與組成員節(jié)點(diǎn)預(yù)先協(xié)商的方法從密鑰鏈中啟用與組成員節(jié)點(diǎn)相同的密鑰;第一通信模塊,用于和組成員節(jié)點(diǎn)基于啟用的密鑰進(jìn)行通信。
在一個實(shí)施例中,第一密鑰生成模塊包括:初始化種子生成單元,用于為同一組內(nèi)的每個組成員節(jié)點(diǎn)分別生成不同的初始化種子;生成次數(shù)協(xié)商單元,用于與同一組內(nèi)的每個組成員節(jié)點(diǎn)分別協(xié)商生成次數(shù);密鑰鏈計(jì)算單元,用于根據(jù)生成次數(shù)分別對每個組成員節(jié)點(diǎn)的初始化種子進(jìn)行相應(yīng)次數(shù)的二次單向函數(shù)計(jì)算,各次計(jì)算得到的密鑰組成該組成員節(jié)點(diǎn)對應(yīng)的密鑰鏈,密鑰鏈中的密鑰數(shù)量等于生成次數(shù)。
在一個實(shí)施例中,密鑰鏈計(jì)算單元包括:第一單向函數(shù)子單元,用于將組成員節(jié)點(diǎn)的初始化種子作為計(jì)算種子代入第一單向函數(shù),計(jì)算出中間種子;第二單向函數(shù)子單元,用于將中間種子代入第二單向函數(shù),計(jì)算出密鑰,并添加到密鑰鏈;循環(huán)子單元,用于根據(jù)生成次數(shù)將中間種子作為計(jì)算種子繼續(xù)采用第一單向函數(shù)子單元和第二單向函數(shù)子單元進(jìn)行二次單向函數(shù)計(jì)算,直到密鑰鏈中的密鑰數(shù)量等于生成次數(shù)。
在一個實(shí)施例中,服務(wù)器節(jié)點(diǎn)還包括:參數(shù)發(fā)送單元,用于向同 一組內(nèi)的每個組成員節(jié)點(diǎn)發(fā)送對應(yīng)的初始化種子和二次單向函數(shù);第一生成次數(shù)協(xié)商單元,用于與每個組成員節(jié)點(diǎn)協(xié)商生成次數(shù)。
在一個實(shí)施例中,服務(wù)器節(jié)點(diǎn)還包括密鑰鏈發(fā)送模塊,用于通過與每個組成員節(jié)點(diǎn)建立的安全通信信道向每個組成員節(jié)點(diǎn)發(fā)送第一密鑰鏈生成模塊生成的與每個組成員節(jié)點(diǎn)對應(yīng)的密鑰鏈。
在一個實(shí)施例中,第一密鑰啟用模塊用于按照密鑰鏈中密鑰排列的順序,啟用與每個組成員節(jié)點(diǎn)啟用的密鑰位于密鑰鏈中相同位置的密鑰。
在一個實(shí)施例中,服務(wù)器節(jié)點(diǎn)還包括密鑰發(fā)送模塊,用于將同一組內(nèi)各個組成員節(jié)點(diǎn)啟用的密鑰發(fā)送給該組的網(wǎng)關(guān)節(jié)點(diǎn)。
在一個實(shí)施例中,服務(wù)器節(jié)點(diǎn)還包括網(wǎng)關(guān)變更檢測模塊,用于檢測組成員節(jié)點(diǎn)所屬的網(wǎng)關(guān)節(jié)點(diǎn)是否發(fā)生變更;當(dāng)網(wǎng)關(guān)變更檢測模塊檢測到網(wǎng)關(guān)節(jié)點(diǎn)發(fā)生變更時,第一密鑰啟用模塊用于按照和屬于產(chǎn)生變更的網(wǎng)關(guān)節(jié)點(diǎn)的每個組成員節(jié)點(diǎn)預(yù)先協(xié)商的方法從組成員節(jié)點(diǎn)對應(yīng)的密鑰鏈中啟用一個新的密鑰;密鑰發(fā)送模塊用于向變更后的網(wǎng)關(guān)發(fā)送啟用的新的密鑰,以便網(wǎng)關(guān)節(jié)點(diǎn)利用各個組成員節(jié)點(diǎn)啟用的新的密鑰對每個組成員節(jié)點(diǎn)分別進(jìn)行認(rèn)證。
在一個實(shí)施例中,服務(wù)器節(jié)點(diǎn)為物聯(lián)網(wǎng)服務(wù)器。
根據(jù)本發(fā)明實(shí)施例的第三個方面,提供一種用于安全組通信的組成員節(jié)點(diǎn),包括第二密鑰啟用模塊和第二通信模塊,還包括密鑰鏈獲取模塊或者第二密鑰鏈生成模塊;密鑰鏈獲取模塊用于從服務(wù)器節(jié)點(diǎn)獲取本節(jié)點(diǎn)對應(yīng)的密鑰鏈;第二密鑰鏈生成模塊用于按照與服務(wù)器節(jié)點(diǎn)相同的初始參數(shù)和生成方法生成本節(jié)點(diǎn)對應(yīng)的密鑰鏈;第二密鑰啟用模塊用于按照與服務(wù)器預(yù)先協(xié)商的方法從本節(jié)點(diǎn)對應(yīng)的密鑰鏈中啟用一個與服務(wù)器相同的密鑰;第二通信模塊用于和服務(wù)器基于啟用的密鑰進(jìn)行通信。
在一個實(shí)施例中,組成員節(jié)點(diǎn)還包括:參數(shù)接收模塊,用于接收服務(wù)器發(fā)送的與組成員節(jié)點(diǎn)對應(yīng)的初始化種子和二次單向函數(shù);第二生成次數(shù)協(xié)商單元,用于與服務(wù)器協(xié)商生成次數(shù);第二密鑰鏈生成模 塊用于按照與服務(wù)器節(jié)點(diǎn)相同的初始化種子、生成次數(shù)和二次單向函數(shù)以及與服務(wù)器節(jié)點(diǎn)相同的生成方法生成本節(jié)點(diǎn)對應(yīng)的密鑰鏈。
在一個實(shí)施例中,密鑰鏈獲取模塊用于通過與服務(wù)器節(jié)點(diǎn)建立的安全通信信道接收服務(wù)器節(jié)點(diǎn)生成的與組成員節(jié)點(diǎn)對應(yīng)的密鑰鏈。
在一個實(shí)施例中,第二密鑰啟用模塊用于按照密鑰鏈中密鑰排列的順序,啟用與服務(wù)器節(jié)點(diǎn)啟用的密鑰位于密鑰鏈中相同位置的密鑰。
在一個實(shí)施例中,第二密鑰啟用模塊用于當(dāng)組成員節(jié)點(diǎn)檢測到組成員節(jié)點(diǎn)所屬的網(wǎng)關(guān)節(jié)點(diǎn)發(fā)生變更后,組成員節(jié)點(diǎn)按照預(yù)先協(xié)商的方法從本節(jié)點(diǎn)對應(yīng)的密鑰鏈中啟用一個新的與服務(wù)器節(jié)點(diǎn)相同的密鑰。
在一個實(shí)施例中,組成員節(jié)點(diǎn)還包括組內(nèi)通信模塊,用于利用啟用的密鑰通過網(wǎng)關(guān)節(jié)點(diǎn)與組內(nèi)的其他組成員節(jié)點(diǎn)進(jìn)行通信。
在一個實(shí)施例中,組成員節(jié)點(diǎn)為位于物聯(lián)網(wǎng)的終端。
根據(jù)本發(fā)明實(shí)施例的第四個方面,提供一種安全組通信系統(tǒng),包括前述任一種服務(wù)器節(jié)點(diǎn)和前述任一種組成員節(jié)點(diǎn)。
在一個實(shí)施例中,系統(tǒng)還包括網(wǎng)關(guān),用于接收服務(wù)器節(jié)點(diǎn)發(fā)送的屬于網(wǎng)關(guān)的各個組成員節(jié)點(diǎn)啟用的密鑰,以便利用各個組成員節(jié)點(diǎn)啟用的密鑰對每個組成員節(jié)點(diǎn)分別進(jìn)行認(rèn)證。
本發(fā)明通過為組成員節(jié)點(diǎn)分別生成不同的密鑰鏈的方式,能夠降低組成員節(jié)點(diǎn)的通信密鑰被其他組成員節(jié)點(diǎn)獲取的風(fēng)險(xiǎn),提高了系統(tǒng)的安全性。
通過以下參照附圖對本發(fā)明的示例性實(shí)施例的詳細(xì)描述,本發(fā)明的其它特征及其優(yōu)點(diǎn)將會變得清楚。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1示出本發(fā)明安全組通信方法的一個實(shí)施例的流程示意圖。
圖2示出采用二次函數(shù)生成密鑰鏈的方法的示意圖。
圖3示出本發(fā)明安全組通信方法的一個實(shí)施例的場景示意圖。
圖4示出本發(fā)明密鑰更新方法的一個實(shí)施例的流程示意圖。
圖5示出本發(fā)明安全組通信系統(tǒng)的一個實(shí)施例的結(jié)構(gòu)示意圖。
圖6示出本發(fā)明用于安全組通信的服務(wù)器節(jié)點(diǎn)的一個實(shí)施例的結(jié)構(gòu)示意圖。
圖7示出本發(fā)明用于安全組通信的組成員節(jié)點(diǎn)的一個實(shí)施例的結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。以下對至少一個示例性實(shí)施例的描述實(shí)際上僅僅是說明性的,決不作為對本發(fā)明及其應(yīng)用或使用的任何限制?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
下面參考圖1描述本發(fā)明一個實(shí)施例的安全組通信方法。
圖1為本發(fā)明安全組通信方法的一個實(shí)施例的流程圖。如圖1所示,該實(shí)施例的方法包括:
步驟S102,服務(wù)器節(jié)點(diǎn)為同一組內(nèi)的每個組成員節(jié)點(diǎn)分別生成不同的密鑰鏈,密鑰鏈中包括至少一個密鑰。
步驟S104,每個組成員節(jié)點(diǎn)從服務(wù)器節(jié)點(diǎn)獲取本節(jié)點(diǎn)對應(yīng)的密鑰鏈,或者每個組成員節(jié)點(diǎn)按照與服務(wù)器節(jié)點(diǎn)相同的初始參數(shù)和生成方法生成本節(jié)點(diǎn)對應(yīng)的密鑰鏈。
步驟S106,服務(wù)器節(jié)點(diǎn)和每個組成員節(jié)點(diǎn)分別按照預(yù)先協(xié)商的方法從本節(jié)點(diǎn)對應(yīng)的密鑰鏈中啟用一個相同的密鑰。
步驟S108,服務(wù)器節(jié)點(diǎn)和組成員節(jié)點(diǎn)基于啟用的密鑰進(jìn)行通信。
通過為組成員節(jié)點(diǎn)分別生成不同的密鑰鏈的方式,能夠降低組成員 節(jié)點(diǎn)的通信密鑰被其他組成員節(jié)點(diǎn)獲取的風(fēng)險(xiǎn),提高了系統(tǒng)的安全性。
在步驟S102中,服務(wù)器節(jié)點(diǎn)具體可以采用以下方法為同一組內(nèi)的每個組成員節(jié)點(diǎn)分別生成不同的密鑰鏈:服務(wù)器節(jié)點(diǎn)為同一組內(nèi)的每個組成員節(jié)點(diǎn)分別生成不同的初始化種子;服務(wù)器節(jié)點(diǎn)與同一組內(nèi)的每個組成員節(jié)點(diǎn)分別協(xié)商生成次數(shù);服務(wù)器節(jié)點(diǎn)根據(jù)生成次數(shù)分別對每個組成員節(jié)點(diǎn)的初始化種子進(jìn)行相應(yīng)次數(shù)的二次單向函數(shù)計(jì)算,各次計(jì)算得到的密鑰組成該組成員節(jié)點(diǎn)對應(yīng)的密鑰鏈,密鑰鏈中的密鑰數(shù)量等于生成次數(shù)。其中,服務(wù)器節(jié)點(diǎn)可以采用隨機(jī)數(shù)生成器生成初始化種子。通過采用這種方法,同一組內(nèi)每個組成員節(jié)點(diǎn)對應(yīng)的密鑰鏈均由不同的初始化種子和生成次數(shù)得到,從而保證了同一組內(nèi)每個組成員節(jié)點(diǎn)對應(yīng)的密鑰鏈均不同。
其中,可以采用如下方法進(jìn)行二次單向函數(shù)計(jì)算:服務(wù)器節(jié)點(diǎn)將組成員節(jié)點(diǎn)的初始化種子作為計(jì)算種子代入第一單向函數(shù),計(jì)算出中間種子;將中間種子代入第二單向函數(shù),計(jì)算出密鑰,并添加到密鑰鏈;根據(jù)生成次數(shù)將中間種子作為計(jì)算種子繼續(xù)進(jìn)行二次單向函數(shù)計(jì)算,直到密鑰鏈中的密鑰數(shù)量等于生成次數(shù)。
圖2為采用二次函數(shù)生成密鑰鏈的方法的示意圖。下面結(jié)合圖2中的變量,具體描述二次單向函數(shù)的計(jì)算過程。設(shè):初始化種子為S0;生成次數(shù)為r;第n個中間種子為Sn,生成的密鑰鏈中第n個密鑰為Kn,n表示進(jìn)行二次單向函數(shù)計(jì)算的次數(shù),并且0<n≤r;第一單向函數(shù)為f(x);第二單向函數(shù)為g(x)。第n個中間種子的計(jì)算方法為:Sn=f(Sn-1);生成的密鑰鏈中第n個密鑰的計(jì)算方法為:Kn=g(Sn)。通過采用上述方法,能夠根據(jù)初始化種子、生成次數(shù)和二次單向函數(shù)生成節(jié)點(diǎn)對應(yīng)的密鑰鏈。
在步驟S104中,組成員節(jié)點(diǎn)可以采用兩種方法獲取本節(jié)點(diǎn)相應(yīng)的密鑰鏈。第一種獲取方式為:每個組成員節(jié)點(diǎn)從服務(wù)器節(jié)點(diǎn)獲取本節(jié)點(diǎn)對應(yīng)的密鑰鏈。具體地,可以采用以下方法:服務(wù)器節(jié)點(diǎn)與每個組成員節(jié)點(diǎn)建立安全通信信道,服務(wù)器節(jié)點(diǎn)通過安全通信信道向每個組成員節(jié)點(diǎn)發(fā)送服務(wù)器節(jié)點(diǎn)生成的與每個組成員節(jié)點(diǎn)對應(yīng)的密鑰鏈。通 過采用這種方法,能夠使組成員節(jié)點(diǎn)直接獲取密鑰鏈,而組成員節(jié)點(diǎn)無需進(jìn)行計(jì)算,對組成員節(jié)點(diǎn)的性能要求較低。
第二種獲取方式為:每個組成員節(jié)點(diǎn)按照與服務(wù)器節(jié)點(diǎn)相同的初始參數(shù)和生成方法生成本節(jié)點(diǎn)對應(yīng)的密鑰鏈。例如,組成員節(jié)點(diǎn)可以采用前述的二次單向函數(shù)計(jì)算方法獲得本節(jié)點(diǎn)對應(yīng)的密鑰鏈。因此,在組成員節(jié)點(diǎn)進(jìn)行計(jì)算之前,還包括以下步驟:服務(wù)器節(jié)點(diǎn)向同一組內(nèi)的每個組成員節(jié)點(diǎn)發(fā)送對應(yīng)的初始化種子和二次單向函數(shù),并與每個組成員節(jié)點(diǎn)協(xié)商生成次數(shù),以便組成員節(jié)點(diǎn)按照與服務(wù)器節(jié)點(diǎn)相同的初始化種子、生成次數(shù)和二次單向函數(shù)以及與服務(wù)器節(jié)點(diǎn)相同的生成方法生成本節(jié)點(diǎn)對應(yīng)的密鑰鏈。通過采用這種方法,能夠進(jìn)一步地提高系統(tǒng)的安全性,適用于性能較強(qiáng)的組成員節(jié)點(diǎn)。
在步驟S106中,服務(wù)器節(jié)點(diǎn)和每個組成員節(jié)點(diǎn)分別按照預(yù)先協(xié)商的方法從本節(jié)點(diǎn)對應(yīng)的密鑰鏈中啟用一個相同的密鑰具體可以包括:服務(wù)器節(jié)點(diǎn)和每個組成員節(jié)點(diǎn)按照密鑰鏈中密鑰排列的順序,啟用位于密鑰鏈中相同位置的密鑰。例如,設(shè)服務(wù)器節(jié)點(diǎn)和組成員節(jié)點(diǎn)的密鑰鏈中的密鑰為K1、K2、K3……Kr。服務(wù)器節(jié)點(diǎn)和每個組成員節(jié)點(diǎn)可以預(yù)先協(xié)商啟用密鑰鏈中的第一個密鑰。由于服務(wù)器節(jié)點(diǎn)和每個組成員節(jié)點(diǎn)存儲的對應(yīng)的密鑰鏈?zhǔn)窍嗤?,因此通過預(yù)先協(xié)商啟用的密鑰在密鑰鏈中的位置,即可以獲得相同的密鑰。
在本發(fā)明方法的應(yīng)用場景中,除了具有服務(wù)器節(jié)點(diǎn)和組成員節(jié)點(diǎn)以外,還可以在服務(wù)器節(jié)點(diǎn)和組成員節(jié)點(diǎn)之間的鏈路上設(shè)置網(wǎng)關(guān)節(jié)點(diǎn),同一組的組成員節(jié)點(diǎn)屬于同一個網(wǎng)關(guān)節(jié)點(diǎn)。圖3為本發(fā)明一個實(shí)施例的安全組通信方法的場景示意圖。如圖3所示,位于同一組的組成員節(jié)點(diǎn)342、344、346與網(wǎng)關(guān)節(jié)點(diǎn)34通信連接,位于另一組的組成員節(jié)點(diǎn)362、364與網(wǎng)關(guān)節(jié)點(diǎn)36通信連接。網(wǎng)關(guān)節(jié)點(diǎn)34和36與服務(wù)器節(jié)點(diǎn)32通信連接。在服務(wù)器節(jié)點(diǎn)與組成員節(jié)點(diǎn)確定啟用的密鑰后,服務(wù)器節(jié)點(diǎn)將同一組內(nèi)各個組成員節(jié)點(diǎn)啟用的密鑰發(fā)送給該組的網(wǎng)關(guān)節(jié)點(diǎn);網(wǎng)關(guān)節(jié)點(diǎn)利用各個組成員節(jié)點(diǎn)啟用的密鑰對每個組成員節(jié)點(diǎn)分別進(jìn)行認(rèn)證。
在服務(wù)器節(jié)點(diǎn)和組成員節(jié)點(diǎn)進(jìn)行通信時,服務(wù)器節(jié)點(diǎn)、網(wǎng)關(guān)節(jié)點(diǎn)和組成員節(jié)點(diǎn)均可以采用相應(yīng)的密鑰進(jìn)行驗(yàn)證。此外,各個組成員節(jié)點(diǎn)可以利用各自啟用的密鑰通過網(wǎng)關(guān)節(jié)點(diǎn)與組內(nèi)的其他組成員節(jié)點(diǎn)進(jìn)行通信。由于網(wǎng)關(guān)具有同一組的各個組成員節(jié)點(diǎn)的密鑰,因此可以采用進(jìn)行通信的組成員節(jié)點(diǎn)啟用的密鑰完成加密和解密,實(shí)現(xiàn)信息的安全傳輸。顯然,根據(jù)需要,網(wǎng)關(guān)節(jié)點(diǎn)也可以將加密信息進(jìn)行透明轉(zhuǎn)發(fā),在網(wǎng)關(guān)處不進(jìn)行任何加密解密的處理。
當(dāng)網(wǎng)關(guān)節(jié)點(diǎn)發(fā)生變更時,為了保證系統(tǒng)的安全性,需要對啟用的密鑰進(jìn)行更新。下面參考圖4描述本發(fā)明一個實(shí)施例的密鑰更新方法。
圖4為本發(fā)明密鑰更新方法的一個實(shí)施例的流程圖。如圖4所示,該實(shí)施例的方法包括:
步驟S402,網(wǎng)關(guān)節(jié)點(diǎn)發(fā)生變更。
步驟S404,服務(wù)器檢測到同一組內(nèi)的組成員節(jié)點(diǎn)所屬的網(wǎng)關(guān)節(jié)點(diǎn)發(fā)生變更,并對該變更進(jìn)行廣播。
步驟S406,組成員節(jié)點(diǎn)獲知所屬的網(wǎng)關(guān)節(jié)點(diǎn)發(fā)生變更。
步驟S408,服務(wù)器節(jié)點(diǎn)和每個組成員節(jié)點(diǎn)分別按照預(yù)先協(xié)商的方法從本節(jié)點(diǎn)對應(yīng)的密鑰鏈中啟用一個新的相同的密鑰。
步驟S410,服務(wù)器節(jié)點(diǎn)向變更后的網(wǎng)關(guān)節(jié)點(diǎn)發(fā)送啟用的新的密鑰。
其中,根據(jù)具體需求以及組成員節(jié)點(diǎn)的能力,也可以由組成員節(jié)點(diǎn)向變更后的網(wǎng)關(guān)節(jié)點(diǎn)發(fā)送啟用的新的密鑰。
步驟S412,網(wǎng)關(guān)節(jié)點(diǎn)利用各個組成員節(jié)點(diǎn)啟用的新的密鑰對每個組成員節(jié)點(diǎn)分別進(jìn)行認(rèn)證。
由于終端節(jié)點(diǎn)和組成員節(jié)點(diǎn)已經(jīng)預(yù)先生成了密鑰鏈,并且協(xié)商了啟用規(guī)則,因此能夠在網(wǎng)關(guān)節(jié)點(diǎn)發(fā)生變更時快速地更新密鑰。在保證了安全性的同時提高了更新效率。
在步驟S408中,服務(wù)器節(jié)點(diǎn)和每個組成員節(jié)點(diǎn)例如可以采用按照密鑰鏈中密鑰排列的順序啟用位于密鑰鏈中相同位置的密鑰的方式啟用新的密鑰。例如,設(shè)服務(wù)器節(jié)點(diǎn)和組成員節(jié)點(diǎn)的密鑰鏈中的密鑰為K1、K2、K3……Kr。網(wǎng)關(guān)節(jié)點(diǎn)變更前,服務(wù)器節(jié)點(diǎn)和組成員節(jié)點(diǎn)啟用 的密鑰為K1,網(wǎng)關(guān)變更后,服務(wù)器節(jié)點(diǎn)和組成員節(jié)點(diǎn)啟用密鑰鏈中當(dāng)前啟用的密鑰的下一個密鑰,即K2,并將K2發(fā)送給變更后的網(wǎng)關(guān)節(jié)點(diǎn)。通過采用這種方法,可以實(shí)現(xiàn)密鑰的快速切換。顯然,根據(jù)需要,本領(lǐng)域技術(shù)人員也可以采用其他密鑰更新方式,這里不再贅述。
物聯(lián)網(wǎng)終端對于安全性和實(shí)時性的要求較高,因而可以將本發(fā)明的方法應(yīng)用于物聯(lián)網(wǎng)系統(tǒng)中,即在本發(fā)明的方法中,各個組成員節(jié)點(diǎn)可以為位于物聯(lián)網(wǎng)的終端,服務(wù)器節(jié)點(diǎn)可以為物聯(lián)網(wǎng)服務(wù)器。然而,本領(lǐng)域技術(shù)人員應(yīng)當(dāng)清楚,本發(fā)明可以適用于任何具有安全組通信需求的通信系統(tǒng),并不僅限于物聯(lián)網(wǎng)系統(tǒng)。
下面參考圖5描述本發(fā)明一個實(shí)施例的安全組通信系統(tǒng)。
圖5為本發(fā)明安全組通信系統(tǒng)的一個實(shí)施例的結(jié)構(gòu)圖。如圖5所示,該實(shí)施例的系統(tǒng)包括服務(wù)器節(jié)點(diǎn)52和組成員節(jié)點(diǎn)54。
其中,系統(tǒng)還可以包括網(wǎng)關(guān),用于接收服務(wù)器節(jié)點(diǎn)發(fā)送的屬于網(wǎng)關(guān)的各個組成員節(jié)點(diǎn)啟用的密鑰,以便利用各個組成員節(jié)點(diǎn)啟用的密鑰對每個組成員節(jié)點(diǎn)分別進(jìn)行認(rèn)證。
下面參考圖6描述本發(fā)明一個實(shí)施例的用于安全組通信的服務(wù)器節(jié)點(diǎn)。
圖6為本發(fā)明用于安全組通信的服務(wù)器節(jié)點(diǎn)的一個實(shí)施例的結(jié)構(gòu)圖。如圖6所示,該實(shí)施例的服務(wù)器節(jié)點(diǎn)52包括:第一密鑰鏈生成模塊622,用于為同一組內(nèi)的每個組成員節(jié)點(diǎn)分別生成不同的密鑰鏈,密鑰鏈中包括至少一個密鑰;第一密鑰啟用模塊624,用于按照與組成員節(jié)點(diǎn)預(yù)先協(xié)商的方法從密鑰鏈中啟用與組成員節(jié)點(diǎn)相同的密鑰;第一通信模塊626,用于和組成員節(jié)點(diǎn)基于啟用的密鑰進(jìn)行通信。
其中,第一密鑰生成模塊可以包括:初始化種子生成單元,用于為同一組內(nèi)的每個組成員節(jié)點(diǎn)分別生成不同的初始化種子;生成次數(shù)協(xié)商單元,用于與同一組內(nèi)的每個組成員節(jié)點(diǎn)分別協(xié)商生成次數(shù);密鑰鏈計(jì)算單元,用于根據(jù)生成次數(shù)分別對每個組成員節(jié)點(diǎn)的初始化種子進(jìn)行相應(yīng)次數(shù)的二次單向函數(shù)計(jì)算,各次計(jì)算得到的密鑰組成該組成員節(jié)點(diǎn)對應(yīng)的密鑰鏈,密鑰鏈中的密鑰數(shù)量等于生成次數(shù)。
其中,密鑰鏈計(jì)算單元可以包括:第一單向函數(shù)子單元,用于將組成員節(jié)點(diǎn)的初始化種子作為計(jì)算種子代入第一單向函數(shù),計(jì)算出中間種子;第二單向函數(shù)子單元,用于將中間種子代入第二單向函數(shù),計(jì)算出密鑰,并添加到密鑰鏈;循環(huán)子單元,用于根據(jù)生成次數(shù)將中間種子作為計(jì)算種子繼續(xù)采用第一單向函數(shù)子單元和第二單向函數(shù)子單元進(jìn)行二次單向函數(shù)計(jì)算,直到密鑰鏈中的密鑰數(shù)量等于生成次數(shù)。
其中,服務(wù)器節(jié)點(diǎn)還可以包括:參數(shù)發(fā)送單元,用于向同一組內(nèi)的每個組成員節(jié)點(diǎn)發(fā)送對應(yīng)的初始化種子和二次單向函數(shù);第一生成次數(shù)協(xié)商單元,用于與每個組成員節(jié)點(diǎn)協(xié)商生成次數(shù)。
其中,服務(wù)器節(jié)點(diǎn)還可以包括密鑰鏈發(fā)送模塊,用于通過與每個組成員節(jié)點(diǎn)建立的安全通信信道向每個組成員節(jié)點(diǎn)發(fā)送第一密鑰鏈生成模塊生成的與每個組成員節(jié)點(diǎn)對應(yīng)的密鑰鏈。
其中,第一密鑰啟用模塊可以用于按照密鑰鏈中密鑰排列的順序,啟用與每個組成員節(jié)點(diǎn)啟用的密鑰位于密鑰鏈中相同位置的密鑰。
此外,服務(wù)器節(jié)點(diǎn)還可以包括密鑰發(fā)送模塊,用于將同一組內(nèi)各個組成員節(jié)點(diǎn)啟用的密鑰發(fā)送給該組的網(wǎng)關(guān)節(jié)點(diǎn)。
此外,服務(wù)器節(jié)點(diǎn)還可以包括網(wǎng)關(guān)變更檢測模塊,用于檢測組成員節(jié)點(diǎn)所屬的網(wǎng)關(guān)節(jié)點(diǎn)是否發(fā)生變更;當(dāng)網(wǎng)關(guān)變更檢測模塊檢測到網(wǎng)關(guān)節(jié)點(diǎn)發(fā)生變更時,第一密鑰啟用模塊用于按照和屬于產(chǎn)生變更的網(wǎng)關(guān)節(jié)點(diǎn)的每個組成員節(jié)點(diǎn)預(yù)先協(xié)商的方法從組成員節(jié)點(diǎn)對應(yīng)的密鑰鏈中啟用一個新的密鑰;密鑰發(fā)送模塊用于向變更后的網(wǎng)關(guān)發(fā)送啟用的新的密鑰,以便網(wǎng)關(guān)節(jié)點(diǎn)利用各個組成員節(jié)點(diǎn)啟用的新的密鑰對每個組成員節(jié)點(diǎn)分別進(jìn)行認(rèn)證。
此外,服務(wù)器節(jié)點(diǎn)還可以為物聯(lián)網(wǎng)服務(wù)器。
下面參考圖7描述本發(fā)明一個實(shí)施例的用于安全組通信的組成員節(jié)點(diǎn)。
圖7為本發(fā)明用于安全組通信的組成員節(jié)點(diǎn)的一個實(shí)施例的結(jié)構(gòu)圖。如圖7所示,該實(shí)施例的組成員節(jié)點(diǎn)54包括:第二密鑰啟用模塊742和第二通信模塊744,還包括密鑰鏈獲取模塊746或者第二密鑰鏈 生成模塊748;密鑰鏈獲取模塊746用于從服務(wù)器節(jié)點(diǎn)獲取本節(jié)點(diǎn)對應(yīng)的密鑰鏈;第二密鑰鏈生成模塊748用于按照與服務(wù)器節(jié)點(diǎn)相同的初始參數(shù)和生成方法生成本節(jié)點(diǎn)對應(yīng)的密鑰鏈;第二密鑰啟用模塊742用于按照與服務(wù)器預(yù)先協(xié)商的方法從本節(jié)點(diǎn)對應(yīng)的密鑰鏈中啟用一個與服務(wù)器相同的密鑰;第二通信模塊744用于和服務(wù)器基于啟用的密鑰進(jìn)行通信。
其中,組成員節(jié)點(diǎn)還可以包括:參數(shù)接收模塊,用于接收服務(wù)器發(fā)送的與組成員節(jié)點(diǎn)對應(yīng)的初始化種子和二次單向函數(shù);第二生成次數(shù)協(xié)商單元,用于與服務(wù)器協(xié)商生成次數(shù);第二密鑰鏈生成模塊用于按照與服務(wù)器節(jié)點(diǎn)相同的初始化種子、生成次數(shù)和二次單向函數(shù)以及與服務(wù)器節(jié)點(diǎn)相同的生成方法生成本節(jié)點(diǎn)對應(yīng)的密鑰鏈。
其中,密鑰鏈獲取模塊可以用于通過與服務(wù)器節(jié)點(diǎn)建立的安全通信信道接收服務(wù)器節(jié)點(diǎn)生成的與組成員節(jié)點(diǎn)對應(yīng)的密鑰鏈。
其中,第二密鑰啟用模塊可以用于按照密鑰鏈中密鑰排列的順序,啟用與服務(wù)器節(jié)點(diǎn)啟用的密鑰位于密鑰鏈中相同位置的密鑰。
其中,第二密鑰啟用模塊還可以用于當(dāng)組成員節(jié)點(diǎn)檢測到組成員節(jié)點(diǎn)所屬的網(wǎng)關(guān)節(jié)點(diǎn)發(fā)生變更后,組成員節(jié)點(diǎn)按照預(yù)先協(xié)商的方法從本節(jié)點(diǎn)對應(yīng)的密鑰鏈中啟用一個新的與服務(wù)器節(jié)點(diǎn)相同的密鑰。
此外,組成員節(jié)點(diǎn)還可以包括組內(nèi)通信模塊,用于利用啟用的密鑰通過網(wǎng)關(guān)節(jié)點(diǎn)與組內(nèi)的其他組成員節(jié)點(diǎn)進(jìn)行通信。
此外,組成員節(jié)點(diǎn)可以為位于物聯(lián)網(wǎng)的終端。
此外,根據(jù)本發(fā)明的方法還可以實(shí)現(xiàn)為一種計(jì)算機(jī)程序產(chǎn)品,該產(chǎn)品包括計(jì)算機(jī)可讀介質(zhì),在該計(jì)算機(jī)可讀介質(zhì)上存儲有用于執(zhí)行本發(fā)明的方法中限定的上述功能的計(jì)算機(jī)程序。本領(lǐng)域技術(shù)人員還將明白的是,結(jié)合這里的公開所描述的各種示例性邏輯塊、模塊、電路和算法步驟可以被實(shí)現(xiàn)為電子硬件、計(jì)算機(jī)軟件或兩者的組合。
以上所述僅為本發(fā)明的較佳實(shí)施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。