一种基于SGX技术的联盟区块链秘钥存储方法、装置、设备及介质制造方法及图纸

技术编号:23513508 阅读:31 留言:0更新日期:2020-03-18 00:33
本发明专利技术公开一种基于SGX技术的联盟区块链秘钥存储方法、装置、设备及介质,其中,该方法包括:生成秘钥并对秘钥进行加密;通过可信通道将生成的秘钥以及密码口令导入到Enclave(SGX安全区)所在的服务器端;导入成功后,将对相应的秘钥文件和相应的密码口令都删除,不保存关于秘钥的任何信息,只存储通过Enclave封装后的数据;区块链平台在使用私钥时,需要先进行身份认证,身份认证通过后,要在Enclave可信环境中对封装的数据进行解密。在一个区块链网络上,Intel SGX能够保证攻击者已经获得对操作系统控制的情况下也能保证代码和数据安全。采用SGX技术进行秘钥存储,能够解决证书秘钥存放的问题。

A storage method, device, device and medium of secret key of alliance blockchain based on SGX Technology

【技术实现步骤摘要】
一种基于SGX技术的联盟区块链秘钥存储方法、装置、设备及介质
本专利技术涉及联盟区块链的秘钥存储领域,尤其涉及一种基于SGX技术的联盟区块链秘钥存储方法、装置、设备及介质。
技术介绍
区块链技术,区块链是一种新型去中心化协议,能安全地存储数字货币交易或其他数据,信息不可伪造和篡改,区块链上的交易确认由区块链上的所有节点共同完成,由共识算法保证其一致性,区块链上维护一个公共的账本,公共账本位于存储区块上任何节点可见,从而保证其不可伪造和篡改。SGX技术,IntelSoftwareGuardExtensions是英特尔指令架构的扩展,用于增强软件的安全。概括的来说,就是IntelCPU提供的一套TEE机制,通过将合法软件封装在Enclave(安全区)中,以实现对软件进行保护的目的。传统联盟区块链证书的私钥都存放在本地,例如HyperlegerFabric的证书机制,不同证书对应的私钥都保存在本地相应证书的文件夹内,如果私钥泄露或被他人盗取,则可以生成相应的伪证书,会带来不必要的麻烦。如何将证书的私钥存储在一个足够安全的环境下来更好的应用实际生产也是一项严峻的挑战。
技术实现思路
鉴于此,本专利技术实施例提出一种基于SGX技术的联盟区块链秘钥存储方法、装置、设备及介质,解决了秘钥文件存放在不安全的地方可能会被恶意盗取的问题,从而能够保证证书的私钥在安全环境下进行存储。第一方面,本专利技术实施例提供一种基于SGX技术的联盟区块链秘钥存储方法,该方法包括:S1.生成秘钥:将使用证书生成工具生成的秘钥或在第三方获取的秘钥,采用对称加密的方式将秘钥进行加密;S2.传输至Enclave并封装秘钥:在运行区块链平台之前,需要通过可信通道将生成的秘钥以及密码口令导入到Enclave所在的服务器端;S3.清除秘钥文件并存储封装后的文件:导入成功后,区块链平台对相应的秘钥文件和相应的密码口令都会删除,不会保存关于秘钥的任何信息,平台只存储通过Enclave封装后的数据;S4.使用秘钥:区块链平台在使用私钥时,需要先进行身份认证,身份认证通过后,平台要在Enclave可信环境中对封装的数据进行解密,使用秘钥的过程都在Enclave可信环境中进行,秘钥不会再被暴露。进一步的,所述步骤S1中,所述秘钥优选私钥。进一步的,所述步骤S1中,采用AES对秘钥进行加密。进一步的,所述步骤S1中,加密中用的密码包括数字、字母、特殊符号。进一步的,所述步骤S2中,使用可信通道TNC将秘钥传输到Enclave中,使用Enclave对传输的秘钥进行解密后再进行秘钥数据密封。进一步的,所述步骤S2中,对秘钥封装的步骤包括:Enclave中的代码使用EGETKEY指令获取封装秘钥sealkey,该sealkey是结合Enclave的身份、签名信息导出的,采用对称加密对秘钥进行加密,通过sealkey的公钥对加密后的私钥进行密封,然后存储到硬盘上,封装后得到返回值,然后将返回值存储到平台上。进一步的,所述步骤S4中,区块链平台上进行身份认证的步骤包括:区块链平台在使用Enclave时,要对Enclave进行认证时,首先Enclave执行EREPORT指令,将Enclave的身份和附加信息生成REPORT结构,利用QuotingEnclave的报告密钥生成一个MAC,然后连同REPORT结构一起发送给QE,QE会对该结构进行验证,然后将其封装为QUOTE结构体,并使用读取到的EPID密钥对其签名,将QUOTE和签名一同发送给服务器端进行验证,服务器端使用intel提供的认证服务进行验证并将验证消息返回给区块链平台。第二方面,本专利技术实施例提供一种基于SGX技术的联盟区块链秘钥存储装置,包括:秘钥生成模块,用于生成秘钥并对秘钥进行加密;传输及封装模块,用于通过可信通道将生成的秘钥以及密码口令导入到Enclave所在的服务器端,生成的秘钥后对秘钥进行封装;清除及封装存储模块,用于在导入成功后,将对相应的秘钥文件和相应的密码口令删除,不保存关于秘钥的任何信息,只存储通过Enclave封装后的数据;秘钥使用模块,用于先进行身份认证,身份认证通过后,在Enclave可信环境中对封装的数据进行解密。第三方面,本专利技术实施例提供一种设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面所述的基于SGX技术的联盟区块链秘钥存储方法。第四方面,本专利技术实施例提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如第一方面所述的基于SGX技术的联盟区块链秘钥存储方法。在本专利技术实施例采用上述至少一个技术方案能够达到以下有益效果:区块链对于证书秘钥的存放一般选择存放到区块链平台上或是由用户进行自行保管,但是如果受到攻击者恶意攻击那么就有可能损失相应的秘钥,而基于SGX的秘钥存储方法就能够很好地解决证书秘钥的存放问题,通过SGX,即使在受到恶意攻击下对应的秘钥也不会被泄露,攻击者只能获得被SGX加密后的文件并且无法解密。附图说明此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:图1是本专利技术方法的整体执行示意图;图2是本专利技术方法的整体架构流程图。具体实施方式下面根据附图和优选实施例详细描述本专利技术,本专利技术的目的和效果将变得更加明白,以下结合附图和实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。秘钥包含公钥与私钥,私钥用于签名,公钥用于验签,实际场景中私钥需要被妥善保管,公钥用于发送给需要验签的人,本申请实施例提供的一种基于SGX技术的联盟区块链秘钥存储方法,主要是基于私钥进行的。实施例一:图1为本申请实施例中提供的一种基于SGX技术的联盟区块链秘钥存储方法的整体执行示意图,图2为本申请实施例中提供的一种基于SGX技术的联盟区块链秘钥存储方法的整体架构流程图。本申请实施例中证书秘钥可以为链证书秘钥、机构证书秘钥、节点证书秘钥、sdk证书秘钥。下面采用证书秘钥以HyperledgerFabric平台生成的证书文件keystore中的私钥为例进行详细的说明。S1:服务器端首先需要安装SGX所支持的相应环境,需要安装Intel提供的SGXSDK,利用HyperlegerFabric自带的工具cryptogen生成相应的证书文件及其私钥,以生成的keystore文件夹下的私钥为例,其他相应私钥文件都可以以此为例,将私钥文件利用对称加密算法对其明文进行加密,如采用AES加密算法,加密后保存,密码需要有一定的复杂性要求(数字、字母、特殊符号)本文档来自技高网...

