许可证管理系统及其验证方法、服务器装置及其方法

文档序号:6606697阅读:170来源:国知局
专利名称:许可证管理系统及其验证方法、服务器装置及其方法
技术领域
本发明涉及许可证管理系统及其验证方法,在所述许可证管理系统中,终端装置 和服务器装置经由网络连接,并且服务器装置管理终端装置中的软件的许可证。
背景技术
当软件厂商售出用户想要的软件时,其向用户颁发准予使用软件的许可证。这里, 将许可证以许可证访问号(为字母数字式字符的组合)的形式连同软件一起分配给用户。 这种许可证访问号(LA#)是对各软件包唯一分配的号,并且当请求许可证服务器颁发许可 证信息时是必需的。许可证访问号足以作为出于许可证获取的目的进行访问所需的信息。 例如,许可证访问号可以为包括字符和符号的代码,在这种情况下,许可证访问号可以称作 许可证访问代码或许可证访问密钥。如果拥有许可证的用户(购买者)向第三方公开了许可证访问号信息,则第三方 可以自由地使用分配有该许可证访问号的软件。换言之,除非对运行软件的特定设备(例 如个人计算机)进行验证,否则可以在任意设备中使用该许可证密钥来运行软件。结果,可 以对软件创建合法用户以外的人都能够使用的未授权副本。为了避免这一点,已经提出了经由网络在客户端装置与服务器装置之间进行通信 的网络系统。注意,客户端装置代表终端装置的一种形式,这些装置在以下描述中是等同 的。这里,服务器装置从客户端装置接收许可证访问号以及与设备信息相关联的终端 标识信息。服务器装置确定所接收到的终端标识信息与已存储的终端标识信息是否一致, 并且将确定结果发送给客户端装置。当首次启动所存储的软件时,终端装置基于设备信息 生成终端标识信息,并将终端标识信息连同许可证访问号一起发送给服务器装置。然后,终 端装置从服务器装置接收用于根据已发送的终端标识信息确定是否能够使用软件的许可 证信息。已发送的终端标识信息被保存到本地盘中。当第二次或以后启动软件时,客户端 装置获取设备信息,并且使用与首次启动软件时相同的方法、基于设备信息来生成终端标 识信息。客户端装置将该终端标识信息与存储在本地盘中的首次启动软件时的终端标识信 息进行比较,如果它们一致则启动软件,如果它们不一致则不启动软件。如果已经使用该系统对具有许可证访问号的客户端装置进行了验证,则能够防止 除该客户端装置以外的装置对软件进行未授权的复制和使用。对于该技术的示例,请参见 日本特许3833652号公报和日本特开2004-46708号公报。上述传统技术提出了基于指定设备信息生成终端标识信息的构思。所使用的设备 信息的一个示例为连接到客户端装置的硬盘驱动器(HDD)的ID信息(HDD ID)。然而,这种 情况存在诸如下述的问题。(1)终端标识信息的唯一性尽管该HDD ID信息基本上被唯一地分配,但是在使用相同的虚拟化软件的情况 下,已知存在该HDD ID信息不是唯一的现象。考虑到在物理上不同的个人计算机(PC)间使用相同的虚拟化软件的情况。虚拟化软件创建包括虚拟硬盘的虚拟硬件,并且能够实现 虚拟PC。而且,能够在这种虚拟PC中安装软件。如果在这种情形下获取到HDD ID,则它们 将是相同值。这导致基于这些HDD ID生成的终端标识信息将是相同的情形。如果该终端 标识信息相同,则具有唯一权限的许可证访问号可以在多个虚拟PC中使用。而且,已知使用该终端标识信息作为密钥来管理用户信息。为此,如果不唯一地生 成该终端标识信息,则会出现管理相关的问题。因此要求终端标识信息具有唯一性。(2)终端标识信息的可恢复性存在由于损坏等需要更换硬盘驱动器的情况。在这种情况下,HDDID在更换后改 变,由此终端标识信息在更换前后总是不同。结果,当进行许可证再验证时,客户端装置将 与已发送的初始生成的终端标识信息不同的终端标识信息发送给服务器装置,再验证失 败。照此,在一旦使用终端标识信息进行过验证之后,当进行再验证时,需要在初始验证期 间使用的该终端标识信息。考虑到用户便利性,在某种程度上存在对于能够更换硬件的系统的需求,也就是 说,存在对于如果由于某种原因终端标识信息变得无效则能够进行终端标识信息恢复的需 求。(3)硬件信息获取的失败存在HDD ID信息的获取由于HDD的驱动器规格而失败的情况。如果获取失败,则 需要利用其他方法来生成终端标识信息。因此,需要用于生成终端标识信息的稳定方法。尽 管这里使用了 HDD ID的示例,但是取决于PC的类型和型号,通常不保证可以从HDD以外的 硬件的硬件信息来获得这类信息。(4)终端标识信息生成的稳定性另外,在多个硬盘被组合作为单个虚拟硬盘操作的RAID环境的情况下,仍然存在 取决于HDD的驱动器规格、由于诸如重启终端的触发因素导致HDD ID改变的情况。HDD ID 的不稳定性将导致第二次或以后启动软件时的失败。因此,在硬件信息的获取中需要稳定 性。

发明内容
本发明提供一种许可证管理系统及其验证方法,在该许可证管理系统中,即使终 端标识信息与许可证验证中使用的终端标识信息不一致,也能够进行许可证再验证。根据本发明的一个方面,提供一种许可证管理系统,在所述许可证管理系统中,终 端装置与服务器装置经由网络连接,并且所述服务器装置管理所述终端装置中的软件的许 可证,所述终端装置包括生成单元,其生成用于识别所述终端装置的终端标识信息;以及 发送单元,其在进行关于许可证的验证的情况下,将由所述生成单元生成的所述终端标识 信息以及关于构成所述终端装置的硬件的信息发送给所述服务器装置,并且所述服务器装 置包括验证单元,其使用由所述发送单元发送的所述终端标识信息,针对所述终端装置进 行关于许可证的验证;以及存储单元,其在由所述验证单元进行的所述验证成功的情况下, 将所述终端标识信息与同所述终端标识信息一起被所述发送单元发送的硬件信息彼此相 关联地进行存储,其中,所述验证单元使用由所述发送单元发送的所述硬件信息和由所述 存储单元存储的所述硬件信息,进行关于之前颁发的许可证的再验证,并且在根据由所述验证单元进行的成功的再验证、所述终端装置从所述服务器装置接收到了与在所述再验证 中使用的所述硬件信息相关联地存储在所述存储单元中的终端标识信息的情况下,当进行 关于所述之前颁发的许可证的验证时,所述发送单元发送所接收到的终端标识信息以及所 述硬件信息。根据本发明的另一方面,提供一种用于许可证管理系统的方法,在所述许可证管 理系统中,终端装置与服务器装置经由网络连接,并且所述服务器装置管理所述终端装置 中的软件的许可证,所述终端装置执行以下步骤生成用于识别所述终端装置的终端标识 信息;以及在进行关于许可证的验证的情况下,将在所述生成步骤中生成的所述终端标识 信息以及关于构成所述终端装置的硬件的信息发送给所述服务器装置,并且所述服务器装 置执行以下步骤使用在所述发送步骤中发送的所述终端标识信息,针对所述终端装置进 行关于许可证的验证;以及在所述验证步骤中进行的所述验证成功的情况下,将所述终端 标识信息与同所述终端标识信息一起在所述发送步骤中被发送的硬件信息彼此相关联地 进行存储,其中,在所述验证步骤中,使用在所述发送步骤中发送的所述硬件信息和在所述 存储步骤中存储的所述硬件信息,进行关于之前颁发的许可证的再验证,并且在根据在所 述验证步骤中进行的成功的再验证、所述终端装置从所述服务器装置接收到了在所述存储 步骤中与在所述再验证中使用的所述硬件信息相关联地存储的终端标识信息的情况下,当 进行关于所述之前颁发的许可证的验证时,在所述发送步骤中发送所接收到的终端标识信 息以及所述硬件信息。根据本发明的又一方面,提供一种服务器装置,其经由网络连接到终端装置,并且 管理所述终端装置中的软件的许可证,所述服务器装置包括接收单元,其从所述终端装置 接收由所述终端装置生成的终端标识信息、以及关于构成所述终端装置的硬件的信息;验 证单元,其使用由所述接收单元接收到的所述终端标识信息,针对所述终端装置进行关于 许可证的验证;以及存储单元,其在由所述验证单元进行的所述验证成功的情况下,将所述 终端标识信息与同所述终端标识信息一起被所述接收单元接收到的所述硬件信息彼此相 关联地进行存储,其中,所述验证单元使用由所述接收单元接收到的所述硬件信息和由所 述存储单元存储的所述硬件信息,进行关于之前颁发的许可证的再验证,并且根据由所述 验证单元进行的成功的再验证,将与在所述再验证中使用的所述硬件信息相关联地存储在 所述存储单元中的所述终端标识信息发送给所述终端装置。根据本发明的又一方面,提供一种在服务器装置中执行的方法,所述服务器装置 管理软件的许可证,所述方法包括以下步骤从网络上的终端装置接收由所述终端装置生 成的终端标识信息、以及关于构成所述终端装置的硬件的信息;使用所接收到的终端标识 信息,针对所述终端装置进行关于许可证的验证;以及在所述验证成功的情况下,将所述 终端标识信息与同所述终端标识信息一起被接收到的硬件信息彼此相关联地进行存储,其 中,在所述验证步骤中,使用在所述接收步骤中接收到的所述硬件信息和在所述存储步骤 中存储的所述硬件信息,进行关于之前颁发的许可证的再验证,并且根据成功的再验证,将 在所述存储步骤中与在所述再验证中使用的所述硬件信息相关联地存储的所述终端标识 信息发送给所述终端装置。从以下参照附图对示例性实施例的描述中,本发明的其他特征将变得清楚。


图1是示出根据实施例1的软件许可证管理系统100的网络结构的图。图2A是示出存储在许可证服务器中的设备信息数据库的逻辑结构的图,图2B是 示出由许可证访问号(LA#)和终端标识信息(PCID)构成的软件信息数据库的图,图2C是 示出设备信息的图。图3是例示存储在客户端装置中的信息和程序的图。图4是用于描述防止启动与未授权复制有关的软件的功能的图。图5是示出客户端装置的示例性硬件结构的图。图6是示出许可证服务器的示例性硬件结构的图。图7是示出用于进行关于客户端装置的ID的确定的处理的流程图。图8是示出由客户端装置进行的许可证验证的流程图。图9是示出由许可证服务器进行的验证处理的流程图。图10是示出用于返回验证过的许可证的处理的流程图。图11是示出许可证返回处理的流程图。图12是用于描述根据实施例2的许可证管理的图。图13是用于描述根据实施例3的许可证管理的图。图14是示出根据实施例3的个体ID确定处理的流程图。图15是示出根据实施例3的许可证验证处理的流程图。
具体实施例方式以下参照附图详细说明本发明的实施例。实施例1图1是示出根据实施例1的软件许可证管理系统100的网络结构的图。许可证 管理系统100包括作为服务器装置的一种形式的许可证服务器103,以及多个客户端装置 102。当没有必要在客户端装置102之间进行区分时,在描述中使用单个客户端装置102。 这里,客户端装置102是由例如可以连接到互联网101的个人计算机构成的终端装置。许可证服务器103和客户端装置102可以利用诸如TCP/IP的预定协议,经由互联 网101进行诸如发送和接收文件的通信。TCP是传输控制协议的缩写,IP是互联网协议的 缩写。当首次启动软件时,客户端装置102生成基于GUID的随机值作为终端标识信息 (PCID),所述⑶ID被保证为基本全局唯一标识符(globally-unique identifier)。可以通 过将该终端标识信息以及稍后描述的硬件信息和许可证访问号(LA#)发送给许可证服务 器103来获取许可证。许可证访问号(LA#)是对各软件包唯一分配的号,并且当请求许可证服务器103 颁发许可证信息时是必需的。许可证访问号足以作为出于许可证获取的目的进行访问所需 的信息。例如,许可证访问号可以是包括字符和符号的代码,在这种情况下,许可证访问号 可以称作许可证访问代码或许可证访问密钥。许可证服务器103使用稍后描述的确定方法来确定是否可以向客户端装置102颁 发许可证。另外,在请求颁发新许可证的情况下,许可证服务器103确定作出请求的客户端装置102是合法的新客户端装置102,然后向客户端装置102颁发许可证信息。在请求再颁 发之前颁发过的许可证信息的情况下,如果许可证服务器103确定作出请求的客户端装置 102是与以前相同的客户端装置102,则许可证服务器103将以前的许可证信息再颁发给客 户端装置102。当第二次或以后要启动已经获取到许可证信息的软件时,客户端装置102根据控 制程序获取客户端装置102的设备信息,并且将所获取到的设备信息与存储在本地盘中的 验证用设备信息进行比较。如果这些设备信息项一致,则客户端装置102启动软件,而如果 这些设备信息项不一致,则客户端装置102不启动软件。由此,只在初始启动软件时获取的许可证信息与第二次或以后要启动软件时获取 的客户端装置102的设备信息一致的情况下,客户端装置102才启动软件。这使得能够防 止在其他客户端装置上启动已经从获取到许可证信息的客户端装置102复制的软件。许可证服务器103将分别分配给客户端装置102的终端标识信息项、多个固有设 备信息项以及已经从客户端装置102发送的许可证访问号相关联地进行存储。图2A是示出存储在许可证服务器103中的设备信息数据库的逻辑结构的图。设 备信息数据库是由多项终端标识信息(PCID)和与其对应的多项验证用设备信息(HWID)构 成的数据库。在实施例1中,假设使用三项硬件信息作为验证用设备信息。图2B示出了由多个许可证访问号(LA#)以及多项终端标识信息(PCID)构成的软 件信息数据库。软件信息数据库针对各许可证访问号(LA#)记录表示已经通过许可证服务 器103对用户验证了许可证的软件的信息。每次通过许可证服务器103对用户验证了软件 的许可证时,许可证服务器103都将表示该软件的该信息进行存储。许可证服务器103可以通过参照软件信息数据库来确定针对哪个客户端装置102 验证了哪个许可证访问号。软件信息数据库还存储许可证访问号以及包括所接收的识别客 户端装置的终端标识信息的多项终端信息。如图2B所示,已经对不同的许可证访问号(LAl 和LA2)分配了相同的PCID1,这表示对相同的客户端装置验证了两个不同的软件。尽管可以使用对客户端装置102特定的任意硬件信息作为后述的设备信息,但是 在实施例1中,使用了三项硬件信息,如图2C所示。在使用诸如客户端装置102的计算机的情况下,定期地更换诸如本地盘的部件。 为此,如果使用关于容易更换的部件的信息作为设备信息并且更换了该部件,则客户端装 置102不再能够被验证。因此期望使用关于客户端装置102中的非常重要且也不太可能被 更换的部件的信息。具体地,使用CPU序列号作为设备信息。除了 CPU序列号以外,还可以 使用存储在BIOS(基本输入/输出系统)中的产品号。在购买时向购买者公开许可证访问号。然后用户使用所分配的许可证访问号来经 由互联网101对应用软件验证许可证。图3是例示存储在客户端装置102中的信息、程序等的图。如图3所示,客户端 装置102保持设备信息300、软件305、控制程序306、终端标识信息生成程序311、许可证 信息307等。这里,许可证信息307是当软件305的许可证已被验证时写入到客户端装置 102中的信息。实施例1的许可证信息307包括终端标识信息(PCID) 308、验证用设备信息 (HWID) 309以及验证过的许可证访问号310。另外,如图3所示,软件305、控制程序306、终端标识信息生成程序311以及许可
8证信息307被存储在本地盘304中。注意,在实施例3中使用许可证信息307中包含的PCID 备份文件313以及虚拟标记信息312。同时,设备信息300是写入到CPU、硬盘、网络适配器等的信息。设备信息300包括 硬盘ID 301,硬盘ID 301是硬盘制造商在制造时对硬盘唯一分配的值。CPU序列ID 302是 CPU制造商在制造时对CPU唯一分配的值。而且,MAC地址303是网络接口卡的序列信息。尽管在实施例1中使用上述三项信息作为设备信息,但是由于随着近来PC的发展 极有可能获取到用于有线通信、无线通信等的两个或更多个值,因此可以使用例如多个MAC 地址。作为其他示例,还可以想到使用系统UUID (作为指定系统的唯一信息)、BIOS序列 (作为关于BIOS的序列信息),以及板序列(作为关于主板的序列信息)。当用户安装软件305时,软件305和控制程序306被存储在本地盘304中。另外, 在首次启动软件305时许可证服务器103已经正常验证过许可证的情况下,通过控制程序 306将许可证信息307存储在本地盘304中。实施例1的许可证信息307包括终端标识信 息308、验证用设备信息309以及验证过的许可证访问号310。终端标识信息308由终端标识信息生成程序311随机生成,并且是全局唯一分配 值。验证用设备信息309是当客户端装置102获取到软件305的许可证信息时(即,当首 次启动软件305时)由控制程序306读取并被存储到本地盘304的设备信息300。注意,当第二次或以后要启动软件305时,比较验证用设备信息309和设备信息 300,如果它们一致,则启动软件305。这里,如果例如设备信息(硬件信息)300中包含的一 半或更多项信息一致,则关于一致的确定结果是肯定的。具体地,如在实施例1中包含三项 硬件信息的情况下,如果两项或更多项硬件信息一致,则关于一致的确定结果是肯定的。这 使得只要硬件结构没有明显改变,就许可验证。而且,该确定的标准可以依据所保持的硬件信息的项数或硬件信息的类型而改 变,对于标准不存在特殊限制。图4是用于描述防止启动与未授权的复制有关的软件305的功能的概念图。客户 端装置A 400是软件305在被正确安装后已被验证的客户端装置。另一方面,客户端装置 B 401是已经从客户端装置A 400复制了软件305的客户端装置。存储在客户端装置A 400的本地盘304中的验证用设备信息309与客户端装置A 400的设备信息300相同。由此,验证用设备信息309与设备信息300的一致性得以确认, 并且可以启动软件305。同时,客户端装置B 401的本地盘304存储了客户端装置A 400的本地盘304的 复制镜像(image)。换句话说,在客户端装置A 400和客户端装置B 401 二者的本地盘304 中存储了完全相同的数据。然而,客户端装置B 401的设备信息300中包含的信息与通过 复制而存储的验证用设备信息309不同。因此,即使用户试图使用客户端装置B 401启动 软件305,但由于验证用设备信息309与设备信息300不同,因此也不能启动软件305。以此方式,客户端装置102将本地盘304中的验证用设备信息309与客户端装置 102唯一的设备信息300比较。由此,如图4所示,即使将客户端装置A 400的本地盘304 按照原样附装到客户端装置B 401,也不能使用客户端装置B 401来启动软件305。另外,如果将软件305简单地复制到另一计算机,则由于验证用设备信息309最初 并不存在于作为复制目的地的计算机的本地盘304中,因此不能启动复制的软件305。
而且,如果验证用设备信息309存储在与软件305相同的目录中,并且将整个目录 复制到另一计算机,则也将验证用设备信息309复制到另一计算机。然而,由于另一计算机 的设备信息与复制的设备信息不同,因此不能在作为复制目的地的计算机上启动软件305。图5是示出客户端装置102的示例性硬件结构的图。客户端装置102由诸如台式 个人计算机、便携式个人计算机等的终端装置构成。客户端装置102包括控制单元500,输 入单元504、输出单元505、通信控制单元506、存储单元508、存储介质驱动单元509和输入 /输出接口(I/F) 510经由总线507与控制单元500相连接。总线507用作在控制单元500 与其他构成元件之间发送和接收数据信号、控制信号等的媒介。控制单元500由CPU 501, ROM 502, RAM 503与未示出的外围电路构成。CPU 501 根据预定程序进行各种类型的计算、信息处理、客户端装置102的整体控制等。在实施例1中,CPU 501启动控制程序306,当首次启动软件305时获取许可证信 息,当第二次或以后启动软件305时进行验证,执行软件305等。ROM 502是存储数据、参 数、各种程序等的只读存储装置,CPU501根据所存储的所述程序来进行控制和各种类型的 计算。CPU 501可以从ROM 502读取程序、数据、参数等,但是不能重写或删除它们。RAM 503是用作CPU 501的工作存储器的随机存取存储装置。CPTOOl可以将程序、 数据等写入RAM 503,并且也可以删除它们。在实施例1中,在RAM 503中可以保留要用于 CPU 501获取许可证信息、启动软件305等的区域。输入单元504由诸如键盘或鼠标等的输入装置构成。键盘是用于向客户端装置 102输入诸如字母和数字的信息的装置,并且由用于输入假名、英语字符等的键、用于输入 数字的数字键盘、各种功能键、光标键以及其他键构成。例如,用户可以使用键盘来向客户端装置102输入要发送到许可证服务器103的 许可证访问号。鼠标是指示设备。在使用GUI (图形用户界面)等操作客户端装置102的 情况下,可以通过使用鼠标点击显示装置上显示的按钮、图标等来输入预定信息。例如,以 下结构是可行的安装了软件305之后在显示装置上显示代表软件305的图标,并且通过例 如使用鼠标点击该图标来启动软件305。输出单元505由诸如显示装置或打印装置的输出装置构成。显示装置是由CRT、液 晶显示器、等离子显示器等构成的装置,并且用于在画面上呈现信息。显示装置可以显示使 用键盘或鼠标进行输入的结果、由软件305提供的画面(用户界面)等。打印装置由诸如喷墨打印机、激光打印机、热转印打印机或点阵打印机等的各种 类型打印机中的任意类型来构成。打印装置可以将输出结果(文档、图像等)打印到诸如 纸张的打印介质上。通信控制单元506是用于将客户端装置102经由互联网101连接到各种类型的服 务器装置(例如Web服务器或邮件服务器)的控制单元,并且由例如调制解调器、终端适配 器或其他装置构成。使用例如TCP/IP(传输控制协议/互联网协议)或其他协议来进行经由互联网 101的通信。通信控制单元506在客户端装置102与许可证服务器103之间建立并保持通 信,接收软件305的许可证信息等。存储单元508由可读写存储介质,以及用于向所述存储介质写入程序和数据、并 从所述存储介质读取程序和数据的驱动装置构成。尽管主要使用硬盘作为存储介质,但是存储介质可以由例如磁光盘、磁盘、半导体存储器或其他可读写存储介质构成。在实施例1 中,由硬盘构成的本地盘304用作存储单元508。存储单元508存储包括设备标识信息308和验证用设备信息309的上述许可证信 息307,以及软件305和控制程序306。存储单元508还存储例如用于将假名转换为汉字的 汉字_假名转换软件,以及用于在输出单元505上显示从许可证服务器103和其他服务器 装置发送的Web页的浏览器软件。存储单元508还存储例如控制通信控制单元506并保持 经由互联网101的通信的通信程序,以及用于使客户端装置102进行存储器管理、文件输入 /输出管理等的基本软件(OS)。存储介质驱动单元509是用于驱动可拆装存储介质并读取/写入数据的驱动装 置。可拆装存储介质的示例包括磁光盘、磁盘、磁带、半导体存储器、通过打孔来记录数据的 纸带以及CD-ROM。注意,CD-ROM和纸带仅能够用于读取。输入/输出接口 510由例如串行接口或其他标准的接口构成。客户端装置102的 功能可以通过将与输入/输出接口 510兼容的外部设备连接到输入/输出接口 510来得到 扩展。这种外部设备的示例包括诸如硬盘的存储设备,以及扬声器和麦克风。图6是示出许可证服务器103的示例性硬件结构的图。注意,控制单元601、输入 单元607、输出单元608、通信控制单元609以及存储介质驱动单元610分别具有与图5所 示的控制单元500、输入单元504、输出单元505以及存储介质驱动单元509相同的功能,因 此省略其描述。存储单元605是由大容量硬盘等构成的可读写存储介质,并且配备有程序存储单 元606等。程序存储单元606存储OS 612、许可证验证程序613以及其他程序。许可证验 证程序613是用于使CPU 602实现用于验证许可证颁发的功能的程序。CPU 602启动许可证验证程序613,并将已经从客户端装置102发送的终端标识信 息、设备信息和许可证访问号与许可证服务器103中存储的数据库进行比较。然后CPU 602 进行关于客户端装置102的终端标识信息的确定,确定许可证是否能够被验证,并将结果 发送给客户端装置102。通信控制单元609是用于经由互联网101与客户端装置102、其他终端、服务器装 置等通信的功能单元。通信控制单元609具有用于接收终端信息、用于颁发向客户端装置 102发送许可证颁发许可信息的许可证信息等的功能。许可证服务器103从客户端装置102接收对终端标识信息、设备信息以及许可证 访问号的比较请求,并将它们与数据库比较。通过使许可证服务器103的CPU 602根据比 较程序进行操作来实现该功能。尽管在实施例1中许可证服务器103从客户端装置102获取到许可证访问号和设 备信息、并对它们进行验证,但是由与许可证服务器103分离的数据库服务器进行该验证 的结构也是可行的。图7是示出在许可证服务器103中对客户端装置102进行的个体ID (individual ID)确定处理的流程图。在诸如以下的情形下使用该个体ID确定处理1.当新验证许可证时;2.当再验证之前验证过的许可证时;3.当将之前验证过的许可证返回给许可证服务器时。
首先,以在第一情形“当新验证许可证时”下、使用指定许可证访问号(LAl)来新 验证许可证为例,对个体ID确定处理进行说明。在步骤S701中开始请求,许可证服务器 103从客户端装置102接收终端标识信息(PDIDl)、设备信息(HWIDl)以及许可证访问号 (LAl)。然后,许可证服务器103的CPU 602在软件信息数据库中搜索PCID1,如果未找到一 致的终端标识信息,则在步骤S702中CPU 602确定客户端装置是新的并且进行到步骤S706 的处理。在步骤S706中,CPU 602在设备信息数据库中搜索HWID1,如果客户端装置是新的, 则在设备信息数据库中找不到HWIDl,CPU 602进行到步骤S708的处理。在步骤S708中, CPU 602确定请求来自新的客户端装置,并且新颁发许可证。同时,CPTO02将PCID1、HWID1 以及LAl登记在设备信息数据库和软件信息数据库中。接下来,对第二情形“当再验证之前验证过的许可证时”下的个体ID确定处理进 行说明。以下说明以客户端装置102的硬盘已损坏并被更换的情况为例。当硬盘被更换时, 重新安装软件305,并且之前验证过的许可证信息丢失。当在硬盘被更换后首次启动软件 时,通过随机生成来创建PCID,该PCID (下文称作PCID1’ )与在之前的许可证验证中使用 的PCIDl不同。而且,硬件信息中包含的硬盘信息(在下文中称作HWID1,)与HWIDl不同, 由于只有硬盘被更换,因此如果考虑一致的条件为例如在一半或更多个数据项之间是否存 在一致性的标准,则确定HWID1,与HWIDl —致。因此,使用与三项设备信息中一致的两项 相关联的LAl来再验证许可证。在步骤S701中开始请求,将包括PDID1,、HWID1,以及LAl的信息从客户端装置 102发送到许可证服务器103。在该情况下,CPU 602在软件信息数据库中搜索PCID1’。在 该情况下,未找到PCID1,,因此CPTO02从步骤S702进行到步骤S706的处理并且在设备信 息数据库中搜索HWID1,。在该情况下,在设备信息数据库中找到与HWID1,一致的条目,因 此过程进行到步骤S707的处理。在软件信息数据库中搜索与HWIDl条目相关联的许可证 访问号(LA#),将相关联的LA与适合再验证的请求的LA进行比较,并进行关于它们是否一 致的确定。在该情况下,确定请求来自许可证之前被验证过的客户端装置,并且过程进行到 步骤S709的处理,对许可证进行再验证,同时将之前进行验证时的终端标识信息(PCIDl) 发送给客户端装置102。客户端装置102接收PCIDl并进行用PCIDl替换PCID1,的处理。因此,PCIDl和冊ID1,被存储在客户端装置102中的许可证信息中。而且,在该 情况下,再验证过的许可证访问号LAl作为许可证信息被再次存储。因此,当首次进行验证 时使用的PCIDl可以在对许可证服务器103的后续请求中使用。另一方面,在步骤S707中确定未发现一致性的情况下,由于HWID —致,但是PCID 和LA#不同,因此CPU 602进行到步骤S710的处理。这里,确定请求来自新的客户端装置, 并且将PCID、HWID和LA#新登记在许可证服务器103中。接下来,对返回许可证的情况进行说明。在下述的情况中,返回针对LAl的许可 证。客户端装置102将PCID1、HWIDl'和LAl发送到许可证服务器103。在步骤S701中, CPU 602在软件信息数据库中搜索PCIDl。在该情况下,找到与PCIDl —致的条目,因此CPU 602从步骤S702进行到步骤S703的处理,并在设备信息数据库中搜索HWID1’。这里,找到 与冊IDl —致的条目,因此CPU 602进行到步骤S704的处理,确定请求来自许可证之前被 验证过的客户端装置,并进行用于针对LAl返回之前验证过的许可证的处理。这里,返回处 理是用于删除并更新设备信息数据库和软件信息数据库中的与LAl相关联的信息的处理。
另一方面,如果在步骤S703中CPU 602确定未发现一致性,则PCID—致,但是 HWID不一致,因此CPU 602确定由不同的客户端装置偶然生成了相同的PCID,并且进行到 步骤S705的处理,在步骤S705中请求产生错误。图8是示出由客户端装置102进行的许可证验证的流程图。在步骤S801中,用户 在客户端装置102中开始启动软件305,之后CPU 501获取用户经由输入单元504输入的用 于验证软件305的许可证的许可证访问号。在步骤S802中,CPU 501确定软件是否首次被 启动,也就是说,客户端装置102中是否存在许可证信息。如果确定结果为首次启动软件, 则CPU 501进行到步骤S803的处理,启动终端标识信息生成程序311,并随机创建PCID。也 启动控制程序306,并收集HWID信息。控制程序306将该信息与用户在启动软件时输入的 许可证访问号(LA#)发送给许可证服务器103。接着,如果在步骤S805中根据在许可证服务器103中进行的图7所示的处理,确 定作出请求的客户端装置是合法的并且是新的客户端装置,则过程进行到步骤S806的处 理。在步骤S806中,将终端标识信息308、验证用设备信息309以及验证过的许可证访问号 作为许可证信息307存储在客户端装置102中。接着,在步骤S807中进行关于该验证是否 是要替换PCID的验证(即之前验证过的客户端装置是否已被再验证)的确定。如果确定 该验证是要替换PCID的验证,则过程进行到步骤S808的处理,并且用从许可证服务器103 发送的PCID替换该PCID。然后,在步骤S809中,认为启动成功,并且软件被启动。另一方面,如果在步骤S805中从许可证服务器返回的确定结果是错误,则启动失 败。此外,如果在步骤S807中确定验证是新的验证或者是不需要PCID替换的再验证,则 CPU 501进行到步骤S809的处理并且启动软件。而且,如果在步骤S802中确定软件是第二次或以后被启动,即客户端装置102中 存在许可证信息,则过程进行到步骤S810的处理。在步骤S810中,控制程序306收集HWID 信息,在步骤S811中将HWID信息与许可证信息307中包含的验证用设备信息309比较,并 且如果它们一致则成功启动软件。这里,关于一致性的确定是用于确定至少一半或更多项 的设备信息是否与验证服务器中的设备信息相同的处理。另一方面,如果信息不一致,则过 程进行到步骤S812的处理,并且软件的启动失败。图9是示出由许可证服务器103进行的验证处理的流程图。在步骤S901中开始 请求,并且从客户端装置102接收PCID、HWID和LA#信息。接着,在步骤S902中,根据图7 所示的个体ID确定处理来改变处理。如果确定客户端装置为新的客户端装置,则处理进行 到步骤S903的处理,并且将PCID、HWID和LA#信息存储在数据库中。然后,在步骤S904中 进行新的验证处理。另一方面,如果在步骤S902中确定客户端装置为之前验证过的客户端 装置,则进行用于对之前已经验证过的许可证进行再验证的处理。图10是示出由客户端装置102进行的用于返回验证过的许可证的处理的流程图。 在步骤S1001中,开始返回。在步骤S1002中,控制程序306确定客户端装置102中是否存 在要返回的许可证信息。如果不存在要返回的许可证信息,则过程进行到步骤S1007的处 理,许可证返回失败。另一方面,如果存在要返回的许可证信息,则过程进行到步骤S1003 的处理。在步骤S1003中,控制程序306将要返回的许可证信息(终端标识信息、验证用设 备信息以及验证过的许可证访问号)发送给许可证服务器103。接着,在步骤S1004中,许可证服务器103根据图7所示的处理来确定作出请求的客户端装置102是否是之前验证过的终端。如果确定结果为客户端装置是之前验证过的终 端,即如果个体ID确定成功,则过程进行到步骤S1005的处理,并且进行图11所示的用于 在许可证服务器中返回许可证访问号的后述处理。然后,在步骤S1006中,进行用于返回与 客户端装置102的许可证信息中的许可证访问号对应的许可证的处理。图11是示出由许可证服务器103进行的许可证返回处理的流程图。在步骤SllOl 中,开始返回处理。在步骤S1102中,许可证服务器根据图7所示的处理来确定作出请求的 客户端装置102是否是之前验证过的终端。如果请求来自之前验证过的PC,则过程进行到 步骤S1103的处理,并且在软件信息数据库中搜索LA#。接着,在步骤S1104中进行关于在 步骤S1103中找到的并且与许可证的PCID相关联的LA#是否与要返回的LA# —致的确定。 如果它们一致,则过程进行到步骤S1105的处理,在步骤S1105中从软件信息数据库中删除 对应的LA#并且结束返回处理。此外,如果在步骤S1102中确定作出请求的客户端装置不是之前验证过的终端, 或者如果在步骤S1104中未找到一致的LA#,则过程进行到步骤S1106的处理,许可证返回 处理失败。根据实施例1,向在多项终端标识信息中具有一致的预定终端标识信息的终端装 置重新颁发许可证,由此使得能够进行稳定的许可证管理。实施例2在实施例2中,对在客户端装置使用虚拟化软件创建虚拟终端装置(虚拟PC)、并 且在虚拟终端装置中与在客户端装置中一样对相同的软件进行验证的情况下的许可证管 理进行说明。如图12所示,两个不同的客户端装置1201和1202使用相同的虚拟化软件1200 来分别创建虚拟PC 1203和虚拟PC 1204。然后,在虚拟PC1203和1204 二者上安装相同的 软件1205后,进行验证。此时,与实施例1同样,在虚拟PC 1203和1204 二者中,由客户端 装置1201和1202中的终端标识信息生成程序311随机生成终端标识信息(PCID)。因此,即使使用了相同的虚拟化软件1200,许可证信息1206和1207中包含的终端 标识信息正如PCIDl和PCID2 —样也是唯一的。此外,由于获取多项设备信息作为验证用 设备信息,因此虚拟PC中的设备信息是不同的,正如HWIDl和HWID2 —样。因此,可以在许 可证服务器103中毫无问题地进行采用HWID信息的个体ID确定处理。以此方式,即使使 用相同的虚拟化软件,也能够管理许可证。实施例3在实施例2中对客户端装置使用虚拟化软件创建虚拟终端装置(虚拟PC)的情况 进行了说明,而在实施例3中对所创建的虚拟PC进行镜像复制的情况进行说明。如图13所示,在客户端装置1301中,使用虚拟化软件1300创建虚拟PC 1303,并 且通过将虚拟PC 1303镜像复制到客户端装置1302来创建虚拟PC 1304。由于进行了镜 像复制,因此许可证信息1306在两个终端装置中具有相同的值。然后,在虚拟PC 1303和 1304 二者中安装相同的软件1305,并且使用许可证访问号LAl来进行验证。首先,利用虚拟PC 1303进行验证。如实施例2中描述,在虚拟PC中同样,由 客户端装置1301中的终端标识信息生成程序311创建终端标识信息(PCID)为随机值 (PCIDl)。如实施例1中所描述,将该终端标识信息(PCIDl)以及虚拟PC 1303的设备信息1306 (HWIDl)和LAl发送给许可证服务器103,并且进行验证。接着,在虚拟PC 1304中,使用许可证访问号LAl进行验证。在虚拟PC 1304同 样,由客户端装置1302中的终端标识信息生成程序311创建终端标识信息(PCID)为随机 值(PCID2)。将该终端标识信息(PCID2)以及虚拟PC 1304的设备信息1306 (HWIDl)和LAl 连同后述的虚拟标记信息一起发送给许可证服务器103。接着,许可证服务器103进行图14所示的个体ID确定处理。注意,图14中所示 的步骤S701到S710的处理与实施例1中描述的图7所示的处理相同。在实施例3中,增加了虚拟标记信息,如果在步骤S702中终端标识信息不一致,则 过程进行到步骤S711的处理,并且检查虚拟标记信息。这里,如果虚拟标记信息是“0”,则 过程进行到步骤S706的处理,并且与实施例1中一样进行处理。然而,如果虚拟标记信息 是“1”,则过程进行到步骤S712的处理,并且确定客户端装置为新的客户端装置。该虚拟标 记信息是表示作出请求的客户端装置是虚拟PC还是普通PC的信息,并且在是虚拟PC的情 况下,将虚拟标记信息定义为“ 1 ”。在实施例3中,在虚拟PC 1304作出清求的情况下,虚拟PC 1304将虚拟标记信息 设置为“1”,然后发送请求,并且许可证服务器103确定虚拟PC 1304为新的客户端装置。然而,由于增加了关于虚拟标记信息的确定(S711),当使用虚拟PC时,即使如实 施例1中描述需要再验证,也总是确定虚拟PC为新的客户端装置。因此,不再进行用于在 步骤S709中恢复PCID的处理。换言之,如果一旦丢弃虚拟PC,则不能进行再验证处理,并 且用户需要再次购买许可证。鉴于此,如果控制程序306确定客户端装置是虚拟PC,则此次的PCID自动作为 PCID备份文件保存在本地盘304中。然后可以通过恢复PCID备份文件来恢复适合许可证 信息的PCID。图15是示出由客户端装置中的虚拟PC进行的许可证验证处理的流程图。在步骤 S1501中,与实施例1同样,用户在客户端装置1302中启动软件305,之后获取许可证访问 号。在步骤S1502中,CPU 501确定软件是否是首次被启动,也就是说,客户端装置1302中 是否存在许可证信息。如果确定结果是首次启动软件,则CPU 501进行到步骤S1503的处 理并且启动终端标识信息生成程序311,并且随机创建PCID。也启动控制程序306,并且收 集HWID信息。另外,控制程序306执行用于确定客户端装置是否是虚拟PC的处理,并且将 虚拟标记信息312设置为“1”。接着,在步骤S1504中,此次使用的PCID信息作为PCID备份文件313保存在本地 盘304中。然后在步骤S1505中,将终端标识信息、设备信息、虚拟标记以及用户在启动软 件时输入的许可证访问号(LA#)发送给许可证服务器103。接着,在步骤S1506中,在许可证服务器103中,如果根据图7所示的处理确定作 出请求的客户端装置为虚拟PC,则确定客户端装置为新的客户端装置,并且过程进行到步 骤S1507的处理。在步骤S1507中,在客户端装置1302中,将终端标识信息(PCID)308、验 证用发备信息(HWID) 309以及验证过的许可证访问号310作为许可证信息307进行存储。 接着,在步骤S1508中启动软件305。此外,在上述的步骤S1502中,如果软件是第二次或以后被启动,也就是说,如果 客户端装置1302中存在许可证信息,则过程进行到步骤S1509的处理。在步骤S1509中,
15控制程序306收集HWID信息,在步骤S1510中将所收集的HWID信息与许可证信息307中 的验证用设备信息309比较,并且在一致的情况下成功启动软件。这里,用于进行关于一致 性的确定的处理与实施例1中的处理相同。另一方面,如果在步骤S1510中确定信息不一 致,则过程进行到步骤S1511的处理,并且软件启动失败。接下来对由于某种原因丢弃虚拟PC 1302的情况进行说明。在这种情况下,如果 存在PCID备份文件313,则可以通过在进行软件许可证的验证前进行用于恢复备份文件的 处理来恢复许可证信息中的PCID信息。如果在该状态下进行许可证验证,则将在上述的 PCID检查中发现一致性,因此确定客户端装置为之前验证过的客户端装置,并且可以进行 再验证。其他实施例还可以由读出并执行记录在存储设备上的程序来执行上述实施例的功能的系统 或装置的计算机(或诸如CPU或MPU等的设备),来实现本发明的各方面;并且可以利用由 通过例如读出并执行记录在存储设备上的程序来执行上述实施例的功能的系统或装置的 计算机来执行各步骤的方法,来实现本发明的各方面。为此,例如经由网络或从用作存储设 备的各种类型的记录介质(例如,计算机可读介质)将程序提供给计算机。虽然参照示例性实施例对本发明进行了描述,但是应当理解,本发明不局限于所 公开的示例性实施例。应当对所附权利要求的范围给予最宽的解释,以使其涵盖所有的这 类变型例及等同结构和功能。
权利要求
一种许可证管理系统,在所述许可证管理系统中,终端装置与服务器装置经由网络连接,并且所述服务器装置管理所述终端装置中的软件的许可证,所述终端装置包括生成单元,其生成用于识别所述终端装置的终端标识信息;以及发送单元,其在进行关于许可证的验证的情况下,将由所述生成单元生成的所述终端标识信息以及关于构成所述终端装置的硬件的信息发送给所述服务器装置,并且所述服务器装置包括验证单元,其使用由所述发送单元发送的所述终端标识信息,针对所述终端装置进行关于许可证的验证;以及存储单元,其在由所述验证单元进行的所述验证成功的情况下,将所述终端标识信息与同所述终端标识信息一起被所述发送单元发送的硬件信息彼此相关联地进行存储,其中,所述验证单元使用由所述发送单元发送的所述硬件信息和由所述存储单元存储的所述硬件信息,进行关于之前颁发的许可证的再验证,并且在根据由所述验证单元进行的成功的再验证、所述终端装置从所述服务器装置接收到了与在所述再验证中使用的所述硬件信息相关联地存储在所述存储单元中的终端标识信息的情况下,当进行关于之前颁发的许可证的验证时,所述发送单元发送所接收到的终端标识信息以及所述硬件信息。
2.根据权利要求1所述的许可证管理系统,其中,在由所述发送单元发送的所述终端 标识信息未被存储在所述存储单元中的情况下,所述验证单元使用同所述终端标识信息一 起被发送的所述硬件信息、以及由所述存储单元存储的所述硬件信息,进行关于之前颁发 的许可证的再验证。
3.根据权利要求1所述的许可证管理系统,其中,所述发送单元将由所述生成单元生成的所述终端标识信息、关于构成所述终端 装置的硬件的信息、以及表示所述终端装置是否是虚拟终端装置的虚拟标记信息,发送给 所述服务器装置,并且在由所述发送单元发送的所述终端标识信息未被存储在所述存储单元中、并且同所述 终端标识信息一起发送的所述虚拟标记信息表示所述终端装置不是虚拟终端装置的情况 下,所述验证单元使用由所述存储单元存储的所述硬件信息进行关于之前颁发的许可证的 再验证。
4.根据权利要求3所述的许可证管理系统,其中,在所述发送单元向所述服务器装置 发送表示所述终端装置是虚拟终端装置的虚拟标记信息的情况下,在所述终端装置中保持 所述终端标识信息作为备份。
5.一种用于许可证管理系统的方法,在所述许可证管理系统中,终端装置与服务器装 置经由网络连接,并且所述服务器装置管理所述终端装置中的软件的许可证,所述终端装置执行以下步骤 生成用于识别所述终端装置的终端标识信息;以及在进行关于许可证的验证的情况下,将在所述生成步骤中生成的所述终端标识信息以 及关于构成所述终端装置的硬件的信息发送给所述服务器装置,并且 所述服务器装置执行以下步骤使用在所述发送步骤中发送的所述终端标识信息,针对所述终端装置进行关于许可证 的验证;以及在所述验证步骤中进行的所述验证成功的情况下,将所述终端标识信息与同所述终端 标识信息一起在所述发送步骤中被发送的硬件信息彼此相关联地进行存储,其中,在所述验证步骤中,使用在所述发送步骤中发送的所述硬件信息和在所述存储 步骤中存储的所述硬件信息,进行关于之前颁发的许可证的再验证,并且在根据在所述验证步骤中进行的成功的再验证、所述终端装置从所述服务器装置接收 到了在所述存储步骤中与在所述再验证中使用的所述硬件信息相关联地存储的终端标识 信息的情况下,当进行关于之前颁发的许可证的验证时,在所述发送步骤中发送所接收到 的终端标识信息以及所述硬件信息。
6.一种服务器装置,其经由网络连接到终端装置,并且管理所述终端装置中的软件的 许可证,所述服务器装置包括接收单元,其从所述终端装置接收由所述终端装置生成的终端标识信息、以及关于构 成所述终端装置的硬件的信息;验证单元,其使用由所述接收单元接收到的所述终端标识信息,针对所述终端装置进 行关于许可证的验证;以及存储单元,其在由所述验证单元进行的所述验证成功的情况下,将所述终端标识信息 与同所述终端标识信息一起被所述接收单元接收到的硬件信息彼此相关联地进行存储,其中,所述验证单元使用由所述接收单元接收到的所述硬件信息和由所述存储单元存 储的所述硬件信息,进行关于之前颁发的许可证的再验证,并且根据由所述验证单元进行的成功的再验证,将与在所述再验证中使用的所述硬件信息 相关联地存储在所述存储单元中的所述终端标识信息发送给所述终端装置。
7.—种在服务器装置中执行的方法,所述服务器装置管理软件的许可证,所述方法包 括以下步骤从网络上的终端装置接收由所述终端装置生成的终端标识信息、以及关于构成所述终 端装置的硬件的信息;使用所接收到的终端标识信息,针对所述终端装置进行关于许可证的验证;以及 在所述验证成功的情况下,将所述终端标识信息与同所述终端标识信息一起被接收到 的硬件信息彼此相关联地进行存储,其中,在所述验证步骤中,使用在所述接收步骤中接收到的所述硬件信息和在所述存 储步骤中存储的所述硬件信息,进行关于之前颁发的许可证的再验证,并且根据成功的再验证,将在所述存储步骤中与在所述再验证中使用的所述硬件信息相关 联地存储的所述终端标识信息发送给所述终端装置。
全文摘要
本发明提供一种许可证管理系统及其验证方法、服务器装置及其方法。在所述许可证管理系统中,终端装置与服务器装置经由网络连接,所述服务器装置管理所述终端装置中的软件的许可证。在该许可证管理系统中,当所述服务器装置从所述终端装置接收到对之前验证过的许可证进行再验证的请求时,服务器基于从所述终端装置发送来的不同的多项终端标识信息和多项设备信息、以及由于验证处理而存储了的多项设备信息来进行所述许可证的再验证。
文档编号G06F21/00GK101964031SQ20101023870
公开日2011年2月2日 申请日期2010年7月23日 优先权日2009年7月24日
发明者速水祥和 申请人:佳能株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1