CN107832589B - 软件版权保护方法及其系统 - Google Patents
软件版权保护方法及其系统 Download PDFInfo
- Publication number
- CN107832589B CN107832589B CN201711228764.6A CN201711228764A CN107832589B CN 107832589 B CN107832589 B CN 107832589B CN 201711228764 A CN201711228764 A CN 201711228764A CN 107832589 B CN107832589 B CN 107832589B
- Authority
- CN
- China
- Prior art keywords
- software
- protected software
- certificate
- digital certificate
- protected
- 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 35
- VBMOHECZZWVLFJ-GXTUVTBFSA-N (2s)-2-[[(2s)-6-amino-2-[[(2s)-6-amino-2-[[(2s,3r)-2-[[(2s,3r)-2-[[(2s)-6-amino-2-[[(2s)-2-[[(2s)-6-amino-2-[[(2s)-2-[[(2s)-2-[[(2s)-2,6-diaminohexanoyl]amino]-5-(diaminomethylideneamino)pentanoyl]amino]propanoyl]amino]hexanoyl]amino]propanoyl]amino]hexan Chemical compound NC(N)=NCCC[C@@H](C(O)=O)NC(=O)[C@H](CCCCN)NC(=O)[C@H](CCCCN)NC(=O)[C@H]([C@@H](C)O)NC(=O)[C@H]([C@H](O)C)NC(=O)[C@H](CCCCN)NC(=O)[C@H](C)NC(=O)[C@H](CCCCN)NC(=O)[C@H](C)NC(=O)[C@H](CCCN=C(N)N)NC(=O)[C@@H](N)CCCCN VBMOHECZZWVLFJ-GXTUVTBFSA-N 0.000 claims 1
- 108010068904 lysyl-arginyl-alanyl-lysyl-alanyl-lysyl-threonyl-threonyl-lysyl-lysyl-arginine Proteins 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 8
- 238000012795 verification Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 4
- 238000009434 installation Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000007547 defect Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000004377 microelectronic Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 230000004044 response Effects 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
- G06F21/123—Restricting unauthorised execution of programs by using dedicated hardware, e.g. dongles, smart cards, cryptographic processors, global positioning systems [GPS] devices
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
- H04L9/3249—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using RSA or related signature schemes, e.g. Rabin scheme
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3263—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/60—Digital content management, e.g. content distribution
- H04L2209/603—Digital right managament [DRM]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Theoretical Computer Science (AREA)
- Technology Law (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Remote Sensing (AREA)
- Radar, Positioning & Navigation (AREA)
- Storage Device Security (AREA)
Abstract
本发明提供一种软件版权保护方法及其系统,方法包括:当被保护软件于一终端设备上打开时,检测终端设备是否通过硬件接口连接一密码设备,密码设备储存有密钥对及数字证书,数字证书至少包括与密钥对的第一公钥相同的第二公钥及CA的签名;若是,则被保护软件读取数字证书;被保护软件内置的根证书验证数字证书的签名是否有效,根证书内嵌在被保护软件的代码中;若是,则被保护软件生成一随机数,并发送给密码设备;密码设备通过储存的私钥对随机数进行签名,并将签名结果返回至被保护软件;被保护软件通过所读取的数字证书中的第二公钥对签名结果进行验证。本发明提供的软件版权保护方法及其系统提高软件保护的可靠性。
Description
技术领域
本发明涉及计算机软件保护领域,尤其涉及一种软件版权保护方法及其系统。
背景技术
计算机软件由于很容易被复制,软件盗版屡禁不绝,因此软件版权保护是很多软件厂商非常关注的问题。目前使用的软件版权保护一般有以下几种方法:
(1)使用软件序列号或注册码:就是在软件安装或运行的过程中必须要输入由字母、数字或其它字符所组成的序列,软件通过判断该序列是否合法来决定是否继续安装或运行。这是一种最原始的软件版权保护方式,实现简单,但只要知道序列号或注册码,就很容易被拷贝并安装到其他的计算机上进行安装和运行。
(2)绑定硬件信息的注册码或许可证:软件在安装之前会搜集计算机的硬件信息,比如CPU ID(中央处理器的身份标识号)、网卡MAC地址(即媒体访问控制,或称为物理地址,用来定义网络设备的位置。MAC地址是网卡决定的,是固定的)、硬盘ID,等等,然后根据这些硬件信息产生软件注册码或许可证,安装或运行时必须导入该注册码或许可证软件才能正常运行。这是目前一种比较流行的方式,但实际使用过程中存在以下问题:
a)用户有时可能要把软件安装到另外一台计算机上使用(比如计算机报废更新);
b)计算机里面的部件有可能因为损坏需要更换(比如更换CPU、网卡、硬盘等);
c)网卡MAC地址很容易被修改或采用MAC欺骗软件可以模拟任意的MAC地址;
d)通过修改操作系统内核、更改驱动或动态链接库等手段,可以模拟伪造CPU ID等硬件信息。
(3)采用软件加密狗等硬件设备:软件通过在运行过程中读取加密狗中的数据来判断软件是否合法,或者干脆将部分关键代码保存到加密狗中。加密狗可以在不同的计算机上使用,极大地方便了软件的使用。但采用加密狗方式也存在以下问题:
a)目前软件加密狗没有统一的标准,加密狗中采用何种保密机制对于软件开发者来说是一个黑盒,从而对加密狗的安全性存在疑虑。有些加密狗很容易被复制,有些加密狗可以通过SoftICE等Debug工具调试跟踪解密,有些加密狗可以通过编写拦截程序修改软件和加密狗之间的通讯来破解。另外,软件会不会很容易被加密狗厂家自己破解也是一个疑问。
b)很多软件加密狗提供动态链接库形式的API,而API文档是开放的,破解者很容易伪造一个接口一样的API替换厂家的动态链接库,跳过加密狗校验机制,从而使软件不需要加密狗就能正常运行。
c)有些加密狗厂家提供外壳加密方法,也就是开发者不需要修改软件,只要用加密狗厂家的加壳程序对原有程序进行加壳保护就可以达到版权保护的目的。但外壳加密的方法因为保护方法固定,加密的外壳与应用代码结合比较松散,所以也比较容易被分离外壳从而被破解。
d)因为软件加密狗没有统一的标准,软件厂商只能绑定某一家软件加密狗,否则更换加密狗厂家就要重新修改软件,这个也不是软件厂商愿意的事情。
发明内容
本发明为了克服上述现有技术存在的缺陷,提供一种软件版权保护方法及其系统,以提高软件保护的可靠性。
根据本发明的一个方面,提供一种软件版权保护方法,包括:
当被保护软件于一终端设备上打开时,检测所述终端设备是否通过硬件接口连接一密码设备,所述密码设备储存有密钥对及数字证书,所述密钥对包括一私钥及一第一公钥,所述数字证书至少包括一第二公钥及所述被保护软件关联的CA认证中心服务器对所述数字证书的签名,第一公钥与第二公钥相同;
若是,则所述被保护软件读取所述密码设备中储存的数字证书;
所述被保护软件内置的所述CA认证中心服务器的根证书验证所述数字证书的签名是否有效,其中,所述根证书内嵌在所述被保护软件的代码中,并且所述根证书与所述被保护软件的代码一起经编译以生成所述被保护软件;
若是,则所述被保护软件生成一随机数,并发送给所述密码设备;
所述密码设备通过储存的私钥对所述随机数进行签名,并将签名结果返回至被保护软件;
所述被保护软件通过所读取的数字证书中的第二公钥对所述签名结果进行验证。
可选地,所述数字证书还包括:密码设备的序列号、证书有效期限,
所述被保护软件内置的所述CA认证中心服务器的根证书验证所述数字证书的签名有效之后,所述被保护软件生成一随机数之前还包括:
所述被保护软件检查所述密码设备的序列号;
所述被保护软件确认当前时间在所述密码设备证书的有效期限内。
可选地,所述数字证书包括Common Name字段,所述Common Name用于写入一许可证文件的散列值。
可选地,所述许可证文件的SHA-256值作为所述许可证文件的散列值。
可选地,所述数字证书为X.509标准证书。
可选地,所述密码设备支持CryptoAPI标准或PKCS#11标准。
根据本发明的又一方面,还提供一种软件版权保护系统,包括:
终端设备,储存有被保护软件;
密码设备,所述密码设备储存有密钥对及数字证书,所述密钥对包括一私钥及一第一公钥,所述数字证书至少包括一第二公钥及所述被保护软件关联的CA认证中心服务器对所述数字证书的签名,第一公钥与第二公钥相同,
其中,所述终端设备和所述密码设备执行如下步骤:
当被保护软件于所述终端设备上打开时,检测所述终端设备是否通过硬件接口连接所述密码设备;
若是,则所述被保护软件读取所述密码设备中储存的数字证书;
所述被保护软件内置的所述CA认证中心服务器的根证书验证所述数字证书的签名是否有效,其中,所述根证书内嵌在所述被保护软件的代码中,并且所述根证书与所述被保护软件的代码一起经编译以生成所述被保护软件;
若是,则所述被保护软件生成一随机数,并发送给所述密码设备;
所述密码设备通过储存的私钥对所述随机数进行签名,并将签名结果返回至被保护软件;
所述被保护软件通过所读取的数字证书中的第二公钥对所述签名结果进行验证。
可选地,所述密码设备包括:
储存区,用于储存所述密钥对及所述数字证书,所述私钥存入所述存储区后,为不可读状态。
加密区,用于通过储存的私钥对所述被保护软件发送的所述随机数进行签名。
可选地,所述密码设备为USBkey、SDkey、PCI-E密码卡、智能卡中的一种或多种。
可选地,还包括:所述CA认证中心服务器,用于管理所述数字证书。
与现有技术相比,本发明的优点在于:
1)由于验证过程是被保护软件和密码设备内部的签名密钥对直接操作的,因此即使中间所有的通信数据被截获,或者动态链接库被修改,也无法破解整个验证的过程。
2)密码设备内部的签名密钥对是无法读出的,即使密码设备的生产厂家也无法读出,这个是由密码设备认证标准决定的,因此安全性可以得到有效保证。
3)在CA签发数字证书的时候,如果软件开发者想要记录更多的信息也可以用一个独立的自定义的许可证文件,然后将该文件内容的散列值(转换成字符串)作为证书CommonName字段的内容,从而可以记录更多的受保护信息。
附图说明
通过参照附图详细描述其示例实施方式,本发明的上述和其它特征及优点将变得更加明显。
图1示出了根据本发明实施例的软件版权保护系统的示意图。
图2示出了根据本发明实施例的密码设备初始化的时序图。
图3示出了根据本发明实施例的被保护软件编译的时序图。
图4示出了根据本发明实施例的软件版权保护系统执行软件版权保护时的时序图。
图5示出了根据本发明实施例的软件版权保护方法的流程图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的实施方式;相反,提供这些实施方式使得本发明将全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的结构,因而将省略对它们的重复描述。
为了克服上述现有技术存在的缺陷,本发明提供一种软件版权保护方法及其系统。首先参见图1,图1示出了根据本发明实施例的软件版权保护系统的示意图。
软件版权保护系统包括终端设备110和密码设备120。可选地,软件版权保护系统还包括CA认证中心服务器130。
终端设备110储存有被保护软件111。该被保护软件111安装在终端设备110上。该被保护软件111在开发编译时,内嵌有CA认证中心服务器130的根证书。
密码设备可以为USBkey、SDkey、PCI-E密码卡、智能卡中的一种或多种。USBkey是一种USB接口的硬件设备。它内置单片机或智能卡芯片,有一定的存储空间,可在本发明中存储用户的私钥以及数字证书,利用USBkey内置的公钥算法实现对用户身份的认证。由于用户私钥保存在密码锁中,理论上使用任何方式都无法读取,因此保证了用户认证的安全性。SDkey是一种SD接口的硬件设备,其类似于USBkey,具有存储用户的私钥以及数字证书的存储空间,以实现用户身份的认证。PCI-E密码卡是一种PCI-E接口的硬件设备,其采用PCI-E总线。智能卡为内嵌有微芯片的卡的通称。一些智能卡可以包含一个微电子芯片,智能卡需要通过读写器进行数据交互。智能卡可以配备有CPU、RAM和I/O,以自行处理数量较多的数据而不会干扰到主机CPU的工作。智能卡还可过滤错误的数据,以减轻主机CPU的负担。适应于端口数目较多且通信速度需求较快的场合。卡内的集成电路包括中央处理器CPU、可编程只读存储器EEPROM、随机存储器RAM和固化在只读存储器ROM中的卡内操作系统COS(Chip Operating System)。卡中数据分为外部读取和内部处理部分。
密码设备120可包括储存区121和加密区122。储存区121储存有密钥对142及数字证书141。密钥对142包括一私钥及一第一公钥。私钥存入存储区121后,为不可读状态,不能被任何人读出。数字证书是一个经证书授权中心数字签名的包含公钥拥有者信息以及公钥的文件。所述数字证书141经由所述被保护软件111关联的CA认证中心服务器130签发,其至少包括与所述密钥对142的第一公钥相同的第二公钥及所述被保护软件111关联的CA认证中心服务器130对所述数字证书141的签名。加密区122用于执行加密的功能。
下面参见图2,图2示出了根据本发明实施例的密码设备初始化的时序图。
在一个优选地实施例中,可采用采用支持RSA PKCS#11或微软CryptoAPI标准的USBkey/SDkey/PCI-E密码卡/智能卡等作为密码设备120来保护软件版权。The Public-KeyCryptography Standards(PKCS)是由美国RSA数据安全公司及其合作伙伴制定的一组公钥密码学标准,其中包括证书申请、证书更新、证书作废表发布、扩展证书内容以及数字签名、数字信封的格式等方面的一系列相关协议。PKCS#11也称为Cyptoki,定义了一套独立于技术的程序设计接口,用于智能卡和PCMCIA卡之类的加密设备。CryptoAPI作为MicrosoftWindows的一部分提供的应用程序编程接口(API)。CryptoAPI提供了一组函数,这些函数允许应用程序在对用户的敏感私钥数据提供保护时以灵活的方式对数据进行加密或数字签名。实际的加密操作是由称为加密服务提供程序(CSP)的独立模块执行。
支持这些标准的密码设备其安全性可以通过认证,而且有众多的供应商,接口都一致,相互替换采购非常容易。同时,可采用标准的RSA密码算法、标准的X.509数字证书(X.509是由国际电信联盟(ITU-T)制定的数字证书标准)以及挑战-响应认证机制来认证密码设备120的合法性,算法安全性得以保障,并且很容易实现。
首先,被保护软件的软件厂商可以采用ejbca、dogtag或openssl等开源软件建立一个CA认证中心服务器130,其作为软件许可证签发管理的CA(Certificate Authority,证书签发机构)中心(暂且叫License CA)。在发放软件许可的密码设备120时执行如下操作:
步骤S311:在密码设备120内部产生一对RSA签名密钥对,并保存在密码设备120中。
步骤S312:通过CA认证中心服务器130签发一张标准的X.509数字证书,该证书中包含与上述密钥对中的第一公钥相同的第二公钥、用户名称(可放在数字证书的CommonName字段)、USBkey序列号(可放在数字证书的Serial Number字段)、有效期限以及CA认证中心服务器130对该证书的签名。
步骤S313:将生成的数字证书写入密码设备120内签名密钥对所在的储存区内。
在上述过程中的一个变化例中,在CA签发数字证书的时候,如果软件开发者想要记录更多的信息而X.509标准不支持,则也可以用一个独立的自定义的许可证文件,然后将该文件内容的散列值(转换成字符串)作为证书Common Name字段的内容,从而可以记录更多的受保护信息。许可证文件的散列值例如可以是许可证文件的SHA-256值。进一步地,在本发明中还可以将更多的信息记录在许可证文件中。例如,若绑定被保护软件只能在某一台设备上运行,那么也可以在许可证文件中绑定机器的硬件信息。在这样的实施例中,由于许可证文件的散列值被记录在数字证书中,因此,其无法被篡改,安全性得到保证。
下面参见图3,图3示出了根据本发明实施例的被保护软件编译的时序图。
为了将CA认证中心服务器130的根证书内嵌在被保护软件中,且其位置不容易被发现,CA认证中心服务器130和被保护软件开发设备140之间按图3的时序图进行操作:
步骤S321:CA认证中心服务器130将根证书发送给被保护软件开发设备140。
步骤S322:被保护软件开发设备140将根证书写入被保护软件的代码中。
步骤S323:对写入根证书的被保护软件的代码进行编译生成被保护软件。
由此,通过上述步骤将根证书内嵌到被保护软件中,且根证书和被保护软件的代码一同被编译,其位置不容易被预测和破解。
下面参见图4,图4示出了根据本发明实施例的软件版权保护系统执行软件版权保护时的时序图。
当被保护软件于所述终端设备上打开时,被保护软件111在步骤S301检测所述终端设备通过硬件接口连接所述密码设备120。
被保护软件111在步骤S302读取所述密码设备120中储存的数字证书。
被保护软件111在步骤S303中通过其内置的所述CA认证中心服务器的根证书验证密码设备120的所述数字证书的签名有效。
被保护软件111在步骤S304生成一随机数。
被保护软件111在步骤S305中将生成的随机数发送给所述密码设备120。
密码设备120在步骤S306通过储存的私钥对所述随机数进行签名。
密码设备120在步骤S307将签名结果返回至被保护软件。
被保护软件111在步骤S308通过所读取的数字证书中的第二公钥对所述签名结果进行验证。若验证成功,则完成版权验证。
下面参见图5,图5示出了根据本发明实施例的软件版权保护方法的流程图。图5共示出了6个步骤:
当被保护软件于一终端设备上打开时执行步骤S210:检测所述终端设备是否通过硬件接口连接一密码设备。若是,则执行步骤S220;若否则继续执行步骤S210。
步骤S220:所述被保护软件读取所述密码设备中储存的数字证书。
步骤S230:所述被保护软件内置的所述CA认证中心服务器的根证书验证所述数字证书的签名是否有效。若是,则执行步骤S240;若否则跳回执行步骤S210。
在一些实施例中,所述数字证书还包括:密码设备的序列号、证书有效期限,则步骤S230验证所述数字证书的签名有效之后,步骤S240之前还包括所述被保护软件检查所述密码设备的序列号,并且所述被保护软件确认当前时间在所述密码设备证书的有效期限内。
步骤S240:所述被保护软件生成一随机数,并发送给所述密码设备。
步骤S250:所述密码设备通过储存的私钥对所述随机数进行签名,并将签名结果返回至被保护软件。
步骤S260:所述被保护软件通过所读取的数字证书中的第二公钥对所述签名结果进行验证。验证通过即可在终端设备上安装被保护软件。
具体而言,在本发明的一些实施例中,由于采用标准的密码算法和数字证书,因此上述步骤很容易用openssl开源软件库和RSA PKCS#11或微软CryptoAPI标准的API库来开发实现。
与现有技术相比,本发明的优点在于:
1)由于验证过程是被保护软件和密码设备内部的签名密钥对直接操作的,因此即使中间所有的通信数据被截获,或者动态链接库被修改,也无法破解整个验证的过程。
2)密码设备内部的签名密钥对是无法读出的,即使密码设备的生产厂家也无法读出,这个是由密码设备认证标准决定的,因此安全性可以得到有效保证。
3)在CA签发数字证书的时候,如果软件开发者想要记录更多的信息也可以用一个独立的自定义的许可证文件,然后将该文件内容的散列值(转换成字符串)作为证书CommonName字段的内容,从而可以记录更多的受保护信息。
以上具体地示出和描述了本发明的示例性实施方式。应该理解,本发明不限于所公开的实施方式,相反,本发明意图涵盖包含在所附权利要求范围内的各种修改和等效置换。
Claims (10)
1.一种软件版权保护方法,其特征在于,包括:
当被保护软件于一终端设备上打开时,检测所述终端设备是否通过硬件接口连接一密码设备,所述密码设备储存有密钥对及数字证书,所述密钥对包括一私钥及一第一公钥,所述数字证书至少包括一第二公钥及所述被保护软件关联的CA认证中心服务器对所述数字证书的签名,第一公钥与第二公钥相同;
若是,则所述被保护软件读取所述密码设备中储存的数字证书;
所述被保护软件内置的所述CA认证中心服务器的根证书验证所述数字证书的签名是否有效,其中,所述根证书内嵌在所述被保护软件的代码中,并且所述根证书与所述被保护软件的代码一起经编译以生成所述被保护软件;
若是,则所述被保护软件生成一随机数,并发送给所述密码设备;
所述密码设备通过储存的私钥对所述随机数进行签名,并将签名结果返回至被保护软件;
所述被保护软件通过所读取的数字证书中的第二公钥对所述签名结果进行验证。
2.如权利要求1所述的软件版权保护方法,其特征在于,所述数字证书还包括:密码设备的序列号、证书有效期限,
所述被保护软件内置的所述CA认证中心服务器的根证书验证所述数字证书的签名有效之后,所述被保护软件生成一随机数之前还包括:
所述被保护软件检查所述密码设备的序列号;
所述被保护软件确认当前时间在所述密码设备证书的有效期限内。
3.如权利要求1所述的软件版权保护方法,其特征在于,所述数字证书包括CommonName字段,所述Common Name用于写入一许可证文件的散列值。
4.如权利要求3所述的软件版权保护方法,其特征在于,所述许可证文件的SHA-256值作为所述许可证文件的散列值。
5.如权利要求1至4任一项所述的软件版权保护方法,其特征在于,所述数字证书为X.509标准证书。
6.如权利要求1至4任一项所述的软件版权保护方法,其特征在于,所述密码设备支持CryptoAPI标准或PKCS#11标准。
7.一种软件版权保护系统,其特征在于,包括:
终端设备,储存有被保护软件;
密码设备,所述密码设备储存有密钥对及数字证书,所述密钥对包括一私钥钥及一第一公钥,所述数字证书至少包括一第二公钥及所述被保护软件关联的CA认证中心服务器对所述数字证书的签名,第一公钥与第二公钥相同,
其中,所述终端设备和所述密码设备执行如下步骤:
当被保护软件于所述终端设备上打开时,检测所述终端设备是否通过硬件接口连接所述密码设备;
若是,则所述被保护软件读取所述密码设备中储存的数字证书;
所述被保护软件内置的所述CA认证中心服务器的根证书验证所述数字证书的签名是否有效,其中,所述根证书内嵌在所述被保护软件的代码中,并且所述根证书与所述被保护软件的代码一起经编译以生成所述被保护软件;
若是,则所述被保护软件生成一随机数,并发送给所述密码设备;
所述密码设备通过储存的私钥对所述随机数进行签名,并将签名结果返回至被保护软件;
所述被保护软件通过所读取的数字证书中的第二公钥对所述签名结果进行验证。
8.如权利要求7所述的软件版权保护系统,其特征在于,所述密码设备包括:
储存区,用于储存所述密钥对及所述数字证书,所述私钥存入所述储存区后,为不可读状态;
加密区,用于通过储存的私钥对所述被保护软件发送的所述随机数进行签名。
9.如权利要求7所述的软件版权保护系统,其特征在于,所述密码设备为USBkey、SDkey、PCI-E密码卡、智能卡中的一种或多种。
10.如权利要求7所述的软件版权保护系统,其特征在于,还包括:
所述CA认证中心服务器,用于管理所述数字证书。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711228764.6A CN107832589B (zh) | 2017-11-29 | 2017-11-29 | 软件版权保护方法及其系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711228764.6A CN107832589B (zh) | 2017-11-29 | 2017-11-29 | 软件版权保护方法及其系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107832589A CN107832589A (zh) | 2018-03-23 |
CN107832589B true CN107832589B (zh) | 2020-05-12 |
Family
ID=61646654
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711228764.6A Active CN107832589B (zh) | 2017-11-29 | 2017-11-29 | 软件版权保护方法及其系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107832589B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110324283B (zh) * | 2018-03-30 | 2021-08-06 | 中移(苏州)软件技术有限公司 | 基于非对称加密的许可方法、装置及系统 |
CN109388931A (zh) * | 2018-09-12 | 2019-02-26 | 航天信息股份有限公司 | 基于usbkey设备的软件保护方法、usbkey设备的发行方法及装置 |
CN111625829A (zh) * | 2019-02-27 | 2020-09-04 | 阿里巴巴集团控股有限公司 | 基于可信执行环境的应用激活方法及装置 |
CN110210187A (zh) * | 2019-04-24 | 2019-09-06 | 西安中力科技有限公司 | 具备防仿冒的app应用鉴权方法 |
CN110210189B (zh) * | 2019-06-11 | 2021-06-04 | 第四范式(北京)技术有限公司 | 软件验证方法、软硬件绑定方法及其可编程器件 |
CN110601855B (zh) * | 2019-09-20 | 2022-05-13 | 腾讯科技(深圳)有限公司 | 一种根证书管理方法、装置及电子设备、存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1987882A (zh) * | 2005-12-23 | 2007-06-27 | 联想(北京)有限公司 | 基于安全芯片的软件保护方法和系统 |
CN101005361A (zh) * | 2007-01-22 | 2007-07-25 | 北京飞天诚信科技有限公司 | 一种服务器端软件保护方法及系统 |
CN102594568A (zh) * | 2012-03-23 | 2012-07-18 | 南京小网科技有限责任公司 | 基于多级数字证书的保障移动设备软件镜像安全的方法 |
CN103167491A (zh) * | 2011-12-15 | 2013-06-19 | 上海格尔软件股份有限公司 | 一种基于软件数字证书的移动终端唯一性认证方法 |
CN105184119A (zh) * | 2015-10-09 | 2015-12-23 | 南京工程学院 | 一种软件的安全保护方法 |
-
2017
- 2017-11-29 CN CN201711228764.6A patent/CN107832589B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1987882A (zh) * | 2005-12-23 | 2007-06-27 | 联想(北京)有限公司 | 基于安全芯片的软件保护方法和系统 |
CN101005361A (zh) * | 2007-01-22 | 2007-07-25 | 北京飞天诚信科技有限公司 | 一种服务器端软件保护方法及系统 |
CN103167491A (zh) * | 2011-12-15 | 2013-06-19 | 上海格尔软件股份有限公司 | 一种基于软件数字证书的移动终端唯一性认证方法 |
CN102594568A (zh) * | 2012-03-23 | 2012-07-18 | 南京小网科技有限责任公司 | 基于多级数字证书的保障移动设备软件镜像安全的方法 |
CN105184119A (zh) * | 2015-10-09 | 2015-12-23 | 南京工程学院 | 一种软件的安全保护方法 |
Non-Patent Citations (1)
Title |
---|
一种动态证书副本的软件版权保护模型研究;李章兵等;《小型微型计算机系统》;20110831;第1633-1638页 * |
Also Published As
Publication number | Publication date |
---|---|
CN107832589A (zh) | 2018-03-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107832589B (zh) | 软件版权保护方法及其系统 | |
JP4744106B2 (ja) | セキュアデバイス、情報処理端末、通信システム及び通信方法 | |
US6749115B2 (en) | Dual processor trusted computing environment | |
US7707408B2 (en) | Key transformation unit for a tamper resistant module | |
JP4073913B2 (ja) | 開放型汎用耐攻撃cpu及びその応用システム | |
KR100871182B1 (ko) | Sim 장치용 컴퓨터 시스템 내에 신뢰 채널을 제공하는방법 및 시스템 | |
US20010037450A1 (en) | System and method for process protection | |
CN101571900B (zh) | 一种软件版权保护方法、设备和系统 | |
US6996710B1 (en) | Platform and method for issuing and certifying a hardware-protected attestation key | |
CN104380652A (zh) | 用于nfc使能设备的多发行商安全元件分区架构 | |
JPH10171648A (ja) | アプリケーションを認証する装置 | |
CN111984962A (zh) | 固件安全验证方法及装置 | |
US20090287917A1 (en) | Secure software distribution | |
US20030145182A1 (en) | Data storage apparatus, data storing method, data verification apparatus, data access permission apparatus, and program and storage medium therefor | |
EP1949220A2 (en) | Software-firmware transfer system | |
JP2010500656A (ja) | 仮想マシンのアクティブ化を伴う携帯可能な大容量記憶装置 | |
CN101447009A (zh) | 软件安装方法、装置及系统 | |
JP2009080772A (ja) | ソフトウェア起動システム、ソフトウェア起動方法、及びソフトウェア起動プログラム | |
US8234717B2 (en) | Accessing and checking the validity of control information stored in external storage | |
KR102519828B1 (ko) | 회로 칩 및 그 동작 방법 | |
JP2000029792A (ja) | 機密情報格納装置 | |
KR100562255B1 (ko) | 시큐리티 도메인의 키 초기화 방법 | |
JPH11328325A (ja) | Icカードシステム | |
JPH0375983A (ja) | カード利用システム | |
JP4368130B2 (ja) | Icカード及びicカードプログラム |
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 |