专利名称:对访问基于计算机的对象的授权的制作方法
技术领域:
本发明涉及一种用于对访问基于计算机的对象进行授权的方法和一种用于实施该方法的控制程序。
由于未经授权地使用计算机程序,在世界范围内产生极大的危害。为了抵制该现象,研发用于防止计算机程序被未经授权地使用的解决方案。
加密的用于激活计算机程序的信息的传送用于阻止未经授权地复制计算机程序。此外,相应的方法例如用作技术前提,以便通过电子商务(E-Commerce)大量销售作为产品的计算机程序。在迄今已知的用于激活计算机程序的方法中,分别根据注册密钥来激活计算机程序。为了激活计算机程序,手动地输入或从数据载体导入固定地分配给计算机程序许可证的注册密钥。尤其是在多个安装在不同计算机上的计算机程序的情况下,由此导致高的、与人力密集的操作和维护工作相关联的管理花费。
从EP 1 191 419 A2已知这样的方法,在所述方法中通过修改注册密钥对可以在可选的使用期限内激活计算机程序的可预先确定的功能。所述注册密钥对具有至少一个禁止用户访问的部分信息。待激活的功能不一定必须在计算机程序的首次安装时已经可供用于激活,而是也能够事后被补选。为了进行激活,不需要在安装有相应计算机程序的计算机的所在地投入操作和维护人员。
根据EP 1 191 419 A2中所描述的方法,注册密钥对的组成部分是应用信息和应用值。在安装有要注册的计算机程序的第一计算机上输入所述应用信息,或者由该第一计算机生成所述应用信息。在第二计算机中借助编码根据所述应用信息计算出所述应用值。
在注册计算机程序或者改变注册时,将具有至少一个禁止用户访问的部分信息的第一应用信息传送给第二计算机。在第二计算机中,根据第一应用信息计算出应用值,该应用值随后被传送给第一计算机。借助解码,在第一计算机中根据所述应用值确定第二应用信息。在开始执行计算机程序时检验第一和第二应用信息的一致性。根据在检验时得出的偏差来激活计算机程序的可预先确定的功能。
本发明所基于的任务是,给出一种方法以及一种适用于自动实施该方法的工具,其中所述方法提供被提高的防止未经授权地使用计算设备中所提供的资源的保护。
根据本发明,该任务通过一种具有权利要求1中所说明的特征的方法和一种具有权利要求10中所说明的特征的控制程序来解决。在从属权利要求中说明了本发明的有利的扩展方案。
根据本发明,由以下方式产生被提高的防止未经授权地使用计算设备中所提供的资源的保护,即作为对访问基于计算机的对象进行授权的前提,提供具有程序代码处理器的存储卡和许可信息。在所述存储卡上存储有至少一个被分配给存储卡的公开密钥和私有密钥以及可信赖实体的公开密钥。所述许可信息包括至少一个借助被分配给存储卡的公开密钥来进行加密的许可码,并且所述许可信息在控制对基于计算机的对象的访问的计算设备上被提供。所加密的许可码和借助可信赖实体的私有密钥来进行数字签名的、要由存储卡执行的用于对许可码进行解密的功能的说明被传送给所述存储卡。要由存储卡执行的功能的说明的数字签名随后被检验。在肯定的检验结果的情况下,通过所述存储卡执行用于对许可码进行解密的功能并且将所解密的许可码传送给所述计算设备。于是,所解密的许可码至少暂时地被提供用于访问所述基于计算机的对象。
计算设备在不限制该概念的一般性的情况下例如可理解为PC、笔记本电脑、服务器、PDA、移动电话、自动取款机、在自动化技术、汽车技术、通信技术或医学技术中的控制模块(一般而言能够运行计算机程序的设备)。此外,基于计算机的对象在不限制该概念的一般性的情况下例如是操作系统、控制或应用程序、由操作系统、控制或应用程序所提供的业务、性能特征、功能或过程、对外围设备的访问权限以及位于存储介质之上的数据。
根据本发明的有利的改进方案,在所述计算设备上防篡改(Manipulation)地提供可信赖实体的公开密钥。此外,借助可信赖实体的私有密钥对许可信息进行数字签名。因此,可以在计算设备中借助可信赖实体的公开密钥对许可信息的数字签名进行检验。以这种方式能够保证许可信息到计算设备的可信赖的并且安全的传送。
有利地,所述许可信息附加地包括被分配给所述存储卡的公开密钥。此外,借助被分配给所述存储卡的私有密钥对所解密的许可码进行数字签名。于是,可以在计算设备中借助被分配给存储卡的公开密钥对所解密的许可码的数字签名进行检验。这提供以下优点,即将所解密的许可码安全地传送给计算设备,这与确实已利用被设置用于解密的存储卡对许可码进行了解密的保证相关联。
此外,在计算设备中可以根据所加密的许可信息和签名对象来产生借助可信赖实体的私有密钥来数字签名的、要由存储卡执行的用于对许可码进行解密的功能的说明。所述签名对象只包括由可信赖实体签名的用于对许可码进行解密的功能调用的签名部分。该扩展方案提供以下优点,即可用的安全消息传递(Secure-Messaging)方法能够被用于传送相应的功能调用。此外,所述许可信息可以附加地包括所述签名对象,使得能够确保安全地提供所述签名对象。
根据本发明的另一有利的扩展方案,通过安全的通信连接从所述计算设备经由读设备向所述存储卡传送加密的许可码和借助可信赖实体的私有密钥来进行数字签名的、要由存储卡执行的功能的说明。由此,用于未经授权地获得对基于计算机的对象的访问的篡改可能性进一步被限制。
有利地,借助可信赖实体的公开密钥来检验要由存储卡执行的功能的说明的数字签名。这用于阻止未经授权地对许可码进行解密。
根据本发明的另一扩展方案,在所述计算设备中产生随机数并且将该随机数传送给所述存储卡。然后,借助被分配给存储卡的私有密钥和所述随机数对所解密的许可码进行数字签名。最后,在所述计算设备中借助被分配给存储卡的公开密钥和所述随机数对所解密的许可码的数字签名进行检验。由此产生有效的重复保护,使得对在存储卡与计算设备之间所交换的信号的截获并不开启有效的篡改可能性。
根据本发明的一个优选的扩展方案,为了对访问基于计算机的对象进行授权,利用相应的额定预定值来调整(abgleichen)所解密的许可码和检验处理过程。这提供额外的安全性,因为仅仅所解密的许可码的存在对于访问权限来说不再是足够的,而是与成功的检验处理过程相联系的。
下面根据附图
借助实施例来更详细地解释本发明。
该图示出本发明的一个应用环境的示意图,所述应用环境具有在可信赖实体、控制对基于计算机的对象的访问的计算设备和具有程序代码处理器的存储卡之间的信息和消息交换。
图中所示的本发明应用环境包括可信赖实体10、计算机20、与计算机20相连接的智能卡终端30,其中可将智能卡40插入到该智能卡终端30中。可信赖实体10例如可以被分配给要防止被未经授权的访问的软件的制造商,并且承担对许可证和被分配给智能卡的密钥材料的管理。此外,给可信赖实体10分配了非对称的密钥对11,该密钥对包括私有密钥和公开密钥。为了存储被分配给智能卡的密钥材料,设置有数据库12,其包含要发售的或已发售的智能卡的公开密钥。
通过计算机20,使系统资源22可供一个或多个用户使用,所述系统资源22例如包括程序或具有数据的存储区。这里所描述的、用于对访问基于计算机的对象进行授权的方法原则上可以被应用于任意的系统资源。计算机20尤其控制对系统资源22的访问,所述系统资源22在本情况中也包括制造商的软件,其中可信赖实体10被分配给该制造商。此外,在计算机20上防篡改地提供可信赖实体10的公开密钥21。
智能卡终端30通过安全的通信连接与计算机20相连接。该智能卡终端30用于计算机20和可插入到智能卡终端30中的智能卡40之间的信息和消息交换,其中所述智能卡是具有程序代码处理器的存储卡。在智能卡40上存储有可信赖实体10的公开密钥41以及被分配给智能卡的非对称的密钥对42,所述非对称的密钥对42包括智能卡40的公共密钥和私有密钥。此外,在智能卡40上设置有至少一个程序,用于在利用智能卡40的非对称的密钥对42的情况下进行加密和解密并且用于验证借助可信赖实体10的私有密钥所产生的签名。在此,借助可信赖实体10的公开密钥41来实现对签名的验证。此外,智能卡40具有随机数发生器并优选地符合IFO 7816/4。
在计算机20上提供由可信赖实体10创建的许可信息1。所述许可信息1包括借助被分配给智能卡40的公开密钥所加密的许可码(enc_SC(licencecode))、被分配给智能卡40的公开密钥(pub_SC)和签名对象(DS_Object)。该签名对象只包括由可信赖实体10签名的用于借助智能卡40对许可码进行解密的功能调用(PSO_DEC-执行安全操作模式解密(perform security operation mode decrypt))的签名部分。此外,借助可信赖实体10的私有密钥对许可信息1进行数字签名(sig_TP),使得能够在计算机20中借助可信赖实体10的公开密钥21对许可信息1的数字签名进行检验。
为了实现对计算机20和智能卡终端30或智能卡40之间的信息和消息交换的重复保护,在计算机20中产生随机数(rand)并且借助消息2将该随机数传送到智能卡40上(give_random)。由智能卡40通过确认消息3对随机数的接收进行确认。随后由计算机20向智能卡40传送用于对许可码进行解密的消息4。用于对许可码进行解密的消息4包括借助可信赖实体10的私有密钥来进行数字签名的、要由智能卡40执行的功能的说明,其中所述功能用于对包括加密的许可码在内的许可码进行解密。
在计算机20中根据由许可信息1所包括的签名对象和加密的许可码来产生借助可信赖实体10的私有密钥来进行数字签名的、要由智能卡40执行的用于对许可码进行解密的功能的说明。以这种方式,由计算机20以可信赖实体10的名义创建由可信赖实体10签名的安全消息传递命令(SM_sig_TP),由此确保,要由智能卡40执行的用于对许可码进行解密的功能的说明和加密的许可码确实已经由可信赖实体10签发。
检验要由智能卡40执行的功能的说明的数字签名和在肯定的检验结果的情况下由智能卡40来执行用于对许可码进行解密的功能彼此相联系,以便通过形成共同的功能环境来防止篡改尝试。尤其是确保,只能通过为此而设置的智能卡来对许可码进行解密。
在执行了用于对许可码进行解密的功能(执行安全操作模式解密,被应用于借助智能卡40的公共密钥所加密的许可码)并且进行了解密之后,所解密的许可码在使用安全消息传递的情况下借助消息5被传送给计算机20。为了使用安全消息传递,借助被分配给智能卡40的私有密钥和由计算机20所产生的随机数对所解密的许可码进行数字签名(SM_rand_sig_SC)。在传送给计算机20之后,通过计算机20借助被分配给存储卡的公共密钥和随机数来检验所解密的许可码的数字签名。原则上,仅借助被分配给智能卡40的私有密钥对所解密的许可码进行数字签名并且借助智能卡40的公共密钥来检验该数字签名就已经足够了。然而,这将意味着放弃重复保护。因此,根据应用情况和安全要求,可以相应地权衡适当的措施。
在检验了所解密的许可码的数字签名之后,该许可码至少暂时地被提供用于访问受保护的软件或基于计算机的对象。为了排除可设想的篡改可能性,在对访问受保护的软件进行授权之前应利用相应的额定预定值来调整所解密的许可码和检验处理过程。在成功的调整的情况下就可以对访问进行授权。
用于对访问受保护的软件或基于计算机的对象进行授权的方法的流程控制是通过控制程序来实现的,所述控制程序能够被加载在计算机20的工作存储器中并且具有至少一个代码段,在执行所述代码段时首先促使向存储卡传送借助被分配给具有程序代码处理器的存储卡的公共密钥所加密的许可码和借助可信赖实体的私有密钥来进行数字签名的、要由存储卡执行的用于对许可码进行解密的功能的说明。此外,在执行所述代码段时,促使由存储卡来检验要由存储卡执行的功能的说明的数字签名。在此,借助可信赖实体的公开密钥来检验要由存储卡执行的功能的说明的数字签名。在肯定的检验结果的情况下,然后促使由存储卡来执行用于对许可码进行解密的功能并且将加密的许可码传送给计算机20。最后,当所述控制程序在计算机20中运行时,在执行所述代码段时,至少暂时地由计算机20提供用于访问基于计算机的对象的、解密的许可码。
本发明的应用不限于这里所描述的实施例。
权利要求
1.用于对访问基于计算机的对象进行授权的方法,其中-提供具有程序代码处理器的存储卡,在所述存储卡上存储有至少一个被分配给所述存储卡的公开密钥和私有密钥以及可信赖实体的公开密钥,-在控制对所述基于计算机的对象的访问的计算设备上提供许可信息,所述许可信息包括至少一个借助被分配给所述存储卡的公开密钥所加密的许可码,-向所述存储卡传送所加密的许可码和借助所述可信赖实体的私有密钥来进行数字签名的、要由所述存储卡执行的用于对所述许可码进行解密的功能的说明,-检验要由所述存储卡执行的功能的说明的数字签名,-在肯定的检验结果的情况下,由所述存储卡来执行用于对所述许可码进行解密的功能并且将所解密的许可码传送给所述计算设备,-所解密的许可码至少暂时地被提供用于访问所述基于计算机的对象。
2.按照权利要求1的方法,其中在所述计算设备上防篡改地提供所述可信赖实体的公开密钥,其中借助所述可信赖实体的私有密钥来对所述许可信息进行数字签名,并且其中在所述计算设备中借助所述可信赖实体的公开密钥来检验所述许可信息的数字签名。
3.按照权利要求1或2的方法,其中所述许可信息附加地包括被分配给所述存储卡的公开密钥,其中借助被分配给所述存储卡的私有密钥对所解密的许可码进行数字签名,并且其中在所述计算设备中借助被分配给所述存储卡的公开密钥来检验所解密的许可码的数字签名。
4.按照权利要求1至3之一的方法,其中在所述计算设备中根据所加密的许可码和签名对象来产生借助所述可信赖实体的私有密钥来进行数字签名的、要由所述存储卡执行的用于对所述许可码进行解密的功能的说明,所述签名对象只包括由所述可信赖实体签名的用于对所述许可码进行解密的功能调用的签名部分。
5.按照权利要求4的方法,其中所述许可信息附加地包括所述签名对象。
6.按照权利要求1至5之一的方法,其中通过安全的通信连接从所述计算设备经由读设备向所述存储卡传送所加密的许可码和借助所述可信赖实体的私有密钥来进行数字签名的、要由所述存储卡执行的功能的说明。
7.按照权利要求1至6之一的方法,其中借助所述可信赖实体的公开密钥来检验要由所述存储卡执行的功能的说明的数字签名。
8.按照权利要求1至7之一的方法,其中在所述计算设备中产生随机数并且将所述随机数传送给所述存储卡,其中借助被分配给所述存储卡的私有密钥和所述随机数对所解密的许可码进行数字签名,并且其中在所述计算设备中借助被分配给所述存储卡的公开密钥和所述随机数来检验所解密的许可码的数字签名。
9.按照权利要求1至8之一的方法,其中为了对访问所述基于计算机的对象进行授权,利用相应的额定预定值来调整所解密的许可码和检验处理过程。
10.一种控制程序,所述控制程序能够被加载到计算设备的工作存储器中并且具有至少一个代码段,当所述控制程序在所述计算设备中运行时,在执行所述代码段时,-促使向存储卡传送借助被分配给具有程序代码处理器的存储卡的公开密钥所加密的许可码和借助可信赖实体的私有密钥来进行数字签名的、要由所述存储卡执行的用于对所述许可码进行解密的功能的说明,-促使由所述存储卡来检验要由所述存储卡执行的功能的说明的数字签名,-促使在肯定的检验结果的情况下由所述存储卡执行用于对所述许可码进行解密的功能并且将所解密的许可码传送给所述计算设备,-至少暂时地由所述计算设备提供用于访问所述基于计算机的对象的所解密的许可码。
全文摘要
为了对访问基于计算机的对象进行授权,提供具有程序代码处理器的存储卡,在所述存储卡上存储有至少一个被分配给所述存储卡的公开密钥和私有密钥以及可信赖实体的公开密钥。此外,在控制对基于计算机的对象的访问的计算设备上提供许可信息,该许可信息包括至少一个借助于分配给所述存储卡的公共密钥所加密的许可码。
文档编号G06F21/10GK1860424SQ200480028400
公开日2006年11月8日 申请日期2004年9月20日 优先权日2003年9月30日
发明者H·布洛克豪斯, A·福尔赫, K·-C·万多勒克 申请人:西门子公司