软件狗及其实现软件保护的方法

文档序号:6612854阅读:326来源:国知局
专利名称:软件狗及其实现软件保护的方法
技术领域
本发明涉及软件保护技术,特别是涉及一种软件狗及其实现软件保护的方法。
背景技术
软件狗是目前使用在计算机上的用于软件保护的硬件产品。当受保护软件在计算机上运 行时,软件狗须通过计算机并行接口如打印机接口,或串行接口如RS232接口,或通用串行 总线(USB)接口与计算机保持有线连接,软件狗在计算机外设接口上的频繁插拔, 一方面会 降低软件狗本身的可靠性,另一方面也会对软件狗与计算机之间的连接接口造成损害。
目前, 一套软件狗仅对应一个受保护软件,由于软件狗与计算机之间是通过有线方式连 接的,当在同一台计算机上运行多个受保护软件时,必然会占用计算机上有限的外设接口, 这一方面限制了不同受保护软件在同一台计算机上的使用数量,另一方面也限制了其它的计 算机外部设备,如USB键盘、鼠标或打印机的使用。

发明内容
本发明的目的在于提供一种软件狗,能够保证软件狗的可靠使用。 本发明的另一目的在于提供一种软件狗实现软件保护的方法,能够保证软件狗的可靠使用。
本发明的目的是通过如下技术方案实现的;
一种软件狗,包括控制单元、保护存储单元、认证单元、包括无线网络接口模块的通信 单元和用于为软件狗中的各组成单元提供工作电源的电源单元,其中,
所述控制单元用于接收来自受保护软件使用者通过无线网络接口模块发送的使用指令, 向认证单元发送合法性认证通知;并在合法性认证成功后,向保护存储单元发送启动关键信 息通知;
所述认证单元用于存储合法性认证参数,并当接收到来自控制单元的合法性认证通知时, 通过无线网络接口模块通知受保护软件使用者启动合法性认证过程;以及用于根据通过无线 网络接口模块接收到的来自受保护软件使用者的认证请求信息与自身存储的合法性认证参数进行合法性认证,并向控制单元返回合法性认证响应;
所述保护存储单元用于存储受保护软件的关键信息以及执行关键信息所需的功能参数, 并当接收到来自控制单元的启动关键信息通知时,通知受保护软件使用者启动受保护软件; 以及用于在接收到受保护软件使用者通过无线网络接口模块发送的关键信息调用指令时,利 用自身存储的功能参数调用受保护软件的关键信息,向控制单元返回关键信息调用完成指令, 并在控制单元的控制下,将关键信息调用结果经由无线网络接口模块返回给受保护软件使用 者。
其中,当所述使用者为两个以上时,所述通信单元进一步包括无线代理模块,用于通过 分时访问或交错访问方式协调各使用者对软件狗的访问。
其中,所述认证单元用于存储一组以上的合法性认证参数,各组合法性认证参数对应于 不同的受保护软件的不同使用者;所述通信单元进一步包括无线代理模块,用于协调针对不 同受保护软件的合法性认证过程。
此外,所述无线代理模块还用于对通过所述无线网络接口模块发送给使用者的信息进行 加密,和/或对通过无线网络接口模块接收到的使用者所发送的信息进行解密。
一种软件狗实现软件保护的方法,在软件狗中预先存储受保护软件的关键信息以及执行 关键信息所需的功能参数,该方法还包括
使用者需要使用受保护软件时,软件狗通过无线通信方式对受保护软件的使用者进行合 法性认证;
所述使用者通过认证后,通过无线通信方式从软件狗调用受保护软件的关键信息以启动 受保护软件。
其中,所述软件狗中预先存储有合法性认证参数;所述认证过程具体为 所述软件狗接收来自使用者的使用指令,启动对使用者的合法性认证过程,通过无线网 络接收来自使用者的认证请求信息,判断接收到的认证请求信息与自身已存储的合法性认证 参数是否一致,如果一致,则判定合法性认证成功;否则,判定合法性认证失败。
其中,所述使用者为用户和/或受保护软件运行环境;当使用者为用户时,所述合法性认 证参数包括用户标识和用户授权信息;当使用者为受保护软件运行环境时,所述合法性认证 参数包括可信计算模块TPM标识、硬件设备的介质访问控制MAC地址、CPU标识、硬盘标识
和、受保护软件标志及版本信息。
其中,所述关键信息为受保护软件的关键功能或操作。当所述使用者为两个以上时,该方法还包括软件狗采用分时访问或交错访问方式协调 各使用者其的访问。
此外,该方法还包括所述软件狗对发送给使用者的信息进行加密。
为了保证软件狗的可靠使用,本发明的软件狗采用了无线通信方式,软件狗不占用运行 受保护软件的设备的外设接口,如计算机的并行接口、串行接口或USB接口,软件狗不会在 所述设备上频繁插拔,这样, 一方面增强了软件狗本身的可靠性;另一方面也不会造成对软 件狗与计算机之间的连接线的损害,这同时也保证了软件狗的工作可靠性。
此外,本发明通过在软件狗存储对应多套受保护软件的合法性认证参数,实现了可用同 --个软件狗支持不同的受保护软件。


