Fabric中的安全机制(一)

2019-05-30  本文已影响0人  帅气的昵称都有人用了

Fabric作为一个联盟链的特例,与公有链不同的是,它的目标是建立以企业为核心的高可信计算环境,因此,在Fabric中特别设计了MSP(Membership Service Provider)来实现Fabric网络中不同机构成员的身份识别与管理。
由于联盟链需要思考商业应用对安全、隐私、监管、审计等的需求,因此在成员进入链时,必须是被许可的Fabric成员管理服务为整个区块链网络提供了身份管理、隐私、保密和可审计的服务,继而通过公钥基础设施PKI使非许可链转化为许可链。

交易安全与隐私保护

Fabric中的交易有两种:

在交易的过程中同时还设计到两类证书:

E-cert就不要多说了,有意思的是这个T-cert证书,它的持有者是只有交易认证中心和审计者知道的,这样一来,用户便可以以匿名的方式参与到系统中。

除了证书方面,交易的安全性还涉及到数据传输的安全问题,因为数据是从客户端出发的,最终被写入到Committer节点中,中途经历了很多网络传输节点。
Fabric中是开启的TLS安全传输渠道来对数据进行传输的。而且,Fabric还使用了第三种证书TLS-cert,用来保证Fabric网络中所有节点之间的通道的安全性,是由TLSCA颁发的。在Fabric中,TLS的传输特性是默认开启的。

智能合约的安全机制

Fabric在智能合约的安全性上采用了进程间隔离的技术奖智能合约代码的进程隔离到系统之外,并通过socket通信方式远程调用智能合约。
为此,在执行智能合约方面,Fabric采用了先进的容器技术,并且,打包智能合约代码并生成Docker镜像的过程是Fabric自动完成的。
可以说,智能合约是一段运行在独立的容器内的程序,它不能与外部有任何的I/O通信,不能直接操作账本,只能与背书节点之间实现被动的gRPC通信,与Fabric系统及账本数据完全隔离。
智能合约在代码编写完成后,需要通过package命令打包为一个可部署的安装包,这个安装包是需要遵守Chaincode Deploment Spec(CDS)规范,CDS规范中最重要的一组信息是智能合约的拥有者的共同签名。作用如下:

再来说一下智能合约与交易的问题,智能合约是不能直接修改区块链账本数据的,而是在执行完毕后返回一个ReadWriteSet对象,其中包括智能合约操作过的Key-Value集合,Write Set是需要写入账本中的数据集,实际上,Committer还会对ReadWriteSet的数据进行版本检查,以确保不会产生脏数据。

上一篇 下一篇

猜你喜欢

热点阅读