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