下面将参照附图详细描述本发明的示例性实施例,使本领域的普通技术人员更清楚本发 明的上述及其它特征和优点,附图中-
图1是本发明软件狗的组成结构示意图2是本发明软件狗实现软件保护的方法的流程图3a是本发明同一台计算机上支持多个软件狗的应用场景示例;
图3b是本发明同一个软件狗供多台计算机使用的应用场景示例;
图3c是本发明同一个软件狗支持运行在同一台计算机上的不同受保护软件的应用场景 示例;
图4是本发明同一软件运行环境中支持多个软件狗的实施例的组成结构示意图。
具体实施例方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发 明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用 于限定本发明。
图1是本发明软件狗的组成结构示意图,如图1所示,根据本发明的软件狗可包括控 制单元100、保护存储单元101、认证单元102、包括无线网络接口模块1031的通信单元103 和用于为软件狗中的各组成单元提供工作电源的电源单元104。
其中,控制单元100用于协调软件狗中各组成单元的工作。使用者在使用受保护软件时,可通过无线网络经由通信单元103的无线网络接口模块1031向控制单元100发出携带有用户 标识及受保护软件标志的使用指令,控制单元100用于在接收到该使用指令后,向认证单元 102发送合法性认证通知。需要说明的是,使用者是通过受保护软件的识别模块提供的界面 向软件狗发送使用指令的,受保护软件的识别模块的实现是现有技术且与本发明软件狗的实 现无关,这里不再详细描述。控制单元100还用于接收来自认证单元102的合法性认证响应, 若为合法性认证成功响应,则控制单元100可通过无线网络接口模块1031向使用者发送启动 受保护软件通知;若为合法性认证失败响应,则可通过无线网络接口模块1031向使用者发送 退出受保护软件通知。
使用者在接收到所述启动受保护软件通知后,可通过本发明软件狗的无线网络接口模块 1031向控制单元100发出启动指令,控制单元100用于在收到该启动指令后,向保护存储单 元101发送启动关键信息通知。
此外,控制单元100还用于接收来自保护存储单元101的关键信息调用完成指令,并控 制保护存储单元101将关键信息调用结果经由无线网络接口模块1031返回给使用者。
保护存储单元101用于存储受保护软件的关键信息即程序片段,比如受保护软件提供商 预先存储在软件狗中的关键功能或操作,以及执行关键信息所需的相关功能参数如关键制造 工艺的配方、输入参数等。当接收到来自控制单元100的启动关键信息通知时,保护存储单 元101用于通过无线网络接口模块1031通知使用者启动关键信息,并在接收到使用者通过无 线网络接口模块1031发送的携带有与受保护软件标志对应的关键信息标识的关键信息调用 指令后,利用自身存储的相关功能参数,调用关键信息标识对应的受保护软件的关键功能或 操作,向控制单元IOO返回关键信息调用完成指令,并将关键信息调用结果通过控制单元100 的控制,经由无线网络接口模块1031返回给使用者。需要说明的是,使用者是通过受保护软 件的关键信息调用模块提供的界面向软件狗发送关键信息调用指令的,受保护软件的关键信 息调用模块的实现是现有技术且与本发明软件狗的实现无关,这里不再详细描述。
保护存储单元101中存储的关键信息是受保护软件提供商预先存储在保护存储单元101 中的,该软件狗之外的其它实体不能读取这些受保护软件的关键信息,而只能通过软件狗中 的控制单元IOO控制来读取并执行。保护存储单元101中可以存储多个受保护软件的关键信 息,即存储一个或一个以上的关键功能或操作,不同的关键功能或操作对应不同的受保护软 件,各个受保护软件的关键信息采用不同的标识进行区分,不同的关键信息标识与不同的关 键功能或操作对应存储在保护存储单元101中,以便保护存储单元101接收到关键信息调用 指令时,执行相应受保护软件对应的关键信息。认证单元102用于实现对受保护软件的使用者的合法性认证。认证单元102中存储有合 法性认证参数,比如,针对某个所述使用者的一组合法性认证参数可以包括用户标识(USER ID)和用户授权信息,其中用户授权信息包括认证密码、PIN号、受保护软件标志及版本信 息等。当接收到来自控制单元100的合法性认证通知时,认证单元102用于通知使用者启动 合法性认证过程。当接收到使用者通过无线网络接口模块1031发送的认证请求信息时,认证 单元102用于判断接收到的认证请求信息与自身存储的合法性认证参数是否一致,如果一致, 则向控制单元100返回合法性认证成功响应;否则,向控制单元100返回合法性认证失败响 应。
所述认证单元102中还可以存储一组或一组以上的合法性认证参数,各组合法性认证参 数对应于不同受保护软件的不同使用者,当合法性认证参数包括多组时,通信单元103中还 可进一步包括无线代理模块1032,用于协调针对不同受保护软件的不同使用者的合法性认证 过程。
认证单元102对受保护软件使用者的认证可以只是进行上述对用户的认证,也可以只是 对运行受保护软件的设备的进行认证,在对运行受保护软件的设备进行认证时,合法性认证 参数可以包括可信计算模块(TPM)标识、所述设备的介质访问控制(MAC)地址、CPU ID、 硬盘ID、受保护软件标志及版本信息等。此外,认证单元102对受保护软件使用者的认证还 可以是针对受保护软件用户和运行受保护软件的设备的双重认证。
需要说明的是,合法性认证过程属于本领域技术人员公知的技术手段,合法性认证的具 体实现方法也很多,这里并不用于限定本发明的范围。
通信单元103,用于通过无线网络接口模块1031实现软件狗与使用者之间的无线通信。 电源单元104可以使用电池供电、无线供电或其它方便的供电方式。
软件狗的具体形式可以是具备无线功能的智能卡、生物信息设备、门卡等;或者是移动 设备如手机、个人数字助理(PDA)、射频识别(RFID, Radio Frequency Identification) 模块等;也包括含TPM模块的PC等设备。
为了进一步保护软件狗与使用者之间的通信安全,通信单元103中还可进一歩包括无线 代理模块1032,用于对通过无线网络接口模块1031发送给使用者的信息进行加密,和/或对 通过无线网络接口模块1031接收到的使用者所发送的信息进行解密。
图2是本发明软件狗实现软件保护的方法的流程图,结合图1,本发明软件狗实现软件 保护的方法包括以下步骤
步骤200:在软件狗中预先存储受保护软件的关键信息以及执行关键信息所需的功能参数。
步骤201:使用者需要使用受保护软件时,软件狗通过无线通信方式对使用者进行合法 性认证。
本歩骤中,软件狗中存储有合法性认证参数,并通过无线网络接收来自使用者的认证请 求信息,判断接收到的认证请求信息与自身已存储的合法性认证参数是否一致,如果一致, 则判定合法性认证成功;否则,判定合法性认证失败。需要说明的是,合法性认证过程属于 本领域技术人员公知的技术手段,合法性认证的具体实现方法也很多,这里并不限定本发明 的范围。
上述合法性认证过程可以只是对受保护软件的用户的认证,也可以只是对运行受保护软 件的设备的认证,还可以是对用户和运行受保护软件的设备的双重认证。在对用户进行认证 时, 一组合法性认证参数可以包括用户标识(USER ID)、授权信息如认证密码、PIN号、受 保护软件标志及版本信息等;在对受保护软件所运行的设备的进行认证时, 一组合法性认证 参数可以包括TPM标识、MAC地址、设备的CPUID、硬盘ID以及受保护软件标志及版本信息 等。
步骤202:使用者通过合法性认证后,通过无线通信方式从软件狗调用关键信息以启动
受保护软件。
当使用者通过合法性认证后,启动受保护软件,并从软件狗调用所需关键信息,软件狗 利用自身预先存储的相关功能参数如关键制造工艺的配方、输入参数等,调用受保护软件的 关键信息即程序片断,比如关键功能或操作,并将关键信息调用结果通过无线通信方式返回 给使用者。
本发明的软件狗所采用的无线通信方式可以基于任何一种无线通信技术,比如蓝牙
(Bluetooth)、 ZigBee、 802.11、蜂窝(cellular)等。
为了进一步保护软件狗与使用者之间的通信安全,步骤201和步骤202中,可对软件狗 与使用者之间的无线通信过程进行加密。
由于本发明的软件狗是采用无线通信方式,软件狗不占用运行受保护软件的设备的外设 接口,如计算机的并行接口、串行接口或USB接口,软件狗不会在所述设备上频繁插拔,这 样, 一方面增强了软件狗本身的可靠性;另一方面也不会造成对软件狗与计算机之间的连接 线的损害,这同时也保证了软件狗的工作可靠性
图3a是本发明同一台计算机上支持多个软件狗的应用场景示例,各个软件狗相互之间独
立工作。当计算机上运行软件狗1保护的软件时,计算机只要与软件狗1之间完成认证过程,并从软件狗l调用软件狗l保护的软件的关键信息即可合法启动受保护的软件;同样,当计 算机上运行软件狗2或3保护的软件时,计算机只要与软件狗2或3之间完成认证过程,并 从软件狗2或3调用软件狗2或3保护的软件的关键信息即可合法启动受保护的软件。而且, 由于软件狗l、 2和3均是采用无线通信方式实现与计算机之间的通信,不会占用计算机的外 设接口如并行接口、串行接口或USB接口,保证了计算机所需其它外设的使用。
图4是本发明同一软件运行环境中支持多个软件狗的实施例的组成结构示意图,图4中 软件运行环境可以是同一台计算机或其它运行受保护软件的硬件设备或软件平台,受保护软 件1的运行由软件狗1提供保护,受保护软件2的运行由软件狗2提供保护,受保护软件中 包括前述的关键信息调用模块和识别模块,软件运行环境提供无线代理模块和无线网络接口 模块,用于与软件狗中的相应模块配合实现无线通信。
图4中的软件狗组成单元仅示意出保护存储单元101、认证单元102、无线代理模块1032 和无线网络接口模块1031,连接线仅表示信号的交互示意,并不表示实际各模块间的连接关 系。如图4所示,受保护软件的识别模块与对应软件狗的认证单元之间实现对用户或对软件 运行环境,或者对用户和软件运行环境的认证过程,具体过程如图1和图2所示,这里不再 赘述。为了进一步保护软件狗与受保护软件使用者之间的通信安全,可对软件狗与受保护软 件使用者之间的无线通信过程进行加密,此时,由软件狗与软件运行环境中的无线代理模块 相互配合完成所述的加、解密通信,具体加、解密通信过程的实现属于本领域技术人员公知 的技术手段,这里不再赘述。软件狗的保护存储单元与受保护软件的关键信息调用模块之间 完成关键信息即受保护软件的程序片断的调用过程,具体过程如图1和图2所示,这里不再 赘述。
另外,可以对不同的受保护软件采用不同的所述关键信息标识,这样软件运行环境的无 线代理模块会进一步根据不同的关键信息标识,将来自不同受保护软件的关键信息调用指令 发送给对应的软件狗,将来自不同软件狗的关键信息调用结果发送给对应的受保护软件以保 证受保护软件的正常运行。
图3b是本发明一个软件狗供多台计算机同时使用的应用场景示例,图3b所示示例中, 实现了本发明软件狗与多台计算机之间的灵活方便的连接,各台计算机之间独立工作。此时, 需要软件狗的无线代理模块1032来协调各台计算机之间对软件狗的访问,比如采用分时访 问、交错访问等方式。如采用分时访问方式,则当有计算机如计算机1在使用软件狗时,其 它计算机如计算机3只能等待计算机1使用完成后,才能使用软件狗;当采用交错访问方式 时,假设计算机1正在使用软件狗保护的软件并处于认证过程或关键信息调用过程时,计算机2暂时不能访问软件狗,软件狗的无线代理模块1032可以通过向计算机2发送等待指令, 当计算机1完成认证过程或关键信息调用过程后,软件狗会向计算机2发送工作指令,这时 计算机2启动对软件狗保护的软件的执行过程。上述无线代理模块1032的协调功能的具体实 现属于本领域技术人员公知的技术手段,这里不再详细描述。
为了实现同一个软件狗可以支持不同的受保护软件及不同的使用者,认证单元102中可 以进一步存储对应多套受保护软件的不同使用者的合法性认证参数,并且通过无线代理模块 1032的协调,比如采用分时访问方式控制针对不同受保护软件的不同使用者的合法性认证过 程,使得一个软件狗支持多套受保护软件的运行。图3c是本发明同一个软件狗支持运行在一 台计算机上的不同的受保护软件的应用场景示例,
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原 则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
权利要求
1. 一种软件狗,其特征在于,包括控制单元(100)、保护存储单元(101)、认证单元(102)、包括无线网络接口模块(1031)的通信单元(103)和用于为软件狗中的各组成单元提供工作电源的电源单元(104),其中,所述控制单元(100)用于接收来自受保护软件使用者通过无线网络接口模块(1031)发送的使用指令,向认证单元(102)发送合法性认证通知;并在合法性认证成功后,向保护存储单元(101)发送启动关键信息通知;所述认证单元(102)用于存储合法性认证参数,并当接收到来自控制单元(100)的合法性认证通知时,通过无线网络接口模块(1031)通知受保护软件使用者启动合法性认证过程;以及用于根据通过无线网络接口模块(1031)接收到的来自受保护软件使用者的认证请求信息与自身存储的合法性认证参数进行合法性认证,并向控制单元(100)返回合法性认证响应;所述保护存储单元(101)用于存储受保护软件的关键信息以及执行关键信息所需的功能参数,并当接收到来自控制单元(100)的启动关键信息通知时,通知受保护软件使用者启动受保护软件;以及用于在接收到受保护软件使用者通过无线网络接口模块(1031)发送的关键信息调用指令时,利用自身存储的功能参数调用受保护软件的关键信息,向控制单元(100)返回关键信息调用完成指令,并在控制单元(100)的控制下,将关键信息调用结果经由无线网络接口模块(1031)返回给受保护软件使用者。
2. 根据权利要求1所述的软件狗,其特征在于,当所述使用者为两个以上时,所述通信 单元(103)进一步包括无线代理模块(1032),用于通过分时访问或交错访问方式协调各使 用者对软件狗的访问。
3. 根据权利要求1所述的软件狗,其特征在于,所述认证单元(102)用于存储一组以 上的合法性认证参数,各组合法性认证参数对应于不同的受保护软件的不同使用者;所述通信单元(103)进一步包括无线代理模块(1032),用于协调针对不同受保护软件 的合法性认证过程。
4. 根据权利要求2或3所述的软件狗,其特征在于,所述无线代理模块(1032)还用于 对通过所述无线网络接口模块(1031)发送给使用者的信息进行加密,和/或对通过无线网络 接口模块(1031)接收到的使用者所发送的信息进行解密。
5. —种软件狗实现软件保护的方法,其特征在于,在软件狗中预先存储受保护软件的关 键信息以及执行关键信息所需的功能参数,该方法还包括使用者需要使用受保护软件时,软件狗通过无线通信方式对受保护软件的使用者iag合法性认证;所述使用者通过认证后,通过无线通信方式从软件狗调用受保护软件的关键信息以启动 受保护软件。
6. 根据权利要求5所述的方法,其特征在于,所述软件狗中预先存储有合法性认证参数; 所述认证过程具体为所述软件狗接收来自使用者的使用指令,启动对使用者的合法性认证过程,通过无线网 络接收来自使用者的认证请求信息,判断接收到的认证请求信息与自身已存储的合法性认证 参数是否一致,如果一致,则判定合法性认证成功;否则,判定合法性认证失败。
7. 根据权利要求6所述的方法,其特征在于,所述使用者为用户和/或受保护软件运行 环境;当使用者为用户时,所述合法性认证参数包括用户标识和用户授权信息;当使用者为受保护软件运行环境时,所述合法性认证参数包括可信计算模块TPM标识、 硬件设备的介质访问控制MAC地址、CPU标识、硬盘标识和、受保护软件标志及版本信息。
8. 根据权利要求5所述的方法,其特征在于,所述关键信息为受保护软件的关键功能或 操作。
9. 根据权利要求5所述的方法,其特征在于,当所述使用者为两个以上时,该方法还包 括软件狗采用分时访问或交错访问方式协调各使用者其的访问。
10. 根据权利要求5至9所述的方法,其特征在于,该方法还包括所述软件狗对发送给使用者的信息进行加密。
全文摘要
本发明公开了一种软件狗及其实现软件保护的方法,本发明的软件狗采用无线通信方式,软件狗不占用运行受保护软件的设备的外设接口,如计算机的并行接口、串行接口或USB接口,软件狗不会在所述设备上频繁插拔,这样,一方面增强了软件狗本身的可靠性;另一方面也不会造成对软件狗与所述设备之间的连接接口的损害,这同时也保证了软件狗的工作的可靠性。此外,本发明通过在软件狗存储对应多套受保护软件的合法性认证参数,实现了可用同一个软件狗支持不同的受保护软件。
文档编号G06F21/00GK101414342SQ200710163309
公开日2009年4月22日 申请日期2007年10月19日 优先权日2007年10月19日
发明者文 唐, 李明柱, 胡建钧, 隋爱芬 申请人:西门子(中国)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1