加密狗装置及其软件保护方法

文档序号:6440658阅读:273来源:国知局
专利名称:加密狗装置及其软件保护方法
技术领域
本发明涉及一种加密技术,尤其涉及一种加密狗装置及其软件保护方法。
技术背景
随着科学技术高速发展、人力成本的提升,要求系统的自动化程度也越来越高,系统越智能,人力成本就越少。系统的智能程度除了取决于硬件之外,主要取决于智能系统的大脑——软件程序。软件的最大特点就是可移植性,这为开发者带来方便的同时也使得软件的版权得不到保护,容易被拷盗,从而对软件开发商造成经济损失,如何保护软件开发商的权益就成了软件开发商重中之重。
为了保护软件开发商的权益,减少软件开发商的损失,除了软件加密技术不断更新之外,硬件加密技术也在不断的发展,从早期的8位单片机加密狗发展到现在的32位智能卡加密狗,随着加密狗硬件处理能力的不断增强,计算机USB端口的普及,对软件的保护逐渐开始依赖于通用的加密算法,而不再只依赖于加密软件的加密编程技巧,功能也越来越复杂,从早期单纯的存入保密数据到现在的代码移植,动态链接库和控件调用。
加密狗丰富的功能为我们保护软件版权提供更多方式,如何充分利用加密狗现有的技术来降低软件被非法使用的可能性?图1为现有典型的使用加密狗进行代码移植加密的方法,把计算机端程序代码部分移植到加密狗内部,如果没有加密狗,计算机端程序缺少加密狗代码而使得计算机端程序无法执行或者执行结果出错,从而只需要管控加密狗授权就可以保护软件不会被非法使用。虽然计算机程序码移植到加密狗内部,但是受加密狗自身容量以及代码执行速度的限制,加密狗代码不可能太复杂,否则容易造成软件执行速度的降低,影响计算机软件的质量。
由图1可以看出,计算机端程序运行到需要调用加密狗代码时,需要将数据传递给加密狗,然后将加密狗代码执行结果返回给计算机端程序,计算机端程序根据返回结果执行后续代码。计算机程序调用加密狗程序是通过通讯接口(比如USB接口)实现的,加密狗程序执行结果也是由接口返回的,在与加密狗进行数据交换时,数据可以通过接口监视软件获取。由于加密狗代码复杂度比较低,破解者可以根据监控获取的数据进行破解加密狗代码,从而将加密狗代码还原达到破解的目的,最终造成软件开发商利益受损。发明内容
因此,本发明的目的之一是在于,提供一种加密狗装置及其软件保护方法。
依据本发明一实施例,提供了一种软件保护方法,适用于一加密狗装置,加密狗装置连接一计算机,该软件保护方法包含下列步骤(a)当计算机因执行一程序而传递一加密数据至加密狗装置时,对加密数据进行解密;(b)用解密后的数据执行一加密狗代码,并对加密狗代码执行后的结果进行加密;(C)把加密后的结果返回给计算机,使计算机对加密结果进行解密,进而用结果执行后续之该程序。
计算机利用一第一加密算法对数据加密,步骤(b)可包含利用一第二加密算法对加密狗代码执行后的结果进行加密,其中第一、第二加密算法不同。
步骤(b)可包含在执行该加密狗代码时,调用该计算机一动态链接库。
上述自计算机传递之数据可包含至少一授权码,步骤(b)包含验证授权码;当授权码通过验证时,执行授权码所对应的加密狗代码。
依据本发明另一实施例,加密狗装置包含一通讯接口、一解密单元、一处理单元与一加密单元。加密单元耦接处理单元,处理单元耦接解密单元,解密单元耦接通讯接口,通讯接口用于连接一计算机。当计算机因执行一程序而传递一加密数据至加密狗装置时,解密单元用于对加密数据进行解密;处理单元用于利用解密后的数据执行一加密狗代码;加密单元用于对加密狗代码执行后的结果进行加密,把加密后的结果透过通讯接口返回给计算机,使计算机对加密结果进行解密,进而用结果执行后续之程序。
计算机利用一第一加密算法对数据加密,加密单元利用一第二加密算法对加密狗代码执行后的结果进行加密,其中第一、第二加密算法不同。
处理单元可以在执行该加密狗代码时,调用该计算机的一动态链接库。
上述自计算机传递之数据包含至少一授权码,加密狗装置包含一验证单元。验证单元耦接解密单元与处理单元,用于验证授权码。当授权码通过验证时,由处理单元执行授权码所对应的加密狗代码。
上述通讯接口可为USB接口。
综上所述,本发明的技术方案与现有技术相比具有明显的优点和有益效果。藉由上述技术方案,可达到相当的技术进步,并具有产业上的广泛利用价值,其至少具有下列优点
1.藉由密文通讯,保证了数据的安全性;
2.调用外部动态链接库,不仅增进软件代码的整体执行效率,而且提升了监控端口数据破解的难度。


