CN104850764B - 一种基于智能卡的软件保护方法及系统 - Google Patents
一种基于智能卡的软件保护方法及系统 Download PDFInfo
- Publication number
- CN104850764B CN104850764B CN201510268522.4A CN201510268522A CN104850764B CN 104850764 B CN104850764 B CN 104850764B CN 201510268522 A CN201510268522 A CN 201510268522A CN 104850764 B CN104850764 B CN 104850764B
- Authority
- CN
- China
- Prior art keywords
- card
- certification
- software
- authorization
- random number
- 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
- 238000000034 method Methods 0.000 title claims abstract description 40
- 238000013475 authorization Methods 0.000 claims abstract description 168
- 238000004891 communication Methods 0.000 claims description 5
- 230000000694 effects Effects 0.000 claims 1
- 230000008569 process Effects 0.000 abstract description 16
- 238000013461 design Methods 0.000 abstract description 7
- 230000006870 function Effects 0.000 description 32
- 238000004364 calculation method Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
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
- G06F21/123—Restricting unauthorised execution of programs by using dedicated hardware, e.g. dongles, smart cards, cryptographic processors, global positioning systems [GPS] devices
-
- 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/60—Protecting data
- G06F21/604—Tools and structures for managing or administering access control systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Automation & Control Theory (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Storage Device Security (AREA)
Abstract
本发明实施例公开了一种基于智能卡的软件保护方法及系统,解决了现有技术的将被保护软件的代码移植到加密锁中进行保护的设计,所导致的过程繁琐,及额外增加的软件保护成本的技术问题。本发明的方法包括:S1:获取到软件保护指令,并通过待保护软件调用读卡器操作控件按照第一预置方式根据授权卡对认证卡进行认证,若认证通过,则执行S2;S2:通过待保护软件再次调用读卡器操作控件,按照第二预置方式根据认证卡对授权卡进行认证,若认证通过,则执行S3;S3:通过待保护软件再次调用读卡器操作控件,读取授权卡中的软件使用权限和使用时间;S4:通过待保护软件根据使用权限确定权限使用功能和权限禁用功能,并确定使用时间在有效期内。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种基于智能卡的软件保护方法及系统。
背景技术
软件保护一般分为软加密和硬加密,硬加密俗称为加密狗或加密锁。加密锁是为软件开发商提供的一种智能型的软件保护工具,它包含一个安装在计算机并行口或USB口上的硬件,及一套适用于各种语言的接口软件和工具软件。加密锁基于硬件保护技术,其目的是通过对软件与数据的保护防止知识产权被非法使用。
现有技术为将被保护软件的代码移植到加密锁中进行保护,然而过程繁琐,同时加密锁硬件需要购买,对于较多使用者来说额外增加了软件保护的成本。
上述提及的过程繁琐,以及额外的软件保护成本的技术问题成为了本领域技术人员亟待解决的技术问题。
发明内容
本发明实施例提供了一种基于智能卡的软件保护方法及系统,解决了现有技术的将被保护软件的代码移植到加密锁中进行保护的设计,所导致的过程繁琐,及额外增加的软件保护成本的技术问题。
本发明实施例提供的一种基于智能卡的软件保护方法,包括:
S1:获取到软件保护指令,并通过待保护软件调用读卡器操作控件按照第一预置方式根据授权卡对认证卡进行认证,若认证通过,则执行步骤S2;
S2:通过所述待保护软件再次调用所述读卡器操作控件,按照第二预置方式根据所述认证卡对所述授权卡进行认证,若认证通过,则执行步骤S3;
S3:通过所述待保护软件再次调用所述读卡器操作控件,读取所述授权卡中的软件使用权限和使用时间;
S4:通过所述待保护软件根据所述使用权限确定权限使用功能和权限禁用功能,并确定所述使用时间在有效期内。
优选地,所述第一预置方式包括:
通过所述读卡器操作控件调用所述授权卡产生第一随机数,并将所述第一随机数保存在所述授权卡中;
通过所述读卡器操作控件将所述第一随机数发送给所述认证卡,使得所述认证卡通过密钥进行计算后返回第一密文数据;
通过所述读卡器操作控件将所述第一密文数据发送至所述授权卡进行解密,并获取到与所述第一密文数据相对应的第二随机数;
通过所述授权卡对所述第一随机数和所述第二随机数进行比对,若一致,则所述认证卡认证通过。
优选地,所述第二预置方式包括:
通过所述读卡器操作控件调用所述认证卡产生第三随机数,并将所述第三随机数保存在所述认证卡中;
通过所述读卡器操作控件将所述第三随机数发送给所述授权卡,使得所述授权卡通过密钥进行计算后返回第二密文数据;
通过所述读卡器操作控件将所述第二密文数据发送至所述认证卡进行解密,并获取到与所述第一密文数据相对应的第四随机数;
通过所述认证卡对所述第三随机数和所述第四随机数进行比对,若一致,则所述授权卡认证通过。
优选地,所述步骤S4具体包括:
通过所述待保护软件根据所述使用权限确定权限使用功能和权限禁用功能,并判断所述使用时间是否在有效期内,若是,则所述待保护软件保护成功,若否,则执行远程授权模式;
所述远程授权模式包括:
获取所述待保护软件的所述使用时间和所述权限使用功能;
通过待保护软件调用读卡器操作控件按照第一预置方式根据授权卡对认证卡进行认证,若认证通过,则执行下一步;
通过所述待保护软件再次调用所述读卡器操作控件,按照第二预置方式根据所述认证卡对所述授权卡进行认证,若认证通过,则执行下一步;
通过调用所述读卡器操作控件从所述认证卡中获取密钥并写入所述授权卡中进行授权。
本发明实施例提供的一种基于智能卡的软件保护系统,包括:
软件保护客户端、软件保护服务器和读卡器,所述软件保护客户端分别与所述软件保护服务器和所述读卡器建立有通信连接关系;
所述软件保护客户端,用于通过浏览器模式从所述软件保护服务器下载读卡器操作控件;
所述读卡器,用于输入输出数据给认证卡和授权卡;
其中,所述软件保护客户端获取到软件保护指令,并调用从所述软件保护服务器下载的所述读卡器操作控件,再按照第一预置方式根据授权卡对认证卡进行认证,若认证通过,则所述软件保护客户端再次调用所述读卡器操作控件,并按照第二预置方式根据所述认证卡对所述授权卡进行认证,若认证通过,则所述软件保护客户端再次调用所述读卡器操作控件,并通过所述读卡器读取所述授权卡中的软件使用权限和使用时间,最后所述软件保护客户端根据所述使用权限确定权限使用功能和权限禁用功能,并确定所述使用时间在有效期内。
优选地,所述第一预置方式包括:
通过所述读卡器操作控件调用所述授权卡产生第一随机数,并将所述第一随机数保存在所述授权卡中;
通过所述读卡器操作控件将所述第一随机数发送给所述认证卡,使得所述认证卡通过密钥进行计算后返回第一密文数据;
通过所述读卡器操作控件将所述第一密文数据发送至所述授权卡进行解密,并获取到与所述第一密文数据相对应的第二随机数;
通过所述授权卡对所述第一随机数和所述第二随机数进行比对,若一致,则所述认证卡认证通过;
所述第二预置方式包括:
通过所述读卡器操作控件调用所述认证卡产生第三随机数,并将所述第三随机数保存在所述认证卡中;
通过所述读卡器操作控件将所述第三随机数发送给所述授权卡,使得所述授权卡通过所述密钥进行计算后返回第二密文数据;
通过所述读卡器操作控件将所述第二密文数据发送至所述认证卡进行解密,并获取到与所述第一密文数据相对应的第四随机数;
通过所述认证卡对所述第三随机数和所述第四随机数进行比对,若一致,则所述授权卡认证通过。
优选地,所述软件保护客户端,还用于当所述使用时间不在有效期内时,执行远程授权模式;
所述远程授权模式包括:
获取所述待保护软件的所述使用时间和所述权限使用功能;
通过待保护软件调用读卡器操作控件按照第一预置方式根据授权卡对认证卡进行认证,若认证通过,则执行下一步;
通过所述待保护软件再次调用所述读卡器操作控件,按照第二预置方式根据所述认证卡对所述授权卡进行认证,若认证通过,则执行下一步;
通过调用所述读卡器操作控件从所述认证卡中获取密钥并写入所述授权卡中进行授权。
优选地,所述认证卡与所述授权卡均为支持国密SM1算法的智能卡;
所述认证卡插在智能卡读卡器里面的插槽内,存储着系统的密钥,用于认证所述授权卡和对所述授权卡进行发卡操作;
所述授权卡为非接触卡片,用于认证所述认证卡,并对所述待保护软件提供所述使用时间和所述使用权限。
优选地,基于智能卡的软件保护系统还包括:
支持国密SM1算法的数据密码机,与所述软件保护服务器有线连接,用于通过所述软件保护服务器经所述软件保护客户端将所述密钥写入所述认证卡和所述授权卡。
优选地,所述读卡器包含智能卡小卡插槽,用于插入所述认证卡,同时具有接触和非接触功能,用于识别所述授权卡。
从以上技术方案可以看出,本发明实施例具有以下优点:
本发明实施例提供的一种基于智能卡的软件保护方法及系统,其中,基于智能卡的软件保护方法包括:S1:获取到软件保护指令,并通过待保护软件调用读卡器操作控件按照第一预置方式根据授权卡对认证卡进行认证,若认证通过,则执行步骤S2;S2:通过待保护软件再次调用读卡器操作控件,按照第二预置方式根据认证卡对授权卡进行认证,若认证通过,则执行步骤S3;S3:通过待保护软件再次调用读卡器操作控件,读取授权卡中的软件使用权限和使用时间;S4:通过待保护软件根据使用权限确定权限使用功能和权限禁用功能,并确定使用时间在有效期内。本实施例中,通过使用两个智能卡,认证卡和授权卡依次进行软件的使用权限和使用时间的确定,便实现了过程简单的软件保护的功能,且通过使用现有的智能卡便大大降低了软件保护的成本,解决了现有技术的将被保护软件的代码移植到加密锁中进行保护的设计,所导致的过程繁琐,及额外增加的软件保护成本的技术问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
图1为本发明实施例提供的一种基于智能卡的软件保护方法的一个实施例的流程示意图;
图2为本发明实施例提供的一种基于智能卡的软件保护方法的第一预置方式的流程示意图;
图3为本发明实施例提供的一种基于智能卡的软件保护方法的第二预置方式的流程示意图;
图4为本发明实施例提供的一种基于智能卡的软件保护方法的远程授权模式的流程示意图;
图5为本发明实施例提供的一种基于智能卡的软件保护系统的一个实施例的结构示意图;
图6为本发明实施例提供的一种基于智能卡的软件保护系统的另一个实施例的结构示意图。
具体实施方式
本发明实施例提供了一种基于智能卡的软件保护方法及系统,解决了现有技术的将被保护软件的代码移植到加密锁中进行保护的设计,所导致的过程繁琐,及额外增加的软件保护成本的技术问题。
为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
请参阅图1,本发明实施例提供的一种基于智能卡的软件保护方法的一个实施例包括:
S1:获取到软件保护指令,并通过待保护软件调用读卡器操作控件按照第一预置方式根据授权卡对认证卡进行认证,若认证通过,则执行步骤S2;
本实施例中,当需要对软件进行保护的时候,首先获取到软件保护指令,并通过待保护软件调用读卡器操作控件按照第一预置方式根据授权卡对认证卡进行认证,若认证通过,则执行步骤S2,前述的第一预置方式将在后续实施例中进行详细的描述,此处不再赘述。
需要说明的是,前述的读卡器操作控件为嵌入在软件保护客户端浏览器上,随着软件保护客户端自动从软件保护服务器下载到该待保护软件所在的计算机上,供软件保护客户端调用。
S2:通过待保护软件再次调用读卡器操作控件,按照第二预置方式根据认证卡对授权卡进行认证,若认证通过,则执行步骤S3;
当获取到软件保护指令,并通过待保护软件调用读卡器操作控件按照第一预置方式根据授权卡对认证卡进行认证通过之后,通过待保护软件再次调用读卡器操作控件,按照第二预置方式根据认证卡对授权卡进行认证,若认证通过,则执行步骤S3。
需要说明的是,前述的第二预置方式将在后续实施例中进行详细的描述,此处不再赘述。
S3:通过待保护软件再次调用读卡器操作控件,读取授权卡中的软件使用权限和使用时间;
当通过待保护软件再次调用读卡器操作控件,按照第二预置方式根据认证卡对授权卡进行认证通过之后,需要通过待保护软件再次调用读卡器操作控件,读取授权卡中的软件使用权限和使用时间。
S4:通过待保护软件根据使用权限确定权限使用功能和权限禁用功能,并确定使用时间在有效期内。
当通过待保护软件再次调用读卡器操作控件,读取授权卡中的软件使用权限和使用时间之后,需要通过待保护软件根据使用权限确定权限使用功能和权限禁用功能,并确定使用时间在有效期内。
本实施例中,软件保护方法通过基于智能卡的软件保护系统进行使用,该基于智能卡的软件保护系统为客户端/浏览器(B/S)模式,基于智能卡的软件保护系统包括软件保护服务器与软件保护客户端,软件保护服务器与软件保护客户端通过Internet或局域网相连,软件保护客户端以浏览器的方式访问软件保护服务器。
前述的认证卡与授权卡均为支持国密SM1算法的智能卡。
本实施例中,通过使用两个智能卡,认证卡和授权卡依次进行软件的使用权限和使用时间的确定,便实现了过程简单的软件保护的功能,且通过使用现有的智能卡便大大降低了软件保护的成本,解决了现有技术的将被保护软件的代码移植到加密锁中进行保护的设计,所导致的过程繁琐,及额外增加的软件保护成本的技术问题。
上面是对基于智能卡的软件保护方法的过程进行详细的描述,下面将对第一预置方式进行详细的描述,请参阅图2,本发明实施例中的第一预置方式的实施例包括:
201、通过读卡器操作控件调用授权卡产生第一随机数,并将第一随机数保存在授权卡中;
当需要对认证卡进行认证的时候,通过读卡器操作控件调用授权卡产生第一随机数,并将第一随机数保存在授权卡中。
例如读卡器操作控件调用授权卡产生一个随机数A,授权卡临时保存随机数A在卡内。
202、通过读卡器操作控件将第一随机数发送给认证卡,使得认证卡通过密钥进行计算后返回第一密文数据;
当通过读卡器操作控件调用授权卡产生第一随机数,并将第一随机数保存在授权卡中之后,通过读卡器操作控件将第一随机数发送给认证卡,使得认证卡通过密钥进行计算后返回第一密文数据。
例如读卡器操作控件把随机数A发送给认证卡,认证卡用密钥计算随机数并返回密文数据B。
203、通过读卡器操作控件将第一密文数据发送至授权卡进行解密,并获取到与第一密文数据相对应的第二随机数;
当通过读卡器操作控件将第一随机数发送给认证卡,使得认证卡通过密钥进行计算后返回第一密文数据之后,通过读卡器操作控件将第一密文数据发送至授权卡进行解密,并获取到与第一密文数据相对应的第二随机数。
例如读卡器操作控件把密文数据B发送给授权卡,授权卡在卡片内部解密随机数B得到随机数明文C。
204、通过授权卡对第一随机数和第二随机数进行比对,若一致,则认证卡认证通过。
当通过读卡器操作控件将第一密文数据发送至授权卡进行解密,并获取到与第一密文数据相对应的第二随机数之后,通过授权卡对第一随机数和第二随机数进行比对,若一致,则认证卡认证通过,若不一致,则认证卡为非法卡。
例如授权卡在卡片内部比对随机数C和随机数A,若相同则认证卡认证通过,若不同则说明认证卡非法。
本实施例中的密钥由数据密码机提供,数据密码机与软件保护服务器有线相连,采用的是通过国密认证的数据密码机,支持国密SM1算法。数据密码机存储着系统的密钥,其原理为Linux系统服务器端,软件保护服务器作为Linux系统客户端访问。
前述的认证卡为插在读卡器里面的插槽内,存储着系统的密钥,用来认证授权卡和对授权卡发卡,随读卡器一起发放,前述的读卡器与软件保护客户端连接,认证卡的发卡由软件保护客户端调用数据密码机将系统的密钥等数据写入。
上面是对第一预置方式进行详细的描述,下面将对第二预置方式进行详细的描述,请参阅图3,本发明实施例中的第一预置方式的实施例包括:
301、通过读卡器操作控件调用认证卡产生第三随机数,并将第三随机数保存在认证卡中;
当需要对授权卡进行认证的时候,通过读卡器操作控件调用认证卡产生第三随机数,并将第三随机数保存在认证卡中。
例如读卡器操作控件调用认证卡产生一个随机数E,认证卡临时保存随机数E在卡内。
302、通过读卡器操作控件将第三随机数发送给授权卡,使得授权卡通过密钥进行计算后返回第二密文数据;
当通过读卡器操作控件调用认证卡产生第三随机数,并将第三随机数保存在认证卡中之后,通过读卡器操作控件将第三随机数发送给授权卡,使得授权卡通过密钥进行计算后返回第二密文数据。
例如读卡器操作控件把随机数E发送给授权卡,授权卡用密钥计算随机数并返回密文数据F。
303、通过读卡器操作控件将第二密文数据发送至认证卡进行解密,并获取到与第一密文数据相对应的第四随机数;
当通过读卡器操作控件将第三随机数发送给授权卡,使得授权卡通过密钥进行计算后返回第二密文数据之后,通过读卡器操作控件将第二密文数据发送至认证卡进行解密,并获取到与第一密文数据相对应的第四随机数。
例如读卡器操作控件把密文数据F发送给认证卡,认证卡在卡片内部解密随机数F得到随机数明文G。
304、通过认证卡对第三随机数和第四随机数进行比对,若一致,则授权卡认证通过。
当通过读卡器操作控件将第二密文数据发送至认证卡进行解密,并获取到与第一密文数据相对应的第四随机数之后,通过认证卡对第三随机数和第四随机数进行比对,若一致,则授权卡认证通过,若不一致,则授权卡为非法卡。
例如认证卡在卡片内部比对随机数G和随机数E,若相同则授权卡认证通过,若不同则说明授权卡非法。
本实施例中的密钥由数据密码机提供,数据密码机与软件保护服务器有线相连,采用的是通过国密认证的数据密码机,支持国密SM1算法。数据密码机存储着系统的密钥,其原理为Linux系统服务器端,软件保护服务器作为Linux系统客户端访问。
前述的授权卡为正常大小非接触卡片,用来认证认证卡,并对待保护软件提供使用权限认证和使用时间认证。授权卡的发卡由软件客户端调用认证卡将系统的密钥等数据写入。
图2和图3的实施例中的智能卡读卡器包含智能卡小卡插槽,用来插入认证卡,同时具有接触和非接触功能,用来识别授权卡。国密SM1算法为未公开的硬件算法,由国家密码局管理并授权使用,本实施例中所使用的认证卡的发卡、授权卡的发卡、认证卡的认证、授权卡的认证及数据传输过程的加解密均使用了国密SM1算法。
上面是对第二预置方式进行详细的描述,下面将对判断使用时间不在有效期内执行远程授权模式进行详细的描述,请参阅图4,远程授权模式包括:
401、获取待保护软件的使用时间和权限使用功能;
当通过待保护软件根据使用权限确定权限使用功能和权限禁用功能,并判断使用时间是否在有效期内,若是,则待保护软件保护成功,若否,则获取待保护软件的使用时间和权限使用功能。
需要说明的是,远程授权之前需要输入账号和密码登陆软件保护客户端,且认证卡和授权卡都准备就绪。
402、通过待保护软件调用读卡器操作控件按照第一预置方式根据授权卡对认证卡进行认证,若认证通过,则执行步骤403;
当获取待保护软件的使用时间和权限使用功能之后,通过待保护软件调用读卡器操作控件按照图2实施例中的第一预置方式根据授权卡对认证卡进行认证,若认证通过,则执行步骤403。
403、通过待保护软件再次调用读卡器操作控件,按照第二预置方式根据认证卡对授权卡进行认证,若认证通过,则执行步骤404;
当通过待保护软件调用读卡器操作控件按照第一预置方式根据授权卡对认证卡进行认证通过,则通过待保护软件再次调用读卡器操作控件,按照图3中的第二预置方式根据认证卡对授权卡进行认证,若认证通过,则执行步骤404。
404、通过调用读卡器操作控件从认证卡中获取密钥并写入授权卡中进行授权。
当通过待保护软件再次调用读卡器操作控件,按照第二预置方式根据认证卡对授权卡进行认证通过,则通过调用读卡器操作控件从认证卡中获取密钥并写入授权卡中进行授权。
当前述的进行授权失败之后,需要重新确认读卡器是否连接好,认证卡与授权卡是否已准备就绪,并重新启动步骤401至404的远程授权模式。
请参阅图5,本发明实施例提供的一种基于智能卡的软件保护系统的一个实施例包括:
软件保护客户端51、软件保护服务器52和读卡器53,软件保护客户端51分别与软件保护服务器52和读卡器53建立有通信连接关系;
软件保护客户端51,用于通过浏览器模式从软件保护服务器52下载读卡器53操作控件;
读卡器53,用于输入输出数据给认证卡54和授权卡55;
其中,软件保护客户端51获取到软件保护指令,并调用从软件保护服务器52下载的读卡器53操作控件,再按照第一预置方式根据授权卡55对认证卡54进行认证,若认证通过,则软件保护客户端51再次调用读卡器53操作控件,并按照第二预置方式根据认证卡54对授权卡55进行认证,若认证通过,则软件保护客户端51再次调用读卡器53操作控件,并通过读卡器53读取授权卡55中的软件使用权限和使用时间,最后软件保护客户端51根据使用权限确定权限使用功能和权限禁用功能,并确定使用时间在有效期内。
本实施例中,通过使用两个智能卡,认证卡54和授权卡55依次进行软件的使用权限和使用时间的确定,便实现了过程简单的软件保护的功能,且通过使用现有的智能卡便大大降低了软件保护的成本,解决了现有技术的将被保护软件的代码移植到加密锁中进行保护的设计,所导致的过程繁琐,及额外增加的软件保护成本的技术问题。
上面是对基于智能卡的软件保护系统具体结构进行详细的描述,下面将对附加结构进行详细的描述,请参阅图6,本发明实施例提供的一种基于智能卡的软件保护系统的另一个实施例包括:
软件保护客户端61、软件保护服务器62和读卡器63,软件保护客户端61分别与软件保护服务器62和读卡器63建立有通信连接关系;
软件保护客户端61,用于通过浏览器模式从软件保护服务器62下载读卡器63操作控件,前述的读卡器63操作控件为嵌入在软件保护客户端61浏览器上,随着软件保护客户端61自动从软件保护服务器62下载到该待保护软件所在的计算机上,供软件保护客户端61调用;
读卡器63,用于输入输出数据给认证卡64和授权卡65;
其中,软件保护客户端61获取到软件保护指令,并调用从软件保护服务器62下载的读卡器63操作控件,再按照第一预置方式根据授权卡65对认证卡64进行认证,若认证通过,则软件保护客户端61再次调用读卡器63操作控件,并按照第二预置方式根据认证卡64对授权卡65进行认证,若认证通过,则软件保护客户端61再次调用读卡器63操作控件,并通过读卡器63读取授权卡65中的软件使用权限和使用时间,最后软件保护客户端61根据使用权限确定权限使用功能和权限禁用功能,并确定使用时间在有效期内,前述的认证卡64与授权卡65均为支持国密SM1算法的智能卡。
进一步地,前述的第一预置方式包括:
通过读卡器63操作控件调用授权卡65产生第一随机数,并将第一随机数保存在授权卡65中,例如读卡器63操作控件调用授权卡65产生一个随机数A,授权卡65临时保存随机数A在卡内;
通过读卡器63操作控件将第一随机数发送给认证卡64,使得认证卡64通过密钥进行计算后返回第一密文数据,例如读卡器63操作控件把随机数A发送给认证卡64,认证卡64用密钥计算随机数并返回密文数据B;
通过读卡器63操作控件将第一密文数据发送至授权卡65进行解密,并获取到与第一密文数据相对应的第二随机数,例如读卡器63操作控件把密文数据B发送给授权卡65,授权卡65在卡片内部解密随机数B得到随机数明文C;
通过授权卡65对第一随机数和第二随机数进行比对,若一致,则认证卡64认证通过,例如授权卡65在卡片内部比对随机数C和随机数A,若相同则认证卡64认证通过,若不同则说明认证卡64非法。
第二预置方式包括:
通过读卡器63操作控件调用认证卡64产生第三随机数,并将第三随机数保存在认证卡64中,例如读卡器63操作控件调用认证卡64产生一个随机数E,认证卡64临时保存随机数E在卡内;
通过读卡器63操作控件将第三随机数发送给授权卡65,使得授权卡65通过密钥进行计算后返回第二密文数据,例如读卡器63操作控件把随机数E发送给授权卡65,授权卡65用密钥计算随机数并返回密文数据F;
通过读卡器63操作控件将第二密文数据发送至认证卡64进行解密,并获取到与第一密文数据相对应的第四随机数,例如读卡器63操作控件把密文数据F发送给认证卡64,认证卡64在卡片内部解密随机数F得到随机数明文G;
通过认证卡64对第三随机数和第四随机数进行比对,若一致,则授权卡65认证通过,例如认证卡64在卡片内部比对随机数G和随机数E,若相同则授权卡65认证通过,若不同则说明授权卡65非法。
前述的软件保护客户端61,还用于当使用时间不在有效期内时,执行远程授权模式;
远程授权模式包括:获取待保护软件的使用时间和权限使用功能,通过待保护软件调用读卡器63操作控件按照第一预置方式根据授权卡65对认证卡64进行认证,若认证通过,则通过待保护软件再次调用读卡器63操作控件,按照第二预置方式根据认证卡64对授权卡65进行认证,若认证通过,则通过调用读卡器63操作控件从认证卡64中获取密钥并写入授权卡65中进行授权。
基于智能卡的软件保护系统进一步还包括:
支持国密SM1算法的数据密码机66,与软件保护服务器62有线连接,用于通过软件保护服务器62经软件保护客户端61将密钥写入认证卡64和授权卡65,数据密码机66采用的是通过国密认证的数据密码机66,支持国密SM1算法。数据密码机66存储着系统的密钥,其原理为Linux系统服务器端,软件保护服务器62作为Linux系统客户端访问。
前述的读卡器63包含智能卡小卡插槽,用于插入认证卡64,同时具有接触和非接触功能,用于识别授权卡65。
本实施例中,软件保护方法通过基于智能卡的软件保护系统进行使用,该基于智能卡的软件保护系统为客户端/浏览器(B/S)模式,基于智能卡的软件保护系统包括软件保护服务器62与软件保护客户端61,软件保护服务器62与软件保护客户端61通过Internet或局域网相连,软件保护客户端61以浏览器的方式访问软件保护服务器62,本实施例中所使用的认证卡64的发卡、授权卡65的发卡、认证卡64的认证、授权卡65的认证及数据传输过程的加解密均使用了国密SM1算法。
本实施例中,通过使用两个智能卡,认证卡64和授权卡65依次进行软件的使用权限和使用时间的确定,便实现了过程简单的软件保护的功能,且通过使用现有的智能卡便大大降低了软件保护的成本,解决了现有技术的将被保护软件的代码移植到加密锁中进行保护的设计,所导致的过程繁琐,及额外增加的软件保护成本的技术问题。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (5)
1.一种基于智能卡的软件保护方法,其特征在于,包括:
S1:获取到软件保护指令,并通过待保护软件调用读卡器操作控件按照第一预置方式根据授权卡对认证卡进行认证,若认证通过,则执行步骤S2;
S2:通过所述待保护软件再次调用所述读卡器操作控件,按照第二预置方式根据所述认证卡对所述授权卡进行认证,若认证通过,则执行步骤S3;
S3:通过所述待保护软件再次调用所述读卡器操作控件,读取所述授权卡中的软件使用权限和使用时间;
S4:通过所述待保护软件根据所述使用权限确定权限使用功能和权限禁用功能,并确定所述使用时间在有效期内;
所述第一预置方式包括:
通过所述读卡器操作控件调用所述授权卡产生第一随机数,并将所述第一随机数保存在所述授权卡中;
通过所述读卡器操作控件将所述第一随机数发送给所述认证卡,使得所述认证卡通过密钥进行计算后返回第一密文数据;
通过所述读卡器操作控件将所述第一密文数据发送至所述授权卡进行解密,并获取到与所述第一密文数据相对应的第二随机数;
通过所述授权卡对所述第一随机数和所述第二随机数进行比对,若一致,则所述认证卡认证通过;
所述第二预置方式包括:
通过所述读卡器操作控件调用所述认证卡产生第三随机数,并将所述第三随机数保存在所述认证卡中;
通过所述读卡器操作控件将所述第三随机数发送给所述授权卡,使得所述授权卡通过密钥进行计算后返回第二密文数据;
通过所述读卡器操作控件将所述第二密文数据发送至所述认证卡进行解密,并获取到与所述第一密文数据相对应的第四随机数;
通过所述认证卡对所述第三随机数和所述第四随机数进行比对,若一致,则所述授权卡认证通过;所述S4具体包括:
通过所述待保护软件根据所述使用权限确定权限使用功能和权限禁用功能,并判断所述使用时间是否在有效期内,若是,则所述待保护软件保护成功,若否,则执行远程授权模式;
所述远程授权模式包括:
获取所述待保护软件的所述使用时间和所述权限使用功能;
通过待保护软件调用读卡器操作控件按照第一预置方式根据授权卡对认证卡进行认证,若认证通过,则执行下一步;
通过所述待保护软件再次调用所述读卡器操作控件,按照第二预置方式根据所述认证卡对所述授权卡进行认证,若认证通过,则执行下一步;
通过调用所述读卡器操作控件从所述认证卡中获取密钥并写入所述授权卡中进行授权。
2.一种基于智能卡的软件保护系统,其特征在于,包括:
软件保护客户端、软件保护服务器和读卡器,所述软件保护客户端分别与所述软件保护服务器和所述读卡器建立有通信连接关系;
所述软件保护客户端,用于通过浏览器模式从所述软件保护服务器下载读卡器操作控件;
所述读卡器,用于输入输出数据给认证卡和授权卡;
其中,所述软件保护客户端获取到软件保护指令,并调用从所述软件保护服务器下载的所述读卡器操作控件,再按照第一预置方式根据授权卡对认证卡进行认证,若认证通过,则所述软件保护客户端再次调用所述读卡器操作控件,并按照第二预置方式根据所述认证卡对所述授权卡进行认证,若认证通过,则所述软件保护客户端再次调用所述读卡器操作控件,并通过所述读卡器读取所述授权卡中的软件使用权限和使用时间,最后所述软件保护客户端根据所述使用权限确定权限使用功能和权限禁用功能,并确定所述使用时间在有效期内;
所述第一预置方式包括:
通过所述读卡器操作控件调用所述授权卡产生第一随机数,并将所述第一随机数保存在所述授权卡中;
通过所述读卡器操作控件将所述第一随机数发送给所述认证卡,使得所述认证卡通过密钥进行计算后返回第一密文数据;
通过所述读卡器操作控件将所述第一密文数据发送至所述授权卡进行解密,并获取到与所述第一密文数据相对应的第二随机数;
通过所述授权卡对所述第一随机数和所述第二随机数进行比对,若一致,则所述认证卡认证通过;
所述第二预置方式包括:
通过所述读卡器操作控件调用所述认证卡产生第三随机数,并将所述第三随机数保存在所述认证卡中;
通过所述读卡器操作控件将所述第三随机数发送给所述授权卡,使得所述授权卡通过所述密钥进行计算后返回第二密文数据;
通过所述读卡器操作控件将所述第二密文数据发送至所述认证卡进行解密,并获取到与所述第一密文数据相对应的第四随机数;
通过所述认证卡对所述第三随机数和所述第四随机数进行比对,若一致,则所述授权卡认证通过;
所述软件保护客户端,还用于当所述使用时间不在有效期内时,执行远程授权模式;
所述远程授权模式包括:
获取待保护软件的所述使用时间和所述权限使用功能;
通过待保护软件调用读卡器操作控件按照第一预置方式根据授权卡对认证卡进行认证,若认证通过,则执行下一步;
通过所述待保护软件再次调用所述读卡器操作控件,按照第二预置方式根据所述认证卡对所述授权卡进行认证,若认证通过,则执行下一步;
通过调用所述读卡器操作控件从所述认证卡中获取密钥并写入所述授权卡中进行授权。
3.根据权利要求2所述的基于智能卡的软件保护系统,其特征在于,所述认证卡与所述授权卡均为支持国密SM1算法的智能卡;
所述认证卡插在智能卡读卡器里面的插槽内,存储着系统的密钥,用于认证所述授权卡和对所述授权卡进行发卡操作;
所述授权卡为非接触卡片,用于认证所述认证卡,并对所述待保护软件提供所述使用时间和所述使用权限。
4.根据权利要求2所述的基于智能卡的软件保护系统,其特征在于,基于智能卡的软件保护系统还包括:
支持国密SM1算法的数据密码机,与所述软件保护服务器有线连接,用于通过所述软件保护服务器经所述软件保护客户端将所述密钥写入所述认证卡和所述授权卡。
5.根据权利要求4所述的基于智能卡的软件保护系统,其特征在于,
所述读卡器包含智能卡小卡插槽,用于插入所述认证卡,同时具有接触和非接触功能,用于识别所述授权卡。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510268522.4A CN104850764B (zh) | 2015-05-22 | 2015-05-22 | 一种基于智能卡的软件保护方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510268522.4A CN104850764B (zh) | 2015-05-22 | 2015-05-22 | 一种基于智能卡的软件保护方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104850764A CN104850764A (zh) | 2015-08-19 |
CN104850764B true CN104850764B (zh) | 2018-09-11 |
Family
ID=53850404
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510268522.4A Active CN104850764B (zh) | 2015-05-22 | 2015-05-22 | 一种基于智能卡的软件保护方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104850764B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107392001B (zh) * | 2016-09-09 | 2020-03-24 | 天地融科技股份有限公司 | 一种授权方法、系统及卡片 |
CN107346383B (zh) * | 2016-09-09 | 2019-12-10 | 天地融科技股份有限公司 | 一种授权方法及系统 |
CN107247891B (zh) * | 2017-04-20 | 2020-02-28 | 江苏林洋能源股份有限公司 | 一种采用混合加密算法实现对软件发放控制的方法 |
CN110210187A (zh) * | 2019-04-24 | 2019-09-06 | 西安中力科技有限公司 | 具备防仿冒的app应用鉴权方法 |
JP7354713B2 (ja) * | 2019-09-19 | 2023-10-03 | 富士フイルムビジネスイノベーション株式会社 | 情報処理装置及びプログラム |
CN115795438B (zh) * | 2022-12-20 | 2024-10-01 | 东信和平科技股份有限公司 | 应用程序授权的方法、系统及可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101494542A (zh) * | 2009-02-13 | 2009-07-29 | 四川长虹电器股份有限公司 | 在多媒体装置和智能卡之间进行认证的方法 |
CN103178955A (zh) * | 2011-12-23 | 2013-06-26 | 华为终端有限公司 | 一种认证方法、设备和系统 |
CN103914913A (zh) * | 2012-12-28 | 2014-07-09 | 北京握奇数据系统有限公司 | 一种智能卡应用场景识别方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AT503263A2 (de) * | 2006-02-27 | 2007-09-15 | Bdc Edv Consulting Gmbh | Vorrichtung zur erstellung digitaler signaturen |
-
2015
- 2015-05-22 CN CN201510268522.4A patent/CN104850764B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101494542A (zh) * | 2009-02-13 | 2009-07-29 | 四川长虹电器股份有限公司 | 在多媒体装置和智能卡之间进行认证的方法 |
CN103178955A (zh) * | 2011-12-23 | 2013-06-26 | 华为终端有限公司 | 一种认证方法、设备和系统 |
CN103914913A (zh) * | 2012-12-28 | 2014-07-09 | 北京握奇数据系统有限公司 | 一种智能卡应用场景识别方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN104850764A (zh) | 2015-08-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104850764B (zh) | 一种基于智能卡的软件保护方法及系统 | |
CN105391840B (zh) | 自动创建目标应用程序 | |
CN100421102C (zh) | 便携式存储装置和使用该便携式存储装置的内容管理方法 | |
CN101562040B (zh) | 高安全性移动存储器的数据处理方法 | |
US6749115B2 (en) | Dual processor trusted computing environment | |
CN104794388B (zh) | 应用程序存取保护方法及应用程序存取保护装置 | |
CN103839011B (zh) | 涉密文件的保护方法及装置 | |
CN106533660B (zh) | 智能卡密钥的获取方法及装置 | |
CN109344598A (zh) | 设备间的绑定及权限控制方法、装置、设备及存储介质 | |
CN105612715A (zh) | 具有可配置访问控制的安全处理单元 | |
CN105247833B (zh) | 自认证设备与方法 | |
CN109086578A (zh) | 一种软件授权使用的方法、设备及存储介质 | |
CN101419557A (zh) | 一种程序下载控制方法 | |
CN108090366A (zh) | 数据保护方法及装置、计算机装置及可读存储介质 | |
CN109977039A (zh) | 硬盘加密密钥存储方法、装置、设备及可读存储介质 | |
CN109214221A (zh) | 一种身份证阅读器验证方法、上位机和身份证阅读器 | |
CN201185082Y (zh) | 高安全性移动存储器 | |
CN104537282A (zh) | 一种基于加密闪盘和大数据运算技术的授权使用方法 | |
CN106156607A (zh) | 一种SElinux安全访问方法和POS终端 | |
CN101286846B (zh) | 交互式身份认证方法 | |
US8423797B2 (en) | Initialization of a chip card | |
CN110431803A (zh) | 基于身份信息管理加密密钥 | |
CN105320868B (zh) | 应用程序的加密方法及移动终端 | |
CN102937907B (zh) | 利用sd卡片进行授权软体安装更新使用的方法 | |
CN107566126A (zh) | 一种身份验证方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |