软件保护的方法和系统技术方案

技术编号:2825204 阅读:152 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种软件保护的方法和系统,属于软件保护领域。所述方法包括:第一装置分别在软件和信息安全设备中设置相同的算法、密钥和动态因子;第二装置获取所述软件和信息安全设备且安装该软件后,当需要运行该软件时,与信息安全设备建立连接;第二装置获取信息安全设备使用算法、密钥和动态因子生成的识别码,与根据软件中的算法、密钥和动态因子生成的验证码进行比对,一致则允许运行该软件;否则进行异常处理;信息安全设备及第二装置按照相同方式更新各自的动态因子。所述系统包括第一装置、第二装置和信息安全设备。本发明专利技术实现了有效地对软件进行保护,防止接口仿真程序对软件进行盗版。

【技术实现步骤摘要】

本专利技术涉及软件保护领域,特别涉及一种软件保护的方法和系统
技术介绍
目前对软件的使用权进行保护的方法最流行的是使用加密锁这种加密工具。加密锁加密是现有加密技术的主流方法,通过在计算机的通信接口插上一个信息安全设备——加密锁,并配合特定的软件保护,使用户软件离开加密锁就无法运行,来实现软件产品的保护。信息安全设备是一种带有微处理器的小型硬件设备,它通过计算机的通信接口与计算机连接,具有密钥生成、安全存储密钥、预置加密算法等功能。信息安全设备与密钥相关的运算完全在设备内部运行,且信息安全设备具有抗攻击的特性,安全性极高。信息安全设备通常通过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算法或由生产商预先设定的算法。所述动态因子具体为事件同步因子,所述第二装置还包括:存储模块,用于存储所述第二装置的更新模块更新后的动态因子。所述动态因子具体为时间同步因子,所述信息安全设备的更新模块具体包括:-->计时单元,用于对所述信息安全设备的存储模块存储的动态因子进行计时更新;电池,用于给所述计时单元提供电量。所述计时单元具体为计时芯片。所述信息安全设备的更新模块具体包括:更新单元,用于对所述信息安全设备的存储模块存储的动态因子增加或减少指定的值。所述第二装置的获取模块具体包括:获取单元,用于当所述密钥为一个时,通过所述第二装置的通信模块向所述信息安全设备发送固定的获取识别码的指令,并通过所述第二装置的通信模块接收所述信息安全设备返回的识别码;相应地,所述信息安全设备的识别码生成模块具体包括:识别码生成单元,用于在接收到所述第二装置发来的获取识别码指令后,使用所述信息安全设备的存储模块存储的算法、密钥和动态因子计算出识别码。所述第二装置的获取模块具体包括:获取单元,用于当所述密钥为多个时,通过所述第二装置的通信模块向所述信息安全设备发送获取识别码的指令,所述指令中携带指定密钥的索引,并通过所述第二装置的通信模块接收所述信息安全设备返回的识别码;相应地,所述信息安全设备的识别码生成模块具体包括:识别码生成单元,用于在接收到所述第二装置发来的获取识别码的指令后,使用所述信息安全设备的存储模块存储的算法、所述指令中的索引对应的密钥和动态因子计算出识别码。所述第二装置的控制模块具体包括:比对单元,用于当所述验证码生成模块生成的验证码为多个时,比对本文档来自技高网...

【技术保护点】
一种软件保护的方法,其特征在于,所述方法包括:第一装置在软件中设置算法、密钥和动态因子,在信息安全设备中设置相同的算法、密钥和动态因子;第二装置获取所述软件和信息安全设备且安装所述软件后,当需要运行该软件时,与所述信息安全设备建立连接;所述第二装置获取所述信息安全设备使用所述算法、密钥和动态因子计算出的识别码,并根据所述软件中的算法、密钥和动态因子计算出验证码;所述第二装置比对所述识别码与所述验证码,如果一致,则允许运行所述软件;否则,进行异常处理;所述信息安全设备对所述信息安全设备内的动态因子进行更新,所述第二装置按照相同的方式对所述软件中的动态因子进行更新。

