CN113742656A - 软件授权认证方法及装置 - Google Patents
软件授权认证方法及装置 Download PDFInfo
- Publication number
- CN113742656A CN113742656A CN202010470777.XA CN202010470777A CN113742656A CN 113742656 A CN113742656 A CN 113742656A CN 202010470777 A CN202010470777 A CN 202010470777A CN 113742656 A CN113742656 A CN 113742656A
- Authority
- CN
- China
- Prior art keywords
- software
- user account
- server
- password
- client
- 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 40
- 238000013475 authorization Methods 0.000 claims abstract description 17
- 230000008569 process Effects 0.000 claims description 7
- 230000006870 function Effects 0.000 description 8
- 230000009471 action Effects 0.000 description 7
- 230000002159 abnormal effect Effects 0.000 description 4
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 238000010200 validation analysis Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000004927 fusion Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/121—Restricting unauthorised execution of programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/107—License processing; Key processing
Abstract
本申请涉及计算机技术领域,公开了一种软件授权认证方法及装置,该软件授权认证方法包含:在服务端预先设置软件使用限制策略;为所述软件生成至少一个授权用户账号与对应的密码,将所述授权用户账号与对应的密码保存在服务端,并分别提供给相应的客户端;当所述客户端启动所述软件时,向所述服务端发送至少包含用户账号与密码的登录认证消息;所述服务端对所述登录认证消息中的用户账号与密码与预先保存的授权用户账号与对应的密码进行匹配,若匹配成功,则所述服务端再根据所述登录认证消息判断所述客户端是否满足所述软件使用限制条件,若是,则授权认证成功。
Description
技术领域
本申请涉及计算机领域,特别涉及计算机软件的保护技术。
背景技术
近年来,由于软件的非正常使用的情况严重,用于阻止软件被非正常使用的需求日益增加。
例如,Java软件运行的机制是通过编译Java源代码生成字节码并在Java虚拟机上运行,使用一些反编译工具很容易将Java字节码进行反编译逆向得到源代码。对于运行在服务器端的软件来说,保护其源代码是相对容易,只要保证对外提供的端口是安全的,黑客很难获取到Java运行的字节码文件。但是如果软件是运行在客户的机器上,Java程序的源代码很容易被别人偷看。只要有一个反编译器,任何人都可以分析别人的代码,甚至可以对源代码进行篡改。所以Java软件销售的商业模式面临着知识产权保护的巨大挑战。
然而,现有的软件保护方案,从保护效率以及保护能力来看,仍然无法满足需求。
发明内容
本申请的目的在于提供一种软件授权认证方法及装置,能够更有效、更方便地阻止多种不同的非正常使用软件的情况,显著提高对软件使用的保护能力。
本申请公开了一种软件授权认证方法,包含:
在服务端预先设置软件使用限制策略;
为所述软件生成至少一个授权用户账号与对应的密码,将所述授权用户账号与对应的密码保存在服务端,并分别提供给相应的客户端;
当所述客户端启动所述软件时,向所述服务端发送至少包含用户账号与密码的登录认证消息;
所述服务端对所述登录认证消息中的用户账号与密码与预先保存的授权用户账号与对应的密码进行匹配,若匹配成功,则所述服务端再根据所述登录认证消息判断所述客户端是否满足所述软件使用限制条件,若是,则授权认证成功。
在一个优选例中,所述软件为Java软件,并且,所述方法还包含:
为所述Java软件生成每个授权用户账号对应的加解密秘钥,并根据所述加解密秘钥对所述Java软件的字节码进行加密,生成Java软件包;
根据所述授权用户账号、对应的密码,以及对应的加解密秘钥,生成所述Java软件的代理程序;
将所述Java软件的代理程序以及所述Java软件包一同提供给相应的客户端;
如果授权认证成功,则所述客户端的Java虚拟机在每次加载所述Java软件的类字节码之前,调用所述代理程序的解密功能,根据所述加解密秘钥对所述Java软件的字节码进行解密,最后,Java虚拟机加载解密后的正确字节码,运行Java软件正常功能。
在一个优选例中,在所述登录认证消息中,还包含:所述客户端的机器指纹。
在一个优选例中,所述软件使用限制策略包含以下之一或其任意组合:所述Java软件通过同一用户账号同时并发运行的进程数是否小于预设阈值、所述Java软件通过同一用户账号运行的物理机器是否为预先配置好的指定物理机器,以及,所述Java软件通过同一用户账号运行的物理机器的数量是否小于预设阈值。
在一个优选例中,所述服务端再判断所述客户端是否满足所述软件使用限制条件,若是,则授权认证成功的步骤之后,还包含:所述服务端向所述客户端返回认证成功的消息。
在一个优选例中,所述软件为C/C++软件。
本申请还公开了一种软件授权认证装置包含:
软件使用限制策略模块,用于在服务端预先设置软件使用限制策略;
账号与密码生成模块,用于为所述软件生成至少一个授权用户账号与对应的密码,将所述授权用户账号与对应的密码保存在服务端,并分别提供给相应的客户端;
登录认证消息模块,用于当所述客户端启动所述软件时,向所述服务端发送至少包含用户账号与密码的登录认证消息;
授权认证模块,用于所述服务端对所述登录认证消息中的用户账号与密码与预先保存的授权用户账号与对应的密码进行匹配,若匹配成功,则所述服务端再根据所述登录认证消息判断所述客户端是否满足所述软件使用限制条件,若是,则授权认证成功。
在一个优选例中,在所述登录认证消息中,还包含:所述客户端的机器指纹。
本申请还公开了一种软件授权认证系统包括:
存储器,用于存储计算机可执行指令;以及,
处理器,用于在执行所述计算机可执行指令时实现如前文描述的方法中的步骤。
本申请还公开了一种计算机可读存储介质所述计算机可读存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器执行时实现如前文描述的方法中的步骤。
本申请实施方式中,通过对服务端与客户端涉及的授权用户账号、密码、机器指纹多种信息的融合使用,以及与可调整的软件使用限制策略相结合,能够更有效、更方便地阻止多种不同的非正常使用软件的情况,显著提高对软件使用的保护能力。
本申请的说明书中记载了大量的技术特征,分布在各个技术方案中,如果要罗列出本申请所有可能的技术特征的组合(即技术方案)的话,会使得说明书过于冗长。为了避免这个问题,本申请上述发明内容中公开的各个技术特征、在下文各个实施方式和例子中公开的各技术特征、以及附图中公开的各个技术特征,都可以自由地互相组合,从而构成各种新的技术方案(这些技术方案均因视为在本说明书中已经记载),除非这种技术特征的组合在技术上是不可行的。例如,在一个例子中公开了特征A+B+C,在另一个例子中公开了特征A+B+D+E,而特征C和D是起到相同作用的等同技术手段,技术上只要择一使用即可,不可能同时采用,特征E技术上可以与特征C相组合,则,A+B+C+D的方案因技术不可行而应当不被视为已经记载,而A+B+C+E的方案应当视为已经被记载。
附图说明
图1是根据本申请第一实施方式的软件授权认证方法的流程示意图;
图2是根据本申请第二实施方式的软件授权认证装置的结构示意图。
具体实施方式
在以下的叙述中,为了使读者更好地理解本申请而提出了许多技术细节。但是,本领域的普通技术人员可以理解,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术方案。
总体来说,在本说明书的实施例所涉及的软件授权认证方法中,主要包含以下步骤:
在服务端预先设置软件使用限制策略;
为所述软件生成至少一个授权用户账号与对应的密码,将所述授权用户账号与对应的密码保存在服务端,并分别提供给相应的客户端;
当所述客户端启动所述软件时,向所述服务端发送至少包含用户账号与密码的登录认证消息;
所述服务端对所述登录认证消息中的用户账号与密码与预先保存的授权用户账号与对应的密码进行匹配,若匹配成功,则所述服务端再根据所述登录认证消息判断所述客户端是否满足所述软件使用限制条件,若是,则授权认证成功。
需指出,虽然下面的实施例中以Java软件为例进行描述,但本领域的技术人员可以理解,本说明书的实施例不限于Java软件,例如,也可以应用于C/C++,等等。
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请的实施方式作进一步的详细描述。
本申请的第一实施方式涉及一种软件授权认证方法,其流程如图1所示,该方法包括以下步骤:
步骤110:在服务端预先设置Java软件使用限制策略。
优选地,该软件使用限制策略包含但不限于以下策略中的一个或其任意组合:1)所述Java软件的每个用户账号可以同时运行多少个客户端,即,一个账号最多同时可以建立多少个并发会话数;2)所述Java软件的每个用户账号可最多同时在多少个物理机器上运行;3)所述Java软件是否只允许在指定的一台或多台物理机器上运行,在这种情况下,需要对并发会话的客户端的机器指纹进行匹配。4)所属Java软件允许使用的生效开始时间和生效结束时间,当不在生效时间范围之内的认证都返回失败。
在本说明书的实施例中,上述软件使用策略可以根据需要进行组合、增加、修改等调整。
更具体的,但涉及的是Java软件时,在所述Java软件使用限制策略中,可预先设置每个授权用户账号对应的允许运行所述Java软件的所有物理机器对应的机器指纹信息库。
更具体的,所述Java软件使用限制策略中,也可以在客户端第一次发送登录认证消息时,根据登录认证消息中的机器指纹对其机器指纹信息库进行更新。
步骤120:为所述软件生成至少一个授权用户账号与对应的密码,将所述授权用户账号与对应的密码保存在服务端,并分别提供给相应的客户端。
优选地,可直接在服务端为Java软件的每个授权用户创建用户账号与对应的密码,并保存在服务端。
优选地,可对Java软件的每个授权用户,生成一个基于JVMTI的代理程序源代码,该源代码可由C/C++实现,将用户账号与对应的密码植入所述代理程序源代码中,接着编译生成可执行的动态链接库,连同Java软件本身编译生成的字节码打包成Java软件包,然后,可在交付时将该Java软件包提供给用户。
例如,可对所述Java软件本身的字节码进行加密,例如,可通过AES256加密方法进行加密,其中,加密密钥包含所述授权用户账号和对应的密码,同时还包含一串随机码,每个所述Java软件包对应一个加解密秘钥,即,一包一密;同时,将所述密钥植入代理程序中。
优选地,本步骤还可以进一步包含以下步骤:
为所述Java软件生成每个授权用户账号对应的加解密秘钥,并根据所述加解密秘钥对所述Java软件的字节码进行加密,生成Java软件包;
根据所述授权用户账号、对应的密码,以及对应的加解密秘钥,生成所述Java软件的代理程序;
将所述Java软件的代理程序以及所述Java软件包一同提供给相应的客户端;
需指出,在此后执行的认证处理中,如果授权认证成功,则所述客户端每次加载所述Java软件的字节码时,所述代理程序根据所述加解密秘钥对所述Java软件的字节码进行解密。更具体的说,如果授权认证成功,则所述客户端的Java虚拟机在每次加载所述Java软件的类字节码之前,调用所述代理程序的解密功能,根据所述加解密秘钥对所述Java软件的字节码进行解密,最后,Java虚拟机加载解密后的正确字节码,运行Java软件正常功能。
步骤130:当所述客户端启动所述软件时,向所述服务端发送至少包含用户账号与密码的登录认证消息。
需指出,在本说明书的实施例中,所述服务端发送的登录认证消息中还开进一步包含其它信息,例如:所述客户端的机器指纹,等等。
具体地,当客户端启动所述Java软件时,在JVM启动的时候会加载所述代理程序,代理程序会与所述服务端建立一个TCP长连接,连接完成之后,客户端向服务端发送登录认证消息,该认证消息包含用户账号与对应的密码,也可以进一步包含所述客户端的机器指纹。
优选地,如上所述,当所述服务端发送的登录认证消息中还开进一步包含所述客户端的机器指纹时,该机器指纹可根据以下之一或其任意组合确定:所述客户端的物理机器的主板序列号、CPU序列号、BIOS序列号、硬盘序列号和MAC地址。具体地说,所述机器指纹可采集自运行主机,即客户端的物理机器的主板序列号、CPU序列号、BIOS序列号、硬盘序列号和MAC地址,由指纹生成算法通过将上述信息合并起来,然后通过MD5算法进行哈希:F=md5(主板序列号+CPU序列号+BIOS序列号+硬盘序列号+MAC地址),由此生成机器指纹。需指出,哈希算法是本领域技术人员公知的,在本说明书的实施例中,哈希算法不限于此,在此不做赘述。
进一步的,在本步骤中,客户端与服务端建立长连接,将包含用户账号与对应的密码,或如上所述的进一步包含客户端的机器指纹等信息的登录认证消息发送给服务端,以进行登录认证。在接下来的步骤中,如果服务端认证失败,则客户端停止程序的运行,如果服务端认证通过,则客户端定期发送心跳包给服务端,以保持会话连接。
进一步需指出,在接下来的步骤中,如果客户端认证通过,则该客户端的Java虚拟机在每次加载Java软件的类字节码前,会调用所述代理程序的的字节码解密程序,例如,AES256解密程序,根据预先植入所述代理程序中的解密秘钥对所述Java软件的类字节码进行解密。客户端Java虚拟机只有在获得正确的解密后的类字节码之后,才能正常进行类加载,然后正常运行Java软件功能,否则Java虚拟机会报错,无法正常执行相应功能。
这样做的好处在于,由于代理程序本身由C++编写,因此可以对代理程序本身进行加壳,确保了代理程序中的字节码解密密钥的安全。
步骤140:所述服务端对所述登录认证消息中的用户账号与密码与预先保存的授权用户账号与对应的密码进行匹配,若匹配成功,则所述服务端再根据所述登录认证消息判断所述客户端是否满足所述软件使用限制条件,若是,则授权认证成功,所述服务端向所述客户端返回认证成功的消息。
优选地,在判断所述客户端是否满足预先设置的Java软件使用限制策略的步骤中,可根据所述用户账号的对应的连接会话列表,确定当前所述Java软件的用户账号是否没有相应的客户端登录所述服务端,如果会话列表为空,则向所述客户端返回认证成功的消息。具体地说,若所述用户账号对应的当前会话列表为空,则确定当前所述Java软件的用户账号没有相应的客户端登录所述服务端。
具体的,根据所述用户账号对应的当前会话列表中可包含每个登录所述服务端的客户端对应的机器指纹,更具体的,该当前会话列表中每一行记录均包含用户账号与登录的客户端对应的机器指纹二元组信息。
可以理解,如果所述用户账号对应的当前会话列表为空,则说明对于该用户账号,当前没有客户端登录到服务端,换句话说,所述Java软件为第一次运行。在这种情况下,服务端向客户端返回认证成功的消息,并保持该会话连接。
进一步的,在所述判断所述客户端是否满足预先设置的Java软件使用限制策略的步骤中,可根据所述当前会话列表中的用户账号与登录的客户端的机器指纹二元组信息,以及所述登录认证消息中的客户端的机器指纹进行判断。举例来说,预先设置的软件使用限制策略,还可以包含以下之一或其任意组合:
1)所述Java软件通过同一用户账号同时并发运行的进程数是否小于预设阈值。换句话说,就是根据客户端同一个用户账号下的并发连接到服务端的会话数,即,上述用户账号对应的当前会话列表中的记录数量是否超过预设阈值,来判断是否认证通过;
2)所述Java软件通过同一用户账号运行的物理机器是否为预先配置好的指定物理机器。换句话说,即,可通过对客户端同一个用户账号上传的登录认证消息中的机器指纹与服务端预先配置好的指定的机器指纹进行匹配,如果匹配成功,则判断认证通过,否则认证失败。
3)所述Java软件通过同一用户账号运行的物理机器的数量是否小于预设阈值。换句话说,即,可通过上述用户账号对应的当前会话列表,基于客户端同一个用户账号上传的登录认证消息中的不同机器指纹的个数,判断该Java软件的同一用户账号运行的物理机器是否超出预先设置的数量上限,来判断是否认证通过。
此外,预先设置的软件使用限制策略还可以包含:判断使用所述Java软件的时间是否在预先设置的有效期限内,若是,则向所述客户端返回认证成功的消息,否则,向所述客户端返回认证失败的消息。优选地,预先设置的有效期限可以通过在服务端预先设置的生效开始时间和生效结束时间来确定。
本说明书的实施例的软件授权认证方法,通过对服务端与客户端涉及的授权用于账号、密码、机器指纹多种信息的融合使用,以及与可调整的软件使用限制策略相结合,能够更有效、更方便地阻止多种不同的非正常使用软件的情况,显著提高对软件使用的保护能力。例如,对于Java软件,不但能够对Java软件的源代码本身进行保护,防止反编译,进一步扼制篡改的可能,而且能够对Java软件使用进行授权和限制,防止用户过度使用。
本申请的第二实施方式涉及一种软件授权认证装置,其结构如图2所示,该软件授权认证装置包括:
软件使用限制策略模块,用于在服务端预先设置软件使用限制策略;
账号与密码生成模块,用于为所述软件生成至少一个授权用户账号与对应的密码,将所述授权用户账号与对应的密码保存在服务端,并分别提供给相应的客户端;
登录认证消息模块,用于当所述客户端启动所述软件时,向所述服务端发送至少包含用户账号与密码的登录认证消息;
授权认证模块,用于所述服务端对所述登录认证消息中的用户账号与密码与预先保存的授权用户账号与对应的密码进行匹配,若匹配成功,则所述服务端再根据所述登录认证消息判断所述客户端是否满足所述软件使用限制条件,若是,则授权认证成功。
优选地,在所述登录认证消息中,还包含:所述客户端的机器指纹。
第一实施方式是与本实施方式相对应的方法实施方式,第一实施方式中的技术细节可以应用于本实施方式,本实施方式中的技术细节也可以应用于第一实施方式。
需要说明的是,本领域技术人员应当理解,上述软件授权认证装置的实施方式中所示的各模块的实现功能可参照前述软件授权认证方法的相关描述而理解。上述软件授权认证装置的实施方式中所示的各模块的功能可通过运行于处理器上的程序(可执行指令)而实现,也可通过具体的逻辑电路而实现。本申请实施例上述软件授权认证装置如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务端、或者网络设备等)执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read Only Memory)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本申请实施例不限制于任何特定的硬件和软件结合。
相应地,本申请实施方式还提供一种计算机存储介质,其中存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现本申请的各方法实施方式。
此外,本申请实施方式还提供一种软件授权认证系统,其中包括用于存储计算机可执行指令的存储器,以及,处理器;该处理器用于在执行该存储器中的计算机可执行指令时实现上述各方法实施方式中的步骤。其中,该处理器可以是中央处理单元(CentralProcessing Unit,简称“CPU”),还可以是其他通用处理器、数字信号处理器(DigitalSignal Processor,简称“DSP”)、专用集成电路(Application Specific IntegratedCircuit,简称“ASIC”)等。前述的存储器可以是只读存储器(read-only memory,简称“ROM”)、随机存取存储器(random access memory,简称“RAM”)、快闪存储器(Flash)、硬盘或者固态硬盘等。本发明各实施方式所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
需要说明的是,在本专利的申请文件中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。本专利的申请文件中,如果提到根据某要素执行某行为,则是指至少根据该要素执行该行为的意思,其中包括了两种情况:仅根据该要素执行该行为、和根据该要素和其它要素执行该行为。多个、多次、多种等表达包括2个、2次、2种以及2个以上、2次以上、2种以上。
在本申请提及的所有文献都被认为是整体性地包括在本申请的公开内容中,以便在必要时可以作为修改的依据。此外应理解,在阅读了本申请的上述公开内容之后,本领域技术人员可以对本申请作各种改动或修改,这些等价形式同样落于本申请所要求保护的范围。
Claims (10)
1.一种软件授权认证方法,其特征在于,包含:
在服务端预先设置软件使用限制策略;
为所述软件生成至少一个授权用户账号与对应的密码,将所述授权用户账号与对应的密码保存在服务端,并分别提供给相应的客户端;
当所述客户端启动所述软件时,向所述服务端发送至少包含用户账号与密码的登录认证消息;
所述服务端对所述登录认证消息中的用户账号与密码与预先保存的授权用户账号与对应的密码进行匹配,若匹配成功,则所述服务端再根据所述登录认证消息判断所述客户端是否满足所述软件使用限制条件,若是,则授权认证成功。
2.如权利要求1所述的方法,其特征在于,所述软件为Java软件,并且,所述方法还包含:
为所述Java软件生成每个授权用户账号对应的加解密秘钥,并根据所述加解密秘钥对所述Java软件的字节码进行加密,生成Java软件包;
根据所述授权用户账号、对应的密码,以及对应的加解密秘钥,生成所述Java软件的代理程序;
将所述Java软件的代理程序以及所述Java软件包一同提供给相应的客户端;
如果授权认证成功,则所述客户端每次加载所述Java软件的字节码时,所述代理程序根据所述加解密秘钥对所述Java软件的字节码进行解密。
3.如权利要求1或2所述的方法,其特征在于,在所述登录认证消息中,还包含:所述客户端的机器指纹。
4.如权利要求3所述的方法,其特征在于,所述软件使用限制策略包含以下之一或其任意组合:所述Java软件通过同一用户账号同时并发运行的进程数是否小于预设阈值、所述Java软件通过同一用户账号运行的物理机器是否为预先配置好的指定物理机器,以及,所述Java软件通过同一用户账号运行的物理机器的数量是否小于预设阈值。
5.如权利要求1或3所述的方法,其特征在于,所述服务端再判断所述客户端是否满足所述软件使用限制条件,若是,则授权认证成功的步骤之后,还包含:所述服务端向所述客户端返回认证成功的消息。
6.如权利要求1所述的方法,其特征在于,所述软件为C/C++软件。
7.一种软件授权认证装置,其特征在于,包含:
软件使用限制策略模块,用于在服务端预先设置软件使用限制策略;
账号与密码生成模块,用于为所述软件生成至少一个授权用户账号与对应的密码,将所述授权用户账号与对应的密码保存在服务端,并分别提供给相应的客户端;
登录认证消息模块,用于当所述客户端启动所述软件时,向所述服务端发送至少包含用户账号与密码的登录认证消息;
授权认证模块,用于所述服务端对所述登录认证消息中的用户账号与密码与预先保存的授权用户账号与对应的密码进行匹配,若匹配成功,则所述服务端再根据所述登录认证消息判断所述客户端是否满足所述软件使用限制条件,若是,则授权认证成功。
8.如权利要求7所述的装置,其特征在于,在所述登录认证消息中,还包含:所述客户端的机器指纹。
9.一种软件授权认证系统,其特征在于,包括:
存储器,用于存储计算机可执行指令;以及,
处理器,用于在执行所述计算机可执行指令时实现如权利要求1至6中任意一项所述的方法中的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器执行时实现如权利要求1至6中任意一项所述的方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010470777.XA CN113742656A (zh) | 2020-05-28 | 2020-05-28 | 软件授权认证方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010470777.XA CN113742656A (zh) | 2020-05-28 | 2020-05-28 | 软件授权认证方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113742656A true CN113742656A (zh) | 2021-12-03 |
Family
ID=78724430
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010470777.XA Pending CN113742656A (zh) | 2020-05-28 | 2020-05-28 | 软件授权认证方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113742656A (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102346834A (zh) * | 2011-11-25 | 2012-02-08 | 武汉钢铁(集团)公司 | Java应用软件加密保护的方法 |
CN105306211A (zh) * | 2014-08-01 | 2016-02-03 | 成都天钥科技有限公司 | 一种客户端软件的身份认证方法 |
CN107888592A (zh) * | 2017-11-13 | 2018-04-06 | 杭州迪普科技股份有限公司 | 一种vpn登录认证方法及装置 |
-
2020
- 2020-05-28 CN CN202010470777.XA patent/CN113742656A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102346834A (zh) * | 2011-11-25 | 2012-02-08 | 武汉钢铁(集团)公司 | Java应用软件加密保护的方法 |
CN105306211A (zh) * | 2014-08-01 | 2016-02-03 | 成都天钥科技有限公司 | 一种客户端软件的身份认证方法 |
CN107888592A (zh) * | 2017-11-13 | 2018-04-06 | 杭州迪普科技股份有限公司 | 一种vpn登录认证方法及装置 |
Non-Patent Citations (1)
Title |
---|
李全振: "移动代理中的安全问题研究", 《科技创新导报》, 31 December 2009 (2009-12-31) * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109684790B (zh) | 软件启动方法、软件授权验证方法、设备和存储介质 | |
US8725649B2 (en) | System and method to protect computer software from unauthorized use | |
CN102426640B (zh) | 用于产品验证和激活的安全软件产品标识符 | |
US7694121B2 (en) | System and method for protected operating system boot using state validation | |
JP4729575B2 (ja) | ソフトウェアのセキュリティ確保 | |
JP4912879B2 (ja) | プロセッサの保護された資源へのアクセスに対するセキュリティ保護方法 | |
KR100702499B1 (ko) | 메시지 무결성 보증 시스템, 방법 및 기록 매체 | |
US8775797B2 (en) | Reliable software product validation and activation with redundant security | |
US10992480B2 (en) | Method and system for performing a transaction and for performing a verification of legitimate access to, or use of digital data | |
CN110688660B (zh) | 一种终端安全启动的方法及装置、存储介质 | |
US20140095880A1 (en) | System and method for software protection and secure software distribution | |
US7076062B1 (en) | Methods and arrangements for using a signature generating device for encryption-based authentication | |
CN111814132B (zh) | 安全认证方法及装置、安全认证芯片、存储介质 | |
CN115859267A (zh) | 一种应用程序安全启动的方法、存储控制芯片和电子设备 | |
US20190354697A1 (en) | System and method for securing data in a storage medium | |
CN112966254B (zh) | 用于主机与可信密码模块的安全通信方法及系统 | |
US8667278B2 (en) | Information processing apparatus and data transmission method of information processing apparatus | |
US11861182B2 (en) | Integrated circuit device with an authentication module | |
CN112613033A (zh) | 一种可执行文件安全调用的方法及装置 | |
CN109784072B (zh) | 一种安全文件管理方法和系统 | |
US7194762B2 (en) | Method of creating password list for remote authentication to services | |
CN109302442B (zh) | 一种数据存储证明方法及相关设备 | |
CN113742656A (zh) | 软件授权认证方法及装置 | |
CN114070548A (zh) | 一种基于软加密狗装置的软件版权加密保护方法 | |
CN114817956A (zh) | 一种usb通信对象验证方法、系统、装置及存储介质 |
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 |