安全许可证管理.pdf

上传人:62****3 文档编号:1017205 上传时间:2018-03-25 格式:PDF 页数:16 大小:710.68KB
返回 下载 相关 举报
摘要
申请专利号:

CN200510022937.X

申请日:

2005.12.22

公开号:

CN1808455A

公开日:

2006.07.26

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效|||公开

IPC分类号:

G06F21/00(2006.01)

主分类号:

G06F21/00

申请人:

SAP股份公司;

发明人:

罗杰·基利恩-凯尔; 简·基莫尔

地址:

德国瓦尔多夫

优先权:

2004.12.22 US 11/020,386

专利代理机构:

北京市柳沈律师事务所

代理人:

邵亚丽;李晓舒

PDF下载: PDF下载
内容摘要

本发明涉及用于安全的许可证管理的系统、方法和计算机程序产品。主计算机在可信状态下运行。许可证管理器被安装在主计算机上。许可证管理器被配置成提供对一个或多个软件程序的访问。一个或多个软件程序仅能够通过许可证管理器被访问。许可证管理器被绑定到主计算机的可信状态,从而如果可信状态不再存在,则许可证管理器就不能执行,并且一个或多个软件程序就不能被访问。主计算机可以是TPCA(可信计算平台联盟)使能的计算机。

权利要求书

1、  一种系统,包括:
在可信状态下运行的主计算机;以及
安装在所述主计算机上的许可证管理器,所述许可证管理器被配置成提供对一个或多个软件程序的访问,所述一个或多个软件程序仅仅能够通过许可证管理器被访问,所述许可证管理器被绑定到主计算机的可信状态,从而如果可信状态不再存在,则该许可证管理器就不能被执行,并且所述一个或多个软件程序就不能被访问。

2、
  如权利要求1所述的系统,其中,所述主计算机是TCPA(可信计算平台联盟)使能计算机。

3、
  如权利要求1所述的系统,其中,所述可信状态是通过使用安全启动过程启动所述主计算机而被建立的。

4、
  如权利要求3所述的系统,其中:
所述主计算机包含硬件组件和软件组件,所述软件组件包含操作系统,所述硬件组件包含用于测量的信任根核(CRTM),所述CRTM为可信组件;并且
所述安全启动过程涉及在将系统控制移交给所述操作系统之前,使用可信组件核验所述硬件组件的可信度,随后,所述操作系统核验所述软件组件的完整性。

5、
  如权利要求4所述的系统,其中,
所述硬件组件还包含可信平台模块(TPM);并且
所述硬件组件和软件组件的可信度是使用存储在TPM中的系统配置数据核验的。

6、
  如权利要求1所述的系统,其中,所述许可证管理器被划分成动态数据部分和静态代码部分,所述动态数据部分包含在执行许可证管理器期间改变的数据,所述静态代码部分包含在执行所述许可证管理器期间不变的数据。

7、
  如权利要求6所述的系统,其中,所述静态代码部分被划分为两个子部分,其中,第一子部分存储软件程序的代码,而第二子部分存储许可证管理器的配置数据。

8、
  如权利要求6所述的系统,其中,所述动态数据部分由加密密钥(数据密钥)保护,所述静态代码部分由不同的加密密钥(代码密钥)保护。

9、
  如权利要求8所述的系统,其中,所述数据密钥和代码密钥由不同的加密密钥(外部密钥)保护。

10、
  如权利要求9所述的系统,其中,所述外部密钥被绑定到主计算机的可信状态。

11、
  一种在信息载体上有形地实施的计算机程序产品,所述计算机程序产品可操作用以导致数据处理装置执行包括下列步骤的操作:
核验主计算机正在可信状态下运行;
从主计算机接收第一加密密钥,该第一加密密钥被绑定到主计算机的可信状态;
使用第一加密密钥对许可证管理器加密;并且
将加密后的许可证管理器传送到主计算机。

12、
  如权利要求11所述的计算机程序产品,其中,所述核验主计算机正在可信状态下运行包含执行对主计算机的远程证明处理。

13、
  如权利要求12所述的计算机程序产品,其中,所述执行对主计算机的远程证明处理包含:
从主计算机接收系统配置数据;并且
将接收到的系统配置数据与一组已知的系统配置相比较。

14、
  如权利要求12所述的计算机程序产品,其中,所述许可证管理器被划分为动态数据部分和静态代码部分,所述动态数据部分包含在执行许可证管理器期间改变的数据,静态代码部分包含在执行许可证管理器期间不变的数据。