【技术特征摘要】
1.一种软件保护的方法,其特征在于,所述方法包括:第一装置在软件中设置算法、密钥和动态因子,在信息安全设备中设置相同的算法、密钥和动态因子;第二装置获取所述软件和信息安全设备且安装所述软件后,当需要运行该软件时,与所述信息安全设备建立连接;所述第二装置获取所述信息安全设备使用所述算法、密钥和动态因子计算出的识别码,并根据所述软件中的算法、密钥和动态因子计算出验证码;所述第二装置比对所述识别码与所述验证码,如果一致,则允许运行所述软件;否则,进行异常处理;所述信息安全设备对所述信息安全设备内的动态因子进行更新,所述第二装置按照相同的方式对所述软件中的动态因子进行更新。2.根据权利要求1所述的软件保护的方法,其特征在于,所述算法具体为HOPT、DES、RSA、SHA算法或由生产商预先设定的算法。3.根据权利要求1所述的软件保护的方法,其特征在于,所述动态因子具体为事件同步因子,所述方法还包括:所述信息安全设备对更新后的动态因子进行存储,所述第二装置将更新后的动态因子存储在所述软件中。4.根据权利要求1所述的软件保护的方法,其特征在于,所述动态因子具体为时间同步因子,所述信息安全设备对所述信息安全设备内的动态因子进行更新,所述第二装置按照相同的方式对所述软件中的动态因子进行更新,具体包括:所述信息安全设备对所述信息安全设备内的动态因子通过计时进行更新,所述第二装置按照相同的方式对所述软件中的动态因子进行计时更新。5.根据权利要求1所述的软件保护的方法,其特征在于,所述更新具体为对所述动态因子增加或减少指定的值。6.根据权利要求1所述的软件保护的方法,其特征在于,所述第二装置获取所述信息安全设备使用所述算法、密钥和动态因子计算出的识别码,具体包括:当所述密钥为一个时,所述第二装置向所述信息安全设备发送固定的获取识别码的指令;所述信息安全设备收到所述指令后,使用所述算法、密钥和动态因子计算出识别码,并将所述识别码发送给所述第二装置。7.根据权利要求1所述的软件保护的方法,其特征在于,所述第二装置获取所述信息安全设备使用所述算法、密钥和动态因子计算出的识别码,具体包括:当所述密钥为多个时,所述第二装置向所述信息安全设备发送获取识别码的指令,所述指令中携带指定密钥的索引;所述信息安全设备收到所述指令后,使用所述算法、所述索引对应的密钥和所述动态因子计算出识别码,并将所述识别码发送给所述第二装置。8.根据权利要求1所述的软件保护的方法,其特征在于,所述第二装置比对所述识别码与所述验证码,如果一致,则允许运行所述软件;否则,进行异常处理,具体包括:当所述验证码为多个时,所述第二装置比对所述识别码与所述多个验证码,如果所述多个验证码中有一个验证码与所述识别码相同,则允许运行所述软件;如果所述多个验证码均与所述识别码不同,则进行异常处理。9.根据权利要求1所述的软件保护的方法,其特征在于,所述方法还包括:所述第二装置允许运行所述软件后,生成包含所述第二装置更新后的动态因子的日志信息,并存储所述日志信息;当所述第二装置重新安装所述软件时,根据所述日志信息,将所述软件中的动态因子更新为所述日志信息中的动态因子。10.一种软件保护的系统,其特征在于,所述系统包括第一装置、第二装置和信息安全设备;所述第一装置包括:设置模块,用于在软件中设置算法、密钥和动态因子,在所述信息安全设备中设置相同的算法、密钥和动态因子;所述第二装置包括:通信模块,用于当所述第二装置获取所述软件和信息安全设备且安装所述软件后,当需要运行该软件时,与所述信息安全设备建立连接,并与所述信息安全设备进行通信;获取模块,用于通过所述通信模块获取所述信息安全设备生成的识别码;验证码生成模块,用于根据所述软件中的算法、密钥和动态因子...

【专利技术属性】
技术研发人员:陆舟于华章
申请(专利权)人:北京飞天诚信科技有限公司
类型:发明
国别省市:11[中国|北京]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1