CN113568832A - 一种离线软件合法性的验证方法及*** - Google Patents

一种离线软件合法性的验证方法及*** Download PDF

Info

Publication number
CN113568832A
CN113568832A CN202110856711.9A CN202110856711A CN113568832A CN 113568832 A CN113568832 A CN 113568832A CN 202110856711 A CN202110856711 A CN 202110856711A CN 113568832 A CN113568832 A CN 113568832A
Authority
CN
China
Prior art keywords
license file
license
file
verification
software
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
Application number
CN202110856711.9A
Other languages
English (en)
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.)
Shanghai Cloudcare Information Technology Co ltd
Original Assignee
Shanghai Cloudcare Information Technology 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 Shanghai Cloudcare Information Technology Co ltd filed Critical Shanghai Cloudcare Information Technology Co ltd
Priority to CN202110856711.9A priority Critical patent/CN113568832A/zh
Publication of CN113568832A publication Critical patent/CN113568832A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • G06F11/3608Software analysis for verifying properties of programs using formal methods, e.g. model checking, abstract interpretation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

本发明提供了一种离线软件合法性的验证方法及***,所述验证方法包括:被验证的客户端软件部署完成后,将license文件置于指定目录,客户端获取license文件,验证license字符串是否符合ECDSA数字签名;获取所述license文件中的验证信息,计算license文件的hash是否为license文件中自带的hash,判断license文件是否合法、是否有篡改;通过license文件中的日期,判断license文件是否过期。本发明对于一个大型分布式软件而言,只需将软件的核心接入部分接入License验证,有效解耦,无需所有子***都进行验证,既简化了软件设计,又减少了部署成本。

Description

