消息訪問控制方法、裝置和系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通信技術(shù)領(lǐng)域,尤其涉及一種消息訪問控制方法、裝置和系統(tǒng)。
【背景技術(shù)】
[0002]目前,消息服務(wù)中最常用的消息分發(fā)模式是發(fā)布/訂閱模式,發(fā)布/訂閱模式中,由消息發(fā)布設(shè)備將消息發(fā)布到特定的主題,消息服務(wù)器記錄所有的消息以及當(dāng)前處于活動狀態(tài)的長期訂閱方。通過對訂閱方的認證和授權(quán),消息服務(wù)器為消息傳送系統(tǒng)提供了一個安全的環(huán)境。一旦消息發(fā)布設(shè)備將消息發(fā)布到某一具體的主題,消息服務(wù)器就將這些消息推送到經(jīng)過認證和授權(quán)的訂閱方。
[0003]現(xiàn)有技術(shù)中,對訂閱方的認證和授權(quán)由消息服務(wù)器來執(zhí)行。訂閱方向消息服務(wù)器發(fā)出創(chuàng)建安全套接層或傳輸層的安全網(wǎng)絡(luò)鏈接請求,安全網(wǎng)絡(luò)鏈接請求中包含訂閱方的認證信息,消息服務(wù)器根據(jù)訂閱方的認證信息對訂閱方的身份進行認證。
[0004]然而現(xiàn)有技術(shù)中,消息發(fā)布設(shè)備和消息服務(wù)器不一定是由同一個機構(gòu)進行管理和維護。當(dāng)消息發(fā)布設(shè)備和消息服務(wù)器由不同的機構(gòu)進行管理和維護時,消息發(fā)布設(shè)備無法了解和控制消息被發(fā)送給哪些訂閱方,消息發(fā)布設(shè)備發(fā)布的消息可能會被濫用,增加了發(fā)布方發(fā)布的消息被濫用的可能性。
【發(fā)明內(nèi)容】
[0005]本發(fā)明提供一種消息訪問控制方法、裝置和系統(tǒng),用于解決現(xiàn)有技術(shù)中消息發(fā)布設(shè)備無法了解和控制消息被發(fā)送給哪些消息訂閱設(shè)備,導(dǎo)致消息可能被濫用的問題。
[0006]本發(fā)明的第一個方面是提供一種消息訪問控制方法,包括:
[0007]消息發(fā)布設(shè)備獲取待發(fā)送給經(jīng)過認證的消息訂閱設(shè)備的待發(fā)布內(nèi)容;
[0008]所述消息發(fā)布設(shè)備根據(jù)對稱密鑰對所述待發(fā)布內(nèi)容進行加密,得到經(jīng)對稱密鑰加密的待發(fā)布內(nèi)容;
[0009]所述消息發(fā)布設(shè)備根據(jù)所述消息訂閱設(shè)備的認證信息對所述對稱密鑰進行處理,得到所述對稱密鑰的索引;
[0010]所述消息發(fā)布設(shè)備根據(jù)所述消息訂閱設(shè)備的數(shù)字證書對所述經(jīng)對稱密鑰加密的待發(fā)布內(nèi)容和所述對稱密鑰的索引進行簽名;
[0011]所述消息發(fā)布設(shè)備將攜帶待發(fā)布消息的主題、經(jīng)數(shù)字證書簽名且經(jīng)對稱密鑰加密的待發(fā)布內(nèi)容、經(jīng)數(shù)字證書簽名的對稱密鑰的索引以及待發(fā)布消息的消息序列號的待發(fā)布消息發(fā)送給消息服務(wù)器,以使所述消息服務(wù)器根據(jù)所述待發(fā)布消息的主題將所述待發(fā)布消息推送給訂閱所述主題相關(guān)消息的消息訂閱設(shè)備,以使經(jīng)過認證的消息訂閱設(shè)備根據(jù)所述待發(fā)布消息的消息序列號確定未重復(fù)接收時根據(jù)數(shù)字證書、認證信息和所述對稱密鑰的索引對所述待發(fā)布消息進行處理,得到待發(fā)布內(nèi)容。
[0012]進一步地,所述對稱密鑰的索引包括:密鑰消息的主題以及第一密鑰編號;
[0013]所述消息訂閱設(shè)備的認證信息包括:所述消息訂閱設(shè)備的公鑰;
[0014]所述的方法還包括:
[0015]所述消息發(fā)布設(shè)備向所述消息服務(wù)器發(fā)送密鑰消息,所述密鑰消息中攜帶第二密鑰編號以及經(jīng)消息訂閱設(shè)備的公鑰加密的對稱密鑰,以使所述消息服務(wù)器將所述密鑰消息發(fā)送給消息訂閱設(shè)備,以使所述消息訂閱設(shè)備在所述第一密鑰編號和所述第二密鑰編號相同時根據(jù)公鑰對應(yīng)的私鑰對經(jīng)所述公鑰加密的對稱密鑰進行解密,得到所述對稱密鑰,根據(jù)所述對稱密鑰對所述待發(fā)布內(nèi)容進行解密,得到待發(fā)布內(nèi)容。
[0016]進一步地,所述消息發(fā)布設(shè)備設(shè)置有消息分發(fā)中心;所述密鑰分發(fā)中心預(yù)存有所述對稱密鑰以及所述對稱密鑰對應(yīng)的目錄地址;
[0017]所述對稱密鑰的索引包括:所述消息分發(fā)中心的目錄地址;
[0018]所述消息訂閱設(shè)備的認證信息包括:所述消息發(fā)布設(shè)備為經(jīng)過認證的所述消息訂閱設(shè)備分配的登錄信息,以使所述消息訂閱設(shè)備根據(jù)所述登錄信息登錄所述消息分發(fā)中心,根據(jù)所述目錄地址從所述消息分發(fā)中心獲取所述對稱密鑰,根據(jù)所述對稱密鑰對所述待發(fā)布內(nèi)容進行解密,得到待發(fā)布內(nèi)容。
[0019]本發(fā)明的第二個方面提供一種消息訪問控制方法,包括:
[0020]經(jīng)過認證的消息訂閱設(shè)備接收消息服務(wù)器發(fā)送的待發(fā)布消息,所述待發(fā)布消息包括:待發(fā)布消息的主題,經(jīng)消息訂閱設(shè)備的數(shù)字證書簽名且經(jīng)對稱密鑰加密的待發(fā)布內(nèi)容、經(jīng)消息訂閱設(shè)備的數(shù)字證書簽名的對稱密鑰的索引以及待發(fā)布消息的消息序列號;所述待發(fā)布消息為所述消息服務(wù)器從消息發(fā)布設(shè)備接收到,并根據(jù)所述待發(fā)布消息的主題發(fā)送到訂閱所述主題相關(guān)消息的所述消息訂閱設(shè)備的;
[0021]所述消息訂閱設(shè)備根據(jù)所述待發(fā)布消息的消息序列號確定是否重復(fù)接收到所述待發(fā)布消息;
[0022]若未重復(fù)接收到所述待發(fā)布消息,則所述消息訂閱設(shè)備根據(jù)數(shù)字證書對所述待發(fā)布消息進行驗證;
[0023]驗證通過后,所述消息訂閱設(shè)備根據(jù)所述對稱密鑰的索引以及認證信息從所述消息發(fā)布設(shè)備獲取所述對稱密鑰;
[0024]根據(jù)所述對稱密鑰對所述待發(fā)布消息進行解密,得到待發(fā)布消息。
[0025]進一步地,所述對稱密鑰的索引包括:密鑰消息的主題以及第一密鑰編號;
[0026]所述消息訂閱設(shè)備的認證信息包括:所述消息訂閱設(shè)備的公鑰;
[0027]所述消息訂閱設(shè)備根據(jù)所述對稱密鑰的索引以及認證信息從所述消息發(fā)布設(shè)備獲取所述對稱密鑰,包括:
[0028]所述消息訂閱設(shè)備接收所述消息服務(wù)器發(fā)送的密鑰消息,所述密鑰消息中攜帶第二密鑰編號以及經(jīng)消息訂閱設(shè)備的公鑰加密的對稱密鑰;
[0029]所述消息訂閱設(shè)備判斷所述第一密鑰編號和所述第二密鑰編號是否相同;
[0030]若所述第一密鑰編號和所述第二密鑰編號相同,則所述消息訂閱設(shè)備根據(jù)所述公鑰對應(yīng)內(nèi)的私鑰對經(jīng)過所述公鑰加密的對稱密鑰進行解密,得到所述對稱密鑰。
[0031]進一步地,所述消息發(fā)布設(shè)備設(shè)置有消息分發(fā)中心;所述密鑰分發(fā)中心預(yù)存有所述對稱密鑰以及所述對稱密鑰對應(yīng)的目錄地址;
[0032]所述對稱密鑰的索引包括:所述消息分發(fā)中心的目錄地址;
[0033]所述消息訂閱設(shè)備的認證信息包括:所述消息發(fā)布設(shè)備為經(jīng)過認證的所述消息訂閱設(shè)備分配的登錄信息;
[0034]所述消息訂閱設(shè)備根據(jù)所述對稱密鑰的索引以及認證信息從所述消息發(fā)布設(shè)備獲取所述對稱密鑰,包括:
[0035]所述消息訂閱設(shè)備根據(jù)所述登錄信息登錄所述消息分發(fā)中心;
[0036]登錄成功時,根據(jù)所述目錄地址從所述消息分發(fā)中心獲取所述對稱密鑰。
[0037]本發(fā)明的第三個方面提供一種消息訪問控制裝置,包括:
[0038]獲取模塊,用于獲取待發(fā)送給經(jīng)過認證的消息訂閱設(shè)備的待發(fā)布內(nèi)容;
[0039]加密模塊,用于根據(jù)對稱密鑰對所述待發(fā)布內(nèi)容進行加密,得到經(jīng)對稱密鑰加密的待發(fā)布內(nèi)容;
[0040]處理模塊,用于根據(jù)所述消息訂閱設(shè)備的認證信息對所述對稱密鑰進行處理,得到所述對稱密鑰的索引;
[0041]簽名模塊,用于根據(jù)所述消息訂閱設(shè)備的數(shù)字證書對所述經(jīng)對稱密鑰加密的待發(fā)布內(nèi)容和所述對稱密鑰的索引進行簽名;
[0042]發(fā)送模塊,用于將攜帶待發(fā)布消息的主題、經(jīng)數(shù)字證書簽名且經(jīng)對稱密鑰加密的待發(fā)布內(nèi)容、經(jīng)數(shù)字證書簽名的對稱密鑰的索引以及待發(fā)布消息的消息序列號的待發(fā)布消息發(fā)送給消息服務(wù)器,以使所述消息服務(wù)器根據(jù)所述待發(fā)布消息的主題將所述待發(fā)布消息推送給訂閱所述主題相關(guān)消息的消息訂閱設(shè)備,以使經(jīng)過認證的消息訂閱設(shè)備根據(jù)所述待發(fā)布消息的消息序列號確定未重復(fù)接收時根據(jù)數(shù)字證書、認證信息和所述對稱密鑰的索引對所述待發(fā)布消息進行處理,得到待發(fā)布內(nèi)容。
[0043]進一步地,所述對稱密鑰的索引包括:密鑰消息的主題以及第一密鑰編號;
[0044]所述消息訂閱設(shè)備的認證信息包括:所述消息訂閱設(shè)備的公鑰;
[0045]所述發(fā)送模塊,還用于向所述消息服務(wù)器發(fā)送密鑰消息,所述密鑰消息中攜帶第二密鑰編號以及經(jīng)消息訂閱設(shè)備的公鑰加密的對稱密鑰,以使所述消息服務(wù)器將所述密鑰消息發(fā)送給消息訂閱設(shè)備,以使所述消息訂閱設(shè)備在所述第一密鑰編號和所述第二密鑰編號相同時根據(jù)公鑰對應(yīng)的私鑰對經(jīng)所述公鑰加密的對稱密鑰進行解密,得到所述對稱密鑰,根據(jù)所述對稱密鑰對所述待發(fā)布內(nèi)容進行解密,得到待發(fā)布內(nèi)容。
[0046]進一步地,所述消息發(fā)布設(shè)備設(shè)置有消息分發(fā)中心;所述密鑰分發(fā)中心預(yù)存有所述對稱密鑰以及所述對稱密鑰對應(yīng)的目錄地址;
[0047]所述對稱密鑰的索引包括:所述消息分發(fā)中心的目錄地址;
[0048]所述消息訂閱設(shè)備的認證信息包括:所述消息發(fā)布設(shè)備為經(jīng)過認證的所述消息訂閱設(shè)備分配的登錄信息,以使所述消息訂閱設(shè)備根據(jù)所述登錄信息登錄所述消息分發(fā)中心,根據(jù)所述目錄地址從所述消息分發(fā)中心獲取所述對稱密鑰,根據(jù)所述對稱密鑰對所述待發(fā)布內(nèi)容進行解密,得到待發(fā)布內(nèi)容。
[0049]本發(fā)明的第四個方面提供一種消息訪問控制裝置,包括:
[0050]接收模塊,用于接收消息服務(wù)器發(fā)送的待發(fā)布消息,所述待發(fā)布消息包括:待發(fā)布消息的主題,經(jīng)消息訂閱設(shè)備的數(shù)字證書簽名且經(jīng)對稱密鑰加密的待發(fā)布內(nèi)容、經(jīng)消息訂閱設(shè)備的數(shù)字證書簽名的對稱密鑰的索引以及待發(fā)布消息的消息序列號;所述