美文网首页
Fabric中的安全机制(三)

Fabric中的安全机制(三)

作者: 帅气的昵称都有人用了 | 来源:发表于2019-06-04 08:31 被阅读0次

    今天我们来具体说一下Fabric中的CA。

    Fabric CA 架构的组成

    Fabric CA 实现了一整套PKI公钥基础设施,可以用来生成MSP中所需的全部证书,其主要功能是对MSP中的 成员身份证书 进行管理,包括生成、签名、撤销等功能。

    需要注意的是,一旦MSP成员的证书被部署,该成员就可以访问Fabric网络中的各项资源,而不需要进行重复的申请,因此,Fabric CA 是不会对系统的性能造成任何影响的。

    Fabric CA 是属于典型的CS架构,第一部分是Fabric CA Server,它是一个提供REST API接口的Server,默认监听在7054端口;另一个部分是Fabric CA Client,客户端包括命令行工具以及Fabric CA SDK开发包,我们可以看到,无论是服务器端,还是客户端,它都是通过REST API进行的。前者实现的是以命令行的形式操作CA证书,后者是以编程方式操作CA证书。
    Fabric CA Server可以将生成的证书的属性信息写入到关系数据库或者LDAP目录服务器中,在Fabric CA Server服务器中,默认使用的是关系型数据库SQLite。而且,Fabric CA Server还可以实现高可用的集群模式,例如是用HA-Proxy的负载均衡代理软件实现对集群方式的部署,这样一来,集群中的所有服务器都可以共享相同的数据库。
    为了安全起见,CA机构大多会采用根证书+中间证书的根证书链的实现方案。这样一来,多级中间证书可以在很大程度上降低根证书的管理负担,如果中间证书的私钥泄露或者过期,只需要讲这个中间证书吊销并给用户颁发新的证书即可。但无论如何,一定要保证Root CA生成环境的安全性,确保这一私钥不会被泄露。

    Fabric CA 安装及功能

    关于Fabric CA Server的配置信息,我们可以通过fabric-ca-server-config.yaml进行配置以及相关信息的查询。
    首先关于初始管理员admin的信息如下:

    # Contains identity information which is used when LDAP is disabled
      identities:
         - name: admin
           pass: adminpw
           type: client
           affiliation: ""
           attrs:
              hf.Registrar.Roles: "client,user,peer,validator,auditor,ca"
              hf.Registrar.DelegateRoles: "client,user,validator,auditor"
              hf.Revoker: true
              hf.IntermediateCA: true
    

    其中hf.Registrar.Roles部分的属性定义客户端可以注册的证书类型。

    接下里是用于签名证书的CA根证书的配置信息:

    ca:
      # Name of this CA
      name:
      certfile: ca.crt
      keyfile: ca.key
      # Chain file (default: chain-cert.pem)
      chainfile: ca-chain.pem
    

    最后一个属性定义了被CA根证书所信任的证书,如果配置好最后一个属性,那么它与CA根证书certfile一起形成证书链。

    下一个是CSR(证书签名请求)部分的定义:

    csr:
       cn: fabric-ca-server
       names:
          - C: US
            ST: "North Carolina"
            L:
            O: Hyperledger
            OU: Fabric
       hosts:
         - 2008f00aff38
       ca:
          pathlen:
          pathlenzero:
          expiry:
    

    如果在生成CSR的时候没有提供相应的属性,那么就会使用上述默认值。

    证书签名也有一些相关默认的属性,其中最重要的是证书的有效期:

    signing:
        profiles:
          ca:
             usage:
               - cert sign
             expiry: 8000h
             caconstraint:
               isca: true
        default:
          usage:
            - cert sign
          expiry: 8000h
    

    关于生成证书使用的椭圆加密算法,以及其密码强度:

    bccsp:
        default: SW
        sw:
            hash: SHA2
            security: 256
            filekeystore:
                # The directory used for the software file-based keystore
                keystore: /var/hyperledger/fabric-ca-server/keystore
    

    有关存储数据库的定义:

    db:
      type: sqlite3
      datasource: /var/hyperledger/fabric-ca-server/state.db
      tls:
          enabled: false
          certfiles:
            - db-server-cert.pem
          client:
            certfile: db-client-cert.pem
            keyfile: db-client-key.pem
    

    相关文章

      网友评论

          本文标题:Fabric中的安全机制(三)

          本文链接:https://www.haomeiwen.com/subject/vomkxctx.html