15、
  如权利要求14所述的计算机程序产品,其中,所述使用第一加密密钥对许可证管理器加密包含使用第二加密密钥对动态数据部分加密,使用第三加密密钥对静态代码部分加密,并且使用第一加密密钥对第一和第二加密密钥加密。

16、
  一种用于将许可证管理器传送给主计算机的方法,该方法包括:
核验主计算机正在可信状态下运行;
从主计算机接收加密密钥,该加密密钥被绑定到主计算机的可信状态;
使用所述加密密钥对许可证管理器加密;以及
将加密后的许可证管理器传送给主计算机。

17、
  如权利要求16所述的方法,其中,所述核验主计算机正在可信状态下运行包含执行对主计算机的远程证明处理。

18、
  如权利要求17所述的方法,其中,所述执行对主计算机的远程证明处理包含:
从主计算机接收系统配置数据;并且
将接收到的系统配置数据与一组已知的系统配置相比较。

19、
  如权利要求16所述的方法,其中,所述许可证管理器被划分为动态数据部分和静态代码部分,所述动态数据部分包含在执行许可证管理器期间改变的数据,所述静态代码部分包含在执行许可证管理器期间不变的数据。

20、
  如权利要求19所述的方法,其中,所述使用第一加密密钥对许可证管理器加密包含使用第二加密密钥对所述动态数据部分加密,使用第三加密密钥对所述静态代码部分加密,以及使用第一加密密钥对第一和第二加密密钥加密。

说明书

