本公開涉及信息安全和訪問控制技術(shù),更具體地,涉及利用去中心化的公共數(shù)據(jù)庫(kù)來(lái)實(shí)現(xiàn)安全授權(quán)訪問的客戶端裝置、服務(wù)器裝置、訪問控制系統(tǒng)和相應(yīng)的方法。
背景技術(shù):
訪問控制是所有計(jì)算機(jī)系統(tǒng)都需要涉及的機(jī)制,無(wú)論是客戶端/服務(wù)器系統(tǒng),客戶端/瀏覽器系統(tǒng),還是云系統(tǒng),從最簡(jiǎn)單的用戶名/密碼,到廣泛使用的認(rèn)證碼/驗(yàn)證碼(CAPTCHA),以及現(xiàn)在廣泛使用的短信驗(yàn)證碼和基于硬件的UKey等,其中,短信驗(yàn)證碼和UKey都需要外部設(shè)備的支持。訪問控制環(huán)節(jié)最主要的內(nèi)容是確認(rèn)訪問申請(qǐng)的真實(shí)性和有效性。通過(guò)真實(shí)性和有效性的判斷可以有效地抵御部分網(wǎng)絡(luò)攻擊,如重放攻擊,中間人攻擊,進(jìn)而也可以降低拒絕服務(wù)攻擊的風(fēng)險(xiǎn)。
技術(shù)實(shí)現(xiàn)要素:
在下文中給出了關(guān)于本公開的簡(jiǎn)要概述,以便提供關(guān)于本公開的某些方面的基本理解。但是,應(yīng)當(dāng)理解,這個(gè)概述并不是關(guān)于本公開的窮舉性概述。它并不是意圖用來(lái)確定本公開的關(guān)鍵性部分或重要部分,也不是意圖用來(lái)限定本公開的范圍。其目的僅僅是以簡(jiǎn)化的形式給出關(guān)于本公開的某些概念,以此作為稍后給出的更詳細(xì)描述的前序。
鑒于以上問題,本公開的目的是提供一種能夠有效地抵御部分網(wǎng)絡(luò)攻擊的用于授權(quán)訪問的客戶端裝置、服務(wù)器裝置、訪問控制系統(tǒng)和相應(yīng)的方法。
根據(jù)本公開的一方面,提供了一種用于授權(quán)訪問的客戶端裝置,包括:請(qǐng)求生成單元,被配置成生成用于受保護(hù)資源的授權(quán)訪問的請(qǐng)求,并且將該請(qǐng)求發(fā)送到服務(wù)器裝置;記錄單元,被配置成將請(qǐng)求記錄在公共數(shù)據(jù)庫(kù)中,其中,公共數(shù)據(jù)庫(kù)是去中心化的分布式數(shù)據(jù)庫(kù),并且公共數(shù)據(jù)庫(kù)中的 記錄是不可更改的;以及訪問單元,被配置成利用服務(wù)器裝置響應(yīng)于請(qǐng)求而發(fā)送的響應(yīng)信息,執(zhí)行用于訪問受保護(hù)資源的相應(yīng)操作。
根據(jù)本公開的優(yōu)選實(shí)施例,公共數(shù)據(jù)庫(kù)包括區(qū)塊鏈(Blockchain)。
根據(jù)本公開的另一優(yōu)選實(shí)施例,請(qǐng)求生成單元進(jìn)一步被配置成利用客戶端私鑰對(duì)請(qǐng)求進(jìn)行簽名并將簽名后的請(qǐng)求發(fā)送給服務(wù)器裝置,并且記錄單元進(jìn)一步被配置成將簽名后的請(qǐng)求記錄在公共數(shù)據(jù)庫(kù)中。
根據(jù)本公開的另一優(yōu)選實(shí)施例,請(qǐng)求生成單元進(jìn)一步被配置成還將請(qǐng)求在公共數(shù)據(jù)庫(kù)中的位置信息發(fā)送給服務(wù)器裝置。
根據(jù)本公開的另一優(yōu)選實(shí)施例,訪問單元進(jìn)一步被配置成利用服務(wù)器公鑰對(duì)響應(yīng)信息在公共數(shù)據(jù)庫(kù)中的記錄進(jìn)行驗(yàn)證,并且根據(jù)驗(yàn)證的結(jié)果而執(zhí)行相應(yīng)操作。
根據(jù)本公開的另一優(yōu)選實(shí)施例,服務(wù)器裝置包括授權(quán)服務(wù)器和資源服務(wù)器。
根據(jù)本公開的另一優(yōu)選實(shí)施例,請(qǐng)求包括發(fā)送給授權(quán)服務(wù)器的對(duì)于授權(quán)訪問憑證的請(qǐng)求,并且響應(yīng)信息包括來(lái)自授權(quán)服務(wù)器的授權(quán)訪問憑證。
根據(jù)本公開的另一優(yōu)選實(shí)施例,授權(quán)訪問憑證包括與受保護(hù)資源有關(guān)的限制信息。
根據(jù)本公開的另一優(yōu)選實(shí)施例,限制信息包括受保護(hù)資源的管理者的標(biāo)識(shí)、允許客戶端裝置訪問的資源以及授權(quán)訪問憑證的有效期。
根據(jù)本公開的另一優(yōu)選實(shí)施例,限制信息還包括在有效期內(nèi)的訪問次數(shù)設(shè)置,并且訪問單元根據(jù)訪問次數(shù)設(shè)置而執(zhí)行用于訪問受保護(hù)資源的相應(yīng)操作。
根據(jù)本公開的另一優(yōu)選實(shí)施例,請(qǐng)求包括發(fā)送給資源服務(wù)器的數(shù)據(jù)訪問請(qǐng)求,并且響應(yīng)信息包括來(lái)自資源服務(wù)器的數(shù)據(jù)資源。
根據(jù)本公開的另一優(yōu)選實(shí)施例,授權(quán)服務(wù)器和所述資源服務(wù)器是同一服務(wù)器。
根據(jù)本公開的另一方面,還提供了一種用于授權(quán)訪問的服務(wù)器裝置,包括:響應(yīng)生成單元,被配置成響應(yīng)于來(lái)自客戶端裝置的對(duì)于受保護(hù)資源的授權(quán)訪問的請(qǐng)求而生成相應(yīng)的響應(yīng)信息,并且將響應(yīng)信息發(fā)送到客戶端裝置;以及記錄單元,被配置成將響應(yīng)信息記錄在公共數(shù)據(jù)庫(kù)中,其中,公共數(shù)據(jù)庫(kù)是去中心化的分布式數(shù)據(jù)庫(kù),并且公共數(shù)據(jù)庫(kù)中的記錄是不可 更改的。
根據(jù)本公開的另一方面,還提供了一種用于授權(quán)訪問的訪問控制系統(tǒng),該訪問控制系統(tǒng)包括客戶端裝置、服務(wù)器裝置和公共數(shù)據(jù)庫(kù),其中,公共數(shù)據(jù)庫(kù)是去中心化的分布式數(shù)據(jù)庫(kù),并且公共數(shù)據(jù)庫(kù)中的記錄是不可更改的,并且其中,客戶端裝置包括:請(qǐng)求生成單元,被配置成生成用于受保護(hù)資源的授權(quán)訪問的請(qǐng)求,并且將請(qǐng)求發(fā)送到服務(wù)器裝置;第一記錄單元,被配置成將請(qǐng)求記錄在公共數(shù)據(jù)庫(kù)中;以及訪問單元,被配置成利用服務(wù)器裝置響應(yīng)于請(qǐng)求而發(fā)送的響應(yīng)信息,執(zhí)行用于訪問受保護(hù)資源的相應(yīng)操作;以及服務(wù)器裝置包括:響應(yīng)生成單元,被配置成響應(yīng)于請(qǐng)求而生成相應(yīng)的響應(yīng)信息,并且將響應(yīng)信息發(fā)送到客戶端裝置,以及第二記錄單元,被配置成將響應(yīng)信息記錄在公共數(shù)據(jù)庫(kù)中。
根據(jù)本公開的另一方面,還提供了一種在客戶端裝置執(zhí)行的用于授權(quán)訪問的方法,該方法包括:生成用于受保護(hù)資源的授權(quán)訪問的請(qǐng)求,并且將請(qǐng)求發(fā)送到服務(wù)器裝置;將請(qǐng)求記錄在公共數(shù)據(jù)庫(kù)中,其中,公共數(shù)據(jù)庫(kù)是去中心化的分布式數(shù)據(jù)庫(kù),并且公共數(shù)據(jù)庫(kù)中的記錄是不可更改的;以及利用服務(wù)器裝置響應(yīng)于請(qǐng)求而發(fā)送的響應(yīng)信息,執(zhí)行用于訪問受保護(hù)資源的相應(yīng)操作。
根據(jù)本公開的另一方面,還提供了一種在服務(wù)器裝置執(zhí)行的用于授權(quán)訪問的方法,該方法包括:響應(yīng)于來(lái)自客戶端裝置的對(duì)于受保護(hù)資源的授權(quán)訪問的請(qǐng)求而生成相應(yīng)的響應(yīng)信息,并且將響應(yīng)信息發(fā)送到客戶端裝置;以及將響應(yīng)信息記錄在公共數(shù)據(jù)庫(kù)中,其中,公共數(shù)據(jù)庫(kù)是去中心化的分布式數(shù)據(jù)庫(kù),并且公共數(shù)據(jù)庫(kù)中的記錄是不可更改的。
根據(jù)本公開的另一方面,還提供了一種電子設(shè)備,該電子設(shè)備可包括收發(fā)機(jī)和一個(gè)或多個(gè)處理器,這一個(gè)或多個(gè)處理器可被配置成執(zhí)行上述根據(jù)本公開的用于授權(quán)訪問的方法。
根據(jù)本公開的其它方面,還提供了用于實(shí)現(xiàn)上述根據(jù)本公開的方法的計(jì)算機(jī)程序代碼和計(jì)算機(jī)程序產(chǎn)品以及其上記錄有該用于實(shí)現(xiàn)上述根據(jù)本公開的方法的計(jì)算機(jī)程序代碼的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。
根據(jù)本公開的實(shí)施例,可以通過(guò)利用去中心化的公共數(shù)據(jù)庫(kù)而有效地實(shí)現(xiàn)對(duì)于受保護(hù)資源的安全授權(quán)訪問。
在下面的說(shuō)明書部分中給出本公開實(shí)施例的其它方面,其中,詳細(xì)說(shuō)明用于充分地公開本公開實(shí)施例的優(yōu)選實(shí)施例,而不對(duì)其施加限定。
附圖說(shuō)明
本公開可以通過(guò)參考下文中結(jié)合附圖所給出的詳細(xì)描述而得到更好的理解,其中在所有附圖中使用了相同或相似的附圖標(biāo)記來(lái)表示相同或者相似的部件。所述附圖連同下面的詳細(xì)說(shuō)明一起包含在本說(shuō)明書中并形成說(shuō)明書的一部分,用來(lái)進(jìn)一步舉例說(shuō)明本公開的優(yōu)選實(shí)施例和解釋本公開的原理和優(yōu)點(diǎn)。其中:
圖1是示出根據(jù)本公開的實(shí)施例的訪問控制系統(tǒng)的架構(gòu)的示例的示意圖;
圖2是示出根據(jù)本公開的實(shí)施例的客戶端裝置的功能配置示例的框圖;
圖3是示出根據(jù)本公開的實(shí)施例的服務(wù)器裝置的功能配置示例的框圖;
圖4是示出根據(jù)本公開的實(shí)施例的用于授權(quán)訪問的交互流程的示例的示意圖;
圖5是示出根據(jù)本公開的實(shí)施例的基于區(qū)塊鏈的訪問控制實(shí)現(xiàn)的示例的示意圖;
圖6是示出根據(jù)本公開的實(shí)施例的區(qū)塊鏈中的記錄項(xiàng)的格式和內(nèi)容的示例的示意圖;
圖7是示出根據(jù)本公開的實(shí)施例的用于授權(quán)訪問的方法的過(guò)程示例的流程圖;
圖8是示出根據(jù)本公開的實(shí)施例的基于區(qū)塊鏈和OAuth協(xié)議的訪問控制系統(tǒng)的架構(gòu)的示例的示意圖;
圖9是示出根據(jù)本公開的實(shí)施例的基于區(qū)塊鏈的OAuth協(xié)議實(shí)現(xiàn)的示例的示意圖;
圖10是示出應(yīng)用本公開的技術(shù)的用于實(shí)現(xiàn)有限次授權(quán)訪問的交互過(guò)程的示例的流程圖;
圖11A和圖11B是示出應(yīng)用本公開的技術(shù)的用于實(shí)現(xiàn)有限次授權(quán)訪問的示例的示意圖;
圖12是示出根據(jù)本公開的實(shí)施例的在客戶端裝置執(zhí)行的用于授權(quán)訪 問的方法的過(guò)程示例的流程圖;
圖13是示出根據(jù)本公開的實(shí)施例的在服務(wù)器裝置執(zhí)行的用于授權(quán)訪問的方法的過(guò)程示例的流程圖;
圖14是示出根據(jù)本公開的技術(shù)的第一應(yīng)用示例的示意圖;
圖15是示出根據(jù)本公開的技術(shù)的第二應(yīng)用示例的示意圖;以及
圖16是作為本公開的實(shí)施例中可采用的信息處理設(shè)備的個(gè)人計(jì)算機(jī)的示例結(jié)構(gòu)的框圖。
具體實(shí)施方式
在下文中將結(jié)合附圖對(duì)本公開的示范性實(shí)施例進(jìn)行描述。為了清楚和簡(jiǎn)明起見,在說(shuō)明書中并未描述實(shí)際實(shí)施方式的所有特征。然而,應(yīng)該了解,在開發(fā)任何這種實(shí)際實(shí)施例的過(guò)程中必須做出很多特定于實(shí)施方式的決定,以便實(shí)現(xiàn)開發(fā)人員的具體目標(biāo),例如,符合與系統(tǒng)及業(yè)務(wù)相關(guān)的那些限制條件,并且這些限制條件可能會(huì)隨著實(shí)施方式的不同而有所改變。此外,還應(yīng)該了解,雖然開發(fā)工作有可能是非常復(fù)雜和費(fèi)時(shí)的,但對(duì)得益于本公開內(nèi)容的本領(lǐng)域技術(shù)人員來(lái)說(shuō),這種開發(fā)工作僅僅是例行的任務(wù)。
在此,還需要說(shuō)明的一點(diǎn)是,為了避免因不必要的細(xì)節(jié)而模糊了本公開,在附圖中僅僅示出了與根據(jù)本公開的方案密切相關(guān)的設(shè)備結(jié)構(gòu)和/或處理步驟,而省略了與本公開關(guān)系不大的其它細(xì)節(jié)。
接下來(lái),將參照?qǐng)D1至圖16詳細(xì)描述本公開的實(shí)施例。
圖1是示出根據(jù)本公開的實(shí)施例的訪問控制系統(tǒng)的架構(gòu)的示例的示意圖。
如圖1所示,根據(jù)該實(shí)施例的訪問控制系統(tǒng)可包括公共數(shù)據(jù)庫(kù)100、客戶端裝置200和服務(wù)器裝置300。
在本公開的實(shí)施例中,為了保證客戶端裝置200對(duì)于受保護(hù)資源的安全訪問,可使得在授權(quán)訪問過(guò)程中的客戶端裝置200和服務(wù)器裝置300的關(guān)鍵操作分別記錄在公共數(shù)據(jù)庫(kù)100中,由于公共數(shù)據(jù)庫(kù)100是去中心化的分布式數(shù)據(jù)庫(kù),其中的數(shù)據(jù)一經(jīng)記錄便不可更改和刪除,因此有利于抵抗網(wǎng)絡(luò)攻擊,實(shí)現(xiàn)安全訪問控制。下面,將分別參照?qǐng)D2和圖3詳細(xì)描述客戶端裝置200和服務(wù)器裝置300的功能配置示例。
圖2是示出根據(jù)本公開的實(shí)施例的客戶端裝置的功能配置示例的框圖。
如圖2所示,根據(jù)該實(shí)施例的客戶端裝置200可包括請(qǐng)求生成單元210、記錄單元220和訪問單元230。
請(qǐng)求生成單元210可被配置成生成用于受保護(hù)資源的授權(quán)訪問的請(qǐng)求,并且將該請(qǐng)求發(fā)送到服務(wù)器裝置300。
記錄單元220可被配置成將上述請(qǐng)求記錄在公共數(shù)據(jù)庫(kù)100中。
訪問單元230可被配置成利用服務(wù)器裝置300響應(yīng)于請(qǐng)求而發(fā)送的響應(yīng)信息,執(zhí)行用于訪問受保護(hù)資源的相應(yīng)操作。
優(yōu)選地,為了增強(qiáng)安全性,請(qǐng)求生成單元210可進(jìn)一步利用密鑰生成中心針對(duì)客戶端裝置200所生成的身份密鑰對(duì)(包括私鑰(private key,記為SK)和公鑰(public key,即為PK))中的私鑰對(duì)該請(qǐng)求進(jìn)行簽名,將簽名后的請(qǐng)求發(fā)送給服務(wù)器裝置300,并且記錄單元220可將簽名后的請(qǐng)求記錄在公共數(shù)據(jù)庫(kù)100中。該過(guò)程例如可通過(guò)以下表達(dá)式(1)來(lái)表示:
Record 1=SignSK of Client(Hash(Request)) (1)
其中,Request表示來(lái)自客戶端裝置的請(qǐng)求,SK of Client表示客戶端裝置200的私鑰,Hash()表示哈希函數(shù),SignSK of Client表示利用客戶端裝置200的私鑰進(jìn)行簽名,并且Record1表示該簽名后的請(qǐng)求在公共數(shù)據(jù)庫(kù)中的記錄。
優(yōu)選地,請(qǐng)求生成單元210還可將上述請(qǐng)求記錄在公共數(shù)據(jù)庫(kù)中的位置信息(這里例如記為Addr1)發(fā)送給服務(wù)器裝置300。這樣,服務(wù)器裝置300可以根據(jù)所接收到的位置信息而在公共數(shù)據(jù)庫(kù)100中查找簽名后的請(qǐng)求在公共數(shù)據(jù)庫(kù)100中的記錄(上述Record1),并且利用客戶端裝置200的公鑰驗(yàn)證來(lái)自客戶端裝置200的請(qǐng)求的真實(shí)性,該驗(yàn)證過(guò)程例如可通過(guò)以下表達(dá)式(2)來(lái)表示:
Addr 1→Record 1
Verify(Rec ord 1)=VerifyPK of Client(Record 1)=?Hash(Request) (2)
其中,Verify()表示所采用的驗(yàn)證函數(shù),并且PK of Client表示客戶端裝置200的公鑰。
然后,針對(duì)經(jīng)驗(yàn)證合理的請(qǐng)求,服務(wù)器裝置300可生成相應(yīng)的響應(yīng)信 息(這里記為Response)以發(fā)送給客戶端裝置200,并且還將該響應(yīng)信息記錄在公共數(shù)據(jù)庫(kù)100中。優(yōu)選地,為了進(jìn)一步保證安全性,服務(wù)器裝置300也可利用服務(wù)器私鑰對(duì)響應(yīng)信息進(jìn)行簽名,將簽名后的響應(yīng)信息發(fā)送給客戶端裝置200,并且將簽名后的響應(yīng)信息記錄在公共數(shù)據(jù)庫(kù)100中。該過(guò)程例如可通過(guò)以下表達(dá)式(3)來(lái)表示:
Record 2=SignSK of Server(Hash(Response)) (3)
其中,Response表示服務(wù)器裝置生成的響應(yīng)信息,SK of Server表示服務(wù)器裝置300的私鑰,Hash()表示哈希函數(shù),SignSK of Server表示利用服務(wù)器裝置300的私鑰進(jìn)行簽名,并且Record2表示該簽名后的響應(yīng)信息在公共數(shù)據(jù)庫(kù)100中的記錄。
此外,與上述類似,服務(wù)器裝置300也可將簽名后的響應(yīng)信息在公共數(shù)據(jù)庫(kù)中的位置信息(這里例如記為Addr2)發(fā)送給客戶端裝置200,從而客戶端裝置200的訪問單元230可根據(jù)所接收的位置信息而在公共數(shù)據(jù)庫(kù)100中查找簽名后的響應(yīng)信息在公共數(shù)據(jù)庫(kù)100中的記錄,利用服務(wù)器公鑰對(duì)該記錄進(jìn)行驗(yàn)證,并且根據(jù)驗(yàn)證結(jié)果而執(zhí)行相應(yīng)操作。該過(guò)程例如可通過(guò)以下表達(dá)式(4)來(lái)表示:
Addr 2→Record 2
Verify(Rec ord2)=VerifyPK of Server(Record 2)=?Hash(Response) (4)
其中,Verify()表示所采用的驗(yàn)證函數(shù),并且PK of Server表示服務(wù)器裝置300的公鑰。
以上參照?qǐng)D2描述了用于授權(quán)訪問的客戶端裝置的功能配置示例,相對(duì)應(yīng)地,下面將參照?qǐng)D3描述用于授權(quán)訪問的服務(wù)器裝置的功能配置示例。圖3是示出根據(jù)本公開的實(shí)施例的服務(wù)器裝置的功能配置示例的框圖。
如圖3所示,根據(jù)本實(shí)施例的服務(wù)器裝置300可包括響應(yīng)生成單元310和記錄單元320。
響應(yīng)生成單元310可被配置成響應(yīng)于來(lái)自客戶端裝置的對(duì)于受保護(hù)資源的授權(quán)訪問的請(qǐng)求而生成相應(yīng)的響應(yīng)信息,并且將響應(yīng)信息發(fā)送到客戶端裝置200。
優(yōu)選地,如上所述,響應(yīng)生成單元310可利用客戶端公鑰(即,上述PK of Client)對(duì)客戶端裝置200的請(qǐng)求在公共數(shù)據(jù)庫(kù)中的記錄(即,上 述記錄Record1)進(jìn)行驗(yàn)證,并且根據(jù)驗(yàn)證的結(jié)果而生成響應(yīng)信息(即,Response)。該過(guò)程可通過(guò)例如上述表達(dá)式(2)來(lái)表示。
記錄單元320可被配置成將響應(yīng)信息記錄在公共數(shù)據(jù)庫(kù)100中。
優(yōu)選地,如上所述,響應(yīng)生成單元310可進(jìn)一步被配置成利用服務(wù)器私鑰對(duì)響應(yīng)信息進(jìn)行簽名并將簽名后的響應(yīng)信息發(fā)送給客戶端裝置200,并且記錄單元320可進(jìn)一步被配置成將簽名后的響應(yīng)信息記錄在公共數(shù)據(jù)庫(kù)100中。該過(guò)程例如可由上述表達(dá)式(3)來(lái)表示。此外,響應(yīng)生成單元310還可將響應(yīng)信息在公共數(shù)據(jù)庫(kù)中的位置信息(即,上述Addr2)發(fā)送給客戶端裝置200。
應(yīng)理解,服務(wù)器裝置300的功能配置示例是與上述客戶端裝置200的功能配置示例相對(duì)應(yīng)的,因此在此未詳細(xì)描述的內(nèi)容可參見以上相應(yīng)位置的描述,在此不再重復(fù)。
為了有助于理解上述授權(quán)訪問的實(shí)現(xiàn)過(guò)程,下面將參照?qǐng)D4描述用于授權(quán)訪問的客戶端裝置200、服務(wù)器裝置300以及公共數(shù)據(jù)庫(kù)100之間的交互流程。圖4是示出根據(jù)本公開的實(shí)施例的用于授權(quán)訪問的交互流程的示例的示意圖。
如圖4所示,首先,在步驟S101中,客戶端裝置200利用客戶端私鑰對(duì)請(qǐng)求進(jìn)行簽名以生成用于受保護(hù)資源的授權(quán)訪問的請(qǐng)求,并且在步驟S102中將該請(qǐng)求記錄在公共數(shù)據(jù)庫(kù)100中。在步驟S103中,公共數(shù)據(jù)庫(kù)100將上述請(qǐng)求添加到其記錄中,并且該記錄(即,Record1)的位置例如為Addr1。然后,在步驟S104中,客戶端裝置200將簽名后的請(qǐng)求及其在公共數(shù)據(jù)庫(kù)100中的位置信息Addr1發(fā)送給服務(wù)器裝置300。接下來(lái),在步驟S105中,服務(wù)器裝置300根據(jù)位置信息Addr1,利用客戶端公鑰對(duì)上述請(qǐng)求記錄Record1進(jìn)行驗(yàn)證,并且如果驗(yàn)證該請(qǐng)求是合理的,則在步驟S106中生成相應(yīng)的響應(yīng)信息并且利用服務(wù)器私鑰對(duì)該響應(yīng)信息進(jìn)行簽名。然后,在步驟S107中,服務(wù)器裝置300將該簽名后的響應(yīng)信息記錄在公共數(shù)據(jù)庫(kù)100中,并且在步驟S108中,公共數(shù)據(jù)庫(kù)100將該響應(yīng)信息記錄添加到其記錄中,并且該記錄(即,Record2)的位置例如為Addr2。接下來(lái),在步驟S109中,服務(wù)器裝置300將該簽名后的響應(yīng)信息及其在公共數(shù)據(jù)庫(kù)中的位置信息Addr2發(fā)送給客戶端裝置200。如果需要,則客戶端裝置200可在步驟S110(可選的,如虛線所示)中根據(jù)位置信息Addr2,利用服務(wù)器公鑰對(duì)響應(yīng)信息在公共數(shù)據(jù)庫(kù)100中的記錄Record2進(jìn)行驗(yàn)證,并且根據(jù)驗(yàn)證結(jié)果而執(zhí)行相應(yīng)的操作,例如,訪問受 保護(hù)資源等。
應(yīng)理解,上述交互過(guò)程僅為示例而非限制,并且所示出的各個(gè)步驟的執(zhí)行順序也僅是為了描述方便而不限于此,根據(jù)需要,一些步驟可并行地執(zhí)行或者其執(zhí)行順序可改變。
根據(jù)以上描述的過(guò)程可以看出,由于客戶端裝置200和服務(wù)器裝置300的交互過(guò)程被記錄在公共數(shù)據(jù)庫(kù)100中,而該公共數(shù)據(jù)庫(kù)100是一個(gè)去中心化的分布式數(shù)據(jù)庫(kù),并且其中的記錄是不可更改(即,不可刪除和/或修改)的,因此通過(guò)分別利用客戶端私鑰和服務(wù)器私鑰對(duì)交互過(guò)程進(jìn)行簽名并且記錄在公共數(shù)據(jù)庫(kù)中,可以有效地抵抗網(wǎng)絡(luò)攻擊。在這里,應(yīng)指出,由于公共數(shù)據(jù)庫(kù)100是由所有網(wǎng)絡(luò)實(shí)體共享的分布式數(shù)據(jù)庫(kù),因此從理論上來(lái)講,如果一半以上或者三分之二以上的網(wǎng)絡(luò)實(shí)體都同意更改公共數(shù)據(jù)庫(kù)中的數(shù)據(jù)記錄,則可以允許對(duì)其中的記錄進(jìn)行更改。然而,實(shí)際上,很難使得一半以上或三分之二以上的網(wǎng)絡(luò)實(shí)體都同意更改數(shù)據(jù)記錄,因此這里通常認(rèn)為公共數(shù)據(jù)庫(kù)中的數(shù)據(jù)一經(jīng)記錄便不可修改和刪除。
優(yōu)選地,作為示例,上述公共數(shù)據(jù)庫(kù)可包括區(qū)塊鏈。區(qū)塊鏈(Blockchain)被視為比特幣(Bitcoin)背后的主要技術(shù)創(chuàng)新。因?yàn)樗鳛橐粋€(gè)無(wú)需信任的證明機(jī)制,用于去證明網(wǎng)絡(luò)中所有的交易。區(qū)塊鏈?zhǔn)且环N“非信任”架構(gòu)?!胺切湃巍奔軜?gòu)就是在整個(gè)系統(tǒng)中的多個(gè)參與方無(wú)需互相信任就能夠完成各種類型的交易和協(xié)作。這恰恰一直是傳統(tǒng)互聯(lián)網(wǎng)到目前為止最薄弱的一項(xiàng)。與需要建立和維持與交易對(duì)方(其他人)或第三方中介(如銀行)的信任相比,用戶可以信任由“挖礦者-審計(jì)(miner-accountants)”維持的、在世界范圍內(nèi)存儲(chǔ)在多個(gè)不同的去中心化節(jié)點(diǎn)上的公共賬務(wù)系統(tǒng)。作為用于去中心化的非信任的新交易系統(tǒng)的架構(gòu)的區(qū)塊鏈?zhǔn)顷P(guān)鍵創(chuàng)新。區(qū)塊鏈允許在全球的所有實(shí)體之間進(jìn)行無(wú)需干預(yù)的和去中心化的任何類型的所有交易。區(qū)塊鏈像是用于在因特網(wǎng)協(xié)議的現(xiàn)有棧上運(yùn)行的另一應(yīng)用層,為因特網(wǎng)增加了全新的層以實(shí)現(xiàn)經(jīng)濟(jì)交易,包括即時(shí)數(shù)字貨幣支付(在全球廣泛地使用加密貨幣的情況下)和更長(zhǎng)期、更復(fù)雜的經(jīng)濟(jì)合約。任何貨幣、經(jīng)濟(jì)合約或者硬或軟資產(chǎn)都可通過(guò)區(qū)塊鏈系統(tǒng)進(jìn)行交易。此外,區(qū)塊鏈不僅可用于交易,并且還可用作用于記錄、跟蹤、監(jiān)視和交易所有資產(chǎn)的登記和庫(kù)存系統(tǒng)。區(qū)塊鏈在字面上像是用于登記所有資產(chǎn)的巨大擴(kuò)展表以及用于在全球范圍交易這些資產(chǎn)的記賬系統(tǒng),包括世界范圍的所有實(shí)體持有的所有形式的資產(chǎn)。因此,區(qū)塊鏈可以用于任何形式的資產(chǎn)登記、存量和交換,包括金融、經(jīng)濟(jì)和金錢的各個(gè)領(lǐng) 域;硬資產(chǎn)(物理財(cái)產(chǎn))和無(wú)形資產(chǎn)(投票、構(gòu)思、名譽(yù)、意圖、健康數(shù)據(jù)等等)。比特幣點(diǎn)對(duì)點(diǎn)網(wǎng)絡(luò)將所有的交易歷史都儲(chǔ)存在“區(qū)塊鏈”(Blockchain)中。區(qū)塊鏈在持續(xù)延長(zhǎng),而且新區(qū)塊一旦加入到區(qū)塊鏈中,就不會(huì)再被移走。區(qū)塊鏈實(shí)際上就是一個(gè)P2P網(wǎng)絡(luò)平臺(tái),也就是一群分散的用戶端節(jié)點(diǎn),并由所有參與者組成的分布式數(shù)據(jù)庫(kù),是對(duì)所有比特幣交易歷史的記錄。然而,隨著區(qū)塊鏈技術(shù)的發(fā)展,它也不僅僅只是應(yīng)用在虛擬貨幣的支付領(lǐng)域。區(qū)塊鏈技術(shù)的去中心化無(wú)需信任的點(diǎn)到點(diǎn)模型意味著,在最基本的水平,無(wú)中間人交易。區(qū)塊鏈?zhǔn)潜忍貛诺木W(wǎng)絡(luò)基礎(chǔ),但區(qū)塊鏈本身意味著更多。如果說(shuō)區(qū)塊鏈技術(shù)1.0是為虛擬貨幣而生,則區(qū)塊鏈技術(shù)2.0的核心特性信用信任成為目前的重要應(yīng)用方向,被建議做區(qū)塊鏈合同、公證等。而區(qū)塊鏈技術(shù)3.0則被定位為金融應(yīng)用以外的應(yīng)用領(lǐng)域,如在政府領(lǐng)域、健康、科學(xué)、文化和藝術(shù)等。
區(qū)塊鏈?zhǔn)且粋€(gè)去中心化的、分布式的、按時(shí)間順序排列的公共記錄,或稱為公共賬務(wù)系統(tǒng)。區(qū)塊鏈由所有用戶共享以及共同維護(hù)。區(qū)塊鏈中的記錄可以被用來(lái)驗(yàn)證雙重消費(fèi),如果區(qū)塊鏈被應(yīng)用于虛擬貨幣的賬單,則可以用來(lái)驗(yàn)證比特幣交易的永久性并防止雙重消費(fèi)。區(qū)塊鏈在本發(fā)明中則可以用于避免同一認(rèn)證碼的多次使用,將區(qū)塊鏈技術(shù)應(yīng)用在授權(quán)服務(wù)平臺(tái),則可通過(guò)按時(shí)間順序的公共記錄集,驗(yàn)證授權(quán)協(xié)議相關(guān)的步驟以及防止重放攻擊。
除了比特幣之外,根據(jù)本公開的實(shí)施例的公共數(shù)據(jù)庫(kù)還可采用諸如萊特幣這樣的基于去中心化區(qū)塊鏈的公共賬務(wù)(public ledger)平臺(tái),還有Hyperledger這樣采用“共識(shí)”而非挖礦的去中心化的分布式賬務(wù)系統(tǒng)。
本發(fā)明的授權(quán)服務(wù)同樣可以基于Hyperledger平臺(tái)實(shí)現(xiàn)應(yīng)用,例如,將請(qǐng)求和響應(yīng)信息記錄在Hyperledger的共識(shí)池中,例如測(cè)試池(testpool)、用戶池(custompool)等,testpool對(duì)所有人都免費(fèi)開放,custompool則是允許用戶自定義池子。通過(guò)Hyperledger的“共識(shí)”機(jī)制,確認(rèn)記錄有效后,該記錄則不可被刪改。
下面將以區(qū)塊鏈為例來(lái)描述根據(jù)本公開的實(shí)施例的訪問控制實(shí)現(xiàn),但是應(yīng)理解,本公開當(dāng)然不限于此,而是可應(yīng)用于任何去中心化的、分布式的且其中的記錄不可刪除和修改的數(shù)據(jù)庫(kù)系統(tǒng)。圖5是示出了根據(jù)本公開的實(shí)施例的基于區(qū)塊鏈的訪問控制實(shí)現(xiàn)的示例的示意圖。
如圖5所示,客戶端裝置200和服務(wù)器裝置300分別將各自的簽名后的請(qǐng)求和響應(yīng)信息添加到區(qū)塊鏈中,這些記錄按照時(shí)間先后順序排列在區(qū) 塊鏈中,并且一經(jīng)記錄則不可修改和刪除,從而客戶端裝置200和服務(wù)器裝置300可根據(jù)請(qǐng)求和響應(yīng)信息在區(qū)塊鏈中的位置信息而查找相應(yīng)記錄,利用公鑰分別對(duì)區(qū)塊鏈中的記錄進(jìn)行驗(yàn)證,以確保訪問控制的安全性。
圖6是示出根據(jù)本公開的實(shí)施例的區(qū)塊鏈中的記錄項(xiàng)的格式和內(nèi)容的示例的示意圖。
如圖6所示,區(qū)塊鏈中的記錄可包括地址、內(nèi)容創(chuàng)建者的簽名以及其它應(yīng)用相關(guān)信息。例如,客戶端裝置200記錄在區(qū)塊鏈中的請(qǐng)求記錄包括請(qǐng)求在區(qū)塊鏈中的位置信息(Addr1)和請(qǐng)求的簽名,并且在服務(wù)器裝置300將其響應(yīng)信息記錄在區(qū)塊鏈中之后,此時(shí)的區(qū)塊鏈中的記錄項(xiàng)包括響應(yīng)信息在區(qū)塊鏈中的位置信息(Addr2)、響應(yīng)的簽名、請(qǐng)求在區(qū)塊鏈中的位置信息(Addr1)、請(qǐng)求的簽名等等,即,區(qū)塊鏈中的記錄按照記錄的時(shí)間順序而增長(zhǎng),并且不可刪除和修改。
應(yīng)理解,這里所給出的記錄項(xiàng)的格式和內(nèi)容僅為示例,可根據(jù)實(shí)際應(yīng)用需求而設(shè)置其中的記錄項(xiàng)的格式和內(nèi)容,本公開對(duì)此不作限制。
與上述交互過(guò)程相對(duì)應(yīng)的,下面將參照?qǐng)D7描述根據(jù)本公開的實(shí)施例的用于授權(quán)訪問的方法的過(guò)程示例。圖7是示出根據(jù)本公開的實(shí)施例的用于授權(quán)訪問的方法的過(guò)程示例的流程圖。
如圖7所示,該方法開始于步驟S701,然后進(jìn)行到步驟S702。在步驟S702中,客戶端裝置200生成用于受保護(hù)資源的授權(quán)訪問的請(qǐng)求,利用客戶端私鑰簽名后記錄到區(qū)塊鏈中,并得到該請(qǐng)求在區(qū)塊鏈中的位置信息。然后,該方法進(jìn)行到步驟S703。在步驟S703中,客戶端裝置200將其簽名后的請(qǐng)求以及該請(qǐng)求在區(qū)塊鏈中的位置信息發(fā)送給服務(wù)器裝置300。接下來(lái),在步驟S704中,服務(wù)器裝置300根據(jù)所接收的位置信息而得到區(qū)塊鏈中的請(qǐng)求記錄,并且利用客戶端公鑰驗(yàn)證該記錄。然后,該方法進(jìn)行到步驟S705,在步驟S705中判斷該記錄是否有效。如果判斷無(wú)效,則該方法結(jié)束。如果判斷有效,則方法進(jìn)行到步驟S706,在步驟S706中,服務(wù)器裝置300針對(duì)有效的請(qǐng)求而生成響應(yīng)信息,利用服務(wù)器私鑰簽名后記錄在區(qū)塊鏈中,并得到該響應(yīng)信息在區(qū)塊鏈中的位置信息。接下來(lái),在步驟S707中,服務(wù)器裝置300將簽名后的響應(yīng)信息及其在區(qū)塊鏈中的位置信息發(fā)送給客戶端裝置200,并且該方法結(jié)束。
以上參照?qǐng)D7描述了根據(jù)本公開的用于授權(quán)訪問的方法的過(guò)程示例,但是應(yīng)理解,這僅是示例而非限制,并且本領(lǐng)域技術(shù)人員可根據(jù)需要而對(duì) 上述過(guò)程進(jìn)行修改。例如,如上所述,如果需要,則客戶端裝置200還可在接下來(lái)的步驟中根據(jù)所接收的位置信息而得到區(qū)塊鏈中的響應(yīng)信息記錄,利用服務(wù)器公鑰驗(yàn)證該記錄,并且根據(jù)驗(yàn)證結(jié)果而執(zhí)行相應(yīng)操作。
以上參照?qǐng)D1至圖7描述了授權(quán)訪問控制的一般示例,下面將結(jié)合OAuth(開放授權(quán),http://oauth.net/)標(biāo)準(zhǔn)來(lái)描述應(yīng)用本公開的技術(shù)的授權(quán)訪問控制的實(shí)現(xiàn)。
在具體描述OAuth協(xié)議與本發(fā)明的技術(shù)的結(jié)合之前,在此先簡(jiǎn)要介紹一下OAuth協(xié)議。OAuth是一個(gè)關(guān)于授權(quán)(authorization)的開放網(wǎng)絡(luò)協(xié)議(標(biāo)準(zhǔn))。在OAuth協(xié)議中,引入了授權(quán)層并且將客戶端的角色與資源所有者的角色分離,客戶端請(qǐng)求對(duì)由資源所有者控制的并且由資源服務(wù)器擁有的資源的訪問,并且被發(fā)放與資源所有者的憑證不同的憑證集合。在OAuth協(xié)議中,定義了以下四個(gè)角色:資源所有者,其是能夠授權(quán)對(duì)受保護(hù)資源的訪問的實(shí)體,當(dāng)資源所有者是人時(shí),也可稱為終端用戶;資源服務(wù)器,其是擁有受保護(hù)資源的服務(wù)器,能夠使用訪問令牌接受和響應(yīng)對(duì)受保護(hù)資源的訪問請(qǐng)求;客戶端,其是代表資源所有者并且利用資源所有者的授權(quán)而進(jìn)行受保護(hù)資源請(qǐng)求的應(yīng)用,其并不暗示任何特定的實(shí)現(xiàn)特性(例如,該應(yīng)用在服務(wù)器、臺(tái)式機(jī)還是其它裝置上執(zhí)行);以及授權(quán)服務(wù)器,其是在成功認(rèn)證了資源所有者并且獲得了授權(quán)之后對(duì)客戶端發(fā)放訪問令牌的服務(wù)器,其可以與資源服務(wù)器是同一服務(wù)器或者也可以是不同的實(shí)體,并且單個(gè)授權(quán)服務(wù)器可發(fā)出由多個(gè)資源服務(wù)器接受的訪問令牌。
OAuth的發(fā)展促進(jìn)了開放API領(lǐng)域的新應(yīng)用的開發(fā)。OAuth為應(yīng)用提供了一種訪問受保護(hù)資源的方法。在應(yīng)用訪問受保護(hù)資源之前,它必須先從資源所有者處獲取授權(quán)(訪問許可),然后用訪問許可交換訪問令牌(代表訪問許可的作用域、持續(xù)時(shí)間和其它屬性)。應(yīng)用通過(guò)向資源服務(wù)器出示訪問令牌來(lái)訪問受保護(hù)資源。目前被推薦使用的是OAuth 2.0標(biāo)準(zhǔn)。然而,OAuth 2.0協(xié)議本身不提供安全性和完整性保護(hù)機(jī)制,開發(fā)者在使用OAuth 2.0時(shí),需要額外提供通信安全性的保護(hù)機(jī)制。
OAuth 2.0協(xié)議本身無(wú)法抵御重放攻擊和中間人攻擊,例如網(wǎng)絡(luò)傳輸時(shí)的重放攻擊,認(rèn)證碼可能被截取并用來(lái)多次申請(qǐng)授權(quán)訪問憑證等。如上所述,通過(guò)將授權(quán)的交互過(guò)程記錄在公共數(shù)據(jù)庫(kù)(例如,區(qū)塊鏈)中,即,通過(guò)將OAuth協(xié)議與區(qū)塊鏈技術(shù)相結(jié)合,可以有效地抵抗中間人攻擊和重放攻擊。作為示例,下面將詳細(xì)描述基于區(qū)塊鏈和OAuth協(xié)議的授權(quán)訪問控制的實(shí)現(xiàn)的示例。
圖8是示出根據(jù)本公開的實(shí)施例的基于區(qū)塊鏈和OAuth協(xié)議的訪問控制系統(tǒng)的架構(gòu)的示例的示意圖。
如圖8所示,根據(jù)該實(shí)施例的訪問控制系統(tǒng)可包括區(qū)塊鏈100、客戶端裝置200、授權(quán)服務(wù)器400、資源服務(wù)器500和資源所有者600。其中,區(qū)塊鏈100和客戶端裝置200與上述公共數(shù)據(jù)庫(kù)100和客戶端裝置200具有相同的配置,在此不再重復(fù)。授權(quán)服務(wù)器400和資源服務(wù)器500可具有與上述服務(wù)器裝置300相同的配置,即,服務(wù)器裝置300可包括授權(quán)服務(wù)器400和資源服務(wù)器500,并且這兩個(gè)服務(wù)器也可以是同一個(gè)服務(wù)器裝置,因此在此不再重復(fù)描述其配置。下面將僅簡(jiǎn)單介紹在OAuth協(xié)議中上述各個(gè)裝置的作用。
資源所有者600是能夠授權(quán)許可對(duì)受保護(hù)資源的訪問的實(shí)體;資源服務(wù)器500是擁有受保護(hù)資源的服務(wù)器,其能夠接受和響應(yīng)使用訪問令牌的對(duì)受保護(hù)資源的請(qǐng)求;客戶端裝置200是代表資源所有者并且利用資源所有者的授權(quán)對(duì)受保護(hù)資源進(jìn)行請(qǐng)求的應(yīng)用,其并不限于任何特定實(shí)現(xiàn)形式,即,其可以在服務(wù)器、計(jì)算機(jī)、便攜式設(shè)備或者其它裝置上實(shí)現(xiàn);以及授權(quán)服務(wù)器400是在成功認(rèn)證了資源所有者并且獲得授權(quán)之后對(duì)客戶端裝置200發(fā)出訪問令牌的服務(wù)器。
下面將參照?qǐng)D9詳細(xì)描述基于區(qū)塊鏈的OAuth協(xié)議的實(shí)現(xiàn)過(guò)程的示例。圖9是示出根據(jù)本公開的實(shí)施例的基于區(qū)塊鏈的OAuth協(xié)議實(shí)現(xiàn)的示例的示意圖。
如圖9所示,首先,在步驟S901中,客戶端裝置200向資源所有者600發(fā)起授權(quán)請(qǐng)求,然后,在步驟S902中,資源所有者600將用戶授權(quán)憑證發(fā)送給客戶端裝置200。接下來(lái),在步驟S903中,客戶端裝置200根據(jù)用戶授權(quán)憑證,向授權(quán)服務(wù)器400發(fā)送對(duì)于授權(quán)訪問憑證的請(qǐng)求(即,申請(qǐng)數(shù)據(jù)訪問授權(quán)),并且在步驟S904中,客戶端裝置200將該請(qǐng)求記錄在區(qū)塊鏈100中。應(yīng)指出,該對(duì)于授權(quán)訪問憑證的請(qǐng)求包含客戶端裝置200的簽名信息,即,客戶端裝置200利用客戶端私鑰對(duì)該請(qǐng)求進(jìn)行了簽名。然后,在步驟S905中,授權(quán)服務(wù)器400驗(yàn)證用戶授權(quán)憑證,并且如果驗(yàn)證有效,則生成授權(quán)訪問憑證,并且將該授權(quán)訪問憑證記錄在區(qū)塊鏈100中。應(yīng)指出,這里的授權(quán)訪問憑證包含授權(quán)服務(wù)器400的簽名信息,即,授權(quán)服務(wù)器400利用其服務(wù)器私鑰對(duì)該授權(quán)訪問憑證進(jìn)行了簽名。接下來(lái),在步驟S906中,授權(quán)服務(wù)器400將該授權(quán)訪問憑證返回給客戶端裝置200,然后在步驟S907中,客戶端裝置200利用授權(quán)訪問憑證向資 源服務(wù)器500發(fā)送數(shù)據(jù)訪問請(qǐng)求(即,申請(qǐng)數(shù)據(jù)訪問),并且在步驟S908中將該數(shù)據(jù)訪問請(qǐng)求記錄在區(qū)塊鏈100中。應(yīng)指出,該數(shù)據(jù)訪問請(qǐng)求也包含客戶端裝置200的簽名信息,即,客戶端裝置200利用客戶端私鑰對(duì)該數(shù)據(jù)訪問請(qǐng)求進(jìn)行了簽名。接下來(lái),在步驟S909中,資源服務(wù)器500通過(guò)檢查區(qū)塊鏈中的信息(包括在上述步驟S904、S905和S908中記錄到區(qū)塊鏈100中的信息)來(lái)確定該數(shù)據(jù)訪問請(qǐng)求的有效性,并且如果確定有效,則將相應(yīng)的數(shù)據(jù)資源提供給客戶端裝置200。同時(shí),在步驟S910中,資源服務(wù)器500將自己的響應(yīng)操作也記錄到區(qū)塊鏈100中,該記錄同樣也包含資源服務(wù)器500的簽名信息(使用資源服務(wù)器的私鑰)。最后,在步驟S911中,客戶端裝置200可以將相應(yīng)的數(shù)據(jù)資源提供給資源所有者600供其進(jìn)行使用。
應(yīng)理解,上述交互過(guò)程僅為示例而非限制,并且所示出的各個(gè)步驟的執(zhí)行順序也僅是為了描述方便而不限于此,根據(jù)需要,一些步驟可并行地執(zhí)行或者其執(zhí)行順序可改變。
從以上基于區(qū)塊鏈的OAuth協(xié)議實(shí)現(xiàn)的交互過(guò)程可以看出,在該情況下,服務(wù)器裝置可包括授權(quán)服務(wù)器和資源服務(wù)器,來(lái)自客戶端裝置的請(qǐng)求可包括針對(duì)授權(quán)服務(wù)器的對(duì)于授權(quán)訪問憑證的請(qǐng)求和針對(duì)資源服務(wù)器的數(shù)據(jù)訪問請(qǐng)求,并且來(lái)自服務(wù)器裝置的響應(yīng)信息可包括來(lái)自授權(quán)服務(wù)器的授權(quán)訪問憑證和來(lái)自資源服務(wù)器的數(shù)據(jù)資源。此外,應(yīng)指出,盡管在這里將授權(quán)服務(wù)器和資源服務(wù)器示出為分開的服務(wù)器裝置,但是這兩者實(shí)際上也可以是同一服務(wù)器。
優(yōu)選地,上述授權(quán)訪問憑證可包括與受保護(hù)資源有關(guān)的限制信息,該限制信息例如可包括受保護(hù)資源的管理者的標(biāo)識(shí)、允許客戶端裝置訪問的資源以及授權(quán)訪問憑證的有效期等信息。
此外,優(yōu)選地,限制信息還可包括在授權(quán)訪問憑證的有效期內(nèi)的訪問次數(shù)設(shè)置,客戶端裝置200的訪問單元230可根據(jù)訪問次數(shù)設(shè)置而執(zhí)行用于訪問受保護(hù)資源的相應(yīng)操作,并且服務(wù)器裝置300的響應(yīng)生成單元310可根據(jù)客戶端裝置200對(duì)受保護(hù)資源的訪問而遞減訪問次數(shù)設(shè)置,并且記錄單元320可將遞減后的訪問次數(shù)記錄在公共數(shù)據(jù)庫(kù)中。這樣,可以防止重放攻擊,有效地實(shí)現(xiàn)對(duì)于受保護(hù)資源的有限次授權(quán)訪問。下面,將參照?qǐng)D10、圖11A和圖11B詳細(xì)描述應(yīng)用本公開的技術(shù)的用于實(shí)現(xiàn)有限次授權(quán)訪問的處理過(guò)程。圖10是示出應(yīng)用本公開的技術(shù)的用于實(shí)現(xiàn)有限次授權(quán)訪問的交互過(guò)程的示例的流程圖,并且圖11A和圖11B是示出應(yīng)用本 公開的技術(shù)的用于實(shí)現(xiàn)有限次授權(quán)訪問的示例的示意圖。
如圖10所示,首先,在步驟S1001中,客戶端裝置200向授權(quán)服務(wù)器400申請(qǐng)N次授權(quán)訪問(其中,N是大于或等于1的正整數(shù))。然后,在步驟S1002中,授權(quán)服務(wù)器400針對(duì)這N次授權(quán)訪問可生成兩個(gè)比特幣賬戶(或者也可使用已有賬戶)Account1和Account2,這兩個(gè)賬戶分別對(duì)應(yīng)兩個(gè)密鑰對(duì),并且賬戶Account1由授權(quán)服務(wù)器400管理,賬戶Account2由資源服務(wù)器500管理,然后,授權(quán)服務(wù)器400將N個(gè)虛擬貨幣從賬戶Account1轉(zhuǎn)至賬戶Account2(如圖11A所示),這N個(gè)虛擬貨幣即對(duì)應(yīng)N次授權(quán)訪問,同時(shí)授權(quán)服務(wù)器400將這次轉(zhuǎn)賬操作記錄在區(qū)塊鏈100中。
接下來(lái),在步驟S1003中,授權(quán)服務(wù)器400將N次授權(quán)訪問憑證和區(qū)塊鏈100中的記錄一起發(fā)送給客戶端裝置200,然后在步驟S1004中,客戶端裝置200可利用授權(quán)訪問憑證訪問資源服務(wù)器500,并且同時(shí)將區(qū)塊鏈中的記錄提供給資源服務(wù)器500。在步驟S1005中,資源服務(wù)器500可驗(yàn)證區(qū)塊鏈中的記錄以確認(rèn)授權(quán)訪問憑證是否有效,并且在步驟S1006中,如果確認(rèn)有效,則資源服務(wù)器500為客戶端裝置200提供相應(yīng)數(shù)據(jù)服務(wù),并且如果無(wú)效,則資源服務(wù)器500拒絕提供相應(yīng)服務(wù)。接下來(lái),在步驟S1007中,針對(duì)每次訪問,資源服務(wù)器500可從賬戶Account2轉(zhuǎn)1個(gè)虛擬幣至賬戶Account1(如圖11B所示),并同時(shí)將該轉(zhuǎn)賬操作記錄在區(qū)塊鏈100中。該轉(zhuǎn)賬信息也可同時(shí)提供給客戶端裝置200,以方便客戶端裝置200進(jìn)行查驗(yàn)。重復(fù)上述操作,直到N次授權(quán)訪問完成,即,完成了N次從賬戶Account2至賬戶Account1的轉(zhuǎn)賬操作,這樣整個(gè)授權(quán)訪問過(guò)程結(jié)束。
可以看出,在上述過(guò)程中,由于客戶端裝置200、授權(quán)服務(wù)器400和資源服務(wù)器500的操作以及訪問次數(shù)限制均被記錄在區(qū)塊鏈100中,因此,各個(gè)裝置可以通過(guò)檢查區(qū)塊鏈100中的相應(yīng)記錄信息來(lái)對(duì)各種信息進(jìn)行核驗(yàn),這樣,可以有效地抵抗重放攻擊和中間人攻擊,提高授權(quán)訪問過(guò)程的安全性,有效地實(shí)現(xiàn)有限次安全授權(quán)訪問。
應(yīng)理解,以上參照?qǐng)D10至圖11B描述了基于區(qū)塊鏈來(lái)實(shí)現(xiàn)有限次授權(quán)訪問的處理過(guò)程,但是這僅是示例而非限制,并且本領(lǐng)域技術(shù)人員可以根據(jù)本公開的原理而對(duì)上述過(guò)程進(jìn)行修改。例如,盡管以上描述了建立兩個(gè)賬戶利用虛擬幣來(lái)記錄每次授權(quán)訪問,但是也可不必如此,只要能夠?qū)崿F(xiàn)將客戶端裝置的每次授權(quán)訪問都記錄在公共數(shù)據(jù)庫(kù)中,以供系統(tǒng)內(nèi)的各 個(gè)裝置進(jìn)行查詢、核驗(yàn)即可。
此外,還應(yīng)指出,盡管以上以區(qū)塊鏈為例描述了應(yīng)用本公開的技術(shù)的OAuth協(xié)議的實(shí)現(xiàn),但是顯然也可利用除區(qū)塊鏈之外的其它公共數(shù)據(jù)庫(kù)(如上述Hyperledger的共識(shí)池等)來(lái)保證OAuth協(xié)議的通信安全性。
與上述裝置實(shí)施例相對(duì)應(yīng)的,下面將參照?qǐng)D12和圖13分別描述根據(jù)本公開的實(shí)施例的在客戶端裝置和服務(wù)器裝置側(cè)執(zhí)行的用于授權(quán)訪問的方法的過(guò)程示例。圖12是示出根據(jù)本公開的實(shí)施例的在客戶端裝置執(zhí)行的用于授權(quán)訪問的方法的過(guò)程示例的流程圖。
如圖12所示,根據(jù)該實(shí)施例的方法開始于步驟S1201,在步驟S1201中,客戶端裝置生成用于受保護(hù)資源的授權(quán)訪問的請(qǐng)求并且將該請(qǐng)求發(fā)送到服務(wù)器裝置,然后方法進(jìn)行到步驟S1202。優(yōu)選地,在步驟S1201中,客戶端裝置還可利用客戶端私鑰對(duì)該請(qǐng)求進(jìn)行簽名,并將簽名后的請(qǐng)求發(fā)送給服務(wù)器裝置。在步驟S1202中,客戶端裝置將所生成的請(qǐng)求記錄在公共數(shù)據(jù)庫(kù)中,該公共數(shù)據(jù)庫(kù)是去中心化的分布式數(shù)據(jù)庫(kù)并且其中的記錄是不可更改的,優(yōu)選地,該公共數(shù)據(jù)庫(kù)包括區(qū)塊鏈。然后,方法進(jìn)行到步驟S1203。在步驟S1203中,客戶端裝置利用服務(wù)器裝置響應(yīng)于請(qǐng)求而發(fā)送的響應(yīng)信息,執(zhí)行用于訪問受保護(hù)資源的相應(yīng)操作。
優(yōu)選地,客戶端裝置還將請(qǐng)求在公共數(shù)據(jù)庫(kù)中的位置信息發(fā)送給服務(wù)器裝置,并且可利用服務(wù)器公鑰對(duì)服務(wù)器裝置的響應(yīng)信息在公共數(shù)據(jù)庫(kù)中的記錄進(jìn)行驗(yàn)證,并且根據(jù)驗(yàn)證結(jié)果而執(zhí)行相應(yīng)操作。
優(yōu)選地,在應(yīng)用于OAuth協(xié)議時(shí),上述服務(wù)器裝置可包括授權(quán)服務(wù)器和資源服務(wù)器,并且這兩個(gè)服務(wù)器也可以是同一服務(wù)器,請(qǐng)求可包括發(fā)送給授權(quán)服務(wù)器的對(duì)于授權(quán)訪問憑證的請(qǐng)求和發(fā)送給資源服務(wù)器的數(shù)據(jù)訪問請(qǐng)求,并且響應(yīng)信息包括來(lái)自授權(quán)服務(wù)器的授權(quán)訪問憑證和來(lái)自資源服務(wù)器的數(shù)據(jù)資源。優(yōu)選地,授權(quán)訪問憑證可包括與受保護(hù)資源有關(guān)的限制信息,該限制信息可包括受保護(hù)資源的管理者的標(biāo)識(shí)、允許客戶端裝置訪問的資源以及授權(quán)訪問憑證的有效期。此外,優(yōu)選地,限制信息還可包括在有效期內(nèi)的訪問次數(shù)設(shè)置,并且客戶端裝置可根據(jù)訪問次數(shù)設(shè)置而執(zhí)行用于訪問受保護(hù)資源的相應(yīng)操作。
這里描述的在客戶端裝置執(zhí)行的方法是與上述裝置實(shí)施例相對(duì)應(yīng)的,因此在此未詳細(xì)描述的內(nèi)容可參見以上相應(yīng)位置的描述,在此不再重復(fù)。
圖13是示出根據(jù)本公開的實(shí)施例的在服務(wù)器裝置執(zhí)行的用于授權(quán)訪 問的方法的過(guò)程示例的流程圖。
如圖13所示,根據(jù)該實(shí)施例的方法開始于步驟S1301,在步驟S1301中,服務(wù)器裝置響應(yīng)于來(lái)自客戶端裝置的對(duì)于受保護(hù)資源的授權(quán)訪問的請(qǐng)求而生成相應(yīng)的響應(yīng)信息,并且將該響應(yīng)信息發(fā)送到客戶端裝置。優(yōu)選地,服務(wù)器裝置可利用服務(wù)器私鑰對(duì)該響應(yīng)信息進(jìn)行簽名,并且將簽名后的響應(yīng)信息發(fā)送給客戶端裝置。然后,該方法進(jìn)行到步驟S1302,在步驟S1302中,服務(wù)器裝置將響應(yīng)信息記錄在公共數(shù)據(jù)庫(kù)中。
優(yōu)選地,服務(wù)器裝置還將響應(yīng)信息在公共數(shù)據(jù)庫(kù)中的位置信息發(fā)送給客戶端裝置,并且利用客戶端公鑰對(duì)客戶端裝置的請(qǐng)求在公共數(shù)據(jù)庫(kù)中的記錄進(jìn)行驗(yàn)證,并根據(jù)驗(yàn)證結(jié)果而生成響應(yīng)信息。
這里描述的在服務(wù)器裝置執(zhí)行的方法是與上述裝置實(shí)施例相對(duì)應(yīng)的,因此在此未詳細(xì)描述的內(nèi)容可參見以上相應(yīng)位置的描述,在此不再重復(fù)。
應(yīng)指出,盡管以上描述了根據(jù)本公開的實(shí)施例的用于授權(quán)訪問的方法的過(guò)程示例,但是這僅是示例而非限制,并且本領(lǐng)域技術(shù)人員可根據(jù)本公開的原理對(duì)以上實(shí)施例進(jìn)行修改,例如可對(duì)各個(gè)實(shí)施例中的步驟進(jìn)行添加、刪除或者組合等,并且這樣的修改均落入本公開的范圍內(nèi)。
根據(jù)本公開的技術(shù)還可以應(yīng)用于其它領(lǐng)域,如醫(yī)療、通信、電力等。下面將參照?qǐng)D14和圖15分別描述根據(jù)本公開的技術(shù)的應(yīng)用示例。
圖14是示出根據(jù)本公開的技術(shù)的第一應(yīng)用示例的示意圖。
在醫(yī)療領(lǐng)域中,需要存儲(chǔ)大量用戶的數(shù)據(jù)或記錄,如何確保這些數(shù)據(jù)或記錄可以通過(guò)安全授權(quán)訪問的方式提供給用戶或用戶授權(quán)的第三方平臺(tái)是當(dāng)前要解決的問題之一。
如圖14所示,該系統(tǒng)可包括用戶、客戶端、授權(quán)服務(wù)器、資源服務(wù)器和網(wǎng)絡(luò)記錄平臺(tái)。用戶是醫(yī)療數(shù)據(jù)的主體,即資源所有者;客戶端是第三方應(yīng)用軟件(如健康管理軟件等);授權(quán)服務(wù)器是醫(yī)療機(jī)構(gòu)或者醫(yī)療機(jī)構(gòu)委托服務(wù)商提供服務(wù);資源服務(wù)器是醫(yī)療機(jī)構(gòu)或者醫(yī)療機(jī)構(gòu)委托服務(wù)商提供服務(wù);網(wǎng)絡(luò)記錄平臺(tái)相當(dāng)于上述公共數(shù)據(jù)庫(kù),其可以采用分布式或P2P、去中心化的網(wǎng)絡(luò)平臺(tái),用于授權(quán)訪問的關(guān)鍵數(shù)據(jù)一經(jīng)記錄在該平臺(tái)上就不能被惡意篡改。此外,該記錄平臺(tái)為每條記錄生成一條地址信息,該地址信息可以是序號(hào)或其它編碼信息以便于進(jìn)行檢索。此外,盡管圖中未示出,但是該系統(tǒng)還可包括密鑰管理中心,用于為在網(wǎng)絡(luò)記錄平臺(tái)上記錄數(shù)據(jù)的實(shí)體生成密鑰對(duì)(公鑰和私鑰)。密鑰管理中心可以是第三方安 全平臺(tái),如公鑰基礎(chǔ)設(shè)施(Public Key Infrastructure,PKI)/認(rèn)證中心(Certificate Authority,CA)等,也可以是基于網(wǎng)絡(luò)記錄平臺(tái)的上層安全應(yīng)用系統(tǒng)。
在具體實(shí)施時(shí),首先進(jìn)行系統(tǒng)初始化,從而密鑰管理中心至少為授權(quán)服務(wù)器和資源服務(wù)器分配密鑰對(duì),分別記作(PKAS,SKAS)和(PKRS,SKRS)。
在初始化之后,各個(gè)實(shí)體按照?qǐng)D14所示的示例實(shí)施步驟而執(zhí)行用于醫(yī)療數(shù)據(jù)的安全授權(quán)訪問的處理:
①用戶向授權(quán)服務(wù)器申請(qǐng)授權(quán)憑證。
②授權(quán)服務(wù)器向用戶發(fā)放授權(quán)憑證。
③用戶向客戶端提供授權(quán)憑證。
④客戶端向授權(quán)服務(wù)器提供用戶的授權(quán)憑證,申請(qǐng)數(shù)據(jù)訪問憑證。
⑤授權(quán)服務(wù)器驗(yàn)證授權(quán)憑證有效后,依據(jù)授權(quán)憑證的信息,生成對(duì)應(yīng)的數(shù)據(jù)訪問憑證,該數(shù)據(jù)訪問憑證至少包含需要訪問的目標(biāo)數(shù)據(jù)、訪問期限等信息。同時(shí),授權(quán)服務(wù)器用自己的私鑰SKAS對(duì)該數(shù)據(jù)訪問憑證進(jìn)行簽名,把簽名后的信息記錄在網(wǎng)絡(luò)記錄平臺(tái)中。
⑥授權(quán)服務(wù)器將數(shù)據(jù)訪問憑證以及該憑證在網(wǎng)絡(luò)記錄平臺(tái)的地址信息返回給客戶端。
⑦客戶端持?jǐn)?shù)據(jù)訪問憑證和網(wǎng)絡(luò)記錄平臺(tái)的地址信息向資源服務(wù)器申請(qǐng)數(shù)據(jù)資源。
⑧資源服務(wù)端根據(jù)地址信息,檢索到對(duì)應(yīng)數(shù)據(jù)訪問憑證的記錄,通過(guò)授權(quán)服務(wù)器的公鑰PKAS驗(yàn)證客戶端發(fā)來(lái)的數(shù)據(jù)訪問憑證的有效性。
⑨資源服務(wù)器依據(jù)數(shù)據(jù)訪問憑證,向客戶端提供對(duì)應(yīng)的數(shù)據(jù)資源,同時(shí)把對(duì)于數(shù)據(jù)訪問憑證的響應(yīng)操作記錄在網(wǎng)絡(luò)記錄平臺(tái)中,即,使用私鑰SKRS對(duì)數(shù)據(jù)訪問憑證進(jìn)行簽名,并且也可加入響應(yīng)日志信息,一并簽名后記錄在網(wǎng)絡(luò)記錄平臺(tái)。
⑩客戶端得到對(duì)應(yīng)的數(shù)據(jù)。
客戶端將整理后的數(shù)據(jù)呈現(xiàn)給用戶,例如,將該用戶在多家醫(yī)療機(jī)構(gòu)的醫(yī)療信息匯總、分類、整理后整體呈現(xiàn)給用戶。
類似地,上述過(guò)程也可應(yīng)用于諸如電力、通信或電商等存儲(chǔ)了大量用戶數(shù)據(jù)或記錄的行業(yè),在此不再一一詳細(xì)進(jìn)行描述。
圖15是示出根據(jù)本公開的技術(shù)的第二應(yīng)用示例的示意圖。
3D打印是當(dāng)前關(guān)注的熱門技術(shù),如何保證3D模型授權(quán)打印的安全性也是需要解決的問題之一。如圖15所示,該用于3D模型授權(quán)打印的系統(tǒng)可包括用戶、授權(quán)服務(wù)器、客戶端、資源服務(wù)器、網(wǎng)絡(luò)記錄平臺(tái)和3D打印機(jī)。其中,用戶是購(gòu)買3D模型數(shù)據(jù)的自然人或機(jī)構(gòu);客戶端是第三方應(yīng)用軟件;授權(quán)服務(wù)器是3D模型網(wǎng)絡(luò)交易平臺(tái);資源服務(wù)器是3D模型數(shù)據(jù)服務(wù)器;網(wǎng)絡(luò)記錄平臺(tái)與以上參照?qǐng)D14描述的網(wǎng)絡(luò)記錄平臺(tái)相同。此外,盡管未示出,該系統(tǒng)還包括與以上參照?qǐng)D14描述的相同的密鑰管理中心。
在實(shí)施3D模型授權(quán)打印時(shí),圖15所示的步驟①~⑩中的操作與上述圖14中的相應(yīng)步驟中的操作相同,在此不再重復(fù)。接下來(lái),在步驟中,客戶端把授權(quán)得到的3D模型數(shù)據(jù)發(fā)送至3D打印機(jī),并且在步驟中,用戶得到打印出的3D物品。
在以上過(guò)程中,用戶得到某個(gè)3D模型的打印授權(quán)(可以是免費(fèi)或交易得到),通過(guò)客戶端連接授權(quán)服務(wù)器和資源服務(wù)器,通過(guò)本發(fā)明的授權(quán)協(xié)議方法得到3D模型數(shù)據(jù),并且將該數(shù)據(jù)發(fā)送至3D打印機(jī)以得到打印出的3D物品。通過(guò)應(yīng)用本公開的技術(shù),可以保證授權(quán)訪問的安全性和抗抵賴性,有效地抵抗了網(wǎng)絡(luò)攻擊。
盡管以上參照?qǐng)D14和圖15給出了本公開的技術(shù)的應(yīng)用示例,但是本公開并不限于此,而是也可應(yīng)用于其它任何需要授權(quán)訪問數(shù)據(jù)的平臺(tái)。
此外,根據(jù)本公開的實(shí)施例,還提供了一種電子設(shè)備,該電子設(shè)備可包括收發(fā)機(jī)和一個(gè)或多個(gè)處理器,這一個(gè)或多個(gè)處理器可被配置成執(zhí)行上述根據(jù)本公開的實(shí)施例的方法或相應(yīng)單元的功能。
應(yīng)理解,根據(jù)本公開的實(shí)施例的存儲(chǔ)介質(zhì)和程序產(chǎn)品中的機(jī)器可執(zhí)行的指令還可以被配置成執(zhí)行與上述裝置實(shí)施例相對(duì)應(yīng)的方法,因此在此未詳細(xì)描述的內(nèi)容可參考先前相應(yīng)位置的描述,在此不再重復(fù)進(jìn)行描述。
相應(yīng)地,用于承載上述包括機(jī)器可執(zhí)行的指令的程序產(chǎn)品的存儲(chǔ)介質(zhì)也包括在本發(fā)明的公開中。該存儲(chǔ)介質(zhì)包括但不限于軟盤、光盤、磁光盤、存儲(chǔ)卡、存儲(chǔ)棒等等。
另外,還應(yīng)該指出的是,上述系列處理和裝置也可以通過(guò)軟件和/或固件實(shí)現(xiàn)。在通過(guò)軟件和/或固件實(shí)現(xiàn)的情況下,從存儲(chǔ)介質(zhì)或網(wǎng)絡(luò)向具有專用硬件結(jié)構(gòu)的計(jì)算機(jī),例如圖16所示的通用個(gè)人計(jì)算機(jī)1600安裝構(gòu) 成該軟件的程序,該計(jì)算機(jī)在安裝有各種程序時(shí),能夠執(zhí)行各種功能等等。圖16是示出作為本公開的實(shí)施例中可采用的信息處理設(shè)備的個(gè)人計(jì)算機(jī)的示例結(jié)構(gòu)的框圖。
在圖16中,中央處理單元(CPU)1601根據(jù)只讀存儲(chǔ)器(ROM)1602中存儲(chǔ)的程序或從存儲(chǔ)部分1608加載到隨機(jī)存取存儲(chǔ)器(RAM)1603的程序執(zhí)行各種處理。在RAM 1603中,也根據(jù)需要存儲(chǔ)當(dāng)CPU 1601執(zhí)行各種處理等時(shí)所需的數(shù)據(jù)。
CPU 1601、ROM 1602和RAM 1603經(jīng)由總線1604彼此連接。輸入/輸出接口1605也連接到總線1604。
下述部件連接到輸入/輸出接口1605:輸入部分1606,包括鍵盤、鼠標(biāo)等;輸出部分1607,包括顯示器,比如陰極射線管(CRT)、液晶顯示器(LCD)等,和揚(yáng)聲器等;存儲(chǔ)部分1608,包括硬盤等;和通信部分1609,包括網(wǎng)絡(luò)接口卡比如LAN卡、調(diào)制解調(diào)器等。通信部分1609經(jīng)由網(wǎng)絡(luò)比如因特網(wǎng)執(zhí)行通信處理。
根據(jù)需要,驅(qū)動(dòng)器1610也連接到輸入/輸出接口1605。可拆卸介質(zhì)1611比如磁盤、光盤、磁光盤、半導(dǎo)體存儲(chǔ)器等等根據(jù)需要被安裝在驅(qū)動(dòng)器1610上,使得從中讀出的計(jì)算機(jī)程序根據(jù)需要被安裝到存儲(chǔ)部分1608中。
在通過(guò)軟件實(shí)現(xiàn)上述系列處理的情況下,從網(wǎng)絡(luò)比如因特網(wǎng)或存儲(chǔ)介質(zhì)比如可拆卸介質(zhì)1611安裝構(gòu)成軟件的程序。
本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,這種存儲(chǔ)介質(zhì)不局限于圖16所示的其中存儲(chǔ)有程序、與設(shè)備相分離地分發(fā)以向用戶提供程序的可拆卸介質(zhì)1611。可拆卸介質(zhì)1611的例子包含磁盤(包含軟盤(注冊(cè)商標(biāo)))、光盤(包含光盤只讀存儲(chǔ)器(CD-ROM)和數(shù)字通用盤(DVD))、磁光盤(包含迷你盤(MD)(注冊(cè)商標(biāo)))和半導(dǎo)體存儲(chǔ)器?;蛘?,存儲(chǔ)介質(zhì)可以是ROM 1602、存儲(chǔ)部分1608中包含的硬盤等等,其中存有程序,并且與包含它們的設(shè)備一起被分發(fā)給用戶。
以上參照附圖描述了本公開的優(yōu)選實(shí)施例,但是本公開當(dāng)然不限于以上示例。本領(lǐng)域技術(shù)人員可在所附權(quán)利要求的范圍內(nèi)得到各種變更和修改,并且應(yīng)理解這些變更和修改自然將落入本公開的技術(shù)范圍內(nèi)。
例如,在以上實(shí)施例中包括在一個(gè)單元中的多個(gè)功能可以由分開的裝置來(lái)實(shí)現(xiàn)。替選地,在以上實(shí)施例中由多個(gè)單元實(shí)現(xiàn)的多個(gè)功能可分別由 分開的裝置來(lái)實(shí)現(xiàn)。另外,以上功能之一可由多個(gè)單元來(lái)實(shí)現(xiàn)。無(wú)需說(shuō),這樣的配置包括在本公開的技術(shù)范圍內(nèi)。
在該說(shuō)明書中,流程圖中所描述的步驟不僅包括以所述順序按時(shí)間序列執(zhí)行的處理,而且包括并行地或單獨(dú)地而不是必須按時(shí)間序列執(zhí)行的處理。此外,甚至在按時(shí)間序列處理的步驟中,無(wú)需說(shuō),也可以適當(dāng)?shù)馗淖冊(cè)擁樞颉?/p>
雖然已經(jīng)詳細(xì)說(shuō)明了本公開及其優(yōu)點(diǎn),但是應(yīng)當(dāng)理解在不脫離由所附的權(quán)利要求所限定的本公開的精神和范圍的情況下可以進(jìn)行各種改變、替代和變換。而且,本公開實(shí)施例的術(shù)語(yǔ)“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過(guò)程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過(guò)程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語(yǔ)句“包括一個(gè)……”限定的要素,并不排除在包括所述要素的過(guò)程、方法、物品或者設(shè)備中還存在另外的相同要素。