專利名稱:一種多播/廣播中信息完整性保護(hù)的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及在無線通信領(lǐng)域中信息安全技術(shù),具體地說,涉及多播/廣播中廣播信令完整性保護(hù)的方法。
背景技術(shù):
在無線通信領(lǐng)域中,多播/廣播業(yè)務(wù)是一種點(diǎn)到多點(diǎn)的單向承載業(yè)務(wù),數(shù)據(jù)由一個(gè)源實(shí)體傳送到多個(gè)接收實(shí)體。這種一點(diǎn)到多點(diǎn)的通信信息,傳送的信息可以是廣播業(yè)務(wù)信息,也可以是用于控制業(yè)務(wù)的廣播信令信息。多播/廣播服務(wù)器能夠提供多播/廣播服務(wù),并可以兼有密鑰生成管理功能,多播/廣播服務(wù)器的功能可以由新的功能實(shí)體或現(xiàn)有網(wǎng)絡(luò)的一個(gè)或多個(gè)功能實(shí)體來共同完成。
在現(xiàn)有的多播/廣播業(yè)務(wù)中,業(yè)務(wù)信息已經(jīng)被考慮加密發(fā)送以防止無權(quán)限的用戶使用業(yè)務(wù)信息,比如,多播/廣播服務(wù)器使用群組共享密鑰對業(yè)務(wù)信息加密,多播/廣播群組內(nèi)的用戶使用群組共享密鑰對數(shù)據(jù)進(jìn)行解密。對于廣播信令信息而言,加密并不是必要的,因?yàn)閺V播信令信息僅僅是代表某種控制動作,但是其完整性保護(hù)應(yīng)該是必須的,尤其是對于一些重要的單向信令,例如,密鑰更新啟動信令或者密鑰更新命令等。如果廣播的信令消息不進(jìn)行保護(hù),攻擊者可能對廣播的信令消息更改或偽造,或者是復(fù)制,導(dǎo)致用戶錯誤接收多播/廣播業(yè)務(wù)數(shù)據(jù),或多播/廣播系統(tǒng)不能正常運(yùn)行等更嚴(yán)重的后果。而目前尚未有對廣播信令提供完整性保護(hù)的方法。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種多播/廣播中信息完整性保護(hù)的方法,以防止攻擊者復(fù)制或修改廣播信息而發(fā)送錯誤廣播信息。
本發(fā)明通過以下技術(shù)方案實(shí)現(xiàn)一種廣播信息完整性的保護(hù)方法,該方法包括,A)多播/廣播服務(wù)器與用戶協(xié)商完整性密鑰后,多播/廣播服務(wù)器至少以完整性密鑰和廣播信息為變量進(jìn)行運(yùn)算,生成多播/廣播服務(wù)器數(shù)字簽名,并廣播發(fā)送廣播信息和多播/廣播服務(wù)器數(shù)字簽名給用戶;B)用戶以協(xié)商的完整性密鑰和接收的廣播信息為變量進(jìn)行運(yùn)算,生成用戶側(cè)數(shù)字簽名,判斷用戶數(shù)字簽名是否與多播/廣播服務(wù)器數(shù)字簽名相同,如果是,則判決接收的廣播信息有效,否則判決接收的廣播信息無效。
上述用于生成多播/廣播服務(wù)器數(shù)字簽名的變量進(jìn)一步包括當(dāng)前多播/廣播服務(wù)器參數(shù),并且該參數(shù)值廣播至用戶,用于生成用戶數(shù)字簽名的變量進(jìn)一步包括用戶接收的當(dāng)前多播/廣播服務(wù)器參數(shù)。
所述步驟B之前進(jìn)一步包括,判斷用戶接收的當(dāng)前多播/廣播服務(wù)器參數(shù)是否符合用戶參數(shù)的要求,如果是,則執(zhí)行步驟B,否則,丟棄該廣播信息。
所述當(dāng)前多播/廣播服務(wù)器參數(shù)為其時(shí)戳值。所述判斷用戶接收的當(dāng)前多播/廣播服務(wù)器參數(shù)是否符合用戶參數(shù)的要求包括,判斷所述時(shí)戳值是否在用戶時(shí)鐘值的時(shí)間窗內(nèi)。
所述當(dāng)前多播/廣播服務(wù)器參數(shù)值為其增1計(jì)數(shù)器的當(dāng)前值。所述判斷用戶接收的當(dāng)前多播/廣播服務(wù)器參數(shù)是否符合用戶參數(shù)的要求包括,判斷所述增1計(jì)數(shù)器的當(dāng)前值是否不小于用戶數(shù)字寄存器的值;如果用戶數(shù)字簽名與多播/廣播服務(wù)器數(shù)字簽名相同,該方法進(jìn)一步包括,將接收的增1計(jì)數(shù)器的值賦值給用戶數(shù)字寄存器。
較佳地,設(shè)置所述完整性密鑰可進(jìn)行更新,設(shè)置所述增1計(jì)數(shù)器的長度在生命周期內(nèi)的計(jì)數(shù)器值不重復(fù)。
完整性密鑰進(jìn)行更新或用戶開機(jī)或從非服務(wù)區(qū)轉(zhuǎn)入服務(wù)區(qū)或多播/廣播服務(wù)器故障恢復(fù)后,步驟A所述多播/廣播服務(wù)器與用戶協(xié)商完整性密鑰包括,A1)多播/廣播服務(wù)器接收到用戶的服務(wù)請求后,生成業(yè)務(wù)信息的加密密鑰和完整性密鑰;A2)用預(yù)先與用戶共同保存的私鑰加密業(yè)務(wù)信息的加密密鑰和完整性密鑰,并廣播發(fā)送至用戶,A3)用戶接收到被加密的完整性密鑰信息后,用用戶私鑰解密來自多播/廣播服務(wù)器的業(yè)務(wù)信息的加密密鑰和完整性密鑰并保存。
所述步驟A2進(jìn)一步包括,多播/廣播服務(wù)器提取其增1計(jì)數(shù)器的值,伴隨加密了的業(yè)務(wù)信息的加密密鑰和完整性密鑰發(fā)送給用戶;所述步驟A3進(jìn)一步包括,用戶使用私鑰驗(yàn)證來自多播/廣播服務(wù)器的加密了的業(yè)務(wù)信息的加密密鑰和完整性密鑰信息是否完整,如果是,將接收的增1計(jì)數(shù)器的值賦值給用戶的數(shù)字寄存器,并向多播/廣播服務(wù)器發(fā)送確認(rèn)消息,否則,向多播/廣播服務(wù)器發(fā)送錯誤消息,并返回步驟A2。
本發(fā)明通過對多播/廣播服務(wù)器的廣播信息進(jìn)行數(shù)字簽名,可以有效防止多播/廣播中信息被攻擊者修改或偽造。在廣播的信息中增加時(shí)間戳,可以防止攻擊者重復(fù)使用多播/廣播服務(wù)器廣播的信息。通過接收端比較來自多播/廣播服務(wù)器增1計(jì)數(shù)器的值和數(shù)字寄存器的值,可以防止攻擊者重復(fù)使用多播/廣播服務(wù)器廣播的信息。完整性的密鑰周期與業(yè)務(wù)信息的加密密鑰周期相同有利于增加安全性,同時(shí)通過與業(yè)務(wù)信息的加密密鑰協(xié)同工作,不增加實(shí)現(xiàn)的復(fù)雜性。本發(fā)明不僅可應(yīng)用于對廣播信令進(jìn)行完整性保護(hù),也可應(yīng)用于對廣播的業(yè)務(wù)信息進(jìn)行完整性保護(hù)。
圖1為完整性密鑰協(xié)商過程;圖2示意了生成多播/廣播服務(wù)器數(shù)字簽名過程;圖3示意了用戶進(jìn)行完整性驗(yàn)證的處理過程,其中,圖3a為多播/廣播服務(wù)器參數(shù)使用時(shí)戳值時(shí)用戶進(jìn)行完整性驗(yàn)證的方法,圖3b為多播/廣播服務(wù)器參數(shù)使用增1計(jì)數(shù)器的當(dāng)前值時(shí)用戶進(jìn)行完整性驗(yàn)證的方法。
具體實(shí)施例方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面結(jié)合附圖對本發(fā)明作進(jìn)一步的詳細(xì)描述。
在多播/廣播業(yè)務(wù)中,為保證安全性,業(yè)務(wù)信息的加密密鑰通常進(jìn)行定期更新,因此作為完整性保護(hù)的完整性密鑰也可進(jìn)行定期更新,更新的周期與業(yè)務(wù)信息的加密密鑰更新周期相同。
當(dāng)用戶開機(jī)通過身份認(rèn)證后,或者從非服務(wù)區(qū)轉(zhuǎn)入服務(wù)區(qū),或者完整性密鑰進(jìn)行了更新,或者多播/廣播服務(wù)器故障恢復(fù)后,多播/廣播服務(wù)器與每個(gè)用戶或每個(gè)群組的用戶單獨(dú)進(jìn)行完整性密鑰協(xié)商,用戶獲得協(xié)商的完整性密鑰后,可對接收的廣播信息進(jìn)行完整性驗(yàn)證。
完整性密鑰協(xié)商可以與業(yè)務(wù)信息的加密密鑰協(xié)商同時(shí)進(jìn)行,具體的過程如圖1所示。過程如下步驟101,用戶加入多播廣播業(yè)務(wù)時(shí),向多播/廣播服務(wù)器發(fā)送請求服務(wù)的消息;步驟102,多播/廣播服務(wù)器生成業(yè)務(wù)信息的加密密鑰、以及信息完整性密鑰,通過預(yù)先與該用戶共同保存的私鑰加密業(yè)務(wù)信息的加密密鑰和完整性密鑰,并通過相關(guān)信息攜帶被加密了的業(yè)務(wù)信息的加密密鑰和完整性密鑰發(fā)送給用戶,同時(shí)提取多播/廣播服務(wù)器中增1計(jì)數(shù)器的當(dāng)前值,伴隨被加密了的業(yè)務(wù)信息的加密密鑰和完整性密鑰發(fā)給用戶;步驟103,用戶收到該信息后,為保護(hù)該信息的完整性,判斷接收的增1計(jì)數(shù)器的當(dāng)前值是否不小于用戶數(shù)字寄存器的值,如果是,則對該信息進(jìn)行完整性驗(yàn)證,例如進(jìn)行循環(huán)冗余校驗(yàn)(CRC),或使用用戶的私鑰對該信息進(jìn)行驗(yàn)證,當(dāng)驗(yàn)證通過時(shí),將接收的增1計(jì)數(shù)器的當(dāng)前值賦值給用戶數(shù)字寄存器的值,然后執(zhí)行步驟104。如果接收的增1計(jì)數(shù)器的當(dāng)前值大于用戶數(shù)字寄存器的值,或者該信息的完整性驗(yàn)證不通過,則說明發(fā)生異常情況,此時(shí)用戶向多播/廣播服務(wù)器返回錯誤信息,多播/廣播服務(wù)器返回步驟102;步驟104,采用用戶的私鑰解密被加密了的業(yè)務(wù)信息的加密密鑰和完整性密鑰,并作為下次廣播信息的業(yè)務(wù)信息的加密密鑰和完整性密鑰進(jìn)行保存,然后用戶向多播/廣播服務(wù)器發(fā)送確認(rèn)消息。
上述增1計(jì)數(shù)器只在多播/廣播服務(wù)器中才有,每發(fā)送一條廣播信息,其值增加1,在進(jìn)行一次密鑰協(xié)商過程時(shí),用戶的數(shù)字寄存器的值都會被用戶所接收的增1計(jì)數(shù)器的當(dāng)前值進(jìn)行一次賦值。為了保證增1計(jì)數(shù)器的值在系統(tǒng)生命周期內(nèi)不會溢出,增1計(jì)數(shù)器的長度應(yīng)保證在系統(tǒng)生命周期內(nèi)計(jì)數(shù)器值不會重復(fù),通常增1計(jì)數(shù)器的位數(shù)至少取為64bit。
上述多播/廣播服務(wù)器生成業(yè)務(wù)信息的加密密鑰和完整性密鑰可以是一個(gè)隨機(jī)數(shù),也可以是預(yù)先設(shè)定的一組密鑰數(shù),或是其他方式生成的一組密鑰,密鑰長度不低于128bit。
用戶和多播/廣播服務(wù)器進(jìn)行完整性密鑰協(xié)商完畢后,當(dāng)多播/廣播服務(wù)器發(fā)送廣播信息時(shí),在多播/廣播服務(wù)器側(cè),由多播/廣播服務(wù)器生成多播/廣播服務(wù)器數(shù)字簽名,將數(shù)字簽名和廣播信息附帶在一起發(fā)送;在用戶側(cè),由接收信息的用戶計(jì)算用戶數(shù)字簽名,根據(jù)多播/廣播服務(wù)器數(shù)字簽名與用戶數(shù)字簽名是否相同判定廣播信息的完整性。以下進(jìn)行詳細(xì)說明。
參見圖2所示,圖2示意了生成多播/廣播服務(wù)器數(shù)字簽名過程,具體過程如下首先,步驟201,為了防止復(fù)制攻擊,當(dāng)發(fā)送廣播信息時(shí),多播/廣播服務(wù)器中提取其時(shí)戳值或者增1計(jì)數(shù)器的當(dāng)前值作為多播/廣播服務(wù)器參數(shù)。其中,時(shí)戳值可以精確到秒級,包含年、月、日、時(shí)、分、以及秒;增1計(jì)數(shù)器的初始值為0,每發(fā)送一條廣播信息,增1計(jì)數(shù)器將增加1。
其次,步驟202,通過完整性算法對完整性密鑰、廣播信息內(nèi)容、以及多播/廣播服務(wù)器參數(shù)進(jìn)行運(yùn)算生成摘要字即多播/廣播服務(wù)器數(shù)字簽名。設(shè)完整性密鑰為int_key,廣播信息內(nèi)容為message,多播/廣播服務(wù)器參數(shù)為one_value,多播/廣播服務(wù)器數(shù)字簽名為msg_digt,數(shù)學(xué)表達(dá)為msg_digt=f(int_key,message,one_value)其中,f()表示用于完整性保護(hù)的數(shù)字簽名算法。
最后,步驟203,廣播發(fā)送攜帶有多播/廣播服務(wù)器數(shù)字簽名、廣播信息內(nèi)容、以及多播/廣播服務(wù)器參數(shù)的信息給所有的多播/廣播用戶。
參見圖3所示,圖3示意了用戶進(jìn)行完整性驗(yàn)證的處理過程,其中,圖3a為多播/廣播服務(wù)器參數(shù)使用時(shí)戳值時(shí)用戶進(jìn)行完整性驗(yàn)證的方法,圖3b為多播/廣播服務(wù)器參數(shù)使用增1計(jì)數(shù)器的當(dāng)前值時(shí)用戶進(jìn)行完整性驗(yàn)證的方法。
當(dāng)多播/廣播服務(wù)器參數(shù)為時(shí)戳值時(shí),用戶完整性驗(yàn)證的步驟如下首先,步驟301,當(dāng)用戶接收到廣播信息時(shí),比較接收的時(shí)戳值是否符合用戶的要求,即,用戶提取本機(jī)的時(shí)鐘值,比較接收的時(shí)戳值是否在該用戶的時(shí)鐘值的時(shí)間窗內(nèi),如果是,則執(zhí)行步驟302,否則,說明該廣播信息是無效信息,執(zhí)行步驟306,丟棄該條廣播信息并結(jié)束辦流程;步驟302,用戶取出保存的完整性密鑰以及接收的時(shí)戳值和廣播信息內(nèi)容的值,用與多播/廣播服務(wù)器即發(fā)送端相同的數(shù)字簽名算法計(jì)算用戶數(shù)字簽名。設(shè)用戶數(shù)字簽名為msg_auth,數(shù)學(xué)表達(dá)為msg_auth=f(int_key,message,one_value)步驟303,判斷用戶數(shù)字簽名與多播/廣播服務(wù)器數(shù)字簽名是否相等,如果是,即msg_auth=msg_digt,則執(zhí)行步驟304,判定接收的廣播信息有效,否則執(zhí)行步驟305,判定該廣播信息無效。若廣播信息為信令信息,則執(zhí)行該信令的動作。
當(dāng)多播/廣播服務(wù)器參數(shù)為增1計(jì)數(shù)器的當(dāng)前值時(shí),用戶完整性驗(yàn)證的步驟如下首先,步驟401,當(dāng)用戶接收到廣播信息時(shí),比較接收的時(shí)戳值是否符合用戶的要求,即,比較接收的增1計(jì)數(shù)器的當(dāng)前值是否不小于用戶數(shù)字寄存器內(nèi)的值,如果是,則執(zhí)行步驟402,否則,說明該廣播信息是無效信息,執(zhí)行步驟406,丟棄該條廣播信息并結(jié)束辦流程;步驟402,用戶取出保存的完整性密鑰以及接收的時(shí)戳值和廣播信息內(nèi)容的值,用與多播/廣播服務(wù)器相同的數(shù)字簽名算法計(jì)算用戶數(shù)字簽名。設(shè)用戶數(shù)字簽名為msg_auth,數(shù)學(xué)表達(dá)為msg_auth=f(int_key,message,one_value)步驟403,判斷用戶數(shù)字簽名與多播/廣播服務(wù)器數(shù)字簽名是否相等,如果是,即msg_auth=msg_digt,則執(zhí)行步驟404,判定接收的廣播信息有效,并將接收的增1計(jì)數(shù)器的當(dāng)前值賦值給用戶數(shù)字寄存器的值,否則執(zhí)行步驟405,判定接收的廣播信息無效。若廣播信息為信令信息,則執(zhí)行該信令的動作。
以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,例如所述廣播信息可以是業(yè)務(wù)信息,也可以是信令信息,數(shù)字簽名算法可以是各種算法。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種廣播信息完整性的保護(hù)方法,其特征在于,該方法包括,A)多播/廣播服務(wù)器與用戶協(xié)商完整性密鑰后,多播/廣播服務(wù)器至少以完整性密鑰和廣播信息為變量進(jìn)行運(yùn)算,生成多播/廣播服務(wù)器數(shù)字簽名,并廣播發(fā)送廣播信息和多播/廣播服務(wù)器數(shù)字簽名給用戶;B)用戶以協(xié)商的完整性密鑰和接收的廣播信息為變量進(jìn)行運(yùn)算,生成用戶側(cè)數(shù)字簽名,判斷用戶數(shù)字簽名是否與多播/廣播服務(wù)器數(shù)字簽名相同,如果是,則判決接收的廣播信息有效,否則判決接收的廣播信息無效。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,用于生成多播/廣播服務(wù)器數(shù)字簽名的變量進(jìn)一步包括當(dāng)前多播/廣播服務(wù)器參數(shù),并且該參數(shù)值廣播至用戶,用于生成用戶數(shù)字簽名的變量進(jìn)一步包括用戶接收的當(dāng)前多播/廣播服務(wù)器參數(shù)。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述步驟B之前進(jìn)一步包括,判斷用戶接收的當(dāng)前多播/廣播服務(wù)器參數(shù)是否符合用戶參數(shù)的要求,如果是,則執(zhí)行步驟B,否則,丟棄該廣播信息并結(jié)束。
4.根據(jù)權(quán)利要求2或3所述的方法,其特征在于,所述當(dāng)前多播/廣播服務(wù)器參數(shù)為其時(shí)戳值。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述判斷用戶接收的當(dāng)前多播/廣播服務(wù)器參數(shù)是否符合用戶參數(shù)的要求包括,判斷所述時(shí)戳值是否在用戶時(shí)鐘值的時(shí)間窗內(nèi)。
6.根據(jù)權(quán)利要求2或3所述的方法,其特征在于,所述當(dāng)前多播/廣播服務(wù)器參數(shù)值為其增1計(jì)數(shù)器的當(dāng)前值。
7.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述判斷用戶接收的當(dāng)前多播/廣播服務(wù)器參數(shù)是否符合用戶參數(shù)的要求包括,判斷所述增1計(jì)數(shù)器的當(dāng)前值是否不小于用戶數(shù)字寄存器的值;如果用戶數(shù)字簽名與多播/廣播服務(wù)器數(shù)字簽名相同,該方法進(jìn)一步包括,將接收的增1計(jì)數(shù)器的值賦值給用戶數(shù)字寄存器。
8.根據(jù)權(quán)利要求1所述的方法,其特征在于,設(shè)置所述完整性密鑰可進(jìn)行更新,設(shè)置所述增1計(jì)數(shù)器的長度在生命周期內(nèi)計(jì)數(shù)器值不重復(fù)。
9.根據(jù)權(quán)利要求1所述的方法,其特征在于,完整性密鑰進(jìn)行更新或用戶開機(jī)或從非服務(wù)區(qū)轉(zhuǎn)入服務(wù)區(qū)或多播/廣播服務(wù)器故障恢復(fù)后,步驟A所述多播/廣播服務(wù)器與用戶協(xié)商完整性密鑰包括,A1)多播/廣播服務(wù)器接收到用戶的服務(wù)請求后,生成業(yè)務(wù)信息的加密密鑰和完整性密鑰;A2)用預(yù)先與用戶共同保存的私鑰加密業(yè)務(wù)信息的加密密鑰和完整性密鑰,并廣播發(fā)送至用戶,A3)用戶接收到被加密的完整性密鑰信息后,用用戶私鑰解密來自多播/廣播服務(wù)器的業(yè)務(wù)信息的加密密鑰和完整性密鑰并保存。
10.根據(jù)權(quán)利要求9所述的方法,其特征在于,所述步驟A2進(jìn)一步包括,多播/廣播服務(wù)器提取其增1計(jì)數(shù)器的值,伴隨加密了的業(yè)務(wù)信息的加密密鑰和完整性密鑰發(fā)送給用戶;所述步驟A3進(jìn)一步包括,用戶使用私鑰驗(yàn)證來自多播/廣播服務(wù)器的加密了的業(yè)務(wù)信息的加密密鑰和完整性密鑰信息是否完整,如果是,將接收的增1計(jì)數(shù)器的值賦值給用戶的數(shù)字寄存器,并向多播/廣播服務(wù)器發(fā)送確認(rèn)消息,否則,向多播/廣播服務(wù)器發(fā)送錯誤消息,并返回步驟A2。
全文摘要
本發(fā)明公開了一種多播/廣播中信息完整性保護(hù)的方法,該方法包括A)多播/廣播服務(wù)器與用戶協(xié)商完整性密鑰后,多播/廣播服務(wù)器至少以完整性密鑰和廣播信息為變量進(jìn)行運(yùn)算,生成多播/廣播服務(wù)器數(shù)字簽名,并廣播發(fā)送廣播信息和多播/廣播服務(wù)器數(shù)字簽名給用戶;B)用戶以協(xié)商的完整性密鑰和接收的廣播信息為變量進(jìn)行運(yùn)算,生成用戶側(cè)數(shù)字簽名,判斷用戶數(shù)字簽名是否與多播/廣播服務(wù)器數(shù)字簽名相同,如果是,則判決接收的廣播信息有效,否則判決接收的廣播信息無效。本發(fā)明通過對多播/廣播服務(wù)器的廣播信息進(jìn)行數(shù)字簽名,可以有效防止多播/廣播中信息被攻擊者修改或偽造。
文檔編號H04L9/00GK1595880SQ0315703
公開日2005年3月16日 申請日期2003年9月11日 優(yōu)先權(quán)日2003年9月11日
發(fā)明者鄭志彬 申請人:華為技術(shù)有限公司