Fabric中的“賬戶”體系

本文的聯盟鏈是以Fabric爲例。本文中transaction翻譯成事務,而非交易。

聯盟鏈相對於公鏈,最大的不同在於:聯盟鏈上的數據不是對所有人都公開的,只有聯盟內的成員纔可以訪問、寫入鏈上數據。
第二個重要的區別:聯盟鏈不發幣,所以聯盟鏈裏的賬戶沒有以太坊比特幣那樣的賬戶地址。Fabric的訪問控制、權限控制等,是通過MSP(Membership Service Provider)提供。這套機制與公鏈常見的賬戶模型差別甚大。

本文探討下Fabric中基於PKI的賬戶體系,此處假設讀者已經對非對稱加密有一定了解,並能夠回答以下幾個問題:

  1. 私鑰/公鑰啥意思?各自的作用?
  2. 簽名與加密有何區別,又有何共性?
  3. 爲何需要數字證書?

首先簡單捋一下Fabric-CA、MSP、 PKI三者的關係。

PKI

PKI是什麼:一套軟硬件系統和安全策略的集合
PKI的作用:它提供了一整套安全機制,使數據可以安全地、不可抵賴地在互聯網上發送與接收
PKI提供的功能

  • 密鑰管理(密鑰對的創建、備份、恢復)
  • 證書管理(證書的申請、頒發、吊銷、驗證)

PKI的結構
在這裏插入圖片描述
中間層爲PKI應用提供各種服務,諸如證書申請、驗證等操作。其中RA(註冊機構)不是必需的,此時CA服務器負責提供絕大多數的業務功能。可見,CA是PKI體系中最重要的一個部分了。
中間層的詳細結構如下圖所示:

一句話總結:PKI是以非對稱加密爲基石,以證書爲中心,以實現數據的安全傳輸(防泄露,防抵賴)爲目標的一套基礎設施,CA是該設施中最重要的一個組成部分。

關於PKI的詳細信息,請看[這篇博文](https://blog.csdn.net/carolzhang8406/article/

Fabric-CA

Fabric-CA是hyperledger下的一個項目,與Fabric屬於同級的項目。旨在爲基於Fabric的聯盟鏈提供CA服務。負責爲聯盟鏈當中的各種角色(peer、orderer、client)頒發證書,提供身份認證,至於這個身份在聯盟鏈中是何角色(Peer?Orderer?Client?)具有何種權限(是否可加入channel?是否能管理channel?),則由MSP負責。

https://blog.csdn.net/boss2967/article/details/83037332details/79458206),說的很詳細。

MSP(Membership Service Provider)

  • MSP譯爲成員服務提供者,他是Fabric中的一個邏輯組件
  • 成員是指聯盟鏈網絡的參與者
  • 不同的成員擁有不同的角色、權限,MSP了負責權限管理。
  • 組織內受信任的RCA、ICA,由MSP負責定義

通過以上梳理,我們知道,MSP是“賬戶”體系的核心體現,接下來我們通過分析MSP來窺探Fabric的“賬戶”體系。

  • MSP有不同的級別:
  • Network MSP
  • Channel MSP
  • Local MSP
  • Peer MSP
  • Orderer MSP

Local MSP

  1. Local MSP是爲客戶端(用戶)和節點(Peer、Orderer)而設計的。
  2. 節點的Local MSP可以定義用戶對一個節點的訪問權限,例如,定義哪個用戶是peer Admin。
  3. 用戶的Local MSP負責用戶方在其事務中的身份驗證。例如,在一個鏈碼事務中的channel成員身份),在配置事務中的組織管理員身份,等等。
  4. 每一個節點、客戶端,都必須定義一個Local MSP,因爲它(local MSP)定義了角色在所在層級中的管理權和參與權。假如沒有這個定義,節點、客戶端將無法加入到聯盟鏈網絡。

Channel MSP
Channel MSP定義了Channel這個層級的管理權和參與權(也就是定義了誰能夠管理該channel,誰能加入該channel)。如果一個組織希望加入channel,則需要在channel配置中添加該組織的MSP,否則該組織針對此channel的事務將會被拒絕。
另外,Channel MSP是在通道配置中進行邏輯定義,通過共識擴散到通道所有的成員,這一點不同於local MSP,它只在User或者peer的本地文件夾中。

以上將MSP分成了兩大類:Local MSP 和 Channel MSP,還有一種分類方式:按照level進行分類,爲何需要加一種分類方式呢?因爲,在有些時候,同樣是Local MSP,在網絡中起到的作用是不一樣的,看下面這張圖:
在這裏插入圖片描述
右下角標紅的部分,說明 ORG1.MSP不僅僅是一個Local MSP,它還管理着整個網絡的配置——這跟同爲Local MSP 的 ORG2.MSP是完全不同的級別

按照level分,MSP可以有以下幾種:
Network MSP:在網絡配置中定義參與的ORG的MSP,決定了誰是聯盟鏈網絡的成員,同時也決定了這些成員中由誰來執行管理任務(創建頻道等等)

Channel MSP:同上面的Channel MSP

Peer MSP:Peer MSP掌管成員對Peer的權限,例如誰有權力在當前的Peer上安裝鏈碼。Peer MSP是Local MSP的一種。

Orderer MSP:Orderer MSP也是Local MSP的一種,定義在本地文件系統中,該類MSP定義了受信任的節點列表

我們知道了MSP的作用以及種類,下面看下MSP的物理結構:
在這裏插入圖片描述
上圖的每一個方塊都對應着MSP文件夾下的一個子目錄,子目錄中存放着相關的文件:
RCA:此文件夾包含由此MSP代表的組織所信任的根CA的自簽名X.509證書的列表。該目錄下至少要有一個跟CA的證書,同時該目錄是MSP最重要的一個目錄,這個目錄就是MSP身份的代表,從根CA派生出的證書纔會被認爲是該MSP所代表的組織的成員。
ICA: 此文件夾包含此組織信任的中間CA的X.509證書的列表。 每個證書必須由MSP中的一個根CA簽名,或者由中間CA簽名但最終能通過信任鏈追溯到該MSP的根CA。中間CA的使用使得管理成員關係的方式更爲靈活:中間CA可以看作是組織中不同的部門的這樣一個層級,可以更詳細的分類組織中的成員。另外,該文件夾是可以爲空的。
OU:
Administrator: 改目錄定義了MSP管理員的身份列表。該目錄中會有一個至多個證書。另外值得注意的是,不是說成爲了管理員就能夠控制本組織的所有資源,管理員的權限還受系統資源策略的限制。比如該MSP定義了A,B兩位管理員,channel策略中只允許A對channel進行添加成員操作,而B則無此權限。

Revoked Certificates:被撤銷的證書列表
Node Identity:
Keystore:

發佈了34 篇原創文章 · 獲贊 6 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章