读者在参照附图阅读了本发明的具体实施方式
以后,将会更清楚地了解本发明的各个方面。其中,
图1为现有典型的使用加密狗进行代码移植加密的方法;
图2是依照本发明一实施例的使用加密狗代码移植的流程图3是依照本发明一实施例的使用加密狗调用外部动态链接库的流程图4是依照本发明一实施例的使用加密狗调用外部动态链接库的详细流程图5是依照本发明一实施例的使用加密狗授权后的软件流程图;以及
图6是依照本发明一实施例的加密狗装置的方块图。
主要组件符号说明
100 计算机
200 加密狗装置
210:通讯接口
220 解密单元
230:处理单元
240 加密单元
250 验证单元
300 动态链接库具体实施方式
为了使本申请所揭示的技术内容更加详尽与完备,可参照附图以及本发明的下述各种具体实施例,附图中相同的标记代表相同或相似的组件。然而,本领域的普通技术人员应当理解,下文中所提供的实施例并非用来限制本发明所涵盖的范围。此外,附图仅仅用于示意性地加以说明,并未依照其原尺寸进行绘制。
在本申请中,涉及“耦接(coupled with) ”的描述,其可泛指一组件透过其他组件而间接连接至另一组件,或是一组件无须透过其他组件而直接连接至另一组件。
在本申请中,除非内文中对于冠词有所特别限定,否则“一”与“该”可泛指单个或多个。
本文中所使用的“约”、“大约”或“大致”用于修饰任何可些微变化的数量,但这种些微变化并不会改变其本质。于实施方式中若无特别说明,则代表以“约”、“大约”或“大致”所修饰数值的误差范围一般是容许在百分之二十以内,较佳地是于百分之十以内,而更佳地则是于百分之五以内。
由图2可以看出,针对图1因通讯数据不安全而造成软件安全性降低问题,图2做了一些额外的保护措施,来解决图1暴露的问题。在需要调用加密狗代码时,计算机100中的程序首先将需要传递给加密狗装置200的数据进行数据加密,加密算法采用自定义的第一加密算法,然后将加密后的数据经过通讯接口传递给加密狗装置200 ;加密狗首先对接收到数据进行解密,然后用解密后的数据执行加密狗代码,最后把代码执行结果再次使用自定义的第二加密算法进行加密,然后把加密后的结果返回给计算机100中的程序;计算机100再次把返回后的密文进行解密,并用返回后的结果执行后续之程序。
与图1比较而言,图2通过加密与加密狗装置200通讯的数据,保证通过通讯接口的所有数据为加密后的密文,即密文通讯,这样保证了数据的安全性,即使获取到了通讯端口的数据,由于没有解密算法,也无法推算出正确的数据,更加无法根据获取的数据破解加密狗代码,从而保证了加密狗内部数据和内部代码的安全性。
为了增加通讯数据的安全性,可以对传递给加密狗装置200数据与加密狗装置 200返回数据采用两套完全不同的自定义算法,并且加密算法完全自定义,包括加密狗厂商在内的任何人无法得知,大大增加了通过监控端口通讯数据来破解软件的难度,保证了软件开发商的利益。
由于加密狗代码指令比较简单,执行速度也较慢,为了方便软件开发商对软件代码进行移植,同时为了在不影响软件速度的前提下使更多的功能在加密狗内部实现,于一实施例中,采用了加密狗装置200内部代码调用外部动态链接库(DLL)300的公共代码,如图3所示。在对软件代码进行移植时,有的功能算法比较重要,希望在加密狗装置200内部进行执行,但是由于移植的代码比较复杂,加密狗自身指令难以实现移植或者移植后执行效率低,影响软件代码的整体执行效率,那么加密狗代码调用外部动态链接库300无疑是一种最佳解决方案,如图4所示,把需要移植的加密狗的代码中难以移植、运行速度较慢的代码在计算机100写成动态链接库300,加密狗装置200内部代码在需要时调用计算机100 的动态链接库300即可。通过调用外部动态链接库300的公共代码,使得加密狗代码和计算机代码互相调用,增加了代码空间复杂度,有效防止非法用户调试跟踪代码进行破解的可能性。
如图4所示,加密狗装置200调用外部动态链接库300需要与计算机100进行通讯,但是该通讯数据是中间数据,不是最终需要的数据,从而起到数据干扰作用,大大提升了监控端口数据破解的难度。
图2和图3分别使用了加密狗的代码移植、支持自定义算法功能和调用外部动态链接库300功能,正是由于加密狗支持这些功能,我们通过这些功能的特性,灵活运用,达到在不影响软件效率的情况下提高软件的安全性,保证了软件开发商的利益不受损失。
图5是对加密狗授权后整个代码运行的流程图,由图5可以看出,加密狗代码执行之前,首先就会对当前加密狗权限进行检查,如果没有加密狗装置200或者加密狗装置不是软件对应的加密狗,加密狗代码无法执行,从而返回结果错误。
由于不同权限的人需求不一样,比如客户主管需要使用多套软件,如果每套软件需要一个加密狗装置,那么主管必须随身携带多个加密狗装置,这会对客户造成不便,为了解决这个问题,于一实施例中,例如可采用加密狗的授权码授权功能可以快速解决,加密狗采用授权加密狗对用户加密狗进行授权,支持对用户加密狗授权多个授权码,如果需要加密狗使用多个软件,只需要对加密狗授权每个软件的授权码即可。
图6是依照本发明一实施例的加密狗装置200的方块图。加密狗装置200包含通讯接口 210、解密单元220、处理单元230与加密单元M0。加密单元240耦接处理单元230, 处理单元230耦接解密单元220,解密单元220耦接通讯接口 210,通讯接口 210用以连接计算机100。
当计算机100因执行一程序而传递一加密数据至加密狗装置200时,解密单元220 用以对加密数据进行解密;处理单元230用以利用解密后的数据执行一加密狗代码;加密单元240用以对加密狗代码执行后的结果进行加密,把加密后的结果透过通讯接口返回给计算机100,使计算机100对加密结果进行解密,进而用结果执行后续之程序。
上述自计算机100传递之数据包含至少一授权码,加密狗装置200包含验证单元 250。验证单元250耦接解密单元220与处理单元230,用以验证授权码。当授权码通过验证时,由处理单元230执行授权码所对应的加密狗代码。
为了增加通讯数据的安全性,可以对传递给加密狗装置200数据与加密狗装置 200返回数据采用两套完全不同的自定义算法。于本实施例中,计算机100利用第一加密算法对数据加密,加密单元240利用第二加密算法对加密狗代码执行后的结果进行加密,其中第一、第二加密算法不同。
由于加密狗代码指令比较简单,执行速度也较慢,为了方便软件开发商对软件代码进行移植,同时为了在不影响软件速度的前提下使更多的功能在加密狗内部实现,处理单元230可以在执行该加密狗代码时,调用该计算机100的动态链接库300。藉此,把需要移植的加密狗的代码中难以移植、运行速度较慢的代码在计算机100写成动态链接库300, 加密狗装置200内部代码在需要时调用计算机100之动态链接库300即可。通过调用外部动态链接库300的公共代码,使得加密狗代码和计算机代码互相调用,增加了代码空间复杂度,有效防止非法用户调试跟踪代码进行破解的可能性。
另外,上述通讯接口可为USB接口,以符合普遍的需求。
如上所述的解密单元220、处理单元230、加密单元240和验证单元250等,其具体实施方式
可为软件、硬件与/或轫体。举例来说,若以执行速度及精确性为首要考虑,则这些单元基本上可选用硬件与/或轫体为主;若以设计弹性为首要考虑,则该等单元基本上可选用软件为主;或者,该等单元可同时采用软件、硬件及轫体协同作业。应了解到,以上所举的这些例子并没有所谓孰优孰劣之分,亦并非用以限制本发明,熟习此项技艺者当视当时需要,弹性选择该等单元的具体实施方式

