CN115795413B - 基于国密算法的软件认证保护方法及系统 - Google Patents
基于国密算法的软件认证保护方法及系统 Download PDFInfo
- Publication number
- CN115795413B CN115795413B CN202310069656.8A CN202310069656A CN115795413B CN 115795413 B CN115795413 B CN 115795413B CN 202310069656 A CN202310069656 A CN 202310069656A CN 115795413 B CN115795413 B CN 115795413B
- Authority
- CN
- China
- Prior art keywords
- character string
- hash
- client
- byte
- bytes
- 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
Links
Images
Landscapes
- Storage Device Security (AREA)
Abstract
本发明涉及软件认证保护技术领域,本发明公开了基于国密算法的软件认证保护方法及系统;所述方法包括:当应用程序于客户端上打开时,读取应用程序中已加密的认证文件,读取客户端的主板唯一标识;采用应用程序自身的内容和客户端的主板唯一标识,对已加密的认证文件进行解密,得到解密后的关键信息;获取预先构建的配置文件,对配置文件进行解密,得到解密后的配置文件信息;从解密的配置文件信息中,获取预先构建的口令字符串,对口令字符串进行解密,得到解密后的口令字符串;如果解密后的关键信息、解密后的配置文件信息以及解密后的口令字符串三者完全具备,则应用程序允许在客户端上运行,否则不允许运行。
Description
技术领域
本发明涉及软件认证保护技术领域,特别是涉及基于国密算法的软件认证保护方法及系统。
背景技术
本部分的陈述仅仅是提到了与本发明相关的背景技术,并不必然构成现有技术。
为了保护软件的版权,软件开发者通常需要设置有效期并对软件关键信息进行加密。利用远程服务器进行终端验证并传输关键信息是一种高安全性的方法,但是很多时候软件运行环境无法保证能够连接指定远程服务器,对软件进行加壳是另一种常用保护方法,但是该方法会造成较为严重的软件性能下降和软件体积的增加,在一些应用中软件性能的大幅度下降是难以接受的。
发明内容
为了解决现有技术的不足,本发明提供了基于国密算法的软件认证保护方法及系统;
第一方面,本发明提供了基于国密算法的软件认证保护方法;
基于国密算法的软件认证保护方法,包括:
当应用程序于客户端上打开时,读取应用程序中已加密的认证文件,读取客户端的主板唯一标识;
采用应用程序自身的内容和客户端的主板唯一标识,对已加密的认证文件进行解密,得到解密后的关键信息;解密后的关键信息,包括:设定参数、设定口令或设定代码;
获取预先构建的配置文件,对配置文件进行解密,得到解密后的配置文件信息;
从解密的配置文件信息中,获取预先构建的口令字符串,对口令字符串进行解密,得到解密后的口令字符串;
如果解密后的关键信息、解密后的配置文件信息以及解密后的口令字符串三者完全具备,则应用程序允许在客户端上运行,如果三者缺乏其一,则应用程序不允许在客户端上运行。
第二方面,本发明提供了基于国密算法的软件认证保护系统;
基于国密算法的软件认证保护系统,包括:
读取模块,其被配置为:当应用程序于客户端上打开时,读取应用程序中已加密的认证文件,读取客户端的主板唯一标识;
第一解密模块,其被配置为:采用应用程序自身的内容和客户端的主板唯一标识,对已加密的认证文件进行解密,得到解密后的关键信息;解密后的关键信息,包括:设定参数、设定口令或设定代码;
第二解密模块,其被配置为:获取预先构建的配置文件,对配置文件进行解密,得到解密后的配置文件信息;
第三解密模块,其被配置为:从解密的配置文件信息中,获取预先构建的口令字符串,对口令字符串进行解密,得到解密后的口令字符串;
判断模块,其被配置为:如果解密后的关键信息、解密后的配置文件信息以及解密后的口令字符串三者完全具备,则应用程序允许在客户端上运行,如果三者缺乏其一,则应用程序不允许在客户端上运行。
与现有技术相比,本发明的有益效果是:
本发明提出了一种利用终端硬件信息对终端进行认证并对软件关键数据进行二次加密保护的方法与系统,该方法与应用程序和客户端绑定,基于国产密码算法对关键信息进行二次加固,且可同时生成多个终端认证文件。与以往的技术相比,本发明是一种通用性好、效率高且安全性高的认证保护方法。
附图说明
构成本发明的一部分的说明书附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。
图1为实施例一的方法流程图。
具体实施方式
应该指出,以下详细说明都是示例性的,旨在对本发明提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本发明所属技术领域的普通
在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
本实施例所有数据的获取都在符合法律法规和用户同意的基础上,对数据的合法应用。
实施例一
本实施例提供了基于国密算法的软件认证保护方法;
如图1所示,基于国密算法的软件认证保护方法,包括:
S101:当应用程序于客户端上打开时,读取应用程序中已加密的认证文件,读取客户端的主板唯一标识;
S102:采用应用程序自身的内容和客户端的主板唯一标识,对已加密的认证文件进行解密,得到解密后的关键信息;解密后的关键信息,包括:设定参数、设定口令或设定代码;
S103:获取预先构建的配置文件,对配置文件进行解密,得到解密后的配置文件信息;
S104:从解密的配置文件信息中,获取预先构建的口令字符串,对口令字符串进行解密,得到解密后的口令字符串;
S105:如果解密后的关键信息、解密后的配置文件信息以及解密后的口令字符串三者完全具备,则应用程序允许在客户端上运行,如果三者缺乏其一,则应用程序不允许在客户端上运行。
进一步地,所述应用程序中已加密的认证文件,具体包括:
指定参数、指定口令或指定代码。
进一步地,所述S102:已加密的认证文件,其生成过程包括:
S102-a1:应用程序的开发商服务器读取客户端的主板唯一标识,将客户端的主板唯一标识写入唯一标识列表中;
S102-a2:对应用程序采用国密算法执行杂凑操作,生成杂凑值,将杂凑值进行保存;
S102-a3:对每个主板唯一标识,生成对应的认证文件。
示例性地,所述S102-a1:应用程序的开发商服务器读取客户端的主板唯一标识,将客户端的主板唯一标识写入唯一标识列表中,具体包括:
读取主板唯一标识列表文件,一次读取一行,如果字符串以“APP=”开头,则读取“APP=”后的字符串内容并保存到应用程序信息字符串filepos,否则写入唯一标识列表uids中,标识数量liccnt自增1。
示例性地,所述S102-a2:对应用程序采用国密算法执行杂凑操作,生成杂凑值,将杂凑值进行保存,具体包括:
以二进制只读模式读取应用程序,应用国密算法SM3执行杂凑操作,生成32字节的杂凑值,保存到哈希字符串hashF第32字节开始的32字节中,同时将所述杂凑值复制到文件哈希字符串filehash中。
进一步地,所述S102-a3:对每个主板唯一标识,生成对应的认证文件,具体包括:
S102-a31:将未加密认证文件读取到第一文件缓冲区中;所述未加密认证文件,包括:应用程序的设定参数、设定口令或设定代码;
S102-a32:定义第一无符号字节型数组inhash,将唯一标识字符串insid和客户端的主板唯一标识,均填充到第一无符号字节型数组inhash中;
S102-a33:对第一无符号字节型数组inhash,采用国密算法执行哈希操作,生成第一哈希值,将第一哈希值视为加密密钥种子;
S102-a34:取加密密钥种子的前N个字节作为密钥KEY,后N个字节作为初始向量,采用加密算法对第一文件缓冲区进行加密,得到加密后的认证文件。
应理解地,所述唯一标识字符串insid,为每一个授权客户和应用程序生成一个唯一标识,用于标识应用程序和客户信息。
示例性地,所述S102-a3:对每个主板唯一标识,生成对应的认证文件,具体包括:
以只读模式打开未加密认证文件,这里未加密认证文件为国密算法库认证文件SMXvf.lic,将未加密认证文件内容读取到文件缓冲区tbuffer中,缓冲区尺寸与关键文件尺寸一致;
声明一个大小为64字节的无符号字节型数组inhash,并填充为预设值rand0,将唯一标识insid字符串和第i个唯一标识uids[i]顺序复制到inhash数组中;
对64字节inhash数组执行SM3哈希操作,生成32字节的哈希值作为未加密认证文件加密密钥种子hsh;
取hsh前16字节作为密钥KEY,后16字节作为初始向量IV,应用祖冲之加密算法对文件缓冲区tbuffer进行加密,并将加密后的内容保存到第id个已加密的认证文件SMXvf+id.lic中。
进一步地,所述数组rand0用于存储64字节的随机数。
进一步地,所述S102:采用应用程序自身的内容和客户端的主板唯一标识,对已加密的认证文件进行解密,得到解密后的关键信息,具体包括:
S102-b1:应用程序启动后,读取应用程序本身的内容,采用国密算法执行杂凑操作,生成杂凑值,将杂凑值保存到应用程序哈希值中;
S102-b2:将已加密的认证文件读取到第二文件缓冲区中;
S102-b3:读取并保存客户端的主板唯一标识;
S102-b4:定义第二无符号字节型数组inhashA,将唯一标识字符串insid和主板唯一标识,填充到第二无符号字节型数组inhashA中;
S102-b5:对第二无符号字节型数组inhashA,采用国密算法执行哈希操作,生成第二哈希值,将第二哈希值视为加密密钥种子;
S102-b6:取加密密钥种子的前N字节作为密钥KEY,后N字节作为初始向量,对第二文件缓冲区中的已加密的认证文件进行解密,将解密后的数据保存到内存中。
应理解地,所述唯一标识字符串,为每一个授权客户和应用程序生成一个唯一标识,用于标识应用程序和客户信息。
应理解地,所述S102-b6,对认证文件执行解密后,恢复出原始数据保存到内存中,应用程序从内存中读取信息并执行相应的操作,这样可以避免泄露关键信息。
示例性地,所述S102:采用应用程序自身的内容和客户端的主板唯一标识,对已加密的认证文件进行解密,得到解密后的关键信息,具体包括:
应用程序启动后,以二进制只读方式读取应用程序本身内容,应用SM3算法执行杂凑操作,生成32字节的杂凑值,保存到应用程序哈希值apphash第0字节开始的32字节中;
以只读模式打开已加密的认证文件SMXvf0.lic,将文件内容读取到文件缓冲区tbufferA中,缓冲区尺寸与关键文件尺寸一致;
获取本机主板唯一编号并保存到主板唯一标识字符串uid中;
声明一个大小为64字节的无符号字节型数组inhashA,并填充为预设值rand0,将唯一标识insid字符串和主板唯一标识uid顺序复制到inhashA数组中;
对64字节inhashA数组执行SM3哈希操作,生成32字节的哈希值作为关键文件加密密钥种子hshA;
取hshA前16字节作为密钥KEY,后16字节作为初始向量IV,应用祖冲之加密算法对文件缓冲区tbufferA进行解密,并将解密后的信息保存到文件缓冲区tbufferA中。
进一步地,所述应用程序唯一标识字符串insid,其字符串长度小于等于48字节。
进一步地,所述S103:获取预先构建的配置文件,配置文件的构建过程包括:
S103-a1:将无符号字节型数组inhash的前32个字节转换为16进制字符串HashString,设置元素HASH的值为16进制字符串HashString,并保存到XML配置文件conn+id.xml;XML配置文件中的一个属性节点为xml的一个元素;
S103-a2:读取XML配置文件conn+id.xml的内容到文件缓冲区tbuffer1中,将数组magicno复制到哈希字符串hasfF前32字节,把唯一标识哈希值hash复制到哈希字符串hashF第32字节开始的32字节;数组magicno中存储32字节的随机数;
S103-a3:对哈希字符串hashF第13字节开始的16字节依次与文件哈希字符串filehash第0字节开始的16字节进行异或操作,并保存到原位置;
S103-a4:对哈希字符串hashF前64字节执行SM3哈希操作,生成32字节哈希值保存到哈希字符串hashF第0字节开始的32字节;
S103-a5:以哈希字符串hashF第16字节开始的16字节为主密钥,哈希字符串hashF前16字节为初始向量,对文件缓冲区tbuffer1执行国密算法SM4的CTR模式加密,将加密后的数据保存到配置文件conn+id.cfg中,其中,conn表示配置文件名称,id表示客户端的序号。
S103-a6:客户端的序号id值增加1,如果客户端的序号id等于标识数量liccnt,结束,得到生成的配置文件,否则返回S103-a1继续生成配置文件。
示例性地,所述S103-a1:包括:打开conn+id.xml,将无符号字节型数组inhash前32字节转换为16进制字符串HashString,设置元素HASH的值为HashString,并保存到conn+id.xml;
示例性地,所述S103-a2:包括:以二进制只读方式打开conn+id.xml,将文件内容读取到文件缓冲区tbuffer1中,缓冲区尺寸与conn+id.xml文件尺寸一致。将数组magicno复制到hasfF前32字节,把hash复制到hashF第32字节开始的32字节。
进一步地,所述对配置文件进行解密,得到解密后的配置文件,具体包括:
S103-b1:读取配置文件conn+id.cfg中的内容并保存到无符号字节型数组t中,t的尺寸与conn+id.cfg尺寸一致;其中,conn表示配置文件名称,id表示标识序号;
S103-b2:将32字节的数组中预先生成的32字节的随机数magicno,复制到客户端哈希字符串hashFA第0字节开始的32字节,对主板唯一标识字符串uid执行国密算法SM3,生成32字节的哈希值保存到客户端哈希字符串hashFA第32字节开始的32字节中;
S103-b3:对客户端哈希字符串hashFA第13字节开始的16字节依次与应用程序哈希值apphash第0字节开始的16字节进行异或操作,并保存到原位置;
S103-b4:对客户端哈希字符串hashFA前64字节执行国密算法SM3哈希操作,生成32字节哈希值保存到hashFA第0字节开始的32字节;
S103-b5:以客户端哈希字符串hashFA第16字节开始的16字节为主密钥,客户端哈希字符串hashFA前16字节为初始向量,采用国密算法SM4的CTR模式对t执行解密,将解密后的数据保存到配置文件字符串t1中;
S103-b6:从配置文件字符串t1中加载读取各元素值;
S103-b7:读取元素HASH的值到字符型数组instr。
进一步地,所述数组magicno用于存储32字节的随机数。
进一步地,所述预先构建的口令字符串,其构建过程包括:
将哈希运算缓冲区inhash前32字节填充为预生成的1组32字节随机数rand1,并将程序运行关键字符串Key复制到哈希运算缓冲区inhash中,设置哈希运算缓冲区inhash第30字节为字符串Key的长度,对唯一标识列表uids的第id个唯一标识uids[id]执行国密算法SM3操作,生成32字节哈希值唯一标识哈希值hash,并将hash前32字节保存到哈希字符串HashF前32字节。
应理解地,对HashF的前64字节执行SM3操作,生成32字节哈希值并保存到哈希字符串HashF前32字节;
以唯一标识哈希值hash第16字节开始的16字节为主密钥,唯一标识哈希值hash前16字节为初始向量,采用国密算法SM4的CTR模式,对哈希运算缓冲区inhash数组前32字节进行加密,并将加密后的值写回哈希运算缓冲区inhash前32字节。
进一步地,所述数组rand1用于存储32字节的随机数。
进一步地,程序运行关键字符串Key,包括:数据库口令、服务器认证口令等。
进一步地,所述对口令字符串进行解密,得到解密后的口令字符串,具体包括:
对主板唯一标识字符串uid执行国密算法SM3杂凑操作,生成32字节哈希值保存到客户端哈希字符串hashFA中,以客户端哈希字符串hashFA第16字节开始的16字节为主密钥,客户端哈希字符串hashFA前16字节为初始向量,采用国密算法SM4的CTR模式对32字节字符型数组instr进行解密,将解密后的数据保存到应用程序口令字符串ukey中,设置应用程序口令字符串ukey的第30个元素值为0,完成程序口令字符串恢复。
进一步地,所述应用程序允许在客户端上运行,具体包括:
从内存中读取解密后的关键信息,将解密后的配置文件信息保存在配置文件字符串t1,对字符串t1中读取各xml元素信息,将解密后的口令字符串保存在配置文件中的HASH元素,从t1读取元素HASH,并执行解密后恢复口令字符串,利用解密后的口令字符串完成登录或数据库连接操作。
进一步地,所述主板唯一标识是客户端的标识。
进一步地,所述配置文件的类型为XML,配置文件名设置为对应的conni.xml,i为目标机器在主板唯一标识列表文件中的序号。
实施例二
本实施例提供了基于国密算法的软件认证保护系统;
基于国密算法的软件认证保护系统,包括:
读取模块,其被配置为:当应用程序于客户端上打开时,读取应用程序中已加密的认证文件,读取客户端的主板唯一标识;
第一解密模块,其被配置为:采用应用程序自身的内容和客户端的主板唯一标识,对已加密的认证文件进行解密,得到解密后的关键信息;解密后的关键信息,包括:设定参数、设定口令或设定代码;
第二解密模块,其被配置为:获取预先构建的配置文件,对配置文件进行解密,得到解密后的配置文件信息;
第三解密模块,其被配置为:从解密的配置文件信息中,获取预先构建的口令字符串,对口令字符串进行解密,得到解密后的口令字符串;
判断模块,其被配置为:如果解密后的关键信息、解密后的配置文件信息以及解密后的口令字符串三者完全具备,则应用程序允许在客户端上运行,如果三者缺乏其一,则应用程序不允许在客户端上运行。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.基于国密算法的软件认证保护方法,其特征是,包括:
当应用程序于客户端上打开时,读取应用程序中已加密的认证文件,读取客户端的主板唯一标识;
采用应用程序自身的内容和客户端的主板唯一标识,对已加密的认证文件进行解密,得到解密后的关键信息;解密后的关键信息,包括:设定参数、设定口令或设定代码;
获取预先构建的配置文件,对配置文件进行解密,得到解密后的配置文件信息;
从解密的配置文件信息中,获取预先构建的口令字符串,对口令字符串进行解密,得到解密后的口令字符串;
如果解密后的关键信息、解密后的配置文件信息以及解密后的口令字符串三者完全具备,则应用程序允许在客户端上运行,如果三者缺乏其一,则应用程序不允许在客户端上运行;
其中,所述采用应用程序自身的内容和客户端的主板唯一标识,对已加密的认证文件进行解密,得到解密后的关键信息,具体包括:
应用程序启动后,读取应用程序本身的内容,采用国密算法执行杂凑操作,生成杂凑值,将杂凑值保存到应用程序哈希值中;
将已加密的认证文件读取到第二文件缓冲区中;
读取并保存客户端的主板唯一标识;
定义第二无符号字节型数组,将唯一标识字符串和主板唯一标识,填充到第二无符号字节型数组中,得到填充后的第二无符号字节型数组;
对填充后的第二无符号字节型数组,采用国密算法执行哈希操作,生成第二哈希值,将第二哈希值视为加密密钥种子;
取加密密钥种子的前若干个字节作为密钥,后若干个字节作为初始向量,对第二文件缓冲区中的已加密的认证文件进行解密,将解密后的数据保存到内存中。
2.如权利要求1所述的基于国密算法的软件认证保护方法,其特征是,已加密的认证文件,其生成过程包括:
应用程序的开发商服务器读取客户端的主板唯一标识,将客户端的主板唯一标识写入唯一标识列表中;
对应用程序采用国密算法执行杂凑操作,生成杂凑值,将杂凑值进行保存;
对每个主板唯一标识,生成对应的认证文件。
3.如权利要求2所述的基于国密算法的软件认证保护方法,其特征是,对每个主板唯一标识,生成对应的认证文件,具体包括:
将未加密认证文件读取到第一文件缓冲区中;所述未加密认证文件,包括:应用程序的设定参数、设定口令或设定代码;
定义第一无符号字节型数组,将唯一标识字符串和客户端的主板唯一标识,均填充到第一无符号字节型数组中,得到填充后的第一无符号字节型数组;
对填充后的第一无符号字节型数组,采用国密算法执行哈希操作,生成第一哈希值,将第一哈希值视为加密密钥种子;
取加密密钥种子的前若干个字节作为密钥,后若干个字节作为初始向量,采用加密算法对第一文件缓冲区进行加密,得到加密后的认证文件。
4.如权利要求1所述的基于国密算法的软件认证保护方法,其特征是,获取预先构建的配置文件,配置文件的构建过程包括:
将第一无符号字节型数组的前32个字节转换为16进制字符串,设置元素的值为16进制字符串,并保存到配置文件;
读取配置文件的内容到文件缓冲区中,将数组复制到哈希字符串前32字节,把唯一标识哈希值复制到哈希字符串第32字节开始的32字节;
对哈希字符串第13字节开始的16字节依次与文件哈希字符串第0字节开始的16字节进行异或操作,并保存到原位置;
对哈希字符串前64字节执行哈希操作,生成32字节哈希值保存到哈希字符串第0字节开始的32字节;
以哈希字符串第16字节开始的16字节为主密钥,哈希字符串前16字节为初始向量,对文件缓冲区执行国密算法加密,将加密后的数据保存到配置文件;
客户端的序号值增加1,如果客户端的序号等于标识数量,结束,得到生成的配置文件,否则继续生成配置文件。
5.如权利要求1所述的基于国密算法的软件认证保护方法,其特征是,所述对配置文件进行解密,得到解密后的配置文件,具体包括:
读取配置文件中的内容并保存到第三无符号字节型数组中;
将32字节的数组中预先生成的32字节的随机数,复制到客户端哈希字符串第0字节开始的32字节,对主板唯一标识字符串执行国密算法,生成32字节的哈希值保存到客户端哈希字符串第32字节开始的32字节中;
对客户端哈希字符串第13字节开始的16字节依次与应用程序哈希值第0字节开始的16字节进行异或操作,并保存到原位置;
对客户端哈希字符串前64字节执行国密算法哈希操作,生成32字节哈希值保存到第0字节开始的32字节;
以客户端哈希字符串第16字节开始的16字节为主密钥,客户端哈希字符串前16字节为初始向量,采用国密算法对第三无符号字节型数组执行解密,将解密后的数据保存到配置文件字符串中;
从配置文件字符串中加载读取各元素值;读取元素的值到字符型数组。
6.如权利要求1所述的基于国密算法的软件认证保护方法,其特征是,所述预先构建的口令字符串,其构建过程包括:
将哈希运算缓冲区前32字节填充为预生成的1组32字节随机数,并将程序运行关键字符串复制到哈希运算缓冲区中,设置哈希运算缓冲区第30字节为字符串的长度,对唯一标识列表的唯一标识执行国密算法操作,生成32字节唯一标识哈希值,并将唯一标识哈希值前32字节保存到哈希字符串前32字节。
7.如权利要求1所述的基于国密算法的软件认证保护方法,其特征是,所述对口令字符串进行解密,得到解密后的口令字符串,具体包括:
对主板唯一标识字符串执行国密算法杂凑操作,生成32字节哈希值保存到客户端哈希字符串中,以客户端哈希字符串第16字节开始的16字节为主密钥,客户端哈希字符串前16字节为初始向量,采用国密算法对32字节字符型数组进行解密,将解密后的数据保存到应用程序口令字符串中。
8.如权利要求1所述的基于国密算法的软件认证保护方法,其特征是,所述应用程序允许在客户端上运行,具体包括:
从内存中读取解密后的关键信息,将解密后的配置文件信息保存在配置文件字符串,从字符串中读取各元素信息,将解密后的口令字符串保存在配置文件中的元素,读取元素,并执行解密后恢复口令字符串,利用解密后的口令字符串完成登录或数据库连接操作。
9.基于国密算法的软件认证保护系统,其特征是,包括:
读取模块,其被配置为:当应用程序于客户端上打开时,读取应用程序中已加密的认证文件,读取客户端的主板唯一标识;
第一解密模块,其被配置为:采用应用程序自身的内容和客户端的主板唯一标识,对已加密的认证文件进行解密,得到解密后的关键信息;解密后的关键信息,包括:设定参数、设定口令或设定代码;
第二解密模块,其被配置为:获取预先构建的配置文件,对配置文件进行解密,得到解密后的配置文件信息;
第三解密模块,其被配置为:从解密的配置文件信息中,获取预先构建的口令字符串,对口令字符串进行解密,得到解密后的口令字符串;
判断模块,其被配置为:如果解密后的关键信息、解密后的配置文件信息以及解密后的口令字符串三者完全具备,则应用程序允许在客户端上运行,如果三者缺乏其一,则应用程序不允许在客户端上运行;
其中,所述采用应用程序自身的内容和客户端的主板唯一标识,对已加密的认证文件进行解密,得到解密后的关键信息,具体包括:
应用程序启动后,读取应用程序本身的内容,采用国密算法执行杂凑操作,生成杂凑值,将杂凑值保存到应用程序哈希值中;
将已加密的认证文件读取到第二文件缓冲区中;
读取并保存客户端的主板唯一标识;
定义第二无符号字节型数组,将唯一标识字符串和主板唯一标识,填充到第二无符号字节型数组中,得到填充后的第二无符号字节型数组;
对填充后的第二无符号字节型数组,采用国密算法执行哈希操作,生成第二哈希值,将第二哈希值视为加密密钥种子;
取加密密钥种子的前若干个字节作为密钥,后若干个字节作为初始向量,对第二文件缓冲区中的已加密的认证文件进行解密,将解密后的数据保存到内存中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310069656.8A CN115795413B (zh) | 2023-02-07 | 2023-02-07 | 基于国密算法的软件认证保护方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310069656.8A CN115795413B (zh) | 2023-02-07 | 2023-02-07 | 基于国密算法的软件认证保护方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115795413A CN115795413A (zh) | 2023-03-14 |
CN115795413B true CN115795413B (zh) | 2023-05-16 |
Family
ID=85430079
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310069656.8A Active CN115795413B (zh) | 2023-02-07 | 2023-02-07 | 基于国密算法的软件认证保护方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115795413B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114124480A (zh) * | 2021-11-08 | 2022-03-01 | 闪捷信息科技有限公司 | 通信的认证方法、服务器、客户端、电子设备及存储介质 |
CN114785495A (zh) * | 2022-04-01 | 2022-07-22 | 安天科技集团股份有限公司 | 密钥派生方法、数据加密方法、服务器、电子设备及存储介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106130716B (zh) * | 2015-05-06 | 2020-01-21 | 三星Sds株式会社 | 基于认证信息的密钥交换系统及方法 |
CN109714176B (zh) * | 2019-03-13 | 2021-11-30 | 苏州科达科技股份有限公司 | 口令认证方法、装置及存储介质 |
CN111709010B (zh) * | 2020-06-19 | 2021-05-07 | 山东省计算中心(国家超级计算济南中心) | 基于国密算法的终端认证信息提取和验证方法及系统 |
CN111709059B (zh) * | 2020-06-19 | 2021-06-01 | 山东省计算中心(国家超级计算济南中心) | 基于国密算法的终端认证信息生成方法及系统 |
CN111709044B (zh) * | 2020-06-19 | 2021-06-22 | 山东省计算中心(国家超级计算济南中心) | 基于国密算法的硬件指纹信息生成方法及系统 |
CN112468301B (zh) * | 2020-10-23 | 2022-08-02 | 苏州浪潮智能科技有限公司 | 一种基于区块链的云平台认证的方法、系统、设备及介质 |
-
2023
- 2023-02-07 CN CN202310069656.8A patent/CN115795413B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114124480A (zh) * | 2021-11-08 | 2022-03-01 | 闪捷信息科技有限公司 | 通信的认证方法、服务器、客户端、电子设备及存储介质 |
CN114785495A (zh) * | 2022-04-01 | 2022-07-22 | 安天科技集团股份有限公司 | 密钥派生方法、数据加密方法、服务器、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN115795413A (zh) | 2023-03-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108810894B (zh) | 终端授权方法、装置、计算机设备和存储介质 | |
CN109429222B (zh) | 一种对无线网络设备升级程序及通讯数据加密的方法 | |
US7546468B2 (en) | Program update method and server | |
CN1985466B (zh) | 使用分发cd按签署组向设备传递直接证据私钥的方法 | |
US8443203B2 (en) | Secure boot method and semiconductor memory system using the method | |
WO2013107362A1 (zh) | 一种保护数据的方法和系统 | |
US10735190B1 (en) | Persistent TPM-based identifier and key pair | |
CN111401901B (zh) | 生物支付设备的认证方法、装置、计算机设备和存储介质 | |
CN104168116A (zh) | 一种数据库身份验证方法及系统 | |
JP2009510616A (ja) | データベース内の機密データを保護するためのシステム及び方法 | |
CN112637156B (zh) | 密钥分配方法、装置、计算机设备和存储介质 | |
WO2019237304A1 (zh) | 一种密钥处理方法及装置 | |
CN113014393B (zh) | 一种基于硬件加密的密码保险箱系统及应用方法 | |
CN113591121A (zh) | 一种资源访问权限的配置方法、装置、设备和存储介质 | |
WO2015154469A1 (zh) | 数据库的操作方法及装置 | |
CN115795413B (zh) | 基于国密算法的软件认证保护方法及系统 | |
CN108376212B (zh) | 执行代码安全保护方法、装置及电子装置 | |
CN115357948A (zh) | 一种基于tee及加密芯片的硬件防抄板加密方法及其装置 | |
CN111542050B (zh) | 一种基于tee的保障虚拟sim卡远程初始化安全的方法 | |
CN114116059A (zh) | 多级链式解压缩结构密码机的实现方法及密码计算设备 | |
CN114637985A (zh) | 一种基于多环境参数的Android应用登录伪造识别方法 | |
CN113569205A (zh) | 一种sdk软件接口服务授权方法及装置 | |
CN107682147B (zh) | 用于智能卡芯片操作系统文件的安全管理方法及系统 | |
CN114896621B (zh) | 应用服务的获取方法、加密方法、装置、计算机设备 | |
CN117094016B (zh) | 基于国密Linux内核文件系统数据的加密方法及装置 |
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 |