一种离线软件合法性的验证方法及***
技术领域
本发明涉及软件验证技术领域,具体而言,涉及一种离线软件合法性的验证方法及***。
背景技术
对于私有部署软件的一个核心模块,为保证部署软件的合法性和有效性,一般做法是颁发某种形式的软件秘钥,这种秘钥一般需要跟中心进行一定的验证,当软件本身跟中心网络不通时,这种校验就会失效。
发明内容
鉴于此,本发明的目的在于提高软件合法性的验证的健壮性,基于一种椭圆曲线数学模型,通过对软件license的设计,保证软件即使在离线情况下,依然能验证自身的合法性。
本发明提供一种离线软件合法性的验证方法,包括以下步骤;
S1、被验证的客户端软件部署完成后,将license文件置于指定目录,客户端获取license文件,验证license字符串是否符合ECDSA数字签名,即是否是确定的椭圆曲线上的x,y点;
S2、获取所述license文件中的验证信息,计算license文件的hash是否为license文件中自带的hash,判断license文件是否合法、是否有篡改;
具体地,所述验证信息包括:有效期、生效日期、生成日期、颁发者、授予者、版本号、license字符串;
S3、通过license文件中的日期,判断license文件是否过期。
进一步地,在所述S1步骤之前包括以下步骤:
对于即将部署的客户端软件,由中心软件生成License文件,通过指定多个字段确定License的具体归属、有效时间以及License文件携带的自带验证信息,避免License被篡改。
进一步地,所述License文件的生成基于椭圆曲线加密算法ECC,所述椭圆曲线加密算法ECC包括椭圆曲线数字签名算法ECDSA。
进一步地,所述生成License文件的具体方法包括以下步骤:
S21、采用所述椭圆曲线数字签名算法ECDSA生成license字符串;
S22、填充license的几个字段,包括:有效期、生效日期、生成日期、颁发者、授予者、版本号;
S23、通过内置的混淆算法,得到整个license文件的hash,并写入license文件。
进一步地,所述License的具体归属包括:License所有方、颁发日期、截止日期。
本发明还提供一种离线软件合法性的验证***,使用如上述所述的验证方法,包括:
验证license字符串模块:用于被验证的客户端软件部署完成后,将license文件置于指定目录,客户端获取license文件,验证license字符串是否符合ECDSA数字签名;
验证合法性模块:用于获取所述license文件中的验证信息,计算license文件的hash是否为license文件中自带的hash,判断license文件是否合法、是否有篡改;
验证日期模块:用于通过license文件中的日期,判断license文件是否过期。
与现有技术相比,本发明的有益效果是:
本发明对于一个大型分布式软件而言,只需将软件的核心接入部分接入License验证,有效解耦,无需所有子***都进行验证,既简化了软件设计,又减少了部署成本;并且,ECDSA算法将DSA运用在椭圆曲线方程函数上,相比RSA算法,ECDSA在抗攻击性、CPU计算量、网络消耗、加密计算等方面,都有更好的表现。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。
在附图中:
图1是本发明一种离线软件合法性的验证方法的流程图;
图2是本发明实施例生成License文件的流程图;
图3是本发明实施例的客户端软件License验证示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
在本公开使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本公开。在本公开和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本公开可能采用术语第一、第二、第三来描述各种信号,但这些信号不应限于这些术语。这些术语仅用来将同一类型的信号彼此区分开。例如,在不脱离本公开范围的情况下,第一信号也可以被称为第二信号,类似地,第二信号也可以被称为第一信号。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
本发明实施例基于一种椭圆曲线数学模型,通过对软件license的设计,保证软件即使在离线情况下,依然能验证自身的合法性。
本发明实施例提供一种离线软件合法性的验证方法,参见附图图1所示,包括以下步骤;
S1、被验证的客户端软件部署完成后,将license文件置于指定目录,客户端获取license文件,验证license字符串是否符合ECDSA数字签名,即是否是确定的椭圆曲线上的x,y点;
S2、获取所述license文件中的验证信息,计算license文件的hash是否为license文件中自带的hash,判断license文件是否合法、是否有篡改;
具体地,所述验证信息包括:有效期、生效日期、生成日期、颁发者、授予者、版本号、license字符串;
S3、通过license文件中的日期,判断license文件是否过期
本发明实施例的客户端软件License验证如附图图3所示。
在所述S1步骤之前包括以下步骤:
对于即将部署的客户端软件,由中心软件生成License文件,通过指定多个字段确定License的具体归属、有效时间以及License文件携带的自带验证信息,避免License被篡改。
具体地,所述License文件的生成基于椭圆曲线加密算法ECC,所述椭圆曲线加密算法ECC包括椭圆曲线数字签名算法ECDSA。
所述生成License文件的具体方法,参见附图图2所示,包括以下步骤:
S21、采用所述椭圆曲线数字签名算法ECDSA生成license字符串;
S22、填充license的几个字段,包括:有效期、生效日期、生成日期、颁发者、授予者、版本号;
S23、通过内置的混淆算法,得到整个license文件的hash,并写入license文件。
具体地,所述License的具体归属包括:License所有方、颁发日期、截止日期。
本发明实施例还提供一种离线软件合法性的验证***,使用如上述所述的验证方法,包括:
验证license字符串模块:用于被验证的客户端软件部署完成后,将license文件置于指定目录,客户端获取license文件,验证license字符串是否符合ECDSA数字签名;
验证合法性模块:用于获取所述license文件中的验证信息,计算license文件的hash是否为license文件中自带的hash,判断license文件是否合法、是否有篡改;
验证日期模块:用于通过license文件中的日期,判断license文件是否过期。
与现有技术相比,本发明的有益效果是:
本发明对于一个大型分布式软件而言,只需将软件的核心接入部分接入License验证,有效解耦,无需所有子***都进行验证,既简化了软件设计,又减少了部署成本;并且,ECDSA算法将DSA运用在椭圆曲线方程函数上,相比RSA算法,ECDSA在抗攻击性、CPU计算量、网络消耗、加密计算等方面,都有更好的表现。
至此,已经结合附图所示的优选实施方式描述了本发明的技术方案,但是,本领域技术人员容易理解的是,本发明的保护范围显然不局限于这些具体实施方式。在不偏离本发明的原理的前提下,本领域技术人员可以对相关技术特征做出同的更改或替换,这些更改或替换之后的技术方案都将落入本发明的保护范围之内。
以上所述仅为本发明的优选实施例,并不用于限制本发明;对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、同替换、改进,均应包含在本发明的保护范围之内。

Claims (6)

1.一种离线软件合法性的验证方法,其特征在于,包括以下步骤;
S1、被验证的客户端软件部署完成后,将license文件置于指定目录,客户端获取license文件,验证license字符串是否符合ECDSA数字签名;
S2、获取所述license文件中的验证信息,计算license文件的hash是否为license文件中自带的hash,判断license文件是否合法、是否有篡改;
S3、通过license文件中的日期,判断license文件是否过期。
2.根据权利要求1所述的验证方法,其特征在于,在所述S1步骤之前包括以下步骤:
对于即将部署的客户端软件,由中心软件生成License文件,通过指定多个字段确定License的具体归属、有效时间以及License文件携带的自带验证信息,避免License被篡改。
3.根据权利要求2所述的验证方法,其特征在于,所述License文件的生成基于椭圆曲线加密算法ECC,所述椭圆曲线加密算法ECC包括椭圆曲线数字签名算法ECDSA。
4.根据权利要求3所述的验证方法,其特征在于,所述生成License文件的具体方法包括以下步骤:
S21、采用所述椭圆曲线数字签名算法ECDSA生成license字符串;
S22、填充license的几个字段,包括:有效期、生效日期、生成日期、颁发者、授予者、版本号;
S23、通过内置的混淆算法,得到整个license文件的hash,并写入license文件。
5.根据权利要求2所述的验证方法,其特征在于,所述License的具体归属包括:License所有方、颁发日期、截止日期。
6.一种离线软件合法性的验证***,其特征在于,使用如权利要求1-5所述的验证方法,包括:
验证license字符串模块:用于被验证的客户端软件部署完成后,将license文件置于指定目录,客户端获取license文件,验证license字符串是否符合ECDSA数字签名;
验证合法性模块:用于获取所述license文件中的验证信息,计算license文件的hash是否为license文件中自带的hash,判断license文件是否合法、是否有篡改;
验证日期模块:用于通过license文件中的日期,判断license文件是否过期。
CN202110856711.9A 2021-07-28 2021-07-28 一种离线软件合法性的验证方法及*** Pending CN113568832A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110856711.9A CN113568832A (zh) 2021-07-28 2021-07-28 一种离线软件合法性的验证方法及***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110856711.9A CN113568832A (zh) 2021-07-28 2021-07-28 一种离线软件合法性的验证方法及***

Publications (1)

Publication Number Publication Date
CN113568832A true CN113568832A (zh) 2021-10-29

Family

ID=78168399

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110856711.9A Pending CN113568832A (zh) 2021-07-28 2021-07-28 一种离线软件合法性的验证方法及***

Country Status (1)

Country Link
CN (1) CN113568832A (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110008659A (zh) * 2019-03-29 2019-07-12 深圳华锐金融技术股份有限公司 软件许可的离线管理方法、装置、计算机设备及存储介质
CN110674511A (zh) * 2019-08-30 2020-01-10 深圳壹账通智能科技有限公司 基于椭圆曲线加密算法的离线数据保护方法及***
CN112800392A (zh) * 2021-01-28 2021-05-14 南方电网深圳数字电网研究院有限公司 基于软证书的授权方法和装置、存储介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110008659A (zh) * 2019-03-29 2019-07-12 深圳华锐金融技术股份有限公司 软件许可的离线管理方法、装置、计算机设备及存储介质
CN110674511A (zh) * 2019-08-30 2020-01-10 深圳壹账通智能科技有限公司 基于椭圆曲线加密算法的离线数据保护方法及***
CN112800392A (zh) * 2021-01-28 2021-05-14 南方电网深圳数字电网研究院有限公司 基于软证书的授权方法和装置、存储介质

Similar Documents

Publication Publication Date Title
CN108665359B (zh) 区块链处理方法、记账节点及验证节点
CN108111314B (zh) 数字证书的生成和校验方法及设备
AU716912B2 (en) Electronic copy protection mechanism
JP3867388B2 (ja) 条件付き認証装置および方法
EP1599965B1 (en) Long-term secure digital signatures
EP0881559A1 (en) Computer system for protecting software and a method for protecting software
CN109243045A (zh) 一种投票方法、装置、计算机设备及计算机可读存储介质
CN112165382B (zh) 软件授权方法、装置、授权服务端及终端设备
JP2001527325A5 (ja) 暗号方式でカムフラージュされた暗号方式キーをストアし証明し使用する装置および方法
CN111492390A (zh) 用于数字货币的现金等价设备
CN112288434B (zh) 隐私交易方法、装置、零知识证明***和隐私交易架构模型
JP2005521281A (ja) 認証可能な位置データ
US11368315B2 (en) Systems and methods of device ownership self-verification
CN114257376B (zh) 数字证书更新方法、装置、计算机设备和存储介质
CN108540447B (zh) 一种基于区块链的证书验证方法及***
CN113344222A (zh) 一种基于区块链的安全可信的联邦学习机制
US20100161992A1 (en) Device and method for protecting data, computer program, computer program product
JP2000059353A (ja) データ保管システム、データ保管方法及びそのプログラム記録媒体
JP4843960B2 (ja) タグ認証システム、認証装置、及び、タグ認証方法
US20180006822A1 (en) Arbitrary base value for epid calculation
CN111984959B (zh) 一种匿名信息发布及验证方法、装置
CN103701612B (zh) 一种标识私钥获取与发放方法
CN101359986B (zh) 用于根据双线性映射的直接匿名证明的装置和方法
JP2000215280A (ja) 本人認証システム
CN113568832A (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