对访问基于计算机的对象进行授权的制作方法

文档序号:6495040阅读:188来源:国知局
专利名称:对访问基于计算机的对象进行授权的制作方法
技术领域
本发明涉及一种用于对访问基于计算机的对象进行授权的方法和一种用于执行该方法的控制程序。
由于对计算机程序未经授权的使用而造成世界范围的巨大损失。为了抵制这点,开发出多种解决方案,用于防止未经授权地使用计算机程序。
传送用于激活计算机程序的加密信息来阻止未经授权地复制计算机程序。此外,相对应的方法例如用作技术前提,以便经由电子商务将计算机程序作为产品来销售。在迄今公知的、用于激活计算机程序的方法中,分别根据注册密钥来激活计算机程序。为了激活计算机程序,手动地输入或由数据载体馈入注册密钥,该注册密钥被固定地分配给计算机程序许可证。尤其是在大量被安装在不同计算机上的计算机程序中,由此得到与人力密集(personalintensiv)的操作和维护工作相联系的高管理花费。
从EP 1 191 419 A2中公知以下方法,其中,通过修改注册密钥对能够在可选的使用期内激活计算机程序的可预定功能。该注册密钥对具有至少一个禁止用户访问的部分信息。待激活的功能不一定必须在首次安装计算机程序时就已经可供用于激活,而是也可以后来被补选。为了激活,不必要在安装有相应计算机程序的计算机的所在地投入操作和维护人员。
根据在EP 1 191 419 A2中所述方法,注册密钥对的组成部分是应用信息和应用值。应用信息在第一计算机上被输入,或通过该第一计算机来生成,在所述第一计算机上安装有要注册的计算机程序。在第二计算机中借助于编码根据应用信息计算出应用值。
在注册计算机程序或者改变该注册时,具有至少一个禁止用户访问的部分信息的第一应用信息被传送给第二计算机。在第二计算机中,根据第一应用信息计算出应用值,该应用值随后被传送给第一计算机。借助于解码,在第一计算机中根据该应用值确定第二应用信息。在开始实施计算机程序时,检查第一和第二应用信息的一致性。根据在检查中得出的偏差来激活计算机程序的可预定功能。
本发明所基于的任务在于,给出一种方法以及一种适于自动执行该方法的实施方案,该方法提供被提高的防止未经授权地使用在计算设备中所提供的资源的保护。
按照本发明,该任务通过具有在权利要求1中所说明的特征的方法和具有在权利要求10中所说明的特征的控制程序来解决。本发明的有利的改进方案在从属权利要求中被说明。
按照本发明,通过提供具有程序代码处理器的存储卡和许可信息作为对访问基于计算机的对象进行授权的前提来得到被提高的防止未经授权地使用在计算设备中所提供的资源的保护。在所述存储卡上存储有至少一个被分配给所述存储卡的公开密钥和私有密钥。所述许可信息包括至少一个借助于被分配给所述存储卡的公开密钥来加密的许可码,并且所述许可信息在控制访问基于计算机的对象的计算设备上被提供。
按照本发明,从由所述存储卡所生成的第一随机数中和从通过所述计算设备所提供的第二随机数中产生对称密钥,所述对称密钥针对所述存储卡和所述计算设备来定制。所述被加密的许可码和要由所述存储卡实施的、用于对许可码进行解密的功能的说明(Angabe)被传送给所述存储卡,所述说明配备有在应用所述对称密钥的情况下被加密的哈希(Hash)值。所述被加密的哈希值由所述存储卡来解密,并且检查所述被加密的哈希值与针对要由所述存储卡实施的功能的说明所计算的哈希值的一致性。在检查结果为肯定时,通过所述存储卡实施用于对许可码进行解密的功能,并且向所述计算设备传送被解密的许可码。于是,至少暂时地提供所述被解密的许可码,用于对基于计算机的对象进行访问。
在不限制概念“计算设备”的一般性的情况下,计算设备例如能被理解为PC、笔记本电脑、服务器、PDA、移动电话、自动取款机、自动化技术、汽车技术、通信技术或者医疗技术中的控制模块(一般而言是其中可以运行计算机程序的设备)。此外,例如在不限制概念“基于计算机的对象”的一般性的情况下,基于计算机的对象例如是操作系统、控制或者应用程序、由操作系统、控制或者应用程序所提供的业务、性能特征、功能或者过程、对位于外围设备上以及存储介质上的数据的访问权限。
根据本发明的有利的扩展方案,防篡改(Manipulation)地向所述计算设备提供可信实体(Instanz)的公开密钥。此外,借助于可信实体的私有密钥对所述许可信息进行数字签名。因此,在所述计算设备中根据可信实体的公开密钥检查所述许可信息的数字签名。以这种方式,可以保证可信地和安全地将所述许可信息传送给计算设备。
所述被解密的许可码被配备有在应用所述对称密钥的情况下被加密的哈希值。所述被解密的许可码的、被加密的哈希值在所述计算设备中被解密,并且检查所述被加密的哈希值与针对被解密的许可码所计算的哈希值的一致性。这提供以下优点,即保证了许可码实际上利用为了解密而设置的存储卡来解密。
优选地,所述对称密钥只适于访问允许过程,并且在每次访问请求时被重新产生。这有助于进一步提高相对篡改企图的安全性。
有利地,所述许可信息附加地包括被分配给所述存储卡的公开密钥。此外,所述第一随机数借助于被分配给所述存储卡的私有密钥以数字签名的方式被传送给所述计算设备。然后,第一随机数的数字签名在所述计算设备中根据被分配给所述存储卡的公开密钥来检查。所述第二随机数借助于所述存储卡的公开密钥加密地被传送给所述存储卡并且在那里被解密。该扩展方案提供以下优点,即安全地传输第一和第二随机数,以产生对称密钥。
根据本发明的其他有利的改进方案,所述被加密的许可码和要由所述存储卡实施的功能的、配备有被加密的哈希值的说明通过安全的通信连接从所述计算设备经由读设备被传送给所述存储卡。由此,未经授权地实现对基于计算机的对象的访问的篡改可能性进一步受到限制。
有利地,通过所述存储卡产生第三随机数,并且该第三随机数被传送给所述计算设备。然后,通过所述计算设备可以针对要由所述存储卡实施的功能的说明计算哈希值,并将该哈希值加密地传送给所述存储卡,所述哈希值借助于所述对称密钥和所述第三随机数来加密。最后,所述借助于所述对称密钥和所述第三随机数来加密的哈希值通过所述存储卡来解密,并且检查该哈希值与针对要由所述存储卡实施的功能的说明所计算的哈希值的一致性。由此得出有效的重复保护,以致对在存储卡和计算设备之间所交换的信号的截获不开启有效的篡改可能性。此外,该改进方案提供以下优点,即可用的安全消息传递方法可被用于传送相对应的、用于解密许可码的功能调用。
根据其他改进方案,在将被解密的许可码传送给计算设备方面,为了保证重复保护,第四随机数在所述计算设备中被产生,并且该第四随机数被传送给所述存储卡。然后,通过所述存储卡针对被解密的许可码计算哈希值,并且将该哈希值加密地传送给所述计算设备,所述哈希值借助于所述对称密钥和所述第四随机数来加密。接下来,所述借助于所述对称密钥和所述第四随机数来加密的哈希值在所述计算设备中被解密,并且检查该哈希值与针对所述被解密的许可码所计算的哈希值的一致性。
根据本发明的优选的改进方案,为了允许对所述基于计算机的对象进行访问,利用相应的额定预定值对所述被解密的许可码和检查处理过程(Ueberpruefungsprozessverlauf)进行调整。这提供了附加的安全性,因为仅仅所述被解密的许可码的存在对于访问权限来说不再是足够的,而是与成功的检查处理过程相关联。
下面,根据附图
以实施例更详细地描述本发明。
该图示出本发明的应用环境的示意图,其中具有在可信实体、控制对基于计算机的对象的访问的计算设备和带有程序代码处理器的存储卡之间的信息和通知交换。
在该图中所示的、本发明的应用环境包括可信实体10、计算机20、与该计算机20相连接的智能卡终端30,在智能卡终端30中可插入智能卡40。可信实体10例如可以被分配给要防止未经授权访问的软件的制造商,并且承担对许可证和相对智能卡所分配的密钥材料的管理。此外,不对称密钥对11被分配给可信实体10,该不对称密钥对11包括私有密钥和公开密钥。为了存储相对智能卡所分配的密钥材料,设有数据库12,该数据库12包含要发售的或已发售的智能卡的公开密钥。
通过计算机20,可以针对一个或者多个用户定制例如包括程序或者具有数据的存储区的计算机资源22。原则上,这里所述的、用于允许对基于计算机的对象进行访问的方法可用于任意系统资源。计算机20尤其是控制对系统资源22的访问,该系统资源22在本情况下也包括可信实体10被分配给其的制造商的软件。此外,防篡改地在计算机20上提供可信实体10的公开密钥21。
智能卡终端30经由安全的通信连接与计算机20相连。智能卡终端30用于在计算机20和可插入该智能卡终端30中的智能卡40之间进行信息和通知交换,所述智能卡40是具有程序代码处理器的存储卡。在智能卡40上存储有被分配给该智能卡40的不对称密钥对41,该不对称密钥对41包括智能卡40的公开密钥和私有密钥。此外,在智能卡40上设置有至少一个程序,以在使用智能卡40的不对称密钥对42的情况下进行加密和解密。此外,智能卡40具有随机数发生器,并且优选地符合ISO 7816/8。
在计算机20上提供由可信实体10所创建的许可信息1。该许可信息1包括许可码(enc_SC(许可码))和被分配给智能卡40的公开密钥(pub_SC),该许可码借助于被分配给智能卡40的公开密钥来加密。此外,借助于可信实体10的私有密钥对许可信息1进行数字签名(sig_TP),以致可以在计算机20中根据可信实体10的公开密钥21检查许可信息1的数字签名。
为了产生只适于访问允许过程并且在每次访问请求时能被重新产生的对称密钥(K)24、43,借助于计算机20的请求通知2a(取随机数(GetChallenge))首先请求智能卡40产生第一随机数(rand1)。在由智能卡40产生第一随机数之后,通过传送具有第一随机数的结果通知2b(rand1)来应答请求通知2a。根据安全请求,第一随机数也可以利用智能卡40的私有密钥以数字签名的方式被传送给计算机20,并且在那里被验证。
在接收到第一随机数之后,计算机20产生第二随机数(rand2),并且在应用安全消息传递的情况下,通过用智能卡40的公开密钥来加密的相互认证命令3a(SM_enc_SC(MutAuth()))将该第二随机数传送给智能卡40。相互认证命令3a包括第二随机数以及消息认证码(MAC_S),该消息认证码(MAC_S)在应用另一对称密钥(S)23、42的情况下相对第一随机数来构成。该另一对称密钥23、42不仅被存储在计算机20中,而且也被存储在智能卡40上,用于在计算机20和智能卡40之间进行相互认证,并且不必保守秘密。相对第一随机数所构成的消息认证码除了包括第一随机数之外还包括针对第一随机数所构成的并且用另一对称密钥23、42来加密的哈希值。
为了确认相互认证命令的成功解密以及消息认证码的检查以及因此第二随机数的接收,确认通知3b被传送给计算机20。因此保证,为了产生对称密钥24、43,第一和第二随机数不仅存在于计算机20中而且还存在于智能卡40上。于是在计算机20中和在智能卡40上相互独立地实现对称密钥的产生。因此,对称密钥24、43至少在访问允许过程的持续时间不仅可用于计算机20中而且也可被用于智能卡40上。通过产生对称密钥24、43,为此奠定基础,即稍后在应用安全消息传递的情况下向智能卡40传送用于对许可码(PSO_DEC-执行安全操作模式解密,被用于借助于智能卡40的公开密钥来加密的许可码)进行解密的功能调用。
随后,为了实现重复保护,借助于计算机20的请求通知4a(取随机数(GetChallenge))请求智能卡40产生第三随机数(rand3)。在由智能卡40产生该第三随机数之后,通过传送具有第三随机数的结果通知4b(rand3)来应答请求通知4a。随后,第四随机数(rand4)在计算机20中被产生,并且其借助于通知5a(给随机数(GiveRandom))被传送给智能卡40。由智能卡40通过确认通知5b来签收第四随机数的接收。
在签收地传送第四随机数之后,用于对许可码进行解密的通知6a从计算机20被传送给智能卡40。除了被加密的许可码之外,用于对许可码进行解密的通知6a还包括要由智能卡40实施的、用于对许可码进行解密的功能的说明。要由智能卡40执行的功能的说明配备有哈希值,该哈希值借助于对称密钥24、43和第三随机数被加密。随后,借助于对称密钥24、43和第三随机数被加密的哈希值通过智能卡40来解密,并且检查该哈希值与针对要由智能卡40实施的功能的说明所计算的哈希值的一致性。
在检查结果为肯定时,用于对许可码进行解密的功能通过智能卡40来实施,并且所解密的许可码在应用安全消息传递的情况下借助于通知6b被传送给计算机20。为了应用安全消息传递,智能卡40针对所解密的许可码计算哈希值,该哈希借助于对称密钥24、43和第四随机数被加密。该被加密的哈希值与被解密的许可码一起被传送给计算机20。随后,哈希值在那里借助于对称密钥24、43和第四随机数被解密,并且检查该哈希值与针对该被解密的许可码所计算的哈希值的一致性。
在这两个哈希值相一致时,至少暂时地提供被解密的许可码,以对受保护的软件或基于计算机的对象进行访问。为了排除可设想的篡改可能性,应该在允许对受保护的软件进行访问之前,利用相应的额定预定值对被解密的许可码和检查处理过程进行调整。在调整成功时,所述访问可被允许。
控制用于允许对受保护的软件或基于计算机的对象进行访问的方法的运行是通过控制程序来实施的,该控制程序可被装载在计算机20的工作存储器中并且具有至少一个代码段,在实施该代码段时,首先从由具有程序代码处理器的存储卡所生成的第一随机数中和从由计算设备所提供的第二随机数中产生对称密钥。此外,向存储卡传送借助于被分配给该存储卡的公开密钥来加密的许可码和要由该存储卡实施的、用于对许可码进行解密的功能的说明,该说明配备有在应用对称密钥的情况下来加密的哈希值。此外,在实施时,通过存储卡对被加密的哈希值进行解密,并且检查该哈希值与针对要由存储卡实施的功能的说明所计算的哈希值的一致性。然后,在检查结果为肯定时,通过存储卡实施用于对许可码进行解密的功能,并且向计算机20传送被加密的许可码。最后,如果控制程序在计算机20中运行,则在实施该代码段时,通过计算机20至少暂时地提供被解密的许可码,以对基于计算机的对象进行访问。
本发明的应用不限于这里所描述的实施例。
权利要求
1.用于允许对基于计算机的对象进行访问的方法,其中-提供具有程序代码处理器的存储卡,在所述存储卡上存储有至少一个被分配给所述存储卡的公开密钥和私有密钥,-向控制对基于计算机的对象的访问的计算设备提供许可信息,所述许可信息包括至少一个借助于被分配给所述存储卡的公开密钥来加密的许可码,-从由所述存储卡所生成的第一随机数中和从通过所述计算设备所提供的第二随机数中产生对称密钥,所述对称密钥针对所述存储卡和所述计算设备来定制,-所述被加密的许可码和要由所述存储卡实施的、用于对所述许可码进行解密的功能的说明被传送给所述存储卡,所述说明配备有在应用所述对称密钥的情况下被加密的哈希值,-所述被加密的哈希值由所述存储卡来解密,并且检查该哈希值与针对要由所述存储卡实施的功能的说明所计算的哈希值的一致性,-在检查结果为肯定时,通过所述存储卡实施用于对许可码进行解密的功能,并且向所述计算设备传送被解密的许可码,-至少暂时地提供所述被解密的许可码,以对基于计算机的对象进行访问。
2.按照权利要求1所述的方法,其中,防篡改地向所述计算设备提供可信实体的公开密钥,其中,借助于所述可信实体的私有密钥对所述许可信息进行数字签名,并且其中,在所述计算设备中根据所述可信实体的公开密钥检查所述许可信息的数字签名。
3.按照权利要求1或者2之一所述的方法,其中,所述被解密的许可码被配备有在应用所述对称密钥的情况下被加密的哈希值,并且其中,所述被解密的许可码的、被加密的哈希值在所述计算设备中被解密,并且检查该哈希值与针对被解密的许可码所计算的哈希值的一致性。
4.按照权利要求1至3之一所述的方法,其中,所述对称密钥只适于访问允许过程,并且在每次访问请求时被重新产生。
5.按照权利要求1至4之一所述的方法,其中-所述许可信息附加地包括被分配给所述存储卡的公开密钥,-所述第一随机数借助于被分配给所述存储卡的私有密钥以数字签名的方式被传送给所述计算设备,-所述第一随机数的数字签名在所述计算设备中根据被分配给所述存储卡的公开密钥来检查,-所述第二随机数借助于所述存储卡的公开密钥加密地被传送给所述存储卡并且在那里被解密。
6.按照权利要求1至5之一所述的方法,所述被加密的许可码和要由所述存储卡实施的功能的说明通过安全的通信连接从所述计算设备经由读设备被传送给所述存储卡,所述说明配备有在应用所述对称密钥的情况下被加密的哈希值。
7.按照权利要求1至6之一所述的方法,其中,通过所述存储卡产生第三随机数,并且该第三随机数被传送给所述计算设备,其中,通过所述计算设备针对要由所述存储卡实施的功能的说明计算哈希值,并将该哈希值加密地传送给所述存储卡,该哈希值借助于所述对称密钥和所述第三随机数来加密,并且其中,借助于所述对称密钥和所述第三随机数来加密的哈希值通过所述存储卡来解密,并且检查该哈希值与针对要由所述存储卡实施的功能的说明所计算的哈希值的一致性。
8.按照权利要求7所述的方法,其中,在所述计算设备中,第四随机数被产生,并且该第四随机数被传送给所述存储卡,其中,通过所述存储卡针对所述被解密的许可码计算哈希值,并且将该哈希值加密地传送给所述计算设备,该哈希值借助于所述对称密钥和所述第四随机数被加密,并且其中,借助于所述对称密钥和所述第四随机数来加密的哈希值在所述计算设备中被解密,并且检查该哈希值与针对所述被解密的许可码所计算的哈希值的一致性。
9.按照权利要求1至8之一所述的方法,其中,为了允许对所述基于计算机的对象进行访问,利用相应的额定预定值对所述被解密的许可码和检查处理过程进行调整。
10.控制程序,其可被装载在计算设备的工作存储器中并且具有至少一个代码段,如果所述控制程序在所述计算设备中运行,则在实施所述代码段时,-从由具有程序代码处理器的存储卡所生成的第一随机数中和从通过所述计算设备所提供的第二随机数中产生对称密钥,-借助于被分配给所述存储卡的公开密钥来加密的许可码和要由所述存储卡实施的、用于对所述许可码进行解密的功能的说明被传送给所述存储卡,所述说明配备有在应用所述对称密钥的情况下来加密的哈希值,-通过所述存储卡对所述被加密的哈希值进行解密,并且检查该哈希值与针对要由所述存储卡实施的功能的说明所计算的哈希值的一致性,-在检查结果为肯定时,通过所述存储卡实施用于对许可码进行解密的功能,并且向所述计算设备传送所述被解密的许可码,-通过所述计算设备至少暂时地提供所述被解密的许可码,以对基于计算机的对象进行访问。
全文摘要
为了允许对基于计算机的对象进行访问,提供一种具有程序代码处理器的存储卡,在该存储卡上存储有至少一个被分配给该存储卡的公开密钥和私有密钥。此外,在控制对基于计算机的对象的访问的计算设备上提供许可信息,该许可信息包括至少一个借助被分配给存储卡的公开密钥来加密的许可码。
文档编号G06F21/34GK1860426SQ200480028408
公开日2006年11月8日 申请日期2004年9月20日 优先权日2003年9月30日
发明者H·布洛克豪斯, A·福尔赫, K·-C·万多勒克 申请人:西门子公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1