CN101266638B - 软件保护的方法和系统 - Google Patents

软件保护的方法和系统 Download PDF

Info

Publication number
CN101266638B
CN101266638B CN2008101041910A CN200810104191A CN101266638B CN 101266638 B CN101266638 B CN 101266638B CN 2008101041910 A CN2008101041910 A CN 2008101041910A CN 200810104191 A CN200810104191 A CN 200810104191A CN 101266638 B CN101266638 B CN 101266638B
Authority
CN
China
Prior art keywords
software
dynamic factor
safety devices
identification code
information safety
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.)
Expired - Fee Related
Application number
CN2008101041910A
Other languages
English (en)
Other versions
CN101266638A (zh
Inventor
陆舟
于华章
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Jianshi Chengxin Technologies Co ltd
Original Assignee
Beijing Feitian Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Feitian Technologies Co Ltd filed Critical Beijing Feitian Technologies Co Ltd
Priority to CN2008101041910A priority Critical patent/CN101266638B/zh
Publication of CN101266638A publication Critical patent/CN101266638A/zh
Application granted granted Critical
Publication of CN101266638B publication Critical patent/CN101266638B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Storage Device Security (AREA)

Abstract

本发明公开了一种软件保护的方法和系统,属于软件保护领域。所述方法包括:第一装置分别在所述软件和信息安全设备中设置相同的算法、密钥和动态因子;第二装置获取所述软件和信息安全设备且安装该软件后,当需要运行该软件时,与信息安全设备建立连接;第二装置获取信息安全设备使用算法、密钥和动态因子生成的识别码,与根据软件中的算法、密钥和动态因子生成的验证码进行比对,一致则允许运行该软件;否则进行异常处理;信息安全设备及第二装置按照相同方式对事件/时间动态因子进行存储或计时更新。所述系统包括第一装置、第二装置和信息安全设备。本发明实现了有效地对软件进行保护,防止接口仿真程序对软件进行盗版。

Description

软件保护的方法和系统
技术领域
本发明涉及软件保护领域,特别涉及一种软件保护的方法和系统。
背景技术
目前对软件的使用权进行保护的方法最流行的是使用加密锁这种加密工具。加密锁加密是现有加密技术的主流方法,通过在计算机的通信接口插上一个信息安全设备——加密锁,并配合特定的软件保护,使用户软件离开加密锁就无法运行,来实现软件产品的保护。信息安全设备是一种带有微处理器的小型硬件设备,它通过计算机的通信接口与计算机连接,具有密钥生成、安全存储密钥、预置加密算法等功能。信息安全设备与密钥相关的运算完全在设备内部运行,且信息安全设备具有抗攻击的特性,安全性极高。信息安全设备通常通过USB接口与计算机进行连接,简称USB Key。
通常使用USB key对软件保护的最简单的方法是在设计软件时,将USB key的唯一硬件ID号写入软件中,在运行此软件时,软件会读取所使用的USB key的ID号,如果读取的ID号与软件中写入的ID号相同,则允许使用此软件,否则拒绝运用此软件。
由于加密锁的ID号是固定的,软件在运行时,需要通过计算机接口读取加密锁的ID号。黑客利用这一弱点编制出了接口仿真程序,当用户插上保护软件原有的加密锁运行时,该接口仿真程序记录下保护软件读取加密锁ID的所有数据,以及在保护软件运行时所有的写入和读出的数据,从而可以将软件读取加密锁ID的指令截获。当用户取下加密锁时,黑客启动仿真程序来模拟加密锁提供的所有数据,并模拟计算机接口通信协议,将ID号返回给软件,从而达到盗版软件的目的。
发明内容
为了有效地保护软件,本发明提供了一种软件保护的方法和系统。所述技术方案如下:
一种软件保护的方法,所述方法包括:
第一装置在所述软件中设置算法、密钥和动态因子,在信息安全设备中设置相同的算法、密钥和动态因子;
第二装置获取所述软件和信息安全设备且安装所述软件后,当需要运行该软件时,与所述信息安全设备建立连接;
所述第二装置获取所述信息安全设备使用所述算法、密钥和动态因子计算出的识别码,并根据所述软件中的算法、密钥和动态因子计算出验证码;
所述第二装置比对所述识别码与所述验证码,如果一致,则允许运行所述软件;否则,进行异常处理;
当所述动态因子为事件同步因子时,所述信息安全设备对所述信息安全设备内的动态因子进行更新,得到第一更新后的动态因子,并对所述第一更新后的动态因子进行存储,所述第二装置按照相同的方式对所述软件中的动态因子进行更新,得到第二更新后的动态因子,并将所述第二更新后的动态因子存储在所述软件中;
当所述动态因子为时间同步因子时,所述信息安全设备对所述信息安全设备内的动态因子通过计时进行更新,所述第二装置按照相同的方式对所述软件中的动态因子进行计时更新。
所述算法具体为HOPT、DES、RSA、SHA算法或由生产商预先设定的算法。
所述更新具体为对所述动态因子增加或减少指定的值。
所述第二装置获取所述信息安全设备使用所述算法、密钥和动态因子计算出的识别码,具体包括:
当所述密钥为一个时,所述第二装置向所述信息安全设备发送固定的获取识别码的指令;
所述信息安全设备收到所述指令后,使用所述算法、密钥和动态因子计算出识别码,并将所述识别码发送给所述第二装置。
所述第二装置获取所述信息安全设备使用所述算法、密钥和动态因子计算出的识别码,具体包括:
当所述密钥为多个时,所述第二装置向所述信息安全设备发送获取识别码的指令,所述指令中携带指定密钥的索引;
所述信息安全设备收到所述指令后,使用所述算法、所述索引对应的密钥和所述动态因子计算出识别码,并将所述识别码发送给所述第二装置。
所述第二装置比对所述识别码与所述验证码,如果一致,则允许运行所述软件;否则,进行异常处理,具体包括:
当所述验证码为多个时,所述第二装置比对所述识别码与所述多个验证码,如果所述多个验证码中有一个验证码与所述识别码相同,则允许运行所述软件;如果所述多个验证码均与所述识别码不同,则进行异常处理。
所述方法还包括:
所述第二装置允许运行所述软件后,生成包含所述第二装置更新后的动态因子的日志信息,并存储所述日志信息;
当所述第二装置重新安装所述软件时,根据所述日志信息,将所述软件中的动态因子更新为所述日志信息中的动态因子。
一种软件保护的系统,所述系统包括第一装置、第二装置和信息安全设备;
所述第一装置包括:
设置模块,用于在所述软件中设置算法、密钥和动态因子,在所述信息安全设备中设置相同的算法、密钥和动态因子;
所述第二装置包括:
第一通信模块,用于当所述第二装置获取所述软件和信息安全设备且安装所述软件后,当需要运行该软件时,与所述信息安全设备建立连接,并与所述信息安全设备进行通信;
获取模块,用于通过所述第一通信模块获取所述信息安全设备生成的识别码;
验证码生成模块,用于根据所述软件中的算法、密钥和动态因子计算出验证码;
控制模块,用于比对所述获取模块得到的识别码与所述验证码生成模块得到的验证码,如果一致,则允许所述第二装置运行所述软件;否则,所述第二装置进行异常处理;
第一更新模块,用于当所述动态因子为事件同步因子时,按照与所述信息安全设备相同的方式对所述软件中的动态因子进行更新,得到第二更新后的动态因子,并将所述第二更新后的动态因子存储在所述软件中;
当所述动态因子为时间同步因子时,按照与所述信息安全设备相同的方式对所述软件中的动态因子进行计时更新;
所述信息安全设备包括:
存储模块,用于存储所述第一装置的设置模块设置的算法、密钥和动态因子;
识别码生成模块,用于使用所述存储模块存储的算法、密钥和动态因子计算出识别码;
第二通信模块,用于与所述第二装置进行通信,将所述识别码生成模块得到的识别码发送给所述第二装置;
第二更新模块,包括存储单元或计时单元;
所述存储单元,用于当所述动态因子为事件同步因子时,对所述信息安全设备内的动态因子进行更新,得到第一更新后的动态因子,并对所述第一更新后的动态因子进行存储;
所述计时单元,用于当所述动态因子为时间同步因子时,对所述存储模块内的动态因子通过计时进行更新。
所述算法具体为HOPT、DES、RSA、SHA算法或由生产商预先设定的算法。
所述动态因子具体为时间同步因子,所述信息安全设备的第二更新模块还包括:
电池,用于给所述计时单元提供电量。
所述计时单元具体为计时芯片。
所述信息安全设备的第二更新模块具体包括:
更新单元,用于对所述信息安全设备的存储模块存储的动态因子增加或减少指定的值。
所述第二装置的获取模块具体包括:
获取单元,用于当所述密钥为一个时,通过所述第二装置的第一通信模块向所述信息安全设备发送固定的获取识别码的指令,并通过所述第二装置的第一通信模块接收所述信息安全设备返回的识别码;
相应地,所述信息安全设备的识别码生成模块具体包括:
识别码生成单元,用于在接收到所述第二装置发来的获取识别码指令后,使用所述信息安全设备的存储模块存储的算法、密钥和动态因子计算出识别码。
所述第二装置的获取模块具体包括:
获取单元,用于当所述密钥为多个时,通过所述第二装置的第一通信模块向所述信息安全设备发送获取识别码的指令,所述指令中携带指定密钥的索引,并通过所述第二装置的第一通信模块接收所述信息安全设备返回的识别码;
相应地,所述信息安全设备的识别码生成模块具体包括:
识别码生成单元,用于在接收到所述第二装置发来的获取识别码的指令后,使用所述信息安全设备的存储模块存储的算法、所述指令中的索引对应的密钥和动态因子计算出识别码。
所述第二装置的控制模块具体包括:
比对单元,用于当所述验证码生成模块生成的验证码为多个时,比对所述获取模块得到的识别码与所述多个验证码;
控制单元,用于当所述比对单元比对出所述多个验证码中有一个验证码与所述识别码相同,则允许运行所述软件;当所述比对单元比对出所述多个验证码均与所述识别码不同,则进行异常处理。
所述第二装置还包括:
日志生成模块,用于当所述控制模块允许运行所述软件后,生成包含所述第二装置的第一更新模块更新后的动态因子的日志信息;
恢复模块,用于当所述第二装置重新安装所述软件时,根据所述日志生成模块生成的日志信息,将所述软件中的动态因子更新为所述日志信息中的动态因子。
所述信息安全设备的第二通信模块具体为USB接口、红外接口、蓝牙接口、并口、串口、射频接口和外部串行高级附加装置eSATA接口中的至少一种。
本发明通过在软件和信息安全设备中设置相同的算法、密钥和动态因子,将信息安全设备生成的识别码和第二装置生成的验证码进行比对并同步更新,来对软件进行保护。第二装置安装的软件只有在合法的信息安全设备通过认证后,才能运行使用,即使接口仿真软件盗窃了本次软件对信息安全设备进行验证过程中相关的交互数据,该数据对于下次软件对信息安全设备的验证过程是无效的,从而有效地保护了软件,防止软件被盗版。
附图说明
图1是本发明实施例1提供的一种软件保护的方法流程图;
图2是本发明实施例2提供的一种软件保护的系统结构图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
实施例1
如图1所示,本发明实施例提供了一种软件保护的方法,具体包括:
步骤101:第一装置在软件中设置算法、密钥和动态因子,在信息安全设备中设置相同的算法、密钥和动态因子。
例如,第一装置在软件中设置DES算法、密钥2834和动态因子1900,在信息安全设备中也设置DES算法、密钥2834和动态因子1900。
本实施例中的第一装置通常为生产商的装置,第二装置通常为用户使用的主机,如软件开发商的装置在软件和信息安全设备中设置算法、密钥和动态因子后,软件开发商将软件和信息安全设备提供给用户,用户在主机中安装该软件,并通过该主机与信息安全设备进行通信。
其中,第一装置设置的算法具体为HOPT、DES、RSA、SHA算法或由生产商预先设定的算法,第一装置设置的动态因子具体为事件同步因子或时间同步因子。
步骤102:第二装置获取所述软件和信息安全设备且安装软件后,当需要运行该软件时,与信息安全设备建立连接。
步骤103:第二装置获取信息安全设备使用算法、密钥和动态因子计算出的识别码,并根据软件中的算法、密钥和动态因子计算出验证码。本实施例中的验证码不限于可识别的字符。
当第一装置在软件和信息安全设备中均设置一个密钥时,第二装置获取信息安全设备生成的识别码可以具体如下:
第二装置向信息安全设备发送固定的获取识别码的指令,信息安全设备收到该指令后,使用信息安全设备中的算法、密钥和动态因子计算出识别码,并将该识别码发送给第二装置。其中,固定的获取识别码的指令是指指令的内容固定不变,例如,固定的获取识别码的指令为8个字节,具体为0x0A,0x00,0x00,0x00,0x00,0x00,0x00,0x00;当信息安全设备收到该指令后,使用信息安全设备中的算法、密钥和动态因子计算出识别码,并将该识别码发送给第二装置。
进一步地,当第一装置在软件和信息安全设备中均设置多个密钥时,第二装置获取信息安全设备生成的识别码可以具体如下:
第二装置向信息安全设备发送获取识别码的指令,其中携带指定密钥的索引,信息安全设备收到该指令后,使用信息安全设备中的算法、该索引对应的密钥和动态因子计算出识别码,并将该识别码发送给第二装置。例如,获取识别码的指令为8个字节,具体为0x0A,0x01,0x00,0x00,0x00,0x00,0x00,0x00,其中0x01表示使用第一个密钥,当该字节为0x02时表示使用第二个密钥等,即指令中的第二个字节为指定密钥的索引值。当信息安全设备收到该指令后,使用信息安全设备中的算法、该索引对应的密钥和动态因子计算出识别码,并将该识别码发送给第二装置。
本实施例中信息安全设备计算出识别码后,还对信息安全设备内的动态因子进行更新。也可以在信息安全设备计算出识别码前对信息安全设备内的动态因子进行更新。当动态因子为事件同步因子时,信息安全设备对信息安全设备内的动态因子更新后进行存储;当动态因子为时间同步因子时,信息安全设备对信息安全设备内的动态因子通过计时进行更新。
步骤104:第二装置比对识别码与验证码是否一致,如果一致,则执行步骤105;否则,执行步骤106。
步骤105:允许运行该软件,然后结束。
步骤106:第二装置进行异常处理,例如不允许运行该软件,然后结束。
上述过程中第二装置还按照与信息安全设备相同的方式对软件中的动态因子进行更新,如第二装置与信息安全设备均采用先更新后计算的方式,或者均采用先计算后更新的方式,从而使二者的动态因子同步。当动态因子为事件同步因子时,第二装置还将更新后的动态因子存储在该软件中;当动态因子为时间同步因子时,第二装置按照与信息安全设备相同的方式对软件中的动态因子进行计时更新。
另外,第二装置允许运行软件后,还可以生成包含第二装置更新后的动态因子的日志信息,并存储该日志信息,如将日志信息存储在第二装置的系统注册表中;当由于某些原因第二装置重新安装该软件时,根据存储的日志信息,将软件安装后初始化的动态因子更新为日志信息中的动态因子,以方便软件中的动态因子与信息安全设备中的动态因子同步。
在本发明实施例中,对动态因子的更新具体为对动态因子增加或减少指定的值,且第二装置对软件中的动态因子的更新方式与信息安全设备对其内的动态因子的更新方式相同,如均为增加固定的值,或均为减少固定的值。
下面以一个具体的实例进行详细说明,软件和信息安全设备中预设的算法均为DES算法,密钥均为5821,动态因子均为事件同步因子,以事件计数进行同步,事件计数的初始值均为1238,事件计数的增加值为2,且信息安全设备的唯一硬件标识码为16071127。安装了该软件的主机向信息安全设备发送获取指令后,信息安全设备根据密钥5821和动态因子1238,使用DES算法对硬件标识码16071127进行计算,得到识别码3039B7DC2D0ED449并发送给主机,然后将动态因子计数更新为1240。主机得到该识别码后,将其与根据软件中的密钥5821和动态因子1238且使用DES算法对硬件标识码进行计算得到的验证码进行比对,比对出验证码与识别码相同,则允许在主机中运行该软件,并且将软件中的动态因子也更新为1240。当再次使用该软件时,信息安全设备根据密钥5821和更新后的动态因子1240,使用DES算法对硬件标识码16071127进行计算,得到识别码3039B7DC2D0ED449,并将动态因子更新为1242。主机获取到该识别码后,与根据软件中的密钥5821和更新的动态因子1240使用DES算法对硬件标识码进行计算得到的验证码3039B7DC2D0ED449进行比对,结果为相同,因此允许再次运行该软件,且将该软件中的动态因子也更新为1242。因此,通过事件计数同步使得软件与信息安全设备的动态因子在实现动态变化的同时又保持着同步。
另外,为了防止由于偶然事件(如误操作)而导致信息安全设备进行了动态因子的更新,而不与软件中的动态因子同步,进一步地,还可以在一个容错范围内对识别码进行验证,即第二装置还可以生成多个验证码,比对时第二装置比对获取的识别码与生成的多个验证码,如果该多个验证码中有一个验证码与该识别码相同,则允许运行该软件;如果该多个验证码均与该识别码不同,则进行异常处理,例如不允许运行该软件。
例如,密钥为5816,软件中的动态因子经过99次有效认证已经采用增加计数的方式更新为1434,在当前第100次认证时,主机在当前动态因子1434的基础上增加计数得到10个动态因子1436、1438、1440、1442、1444、1446、1448、1450、1452、1454,则包含1434共有11个动态因子,根据密钥5816和11个动态因子用DES算法对信息安全设备的唯一硬件标识码16071127进行加密计算,分别得到11个验证码:D8AE1D7792694CBC、11A007C042B6B152、48A1734518707504、905AF710BB1DA1D6、3F8067A573465A48、1E5E50ECD398A005、1980957B8D14E1CB、768EE8155DC0C7E0、905AF710BB1DA1D6、3F8067A573465A48和1E5E50ECD398A005。主机获取到信息安全设备生成的识别码后,与上述11个验证码逐一进行比对,如果该识别码与11个验证码中的某一个验证码相同,则本次认证通过,允许运行该软件,且根据当前匹配的验证码更新动态因子,用于下次认证的根据,如当前匹配的验证码为48A1734518707504,对应的动态因子为1438,则对其进行更新为1440。如果11个验证码中没有与该识别码相同的验证码,则本次认证失败,第二装置进行异常处理,例如不允许在主机上运行该软件。
实施例2
如图2所示,本发明实施例提供了一种软件保护的系统,包括第一装置、第二装置和信息安全设备;
第一装置包括:
设置模块,用于在该软件中设置算法、密钥和动态因子,在信息安全设备中设置相同的算法、密钥和动态因子;
第二装置包括:
第一通信模块,用于当第二装置获取上述软件和信息安全设备且安装该软件后,当需要运行该软件时,与信息安全设备建立连接,并与信息安全设备进行通信;
获取模块,用于通过第一通信模块获取信息安全设备生成的识别码;具体地,可以通过通信模块发送获取识别码的指令给信息安全设备,并通过通信模块接收信息安全设备返回的识别码;
验证码生成模块,用于根据软件中的算法、密钥和动态因子计算出验证码;
控制模块,用于比对获取模块得到的识别码与验证码生成模块得到的验证码,如果一致,则允许第二装置运行软件;否则,第二装置进行异常处理,例如不允许第二装置运行软件;
第一更新模块,用于当所述动态因子为事件同步因子时,按照与所述信息安全设备相同的方式对所述软件中的动态因子进行更新,得到第二更新后的动态因子,并将所述第二更新后的动态因子存储在所述软件中;
当该动态因子为时间同步因子时,按照与该信息安全设备相同的方式对该软件中的动态因子进行计时更新。
信息安全设备包括:
存储模块,用于存储第一装置的设置模块设置的算法、密钥和动态因子;
识别码生成模块,用于使用存储模块存储的算法、密钥和动态因子计算出识别码;
第二通信模块,用于与第二装置进行通信,将识别码生成模块得到的识别码发送给第二装置;
第二更新模块,用于包括存储单元或计时单元;
该存储单元,用于当所述动态因子为事件同步因子时,对所述信息安全设备内的动态因子进行更新,得到第一更新后的动态因子,并对所述第一更新后的动态因子进行存储;
该计时单元,用于当该动态因子为时间同步因子时,对该存储模块内的动态因子通过计时进行更新。
本实施例中的算法具体为HOPT、DES、RSA、SHA算法或由生产商预先设定的算法,动态因子具体为事件同步因子或时间同步因子。
当上述动态因子具体为时间同步因子时,图2中信息安全设备的第二更新模块还包括:
电池,用于给计时单元提供电量。
进一步的,该计时单元可以具体为计时芯片。
进一步地,图2中信息安全设备的第二更新模块具体包括:
更新单元,用于当识别码生成模块得到识别码后,对信息安全设备的存储模块存储的动态因子增加或减少指定的值。
进一步地,图2中第二装置的获取模块具体包括:
获取单元,用于当密钥为一个时,通过第二装置的第一通信模块向信息安全设备发送固定的获取识别码的指令,并通过第二装置的第一通信模块接收信息安全设备返回的识别码;
相应地,信息安全设备的识别码生成模块具体包括:
识别码生成单元,用于在接收到第二装置发来的获取识别码指令后,使用信息安全设备的存储模块存储的算法、密钥和动态因子计算出识别码。
进一步地,图2中第二装置的获取模块具体包括:
获取单元,用于当密钥为多个时,通过第二装置的第一通信模块向信息安全设备发送获取识别码的指令,指令中携带指定密钥的索引,并通过第二装置的第一通信模块接收信息安全设备返回的识别码;相应地,信息安全设备的识别码生成模块具体包括:
识别码生成单元,用于在接收到第二装置发来的获取识别码的指令后,使用信息安全设备的存储模块存储的算法、该指令中的索引对应的密钥和动态因子计算出识别码。
进一步地,图2中第二装置的控制模块具体包括:
比对单元,用于当验证码生成模块生成的验证码为多个时,比对获取模块得到的识别码与多个验证码;
控制单元,用于当比对单元比对出多个验证码中有一个验证码与识别码相同,则允许运行软件;当比对单元比对出多个验证码均与识别码不同,则进行异常处理,例如不允许运行软件。
进一步地,图2中第二装置还包括:
日志生成模块,用于当控制模块允许运行软件后,生成包含第二装置的第一更新模块更新后的动态因子的日志信息;
恢复模块,用于当第二装置重新安装软件时,根据日志生成模块生成的日志信息,将软件中的动态因子更新为日志信息中的动态因子。
本实施例中的信息安全设备的第二通信模块可以具体为USB接口、红外接口、蓝牙接口、并口、串口、射频接口和eSATA(External Serial Advanced Technology Attachment,外部串行高级技术附件)接口中的至少一种。
具体的,信息安全设备的存储模块、识别码生成模块、通信模块和更新模块可以集成在一颗安全控制芯片上来实现,如集成在有USB接口的芯片CY7C63813上。
本发明实施例通过在软件和信息安全设备中设置相同的算法、密钥和动态因子,将信息安全设备生成的识别码和第二装置生成的验证码进行比对并同步更新,来对软件进行保护。第二装置安装的软件只有在合法的信息安全设备通过认证后,才能运行使用,即使接口仿真软件盗窃了本次软件对信息安全设备进行验证过程中相关的交互数据,该数据对于下次软件对信息安全设备的验证过程是无效的,从而有效地保护了软件,防止软件被盗版。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (17)

1.一种软件保护的方法,其特征在于,所述方法包括:
第一装置在所述软件中设置算法、密钥和动态因子,在信息安全设备中设置相同的算法、密钥和动态因子;
第二装置获取所述软件和信息安全设备且安装所述软件后,当需要运行该软件时,与所述信息安全设备建立连接;
所述第二装置获取所述信息安全设备使用所述算法、密钥和动态因子计算出的识别码,并根据所述软件中的算法、密钥和动态因子计算出验证码;
所述第二装置比对所述识别码与所述验证码,如果一致,则允许运行所述软件;否则,进行异常处理;
当所述动态因子为事件同步因子时,所述信息安全设备对所述信息安全设备内的动态因子进行更新,得到第一更新后的动态因子,并对所述第一更新后的动态因子进行存储,所述第二装置按照相同的方式对所述软件中的动态因子进行更新,得到第二更新后的动态因子,并将所述第二更新后的动态因子存储在所述软件中;
当所述动态因子为时间同步因子时,所述信息安全设备对所述信息安全设备内的动态因子通过计时进行更新,所述第二装置按照相同的方式对所述软件中的动态因子进行计时更新。
2.根据权利要求1所述的软件保护的方法,其特征在于,所述算法具体为HOPT、DES、RSA、SHA算法或由生产商预先设定的算法。
3.根据权利要求1所述的软件保护的方法,其特征在于,所述更新具体为对所述动态因子增加或减少指定的值。
4.根据权利要求1所述的软件保护的方法,其特征在于,所述第二装置获取所述信息安全设备使用所述算法、密钥和动态因子计算出的识别码,具体包括:
当所述密钥为一个时,所述第二装置向所述信息安全设备发送固定的获取识别码的指令;
所述信息安全设备收到所述指令后,使用所述算法、密钥和动态因子计算出识别码,并将所述识别码发送给所述第二装置。
5.根据权利要求1所述的软件保护的方法,其特征在于,所述第二装置获取所述信息安全设备使用所述算法、密钥和动态因子计算出的识别码,具体包括:
当所述密钥为多个时,所述第二装置向所述信息安全设备发送获取识别码的指令,所述指令中携带指定密钥的索引;
所述信息安全设备收到所述指令后,使用所述算法、所述索引对应的密钥和所述动态因子计算出识别码,并将所述识别码发送给所述第二装置。
6.根据权利要求1所述的软件保护的方法,其特征在于,所述第二装置比对所述识别码与所述验证码,如果一致,则允许运行所述软件;否则,进行异常处理,具体包括:
当所述验证码为多个时,所述第二装置比对所述识别码与所述多个验证码,如果所述多个验证码中有一个验证码与所述识别码相同,则允许运行所述软件;如果所述多个验证码均与所述识别码不同,则进行异常处理。
7.根据权利要求1所述的软件保护的方法,其特征在于,所述方法还包括:
所述第二装置允许运行所述软件后,生成包含所述第二装置更新后的动态因子的日志信息,并存储所述日志信息;
当所述第二装置重新安装所述软件时,根据所述日志信息,将所述软件中的动态因子更新为所述日志信息中的动态因子。
8.一种软件保护的系统,其特征在于,所述系统包括第一装置、第二装置和信息安全设备;
所述第一装置包括:
设置模块,用于在所述软件中设置算法、密钥和动态因子,在所述信息安全设备中设置相同的算法、密钥和动态因子;
所述第二装置包括:
第一通信模块,用于当所述第二装置获取所述软件和信息安全设备且安装所述软件后,当需要运行该软件时,与所述信息安全设备建立连接,并与所述信息安全设备进行通信;
获取模块,用于通过所述第一通信模块获取所述信息安全设备生成的识别码;
验证码生成模块,用于根据所述软件中的算法、密钥和动态因子计算出验证码;
控制模块,用于比对所述获取模块得到的识别码与所述验证码生成模块得到的验证码,如果一致,则允许所述第二装置运行所述软件;否则,所述第二装置进行异常处理;
第一更新模块,用于当所述动态因子为事件同步因子时,按照与所述信息安全设备相同的方式对所述软件中的动态因子进行更新,得到第二更新后的动态因子,并将所述第二更新后的动态因子存储在所述软件中;
当所述动态因子为时间同步因子时,按照与所述信息安全设备相同的方式对所述软件中的动态因子进行计时更新;
所述信息安全设备包括:
存储模块,用于存储所述第一装置的设置模块设置的算法、密钥和动态因子;
识别码生成模块,用于使用所述存储模块存储的算法、密钥和动态因子计算出识别码;
第二通信模块,用于与所述第二装置进行通信,将所述识别码生成模块得到的识别码发送给所述第二装置;
第二更新模块,包括存储单元或计时单元;
所述存储单元,用于当所述动态因子为事件同步因子时,对所述信息安全设备内的动态因子进行更新,得到第一更新后的动态因子,并对所述第一更新后的动态因子进行存储;
所述计时单元,用于当所述动态因子为时间同步因子时,对所述存储模块内的动态因子通过计时进行更新。
9.根据权利要求8所述的软件保护的系统,其特征在于,所述算法具体为HOPT、DES、RSA、SHA算法或由生产商预先设定的算法。
10.根据权利要求8所述的软件保护的系统,其特征在于,所述第二更新模块还包括:
电池,用于给所述计时单元提供电量。
11.根据权利要求8所述的软件保护系统,其特征在于,所述计时单元具体为计时芯片。
12.根据权利要求8所述的软件保护的系统,其特征在于,所述信息安全设备的第二更新模块具体包括:
更新单元,用于对所述信息安全设备的存储模块存储的动态因子增加或减少指定的值。
13.根据权利要求8所述的软件保护的系统,其特征在于,所述第二装置的获取模块具体包括:
获取单元,用于当所述密钥为一个时,通过所述第二装置的第一通信模块向所述信息安全设备发送固定的获取识别码的指令,并通过所述第二装置的第一通信模块接收所述信息安全设备返回的识别码;
相应地,所述信息安全设备的识别码生成模块具体包括:
识别码生成单元,用于在接收到所述第二装置发来的获取识别码指令后,使用所述信息安全设备的存储模块存储的算法、密钥和动态因子计算出识别码。
14.根据权利要求8所述的软件保护的系统,其特征在于,所述第二装置的获取模块具体包括:
获取单元,用于当所述密钥为多个时,通过所述第二装置的第一通信模块向所述信息安全设备发送获取识别码的指令,所述指令中携带指定密钥的索引,并通过所述第二装置的第一通信模块接收所述信息安全设备返回的识别码;
相应地,所述信息安全设备的识别码生成模块具体包括:
识别码生成单元,用于在接收到所述第二装置发来的获取识别码的指令后,使用所述信息安全设备的存储模块存储的算法、所述指令中的索引对应的密钥和动态因子计算出识别码。
15.根据权利要求8所述的软件保护的系统,其特征在于,所述第二装置的控制模块具体包括:
比对单元,用于当所述验证码生成模块生成的验证码为多个时,比对所述获取模块得到的识别码与所述多个验证码;
控制单元,用于当所述比对单元比对出所述多个验证码中有一个验证码与所述识别码相同,则允许运行所述软件;当所述比对单元比对出所述多个验证码均与所述识别码不同,则进行异常处理。
16.根据权利要求8所述的软件保护的系统,其特征在于,所述第二装置还包括:
日志生成模块,用于当所述控制模块允许运行所述软件后,生成包含所述第二装置的第一更新模块更新后的动态因子的日志信息;
恢复模块,用于当所述第二装置重新安装所述软件时,根据所述日志生成模块生成的日志信息,将所述软件中的动态因子更新为所述日志信息中的动态因子。
17.根据权利要求8所述的软件保护的系统,其特征在于,所述信息安全设备的第二通信模块具体为USB接口、红外接口、蓝牙接口、并口、串口、射频接口和外部串行高级技术附件eSATA接口中的至少一种。
CN2008101041910A 2008-04-16 2008-04-16 软件保护的方法和系统 Expired - Fee Related CN101266638B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2008101041910A CN101266638B (zh) 2008-04-16 2008-04-16 软件保护的方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2008101041910A CN101266638B (zh) 2008-04-16 2008-04-16 软件保护的方法和系统

Publications (2)

Publication Number Publication Date
CN101266638A CN101266638A (zh) 2008-09-17
CN101266638B true CN101266638B (zh) 2010-04-21

Family

ID=39989050

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008101041910A Expired - Fee Related CN101266638B (zh) 2008-04-16 2008-04-16 软件保护的方法和系统

Country Status (1)

Country Link
CN (1) CN101266638B (zh)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101441692B (zh) * 2008-11-21 2014-09-03 北京市研祥兴业国际智能科技有限公司 实现计算机硬件和软件绑定的方法
WO2011131152A1 (zh) * 2010-04-23 2011-10-27 国民技术股份有限公司 智能密钥装置及提高网上交易和认证安全性的系统及方法
CN101916344B (zh) * 2010-08-31 2013-09-25 北京深思洛克软件技术股份有限公司 一种验证软件保护装置合法性的方法及系统
US8522030B2 (en) * 2010-09-24 2013-08-27 Intel Corporation Verification and protection of genuine software installation using hardware super key
CN101997880A (zh) * 2010-12-01 2011-03-30 湖南智源信息网络技术开发有限公司 一种用于网络页面或接口的安全验证方法及其装置
CN103136127B (zh) * 2011-11-28 2016-03-09 启碁科技股份有限公司 电子装置、电子装置识别系统及电子装置的识别方法
CN102891843B (zh) 2012-09-18 2015-04-29 北京深思洛克软件技术股份有限公司 本地服务单元认证安卓客户端应用程序的方法
CN103916243B (zh) * 2012-12-30 2018-06-26 比亚迪股份有限公司 一种控制器的动态加密方法及加密系统
CN105229652A (zh) * 2013-03-28 2016-01-06 爱迪德技术有限公司 检测针对软件应用的利用
CN103714277B (zh) * 2013-12-06 2017-01-25 联想(北京)有限公司 电子设备及其应用实例管理方法
CN103838988B (zh) * 2014-03-07 2016-08-17 北京深思数盾科技股份有限公司 信息安全保护方法和装置
CN104125239B (zh) * 2014-08-14 2017-08-25 北京锐安科技有限公司 一种基于数据链路加密传输的网络认证方法和系统
CN106034126B (zh) * 2015-03-17 2019-06-11 阿里巴巴集团控股有限公司 验证码的校验方法及装置
CN106169997A (zh) * 2016-07-04 2016-11-30 安徽天达网络科技有限公司 一种系统控制用户登录USB Key的制作方法
CN110162937B (zh) * 2018-02-09 2024-02-02 黄冈职业技术学院 基于网络通讯实现计算机软件保护的方法
CN112579990A (zh) * 2020-12-23 2021-03-30 深圳市兆威机电股份有限公司 一种电机控制程序的加密方法、装置及终端设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1322076A (zh) * 2000-04-28 2001-11-14 杨宏伟 动态口令认证系统及方法
CN1614924A (zh) * 2004-11-26 2005-05-11 王小矿 基于智能卡和动态密码的身份认证系统
CN1731721A (zh) * 2004-08-22 2006-02-08 西安海星现代科技股份有限公司 动态口令生成方法
CN1949241A (zh) * 2006-11-02 2007-04-18 北京飞天诚信科技有限公司 软件身份认证的方法和系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1322076A (zh) * 2000-04-28 2001-11-14 杨宏伟 动态口令认证系统及方法
CN1731721A (zh) * 2004-08-22 2006-02-08 西安海星现代科技股份有限公司 动态口令生成方法
CN1614924A (zh) * 2004-11-26 2005-05-11 王小矿 基于智能卡和动态密码的身份认证系统
CN1949241A (zh) * 2006-11-02 2007-04-18 北京飞天诚信科技有限公司 软件身份认证的方法和系统

Also Published As

Publication number Publication date
CN101266638A (zh) 2008-09-17

Similar Documents

Publication Publication Date Title
CN101266638B (zh) 软件保护的方法和系统
CN103136463B (zh) 用于电子装置的暂时安全开机流程的系统与方法
US7243240B2 (en) System and method for firmware authentication
CN101984575B (zh) 一种保护移动终端软件的方法和装置
CN100432890C (zh) 计算机开机身份认证系统及其认证方法
RU2538329C1 (ru) Устройство создания доверенной среды для компьютеров информационно-вычислительных систем
CN106295404B (zh) 基于安全内核的一体化soc芯片
CN109035519B (zh) 一种生物特征识别装置及方法
US20150019875A1 (en) Portable device for data encryption/decryption and/or compression/decompression
CN102165457A (zh) 票券授权的安全安装和引导
CN111815816B (zh) 一种电子锁安全系统及其密钥分发方法
CN111815812B (zh) 一种电子锁第三方开锁控制方法和系统
US10027639B2 (en) IC chip performing access control based on encrypted ID
CN111160879A (zh) 一种硬件钱包及其安全性提升方法和装置
CN111815814A (zh) 一种电子锁安全系统及其绑定认证方法
CN111125707A (zh) 一种基于可信密码模块的bmc安全启动方法、系统及设备
CN111815810A (zh) 一种电子锁安全开锁方法和装置
WO2013121275A1 (en) Portable device for data encryption/decryption and/or compression/decompression
CN100592317C (zh) 一种外围设备及其权限验证方法
CN114816549B (zh) 一种保护bootloader及其环境变量的方法及系统
CN107317925B (zh) 移动终端
CN111783120A (zh) 一种数据的交互方法、计算设备、bmc芯片及电子设备
CN111815815A (zh) 一种电子锁安全系统
KR20210029967A (ko) 보안단말기를 이용한 저장장치의 데이터 보안 관리 시스템 및 방법
CN116821020A (zh) Bmc控制器、信息安全系统以及信息交互方法

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
C56 Change in the name or address of the patentee

Owner name: FEITIAN TECHNOLOGIES CO., LTD.

Free format text: FORMER NAME: BEIJING FEITIAN CHENGXIN SCIENCE + TECHNOLOGY CO. LTD.

CP03 Change of name, title or address

Address after: 100085 Beijing city Haidian District Xueqing Road No. 9 Ebizal building B block 17 layer

Patentee after: Feitian Technologies Co.,Ltd.

Address before: 100083, Haidian District, Xueyuan Road, No. 40 research, 7 floor, 5 floor, Beijing

Patentee before: FEITIAN TECHNOLOGIES Co.,Ltd.

TR01 Transfer of patent right

Effective date of registration: 20171222

Address after: Beijing city Haidian District Xueqing Road No. 9 Ebizal building B building room 205

Patentee after: Beijing Jianshi Chengxin Technologies Co.,Ltd.

Address before: 100085 Beijing city Haidian District Xueqing Road No. 9 Ebizal building B block 17 layer

Patentee before: Feitian Technologies Co.,Ltd.

TR01 Transfer of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20100421

CF01 Termination of patent right due to non-payment of annual fee