CN116366256A - 以太坊智能合约漏洞信息安全共享系统及其方法 - Google Patents
以太坊智能合约漏洞信息安全共享系统及其方法 Download PDFInfo
- Publication number
- CN116366256A CN116366256A CN202310213743.6A CN202310213743A CN116366256A CN 116366256 A CN116366256 A CN 116366256A CN 202310213743 A CN202310213743 A CN 202310213743A CN 116366256 A CN116366256 A CN 116366256A
- Authority
- CN
- China
- Prior art keywords
- contract
- blacklist
- vulnerability
- user
- report
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 24
- 238000004422 calculation algorithm Methods 0.000 claims description 20
- 238000012545 processing Methods 0.000 claims description 20
- 238000011084 recovery Methods 0.000 claims description 18
- 230000008439 repair process Effects 0.000 claims description 4
- 238000012795 verification Methods 0.000 claims description 4
- RWSOTUBLDIXVET-UHFFFAOYSA-N Dihydrogen sulfide Chemical compound S RWSOTUBLDIXVET-UHFFFAOYSA-N 0.000 claims description 3
- 238000011160 research Methods 0.000 claims description 3
- 230000007246 mechanism Effects 0.000 abstract description 12
- 230000006870 function Effects 0.000 description 12
- 238000012546 transfer Methods 0.000 description 4
- 230000001934 delay Effects 0.000 description 3
- 238000009795 derivation Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
- H04L9/3252—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using DSA or related signature schemes, e.g. elliptic based signatures, ElGamal or Schnorr schemes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/101—Access control lists [ACL]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1433—Vulnerability analysis
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3239—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y04—INFORMATION OR COMMUNICATION TECHNOLOGIES HAVING AN IMPACT ON OTHER TECHNOLOGY AREAS
- Y04S—SYSTEMS INTEGRATING TECHNOLOGIES RELATED TO POWER NETWORK OPERATION, COMMUNICATION OR INFORMATION TECHNOLOGIES FOR IMPROVING THE ELECTRICAL POWER GENERATION, TRANSMISSION, DISTRIBUTION, MANAGEMENT OR USAGE, i.e. SMART GRIDS
- Y04S40/00—Systems for electrical power generation, transmission, distribution or end-user application management characterised by the use of communication or information technologies, or communication or information technology specific aspects supporting them
- Y04S40/20—Information technology specific aspects, e.g. CAD, simulation, modelling, system security
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了以太坊智能合约漏洞信息安全共享系统及其方法,所述系统包括黑名单提供商处理程序、服务器、用户客户端和合约所有者应用程序,其中所述用户客户端和合约所有者应用程序共用同一个客户端,通过不同身份进行登录客户端。本发明在区块链的公钥密码学基础上开发了一种加密机制,即平台的公钥加密机制,通过这样的机制保证了只有合约所有者他自己可以解密加密的数据。本发明连接了用智能合约进行交易的用户、部署脆弱合约的智能合约所有者和智能合约黑名单提供商。本发明将黑名单提供商的漏洞信息单向加密后,再传输给智能合约所有者,并对即将使用脆弱合约的用户进行警告,避免用户遭受不必要的损失。
Description
技术领域
本发明涉及区块链系统安全领域,具体涉及以太坊智能合约漏洞信息安全共享系统及其方法。
技术背景
近年来,智能合约的安全问题引起了研究人员越来越多的关注。然而,智能合约的用户、所有者和安全研究者之间存在着差距。合约漏洞利用的细节通常通过学术论文、图表室(chart rooms)和博客发布。这种消极的方法不能保证合约所有者或用户能及时得到细节,而这些细节可能被网络犯罪分子利用。为了避免这种后果,一些作者避免提及任何特定的智能合约,这反过来又影响了用户和攻击者对漏洞的了解。同时,为了接受合约漏洞的披露,一些Dapp所有者不得不在他们的前端留下联系信息,这和平台的匿名特性相冲突。在合约漏洞披露之后,合约拥有者可能仍然不打算修补漏洞,直到攻击事件发生,因为处理一个有漏洞的合约并恢复安全状态是非常麻烦的。用户在进行交易前可能不会验证智能合约的安全性,这使他们遭受不必要的损失。
综上所述,我们需要提出一种以太坊智能合约漏洞信息安全共享系统及其方法,将黑名单提供商的漏洞信息单向加密后,再传输给智能合约所有者,并对即将使用脆弱合约的用户进行警告,避免用户遭受不必要的损失。
发明内容
本发明提供了以太坊智能合约漏洞信息安全共享系统及其方法,它能将黑名单提供商的漏洞信息单向加密后,再传输给智能合约所有者,并对即将使用脆弱合约的用户进行警告,解决了智能合约平台中交易的安全性问题。
本发明提供了一种以太坊智能合约漏洞信息安全共享系统,部署于以太坊区块链,所述系统包括:
黑名单提供商处理程序:用于与服务器交互以验证黑名单提供商的身份信息,获得经过身份验证的黑名单提供商提供的漏洞信息,对所述漏洞信息进行数据标准化处理,并将数据标准化处理后的信息存储在服务器的数据表中,对所述漏洞信息中的漏洞报告加密,生成加密报告,并上传至服务器;
服务器:用于存储所述漏洞信息生成合约黑名单列表,将所述合约黑名单列表上传至用户客户端,并将所述合约黑名单列表中的漏洞信息发送至对应合约拥有者的合约所有者应用程序,部署购买漏洞信息的智能合约以响应来自合约所有者应用程序的购买漏洞信息请求,向购买漏洞报告的合约所有者应用程序推送加密报告;
用户客户端:对用户将要进行交易的智能合约进行本地查询,若其存在于合约黑名单列表中,则触发安全警告;
合约所有者应用程序:用于发送购买漏洞信息请求,对服务器推送的加密报告进行公钥恢复以修补漏洞。
进一步地,所述用户客户端内部署本地过滤器,用户客户端调用智能合约时,通过所述本地过滤器判断智能合约地址或URL是否在合约黑名单列表中的漏洞信息中,如果否,则所述合约地址或URL不在合约黑名单列表中,则用户客户端将向用户显示一个安全对话框;如果是,则用户客户端通过查询合约黑名单以确定该合约是否安全,若是安全的,则用户客户端将向用户显示一个安全对话框,若不是安全的,则用户客户端将向用户将显示一个包含其威胁类型的对话框,以警告用户不要与目标交易。
进一步地,所述漏洞信息包括威胁类型、合约地址、合约URL、合约类型、合约所有者、漏洞报告,以及漏洞报告价格。
进一步地,所述用户客户端和合约所有者应用程序共用同一个客户端,通过不同身份进行登录客户端。
本发明还提供一种以太坊智能合约漏洞信息安全共享系统的方法,包括以下步骤:
生成加密报告:黑名单提供商通过验证身份信息登录服务器,向所述服务器上传漏洞信息,通过黑名单提供商处理程序对漏洞信息进行数据标准化处理,并将数据标准化处理后的信息存储在服务器的数据表中,对所述漏洞信息中的漏洞报告加密,生成加密报告,并上传至服务器;
利用合约黑名单列表对用户进行警告:利用数据表生成合约黑名单,用户通过以太坊钱包登录用户客户端,所述用户客户端对用户将要进行交易的智能合约进行本地查询,若其存在于合约黑名单列表中,则触发安全警告;
推送加密报告给合约所有者:所述合约所有者通过登录合约所有者应用程序接收对应的合约黑名单列表中的漏洞信息,向服务器发送购买漏洞信息请求,所述服务器向合约所有者推送加密报告。
进一步地,对所述漏洞信息中的漏洞报告加密包括以下步骤:
利用以太坊API接口,将有效的ENS名称解析为合约地址,或根据合约地址查找有效的ENS名称;
利用secp256k1椭圆曲线生成元素G,以获得合约所有者的公钥;
通过以太坊智能合约的地址,使用以太坊API接口获得合约创建交易哈希值;
通过所述交易哈希值,获得ECDSA数字签名组件r、s和v,以及描述交易类型的链ID,将其中的签名组件v和链ID作为输入,调用函数calculate Sig Recovery()来获得压缩格式的前缀prefix:
recovery函数的返回值recovery=1,则前缀prefix赋值'03';如果recovery=0,则前缀prefix赋值'02';拼接prefix和r以调用函数Point()来获得椭圆曲线点R的坐标;从椭圆曲线常数CURVE得到椭圆曲线的阶数n;根据所述n、r、s和消息哈希,我们就可以从G和R中计算出公钥坐标点Q的坐标值(x, y);
恢复公钥pk,将所述公钥坐标点Q(x, y)的横纵坐标加上前缀04进行拼接,以得到恢复的公钥;
以恢复的公钥和报告为输入,此处报告是黑名单提供商上传的明文报告,在本地利用ECIES加密算法,输出得到密文公钥、密文、对称算法参数,以及MAC码;
所述输出信息将被存储在命名为加密报告的文件中,所述文件将被上传到服务器上。
进一步地,对所述漏洞信息进行数据标准化处理包括以下步骤:
对不同黑名单提供商的不同数据表格式进行规范处理,所述数据表格式包括唯一身份、威胁类型、合约地址、合约URL、合约类型、合约所有者、漏洞报告价格,以及加密报告的GridFS ID。
进一步地,所述用户通过以太坊钱包登录用户客户端包括以下步骤:
用户通过以太坊钱包登录客户端,根据所述合约所有者的EOA,若黑名单列表中的以太坊钱包地址和所登录的用户地址不同,所述客户端将确定该用户为合约交易用户。
进一步地,所述合约所有者通过登录合约所有者应用程序接收对应的合约黑名单列表中的漏洞信息,向服务器发送购买漏洞信息请求,所述服务器向合约所有者推送加密报告,包括以下步骤:
用户通过以太坊钱包登录合约所有者应用程序,根据所述合约所有者的EOA,若黑名单列表中的以太坊钱包地址和所登录的用户地址相同,合约所有者应用程序将确定该用户为脆弱合约所有者,将遍历所述合约黑名单列表,并推送一个相关的易受攻击的合约地址列表,以提醒所述合约所有者,其拥有的智能合约中存在漏洞信息;
所述合约所有者通过向服务器发送请求报告购买漏洞信息,所述服务器在接收到加密报告后,将生成合约黑名单列表,所述合约所有者利用私钥作为输入,在客户端下载所述加密报告。
进一步地,所述服务器向合约所有者推送加密报告,之后还包括所述合约所有者利用所述加密报告修补漏洞,其包括以下步骤:
利用ECIES解密算法来产生原始的明文报告,将所述明文报告储存在本地供用户研究;
所述合约所有者部署一个新的合约来修补漏洞后,将以太坊从所述智能合约转移到黑名单提供商的地址;
从客户端发送令牌到服务器,通过所述令牌,服务器将确认漏洞已被修补;
所述已被修补的脆弱合约将被服务器从合约黑名单列表中删除。
相比与现有技术,本发明的有益效果为:
1、本发明提供的一种以太坊智能合约漏洞信息安全共享系统,连接了用智能合约进行交易的用户、部署脆弱合约的智能合约所有者和智能合约黑名单提供商,只有合约所有者本人利用本人的私钥才能得到其脆弱合约对应的加密报告,即将黑名单提供商的漏洞信息单向加密后,再传输给智能合约所有者,防止加密报告落入他人之手,对使用该脆弱合约进行交易的客户带来损失;
2、本发明在用户使用不安全的合约进行交易之前发出警告,保证了用户交易的安全性。
附图说明
图1为本发明一种以太坊智能合约漏洞信息安全共享系统的详细流程图;
图2为本发明数据处理阶段的方案流程;
图3为本发明哈希运算示意图;
图4为本发明用户警告阶段的流程示意图;
图5为本发明合约推送阶段的技术方案图。
具体实施方式
以下结合附图1~5和具体实施例对本发明作进一步的详细说明。
如图1所示,本实施例提出了一种以太坊智能合约漏洞信息安全共享系统,部署于以太坊区块链,所述系统包括:
黑名单提供商处理程序:用于与服务器交互以验证黑名单提供商的身份信息,获得经过身份验证的黑名单提供商提供的漏洞信息,对所述漏洞信息进行数据标准化处理,并将数据标准化处理后的信息存储在服务器的数据表中,对所述漏洞信息中的漏洞报告加密,生成加密报告,并上传至服务器;
服务器:用于存储所述漏洞信息生成合约黑名单列表,将所述合约黑名单列表上传至用户客户端,并将所述合约黑名单列表中的漏洞信息发送至对应合约拥有者的合约所有者应用程序,部署购买漏洞信息的智能合约以响应来自合约所有者应用程序的购买漏洞信息请求,向购买漏洞报告的合约所有者应用程序推送加密报告;本实施例中,所述漏洞信息包括威胁类型、合约地址、合约URL、合约类型、合约所有者和漏洞报告,以及漏洞报告价格。
用户客户端:对用户将要进行交易的智能合约进行本地查询,若其存在于合约黑名单列表中,则触发安全警告;
合约所有者应用程序:用于发送购买漏洞信息请求,对服务器推送的加密报告进行公钥恢复以修补漏洞。本实施例中,所述用户客户端和合约所有者应用程序共用同一个客户端,通过不同身份进行登录客户端。
本发明提供的一种以太坊智能合约漏洞信息安全共享系统,连接了用智能合约进行交易的用户、部署脆弱合约的智能合约所有者和智能合约黑名单提供商,只有合约所有者本人利用本人的私钥才能得到其脆弱合约对应的加密报告,即将黑名单提供商的漏洞信息单向加密后,再传输给智能合约所有者,防止加密报告落入他人之手,对使用该脆弱合约进行交易的客户带来损失。
本实施例中,如图2所示,黑名单提供商登录处理程序进行注册,每个黑名单提供商应提供其个人信息,以验证其作为智能合约安全研究员的身份。经过验证的黑名单提供商的账户信息将被记录在服务器的认证表中。提供注册界面是为了帮助黑名单提供商注册账户。在上传研究结果之前,黑名单提供商应首先登录他们的账户,以实现上传数据与他们的账户信息之间的绑定。根据预定义的数据表格式,处理程序帮助每个黑名单提供商在本地规范其数据,以支持进一步的数据库存储和黑名单生成。
如图1所示,通过处理程序,黑名单提供商将他们的漏洞合约信息、加密报告及其价格上传到服务器,这些信息将与账户信息一起存储在数据表中。为了规范不同黑名单提供商的不同数据表格式,服务器预先定义了数据表格式,所述数据表格式包括唯一身份、威胁类型、合约地址、合约URL、合约类型、合约所有者、漏洞报告价格,以及加密报告的GridFSID。本实施例定义威胁类型描述的是不安全合约的标签。合约类型是描述它是否是代理合约,包含漏洞利用细节的报告在上传前应进行加密。
通过标准化后,判断所述合约是否为脆弱合约,若是脆弱合约,则进行定价,并利用公钥恢复,生成加密报告,并上传至服务器。
本实施例中,黑名单提供商处理程序利用算法对漏洞合约进行公钥恢复,为了实现合约所有者的通知机制,服务器将合约所有者定义为直接创建合约的外部交易或触发创建合约的内部交易的发件人的EOA。在数据表中,GridFS ID被用来定位加密的漏洞报告。通过数据表,将生成一个合约黑名单,以支持客户端的功能。本实施例中,漏洞合约信息对所有的用户都是公开的,漏洞利用细节的报告只对合约所有者可用。为了防止漏洞利用细节被泄露,处理程序在向服务器发送漏洞报告之前,会在本地对漏洞报告进行加密。然后再发送给服务器。以太坊利用ECC来实现EOA生成和交易验证。每个合约所有者都持有其私钥密钥。服务器恢复合约所有者的公钥来加密报告,这样除了私钥的所有者,没有人可以解密。这样保证了只有合约所有者本人才可以购买对应的加密报告,查看其中的漏洞利用细节。
现有已知的椭圆曲线密码学(简称ECC)是一种基于离散对数问题的非对称或公钥密码学。通过椭圆曲线上的加法和乘法来表示。以太坊使用一个特定的椭圆曲线和一组数学常数,这是由美国国家标准与技术研究所(NIST)制定的一个名为secp256k1的标准中所定义。从一个随机产生的数字k开始,ECC将其乘以secp256k1曲线上的一个预定点,称为生成点G,产生曲线上的另一个点,这就是相应的公钥K:K = k * G 生成点是secp256k1标准的一部分;它对secp256k1的所有实现都是相同的,所有从该曲线得到的密钥都使用同一个点G。因为对所有以太坊用户来说,生成点总是相同的,所以私钥k与G相乘的结果总是相同的公钥K。k和K之间的关系是固定的,但只能在一个方向上计算,即从k到K。这就是为什么以太坊地址(由K导出)可以与任何人分享,并且不会暴露用户的私钥(k)。
如图3所示,以太坊中使用的数字签名算法是椭圆曲线数字签名算法(简称ECDSA),它是基于椭圆曲线私钥-公钥对来实现的。在创建原始交易之后,通过私钥进行签名,该签名证明私钥的所有者已经授权转让以太,或执行合约。它保证了不可抵赖性,并证明交易数据在交易被签署后没有也不能被任何人修改。ECDSA数字签名的三个组成部分:r、s和v。已签名的交易将被发送到以太坊节点,这些节点将通过从r、s和v组成部分中推导出EOA的公钥来验证其签名。发件人EOA的地址可以从公钥中推导出来,这反过来证明了只有产生公钥的私钥所有者才能产生交易的签名。其中EOA为外部拥有的账户。
在本实施例中,服务器希望使用ECC公钥来加密数据,并使用相应的私钥来解密。然而,ECC并没有直接提供加密方法。相反,通过使用椭圆曲线Diffie-Hellman(ECDH)密钥交换方案,设计了一种混合加密方案,以得出对称数据加密和解密的共享秘钥。椭圆曲线综合加密方案(Elliptic Curve Integrated Encryption Scheme,简称ECIES)是一个公钥认证的加密方案,它使用KDF(密钥衍生函数)从ECDH共享密钥中得出单独的MAC密钥和对称加密密钥。
ECIES将基于ECC的非对称加密技术与对称加密结合起来,通过收件人的公开密钥提供数据加密,并通过收件人的私人密钥进行解密。ECIES加密方案使用ECC密码学(公钥密码系统)、密钥衍生函数(KDF)、对称加密算法和MAC算法(认证标签)组合在一起。
ECIES加密方案是一个框架,而不是一个具体的算法。它可以通过插入不同的算法来实现。在服务器的工作中,secp256k1椭圆曲线被用于公钥的计算。
黑名单提供商在界面上输入不安全的合约地址或URL、威胁类型和合约类型。若合约类型为脆弱合约,才使用公钥恢复算法,利用Infura API、ethjs-ens和ethjsprovider-http库,将有效的ENS名称解析为合约地址,或根据合约地址查找有效的ENS名称。同时,Infura API和JSON-RPC方法被用来获取合约创建交易字段,其中包括合约所有者的EOA。合约漏洞利用细节报告应在发送至服务器之前进行本地加密。利用合约创建交易的字段,EthereumJS虚拟仓库Monorepo被用来返回合约所有者的公钥。通过ecrypto库,实现了ECIES加密算法,用生成的公钥对漏洞报告进行加密。
为了防止漏洞利用的细节被泄露,本发明在区块链的公钥密码学基础上开发了一种平台的公钥加密机制,通过这样的机制保证了只有合约所有者他自己可以解密加密的数据,从而获得其中的漏洞利用细节。
本实施例中,一种平台的公钥加密机制,包括以下步骤:
利用以太坊API接口,将有效的ENS名称解析为合约地址,或根据合约地址查找有效的ENS名称;
利用secp256k1椭圆曲线生成元素G,以获得合约所有者的公钥;
通过以太坊智能合约的地址,用CA表示以太坊智能合约的地址,使用以太坊API接口获得合约创建交易哈希值;
通过所述交易哈希值,获得ECDSA数字签名组件r、s和v,以及描述交易类型的链ID,将其中的签名组件v和链ID作为输入,调用函数calculate Sig Recovery()来获得压缩格式的前缀prefix:
如果recovery函数的返回值recovery=1,则前缀prefix赋值'03';如果recovery=0,则前缀prefix赋值'02';拼接prefix和r以调用函数Point()来获得椭圆曲线点R的坐标;从椭圆曲线常数CURVE得到椭圆曲线的阶数n;根据所述n、r、s和消息哈希,从G和R中计算出公钥坐标点Q的坐标值(x, y),其中,recovery代表合约类型,消息哈希就是指上面的交易哈希值;
恢复公钥pk,将所述公钥坐标点Q(x, y)的横纵坐标加上前缀04进行拼接,以得到恢复的公钥,其中公钥pk用于加密或验证签名;
以恢复的公钥和报告为输入,此处报告是黑名单提供商上传的明文报告,在本地利用ECIES加密算法,输出得到密文公钥、密文、对称算法参数,以及MAC码;
所述输出信息将被存储在命名为加密报告的文件中,所述文件将被上传到服务器上。
之后,合约所有者再使用私钥进行解密,从而获得漏洞利用细节信息的明文。
本实施例中,所述用户客户端内部署本地过滤器,用户客户端调用智能合约时,通过所述本地过滤器判断智能合约地址或URL是否在合约黑名单列表中的漏洞信息中,如果否,则所述合约地址或URL不在合约黑名单列表中,则用户客户端将向用户显示一个安全对话框;如果是,则用户客户端通过查询合约黑名单以确定该合约是否安全,若是安全的,则用户客户端将向用户显示一个安全对话框,若不是安全的,则用户客户端将向用户将显示一个包含其威胁类型的对话框,以警告用户不要与目标交易。本实施例中,使用的本地过滤器为布隆过滤器存在误报,所以如果智能合约地址或URL是在合约黑名单列表中的漏洞信息中,则还需要进行二次遍历,以确保交易的安全性。
本发明在用户使用不安全的合约进行交易之前发出警告,保证了用户交易的安全性。
本发明还提供一种以太坊智能合约漏洞信息安全共享系统的方法,包括以下步骤:
生成加密报告:黑名单提供商通过验证身份信息登录服务器,向所述服务器上传漏洞信息,通过黑名单提供商处理程序对漏洞信息进行数据标准化处理,并将数据标准化处理后的信息存储在服务器的数据表中,对所述漏洞信息中的漏洞报告加密,生成加密报告,并上传至服务器;
利用合约黑名单列表对用户进行警告:利用数据表生成合约黑名单,用户通过以太坊钱包登录用户客户端,所述用户客户端对用户将要进行交易的智能合约进行本地查询,若其存在于合约黑名单列表中,则触发安全警告;
推送加密报告给合约所有者:所述合约所有者通过登录合约所有者应用程序接收对应的合约黑名单列表中的漏洞信息,向服务器发送购买漏洞信息请求,所述服务器向合约所有者推送加密报告。
本实施例中,之后还包括所述合约所有者利用所述加密报告修补漏洞,其包括以下步骤:
利用ECIES解密算法来产生原始的明文报告,将所述明文报告储存在本地供用户研究;
所述合约所有者部署一个新的合约来修补漏洞后,将以太坊从所述智能合约转移到黑名单提供商的地址;
从客户端发送令牌到服务器,通过所述令牌,服务器将确认漏洞已被修补;
所述已被修补的脆弱合约将被服务器从合约黑名单列表中删除。
本实施例中,如图5所示,智能合约拥有者主动推送阶段技术方案包括以下步骤:
S21、用户通过以太坊钱包登录客户端;
为了实现合约所有者通知机制,客户端首先验证他们的身份。将钱包功能整合到客户端中,因此用户需要登录他们的钱包。根据EOA,客户端将确定其是否为易受攻击的合约所有者。如果是,它将遍历合约黑名单并推送一个相关的易受攻击的合约地址列表,以提醒用户他们的合约中存在漏洞。
S22、合约拥有者确认自己是否购买漏洞信息;
如图4所示,如果合约所有者希望获得漏洞这个细节,客户端部署了一个智能合约来响应报告请求。调用两个外部函数来进行处理,其中请求函数是将目标报告的UID存储到合约存储中,并将以太坊存储在合约中,并将以太币存储到合约余额中,转移函数将以太币从合约余额转移到目标EOA。请求交易是将足够的以太币转移到指定的交易智能合约上,以购买目标报告。在其成功执行后,一个令牌将返回到客户端。这将被发送到服务器作为请求凭证。通过该凭证,服务器将确定合约所有者想要购买哪份报告,以及合约所有者是否为其支付了足够的以太币。如果是,客户端可以请求下载该报告。有了加密的报告和合约所有者持有的私钥作为输入,ECIES就可以下载报告。
S23、合约拥有者修补漏洞;
以加密的报告和合约所有者持有的私钥作为输入,ECIES解密算法被用来产生原始的明文报告,将被储存在本地供用户研究。在合约所有者部署一个新的合约来修补漏洞后,它将进行一个特定的交易,将以太坊从我们的合约转移到黑名单提供商的EOA。在其成功执行后,一个令牌将被从客户端发送至从客户端发送到服务器。通过该令牌,服务器将确认漏洞已被修补,而黑名单提供商已获得了利润。被确认已被修补的代理合约将被从合约黑名单中删除,而其他的将被保留。
本实施例中,对本发明的一种以太坊智能合约漏洞信息安全共享系统,分别对黑名单提供商处理程序、服务器和客户端分别进行了性能评估。
本实施例中,评估了黑名单提供商处理程序的加密时间和上传时间。对于客户端,评估了用户警告和合约所有者通知机制的开销,以及对合约所有者通知机制的开销进行了仔细的评估。本实施例中分别使用了两个真实的数据集。第一个数据集D1-104份合约其中包含重入、访问控制、算术、不良随机性等漏洞。第二个数据集D2-2880份合约,这些合约被认为是钓鱼网站、庞氏骗局或蜜罐。在D1数据集的104份漏洞利用报告中,其中46份txt格式的报告从1KB到10KB。在D1数据集的104份漏洞利用报告中,46份txt格式的报告在1KB到10KB之间,10份doc格式的报告在10KB到1 MB,48份PDF格式的报告从1MB到10MB。
黑名单提供商处理程序性能评估
黑名单提供商处理程序负责注册和数据处理。由于受到人工验证的严重影响,注册的时间消耗很难评估。在通过界面输入不安全的合约地址或URL、威胁类型和合约类型后,黑名单提供商处理程序将自动计算出合约所有者的公钥。记录在三台设备上重复工作10次的耗时,平均耗时为935.67毫秒。然后,评估了加密和上传不同大小的报告所消耗的时间。为了便于定量比较,选择了5份有代表性的报告:1KB、10KB、100KB、1MB和10MB。在三台设备上,为每种大小的报告测试了10套,并取了平均值。如表1所示,密文报告的大小比纯文本报告大3.5倍以上。加密时间是可以接受的,因为它对10MB大小的报告进行加密的时间小于3秒。由于网络延迟,黑名单提供商处理程序上传数据所需的时间波动很大。
表1
服务器性能评估
首先评估了认证表、数据表的存储开销,和加密报告的存储开销。认证表记录了用户的账户信息,每条账户信息的存储开销仅为0.2 kB。数据表存储所有不安全合约的信息,我们上传了2984个不安全合约的条目,每个条目的存储开销小于0.4kB。还上传了104份加密的报告到服务器,加密报告的数量很少,但存储开销很大。每份加密报告的平均存储开销超过13157kB。考虑到加密报告的巨大存储开销,可以将GridFS数据库与服务器解耦与服务器脱钩,以便在未来扩展或实现分布式处理。
在数据表被黑名单提供商更新后,服务器自动生成一个合约黑名单,以支持客户端的功能。进一步估计了创建合约黑名单的平均时间消耗和存储开销,为了便于定量比较,生成了仿真数据来填充数据表。如表2所示,随着条目的增加,存储开销呈线性增长。消耗的时间随着条目的增加而缓慢增长,当条目数增加到40000时,耗时激增,由于节点的内存交换,时间消耗急剧上升。
表2
客户端性能评估
首先,计算客户端下载合约黑名单的开销并将其加载到内存中。本实施例中,用模拟数据填入数据表,以便于进行定量比较。如表3所示,合约黑名单的本地存储和内存占用随着条目的增加而线性增加。随着条目的增加,下载合约黑名单和加载到内存中的平均时间也在增加,并且受到网络延迟和设备配置的严重影响。综上所述,黑名单下载和内存上传的总体耗时小于2秒,占用的内存小于20MB。与主网上部署的1500多万份智能合约相比,经过验证的不安全合约只是一个小数目。因此,使用布隆过滤器技术来快速过滤绝大多数的正常用户或安全合约,从而大大减少响应时间。将误报率设定在5%以下,因为这对于用户的日常使用来说已经足够小了,而且内存的使用也是最小的。评估了布隆过滤器生成的开销。即使黑名单条目的数量为40,000个,也需要花费大量时间。条目数量为40,000,生成一个布隆过滤器只需要1秒和64 kB。
表3
接下来,评估了布隆过滤器的效率。
首先,它将被用于判断用户是否是脆弱的合约所有者。这种认证的时间消耗中,如果EOA不是合约所有者,那么消耗的时间就很短。不是合约所有者,耗时为0.014 ms至0.028ms。在这之后,用户只能使用用户警告服务。如果EOA可能是一个脆弱的合约所有者,合约所有者通知机制将需要额外的时间来遍历合约黑名单,并推送相关的脆弱合约地址列表给用户。
然而,这样的工作不会影响用户的日常使用,因为它表现为在实验过程中,认证速度达到了毫秒级别。进一步评估了客户端的时间消耗,以确定该智能合约是否不安全,对目标合约的本地查询将首先在布鲁姆过滤器中执行。如果智能合约地址或URL是在合约黑名单列表中的漏洞信息中,合约黑名单将被进一步查询以确定该合约是否不安全。本地查询的时间消耗中,如果目标合约肯定不在黑名单,本地查询的时间消耗在0.013 ms到0.021ms之间。黑名单查询必须花费额外的时间,如果目标合约可能存在于黑名单,因为必须查询黑名单以确定合约是否是不安全的。然而,对目标合约的本地查询不会让用户等待太长时间,从黑名单中查询一个不安全的合约平均只需要不到0.88毫秒。黑名单上的40,000个条目。
最后,评估了合约所有者通知机制的开销,我们也评估了加密报告的下载时间和解密时间。因为机制中报告请求的时间受网络速度和以太坊区块链的挖矿速度影响。该请求交易可能会在矿工的内存池中等待,如果用户没有设置高的gas价格。本实施例中,利用5份具有代表性的加密报告,这些报告提前进行了计算,以方便定量比较。在理论上,下载时间和解密时间的增加与加密报告的大小成正比,在实践中,它们受到网络延迟和设备配置的影响。经过测试,客户端解密加密报告的时间消耗与黑名单提供商处理程序加密原始报告的时间消耗接近,因为ECIES算法使用共享密匙进行对称数据加密和解密,该密匙来自secp256k1椭圆曲线和ECDH密钥交换方案。
以上所述发明仅表达了本发明实施例的实施方式,并不能因此理解为对发明专利范围的限制,也并非对本发明实施例的结构作任何形式上的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明实施例构思的前提下,还可以做出若干变化和改进,这些都属于本发明实施例的保护范围。
Claims (10)
1.一种以太坊智能合约漏洞信息安全共享系统,部署于以太坊区块链,其特征在于,所述系统包括:
黑名单提供商处理程序:用于与服务器交互以验证黑名单提供商的身份信息,获得经过身份验证的黑名单提供商提供的漏洞信息,对所述漏洞信息进行数据标准化处理,并将数据标准化处理后的信息存储在服务器的数据表中,对所述漏洞信息中的漏洞报告加密,生成加密报告,并上传至服务器;
服务器:用于存储所述漏洞信息生成合约黑名单列表,将所述合约黑名单列表上传至用户客户端,并将所述合约黑名单列表中的漏洞信息发送至对应合约拥有者的合约所有者应用程序,部署购买漏洞信息的智能合约以响应来自合约所有者应用程序的购买漏洞信息请求,向购买漏洞报告的合约所有者应用程序推送加密报告;
用户客户端:对用户将要进行交易的智能合约进行本地查询,若其存在于合约黑名单列表中,则触发安全警告;
合约所有者应用程序:用于发送购买漏洞信息请求,对服务器推送的加密报告进行公钥恢复以修补漏洞。
2.根据权利要求1所述的以太坊智能合约漏洞信息安全共享系统,其特征在于:
所述用户客户端内部署本地过滤器,用户客户端调用智能合约时,通过所述本地过滤器判断智能合约地址或URL是否在合约黑名单列表中的漏洞信息中,如果否,则所述合约地址或URL不在合约黑名单列表中,则用户客户端将向用户显示一个安全对话框;如果是,则用户客户端通过查询合约黑名单以确定该合约是否安全,若是安全的,则用户客户端将向用户显示一个安全对话框,若不是安全的,则用户客户端将向用户将显示一个包含其威胁类型的对话框,以警告用户不要与目标交易。
3.根据权利要求1所述的以太坊智能合约漏洞信息安全共享系统,其特征在于,所述漏洞信息包括威胁类型、合约地址、合约URL、合约类型、合约所有者、漏洞报告,以及漏洞报告价格。
4.根据权利要求1所述的以太坊智能合约漏洞信息安全共享系统,其特征在于:所述用户客户端和合约所有者应用程序共用同一个客户端,通过不同身份进行登录客户端。
5.实施如权利要求1~4所述的任一种以太坊智能合约漏洞信息安全共享系统的方法,其特征在于,包括以下步骤:
生成加密报告:黑名单提供商通过验证身份信息登录服务器,向所述服务器上传漏洞信息,通过黑名单提供商处理程序对漏洞信息进行数据标准化处理,并将数据标准化处理后的信息存储在服务器的数据表中,对所述漏洞信息中的漏洞报告加密,生成加密报告,并上传至服务器;
利用合约黑名单列表对用户进行警告:利用数据表生成合约黑名单,用户通过以太坊钱包登录用户客户端,所述用户客户端对用户将要进行交易的智能合约进行本地查询,若其存在于合约黑名单列表中,则触发安全警告;
推送加密报告给合约所有者:所述合约所有者通过登录合约所有者应用程序接收对应的合约黑名单列表中的漏洞信息,向服务器发送购买漏洞信息请求,所述服务器向合约所有者推送加密报告。
6.根据权利要求5所述的一种以太坊智能合约漏洞信息安全共享方法,其特征在于,对所述漏洞信息中的漏洞报告加密包括以下步骤:
利用以太坊API接口,将有效的ENS名称解析为合约地址,或根据合约地址查找有效的ENS名称;
利用secp256k1椭圆曲线生成元素G,以获得合约所有者的公钥;
通过以太坊智能合约的地址,使用以太坊API接口获得合约创建交易哈希值;
通过所述交易哈希值,获得ECDSA数字签名组件r、s和v,以及描述交易类型的链ID,将其中的签名组件v和链ID作为输入,调用函数calculate Sig Recovery()来获得压缩格式的前缀prefix:
如果recovery函数的返回值recovery=1,则前缀prefix赋值'03';如果recovery=0,则前缀prefix赋值'02';拼接prefix和r以调用函数Point()来获得椭圆曲线点R的坐标;从椭圆曲线常数CURVE得到椭圆曲线的阶数n;根据所述n、r、s和消息哈希,从G和R中计算出公钥坐标点Q的坐标值(x,y);
恢复公钥pk,将所述公钥坐标点Q(x,y)的横纵坐标加上前缀04进行拼接,以得到恢复的公钥;
以恢复的公钥和报告为输入,在本地利用ECIES加密算法,输出得到密文公钥、密文、对称算法参数,以及MAC码;
所述输出信息将被存储在命名为加密报告的文件中,所述文件将被上传到服务器上。
7.根据权利要求5所述的一种以太坊智能合约漏洞信息安全共享方法,其特征在于,对所述漏洞信息进行数据标准化处理包括以下步骤:
对不同黑名单提供商的不同数据表格式进行规范处理,所述数据表格式包括唯一身份、威胁类型、合约地址、合约URL、合约类型、合约所有者、漏洞报告价格,以及加密报告的GridFS ID。
8.根据权利要求5所述的一种以太坊智能合约漏洞信息安全共享方法,其特征在于,所述用户通过以太坊钱包登录用户客户端包括以下步骤:
用户通过以太坊钱包登录客户端,根据所述合约所有者的EOA,若黑名单列表中的以太坊钱包地址和所登录的用户地址不同,所述客户端将确定该用户为合约交易用户。
9.根据权利要求5所述的一种以太坊智能合约漏洞信息安全共享方法,其特征在于,所述合约所有者通过登录合约所有者应用程序接收对应的合约黑名单列表中的漏洞信息,向服务器发送购买漏洞信息请求,所述服务器向合约所有者推送加密报告,包括以下步骤:
用户通过以太坊钱包登录合约所有者应用程序,根据所述合约所有者的EOA,若黑名单列表中的以太坊钱包地址和所登录的用户地址相同,合约所有者应用程序将确定该用户为脆弱合约所有者,将遍历所述合约黑名单列表,并推送一个相关的易受攻击的合约地址列表,以提醒所述合约所有者,其拥有的智能合约中存在漏洞信息;
所述合约所有者通过向服务器发送请求报告购买漏洞信息,所述服务器在接收到加密报告后,将生成合约黑名单列表,所述合约所有者利用私钥作为输入,在客户端下载所述加密报告。
10.根据权利要求5所述的一种以太坊智能合约漏洞信息安全共享方法,其特征在于,所述服务器向合约所有者推送加密报告,之后还包括所述合约所有者利用所述加密报告修补漏洞,其包括以下步骤:
利用ECIES解密算法来产生原始的明文报告,将所述明文报告储存在本地供用户研究;
所述合约所有者部署一个新的合约来修补漏洞后,将以太坊从所述智能合约转移到黑名单提供商的地址;
从客户端发送令牌到服务器,通过所述令牌,服务器将确认漏洞已被修补;
所述已被修补的脆弱合约将被服务器从合约黑名单列表中删除。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310213743.6A CN116366256A (zh) | 2023-03-08 | 2023-03-08 | 以太坊智能合约漏洞信息安全共享系统及其方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310213743.6A CN116366256A (zh) | 2023-03-08 | 2023-03-08 | 以太坊智能合约漏洞信息安全共享系统及其方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116366256A true CN116366256A (zh) | 2023-06-30 |
Family
ID=86910993
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310213743.6A Pending CN116366256A (zh) | 2023-03-08 | 2023-03-08 | 以太坊智能合约漏洞信息安全共享系统及其方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116366256A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117155977A (zh) * | 2023-10-27 | 2023-12-01 | 中电科大数据研究院有限公司 | 一种基于区块链的数据交易权益分配方法和装置 |
-
2023
- 2023-03-08 CN CN202310213743.6A patent/CN116366256A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117155977A (zh) * | 2023-10-27 | 2023-12-01 | 中电科大数据研究院有限公司 | 一种基于区块链的数据交易权益分配方法和装置 |
CN117155977B (zh) * | 2023-10-27 | 2024-01-26 | 中电科大数据研究院有限公司 | 一种基于区块链的数据交易权益分配方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
AU2019381268B2 (en) | Systems and methods for distributed data storage and delivery using blockchain | |
CN109844783B (zh) | 不可变的密码保护的分类账支持的数据库 | |
US10834117B2 (en) | Enhanced data security through uniqueness checking | |
US7861087B2 (en) | Systems and methods for state signing of internet resources | |
US20160192194A1 (en) | Secure way to build internet credit system and protect private information | |
US20040243832A1 (en) | Verification of a person identifier received online | |
Li et al. | Inspecting edge data integrity with aggregate signature in distributed edge computing environment | |
CN107016074B (zh) | 一种网页加载方法及装置 | |
CN114616795B (zh) | 用于防止重试或重放攻击的安全机制 | |
CN107359998A (zh) | 一种便携式智能口令管理体制的建立与操作方法 | |
WO2010005071A1 (ja) | パスワード認証方法 | |
TW201018157A (en) | Method and system for defeating the man in the middle computer hacking technique | |
Kim et al. | Client‐Side Deduplication to Enhance Security and Reduce Communication Costs | |
CN106878327A (zh) | 面向贸易服务平台的登录方法 | |
CN107347073B (zh) | 一种资源信息处理方法 | |
CN109726578B (zh) | 一种动态二维码防伪解决办法 | |
CN116366256A (zh) | 以太坊智能合约漏洞信息安全共享系统及其方法 | |
Yu et al. | Provable data possession supporting secure data transfer for cloud storage | |
CN109495458A (zh) | 一种数据传输的方法、系统及相关组件 | |
Lee et al. | Secure and efficient protection for HTTP cookies with self‐verification | |
Jakobsson et al. | Server-side detection of malware infection | |
Wang et al. | A lightweight data integrity verification with data dynamics for mobile edge computing | |
Thakur | An access control protocol for wireless sensor network using double trapdoor chameleon hash function | |
Zeng et al. | Based on the role of Internet of Things security in the management of enterprise human resource information leakage | |
Zhang et al. | Towards Time‐Sensitive and Verifiable Data Aggregation for Mobile Crowdsensing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |