CN101441692B - 实现计算机硬件和软件绑定的方法 - Google Patents
实现计算机硬件和软件绑定的方法 Download PDFInfo
- Publication number
- CN101441692B CN101441692B CN200810227115.9A CN200810227115A CN101441692B CN 101441692 B CN101441692 B CN 101441692B CN 200810227115 A CN200810227115 A CN 200810227115A CN 101441692 B CN101441692 B CN 101441692B
- Authority
- CN
- China
- Prior art keywords
- software
- hardware
- license file
- computer
- identification code
- 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
Landscapes
- Storage Device Security (AREA)
Abstract
本发明公开了一种实现计算机硬件和软件绑定的方法,在计算机硬件中存储有硬件识别码,软件中包括许可文件;所述方法包括:A、分别从计算机硬件和软件中读取硬件识别码和许可文件;B、依据所读取的硬件识别码和许可文件使用合法性认证算法进行合法性认证;C、认证通过时运行所述软件,并使用更新算法计算更新所述计算机硬件中的硬件识别码和软件中的许可文件。通过本发明可以实现绑定要素的动态变化。
Description
技术领域
本发明涉及计算机硬件和软件保护的技术领域,特别是指实现计算机硬件和软件绑定的方法。
背景技术
软件厂商使用各种措施保护其自身的软件版权,硬件厂商也要保护其知识产权,目前存在问题是,基于X86(X86是以80286微处理器开始的一系列因特尔微处理器家族的总名称)的软件可以在不同厂家的主板上运行,基于软件加密的方法很容易破解,破解之后会被大量复制,导致软件生产厂家出现巨大经济损失。另一方面,硬件生产厂家所生产的主板等硬件,也容易被其它生产厂家仿造,尤其是对软件和硬件都做的厂家来讲,更是问题。现在越来越多的专用硬件设备结合软件一同出售。将硬件设备和相应的软件绑定在一起,实现一对一匹配,达到配套软件只能在其对应的一个硬件平台上运行。例如如果绑定的是主板,即便是在合法的一个机器上装好软件,将硬盘卸下,然后将硬盘安装到在另一台同型号的机器上也无法运行,达到一对一配套,软件在不合法的机器上也不能安装运行。这样可以防止在和低版本软件配套的硬件上运行高版本软件的情况出现,更好的保护制造商的利益。
现有技术中,实现软件和硬件绑定的方法是采用密钥和加密算法通过软件和硬件的序列号的绑定来实现软硬件的绑定。申请号为2006 1 0116 253.0的中国专利申请公开了一种实现硬件和软件绑定的加密方法。其利用散列函数HASH对硬件序列号进行变换得到软件序列号,用软件序列号构成对称密钥,并通过对称加密算法对软件明文进行加密,使用一公用密钥通过非对称加密算法对所述对称密钥进行加密,将加密后的软件明文和对称密钥放在一起下载到存储器中。解密时,使用私用密钥对对称密钥解密得到第一软件序列号,然后和硬件解密出的第二软件序列号进行比较,从而实现绑定。
但是,在上述的现有技术的方法中,所有的密钥,无论是公共密钥还是私用密钥都是预设不变的。也就是说一旦被破解了加密方法或者复制出了密钥,就可以大量的复制盗版使用了。
发明内容
有鉴于此,本发明要解决的技术问题是提供一种可以实现计算机硬件和软件绑定的方法。通过所述的方法实现绑定要素的动态变化。
本发明提供了实现计算机硬件和软件绑定的方法,在计算机硬件中存储有硬件识别码,软件中包括许可文件;所述方法包括:
A、分别从计算机硬件和软件中读取硬件识别码和许可文件;
B、依据所读取的硬件识别码和许可文件使用合法性认证算法进行合法性认证;
C、认证通过时运行所述软件,并使用更新算法计算更新所述计算机硬件中的硬件识别码和软件中的许可文件。
由上可以看出,由合法性认证算法验证硬件识别码和许可文件的合法性来实现目前运行的计算机软件和硬件的绑定,以更新算法对硬件识别码和许可文件同时更新,来实现绑定要素的动态变化。这样就增加了破解难度。首先因为绑定要素的动态变化使得破解者很难复制两个绑定要素,其次,就算破解者复制出部分绑定要素,但是如果没有破解加密算法的话,一旦进行了更新,依然无法非法使用。
其中,计算机硬件中还存储有和计算机硬件唯一对应的唯一识别码;
步骤B中还将所述唯一识别码作为参数用于合法性认证算法进行合法性认证;
步骤C中还将唯一识别码作为参数用于更新算法计算更新所述计算机硬件中的硬件识别码和软件中的许可文件。
由上可见,使用与计算机硬件唯一对应的唯一识别码用于合法性认证算法,进一步的增强了被破解的难度,使得计算机硬件与软件绑定更为紧密。
可选的,所述唯一识别码对应一个初始许可文件设置在软件安装程序中;所述硬件识别码和许可文件是在软件安装时生成的,其生成步骤包括:
H、分别从计算机硬件和软件中读取唯一识别码和初始许可文件;
I、依据读取的唯一识别码和初始许可文件使用合法性认证算法进行合法性认证;
J、认证通过时使用更新算法计算生成所述硬件识别码和许可文件,分别存储在计算机硬件和软件中。
由上,使得在安装过程中即实现计算机硬件与软件的绑定。
较佳的,所述步骤J中还采用一密钥作为参数用于更新算法计算生成所述硬件识别码和许可文件;
所述步骤B中还将所述密钥作为参数用于合法性认证算法进行合法性认证;
所述步骤C中还采用一密钥作为参数用于更新算法计算更新所述计算机硬件中的硬件识别码和软件中的许可文件。
由上可见,使用一密钥参数用于合法性认证算法,进一步的增强了被破解的难度,使得计算机硬件与软件绑定更为紧密。
较佳的,所述唯一识别码为与主板唯一对应的唯一识别码,存储该唯一识别码的计算机硬件为计算机主板。
由上,实现了软件与计算机主板的绑定。
可选的,所述计算机主板包含BIOS或存储单元,存储所述的唯一识别码。
可选的,存储所述硬件识别码的计算机硬件包括计算机主板或计算机存储器。
可选的,所述计算机存储器包括计算机内的硬盘或外接存储设备。
由上,在实现计算机软件与计算机主板绑定的基础上,还实现了与第三设备的绑定,例如与硬盘、或外接存储设备,如U盘的绑定,其中外接存储设备可以提供给用户,作为鉴权用户是否合法的设备。
其中,所述方法运行于:计算机启动过程、软件启动过程或软件运行过程中到达设定的周期时。
由上,将计算机与软件绑定过程应用与不同的过程。
附图说明
图1为实施例中软件安装过程中的验证流程图;
图2为实施例中计算机启动时的验证流程图;
图3为实施例中软件使用过程中的验证流程图。
具体实施方式
由于本发明涉及到对BIOS的调用,因此在介绍本发明之前,首先对计算机BIOS作用和其工作过程进行介绍:
1、首先是自检过程:计算机电源接通后,系统将有一个对内部各个设备进行检查的过程,这是由一个通常称之为POST(Power OnSelf Test/上电自检)的程序来完成,这也是BIOS程序的一个功能。完整的自检包括了对CPU、640K基本1M以上的扩展内存、ROM、主板、CMOS存贮器、串并口、显示卡、软硬盘子系统及键盘的测试。
2、在自检过程中若发现问题,系统将给出提示信息或鸣笛警告。如果没有任何问题,完成自检后进行初始化过程,即BIOS将按照系统CMOS设置中的启动顺序搜寻软、硬盘驱动器及CDROM、网络服务器等有效的启动驱动器,读入操作系统引导记录,然后将系统控制权交给引导记录,由引导记录完成系统的启动。
3、其次是硬件中断处理:计算机开机的时候,BIOS会告诉CPU等硬件设备的中断号,当操作时输入了使用某个硬件的命令后,它就会依据中断号使用相应的硬件来完成命令的工作,最后依据其中断号跳会原来的状态。再有就是程序服务请求:从BIOS的定义可以知道它总是和计算机的输入输出设备打交道,它通过最特定的数据端口发出指令,发送或接收各类外部设备的数据,从而实现软件应用程序对硬件的操作。
下面对本发明提供的实现计算机硬件和软件绑定的方法采用实施例结合附图的形式进行详细说明。本实施例中,欲绑定的硬件是计算机主板,首先在计算机主板上预先存有和计算机主板唯一对应的唯一识别码(主板ID),所述的软件中包括合法性认证算法和加密算法,以及随该软件的安装程序提供有初始许可文件(License),该初始许可文件是和唯一识别码对应的。在本实施例中,该初始许可文件是计算机主板的唯一识别码,经由一定加密算法进行运算得到的。合法性认证算法为与加密算法相关的算法,可以是和加密算法对应的解密算法也可以是解密后经由一定变化的算法。其可以判断唯一识别码与该初始许可文件是否匹配。这样,就可以依据安装环境中的唯一识别码和初始许可文件运行所述合法性认证算法得到的结果进行合法性判断,从而保证了所安装的软件和与硬件相匹配,即合法。
下面结合图1说明软件安装过程中的验证流程,其包括以下步骤:
步骤101:启动软件的安装程序。
步骤103:安装程序读取初始许可文件,依据初始许可文件生成参数。
步骤105:调用BIOS中断程序,将参数传递给BIOS。其中,该参数用来实现许可文件在安装程序和BIOS之间的传递。
步骤107:BIOS中断程序读取唯一识别码和密钥。
密钥用于加密算法和合法性认证算法,可以是一套或多套,用来增加硬件识别码、许可文件以及加密算法和合法性认证算法破解的难度。
步骤109:运行合法性认证算法,依据所述唯一识别码、随软件提供的初始许可文件(转化为参数)和密钥进行合法性认证;认证成功则执行步骤113,否则执行步骤111。
其中,合法性认证算法可以是:采用所述加密算法对所述硬件识别码进行运算,并确认运算结果是否与许可文件相同;又如,还可以是:采用所述加密算法对许可文件进行反运算,并确认运算结果是否与硬件识别码相同。这里仅举例了两种简单的合法性认证算法,不难理解,也可以采用其他认证算法。
步骤111:认证失败表示计算机软件和主板不匹配,则软件安装失败,向用户给出提示信息,并结束本流程。
步骤113:认证成功表示计算机软件和主板相匹配,则中断返回,继续安装。BIOS中断程序依据硬件识别码结合密钥生成参数返传给安装程序。
步骤115:安装程序用返回的参数,将加密算法作为更新算法,生成新的许可文件覆盖初始许可文件,同时生成硬件识别码存入主板中。许可文件可以隐蔽的存储在软件所在的计算机存储器上,存储器可以是例如硬盘或使用该软件用户提供的U盘等外接存储设备。新的许可文件配合硬件识别码用来实现计算机软件安装之后,该软件与计算机主板、和计算机存储器绑定的合法性认证。由此可以看出,由于以后认证过程中使用到软件提供的合法性认证算法、软件中的许可文件、计算机主板存储的硬件识别码,因此可以实现软件、计算机硬件的绑定。其中许可文件和硬件识别码是绑定的要素。
为了进一步增加绑定要素的动态变化,下面,以在计算机的启动过程进行合法性认证为例,参照图2示出的启动中的验证流程图,对硬件启动中的验证过程进行说明:
步骤201:电脑上电或复位,执行BIOS自检及初始化程序。
步骤203:读取分别保存在主板上的硬件识别码、唯一识别码、密钥和软件中的许可文件。
步骤205:运行合法性认证算法进行合法性认证,包括:
依据步骤203读取的硬件识别码、唯一识别码、许可文件和密钥,采用软件提供的合法性认证算法进行合法性认证的判断。认证合法则进入步骤211,不合法则进入步骤207。
步骤207:认证不合法,BIOS报警,如返回错误信息删除主板中的硬件识别码。
在本步骤中可以采取多种措施应对认证不合法的情况。例如启动无法继续进行或者在删除或修改主板中的硬件识别码后正常启动等。本实施例中采取的是删除硬件识别码后正常启动的措施。
步骤209:读入操作系统引导记录,将系统控制权交给引导记录。
步骤211:认证合法则依据所述作为更新算法的加密算法,生成新的硬件识别码和许可文件,并分别覆盖原硬件识别码和许可文件,以供下次启动过程或软件使用过程中的合法性认证。该过程可参见步骤115,此处不再赘述。
步骤213:至此,完成了硬件启动过程中的验证流程,然后计算机读入操作系统引导记录,将系统控制权交给引导记录。
由上可以看出,本发明进一步增加了绑定要素的动态变化。因为要使用硬件则首先要上电启动,而每次硬件启动在进入使用前都进行绑定要素的验证并更新。
在软件启动和使用过程中还需要对绑定要素进行验证和更新。下面,再参见图3所示的软件使用过程验证流程图,对软件在使用过程中的合法性认证的流程进行说明,包括:
步骤301:软件使用过程中,某一验证周期启动。
步骤303:软件依据许可文件生成参数传递给BIOS,并产生BIOS中断。其中,该参数用来实现许可文件在软件程序和BIOS之间的传递。
步骤305:读取硬件识别码、唯一识别码和密钥。
步骤307:BIOS中断程序依据所读取的硬件识别码、唯一识别码和密钥结合许可文件(已转化成参数)运行合法性认证算法进行合法性认证,合法则进入步骤309,不合法则进入步骤315。
步骤309:依据硬件识别码、唯一识别码、密钥和原参数生成新的参数返回给软件生成新的参数返回给软件。
步骤311:软件依据返回的参数软件依据返回的参数运行作为更新算法的加密算法更新硬件识别码和许可文件。该过程可参见步骤115,此处不再赘述。
步骤313:软件正常工作至下一验证周期,本次流程结束。
步骤315:认证不合法,返回错误信息,软件退出。
由此实现了使用过程中绑定要素的验证和动态变化。同时,软件启动过程中的验证和更新可以参照使用过程进行,此处不再赘述。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,例如使用更为复杂的密钥、加密算法等,均应包含在本发明的保护范围之内。
Claims (7)
1.一种实现计算机硬件和软件绑定的方法,其特征在于,
在计算机硬件中存储有硬件识别码,软件中包括许可文件;所述方法包括:
A、分别从计算机硬件和软件中读取硬件识别码和许可文件;
B、依据所读取的硬件识别码和许可文件使用合法性认证算法进行合法性认证;
C、认证通过后运行所述软件,并使用更新算法计算更新所述计算机硬件中的硬件识别码和软件中的许可文件;
计算机硬件中还存储有和计算机硬件唯一对应的唯一识别码;
步骤B中还将所述唯一识别码作为参数用于合法性认证算法进行合法性认证;
步骤C中还将唯一识别码作为参数用于更新算法计算更新所述计算机硬件中的硬件识别码和软件中的许可文件;
所述唯一识别码对应一个初始许可文件,并设置在软件的安装程序中;
所述硬件识别码和许可文件是在软件安装时生成的,其生成步骤包括:
H、分别从计算机硬件和软件的安装程序中读取唯一识别码和初始许可文件;
I、依据读取的唯一识别码和初始许可文件使用合法性认证算法进行合法性认证;
J、认证通过后使用更新算法计算生成所述硬件识别码和许可文件,分别存储在计算机硬件和软件中,覆盖原硬件识别码和许可文件,以供下次启动过程或软件使用过程中的合法性认证。
2.如权利要求1所述的方法,其特征在于,
所述步骤J中还采用一密钥作为参数用于更新算法计算生成所述硬件识别码和许可文件;
所述步骤B中还将所述密钥作为参数用于合法性认证算法进行合法性认证;
所述步骤C中还采用一密钥作为参数用于更新算法计算更新所述计算机硬件中的硬件识别码和软件中的许可文件。
3.如权利要求2所述的方法,其特征在于,所述唯一识别码为与主板唯一对应的唯一识别码,存储该唯一识别码的计算机硬件为计算机主板。
4.如权利要求3所述的方法,其特征在于,所述计算机主板包含BIOS或存储单元,用于存储所述的唯一识别码。
5.如权利要求4所述的方法,其特征在于,存储所述硬件识别码的计算机硬件包括计算机主板或计算机存储器。
6.如权利要求5所述的方法,其特征在于,所述计算机存储器包括计算机内的硬盘或外接存储设备。
7.如权利要求1或2所述的方法,其特征在于,所述方法运行于:
计算机启动过程、软件启动过程或软件运行过程中到达设定的周期时。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200810227115.9A CN101441692B (zh) | 2008-11-21 | 2008-11-21 | 实现计算机硬件和软件绑定的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200810227115.9A CN101441692B (zh) | 2008-11-21 | 2008-11-21 | 实现计算机硬件和软件绑定的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101441692A CN101441692A (zh) | 2009-05-27 |
CN101441692B true CN101441692B (zh) | 2014-09-03 |
Family
ID=40726124
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200810227115.9A Active CN101441692B (zh) | 2008-11-21 | 2008-11-21 | 实现计算机硬件和软件绑定的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101441692B (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102480352B (zh) * | 2010-11-30 | 2015-09-16 | 苏州景昱医疗器械有限公司 | 植入式医疗系统的安全保障方法及系统 |
CN102685139A (zh) * | 2012-05-21 | 2012-09-19 | 中国联合网络通信集团有限公司 | 网络软件认证方法和装置 |
CN103049683B (zh) * | 2012-12-18 | 2016-04-06 | 惠州市亿能电子有限公司 | 一种bms上位机程序授权保密方法 |
CN104052761B (zh) * | 2013-03-11 | 2017-12-29 | 联想(北京)有限公司 | 一种控制设备启动的方法及电子设备 |
CN103995991B (zh) * | 2014-05-07 | 2017-02-15 | 华中师范大学 | 一种软件版权保护中绑定硬件信息与密钥的方法 |
CN105787311A (zh) * | 2014-12-22 | 2016-07-20 | 联想(上海)信息技术有限公司 | 存储设备管理方法、装置及电子设备 |
CN106203002B (zh) * | 2015-05-06 | 2019-09-03 | 朗新科技股份有限公司 | 软件产品保护方法 |
CN109214187B (zh) * | 2017-06-29 | 2021-01-22 | 龙芯中科技术股份有限公司 | 一种控制计算机启动的方法、装置和电子设备 |
CN109302370B (zh) * | 2017-07-24 | 2021-11-02 | 上海牛卡网络科技有限公司 | 一种客户端验证方法、终端和服务器 |
CN109784085B (zh) * | 2017-11-15 | 2023-10-27 | 中兴通讯股份有限公司 | 虚拟网络应用实现方法及管理系统、计算机可读存储介质 |
CN108038354A (zh) * | 2017-12-08 | 2018-05-15 | 珠海华索软件科技有限公司 | 一种插件式软件防复制的方法及系统 |
CN110795702A (zh) * | 2019-10-12 | 2020-02-14 | 山东英信计算机技术有限公司 | 一种软件防破解方法、装置、设备、介质 |
CN112380586A (zh) * | 2020-11-11 | 2021-02-19 | 随锐科技集团股份有限公司 | 对硬件设备的条码信息的处理方法及系统 |
CN117290874B (zh) * | 2023-11-14 | 2024-05-10 | 广东汉为信息技术有限公司 | 电路板程序防破解方法、存储介质和电路板 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1575446A (zh) * | 2001-10-26 | 2005-02-02 | 皇家飞利浦电子股份有限公司 | 将软件数据域绑定到专用硬件的方法 |
CN1582422A (zh) * | 2001-09-04 | 2005-02-16 | 诺基亚有限公司 | 防止未被授权使用软件的方法 |
CN101266638A (zh) * | 2008-04-16 | 2008-09-17 | 北京飞天诚信科技有限公司 | 软件保护的方法和系统 |
-
2008
- 2008-11-21 CN CN200810227115.9A patent/CN101441692B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1582422A (zh) * | 2001-09-04 | 2005-02-16 | 诺基亚有限公司 | 防止未被授权使用软件的方法 |
CN1575446A (zh) * | 2001-10-26 | 2005-02-02 | 皇家飞利浦电子股份有限公司 | 将软件数据域绑定到专用硬件的方法 |
CN101266638A (zh) * | 2008-04-16 | 2008-09-17 | 北京飞天诚信科技有限公司 | 软件保护的方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN101441692A (zh) | 2009-05-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101441692B (zh) | 实现计算机硬件和软件绑定的方法 | |
JP4950195B2 (ja) | 証明装置、検証装置、検証システム、コンピュータプログラム及び集積回路 | |
US9336359B2 (en) | Device certificate individualization | |
US8660964B2 (en) | Secure device licensing | |
EP1423771B1 (en) | Method to protect software against unauthorized use | |
Garriss et al. | Trustworthy and personalized computing on public kiosks | |
JP5079803B2 (ja) | ゲーム装置を認証するシステムおよび方法 | |
CN100456200C (zh) | 多令牌密封和解封 | |
US20050021968A1 (en) | Method for performing a trusted firmware/bios update | |
US20020029347A1 (en) | System and method for preventing unauthorized access to electronic data | |
US20060085646A1 (en) | Device certificate self-individualization | |
JP2005518041A (ja) | ソフトウェアを保護するための方法および構成 | |
US8984296B1 (en) | Device driver self authentication method and system | |
CN113434853B (zh) | 一种将固件烧录至存储设备的方法及控制器 | |
CN101630353A (zh) | 在移动因特网设备上安全引导uefi固件和uefi感知操作系统的系统和方法 | |
JP2010003235A (ja) | オプショナルなコンポーネントを伴うセキュアブートの方法 | |
WO2007000993A1 (ja) | 検証方法、情報処理装置、記録媒体、検証システム、証明プログラム及び検証プログラム | |
US20090287917A1 (en) | Secure software distribution | |
CN110688660A (zh) | 一种终端安全启动的方法及装置、存储介质 | |
US20060150246A1 (en) | Program execution control device, OS, client terminal, server, program execution control system, program execution control method and computer program execution control program | |
KR20090048581A (ko) | 가상 머신 활성화를 갖는 휴대용 대량 저장장치 | |
KR100361869B1 (ko) | 암호화키를 이용한 소프트웨어 설치 및 실행방법 | |
KR101711024B1 (ko) | 부정조작방지 장치 접근 방법 및 그 방법을 채용한 단말 장치 | |
CN115795438A (zh) | 应用程序授权的方法、系统及可读存储介质 | |
CN116032484A (zh) | 一种通信设备安全启动的方法、装置和电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |