Page 350 - 《软件学报》2021年第7期
P. 350

2268                                     Journal of Software  软件学报 Vol.32, No.7,  July 2021

                 盟链更关注强监管环境下客户身份识别(know your customer,简称 KYC)的需求,在身份管理中采用基于数字证
                 书的实名认证方案.系统中部署 PKI/CA 来管理身份,用户基于非对称密码算法通过 CA 生成和管理数字身份,
                 用户实名认证获得数字证书身份标识的过程如下.
                    (1)  用户发送实名注册信息给 CA 申请数字证书;
                    (2)   CA 核实用户实名信息,如果有误,则终止申请过程;
                    (3)  CA 基于用户实名信息为用户生成公私钥对并签发实名数字证书,确保数字证书与用户身份的一一
                 绑定;
                    (4)   CA 将生成的数字证书和私钥发送给用户;
                    (5)  在区块链交易过程中用户使用数字证书作为身份标识符,通过私钥签名实现身份认证,身份管理的全
                 周期过程中用户都是实名的.
                    基于数字证书的实名认证方案可以较好地适用于中心化系统中账本保密的应用场景.但是对于区块链中
                 的公开账本系统,却带来了极大的隐私泄漏风险.观察者可通过对公开账本中实名身份的分析实现交易的关联
                 和追踪,从而严重威胁到用户的交易安全.为了解决这一问题,联盟链在身份管理中也提出了相应的可控匿名认
                 证方案.
                 3.3    可控匿名认证
                    为了解决隐私保护问题,以 Fabric 和 Corda 等为代表的联盟链在身份管理中均提供了可控匿名认证方案.
                 例如,fabric 0.6 版本中提供了基于用户交易证书 TCerts(transaction cerficates,简称 TCerts) [26] 的可控匿名认证方
                 案.Fabric 0.6 中的成员管理服务 MSP 利用注册证书(ECert)-交易证书(TCert)两级安全证书体系实现了前台匿
                 名后台可监管的需求.用户在 Fabric 系统中注册,获得由注册证书颁发机构(enrollment certificate authority,简称
                 ECA)颁发的实名证书 Ecert,在交易过程中,如果选择使用此证书进行交易签名,那么此时的交易就是实名的.当
                 用户需匿名交易时,可以从交易证书颁发机构(transaction certificate  authority,简称 TCA)获得一批由 Ecert 派生
                 出来的匿名交易证书 TCerts.两级证书结构如图 6 所示.

















                                          Fig.6    Tow level indentity certificates in Fabric
                                                图 6   Fabric 中的两级身份证书

                    其中,根证书颁发机构(root CA),是 PKI 层次结构中最上层的 CA,它代表 PKI 体系中的信任锚.注册证书颁
                 发机构 ECA 负责给通过注册验证的用户颁发实名注册证书 Ecerts.交易证书颁发机构 TCA 负责给提供了有效
                 注册证书的用户颁发匿名交易证书 TCerts.匿名交易证书 TCerts 的结构见表 1.
                    其中,监管方拥有加密用户实名注册号 EnrollmentID 的解密密钥,在必要时可通过解密此字段获得用户实
                 名身份.同时,为了降低客户端的密钥存储数量,TCertIndex 字段则用于用户密钥的派生,TCertPub_Key 的生成利
                 用了椭圆曲线的密钥叠加特性,采用密钥派生的方法来完成.其工作原理类似于比特币中的 HD 钱包.用户通过
                 扩展密钥 ExpansionKey 计算密钥扩展值 ExpansionKey=HMAC(ExpansionKey,TCertIndex),则用户私钥 TCert
   345   346   347   348   349   350   351   352   353   354   355