上文中,参照附图描述了本发明的具体实施方式
。但是,本领域中的普通技术人员能够理解,在不偏离本发明的精神和范围的情况下,还可以对本发明的具体实施方式
作各种变更和替换。这些变更和替换都落在本发明权利要求书所限定的范围内。
权利要求
1.一种软件保护方法,适用于一加密狗装置,该加密狗装置连接一计算机,其特征在于,该软件保护方法包含(a)当该计算机因执行一程序而传递一加密数据至该加密狗装置时,对该加密数据进行解密;(b)用解密后的该数据执行一加密狗代码,并对该加密狗代码执行后的结果进行加密;(c)把加密后的该结果返回给该计算机,使该计算机对该加密结果进行解密,进而用该结果执行后续之该程序。
2.如权利要求1所述的软件保护方法,其特征在于,该计算机利用一第一加密算法对该数据加密,步骤(b)包含利用一第二加密算法对该加密狗代码执行后的该结果进行加密,其中该第一、第二加密算法不同。
3.如权利要求1所述的软件保护方法,其特征在于,步骤(b)包含在执行该加密狗代码时,调用该计算机的一动态链接库。
4.如权利要求1所述的软件保护方法,其特征在于,该数据包含至少一授权码,步骤 (b)包含验证该授权码;当该授权码通过验证时,执行该授权码所对应的该加密狗代码。
5.加密狗装置,其特征在于,所述加密狗装置包含一通讯接口,用于连接一计算机;一解密单元,耦接该通讯接口,用于当该计算机因执行一程序而传递一加密数据至该加密狗装置时,对该加密数据进行解密;一处理单元,耦接该解密单元,用于利用解密后的该数据执行一加密狗代码;以及一加密单元,耦接该处理单元,用于对该加密狗代码执行后的结果进行加密,把加密后的该结果透过该通讯接口返回给该计算机,使该计算机对该加密结果进行解密,进而用该结果执行后续之该程序。
6.如权利要求5所述的加密狗装置,其特征在于,该计算机利用一第一加密算法对该数据加密,该加密单元利用一第二加密算法对该加密狗代码执行后的该结果进行加密,其中该第一、第二加密算法不同。
7.如权利要求5所述的加密狗装置,其特征在于,该处理单元在执行该加密狗代码时, 调用该计算机的一动态链接库。
8.如权利要求5所述的加密狗装置,其特征在于,该数据包含至少一授权码,该加密狗装置包含一验证单元,耦接该解密单元与该处理单元,用于验证该授权码,当该授权码通过验证时,由该处理单元执行该授权码所对应的该加密狗代码。
9.如权利要求5所述的加密狗装置,其特征在于,该通讯接口为USB接口。
全文摘要
本发明提供了一种加密狗装置及其软件保护方法。此软件保护方法包含下列步骤当计算机因执行一程序而传递一加密数据至加密狗装置时,对加密数据进行解密;用解密后的数据执行一加密狗代码,并对加密狗代码执行后的结果进行加密;把加密后的结果返回给计算机,使计算机对加密结果进行解密,进而用此结果执行后续之程序。采用本发明,不仅可藉由密文通讯,保证了数据的安全性,还可调用外部动态链接库,增进软件代码的整体执行效率,而且提升了监控端口数据破解的难度。
文档编号G06F21/00GK102521541SQ20111040791
公开日2012年6月27日 申请日期2011年12月9日 优先权日2011年12月9日
发明者吴拥军, 商福进, 杨彦龙, 颜良益 申请人:中达光电工业(吴江)有限公司, 台达电子企业管理(上海)有限公司, 台达电子工业股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1