深度探索區塊鏈/基於數字證書的成員管理服務(8)

基於數字證書的成員管理服務

hyperledger Fabric 1.0基於PKI體系,生成數字證書以標識用戶的身份。每一個身份和成員管理服務提供商(Membership Service Provider,MSP)的編號進行關聯。mysql

一。實現成員管理的MSP

MSP(Membership Service Provider):成員管理服務提供商,是Hyperledger Fabric1.0中引入的一個組件。目的:抽象化各成員之間的控制結構關係。sql

MSP將證書頒發,用戶認證,後臺的加密機制和協議都進行了抽象。網絡

每一個MSP能夠定義本身的規則,包括:身份認證,簽名生成和認證。ide

每一個Hyperledger Fabric 1.0區塊鏈網絡可引入一個/多個MSP來進行網絡管理。這樣即將成員自己和成員之間的操做、規則、流程都模塊化了。模塊化

1。MSP成員驗證

//MSP成員身份及身份標識符定義
type identity struct{
   id *IdentityIdentifier    //身份標識符
   cert *509.Certificate    //x.509證書
   pk bccsp.key   //公鑰
   msp *bccspmsp //所屬的MSP    
}

type IdentityIdentifier struct{
  Mspid string //MSP標識
  Id String //身份編號    
}

說明:區塊鏈

成員身份是基於標準的X.509證書的加密

得用PKI體系給每一個成員頒發數字證書,結合所屬的MSP進行身份認證和權限控制。spa

根CA證書(root Certificate)是自簽名的證書,用根CA證書的私鑰簽名生成的證書還能夠簽發新的證書,造成一個樹型結構。3d

中間CA證書(Intermediate Certificate)是由其餘CA證書籤發的,也可利用本身的私鑰簽發新的證書。code

簽發證書是一個信任背書的過程,從根CA證書到最終用戶證書造成一個證書信任鏈。

在PKI體中,可利用CRL/OCSP管理證書有效性。

超級帳本中,MSP利用PKI的部份特性來管理證書的有效性。

(1)MSP標識的檢查:

身份證書都是和MSP綁定的,必須有相同的MSP標識才能驗證證書的有效性。

peer節點的Gossip通訊和部分系統鏈碼的調用都要求調用者身份和本地MSP標識相同。背書請求在通道管理策略驗證的時候也會檢查MSP成員是否有寫入權限。

(2)證書路徑檢查:

除MSP標識檢查,還會對證書籤名有效性檢查,主要是:

證書路徑檢查、校驗根CA證書、中間CA證書是否有效,是否有從身份證書到可信根CA證書的有效路徑。

注:在證書驗證時並不校驗證書的有效期,會強制設置當前時間爲證書起始時間的下一秒,這確保有效期驗證經過。

MSP目錄下的cacerts和intermediatecerts子目錄簽發的證書都是有效的,證書校驗的時候須要檢查是否有到可信根證書的有效路徑。

(3)CRL的檢查

最後檢查證書是否被吊銷,現僅支持CRL不支持OCSP。

CRL會包含在本地MSP的crls子目錄下,是由CA證書籤發的包含被吊銷證書序列號的證書文件。

在通道的MSP配置中,也會包含CRL列表。在更新通道配置時可發佈吊銷的證書。

2。MSP目錄結構

(1)MSP的配置說明

在每個Peer節點的排序服務節點上設置MSP目錄後,Peer節點和排序服務節點就有了簽名證書。在通道節點之間傳輸數據時,要驗證節點的簽名。

爲了可以標識MSP,每一個MSP須要指定一個名稱,如org1,org2等。

在通道的MSP成員規則中能夠用MSP名稱來表明一個聯盟(Consortium)、組織(Organization)或部門(Organization Division)

若在創世區塊中檢測到兩個MSP用同一個MSP名稱,則排序服務節點將啓動失效。

MSP默認實現是基於X.509證書格式的,根據RFC5280文檔內容,給一些MSP配置參考。

節點須要進行以下配置才能使用MSP進行簽名/驗籤

【1】。用於節點簽名的簽名密鑰(目前只支持ECDSA密鑰)

【2】。經過MSP驗證是有效的X.509證書將做爲節點證書

MSP有效身份須要知足條件:

【1】身份證書符合X.509證書標準,且有到根CA證書/中間CA證書可驗證的證書路徑

【2】身份證書不在吊銷列表中

【3】在X.509證書的OU字段至少包含一個在MSP中配置的部門

和普通X.509證書不一樣的是:MSP身份證書是沒有有效期的,除非被添加到證書吊銷列表中。

(2)生成MSP證書

(3)配置節點的MSP證書

3。MSP配置最佳實踐

二。頒發數字證書的Fabric CA

可選的Fabric CA服務,這是官方提供數字證書管理的一個默認實現。

1。概述

 

2。Fabric CA服務端的安裝部署

【1】。基於mysql的數據存儲

【2】。基於PostgreSQL的數據存儲

【3】。基於LDAP的數據存儲

3。Fabric CA服務端的操做使用

【1】。Fabric CA客戶端的使用

 

【2】。Fabric CA的RESTful接口

相關文章
相關標籤/搜索