安全许可证管理
技术领域
本公开涉及由数字计算机执行的数据处理,并且更具体地,涉及许可证(license)管理。
背景技术
软件销售商使用许可证管理程序,也称为许可证管理器来防止对软件未经授权的使用。许可证管理器被设计成执行软件许可证的条件并防止在不满足那些条件时对软件的访问。
不幸的是,与任何的软件程序一样,许可证管理器容易受到篡改的攻击。然而,传统的许可证管理器不能确定它们在其中运行的计算环境的可信度。
发明内容
本发明提供实现用于许可证管理的技术的方法、系统和计算机程序产品。
在一个总体方面,一种实现该技术的系统包括:在可信状态下运行的主计算机;以及安装在所述主计算机上的许可证管理器。所述许可证管理器被配置成提供对一个或多个软件程序的访问。所述一个或多个软件程序仅仅能够通过许可证管理器被访问。许可证管理器被绑定到主计算机的可信状态,从而如果可信状态不再存在,则许可证管理器就不能被执行,并且一个或多个软件程序就不能被访问。
实现能够包含下列特征中的一个或多个。所述主计算机可以是TCPA(可信计算平台联盟)使能的计算机。
所述可信状态可以通过使用安全启动过程启动主计算机而被建立。
所述主计算机包含硬件组件和软件组件。软件组件可以包含操作系统。硬件组件可以包含用于测量的信任根核(CRTM)。CRTM可以是可信组件。
安全启动过程可以涉及在将系统控制移交给操作系统之前,使用可信组件核验硬件组件的可信度,随后,操作系统核验软件组件的完整性。
硬件组件还可以包含可信平台模块(TPM)。硬件和软件组件的可信度可以使用存储在TPM中的系统配置数据被核验。
许可证管理器可以被划分成动态数据部分和静态代码部分,动态数据部分可以包含在执行许可证管理器期间改变的数据,静态代码部分包含在执行许可证管理器期间不变的数据。
静态代码部分可以被划分为两个子部分,第一子部分存储软件程序的代码,而第二子部分存储许可证管理器的配置数据。
动态数据部分可以由加密密钥(数据密钥)保护,静态代码部分由不同的加密密钥(代码密钥)保护。
数据密钥和代码密钥可以由不同的加密密钥(外部密钥)保护。外部密钥可以被绑定到主计算机的可信状态。
在另一个总体方面,实现所述技术的计算机程序产品可操作用以导致数据处理装置执行包含下列步骤的操作:核验主计算机正在可信状态下运行;从主计算机接收第一加密密钥,该第一加密密钥被绑定到主计算机的可信状态;使用第一加密密钥对许可证管理器加密;并且将加密后的许可证管理器传送到主计算机。
实现能够包含下列特征中的一个或多个。核验主计算机正在可信状态下运行可以包含执行对主计算机的远程证明处理。
执行对主计算机的远程证明处理可以包含:从主计算机接收系统配置数据;并且将接收到的系统配置数据与一组已知的系统配置相比较。
许可证管理器可以被划分成动态数据部分和静态代码部分,动态数据部分可以包含在执行许可证管理器期间改变的数据,静态代码部分包含在执行许可证管理器期间不变的数据。
使用第一加密密钥对许可证管理器加密可以包含使用第二加密密钥对动态数据部分加密,使用第三加密密钥对静态代码部分加密,并且使用第一加密密钥对第一和第二加密密钥加密。
实施所述技术可以实现下列优点中的一个或多个。许可证管理器是安全的,不会被篡改。在许可证管理器被安装在主计算机上之前,可信状态就在主计算机上被建立。只要可信状态存在,对于许可证管理器就能够确保在主机环境中不包含任何试图妨碍许可证管理器正确工作的欺诈(rogue)程序。一种实现方式提供上述所有优点。
在以下的附图和说明书中阐述一种或多种实现方式的细节。说明书、附图和权利要求书将使更多的特征、方面和优点变得更加清楚。
附图说明
图1示出了安全许可证管理的系统。
图2示出了TCPA使能的主计算机。
图3示出了许可证管理器。
图4示出了密钥容器。
图5示出了用于向主计算机传送许可证管理器和密钥容器的处理。
在不同附图中的相同的参考编号和标记指示相同的元素。
具体实施方式
如图1所示,系统100包含用于管理对一个或多个软件程序120的使用的许可证管理器110。许可证管理器110执行由一个或多个与每个软件程序120相关联的软件许可证130所定义的使用的特定条件。只能够通过许可证管理器110访问软件程序120。因此,如果许可证管理器110不运行,则软件程序120就不可访问。
许可证管理器110和软件程序120被安装在主计算机140上。
在将许可证管理器110安装到主计算机140上之前,在主计算机140上建立可信状态(trusted state)150。
然后,许可证管理器110被绑定到该可信状态150,以使得许可证110只能够在可信状态150存在的时候运行。如果可信状态150不再存在,则许可证管理器110不能运行,并且一个或多个软件程序120不能被访问。
可信状态150是通过使用安全启动(boot)过程启动主计算机140而被建立的。在一种实现方式中,安全启动过程要求主计算机140是TCPA使能(TCPA-enabled)的计算机。TCPA(Trusted Computing Platform Alliance,可信计算平台联盟)是由多家计算公司(例如,Advanced Micro Devices、Hewlett-Packard、Intel、IBM、Microsoft、Sony、Sun)领导发起的,用以实现用于可信计算的技术。这一公司组织,也被称为可信计算组织,已经发表了TCPA规范(可以在http://www.trustedcomputinggroup.org获得),该规范描述了由该组织开发的技术。
如图2所示,TCPA使能的主计算机200包含两个TCPA组件,用于测量的信任根核(Core Root of Trust for Measurement,CRTM)210和可信平台模块(TPM)220。
在一种实现方式中,可信平台模块220是计算机芯片(例如,智能卡),该计算机芯片被硬连接(hard-wired)以提供特定的功能,例如密钥生成和对所生成的密钥的受控制的访问。可信平台模块220包含被称为平台配置寄存器(PCR)230的一组存储寄存器。平台配置寄存器230存储系统配置数据240。系统配置数据240可以是从主计算机140的各种硬件和软件组件提取的测量标准(metrics)。如下面将要说明的,这些测量标准将在安全启动过程期间被使用,以核验(verify)主计算机140的可信度。
CRTM 210是主计算机140仅有的能够在最初,即,在主计算机140上建立可信状态150之前,被信任的组件。在一种实现方式中,CRTM 210是主计算机140地BIOS(基本输入/输出系统)。或者,CRTM 210仅仅由主计算机的BIOS的一部分构成。
CRTM 210在主计算机200开机时开始执行。CRTM 210在将系统控制移交给操作系统之前核验硬件组件的完整性(integrity)。随后,操作系统核验软件组件的完整性。使用存储在可信平台模块220的平台配置寄存器230中的系统配置数据240执行对硬件和软件组件的核验。测量标准反映系统配置如何被配置。如果系统配置被篡改或以其它方式被修改,则测量标准将反映这种改变。如果CRTM 210或操作系统检测到对硬件或软件组件的任何改变,则启动过程停止。一旦启动过程已经完成,在主计算机140上就已经建立了可信状态150。一旦可信状态150被建立,就能够在主计算机140上安装许可证管理器110。
如图3所示,在一种实现方式中,许可证管理器110被划分为动态数据部分310和静态代码部分320。可选择地,许可证管理器110能够包含第三个分区,元数据部分330,用于存储有关许可证管理器110的元数据。例如,元数据能够包含识别由许可证管理器110管理的软件程序120的信息,以及识别这些程序120的授权用户的信息。
动态数据部分310包含许可证管理器110执行其功能所需要的数据。该数据是动态的,这意味着它的值在许可证管理器110的执行期间变化。例如,该数据能够包含对软件程序120已经被执行过的次数的计数的计数器值。
静态代码部分320包含软件程序120运行所要求的代码。静态代码部分320还包含许可证管理器110所要求的配置数据。例如,配置数据可以指示许可证管理器110将使用哪个网络端口和哪个主机地址(例如,license.xxx.com)。静态代码部分320能够被划分为两个子部分,一个子部分存储软件程序代码,另一个子部分存储许可证管理器配置数据。
在一种实现方式中,许可证管理器110由一个或多个加密密钥保护。这些密钥被存储在图4所示的密钥容器400中。密钥容器400包含数据密钥410和代码密钥420,其中数据密钥410用于对许可证管理器110的动态数据部分310加密,而代码密钥420用于对许可证管理器110的静态数据部分320编码。数据密钥410和代码密钥420是不同的加密密钥。
密钥容器400还包含从认证机构获得的证书430。该证书用于验证静态代码部分320。动态数据部分310不被验证,因为预期到存储在动态数据部分310中的数据将会改变。
整个密钥容器400由将被称为外部密钥440的加密密钥保护。外部密钥440由可信平台模块220生成,并被存储在可信平台模块220中。如果主计算机140不是在可信状态150下运行,则可信平台模块220将不会释放外部密钥440。
在一种实现方式中,外部密钥440是不对称(asymmetric)密钥而数据密钥410和代码密钥420是对称(symmetric)密钥。或者,数据密钥410和代码密钥420也可以是不对称密钥。在本说明书中,数据密钥410和代码密钥420将被共同称为内部密钥。
图5示出了用于将许可证管理器110传送到主计算机140的处理。该处理仅在可信状态150在主计算机140上被建立之后执行。
一般地,该处理通过主计算机140的用户与软件程序120的制造商进行联系以请求向主计算机140传送用于软件程序120的许可证管理器110来触发。
在允许该传送发生之前,制造商使用远程证明处理(remote attestationprocess)510核验主计算机410的可信度。作为远程证明处理510的一部分,制造商的计算机向主计算机140发送询问(challenge)(步骤520)。
响应于该询问,主计算机140向制造商的计算机发送带签名的版本(signed version)的系统配置数据240。对数据签名的目的是为了证明数据的真实性。作为响应的一部分,主计算机140还向制造商的计算机发送外部密钥440(步骤530)。更具体地,被发送的仅仅是外部密钥440的公共(public)部分。私有(private)部分被保留在可信平台模块220中。
在接收到带签名的配置数据和外部密钥440之后,制造商例如通过将主计算机的系统配置与已知为可信的计算机系统的系统配置相比较来核验主计算机140的可信度。
一旦主计算机140的可信度通过核验,制造商的计算机就生成内部密钥(数据密钥410和代码密钥420)(步骤540),并使用内部密钥对合格证管理器110加密(步骤550)。内部密钥是为许可证管理器110的每个安装特别生成的,并且每个安装的内部密钥互不相同。
然后,制造商在密钥容器400中存储内部密钥410、420,并使用外部密钥440对密钥容器加密(步骤560)。制造商随后将加密的密钥容器400和加密的许可证管理器110发送到主计算机140(步骤570)。
主计算机140使用外部密钥440的私有部分解锁密钥容器400,并从密钥容器400内部检索内部密钥。主计算机140随后使用内部密钥解锁许可证管理器110并安装许可证管理器(步骤580)。
如之前所提到的,外部密钥440被绑定到可信状态150。因此,如果主计算机140不再运行在可信状态150下,则主计算机140将不能解锁密钥容器400和获得对许可证管理器110的访问。
本说明书中说明的本发明的各种实现方式和所有功能操作都能够在数字电子电路中实现,或者在计算机软件、固件或硬件,包含本说明书中公开的结构装置及其结构等价物中实现,或者在它们的组合中实现。本发明能够被实现为一个或多个计算机程序产品,即,有形地在信息载体中,例如在机器可读存储设备中或在传播信号中,实施的一个或多个计算机程序,其用于由例如可编程处理器、计算机或多计算机的数据处理设备执行,或者用于对所述数据处理设备的操作进行控制。计算机程序(也称为程序、软件、软件应用或代码)能够以包含编译或解译语言的任何形式的编程语言写成,并且它能够以任何形式被使用(deploy),包括作为孤立程序,或作为模块、组件、子程序或其它适合在计算环境中使用的单元。计算机程序不一定对应于文件。程序可以被存储在容纳了其它程序或数据的文件的一部分中、被存储在所讨论的程序所专用的单一文件中、或被存储在多个协调的(coordinated)文件(例如,存储一个或多个模块、子程序、或代码的一部分的文件)中。计算机程序能够被配置成在一台计算机上执行、在一个地点的多台计算机上执行、或者在分布在不同地点的由通信网络相互连接的多台计算机上执行。
本说明书中说明的处理和逻辑流程,包含本发明的方法步骤,能够由运行一个或多个计算机程序的一个或多个可编程处理器执行,以便通过对输入数据操作并生成输出数据来执行本发明的功能。处理和逻辑流程也可以由例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)的专用逻辑电路来执行,本发明的装置也可以实现为上述专用逻辑电路。
举例来说,适合执行计算机程序的处理器包含通用和专用微处理器两者,以及任何种类的数字计算机的一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或它们两者接收指令和数据。计算机的关键元件是用于执行指令的处理器和一个或多个用于存储指令和数据的存储设备。通常,计算机还会包含一个或多个例如磁盘、磁光(magneto-optical)盘或光盘的用于存储数据的海量存储器设备,或者计算机会被有效地(operatively)连接到一个或多个上述海量存储器设备以便从其接收数据或向其发送数据,或两者。适合用于实施计算机程序指令和数据地信息载体包含所有形式的非易失性存储器,举例来说,包含例如EPROM、EEPROM和快闪存储器设备的半导体存储器设备;例如内置硬盘或移动硬盘的磁盘;磁光盘;以及CD-ROM和DVD-ROM盘。处理器和存储器能够用专用逻辑电路作为补充,或者可以结合在专用逻辑电路中。
为了提供与用户的交互,本发明能够在具有诸如CRT(阴极射线管)或LCD(液晶显示器)监视器以及键盘和例如鼠标和跟踪球的指示设备的计算机上实施,其中,监视器用于向用户显示信息,通过键盘和指示设备用户能够向计算机提供输入。也能够使用其它种类的设备来提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感观反馈,例如视觉反馈、听觉反馈或触觉反馈;并且能够以任何形式接收来自用户的输入,包含声音、话音或触觉输入。
本发明能够在包含后端组件(例如,数据服务器)、中间件组件(例如,应用服务器)、或前端组件(例如,具有图形用户界面或网络浏览器的客户端计算机,通过该图形用户界面或网络浏览器用户能够与本发明的实施例交互),或上述后端、中间件和前端组件的任意组合的计算机上实现。系统的组件可以通过任何形式或介质的数字数据通信,例如通信网络,来相互连接。通信网络的例子包含局域网(“LAN”)和广域网(“WAN”),例如因特网。
计算系统能够包含客户端和服务器。客户端和服务器通常互为远程,并且一般通过通信网络交互。客户端和服务器的关系通过在各自的计算机上运行的彼此具有客户端-服务器关系的计算机程序的作用而建立。
已经按照具体的实现方式说明了本发明,但是其它的实现方式也在所附权利要求书的范围之内。例如,操作能够以不同的顺序执行而仍然获得期望的结果。在某些实现方式中,多任务和并行处理可能是优选的。

安全许可证管理.pdf_第1页
第1页 / 共16页
安全许可证管理.pdf_第2页
第2页 / 共16页
安全许可证管理.pdf_第3页
第3页 / 共16页
点击查看更多>>
资源描述

《安全许可证管理.pdf》由会员分享,可在线阅读,更多相关《安全许可证管理.pdf(16页珍藏版)》请在专利查询网上搜索。

本发明涉及用于安全的许可证管理的系统、方法和计算机程序产品。主计算机在可信状态下运行。许可证管理器被安装在主计算机上。许可证管理器被配置成提供对一个或多个软件程序的访问。一个或多个软件程序仅能够通过许可证管理器被访问。许可证管理器被绑定到主计算机的可信状态,从而如果可信状态不再存在,则许可证管理器就不能执行,并且一个或多个软件程序就不能被访问。主计算机可以是TPCA(可信计算平台联盟)使能的计算机。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1