【技术保护点】
1.一种基于SGX技术的联盟区块链秘钥存储方法,其特征在于,该方法包括:/nS1.生成秘钥:生成秘钥并对秘钥进行加密;/nS2.传输至Enclave并封装秘钥:在运行区块链平台之前,需要通过可信通道将生成的秘钥以及密码口令导入到Enclave所在的服务器端;/nS3.清除秘钥文件并存储封装后的文件:导入成功后,区块链平台对相应的秘钥文件和相应的密码口令都会删除,不会保存关于秘钥的任何信息,平台只存储通过Enclave封装后的数据;/nS4.使用秘钥:区块链平台在使用私钥时,需要先进行身份认证,身份认证通过后,平台要在Enclave可信环境中对封装的数据进行解密。/n

【技术特征摘要】
1.一种基于SGX技术的联盟区块链秘钥存储方法,其特征在于,该方法包括:
S1.生成秘钥:生成秘钥并对秘钥进行加密;
S2.传输至Enclave并封装秘钥:在运行区块链平台之前,需要通过可信通道将生成的秘钥以及密码口令导入到Enclave所在的服务器端;
S3.清除秘钥文件并存储封装后的文件:导入成功后,区块链平台对相应的秘钥文件和相应的密码口令都会删除,不会保存关于秘钥的任何信息,平台只存储通过Enclave封装后的数据;
S4.使用秘钥:区块链平台在使用私钥时,需要先进行身份认证,身份认证通过后,平台要在Enclave可信环境中对封装的数据进行解密。


2.根据权利要求1所述的基于SGX技术的联盟区块链秘钥存储方法,其特征在于,所述步骤S1中,所述秘钥优选私钥。


3.根据权利要求2所述的基于SGX技术的联盟区块链秘钥存储方法,其特征在于,所述步骤S1中,采用AES对秘钥进行加密。


4.根据权利要求3所述的基于SGX技术的联盟区块链秘钥存储方法,其特征在于,所述步骤S1中,加密中用的密码包括数字、字母、特殊符号。


5.根据权利要求1所述的基于SGX技术的联盟区块链秘钥存储方法,其特征在于,所述步骤S2中,使用可信通道TNC将秘钥传输到Enclave中,使用Enclave对传输的秘钥进行解密后再进行秘钥数据密封。


6.根据权利要求1所述的基于SGX技术的联盟区块链秘钥存储方法,其特征在于,所述步骤S2中,对秘钥封装的步骤包括:
Enclave中的代码使用EGETKEY指令获取封装秘钥sealkey,该sealkey是结合Enclave的身份、签名信息导出的,采用对称加密对秘钥进行加密,通过sealkey的公钥对加密后的私钥进行密封,然后存储到硬盘上,封装后得到返回值,然后...

【专利技术属性】
技术研发人员:李伟邱炜炜尹可挺鲁校冉
申请(专利权)人:杭州趣链科技有限公司
类型:发明
国别省市:浙江;33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1