CN117909961A - 基于金融软件供应链的程序发布方法及装置 - Google Patents
基于金融软件供应链的程序发布方法及装置 Download PDFInfo
- Publication number
- CN117909961A CN117909961A CN202311686508.7A CN202311686508A CN117909961A CN 117909961 A CN117909961 A CN 117909961A CN 202311686508 A CN202311686508 A CN 202311686508A CN 117909961 A CN117909961 A CN 117909961A
- Authority
- CN
- China
- Prior art keywords
- program
- supply chain
- digest value
- financial software
- software supply
- 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 62
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 48
- 238000004806 packaging method and process Methods 0.000 claims abstract description 5
- 238000004590 computer program Methods 0.000 claims description 16
- 238000012795 verification Methods 0.000 claims description 8
- 238000005516 engineering process Methods 0.000 abstract description 19
- 230000000694 effects Effects 0.000 abstract description 3
- 238000011161 development Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 4
- 238000007726 management method Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000001276 controlling effect Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000013475 authorization Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001066 destructive effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 239000007943 implant Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 238000012552 review Methods 0.000 description 1
Landscapes
- Storage Device Security (AREA)
Abstract
本发明提供了一种基于金融软件供应链的程序发布方法及装置。该方法包括:基于所述程序发布者待发布的第一程序,通过密码杂凑算法生成所述第一程序的第一摘要值,其中,所述程序发布者为所述金融软件供应链上的任一节点;加密所述第一摘要值得到第一摘要值密文,并将所述第一摘要值密文和所述第一程序打包发布至金融软件供应链。通过本发明,解决了由于在将第一摘要值密文和第一程序打包发送至金融软件供应链,便于程序使用者在下载第一程序时判断程序是否被篡改,从而能够避免恶意攻击。因此,可以解决相关技术中金融软件供应链被攻击问题,达到提高金融软件供应链安全性的效果。
Description
技术领域
本发明涉及计算机技术领域,具体而言,涉及一种基于金融软件供应链的程序发布方法及装置。
背景技术
金融软件供应链是指以金融机构为核心,由金融机构内部科技团队或金融科技公司、外部软件供应商、基础软件供应商、应用发布渠道、消费者共同组成的金融软件设计、研发、使用、运维全流程。金融软件供应链的概念以信息通信技术供应链为基础,是信息通信技术供应链的行业表现。
金融软件供应链长且复杂,涉及多个部分和要素。攻击者往往会针对金融软件供应链上的基础软件开发团队开发的基础开发工具如XCODE、Eclipse、NetBeans,基础开源框架如Torch、Spring Boot、openssl开发包等进行攻击,植入恶意代码;如图1所示,当业务系统研发人员下载并使用被污染的基础组件(例如:开发工具、开发包)开发应用程序,并将其发布到应用市场供消费者等终端用户使用,终端用户使用此含有恶意代码的程序应用时,潜伏的恶意代码开始运行,收集用户隐私、加密用户数据、泄露用户数据或实施其他破坏行为,以达到其攻击的目的。
发明内容
本发明实施例提供了一种软件供应链安全管控方法及装置,以至少解决相关技术中金融软件供应链被攻击的问题。
根据本发明的一个实施例,提供了一种基于金融软件供应链的程序发布方法,包括:基于所述程序发布者待发布的第一程序,通过密码杂凑算法生成所述第一程序的第一摘要值,其中,所述程序发布者为所述金融软件供应链上的任一节点;加密所述第一摘要值得到第一摘要值密文,并将所述第一摘要值密文和所述第一程序打包发布至金融软件供应链。
在一个示例性实施例中,基于所述程序发布者待发布的第一程序,通过密码杂凑算法生成所述第一程序的第一摘要值之前,所述方法还包括:基于区块链技术构建所述金融软件供应链;基于金融软件供应链上所有节点,确定高可信节点作为验证区块,以在所述验证区块上通过证书授权机构验证所述数字身份证书。
在一个示例性实施例中,基于所述程序发布者待发布的第一程序,通过密码杂凑算法生成所述第一程序的第一摘要值之前,所述方法还包括:基于所述程序发布者向金融软件供应链发送的第一申请加入请求,验证所述程序发布者的数字身份证书的有效性;在所述数字身份证书有效的情况下,允许所述程序发布者加入所述金融软件供应链。
在一个示例性实施例中,验证所述程序发布者的数字身份证书的有效性之前,所述方法还包括:基于所述程序发布者的向金融软件供应链运营者发送的第二申请加入请求,所述金融软件供应链运营者为所述程序发布者生成一个随机身份码;基于所述程序发布者向证书授权机构发送的申请所述数字身份证书请求,在验证所述随机身份码为有效的情况下,所述证书授权机构向所述程序发布者发放所述数字身份证书。
在一个示例性实施例中,在验证所述随机身份码为有效的情况下,所述证书授权机构向所述程序发布者发放所述数字身份证书,包括:所述证书授权机构接收到申请所述数字身份证书请求后,将所述随机身份码发送至所述金融软件供应链运营者;所述金融软件供应链运营者验证所述随机身份码为有效的情况下,向所述证书授权机构返回所述程序发布者的身份信息,用于所述证书授权机构向所述程序发布者发放所述数字身份证书。
在一个示例性实施例中,所述数字身份证书是基于所述身份信息生成,所述身份信息包括:企业名称、企业代码、企业主营业务、申请加入日期。
在一个示例性实施例中,为所述程序发布者生成一个随机身份码,包括:根据密码杂凑算法生成所述程序发布者的身份信息摘要值;基于所述身份信息摘要值,通过随机数生成器生成所述随机身份码,并所述随机身份码发送至所述程序发布者。
在一个示例性实施例中,验证所述程序发布者的随机身份码的合法性,包括:如果所述随机身份码存在于随机身份码清单中,则判定所述随机身份码合法,并将所述程序发布者的身份信息反馈至所述证书授权机构;如果所述随机身份码不存在于所述随机身份码清单中,则所述随机身份码不合法,并向所述证书授权机构返回不合法标识。
在一个示例性实施例中,加密所述第一摘要值得到第一摘要值密文,包括:根据所述公钥密码算法和数据加密私钥加密所述第一摘要值,得到所述第一摘要值密文。
在一个示例性实施例中,将所述第一摘要值密文和所述第一程序打包发布至金融软件供应链之后,所述方法还包括:程序使用者从所述金融软件供应链上获取所述第一摘要值密文和所述第一程序;基于所述第一程序,根据所述密码杂凑算法生成第二摘要值;根据所述程序发布者的公钥证书和公钥密码算法,对所述第一摘要值密文进行解密,得到所述第一摘要值;比对所述第一摘要值和所述第二摘要值,在所述第一摘要值和所述第二摘要值为一致的情况下,确定所述第一程序未被篡改。
在一个示例性实施例中,程序使用者从所述金融软件供应链上获取所述第一摘要值密文和所述第一程序之前,所述方法还包括:验证所述程序发布者的数字身份证书的有效性,在所述数字身份证有效的情况下,从所述金融软件供应链上获取所述第一摘要值密文和所述第一程序。
根据本发明的另一个实施例,提供了一种基于金融软件供应链的程序发布装置,包括:生成模块,用于基于所述程序发布者待发布的第一程序,通过密码杂凑算法生成所述第一程序的第一摘要值,其中,所述程序发布者为所述金融软件供应链上的任一节点;发布模块,用于加密所述第一摘要值得到第一摘要值密文,并将所述第一摘要值密文和所述第一程序打包发布至金融软件供应链。
根据本发明的又一个实施例,还提供了一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
根据本发明的又一个实施例,还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。
通过本发明上述实施例,由于在将第一摘要值密文和第一程序打包发送至金融软件供应链,便于程序使用者在下载第一程序时判断程序是否被篡改,从而能够避免恶意攻击。因此,可以解决相关技术中金融软件供应链被攻击问题,达到提高金融软件供应链安全性的效果。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是相关技术中软件供应链攻击过程的示意图;
图2是本发明实施例的运行基于金融软件供应链的程序发布方法的计算机终端的硬件结构框图;
图3是根据本发明实施例的基于金融软件供应链的程序发布网络的架构图;
图4是根据本发明实施例的基于金融软件供应链的程序发布方法的流程图;
图5是根据本发明实施例的基于金融软件供应链的程序发布装置的结构框图;
图6是根据本发明实施例的基于区块链技术的金融软件供应链安全管控方法的流程图;
图7是根据本发明实施例的金融软件供应链的示意图;
图8是根据本发明实施例的申请者申请加入金融软件供应链的流程图;
图9是根据本发明实施例的应用程序发布过程的流程图;
图10是根据本发明实施例的应用程序验证过程的流程图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
以下是对本发明实施例中相关术语的说明:
区块链,是一种按时间顺序将数据区块以链表方式组合成特定数据结构,以密码学方式保证的不篡改和不可伪造的去中心化共享总账。
哈希算法,是区块链中保证交易信息不被篡改的单向密码机制。在区块链中通常使用SHA-256算法,生成摘要信息,即输入长度256位,输出32字节的随机散列数据。
SM2,SM2椭圆曲线公钥密码算法(elliptic curve cryptography,ECC)简称为SM2,主要内容包括3部分:数字签名算法、密钥交换协议、公钥加密算法。
SM3,是一种密码杂凑算法,密码杂凑算法是现代密码学的基本工具,它能够将任意长度的消息压缩成固定长度的摘要,通常密码杂凑算法被非正式地称为杂凑算法。杂凑算法能够赋予每个消息唯一的数字指纹,即使更改该消息的一个字母,对应的杂凑值也会变成截然不同的指纹,它最常用于数字签名、数据完整性保护中,杂凑算法是数字签名的核心技术,通常用公钥算法如SM2进行数字签名时,一般不是对消息直接签名,而是对消息的杂凑值进行签名,这样即可以减少计算量,提高效率,也可以破坏数字签名算法的某些代数结构,保障其安全性。杂凑算法还是很许多密码算法安全的基本条件,它可以用来设计消息认证码以及众多可证明安全协议,还广泛应用于口令保护协议、电子支付协议、广播认证协议等密码协议中。
本申请实施例一所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在计算机终端上为例,图2是本发明实施例的运行基于金融软件供应链的程序发布方法的计算机终端的硬件结构框图。如图2所示,计算机终端可以包括一个或多个(图2中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器104,可选地,上述计算机终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图2所示的结构仅为示意,其并不对上述计算机终端的结构造成限定。例如,计算机终端还可包括比图2中所示更多或者更少的组件,或者具有与图2所示不同的配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的软件供应链安全管控方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输设备106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端的通信供应商提供的无线网络。在一个实例中,传输设备106包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
本申请实施例可以运行于图3所示的网络架构上,如图3所示,该网络架构包括:金融软件供应链、CA(Certificate Authority,证书授权)机构。其中,金融软件供应链中包括多个节点(节点1、2、3、N),每个节点主要分为区块头、区块体两部分。
在本实施例中提供了一种运行于上述计算机终端或网络架构的方法,图4是根据本发明实施例的基于金融软件供应链的程序发布方法的流程图,如图4所示,该流程包括如下步骤:
步骤S402,基于所述程序发布者待发布的第一程序,通过密码杂凑算法生成所述第一程序的第一摘要值,其中,所述程序发布者为所述金融软件供应链上的任一节点;
在本实施例的步骤S402之前,该方法还包括:基于区块链技术构建所述金融软件供应链;基于金融软件供应链上所有节点,确定高可信节点作为验证区块,以在所述验证区块上通过证书授权机构验证所述数字身份证书。
在本实施例的步骤S402之前,该方法还包括:基于所述程序发布者的申请加入所述金融软件供应链的请求,通过证书授权机构验证所述数字身份证书的合法性;在所述数字身份证书合法的情况下,同意所述程序发布者的加入。
在一个示例性实施例中,验证所述程序发布者的数字身份证书的有效性之前,所述方法还包括:基于所述程序发布者的向金融软件供应链运营者发送的第二申请加入请求,所述金融软件供应链运营者为所述程序发布者生成一个随机身份码;基于所述程序发布者向证书授权机构发送的申请所述数字身份证书请求,在验证所述随机身份码为有效的情况下,所述证书授权机构向所述程序发布者发放所述数字身份证书。
在一个示例性实施例中,在验证所述随机身份码为有效的情况下,所述证书授权机构向所述程序发布者发放所述数字身份证书,包括:所述证书授权机构接收到申请所述数字身份证书请求后,将所述随机身份码发送至所述金融软件供应链运营者;所述金融软件供应链运营者验证所述随机身份码为有效的情况下,向所述证书授权机构返回所述程序发布者的身份信息,用于所述证书授权机构向所述程序发布者发放所述数字身份证书。
在一个示例性实施例中,所述数字身份证书是基于所述身份信息生成,所述身份信息包括:企业名称、企业代码、企业主营业务、申请加入日期。
在一个示例性实施例中,为所述程序发布者生成一个随机身份码,包括:根据密码杂凑算法生成所述程序发布者的身份信息摘要值;基于所述身份信息摘要值,通过随机数生成器生成所述随机身份码,并所述随机身份码发送至所述程序发布者。
在一个示例性实施例中,验证所述程序发布者的随机身份码的合法性,包括:如果所述随机身份码存在于随机身份码清单中,则判定所述随机身份码合法,并将所述程序发布者的身份信息反馈至所述证书授权机构;如果所述随机身份码不存在于所述随机身份码清单中,则所述随机身份码不合法,并向所述证书授权机构返回不合法标识。
步骤S404,加密所述第一摘要值得到第一摘要值密文,并将所述第一摘要值密文和所述第一程序打包发布至金融软件供应链。
在本实施例的步骤S404中,加密所述第一摘要值得到第一摘要值密文,包括:根据公钥密码算法和数据加密私钥加密所述第一摘要值,得到所述第一摘要值密文。
在本实施例的步骤S404之后,该方法还包括:程序使用者从所述金融软件供应链上获取所述第一摘要值密文和所述第一程序;基于所述第一程序,根据所述密码杂凑算法生成第二摘要值;根据所述程序发布者的公钥证书和公钥密码算法,对所述第一摘要值密文进行解密,得到所述第一摘要值;比对所述第一摘要值和所述第二摘要值,在所述第一摘要值和所述第二摘要值为一致的情况下,确定所述第一程序未被篡改。
在一个示例性实施例中,程序使用者从所述金融软件供应链上获取所述第一摘要值密文和所述第一程序之前,所述方法还包括:验证所述程序发布者的数字身份证书的有效性,在所述数字身份证有效的情况下,从所述金融软件供应链上获取所述第一摘要值密文和所述第一程序。
通过上述步骤,由于在程序发布者发布程序前,需先验证其数字身份证书的有效性,可避免程序发布者身份被篡改或身份被冒充的问题;将第一摘要值密文和第一程序打包发送至金融软件供应链,便于程序使用者在下载第一程序时判断程序是否被篡改,从而能够避免恶意攻击。因此,可以解决相关技术中金融软件供应链被攻击问题,达到提高金融软件供应链安全性的效果。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
在本实施例中还提供了一种基于金融软件供应链的程序发布装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图5是根据本发明实施例的基于金融软件供应链的程序发布装置的结构框图,如图5所示,该装置包括:生成模块51和发布模块52。
生成模块51,用于基于所述程序发布者待发布的第一程序,通过密码杂凑算法生成所述第一程序的第一摘要值,其中,所述程序发布者为所述金融软件供应链上的任一节点;
发布模块52,用于加密所述第一摘要值得到第一摘要值密文,并将所述第一摘要值密文和所述第一程序打包发布至金融软件供应链。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
为便于对本发明所提供的技术方案的理解,下面将结合具体场景的实施例进行详细的阐述。
在金融软件供应链被攻击中,主要若基础开发工具、基础开源框架发布者身份被冒充,以伪冒的身份发布含有恶意代码的基础开发工具或基础开源软件,进而会导致业务系统开发者下载并使用了含有恶意代码的基础软件,从而恶意代码将进一步蔓延至终端用户;而若基础开发工具、基础开源框架被攻击,篡改了原开发者发布的内容,则会导致恶意代码在软件供应链蔓延,最终感染终端用户。
为解决上述问题,本发明实施例提出了一种基于区块链技术的金融软件供应链安全管控方法及系统,包括:采用数字签名技术,防止应用程序被篡改;采用身份签名技术,防止发布者身份被冒充。可保护金融软件供应链上的源代码与开发工具。
图6是根据本发明实施例的基于区块链技术的金融软件供应链安全管控方法的流程图,如图6所示,该方法包括如下步骤:
步骤S602,基于区块链技术构建金融软件供应链。
具体地,基于区块链技术构建的金融软件供应链,采用权益授权证明共识机制,并由区块链(金融软件供应链)上所有节点共同选择高可信节点作为验证区块。
图7是根据本发明实施例的金融软件供应链的示意图,如图7所示,该金融软件供应链中包括节点1~6,其中,节点1是金融行业监管单位、节点2是某大型国有银行、节点3是某大型保险公司、节点4是某大型金融科技公司、节点5是某开源社区、节点6是大型基础软件开发企业。
步骤S604,程序发布者申请加入金融软件供应链。
具体地,基础开发工具企业、开源代码开发者(即图8中的申请者)申请加入步骤S602中构建的金融软件供应链,由金融软件供应链运营者审核其身份,然后发放数字身份证书,其过程如图8所示:
步骤S801,申请者(基础开发工具企业)向金融软件供应链运营者提出加入申请。
具体地,申请者向金融软件供应链运营者发出申请加入金融软件供应链的请求,并提供申请身份信息表,如表1所示;
表1
序号 | 内容 |
1 | 企业名称 |
2 | 企业代码 |
3 | 企业主营业务 |
4 | 申请加入日期 |
步骤S802,金融软件供应链运营者向申请者返回随机身份码。
具体地,金融软件供应链运营者采用sm3算法,针对接收到的申请身份信息表生成申请者身份信息摘要值,并采用随机数生成器,以摘要值为种子生成该企业的随机身份码,之后将随机身份码发给申请者。
例如:申请者身份摘要信息为hashcode;
hashcode=sm3(entepriserInfo),其中entepriserInfo为申请者申请信息字符串。
生成申请者随机身份代码randomCode;
randomCode=Random(hashcode)。
在本实施例中,保存各申请者的随机身份码,形成身份随机代码清单,以用于后续步骤中CA机构进行随机身份码的有效性。
步骤S803,申请者持随机身份码向CA机构发送申请数字身份证书的请求。
步骤S804,CA将申请者身份随机码发送至金融软件供应链运营者,检验该随机身份码的有效性。
具体地,如果随机身份码存在于随机身份码清单中,则随机身份码有效,申请者身份合法,将申请者身份信息反馈至CA;否则随机身份码无效,申请者身份不合法,则返回不合法标识。
步骤S805,在申请者的身份合法的情况下,CA以申请者身份信息为基础,生成申请者身份数字证书,并送至申请者。
步骤S806,申请者携带数字身份证书,向金融软件供应链发送申请加入供应链的请求信息。
步骤S807,金融软件供应链中,接收到请求信息的供应链节点,将申请者的数字身份证书发送至CA,由CA验证证书合法性。若数字身份合法,则同意加入,否则拒绝加入。
通过上述步骤,通过数字签名(随机身份码)、数身份认证(数字身份证书)、区块链等技术,能够根据程序发布者上传的身份信息生成不会被篡改的随机身份码,避免了应用程序发布者的身份被篡改,使只有身份合法的发布者才能更新、发布可信程序。
步骤S606,程序发布者发布应用程序。
具体地,图9是根据本发明实施例的应用程序发布过程的流程图,如图9所示,该流程包括如下步骤:
步骤S901,程序发布者使用SM3算法,生成待发布程序的摘要值h;
步骤S902,程序发布者使用SM2算法、数据加密私钥加密待发布程序摘要值,得到摘要值密文s(h);
步骤S903,程序发布者将待发布程序和摘要值密文打包发布到金融软件供应链。
通过上述步骤,基于SM3算法、SM2算法的数据加密技术,便于程序使用者在使用应用程序前进行安全性检测,从而能够避免下载被恶意篡改后的应用程序,使只能源代码的拥有者才能更新、发布安全、可信的源代码,有效地解决了相关技术中应用程序易被篡改的问题。
步骤S608,程序使用者验证应用程序。
具体地,图10是根据本发明实施例的应用程序验证过程的流程图,如图10所示,该流程包括如下步骤:包括:
步骤S1001,程序使用者从金融软件供应链下载发布的内容;
步骤S1002,从发布的内容中解析出发布程序和程序的摘要值密文s(h);
步骤S1003,从CA获取该应用程序发布者的公钥证书;
步骤S1004,程序使用者采用SM3算法生成发布程序的摘要值h2;
步骤S1005,程序使用者使用SM2算法和开发者公钥证书,解密摘要值密文s(h),得到摘要值明文h1;
步骤S1006,程序使用者比对h1与h2的值,若一致则说明发布程序未被篡改,通过验证;若不一致则说明发布程序已被篡改,未通过验证。
通过本发明的上述实施例,基于CA证书、申请者身份信息、摘要算法,为申请加入区块链的机构(即申请者、程序发布者)生成身份随机码。申请者用身份随机码向CA机构申请身份数字证书,CA机构验证企业身份随机代码有效性后,为申请生成身份数字证书,并将身份数字证书发送至申请者。申请者使用数字证书签名需要到金融软件供应链的应用程序,使用者在使用金融软件供应链上的应用前,先通过CA机构验证此应用程序发布者数字身份证书的有效性,若有效则说明发布者身份可信,若无效则说明发布者身份不可信,解决了冒用别人身份,发布非法应用程序的问题。
同时,基于数字摘要算法、数据加密算法,本发明的上述实施例中还解决了应用程序被篡改的问题。即采用数字摘要技术,生成待发布应用程序的摘要值,并采用应用程序发布者的私钥与加密算法,加密摘要值。应用程序使用者在使用应用程序前,先通过比较发布者发布的应用程序摘要值S1与应用程序使用者生成的摘要值S2,是否相等,验证应用程序是否被篡改。若摘要值相等,则说明应用程序未被篡改;若摘要值不相等,则说明应用程序已被篡改。
本发明的实施例还提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (14)
1.一种基于金融软件供应链的程序发布方法,其特征在于,包括:
基于所述程序发布者待发布的第一程序,通过密码杂凑算法生成所述第一程序的第一摘要值,其中,所述程序发布者为所述金融软件供应链上的任一节点;
加密所述第一摘要值得到第一摘要值密文,并将所述第一摘要值密文和所述第一程序打包发布至金融软件供应链。
2.根据权利要求1所述的方法,其特征在于,基于所述程序发布者待发布的第一程序,通过密码杂凑算法生成所述第一程序的第一摘要值之前,所述方法还包括:
基于区块链技术构建所述金融软件供应链;
基于金融软件供应链上所有节点,确定高可信节点作为验证区块,以在所述验证区块上通过证书授权机构验证所述数字身份证书。
3.根据权利要求1所述的方法,其特征在于,基于所述程序发布者待发布的第一程序,通过密码杂凑算法生成所述第一程序的第一摘要值之前,所述方法还包括:
基于所述程序发布者向金融软件供应链发送的第一申请加入请求,验证所述程序发布者的数字身份证书的有效性;
在所述数字身份证书有效的情况下,允许所述程序发布者加入所述金融软件供应链。
4.根据权利要求3所述的方法,其特征在于,验证所述程序发布者的数字身份证书的有效性之前,所述方法还包括:
基于所述程序发布者的向金融软件供应链运营者发送的第二申请加入请求,所述金融软件供应链运营者为所述程序发布者生成一个随机身份码;
基于所述程序发布者向证书授权机构发送的申请所述数字身份证书请求,在验证所述随机身份码为有效的情况下,所述证书授权机构向所述程序发布者发放所述数字身份证书。
5.根据权利要求4所述的方法,其特征在于,在验证所述随机身份码为有效的情况下,所述证书授权机构向所述程序发布者发放所述数字身份证书,包括:
所述证书授权机构接收到申请所述数字身份证书请求后,将所述随机身份码发送至所述金融软件供应链运营者;
所述金融软件供应链运营者验证所述随机身份码为有效的情况下,向所述证书授权机构返回所述程序发布者的身份信息,用于所述证书授权机构向所述程序发布者发放所述数字身份证书。
6.根据权利要求5所述的方法,其特征在于,其中,所述数字身份证书是基于所述身份信息生成,所述身份信息包括:企业名称、企业代码、企业主营业务、申请加入日期。
7.根据权利要求4所述的方法,其特征在于,为所述程序发布者生成一个随机身份码,包括:
根据密码杂凑算法生成所述程序发布者的身份信息摘要值;
基于所述身份信息摘要值,通过随机数生成器生成所述随机身份码,并所述随机身份码发送至所述程序发布者。
8.根据权利要求4所述的方法,其特征在于,验证所述程序发布者的随机身份码的合法性,包括:
如果所述随机身份码存在于随机身份码清单中,则判定所述随机身份码合法,并将所述程序发布者的身份信息反馈至所述证书授权机构;
如果所述随机身份码不存在于所述随机身份码清单中,则所述随机身份码不合法,并向所述证书授权机构返回不合法标识。
9.根据权利要求1所述的方法,其特征在于,加密所述第一摘要值得到第一摘要值密文,包括:
根据公钥密码算法和数据加密私钥加密所述第一摘要值,得到所述第一摘要值密文。
10.根据权利要求1所述的方法,其特征在于,将所述第一摘要值密文和所述第一程序打包发布至金融软件供应链之后,所述方法还包括:
程序使用者从所述金融软件供应链上获取所述第一摘要值密文和所述第一程序;
基于所述第一程序,根据所述密码杂凑算法生成第二摘要值;
根据所述程序发布者的公钥证书和公钥密码算法,对所述第一摘要值密文进行解密,得到所述第一摘要值;
比对所述第一摘要值和所述第二摘要值,在所述第一摘要值和所述第二摘要值为一致的情况下,确定所述第一程序未被篡改。
11.根据权利要求10所述的方法,其特征在于,程序使用者从所述金融软件供应链上获取所述第一摘要值密文和所述第一程序之前,所述方法还包括:
验证所述程序发布者的数字身份证书的有效性,在所述数字身份证有效的情况下,从所述金融软件供应链上获取所述第一摘要值密文和所述第一程序。
12.一种基于金融软件供应链的程序发布装置,其特征在于,包括:
生成模块,用于基于所述程序发布者待发布的第一程序,通过密码杂凑算法生成所述第一程序的第一摘要值,其中,所述程序发布者为所述金融软件供应链上的任一节点;
发布模块,用于加密所述第一摘要值得到第一摘要值密文,并将所述第一摘要值密文和所述第一程序打包发布至金融软件供应链。
13.一种计算机可读存储介质,其特征在于,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行所述权利要求1至11任一项中所述的方法。
14.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行所述权利要求1至11任一项中所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311686508.7A CN117909961A (zh) | 2023-12-08 | 2023-12-08 | 基于金融软件供应链的程序发布方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311686508.7A CN117909961A (zh) | 2023-12-08 | 2023-12-08 | 基于金融软件供应链的程序发布方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117909961A true CN117909961A (zh) | 2024-04-19 |
Family
ID=90691388
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311686508.7A Pending CN117909961A (zh) | 2023-12-08 | 2023-12-08 | 基于金融软件供应链的程序发布方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117909961A (zh) |
-
2023
- 2023-12-08 CN CN202311686508.7A patent/CN117909961A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112214780B (zh) | 一种数据处理方法、装置、智能设备及存储介质 | |
US10454674B1 (en) | System, method, and device of authenticated encryption of messages | |
TWI469603B (zh) | 一種使用信任處理技術數位權利管理 | |
Idrees et al. | Secure automotive on-board protocols: A case of over-the-air firmware updates | |
US8171306B2 (en) | Universal secure token for obfuscation and tamper resistance | |
US8495383B2 (en) | Method for the secure storing of program state data in an electronic device | |
TWI420339B (zh) | 軟體授權系統及方法 | |
CN109600350A (zh) | 用于车辆网络中的控制器间的安全通信的系统和方法 | |
CN103685138A (zh) | 移动互联网上的Android平台应用软件的认证方法和系统 | |
TW201215070A (en) | Key Management Systems and methods for shared secret ciphers | |
US11831753B2 (en) | Secure distributed key management system | |
CN109478214B (zh) | 用于证书注册的装置和方法 | |
CN106936588B (zh) | 一种硬件控制锁的托管方法、装置及系统 | |
US20220108028A1 (en) | Providing cryptographically secure post-secrets-provisioning services | |
CN111131416A (zh) | 业务服务的提供方法和装置、存储介质、电子装置 | |
CN115242553B (zh) | 一种支持安全多方计算的数据交换方法及系统 | |
CN108777673B (zh) | 一种在区块链中进行双向身份认证方法 | |
CN111314066B (zh) | 基于区块链的数据转移方法、终端及计算机可读存储介质 | |
CN111241492A (zh) | 一种产品多租户安全授信方法、系统及电子设备 | |
CN113722749A (zh) | 基于加密算法的区块链baas服务的数据处理方法及装置 | |
CN113869901B (zh) | 密钥生成方法、装置、计算机可读存储介质及计算机设备 | |
CN114338091B (zh) | 数据传输方法、装置、电子设备及存储介质 | |
CN115941773A (zh) | 基于云服务共享的项目交易方法、系统、终端设备及介质 | |
CN117909961A (zh) | 基于金融软件供应链的程序发布方法及装置 | |
US20220067727A1 (en) | Method for operating a distributed database system, distributed database system, and industrial automation system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination |