Hyperledger Fabric註冊及CA證書頒發

加入Fabric聯盟鏈的計算機結點和用戶都必須要經過註冊並獲得CA頒發的證書,才能在聯盟鏈中操作。證書頒發機構可以提供的功能如下:

  • 身份的註冊 或連接到LDAP(Lightweight Directory Access Protocol,輕量目錄訪問協議)作爲用戶註冊表;

  • 簽發登記證書(ECerts)(Enrollment Certificates)

  • 簽發交易證書(TCerts)(Transaction Certificates)在Hyperledger Fabric blockchain上交易時提供匿名性和不可鏈接性。

  • 證書續期和撤銷

Fabric1.1可以使用原生的也可以使用第三方證書頒發機構,以聯盟鏈中註冊用戶爲例,所有在聯盟鏈中的操作,用戶必須持用戶註冊證書生成的Token才能授權操作,無Token,在聯盟鏈中什麼也做不了,所以,用戶註冊到聯盟鏈,第一步就是要生成Token,用戶註冊流程如下:

image

註冊成功的最終結果是CA頒發證書,再通過證書生成Token,最終是Token發送給用戶,用於用戶在聯盟鏈中增加、查詢的身份憑證。

CA的架構圖如下 :

clip_image002

Fabric Server端由一個服務器集羣組成,以樹形架構組織CA Server節點,包含一個Root 節點和多箇中間節點。每個CA要麼是根CA,要麼是中間CA。每個中間CA都有一個父CA,它要麼是根CA,要麼是另一箇中間CA。

可以通過Client或SDK與服務器集羣中的CA服務器進行交互。客戶端首先路由到HA代理,由代理進行負載均衡,將客戶端連接至某一服務器的集羣成員。

包括前端的一個高可用的代理服務器,連接着若干個CA Server集羣,這些集羣將數據共同存放在同一個數據服務器上。數據庫可能是MySQL、LDAP、PostgresSQL或者SQLite(集羣環境中不推薦使用SQLite)。

集羣中的所有CA服務器都共享相同的數據庫,以跟蹤身份和證書。如果配置了LDAP,則將標識信息保存在LDAP中而不是數據庫中。

Fabric Server端由一個服務器集羣組成,以樹形架構組織CA Server節點,包含一個Root 節點和多箇中間節點。每個CA要麼是根CA,要麼是中間CA。每個中間CA都有一個父CA,它要麼是根CA,要麼是另一箇中間CA。

可以通過Client或SDK與服務器集羣中的CA服務器進行交互。客戶端首先路由到HA代理,由代理進行負載均衡,將客戶端連接至某一服務器的集羣成員。

包括前端的一個高可用的代理服務器,連接着若干個CA Server集羣,這些集羣將數據共同存放在同一個數據服務器上。數據庫可能是MySQL、LDAP、PostgresSQL。

集羣中的所有CA服務器都共享相同的數據庫,以跟蹤身份和證書。如果配置了LDAP,則將標識信息保存在LDAP中而不是數據庫中。

證書的頒發過程和驗證數字簽名的過程如下:

clip_image003

1、 證書包含了明文、密文和加密算法三要素。

2、 明文發給CA,CA用自己的私鑰簽發證書。具體算法是CA對證書明文做一次哈希運算(SHA256)得到h1。再用自己的私鑰用RSA算法將h1加密,得到密文F’。此時有了一套完整的證書。

3、 驗證數字證書時:先用CA的公鑰解密密文F’,得到一個哈希值h2。再用證書明文F計算一次SHA256,得到密文h1。將h1和h2的值對比。如果相等,則證書校驗通過,說明該客戶端持有的是CA頒發的證書。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章