Hyperledger Fabric學習筆記——關鍵概念之MSP

1、什麼是MSP

MSP的實現是一組添加到網絡配置中的文件夾,MSP是一種將身份轉化爲角色的機制。

要在Fabric網絡上進行交易,成員需要:

  1. 具有由網絡信任的CA頒發的身份。
  2. 成爲網絡成員認可的組織的成員,MSP是將身份鏈接到組織成員的方式(角色),成員資格是通過將成員的公鑰(也可以說是證書等)添加到組織的MSP中來實現。
  3. 將MSP添加到網絡中的聯盟或者通道上。
  4. 確保MSP包含在網絡的策略定義中。

2、MSP域

本地MSP和通道MSP區別不在於功能(將身份轉換爲角色),而在於範圍。本地MSP在文件系統上表示爲文件夾結構,而通道MSP在通道配置中描述。物理上和邏輯上每個節點都只有一個本地MSP,而通道MSP則是邏輯定義在通道配置中,在通道的每個節點上實例化,並通過共識保持同步。

本地MSP:

爲客戶端和節點(peers和orders)定義了本地MSP,本地MSP定義了該節點上的權限。

通道MSP:

通道MSP在通道級別定義了管理和參與權,如果組織希望加入通道,需要在通道配置中包含包含組織成員信任鏈的MSP。

  • 通道MSP識別誰擁有通道級別的權限,通道MSP包含通道成員組織的MSP。
  • 每個參與通道的組織都必須爲其定義MSP,建議組織與MSP之間存在一對一的映射。
  • 系統通道MSP包括參與order服務的所有組織的MSP。

3、組織在MSP中扮演什麼角色?

組織與MSP之間排他性關係使得以組織命名MSP是明智的,某些情況下組織可能需要多個會員羣,如在不同的通道執行非常不同的業務的情況下,例如ORG2-MSP-NATIONAL和ORG2-MSP-GOVERNMENT。

一個組織也可以分爲多個組織單元(OU,可選),將OU視爲組織內部的一個部門,來反映單獨的業務線。當CA頒發X.509證書時,OU字段會指定身份所屬的業務範圍,之後的限制訪問或者基於屬性的訪問控制可能會用到。

Node OU,是一種特殊的OU,可以被用於將角色賦予身份,Node OU 角色包括peer、client、order、admin,用於更細粒度的認可策略,策略可以要求Org1peer認可事物,而不是Org1的任何成員。

爲了使用Node OU 角色必須爲網絡啓用“身份分類”功能,當使用基於文件夾的MSP結構時,這是通過在位於MSP文件夾根目錄中的config.yaml文件中啓用Node OU來實現的。

從Fabric v1.4.3開始,新的admin role不需要將證書顯式放置在MSP目錄的admincerts文件夾中了,admin role而是體現在用戶的簽名證書中。在/signcerts文件夾中的X.509簽名證書中可以看到生成的ROLE和OU屬性。

 對於通道MSP,參與者具有admin角色並不意味着它們可以管理特定的資源,其管理方面的實際能力由管理系統資源的額策略確定(通道策略),例如,通道策略可能指定ORG1-MANUFACTURE admin有權向通道添加新組織,而ORG1-DISTRIBUTTON admin則無此權限。

Node OU是特殊的OU,一般的OU可以理解成組織的不同部門,而Node OU則是節點上的OU,即賦予節點不同的角色(感覺理解不夠到位,有待加深)。

4、MSP結構

本地MSP文件夾包含以下子文件夾:

  • config.yaml:用於通過啓用Node OU並定義接受的角色來在Fabric中配置身份分類功能。
  • cacerts:包含由此MSP表示的組織信任的根CA自簽名的X.509證書列表,此文件夾中至少必須有一個根CA證書。這是最重要的文件夾,因爲它標識了必須從其派生所有其他證書才能被視爲相應組織的成員以形成信任鏈的CA。
  • intermediatecerts:包含此組織信任的中間CA的X.509證書列表,每個證書必須由MSP中的一個根CA簽名,或由任何中間CA簽名。中間CA可以代表組織的不同部門,也可以代表組織本身(如果商業CA被用於組織的身份管理)。此文件夾可以爲空。
  • admincerts(從Fabric v.1.4.3及更高版本棄用):此文件夾包括了具有該組織管理者角色的X.509證書。
  • keystore:(私鑰)此文件夾是爲peer或order節點的本地MSP(或在客戶端的本地MSP中)定義的,包含節點的私鑰,此密鑰用於簽署數據,例如,作爲簽署階段的一部分,簽署交易建議的響應。此文件夾對本地MSP是必須的,並且必須僅包含一個私鑰,顯然,對此文件夾的訪問必須僅限於對節點具有管理責任的用戶身份。通道MSP配置不包括此文件夾,因爲通道MSP僅旨在提供身份驗證功能,並不具有簽署能力。如果使用硬件安全模塊(HSM)進行密鑰管理,則此文件夾爲空,因爲私鑰是由HSM生成並存儲在HSM中的。
  • signcert:包含公鑰(此處感覺官網文檔寫錯了,似乎直接複製粘貼了私鑰的部分,僅將公鑰改爲了私鑰)。
  • tlscacerts:此文件夾包含此組織信任的根CA的自簽名X.509證書的列表,這些證書用於使用TLS在節點之間進行安全通信。此文件夾中至少必須有一個TLS根CA證書。
  • tlsintermediatecacerts:中間tlsca,中間tlsca是可選的。
  • operationcerts:此文件夾包含與Fabric Operations Service API 通信所需的證書。

通道MSP包括以下其他文件夾:

  • Revoked Certificates:如果成員的身份已被吊銷,則有關身份的標識信息(而不是身份本身)保存在此文件夾中。對於基於X.509的身份,這些標識符是稱爲主題密鑰標識符(SKI)和授權訪問標識符(AKI)的字符串對,並且在每次使用證書以確保未吊銷證書時都會對其進行檢查。此列表在概念上與CA的證書吊銷列表(CRL)相同,但它也與組織中的成員資格吊銷有關。結果,頻道MSP的管理員可以通過發佈CA的更新的CRL來快速從組織撤消參與者或節點。此“列表列表”是可選的。僅當證書被吊銷時,它纔會被填充。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章