CN101281575A - 一种软件保护方法 - Google Patents
一种软件保护方法 Download PDFInfo
- Publication number
- CN101281575A CN101281575A CNA2008101065671A CN200810106567A CN101281575A CN 101281575 A CN101281575 A CN 101281575A CN A2008101065671 A CNA2008101065671 A CN A2008101065671A CN 200810106567 A CN200810106567 A CN 200810106567A CN 101281575 A CN101281575 A CN 101281575A
- Authority
- CN
- China
- Prior art keywords
- software
- protecting equipment
- software protecting
- private key
- crack
- 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
Images
Abstract
本发明公开了一种基于非对称算法的软件保护方法,其原理在于:受保护软件使用非对称算法验证软件保护装置的合法性,鉴别伪造软件保护装置的行为。本发明将身份认证领域广泛应用的、且已经经过时间检验被证明是安全有效的认证算法用于软件对软件保护装置的验证过程,彻底解决伪造软件保护装置的问题。
Description
技术领域
本发明涉及软件保护技术,特别涉及一种基于软件保护装置的软件保护方法。
背景技术
使用软件保护装置是实现软件安全保护和版权保护的主要手段。软件保护装置特指一种附加在计算机接口(比如,USB接口、串口、并口等接口)上的硬件设备,对运行在计算机上的特定的软件进行软件安全保护和版权保护。
作为当前软件安全保护和版权保护方面最有效的技术手段之一,软件保护装置在促进软件行业的健康发展方面起了非常大的作用,但也因此成为盗版者重点攻击的对象。事实上,从软件保护装置诞生的那一天开始,盗版者与软件厂商之间的战场就开始从软件转移到软件保护装置上了。在众多的攻击手段中,复制和伪造软件保护装置是一种危害极大的行为,这将使软件保护体系崩溃,软件厂商因此不能识别合法的客户,购买产品的客户不能知道自己使用的产品是否为正版,因此这是绝对不可以接受的盗版行为。
软件保护装置实现保护的原理是将软件所必须的内容实现放置在装置中,软件运行时通过计算机接口访问设备,获得继续运行所需要的信息,因此,软件保护装置内放置的内容的安全是保护软件的关键,不断增加硬件的安全性是软件保护装置进步的主要方向,从最早的EEPROM到固定算法MCU,再到可变算法MCU为基础的软件保护装置时代,其硬件攻击成本是不断增加的,特别是现在基于智能卡的软件保护装置,其硬件攻击的成本已经远远超过盗版软件所能带来的利润,猖獗一时的直接克隆硬件的手段在智能卡产品时代已经逐渐销声匿迹了。
然而,软件保护装置与软件之间通信的部分却是一个薄弱的环节,盗版者可以通过软件保护装置的API、驱动、甚至是侦听物理总线,获得软件保护装置与软件之间通信的数据,分析出软件保护装置内部被保护的数据和功能,从而有针对的伪造出一个功能相同的软件保护装置。虽然现在可以通过移植软件代码等手段提高分析的难度,甚至可以达到无法分析的难度,但是由于移植代码的技术难度高、受软件本身限制等客观原因影响,能够实施这种手段的软件毕竟是少数,对于多数软件来说,由于通信数据的复杂度有限,仍然存在很大的风险。
发明内容
有鉴于此,本发明提出一种有效防范软件保护装置被伪造的方法,在软件中利用非对称算法对软件保护装置进行合法性认证,由于非对称算法的安全性已经在理论和实践中得到无数次检验,因此采用这种认证方法后,伪造软件保护装置已经是技术上不可行的了。
非对称密钥算法是指一个加密算法的加密密钥和解密密钥是不一样的,这两个密钥其中一个称为公钥,用于加密,是公开的;另一个称为私钥,用于解密,是保密的。其中由公钥计算私钥是计算上不可行的。由于有这种特性,非对称算法在网上银行、电子商务等高度注重安全的领域得到广泛的应用,本发明将这种算法应用范围扩展到对软件保护装置合法性的识别上,解决伪造软件保护装置的问题。
参见图1,根据本发明的一个方面,提供一种软件保护方法,其特征在于,该方法包括步骤:
A、利用非对称算法生成一对公钥和私钥;
B、在受保护软件中保存公钥,在软件保护装置中保存私钥;
C、受保护软件使用其中保存的公钥验证软件保护装置中是否持有对应的私钥;
D、如果验证出软件保护装置中持有对应的私钥,则确定软件保护装置合法;否则,确定软件保护装置不合法。
根据本发明的一个方面,其特征还在于,所述步骤C中的验证还包括步骤:
(1)受保护软件发送验证数据给软件保护装置;
(2)软件保护装置对验证数据进行计算,将响应数据返回给受保护软件;
(3)受保护软件对软件保护装置返回的响应数据进行验证。
根据本发明的一个方面,其特征还在于,所述验证方式为挑战/响应(Challenge/Response)方式。
根据本发明的一个方面,其特征还在于,所述验证方式为数字签名验证方式。
根据本发明的一个方面,其特征还在于,所述软件保护装置内部可编程。
根据本发明的一个方面,其特征还在于,所述软件保护装置支持RSA非对称算法。
根据本发明的一个方面,其特征还在于,所述验证数据是随机数。
根据本发明的一个方面,其特征还在于,所述软件保护装置为北京深思洛克数据保护中心的精锐IV高强度智能卡加密锁。
根据本发明的一个方面,其特征还在于,所述软件保护装置为北京深思洛克数据保护中心的精锐E高强度智能卡加密锁。
根据本发明的一个方面,其特征还在于,采用的非对称算法为RSA或ECC公开密钥体系算法。
附图说明
图1是本发明的方法流程示意图。
图2是本发明中进行验证的流程示意图。
具体实施方式
为使本发明所述方法更容易被理解,下面参考图2通过具体实施例来进行说明。
实施例一:
本实施例所述软件保护装置为北京深思洛克数据保护中心的精锐IV产品,精锐IV是国内首款智能卡加密锁,其主要原理是在智能卡内为数据和代码执行提供一个高度安全的、不可跟踪的环境,有效的对抗软件盗版行为,其内部可提供最大64K的存储空间,以文件方式组织,用于存储需要保密的代码和数据,并可以在内部执行文件中保存的代码,同时,精锐IV支持1024bit RSA非对称算法的密钥存储和运算,适合应用于本发明所述方法。
本实施例所用非对称算法为1024bit RSA算法。
本实施例所用软件为Visual C++6.0开发的控制台程序。
实施步骤如下:
1.利用精锐IV SDK中提供的开发测试工具生成一对1024bit RSA公私钥对,保存为公钥文件KEY.PUB和私钥文件KEY.PRI;
2.将KEY.PUB转换为C语言格式的字节常数定义,并加入到软件的源代码中;
3.精锐IV内部创建私钥文件0001,将KEY.PRI写入0001文件中;
4.在精锐IV内部建立可执行文件0002,并编写相应代码,以完成数据接收、使用0001文件中的私钥进行数字签名,和发送响应数据的功能;
5.软件产生若干字节的随机数,并发送给精锐IV的0002可执行文件处理;
6.精锐IV内的0002文件使用0001文件中的私钥对软件发来的数据进行RSA数字签名操作,并将结果返回;
7.软件调用RSA算法库,利用步骤2中保存的公钥数据对精锐IV返回的签名结果进行验证。验证通过,则认为精锐IV持有对应的私钥,为合法设备;
8.软件中可重复5-7步骤,进行多次认证。
实施例二:
本实施例所述软件保护装置为北京深思洛克数据保护中心的精锐E产品,精锐E产品的原理也在智能卡内为数据和代码执行提供一个高度安全的、不可跟踪的环境,有效的对抗软件盗版行为,其内部可提供最大32K的代码和数据存储空间,以代码和数据混合的模块方式组织,支持内部执行代码,并支持1024bit RSA非对称算法的密钥存储和运算,适合应用于本发明所述方法。
本实施例所用非对称算法为1024bit RSA算法。
本实施例所用软件为Visual C++6.0开发的控制台程序。
实施步骤如下:
1.利用精锐E SDK中提供的开发测试工具生成一对1024bit RSA公私钥对,保存为公钥文件KEY.PUB和私钥文件KEY.PRI;
2.将KEY.PUB转换为C语言格式的字节常数定义,并加入到软件的源代码中;
3.在精锐E内部建立可执行模块M1,将KEY.PRI加入到模块的数据区,并编写代码处理设备验证请求,以完成数据接收、使用数据区中的私钥进行数字签名,和发送响应数据的功能;
4.软件产生若干字节的随机数,并使用步骤3中定义的公钥,调用RSA算法库加密,将加密结果发送给精锐E的M1模块处理;
5.精锐E内的M1模块对软件发来的数据进行RSA解密操作,并将结果返回;
6.软件比较步骤4产生的随机数和步骤5返回的设备响应,如果相同,则认为精锐IV持有对应的私钥,为合法设备;
7.软件中可重复4-6步骤。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换以及改进等,均应包含在本发明的保护范围之内。
Claims (10)
1、一种软件保护方法,其特征在于,该方法包括步骤:
A、利用非对称算法生成一对公钥和私钥;
B、在受保护软件中保存公钥,在软件保护装置中保存私钥;
C、受保护软件使用其中保存的公钥验证软件保护装置中是否持有对应的私钥;
D、如果验证出软件保护装置中持有对应的私钥,则确定软件保护装置合法;否则,确定软件保护装置不合法。
2、根据权利要求1所述的方法,其特征在于,所述步骤C中的验证还包括步骤:
(1)受保护软件发送验证数据给软件保护装置;
(2)软件保护装置对验证数据进行计算,将响应数据返回给受保护软件;
(3)受保护软件对软件保护装置返回的响应数据进行验证。
3、根据权利要求2所述的方法,其特征在于,所述验证方式为挑战/响应(Challenge/Response)方式。
4、根据权利要求2所述的方法,其特征在于,所述验证方式为数字签名验证方式。
5、根据权利要求1-4所述任一方法,其特征在于,所述软件保护装置内部可编程。
6、根据权利要求5所述的方法,其特征在于,所述软件保护装置支持RSA非对称算法。
7、根据权利要求5所述的方法,其特征在于,所述验证数据是随机数。
8、根据权利要求5所述的方法,其特征在于,所述软件保护装置为北京深思洛克数据保护中心的精锐IV高强度智能卡加密锁。
9、根据权利要求5所述的方法,其特征在于,所述软件保护装置为北京深思洛克数据保护中心的精锐E高强度智能卡加密锁。
10、根据权利要求1-9所述的任一方法,其特征在于,采用的非对称算法为RSA或ECC公开密钥体系算法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2008101065671A CN101281575A (zh) | 2008-05-14 | 2008-05-14 | 一种软件保护方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2008101065671A CN101281575A (zh) | 2008-05-14 | 2008-05-14 | 一种软件保护方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101281575A true CN101281575A (zh) | 2008-10-08 |
Family
ID=40014038
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2008101065671A Pending CN101281575A (zh) | 2008-05-14 | 2008-05-14 | 一种软件保护方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101281575A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101571900B (zh) * | 2009-06-01 | 2011-01-19 | 薛明 | 一种软件版权保护方法、设备和系统 |
CN102012984A (zh) * | 2010-11-19 | 2011-04-13 | 中兴通讯股份有限公司 | 移动终端密钥的更新方法及移动终端 |
CN103020493A (zh) * | 2012-12-28 | 2013-04-03 | 杭州晟元芯片技术有限公司 | 一种防拷贝的软件保护与运行装置及方法 |
CN103124256A (zh) * | 2011-11-21 | 2013-05-29 | 国民技术股份有限公司 | 可信密码模块及可信计算方法 |
CN104899480A (zh) * | 2015-05-05 | 2015-09-09 | 易兴旺 | 一种基于cpk标识认证技术的软件版权保护管理方法 |
CN105787303A (zh) * | 2016-03-22 | 2016-07-20 | 深圳森格瑞通信有限公司 | 一种嵌入式系统软件知识产权保护方法及保护系统 |
CN108418833A (zh) * | 2018-03-23 | 2018-08-17 | 中科创达软件股份有限公司 | 一种软件的管理方法、云端服务器和终端 |
CN109104361A (zh) * | 2018-09-21 | 2018-12-28 | 北京达佳互联信息技术有限公司 | 即时通信方法、装置、电子设备及存储介质 |
CN111222119A (zh) * | 2019-12-27 | 2020-06-02 | 武汉船舶通信研究所(中国船舶重工集团公司第七二二研究所) | 转储分析终端及机车运行数据的安全转储分析方法 |
-
2008
- 2008-05-14 CN CNA2008101065671A patent/CN101281575A/zh active Pending
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101571900B (zh) * | 2009-06-01 | 2011-01-19 | 薛明 | 一种软件版权保护方法、设备和系统 |
CN102012984A (zh) * | 2010-11-19 | 2011-04-13 | 中兴通讯股份有限公司 | 移动终端密钥的更新方法及移动终端 |
CN103124256B (zh) * | 2011-11-21 | 2017-03-29 | 国民技术股份有限公司 | 可信密码模块及可信计算方法 |
CN103124256A (zh) * | 2011-11-21 | 2013-05-29 | 国民技术股份有限公司 | 可信密码模块及可信计算方法 |
CN103020493A (zh) * | 2012-12-28 | 2013-04-03 | 杭州晟元芯片技术有限公司 | 一种防拷贝的软件保护与运行装置及方法 |
CN104899480A (zh) * | 2015-05-05 | 2015-09-09 | 易兴旺 | 一种基于cpk标识认证技术的软件版权保护管理方法 |
CN105787303A (zh) * | 2016-03-22 | 2016-07-20 | 深圳森格瑞通信有限公司 | 一种嵌入式系统软件知识产权保护方法及保护系统 |
CN105787303B (zh) * | 2016-03-22 | 2019-10-11 | 深圳森格瑞通信有限公司 | 一种嵌入式系统软件知识产权保护方法及保护系统 |
CN108418833A (zh) * | 2018-03-23 | 2018-08-17 | 中科创达软件股份有限公司 | 一种软件的管理方法、云端服务器和终端 |
CN108418833B (zh) * | 2018-03-23 | 2022-01-07 | 中科创达软件股份有限公司 | 一种软件的管理方法、云端服务器和终端 |
CN109104361A (zh) * | 2018-09-21 | 2018-12-28 | 北京达佳互联信息技术有限公司 | 即时通信方法、装置、电子设备及存储介质 |
CN109104361B (zh) * | 2018-09-21 | 2021-07-13 | 北京达佳互联信息技术有限公司 | 即时通信方法、装置、电子设备及存储介质 |
CN111222119A (zh) * | 2019-12-27 | 2020-06-02 | 武汉船舶通信研究所(中国船舶重工集团公司第七二二研究所) | 转储分析终端及机车运行数据的安全转储分析方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101281575A (zh) | 一种软件保护方法 | |
Dunn et al. | Cloaking malware with the trusted platform module | |
US9953166B2 (en) | Method for securely booting target processor in target system using a secure root of trust to verify a returned message authentication code recreated by the target processor | |
Owusu et al. | OASIS: On achieving a sanctuary for integrity and secrecy on untrusted platforms | |
CN101369889B (zh) | 一种对文档进行电子签名的方法 | |
Wang et al. | Enabling security-enhanced attestation with Intel SGX for remote terminal and IoT | |
KR100670005B1 (ko) | 모바일 플랫폼을 위한 메모리의 무결성을 원격으로 확인하는 확인장치 및 그 시스템 그리고 무결성 확인 방법 | |
US10797868B2 (en) | Shared secret establishment | |
CN101494541B (zh) | 一种实现对pin码进行安全保护的系统及方法 | |
US9443068B2 (en) | System and method for preventing unauthorized access to information | |
CN103221957A (zh) | 利用基于硬件的安全引擎的安全软件许可和供应 | |
CN106295404B (zh) | 基于安全内核的一体化soc芯片 | |
CN101588245A (zh) | 一种身份认证的方法、系统及存储设备 | |
JP6387908B2 (ja) | 認証システム | |
CN105099705A (zh) | 一种基于usb协议的安全通信方法及其系统 | |
CN105468940A (zh) | 软件保护方法及装置 | |
JP3749640B2 (ja) | Icカード利用装置、icカード及び記憶媒体 | |
US20090235083A1 (en) | System and method for preventing unauthorized access to information | |
Kim et al. | Vulnerability to flash controller for secure usb drives. | |
WO2009090505A1 (en) | Secure data utilization | |
CN116881936A (zh) | 可信计算方法及相关设备 | |
JP6203556B2 (ja) | 情報処理システム | |
KR100734600B1 (ko) | 변조방지 하드웨어에 기반한 자가 무결성 검증 기법을이용한 시스템 인증 및 보안성 강화 방법 | |
CN108242997A (zh) | 安全通信的方法与设备 | |
CN105427478B (zh) | 一种atm机鉴伪仪主板程序安全处理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20081008 |