Page 335 - 《软件学报》2021年第8期
P. 335

魏欣  等:基于联盟链的物联网跨域认证                                                             2617





















                                    Fig.2    Comparsion between our process and traditional process
                                               图 2   本文流程与传统流程的对比
                    1.  联盟链初始化
                    在构建基于联盟链的服务之前,首先对联盟链进行配置.不同于公有链,联盟链中存在至少一个管理节点为
                 参与共识的云服务器发放证书并配置网络,但管理节点本身不参与链上的业务.完成配置后,参与共识的各云服
                 务器的身份信息及对应权限、采用的共识算法、区块大小等将写入创世区块,同步到每一个云服务器.此时,云
                 服务器可作为 CA 对外提供认证服务.由于联盟链的多中心特性,单个 CA 瘫痪后,其余 CA 仍可完成共识,提供服
                 务.此外,创世区块中公布的是共识节点的初始集群,系统的使用过程中,节点可按照创世区块中配置的策略加
                 入或退出集群,更新将在链上留下记录.如 CA 退出,其之前签发的网关及设备仍在链上可查,不影响继续使用,但
                 更新需要重新注册.如部分 CA 根据自身的风险感知,认为某 CA 为大量恶意节点颁发了证书或不再具备提供验
                 证服务的能力,则采用对“该节点不可信任”达成共识的形式,迫使其退出.与 CA 主动退出集群的区别在于,该情
                 况需对该 CA 自不可信起发布的全部证书做过期处理.在联盟链上发生的业务将打包成块链接到前一个区块,
                 最终可追溯到创世区块.
                    具体流程如下.
                    1)   多个 CA 协商生成大素数 q,并利用 q 生成椭圆曲线群 G 及生成元 P.
                    2)   定义哈希函数如下:
                                                         *
                                                   H 0 ({0,1} , , )G G →  Z * q ,
                                                     ( ,{0,1} ,{0,1} ) →
                                                   HG      *   *   Z * q ,
                                                    1
                                                   HG →      *
                                                     () {0,1} .
                                                    2
                        其中,H 0 根据二进制序列和椭圆曲线上的两个点生成一个不大于 q 的素数.其余类似.
                                   *
                    3)   选择 SK ∈  Z 作为该 A 自身的私钥,计算 PK 1 =SK 1 ⋅P 作为该 CA 的公钥.
                               a  q
                    4)   公布 q,P,G.类似地,其余 CA 按照相同方法生成各自的密钥对.以 4 个节点为例,其余 3 个节点的公钥
                        为 PK 2 ,PK 3 ,PK 4 .
                    5)   公布系统参数及各 CA 的公钥列表到创世区块,同时部署合约支持对 CA 公钥列表进行查询.后续 CA
                        的加入,按照创世区块中指定的原则完成:如开放有加入接口,则新的 CA 调用注册获取到身份及权限
                        对应证书后,将现有区块链同步到本地,参与到后续的认证服务;如未开放接口,则需要管理节点实现
                        对新 CA 的添加及部署.
                    2.  网关初始化
                    网关注册的过程如下.
                    1)   网关 i 选择一个不大于 q 的整数 SK      1  作为自己的私钥,并计算出 PK        1  =  SK 1  ⋅  P ,向某位可验证该网
                                                    gw i                      gw i  gw i
   330   331   332   333   334   335   336   337   338   339   340