CN109670828B - 一种应用在线签名方法及系统 - Google Patents

一种应用在线签名方法及系统 Download PDF

Info

Publication number
CN109670828B
CN109670828B CN201811486481.6A CN201811486481A CN109670828B CN 109670828 B CN109670828 B CN 109670828B CN 201811486481 A CN201811486481 A CN 201811486481A CN 109670828 B CN109670828 B CN 109670828B
Authority
CN
China
Prior art keywords
signature
application
encrypted
signed
signing
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.)
Active
Application number
CN201811486481.6A
Other languages
English (en)
Other versions
CN109670828A (zh
Inventor
黄建银
高明鑫
苏金田
陈瑞兵
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujian Landi Commercial Equipment Co Ltd
Original Assignee
Fujian Landi Commercial Equipment Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujian Landi Commercial Equipment Co Ltd filed Critical Fujian Landi Commercial Equipment Co Ltd
Priority to CN201811486481.6A priority Critical patent/CN109670828B/zh
Publication of CN109670828A publication Critical patent/CN109670828A/zh
Application granted granted Critical
Publication of CN109670828B publication Critical patent/CN109670828B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3825Use of electronic signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3821Electronic credentials
    • G06Q20/38215Use of certificates or encrypted proofs of transaction rights
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3829Payment protocols; Details thereof insuring higher security of transaction involving key management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/401Transaction verification
    • G06Q20/4014Identity check for transactions

Landscapes

  • Business, Economics & Management (AREA)
  • Engineering & Computer Science (AREA)
  • Accounting & Taxation (AREA)
  • Computer Security & Cryptography (AREA)
  • Finance (AREA)
  • Strategic Management (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种应用在线签名方法及系统,包括步骤:管理端生成并发送应用签名请求至签名端,应用签名请求包括待签名应用文件、身份验证信息、根证书ID以及数字证书;签名端接收应用签名请求,根据身份验证信息、根证书ID以及数字证书判断应用签名请求的合法性,若合法,则对待签名应用文件进行在线签名;本发明通过在线应用签名替换原有线下的UKEY应用签名,不仅保证了了终端的应用安全,又能实现终端应用管理的信息化,有效减少线下人为因素所导致的易丢失、被利用的风险,也避免了线下签名所带来的人工成本、管理成本以及操作脱节的问题。

Description

一种应用在线签名方法及系统
技术领域
本发明涉及应用管理领域,特别涉及一种应用在线签名方法及系统。
背景技术
随着互联网技术的发展,智能终端在各个行业的运用也迅速崛起。尤其在收单行业,由于智能POS机具有支付、行业应用、社交等多种功能,故而对智能POS机的安全性管控提出了越来越高的要求。如何保证各个行业的应用被安全可靠的安装到智能POS机上是重中之重。
现有技术中,管理平台均是使用线下UKEY对应用进行签名,在终端进行验签来保证应用的可靠性。这种方式将带来以下缺点:
1、应用签名使用的证书管理复杂,需要大量的人工管理成本。
2、密钥需要借助UKEY进行存储,这样就带来大量的UKEY成本、UKEY管理的繁重工作,UKEY的人工管理,同样存在易丢失、被利用的风险。
3、应用签名依赖于UKEY就意味着应用开发者无法在线上完成应用的上架及发布,而需要先进行线下UKEY签名后,再进行线上操作,导致操作脱节。
发明内容
本发明所要解决的技术问题是:提供一种应用在线签名方法及系统,实现了在线签名,既验证了应用的可靠性,也减少了线下人为因素带来的风险。
为了解决上述技术问题,本发明采用的技术方案为:
一种应用在线签名方法,包括步骤:
S1、管理端生成并发送应用签名请求至签名端,所述应用签名请求包括待签名应用文件、身份验证信息、根证书ID以及数字证书;
S2、签名端接收所述应用签名请求,根据所述身份验证信息、根证书ID以及数字证书判断所述应用签名请求的合法性,若合法,则对所述待签名应用文件进行在线签名。
为了解决上述技术问题,本发明采用的另一种技术方案为:
一种应用在线签名系统,包括管理端和签名端,所述管理端包括第一存储器、第一处理器及存储在第一存储器上并可在第一处理器上运行的第一计算机程序,所述签名端包括第二存储器、第二处理器及存储在第二存储器上并可在第二处理器上运行的第二计算机程序,所述第一处理器执行所述第一计算机程序时实现以下步骤:
S1、生成并发送应用签名请求至签名端,所述应用签名请求包括待签名应用文件、身份验证信息、根证书ID以及数字证书;
所述第二处理器执行所述第二计算机程序时实现以下步骤:
S2、接收所述应用签名请求,根据所述身份验证信息、根证书ID以及数字证书判断所述应用签名请求的合法性,若合法,则对所述待签名应用文件进行在线签名。
本发明的有益效果在于:一种应用在线签名方法及系统,由管理应用的管理端生成并发送应用签名请求至签名端,签名端根据应用签名请求内的身份验证信息、根证书ID以及数字证书判断应用签名请求的合法性,在请求合法的情况下,对待签名应用文件进行在线签名,从而实现了对应用的在线签名,不仅保证了了终端的应用安全,又能实现终端应用管理的信息化,有效减少线下人为因素所导致的易丢失、被利用的风险,也避免了线下签名所带来的人工成本、管理成本以及操作脱节的问题。
附图说明
图1为本发明实施例的一种应用在线签名方法的流程示意图;
图2为本发明实施例的对应用进行审核时的流程示意图;
图3为本发明实施例的对应用进行签名时的流程示意图;
图4为本发明实施例的一种应用在线签名系统的结构示意图。
标号说明:
1、一种应用在线签名系统;2、管理端;3、第一处理器;4、第一存储器;5、签名端;6、第二处理器;7、第二存储器;8、终端;9、第三处理器;
10、第三存储器。
具体实施方式
为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。
本发明最关键的构思在于:管理端生成并发送应用签名请求至签名端,签名端在验证应用签名请求的合法性之后,对待签名应用文件进行在线签名。
在此之前,为了便于理解本发明的技术方案,对于本发明中涉及的英文缩写、设备等进行说明如下:
(1)、POS:在本发明中为Point Of Sale的缩写,其中文解释为销售终端,它是一种多功能终端,把它安装在信用卡的特约商户和受理网点中与计算机联成网络,就能实现电子资金自动转账的。
(2)、UKEY:它是一种通过USB直接与计算机相连、具有密码验证功能且可靠高速的小型存储设备。
(3)、ID:在本发明中为IDentity的缩写,其中文解释为身份标识号码,它是一个序列号,也叫帐号,是一个编码,而且是唯一的。
(4)、MD5:MD是Message-Digest的缩写,5是第五代,MD5消息摘要算法是一种被广泛使用的密码散列函数。
(5)、HASH:音译哈希,意译为散列,就是把任意长度的输入通过散列算法变换成固定长度的输出,该输出就是散列值,也就是本文中的HASH值。
(6)、SM2:SM2是国家密码管理局于2010年12月17日发布的椭圆曲线公钥密码算法。
(7)、SM4:又有称为SM4.0以及SMS4.0等等,它是国家密码管理局于2012年3月21日发布的一种分组密码标准。
(8)JWT:在本发明中为Json Web Token的缩写,它定义了一种用于简洁,自包含的用于通信双方之间以JSON对象的形式安全传递信息的方法。
请参照图1至图3,一种应用在线签名方法,包括步骤:
S1、管理端生成并发送应用签名请求至签名端,所述应用签名请求包括待签名应用文件、身份验证信息、根证书ID以及数字证书;
S2、签名端接收所述应用签名请求,根据所述身份验证信息、根证书ID以及数字证书判断所述应用签名请求的合法性,若合法,则对所述待签名应用文件进行在线签名。
从上述描述可知,本发明的有益效果在于:由管理应用的管理端生成并发送应用签名请求至签名端,签名端根据应用签名请求内的身份验证信息、根证书ID以及数字证书判断应用签名请求的合法性,在请求合法的情况下,对待签名应用文件进行在线签名,从而实现了对应用的在线签名,不仅保证了了终端的应用安全,又能实现终端应用管理的信息化,有效减少线下人为因素所导致的易丢失、被利用的风险,也避免了线下签名所带来的人工成本、管理成本以及操作脱节的问题。
进一步地,所述步骤S1之前还包括:
S01、管理端收到包括初始应用文件的上传请求,按照所述上传请求的操作类型,得到与所述操作类型相匹配的审核步骤、审核账号以及审核权限;
S02、管理端根据所述审核步骤将所述上传请求发送至第一步骤的第一审核账号,若收到所述第一审核账号返回的审核通过信息,则进行下一步骤的审核,直至完成所述审核步骤中的所有步骤。
从上述描述可知,引入了应用审核流程,可对开发者上传的应用进行多步审核,且每步审核可设置多人同时并行审核,以保证应用的合法性。
进一步地,所述步骤S01中的操作类型包括新应用提交、新版本提交、应用修改以及版本修改;
所述步骤S01中的审核步骤包括至少两个步骤且每个步骤的审核账号为至少一个;
所述步骤S01中的审核权限包括下载查看应用权限、修改应用标签权限、修改应用分类权限、删除应用参数权限以及允许签名权限。
从上述描述可知,引入审核人权限控制,通过控制审核人的下载查看应用权限、修改应用标签权限、修改应用分类权限、下载协议合同、设置付费模式、付费比例等权限的精细化控制,通过审核权限的精细化控制,尽可能少的泄露应用的相关属性、业务规则等,从而保证应用的安全性及业务的保密性。
进一步地,所述步骤S02之后还包括步骤:
S03、管理端若收到最终审核账号返回的审核通过信息,则判断所述最终审核账号是否具有允许签名权限,若有,则审核通过的所述初始应用文件即为待签名应用文件,之后执行步骤S1,所述最终审核账号为所述审核步骤中最终步骤所对应的审核账号。
从上述描述可知,在正常情况下,最终审核账号均具有允许签名权限,从而使得在审核完之后自动发出应用签名请求。
进一步地,所述步骤S1中管理端生成并发送应用签名请求至签名端之前还包括:
S10、管理端通过HTTPS协议以及会话密钥建立起与所述签名端的安全通信链路。
从上述描述可知,通过HTTPS建立通信链路,具有防拦截、防篡改的作用,通过平台间密钥交换保证链路安全。
进一步地,所述步骤S10具体为:
S101、管理端生成会话秘钥、第一签名私钥以及第一加密公钥,使用会话秘钥对所述第一加密公钥进行加密以得到第一已加密公钥,使用会话秘钥对由用户名以及密码组成的MD5值进行加密以得到已加密MD5值;
S102、管理端获取预先设置的平台公钥,使用所述平台公钥对所述会话秘钥进行加密以得到已加密会话秘钥,将第一已加密公钥、已加密会话秘钥以及已加密MD5值发送至签名端;
S103、签名端通过加密机上预先设置的平台私钥解密所述已加密会话秘钥以得到会话秘钥,使用所述会话秘钥解密所述第一已加密公钥以得到第一加密公钥,使用所述会话秘钥解密已加密MD5值以得到MD5值;
S104、签名端获取所述MD5值内的用户名及密码,判断所述用户名及所述密码是否合法,若合法,则产生第二签名私钥以及第二加密公钥,使用第一加密公钥加密第二加密公钥以得到第二已加密公钥,使用平台私钥对所述第二已加密公钥进行签名后返回至管理端;
S105、管理端使用平台公钥验证所述第二已加密公钥的合法性,使用第一签名私钥对第二已加密公钥进行解密以得到第二加密公钥,若验证所述第二已加密公钥为合法的,则建立起使用会话密钥进行数据交换的安全通信链路。
从上述描述可知,即在传统HTTPS建链方式的基础上,采用会话秘钥进行数据交换,并对会话秘钥、管理端以及签名端进行多次验证,以保证系统间信息交换的保密性。
进一步地,所述第一签名私钥与第一加密公钥为采用国密认证算法的非对称公私钥对;
所述第二签名私钥以及第二加密公钥为采用国密认证算法的非对称公私钥对;
所述会话秘钥为对称密钥;
使用所述会话秘钥进行加密或解密的算法为SM4算法;
使用所述平台公钥进行加密或解密的算法、使用所述平台私钥进行加密或解密的算法均为SM2算法;
从上述描述可知,传统签名方式通常使用RSA证书进行签名,使用国家密码局定义的商用密码国密算法,安全性要高于普通加密算法。
进一步地,所述步骤S1具体为:
S11、管理端判断是否为首次应用签名,若是,则执行步骤S12,否则执行步骤S13;
S12、管理端生成并发送证书请求至签名端,接收所述签名端返回的根证书ID以及数字证书;
S13、管理端生成并发送应用签名请求至签名端,所述应用签名请求包括待签名应用文件、身份验证信息、根证书ID以及数字证书。
从上述描述可知,当为首次应用签名时,管理端上没有根证书ID以及数字证书,无法进行应用签名,故而需要向签名端发出请求,以得到根证书ID以及数字证书,便于后续的应用签名。
进一步地,所述步骤S12具体为:
S121、管理端生成并发送根证书请求至签名端;
S122、签名端接收并保存所述根证书请求,通过加密机生成根证书,并将与所述根证书对应的根私钥保存至加密机,返回所述根证书ID至管理端;
S123、管理端接收所述根证书ID,生成并发送数字证书请求至签名端;
S124、签名端接收所述数字证书请求,通过加密机生成数字证书,并将与所述数字证书对应的数字私钥保存至加密机,返回所述数字证书至管理端;
S125、管理端接收并保存所述数字证书。
从上述描述可知,即提供一种实现在线应用签名的方式,替换原有线下的UKEY应用签名,通过使用硬件加密机来提高了应用签名可靠性,降低了UKEY管理成本及风险。
进一步地,所述步骤S2具体为:
S21、签名端接收所述应用签名请求,根据所述身份验证信息判断在所述管理端上的登录账号是否具有应用签名权限,若有,则执行步骤S22,否则执行步骤S25;
S22、签名端根据所述根证书ID提取所述根证书,使用所述根证书验证所述数字证书的合法性,若验证通过,则执行步骤S23,否则执行步骤S25;
S23、签名端根据所述数字证书验证所述应用签名请求的来源是否合法,若合法,则对所述待签名应用文件进行在线签名,生成已签名应用文件,否则执行步骤S25;
S24、签名端返回已签名应用文件至管理端;
S25、签名端返回签名失败信息至管理端。
从上述描述可知,通过根证书ID和用户名向签名端请求应用签名,使得同一个应用可重复签名,保证了签名的灵活性。
进一步地,所述步骤S2中对所述待签名应用文件进行在线签名的具体步骤为:
签名端抽取所述待签名应用文件上第一指定位置的二进制流,对所述二进制流进行HASH计算得到HASH值,使用SM2算法对所述HASH值进行加密,得到已加密HASH值,将已加密HASH值散列分布至所述待签名应用文件上的第二指定位置,生成并返回已签名应用文件至管理端。
从上述描述可知,传统的应用经过签名后仍可使用解压工具打开应用文件或可见签名信息。通过加密后的HASH值,通过散列分布在应用文件的指定位置,通过破坏原有应用文件的格式,使其混淆,使得无法使用解压工具轻易打开应用文件,保证应用文件本身安全,不外泄。
进一步地,所述步骤S2之后还包括步骤:
S31、管理端获取所述已签名应用文件,发布已签名应用文件至应用市场;
S32、终端获取所述已签名应用文件,根据第二指定位置抽取所述已签名应用文件上的已加密HASH值,得到所述待签名应用文件,使用SM2算法对所述已加密HASH值进行解密,得到HASH值,判断所述第一指定位置的二进制流与所述HASH值是否一致,若是一致,则安装所述待签名应用文件。
从上述描述可知,终端在安装产品时,通过验证HASH值是否一致来判断该应用是否合法可靠,从而保证了终端的应用安全。
进一步地,所述步骤S1中身份验证信息为JWT,所述JWT包括用户名。
从上述描述可知,JWT是将用户信息加密到token里,服务器不保存任何用户信息,从而很好地解决了单点登录问题和session共享的问题。
进一步地,生成所述步骤S1中JWT的步骤为:
管理端获取用户名以及密码,将所述用户名以及密码发送至签名端;
签名端接收所述用户名以及密码,验证所述用户名以及密码是否合法,若是,则生成包括用户名的JWT。
从上述描述可知,JWT所使用的编码也是可逆的,故而,不将密码这类敏感的数据放入JWT当中,而用户名属于非敏感数据,在通常情况下,被别人获取也不会影响到账号的安全性,从而在实现信息认证的同时,保证了账号的安全性能。
如图4所示,一种应用在线签名系统,包括管理端和签名端,所述管理端包括第一存储器、第一处理器及存储在第一存储器上并可在第一处理器上运行的第一计算机程序,所述签名端包括第二存储器、第二处理器及存储在第二存储器上并可在第二处理器上运行的第二计算机程序,所述第一处理器执行所述第一计算机程序时实现以下步骤:
S1、生成并发送应用签名请求至签名端,所述应用签名请求包括待签名应用文件、身份验证信息、根证书ID以及数字证书;
所述第二处理器执行所述第二计算机程序时实现以下步骤:
S2、接收所述应用签名请求,根据所述身份验证信息、根证书ID以及数字证书判断所述应用签名请求的合法性,若合法,则对所述待签名应用文件进行在线签名。
从上述描述可知,本发明的有益效果在于:由管理应用的管理端生成并发送应用签名请求至签名端,签名端根据应用签名请求内的身份验证信息、根证书ID以及数字证书判断应用签名请求的合法性,在请求合法的情况下,对待签名应用文件进行在线签名,从而实现了对应用的在线签名,不仅保证了了终端的应用安全,又能实现终端应用管理的信息化,有效减少线下人为因素所导致的易丢失、被利用的风险,也避免了线下签名所带来的人工成本、管理成本以及操作脱节的问题。
进一步地,所述步骤S1之前,所述第一处理器执行所述第一计算机程序时还实现以下步骤:
S01、收到包括初始应用文件的上传请求,按照所述上传请求的操作类型,得到与所述操作类型相匹配的审核步骤、审核账号以及审核权限;
S02、根据所述审核步骤将所述上传请求发送至第一步骤的第一审核账号,若收到所述第一审核账号返回的审核通过信息,则进行下一步骤的审核,直至完成所述审核步骤中的所有步骤。
从上述描述可知,引入了应用审核流程,可对开发者上传的应用进行多步审核,且每步审核可设置多人同时并行审核,以保证应用的合法性。
进一步地,所述步骤S01中的操作类型包括新应用提交、新版本提交、应用修改以及版本修改;
所述步骤S02中的审核步骤包括至少两个步骤且每个步骤的审核账号为至少一个;
所述步骤S02中的审核权限包括下载查看应用权限、修改应用标签权限、修改应用分类权限、删除应用参数权限以及允许签名权限。
从上述描述可知,引入审核人权限控制,通过控制审核人的下载查看应用权限、修改应用标签权限、修改应用分类权限、下载协议合同、设置付费模式、付费比例等权限的精细化控制,通过审核权限的精细化控制,尽可能少的泄露应用的相关属性、业务规则等,从而保证应用的安全性及业务的保密性。
进一步地,所述步骤S03之后,所述第一处理器执行所述第一计算机程序时还实现以下步骤:
S04、若收到最终审核账号返回的审核通过信息,则判断所述最终审核账号是否具有允许签名权限,若有,则审核通过的所述初始应用文件即为待签名应用文件,之后执行步骤S1,所述最终审核账号为所述审核步骤中最终步骤所对应的审核账号。
从上述描述可知,在正常情况下,最终审核账号均具有允许签名权限,从而使得在审核完之后自动发出应用签名请求。
进一步地,所述步骤S1中生成并发送应用签名请求至签名端之前,所述第一处理器执行所述第一计算机程序时还实现以下步骤:
S10、通过HTTPS协议以及会话密钥建立起与所述签名端的安全通信链路。
从上述描述可知,通过HTTPS建立通信链路,具有防拦截、防篡改的作用,通过平台间密钥交换保证链路安全。
进一步地,所述步骤S10中,所述第一处理器执行所述第一计算机程序时还实现以下步骤:
S101、生成会话秘钥、第一签名私钥以及第一加密公钥,使用会话秘钥对所述第一加密公钥进行加密以得到第一已加密公钥,使用会话秘钥对由用户名以及密码组成的MD5值进行加密以得到已加密MD5值;
S102、获取预先设置的平台公钥,使用所述平台公钥对所述会话秘钥进行加密以得到已加密会话秘钥,将第一已加密公钥、已加密会话秘钥以及已加密MD5值发送至签名端;
S105、使用平台公钥验证所述第二已加密公钥的合法性,使用第一签名私钥对第二已加密公钥进行解密以得到第二加密公钥,若验证所述第二已加密公钥为合法的,则建立起使用会话密钥进行数据交换的安全通信链路;
所述步骤S10中,所述第二处理器执行所述第二计算机程序时还实现以下步骤:
S103、通过加密机上预先设置的平台私钥解密所述已加密会话秘钥以得到会话秘钥,使用所述会话秘钥解密所述第一已加密公钥以得到第一加密公钥,使用所述会话秘钥解密已加密MD5值以得到MD5值;
S104、获取所述MD5值内的用户名及密码,判断所述用户名及所述密码是否合法,若合法,则产生第二签名私钥以及第二加密公钥,使用第一加密公钥加密第二加密公钥以得到第二已加密公钥,使用平台私钥对所述第二已加密公钥进行签名后返回至管理端。
从上述描述可知,即在传统HTTPS建链方式的基础上,采用会话秘钥进行数据交换,并对会话秘钥、管理端以及签名端进行多次验证,以保证系统间信息交换的保密性。
进一步地,所述第一签名私钥与第一加密公钥为采用国密认证算法的非对称公私钥对;
所述第二签名私钥以及第二加密公钥为采用国密认证算法的非对称公私钥对;
所述会话秘钥为对称密钥;
使用所述会话秘钥进行加密或解密的算法为SM4算法;
使用所述平台公钥进行加密或解密的算法、使用所述平台私钥进行加密或解密的算法均为SM2算法;
从上述描述可知,传统签名方式通常使用RSA证书进行签名,使用国家密码局定义的商用密码国密算法,安全性要高于普通加密算法。
进一步地,所述步骤S1具体为:
S11、判断是否为首次应用签名,若是,则执行步骤S12,否则执行步骤S13;
S12、生成并发送证书请求至签名端,接收所述签名端返回的根证书ID以及数字证书;
S13、生成并发送应用签名请求至签名端,所述应用签名请求包括待签名应用文件、身份验证信息、根证书ID以及数字证书。
从上述描述可知,当为首次应用签名时,管理端上没有根证书ID以及数字证书,无法进行应用签名,故而需要向签名端发出请求,以得到根证书ID以及数字证书,便于后续的应用签名。
进一步地,所述步骤S12中,所述第一处理器执行所述第一计算机程序时还实现以下步骤:
S121、生成并发送根证书请求至签名端;
S123、接收所述根证书ID,生成并发送数字证书请求至签名端;
S125、接收并保存所述数字证书;
所述第二处理器执行所述第二计算机程序时还实现以下步骤:
S122、接收并保存所述根证书请求,通过加密机生成根证书,并将与所述根证书对应的根私钥保存至加密机,返回所述根证书ID至管理端;
S124、接收所述数字证书请求,通过加密机生成数字证书,并将与所述数字证书对应的数字私钥保存至加密机,返回所述数字证书至管理端。
从上述描述可知,即提供一种实现在线应用签名的方式,替换原有线下的UKEY应用签名,通过使用硬件加密机来提高了应用签名可靠性,降低了UKEY管理成本及风险。
进一步地,所述步骤S2具体为:
S21、接收所述应用签名请求,根据所述身份验证信息判断在所述管理端上的登录账号是否具有应用签名权限,若有,则执行步骤S22,否则执行步骤S25;
S22、根据所述根证书ID提取所述根证书,使用所述根证书验证所述数字证书的合法性,若验证通过,则执行步骤S23,否则执行步骤S25;
S23、根据所述数字证书验证所述应用签名请求的来源是否合法,若合法,则对所述待签名应用文件进行在线签名,生成已签名应用文件,否则执行步骤S25;
S24、返回已签名应用文件至管理端;
S25、返回签名失败信息至管理端。
从上述描述可知,通过根证书ID和用户名向签名端请求应用签名,使得同一个应用可重复签名,保证了签名的灵活性。
进一步地,所述步骤S2中对所述待签名应用文件进行在线签名的具体步骤为:
抽取所述待签名应用文件上第一指定位置的二进制流,对所述二进制流进行HASH计算得到HASH值,使用SM2算法对所述HASH值进行加密,得到已加密HASH值,将已加密HASH值散列分布至所述待签名应用文件上的第二指定位置,生成并返回已签名应用文件至管理端。
从上述描述可知,传统的应用经过签名后仍可使用解压工具打开应用文件或可见签名信息。通过加密后的HASH值,通过散列分布在应用文件的指定位置,通过破坏原有应用文件的格式,使其混淆,使得无法使用解压工具轻易打开应用文件,保证应用文件本身安全,不外泄。
进一步地,还包括终端,所述终端包括第三存储器、第四处理器及存储在第四存储器上并可在第四处理器上运行的第四计算机程序,所述步骤S2之后,所述第一处理器执行所述第一计算机程序时还实现以下步骤:
S31、获取所述已签名应用文件,发布已签名应用文件至应用市场;
所述第四处理器执行所述第四计算机程序时实现以下步骤:
S32、获取所述已签名应用文件,根据第二指定位置抽取所述已签名应用文件上的已加密HASH值,得到所述待签名应用文件,使用SM2算法对所述已加密HASH值进行解密,得到HASH值,判断所述第一指定位置的二进制流与所述HASH值是否一致,若是一致,则安装所述待签名应用文件。
从上述描述可知,终端在安装产品时,通过验证HASH值是否一致来判断该应用是否合法可靠,从而保证了终端的应用安全。
进一步地,所述步骤S1中身份验证信息为JWT,所述JWT包括用户名。
从上述描述可知,JWT是将用户信息加密到token里,服务器不保存任何用户信息,从而很好地解决了单点登录问题和session共享的问题。
进一步地,生成所述步骤S1中JWT的步骤时,所述第一处理器执行所述第一计算机程序时还实现以下步骤:
获取用户名以及密码,将所述用户名以及密码发送至签名端;
生成所述步骤S1中JWT的步骤时,所述第二处理器执行所述第二计算机程序时还实现以下步骤:
接收所述用户名以及密码,验证所述用户名以及密码是否合法,若是,则生成包括用户名的JWT。
从上述描述可知,JWT所使用的编码也是可逆的,故而,不将密码这类敏感的数据放入JWT当中,而用户名属于非敏感数据,在通常情况下,被别人获取也不会影响到账号的安全性,从而在实现信息认证的同时,保证了账号的安全性能。
请参照图1至图3,本发明的实施例一为:
一种应用在线签名方法,包括步骤:
S1、管理端生成并发送应用签名请求至签名端,应用签名请求包括待签名应用文件、身份验证信息、根证书ID以及数字证书;
S2、签名端接收应用签名请求,根据身份验证信息、根证书ID以及数字证书判断应用签名请求的合法性,若合法,则对待签名应用文件进行在线签名。
请参照图1至图3,本发明的实施例二为:
一种应用在线签名方法,在上述实施例一的基础上,步骤S1之前还包括:
S01、管理端收到包括初始应用文件的上传请求,按照上传请求的操作类型,得到与操作类型相匹配的审核步骤、审核账号以及审核权限,其中,操作类型包括新应用提交、新版本提交、应用修改以及版本修改;审核步骤包括至少两个步骤且每个步骤的审核账号为至少一个;审核权限包括下载查看应用权限、修改应用标签权限、修改应用分类权限、删除应用参数权限以及允许签名权限;
S02、管理端根据审核步骤将上传请求发送至第一步骤的第一审核账号,若收到第一审核账号返回的审核通过信息,则进行下一步骤的审核,直至完成审核步骤中的所有步骤。
S03、管理端若收到最终审核账号返回的审核通过信息,则判断最终审核账号是否具有允许签名权限,若有,则审核通过的初始应用文件即为待签名应用文件,之后执行步骤S1,最终审核账号为审核步骤中最终步骤所对应的审核账号。
在本实施例中,假设审核步骤有三个步骤为第一步骤、中间步骤和最终步骤,其中第一步骤对应第一审核账号,第二步骤对应有第二审核账号、第三账号两个账号,最终步骤对应具有允许签名权限的最终审核账号,该上传请求先发给第一审核账号,在收到第一审核账号的审核通过后,发给第二步骤的第二审核账号,在收到第二审核账号的审核通过后,发给第二步骤的第三审核账号,以此类推,直到收到最终审核账号的审核通过,此时,自动发出应用签名请求,以进行对待应用的签名。
其中第二审核账号、第三账号的审核为串审,即本实施例中的审核步骤为多步多人串审,以尽可能的保证应用的合法性。
同时,管理端收到包括初始应用文件的上传请求,是由开发者所在的开发端发出的,开发端因为要上传应用,故而会发请求到管理端。而在审核不通过时,返回审核不通过的信息和原因给开发端,以便于开发者进行重新修改。
请参照图1至图3,本发明的实施例三为:
一种应用在线签名方法,包括步骤:
S10、管理端通过HTTPS协议以及会话密钥建立起与签名端的安全通信链路。
S11、管理端判断是否为首次应用签名,若是,则执行步骤S12,否则执行步骤S13;
S12、管理端生成并发送证书请求至签名端,接收签名端返回的根证书ID以及数字证书;
S13、管理端生成并发送应用签名请求至签名端,应用签名请求包括待签名应用文件、身份验证信息、根证书ID以及数字证书。
S21、签名端接收应用签名请求,根据身份验证信息判断在管理端上的登录账号是否具有应用签名权限,若有,则执行步骤S22,否则执行步骤S25;
S22、签名端根据根证书ID提取根证书,使用根证书验证数字证书的合法性,若验证通过,则执行步骤S23,否则执行步骤S25;
S23、签名端根据数字证书验证应用签名请求的来源是否合法,若合法,则对待签名应用文件进行在线签名,生成已签名应用文件,否则执行步骤S25;
S24、签名端返回已签名应用文件至管理端;
S25、签名端返回签名失败信息至管理端。
其中,步骤S10具体为:
S101、管理端生成会话秘钥TEK、第一签名私钥B1以及第一加密公钥B2,使用会话秘钥TEK对第一加密公钥B2进行加密以得到第一已加密公钥EB2,使用会话秘钥TEK对由用户名以及密码组成的MD5值进行加密以得到已加密MD5值EMD5;
S102、管理端获取预先设置的平台公钥A2,使用平台公钥A2对会话秘钥TEK进行加密以得到已加密会话秘钥ETEK,将第一已加密公钥EB2、已加密会话秘钥ETEK以及已加密MD5值EMD5发送至签名端;
S103、签名端通过加密机上预先设置的平台私钥A1解密已加密会话秘钥ETEK以得到会话秘钥TEK,使用会话秘钥TEK解密第一已加密公钥EB2以得到第一加密公钥B2,使用会话秘钥TEK解密已加密MD5值EMD5以得到MD5值;
S104、签名端获取所述MD5值内的用户名及密码,判断所述用户名及所述密码是否合法,若合法,则产生第二签名私钥C1以及第二加密公钥C2,使用第一加密公钥B2加密第二加密公钥C2以得到第二已加密公钥EC2,使用平台私钥A1对第二已加密公钥EC2进行签名后返回至管理端;
S105、管理端使用平台公钥验证第二已加密公钥EC2的合法性,使用第一签名私钥B1对第二已加密公钥EC2进行解密以得到第二加密公钥C2,若验证第二已加密公钥EC2为合法的,则建立起使用会话密钥TEK进行数据交换的安全通信链路。
其中,第一签名私钥B1以及第一加密公钥B2为采用国密认证算法的非对称公私钥对;
第二签名私钥C1以及第二加密公钥C2为采用国密认证算法的非对称公私钥对;
会话秘钥TEK为对称密钥;
使用会话秘钥TEK进行加密或解密的算法为SM4算法;
使用平台公钥A2进行加密或解密的算法、使用平台私钥A1进行加密或解密的算法均为SM2算法;
其中,步骤S12具体为:
S121、管理端生成并发送根证书请求至签名端;
S122、签名端接收并保存根证书请求,通过加密机生成根证书,并将与根证书对应的根私钥保存至加密机,返回根证书ID至管理端;
S123、管理端接收根证书ID,生成并发送数字证书请求至签名端;
S124、签名端接收数字证书请求,通过加密机生成数字证书,并将与数字证书对应的数字私钥保存至加密机,返回数字证书至管理端;
S125、管理端接收并保存数字证书。
请参照图1至图3,本发明的实施例四为:
一种应用在线签名方法,在上述实施例一的基础上,本实施例中的步骤S2中对待签名应用文件进行在线签名的具体步骤为:
签名端抽取待签名应用文件上第一指定位置的二进制流,对二进制流进行HASH计算得到HASH值,使用SM2算法对HASH值进行加密,得到已加密HASH值,将已加密HASH值散列分布至待签名应用文件上的第二指定位置,生成并返回已签名应用文件至管理端。
其中,步骤S2之后还包括步骤:
S31、管理端获取已签名应用文件,发布已签名应用文件至应用市场;
S32、终端获取已签名应用文件,根据第二指定位置抽取已签名应用文件上的已加密HASH值,得到待签名应用文件,使用SM2算法对已加密HASH值进行解密,得到HASH值,判断第一指定位置的二进制流与HASH值是否一致,若是一致,则安装待签名应用文件。
请参照图1至图3,本发明的实施例五为:
一种应用在线签名方法,在上述实施例一的基础上,步骤S1中身份验证信息为JWT,JWT包括用户名。
其中,生成步骤S1中JWT的步骤为:
管理端获取用户名以及密码,将用户名以及密码发送至签名端;
签名端接收用户名以及密码,验证用户名以及密码是否合法,若是,则生成包括用户名的JWT。
即实施例一中的步骤替换如下:
S1、管理端生成并发送应用签名请求至签名端,应用签名请求包括待签名应用文件、JWT、根证书ID以及数字证书;
S2、签名端接收应用签名请求,根据JWT验证管理端的合法性,根据根证书ID以及数字证书验证应用签名请求的合法性,若合法,则对待签名应用文件进行在线签名。
请参照图4,本发明的实施例六为:
一种应用在线签名系统1,包括管理端2和签名端5,管理端2包括第一存储器4、第一处理器3及存储在第一存储器4上并可在第一处理器3上运行的第一计算机程序,签名端5包括第二存储器7、第二处理器6及存储在第二存储器7上并可在第二处理器6上运行的第二计算机程序,第一处理器3执行第一计算机程序时实现上述实施例一中的步骤S1,第二处理器6执行第二计算机程序时实现上述实施例一中的步骤S2。
请参照图4,本发明的实施例七为:
一种应用在线签名系统1,在上述实施例六的基础上,第一处理器3执行第一计算机程序时实现上述实施例二中的步骤S01至步骤S03以及步骤S1,第二处理器6执行第二计算机程序时实现上述实施例二中的步骤S2。
请参照图4,本发明的实施例八为:
一种应用在线签名系统1,在上述实施例六的基础上,第一处理器3执行第一计算机程序时实现上述实施例三中的步骤S10中的步骤S101、步骤S102、步骤105、步骤S11、步骤S12中的步骤S121、步骤S123、步骤125以及步骤S13,第二处理器6执行第二计算机程序时实现上述实施例三中的步骤S21至步骤S25、步骤S10中的步骤S103、步骤S104、步骤S12中的步骤S122以及步骤S124。
请参照图4,本发明的实施例九为:
一种应用在线签名系统1,在上述实施例六的基础上,还包括终端8,终端8包括第三存储器10、第三处理器9及存储在第三存储器10上并可在第三处理器9上运行的第三计算机程序,第一处理器3执行第一计算机程序时实现上述实施例四中的步骤S1以及步骤S31,第二处理器6执行第二计算机程序时实现上述实施例四中的步骤S2,第三处理器9执行第三计算机程序时实现上述实施例四中的步骤S32。
请参照图4,本发明的实施例十为:
一种应用在线签名系统1,在上述实施例六的基础上,第一处理器3执行第一计算机程序时实现上述实施例五中的步骤S1,第二处理器6执行第二计算机程序时实现上述实施例五中的步骤S2
其中,第一处理器3执行第一计算机程序时还实现以下步骤:
获取用户名以及密码,将用户名以及密码发送至签名端5;
其中,第二处理器6执行第二计算机程序时还实现以下步骤:
接收用户名以及密码,验证用户名以及密码是否合法,若是,则生成包括用户名的JWT。
综上所述,本发明提供的一种应用在线签名方法及系统,在管理上,对应用进行审核,在审核上使用多步多人同时串行审核,可对开发者上传的应用进行多步审核,且每步审核可设置多人同时并行审核,以保证应用的合法性;引入审核人权限控制,通过审核权限的精细化控制,尽可能少的泄露应用的相关属性、业务规则等,从而保证应用的安全性及业务的保密性;
在签名上,使用了在线签名不仅保证了了终端的应用安全,又能实现终端应用管理的信息化,有效减少线下人为因素所导致的易丢失、被利用的风险,也避免了线下签名所带来的人工成本、管理成本以及操作脱节的问题;通过加密后的HASH值,通过散列分布在应用文件的指定位置,通过破坏原有应用文件的格式,使其混淆,使得无法使用解压工具轻易打开应用文件,保证应用文件本身安全,不外泄。
在链路上,通过HTTPS建立通信链路,具有防拦截、防篡改的作用,通过平台间密钥交换保证链路安全;在算法上,使用国家密码局定义的商用密码国密算法,安全性要高于普通加密算法,即通过在线应用签名替换原有线下的UKEY应用签名,从链路、算法、白名单、硬件加密机等条件提高了应用签名的便捷性、可靠性、灵活性,降低了UKEY管理成本及风险。
综上所述,本发明从应用的管理、审核、签名、发布等流程上,形成一体化操作,操作便捷。不仅保证了了智能终端的应用安全,有效降低企业成本,减少线下操作带来的风险,避免了线下操作带来的问题,提升智能终端应用管理的信息化程度。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (24)

1.一种应用在线签名方法,其特征在于,包括步骤:
S1、管理端生成并发送应用签名请求至签名端,所述应用签名请求包括待签名应用文件、身份验证信息、根证书ID以及数字证书;
S2、签名端接收所述应用签名请求,根据所述身份验证信息、根证书ID以及数字证书判断所述应用签名请求的合法性,若合法,则对所述待签名应用文件进行在线签名;
所述步骤S1中管理端生成并发送应用签名请求至签名端之前还包括:
S10、管理端通过HTTPS协议以及会话密钥建立起与所述签名端的安全通信链路;
所述步骤S10具体为:
S101、管理端生成会话密钥、第一签名私钥以及第一加密公钥,使用会话密钥对所述第一加密公钥进行加密以得到第一已加密公钥,使用会话密钥对由用户名以及密码组成的MD5值进行加密以得到已加密MD5值;
S102、管理端获取预先设置的平台公钥,使用所述平台公钥对所述会话密钥进行加密以得到已加密会话密钥,将第一已加密公钥、已加密会话密钥以及已加密MD5值发送至签名端;
S103、签名端通过加密机上预先设置的平台私钥解密所述已加密会话密钥以得到会话密钥,使用所述会话密钥解密所述第一已加密公钥以得到第一加密公钥,使用所述会话密钥解密已加密MD5值以得到MD5值;
S104、签名端获取所述MD5值内的用户名及密码,判断所述用户名及所述密码是否合法,若合法,则产生第二签名私钥以及第二加密公钥,使用第一加密公钥加密第二加密公钥以得到第二已加密公钥,使用平台私钥对所述第二已加密公钥进行签名后返回至管理端;
S105、管理端使用平台公钥验证所述第二已加密公钥的合法性,使用第一签名私钥对第二已加密公钥进行解密以得到第二加密公钥,若验证所述第二已加密公钥为合法的,则建立起使用会话密钥进行数据交换的安全通信链路。
2.根据权利要求1所述的一种应用在线签名方法,其特征在于,所述步骤S1之前还包括:
S01、管理端收到包括初始应用文件的上传请求,按照所述上传请求的操作类型,得到与所述操作类型相匹配的审核步骤、审核账号以及审核权限;
S02、管理端根据所述审核步骤将所述上传请求发送至第一步骤的第一审核账号,若收到所述第一审核账号返回的审核通过信息,则进行下一步骤的审核,直至完成所述审核步骤中的所有步骤。
3.根据权利要求2所述的一种应用在线签名方法,其特征在于,所述步骤S01中的操作类型包括新应用提交、新版本提交、应用修改以及版本修改;
所述步骤S01中的审核步骤包括至少两个步骤且每个步骤的审核账号为至少一个;
所述步骤S01中的审核权限包括下载查看应用权限、修改应用标签权限、修改应用分类权限、删除应用参数权限以及允许签名权限。
4.根据权利要求3所述的一种应用在线签名方法,其特征在于,所述步骤S02之后还包括步骤:
S03、管理端若收到最终审核账号返回的审核通过信息,则判断所述最终审核账号是否具有允许签名权限,若有,则审核通过的所述初始应用文件即为待签名应用文件,之后执行步骤S1,所述最终审核账号为所述审核步骤中最终步骤所对应的审核账号。
5.根据权利要求1所述的一种应用在线签名方法,其特征在于,所述第一签名私钥与第一加密公钥为采用国密认证算法的非对称公私钥对;
所述第二签名私钥以及第二加密公钥为采用国密认证算法的非对称公私钥对;
所述会话密钥为对称密钥;
使用所述会话密钥进行加密或解密的算法为SM4算法;
使用所述平台公钥进行加密或解密的算法、使用所述平台私钥进行加密或解密的算法均为SM2算法。
6.根据权利要求1所述的一种应用在线签名方法,其特征在于,所述步骤S1具体为:
S11、管理端判断是否为首次应用签名,若是,则执行步骤S12,否则执行步骤S13;
S12、管理端生成并发送证书请求至签名端,接收所述签名端返回的根证书ID以及数字证书;
S13、管理端生成并发送应用签名请求至签名端,所述应用签名请求包括待签名应用文件、身份验证信息、根证书ID以及数字证书。
7.根据权利要求6所述的一种应用在线签名方法,其特征在于,所述步骤S12具体为:
S121、管理端生成并发送根证书请求至签名端;
S122、签名端接收并保存所述根证书请求,通过加密机生成根证书,并将与所述根证书对应的根私钥保存至加密机,返回所述根证书ID至管理端;
S123、管理端接收所述根证书ID,生成并发送数字证书请求至签名端;
S124、签名端接收所述数字证书请求,通过加密机生成数字证书,并将与所述数字证书对应的数字私钥保存至加密机,返回所述数字证书至管理端;
S125、管理端接收并保存所述数字证书。
8.根据权利要求7所述的一种应用在线签名方法,其特征在于,所述步骤S2具体为:
S21、签名端接收所述应用签名请求,根据所述身份验证信息判断在所述管理端上的登录账号是否具有应用签名权限,若有,则执行步骤S22,否则执行步骤S25;
S22、签名端根据所述根证书ID提取所述根证书,使用所述根证书验证所述数字证书的合法性,若验证通过,则执行步骤S23,否则执行步骤S25;
S23、签名端根据所述数字证书验证所述应用签名请求的来源是否合法,若合法,则对所述待签名应用文件进行在线签名,生成已签名应用文件,并执行步骤S24,否则执行步骤S25;
S24、签名端返回已签名应用文件至管理端;
S25、签名端返回签名失败信息至管理端。
9.根据权利要求1所述的一种应用在线签名方法,其特征在于,所述步骤S2中对所述待签名应用文件进行在线签名的具体步骤为:
签名端抽取所述待签名应用文件上第一指定位置的二进制流,对所述二进制流进行HASH计算得到HASH值,使用SM2算法对所述HASH值进行加密,得到已加密HASH值,将已加密HASH值散列分布至所述待签名应用文件上的第二指定位置,生成并返回已签名应用文件至管理端。
10.根据权利要求9所述的一种应用在线签名方法,其特征在于,所述步骤S2之后还包括步骤:
S31、管理端获取所述已签名应用文件,发布已签名应用文件至应用市场;
S32、终端获取所述已签名应用文件,根据第二指定位置抽取所述已签名应用文件上的已加密HASH值,得到所述待签名应用文件,使用SM2算法对所述已加密HASH值进行解密,得到HASH值,判断所述第一指定位置的二进制流与所述HASH值是否一致,若是一致,则安装所述待签名应用文件。
11.根据权利要求1所述的一种应用在线签名方法,其特征在于,所述步骤S1中身份验证信息为JWT,所述JWT包括用户名。
12.根据权利要求11所述的一种应用在线签名方法,其特征在于,生成所述步骤S1中JWT的步骤为:
管理端获取用户名以及密码,将所述用户名以及密码发送至签名端;
签名端接收所述用户名以及密码,验证所述用户名以及密码是否合法,若是,则生成包括用户名的JWT。
13.一种应用在线签名系统,包括管理端和签名端,所述管理端包括第一存储器、第一处理器及存储在第一存储器上并可在第一处理器上运行的第一计算机程序,所述签名端包括第二存储器、第二处理器及存储在第二存储器上并可在第二处理器上运行的第二计算机程序,其特征在于,
所述第一处理器执行所述第一计算机程序时实现以下步骤:
S1、生成并发送应用签名请求至签名端,所述应用签名请求包括待签名应用文件、身份验证信息、根证书ID以及数字证书;
所述第二处理器执行所述第二计算机程序时实现以下步骤:
S2、接收所述应用签名请求,根据所述身份验证信息、根证书ID以及数字证书判断所述应用签名请求的合法性,若合法,则对所述待签名应用文件进行在线签名;
所述步骤S1中生成并发送应用签名请求至签名端之前,所述第一处理器执行所述第一计算机程序时还实现以下步骤:
S10、通过HTTPS协议以及会话密钥建立起与所述签名端的安全通信链路;
所述步骤S10中,所述第一处理器执行所述第一计算机程序时还实现以下步骤:
S101、生成会话密钥、第一签名私钥以及第一加密公钥,使用会话密钥对所述第一加密公钥进行加密以得到第一已加密公钥,使用会话密钥对由用户名以及密码组成的MD5值进行加密以得到已加密MD5值;
S102、获取预先设置的平台公钥,使用所述平台公钥对所述会话密钥进行加密以得到已加密会话密钥,将第一已加密公钥、已加密会话密钥以及已加密MD5值发送至签名端;
所述步骤S10中,所述第二处理器执行所述第二计算机程序时还实现以下步骤:
S103、通过加密机上预先设置的平台私钥解密所述已加密会话密钥以得到会话密钥,使用所述会话密钥解密所述第一已加密公钥以得到第一加密公钥,使用所述会话密钥解密已加密MD5值以得到MD5值;
S104、校验所述MD5值是否合法,若合法,则产生第二签名私钥以及第二加密公钥,使用第一加密公钥加密第二加密公钥以得到第二已加密公钥,使用平台私钥对所述第二已加密公钥进行签名后返回至管理端;
所述步骤S10中,所述第一处理器执行所述第一计算机程序时还实现以下步骤:
S105、使用平台公钥验证第二已加密公钥的合法性,使用第一签名私钥对第二已加密公钥进行解密以得到第二加密公钥,若验证所述第二已加密公钥为合法的,则建立起使用会话密钥进行数据交换的安全通信链路。
14.根据权利要求13所述的一种应用在线签名系统,其特征在于,所述步骤S1之前,所述第一处理器执行所述第一计算机程序时还实现以下步骤:
S01、收到包括初始应用文件的上传请求,按照所述上传请求的操作类型,得到与所述操作类型相匹配的审核步骤、审核账号以及审核权限;
S02、根据所述审核步骤将所述上传请求发送至第一步骤的第一审核账号,若收到所述第一审核账号返回的审核通过信息,则进行下一步骤的审核,直至完成所述审核步骤中的所有步骤。
15.根据权利要求14所述的一种应用在线签名系统,其特征在于,所述步骤S01中的操作类型包括新应用提交、新版本提交、应用修改以及版本修改;
所述步骤S01中的审核步骤包括至少两个步骤且每个步骤的审核账号为至少一个;
所述步骤S01中的审核权限包括下载查看应用权限、修改应用标签权限、修改应用分类权限、删除应用参数权限以及允许签名权限。
16.根据权利要求15所述的一种应用在线签名系统,其特征在于,所述步骤S02之后,所述第一处理器执行所述第一计算机程序时还实现以下步骤:
S03、若收到最终审核账号返回的审核通过信息,则判断所述最终审核账号是否具有允许签名权限,若有,则审核通过的所述初始应用文件即为待签名应用文件,之后执行步骤S1,所述最终审核账号为所述审核步骤中最终步骤所对应的审核账号。
17.根据权利要求13所述的一种应用在线签名系统,其特征在于,所述第一签名私钥与第一加密公钥为采用国密认证算法的非对称公私钥对;
所述第二签名私钥以及第二加密公钥为采用国密认证算法的非对称公私钥对;
所述会话密钥为对称密钥;
使用所述会话密钥进行加密或解密的算法为SM4算法;
使用所述平台公钥进行加密或解密的算法、使用所述平台私钥进行加密或解密的算法均为SM2算法。
18.根据权利要求13所述的一种应用在线签名系统,其特征在于,所述步骤S1具体为:
S11、判断是否为首次应用签名,若是,则执行步骤S12,否则执行步骤S13;
S12、生成并发送证书请求至签名端,接收所述签名端返回的根证书ID以及数字证书;
S13、生成并发送应用签名请求至签名端,所述应用签名请求包括待签名应用文件、身份验证信息、根证书ID以及数字证书。
19.根据权利要求18所述的一种应用在线签名系统,其特征在于,所述步骤S12中,所述第一处理器执行所述第一计算机程序时还实现以下步骤:
S121、生成并发送根证书请求至签名端;
所述第二处理器执行所述第二计算机程序时还实现以下步骤:
S122、接收并保存所述根证书请求,通过加密机生成根证书,并将与所述根证书对应的根私钥保存至加密机,返回所述根证书ID至管理端;
所述步骤S12中,所述第一处理器执行所述第一计算机程序时还实现以下步骤:
S123、接收所述根证书ID,生成并发送数字证书请求至签名端;
所述第二处理器执行所述第二计算机程序时还实现以下步骤:
S124、接收所述数字证书请求,通过加密机生成数字证书,并将与所述数字证书对应的数字私钥保存至加密机,返回所述数字证书至管理端;
所述步骤S12中,所述第一处理器执行所述第一计算机程序时还实现以下步骤:
S125、接收并保存所述数字证书。
20.根据权利要求19所述的一种应用在线签名系统,其特征在于,所述步骤S2具体为:
S21、接收所述应用签名请求,根据所述身份验证信息判断在所述管理端上的登录账号是否具有应用签名权限,若有,则执行步骤S22,否则执行步骤S25;
S22、根据所述根证书ID提取所述根证书,使用所述根证书验证所述数字证书的合法性,若验证通过,则执行步骤S23,否则执行步骤S25;
S23、根据所述数字证书验证所述应用签名请求的来源是否合法,若合法,则对所述待签名应用文件进行在线签名,生成已签名应用文件,并执行步骤S24,否则执行步骤S25;
S24、返回已签名应用文件至管理端;
S25、返回签名失败信息至管理端。
21.根据权利要求13所述的一种应用在线签名系统,其特征在于,所述步骤S2中对所述待签名应用文件进行在线签名的具体步骤为:
抽取所述待签名应用文件上第一指定位置的二进制流,对所述二进制流进行HASH计算得到HASH值,使用SM2算法对所述HASH值进行加密,得到已加密HASH值,将已加密HASH值散列分布至所述待签名应用文件上的第二指定位置,生成并返回已签名应用文件至管理端。
22.根据权利要求21所述的一种应用在线签名系统,其特征在于,还包括终端,所述终端包括第三存储器、第三处理器及存储在第三存储器上并可在第三处理器上运行的第三计算机程序,其特征在于,所述步骤S2之后,所述第一处理器执行所述第一计算机程序时还实现以下步骤:
S31、获取所述已签名应用文件,发布已签名应用文件至应用市场;
所述第三处理器执行所述第三计算机程序时实现以下步骤:
S32、获取所述已签名应用文件,根据第二指定位置抽取所述已签名应用文件上的已加密HASH值,得到所述待签名应用文件,使用SM2算法对所述已加密HASH值进行解密,得到HASH值,判断所述第一指定位置的二进制流与所述HASH值是否一致,若是一致,则安装所述待签名应用文件。
23.根据权利要求13所述的一种应用在线签名系统,其特征在于,所述步骤S1中身份验证信息为JWT,所述JWT包括用户名。
24.根据权利要求23所述的一种应用在线签名系统,其特征在于,生成所述步骤S1中JWT的步骤时,所述第一处理器执行所述第一计算机程序时还实现以下步骤:
获取用户名以及密码,将所述用户名以及密码发送至签名端;
生成所述步骤S1中JWT的步骤时,所述第二处理器执行所述第二计算机程序时还实现以下步骤:
接收所述用户名以及密码,验证所述用户名以及密码是否合法,若是,则生成包括用户名的JWT。
CN201811486481.6A 2018-12-06 2018-12-06 一种应用在线签名方法及系统 Active CN109670828B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811486481.6A CN109670828B (zh) 2018-12-06 2018-12-06 一种应用在线签名方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811486481.6A CN109670828B (zh) 2018-12-06 2018-12-06 一种应用在线签名方法及系统

Publications (2)

Publication Number Publication Date
CN109670828A CN109670828A (zh) 2019-04-23
CN109670828B true CN109670828B (zh) 2020-12-11

Family

ID=66143643

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811486481.6A Active CN109670828B (zh) 2018-12-06 2018-12-06 一种应用在线签名方法及系统

Country Status (1)

Country Link
CN (1) CN109670828B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110224485B (zh) * 2019-05-17 2021-09-21 中国电力科学研究院有限公司 一种智能配变终端软件管理系统
CN111552955B (zh) * 2020-04-29 2023-03-28 合肥井创数字科技有限公司 一种基于区块链和ipfs的个人身份认证方法及装置
CN112055019B (zh) * 2020-09-03 2022-09-27 深圳市百富智能新技术有限公司 一种建立通信信道的方法及用户终端
CN112364308A (zh) * 2020-11-13 2021-02-12 四川长虹电器股份有限公司 一种联网授权的安卓apk签名方法和装置
CN112560070B (zh) * 2020-12-28 2024-03-22 杭州趣链科技有限公司 具有审核功能的数据共享方法
CN114785514B (zh) * 2022-03-23 2023-11-14 国网上海能源互联网研究院有限公司 一种用于工业物联化终端应用许可授权的方法及系统

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102064939A (zh) * 2009-11-13 2011-05-18 福建联迪商用设备有限公司 Pos文件认证的方法及认证证书的维护方法
CN102299927A (zh) * 2011-08-31 2011-12-28 四川长虹电器股份有限公司 内容安全监管系统及方法
CN103905207A (zh) * 2014-04-23 2014-07-02 福建联迪商用设备有限公司 一种统一apk签名的方法及其系统
CN104753676A (zh) * 2013-12-31 2015-07-01 北龙中网(北京)科技有限责任公司 移动app开发者的身份验证方法及装置
CN104753670A (zh) * 2013-12-27 2015-07-01 中国银联股份有限公司 基于智能pos终端的多应用安全管理系统及其方法
CN106775713A (zh) * 2016-12-14 2017-05-31 网易(杭州)网络有限公司 文件审核方法、装置及文件提交控制系统
CN107769924A (zh) * 2017-09-11 2018-03-06 福建新大陆支付技术有限公司 校验pos机apk签名的方法及系统

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102064939A (zh) * 2009-11-13 2011-05-18 福建联迪商用设备有限公司 Pos文件认证的方法及认证证书的维护方法
CN102299927A (zh) * 2011-08-31 2011-12-28 四川长虹电器股份有限公司 内容安全监管系统及方法
CN104753670A (zh) * 2013-12-27 2015-07-01 中国银联股份有限公司 基于智能pos终端的多应用安全管理系统及其方法
CN104753676A (zh) * 2013-12-31 2015-07-01 北龙中网(北京)科技有限责任公司 移动app开发者的身份验证方法及装置
CN103905207A (zh) * 2014-04-23 2014-07-02 福建联迪商用设备有限公司 一种统一apk签名的方法及其系统
CN106775713A (zh) * 2016-12-14 2017-05-31 网易(杭州)网络有限公司 文件审核方法、装置及文件提交控制系统
CN107769924A (zh) * 2017-09-11 2018-03-06 福建新大陆支付技术有限公司 校验pos机apk签名的方法及系统

Also Published As

Publication number Publication date
CN109670828A (zh) 2019-04-23

Similar Documents

Publication Publication Date Title
CN109670828B (zh) 一种应用在线签名方法及系统
CN109067539B (zh) 联盟链交易方法、设备及计算机可读存储介质
CN108027926B (zh) 基于服务的支付的认证系统和方法
CN103067401B (zh) 密钥保护方法和系统
CN110348853B (zh) 一种基于标识认证的区块链离线交易方法和系统
US11251964B2 (en) Hash contract generation and verification system
JP6263643B2 (ja) 多者間信用照会のapk署名方法及びシステム
CN104717198B (zh) 安全元件上的软件更新方法和设备
KR102621116B1 (ko) Id 기반 공개 키 암호화를 이용한 전자 지불 방법 및 전자 디바이스
US9900148B1 (en) System and method for encryption
US20080235513A1 (en) Three Party Authentication
CN110290102A (zh) 基于应用的业务安全系统及方法
CN109039652B (zh) 一种数字通证的生成及应用方法
CN110278180B (zh) 金融信息的交互方法、装置、设备及存储介质
CN111431713A (zh) 一种私钥存储方法、装置和相关设备
CN112532656B (zh) 基于区块链的数据加解密方法、装置及相关设备
CN113015991A (zh) 安全的数字钱包处理系统
CN113743921A (zh) 数字资产的处理方法、装置、设备及存储介质
CN108460597B (zh) 一种密钥管理系统及方法
US20240013206A1 (en) In-line verification of transactions
US20220286291A1 (en) Secure environment for cryptographic key generation
US20180212784A1 (en) Method to secure an applicative function in a cloud-based virtual secure element implementation
JP2022509794A (ja) 回路チップおよびそれを動作させる方法
CN112491777B (zh) 跨区块链身份认证方法、计算机设备及可读存储介质
CN113592484B (zh) 一种账户的开立方法、系统及装置

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
GR01 Patent grant
GR01 Patent grant