用于安全地释放客户端的功能的客户端设备和服务器设备的制作方法

文档序号:12477997阅读:194来源:国知局
用于安全地释放客户端的功能的客户端设备和服务器设备的制作方法与工艺

本发明涉及一种用于安全地(abgesichert)释放(Freischalten)客户端的功能的客户端设备。此外,本发明还涉及一种用于为客户端设备提供密码的服务器设备。除此之外,本发明还涉及一种带有具有客户端设备的客户端以及具有服务器设备的服务器的系统。此外,本发明还涉及一种用于安全地释放客户端的功能的方法。除此之外,本发明还涉及一种用于为客户端设备提供密码的方法。



背景技术:

如今的产品呈现复杂的服务和维护功能,利用所述服务和维护功能可以改变设备参数并且可以诊断或者消除故障。这种功能的使用可以假设维护技术人员的高的培训等级。这些产品常常是必须满足产品安全性要求的设备。恰好在本上下文中重要的是:可以保证维护工作或者服务执行只可以由具有相对应的培训或者相对应的知识的用户来完成。否则,执行维护和服务功能可能会导致巨大的安全或安全性问题。针对这种产品的例子是医疗产品。

因而,在确定的设备或者产品上的服务功能必须被保护并且得到保障,使得制造商有如下安全性:所述服务功能只可以由被制造商授权的并且当前被训练的用户使用。此外,重要的商业模式也要使得为报酬而在设备上临时地执行服务和维护任务成为可能。因而,值得追求的是要保证所获得的维护成果(Wartungsleistung)只可以在特定的设备上而不是在其它的类型相同的设备上被执行和/或所获得的维护成果只可以在所约定的持续时间之内被执行,和/或所获得的维护成果的证书(Credential)只允许由制造商自己来签发。

例如可以通过设备的制造商进行授权。如果设备的操作者满足相对应的准则,那么该操作者例如只可以由制造商授权。不同的授权要根据功能的质量被检查。在时间上被限制的授权会是值得追求的,以便可以假设维护技术人员的分别当前的培训水平。在这种情况下,授权可以被理解为限定了允许在该设备上做什么、做多久的数据。

为了可以提供在时间上被限制的授权可能性,所述授权可能性必须由产品的制造商一而再地重新给予。然而,产品与制造商的持久的在线连接导致了被提高的成本和被提高的必要的计算容量。此外,不是所有的设备都满足相对应的条件,以便可以接受和处理被复杂化的授权信息。



技术实现要素:

在该背景下,本发明的任务在于:提供准许(freigeben)产品的授权或功能的简单的并且可靠的可能性。

因此,建议了一种用于安全地释放客户端的功能的客户端设备。该客户端设备具有:存储单元,用于存储多个释放密钥(Freischaltschluessel),其中每个释放密钥都限定了客户端的至少一个功能并且被分配给密码;接收单元,用于从服务器接收密码;和处理单元,用于将多个释放密钥与所接收到的密码相比较、用于选出给其分配有所接收到的密码的释放密钥,而且用于释放客户端的被包含在所选出的释放密钥中的至少一个功能。

按照所建议的客户端设备,释放密钥(在本上下文中也被称作服务密钥(Service-Key))由(例如制造商的)服务器设备产生并且输出,其中释放密钥也可以被称作证书(Credential)。

按照所建议的客户端设备,在客户端(例如产品或者设备)中事先存储有多个释放密钥。这例如可以在制造时或者在出售之前进行。这些释放密钥或者服务密钥分别限定了客户端的应该通过该释放密钥来准许的不同的功能。客户端的多个不同的功能也可以被理解为客户端的功能。

所述释放密钥中的每个都被分配给密码,其中该密码不公开地被存储在客户端设备本身上。应要求,密码现在可以从服务器接收并且该密码被输入到客户端设备中。

处理单元现在可以将多个被存储的释放密钥与所接收到的密码相比较。在此,该处理单元选出给其分配有所接收到的密码的那个释放密钥并且使用该释放密钥,以便释放客户端的被包含在该释放密钥中的至少一个功能。

相应的单元(例如处理单元或者接收单元)可以以硬件技术和/或也可以以软件技术来实施。在以硬件技术实施的情况下,相应的单元可以被构造为设备或者被构造为设备的部分,例如被构造为计算机或者被构造为微处理器或者被构造为车辆的控制计算机。在以软件技术实施的情况下,相应的单元可以被构造为计算机程序产品,被构造为功能,被构造为例行程序,被构造为程序代码的部分或者被构造为可实施的对象。

按照一实施形式,密码包括短的字符序列。

因此,该密码可以有可接受的大小,以便技术人员可以直接在设备或客户端上键入(eintippen)该密码。以这种方式,所建议的客户端设备也可以被用于只允许通过键盘输入的设备或客户端。这里,用户可以通过输入短的密码实现释放。同时,这是很可靠的,也就是说没有黑客可以自己产生释放密钥或密码。

与释放密钥相反或与通常以数字方式被签名的授权数据相反,密码按照该实施形式可以被编码为相对短的Base32字符序列(例如<20个字符),使得该密码可以由人直接在设备上键入。相对应地被编码的以数字方式被签名的授权数据从字符数目来说会太长并且借此不能被期望由人来手动地输入。

按照一实施形式,每个释放密钥都用服务器的私钥来签名。

按照该实施形式,被用于授权的数据(也就是说释放密钥)用数字的签名方法来签名。这种签名方法例如可以是ECDSA或者RSA。该释放密钥因此可以包括授权数据(也就是说说明了哪些功能要被释放的数据)和所属的签名。

按照另一实施形式,处理单元被设立为借助于服务器的被存储的公钥来验证所选出的释放密钥的签名。

制造商或服务器的私钥留在服务器处,而公开的签名密钥被存储在客户端中。在此,黑客不能由公钥推断出私钥。因而,也只有制造商可以产生释放密钥。利用该公钥,客户端设备现在可以验证:所接收到的密码是否与所述释放密钥中的一个相配。

尤其是,在释放密钥之内,密码连同授权数据(也就是说说明了客户端的要释放的功能的数据)借助于服务器的私钥被签名。服务密钥或释放密钥因此包括授权数据和所产生的签名,但是不包括被包括在内的密码。只有服务器知道该密码并且该密码没有被传输给客户端设备或客户端。

在验证所选出的释放密钥时,通过处理单元来检验所接收到的密码是否完全与预先存储的释放密钥之一匹配。这意味着:对于每个被存储的释放密钥,通过所属的授权数据和所输入的密码来检查签名。在此,授权数据或者其的部分可以事先由客户端设备被发送给服务器,以便请求密码。

释放密钥因此包含如下信息:设备或客户端设备依据所述信息可以检验该释放密钥是否也已真正由制造商签发。

按照另一实施形式,该释放密钥限定了释放所述至少一个功能的持续时间。

在释放密钥或服务密钥中,已经可以存储服务持续时间、也就是说释放密钥的有效性的持续时间。客户端设备可以在请求密码时说明:该客户端设备在哪段持续时间内需要释放密钥。在此,所接收到的密码已经被分配给如下释放密钥:所述释放密钥限定了该持续时间或者最接近于所希望的持续时间来到的持续时间。

按照另一实施形式,处理单元被设立为:在释放的持续时间期满之后停用所选出的释放密钥。

按照该实施形式,被选出的并且被使用的释放密钥在释放的持续时间期满之后自动地被停用。以这种方式,所使用的释放密钥不可重新被使用。可替换地,释放密钥可以在针对重新的使用的初次激活时已经被停用。

按照另一实施形式,客户端设备具有用于将释放密钥询问发送给服务器的发送单元,其中该释放密钥询问说明了客户端的用于释放的至少一个功能。

为了从服务器得到密码,发送单元可以将释放密钥询问发送给服务器。在此,该释放密钥询问可以限定:针对哪些功能,也就是说针对哪个服务级别(Servicelevel),需要释放。

服务密钥或释放密钥可以以密码的形式通过营业单位(Business-Unit)(例如制造商)被出售给制造商不熟悉的人或者公司,所述制造商不熟悉的人或者公司想为制造商的设备带来服务和维护成果。这可以直接是设备的所有者或者为该所有者接管服务和维护的分包商。

按照另一实施形式,释放密钥询问说明了释放的持续时间和/或客户端的标识符(Kennung)。

释放密钥询问可以例如借助于有效性持续时间或者起始日期来限定:所希望的释放应该持续多久,而且此外,释放密钥询问还可以说明客户端本身的标识符。

按照另一实施形式,每个被存储的释放密钥都包含释放的持续时间和/或客户端的标识符。

多个被存储的释放密钥可以被设置用于不同的服务持续时间或释放的持续时间。为了使被存储的释放密钥的数目不变得过大,可以利用固定的时段在释放的持续时间内工作。这样,每个释放密钥都可以是例如一年有效。可替换地,所存储的释放密钥可包含释放的不同的持续时间,而且如果没有设置合适的释放密钥,那么可以选出最接近于所希望的持续时间来到的释放密钥。

按照另一实施形式,处理单元被设立为:关于在释放密钥询问中被说明的释放的持续时间和/或客户端的标识符检验所选出的释放密钥。

为了提高安全性,处理单元可以检验客户端或设备的标识符。此外,该处理单元可以通过检验释放的持续时间在所选出的释放密钥中选出最接近于所希望的持续时间来到的那个释放密钥。

按照另一方面,建议了一种用于针对如上面所描述的那样的客户端设备提供密码的服务器设备。该服务器设备具有:存储单元,用于存储多个释放密钥,其中每个释放密钥都限定了客户端的至少一个功能并且被分配给密码;接收单元,用于接收释放密钥询问,其中该释放密钥询问说明了客户端的用于释放的至少一个功能;处理单元,用于基于所接收到的释放密钥询问从多个释放密钥选出释放密钥;和发送单元,用于将被分配给所选出的释放密钥的密码发送给客户端。

对于使用释放密钥所需的密码(也就是说以前已经针对所述特定的释放密钥所产生的密码)必须在服务器处从所属的授权数据(也就是说被包含在释放密钥询问中的数据)是可恢复的。为了将用于存储和管理密码的花费保持得小,可以利用所谓的密钥衍生函数(Key-Derivation-Funktion)根据授权数据连同特定的加密密钥来确定性地形成所述密码。

因为只会在服务器中进行该计算,所以这也不用怀疑安全性。因为黑客没有访问被存储在服务器中的私有签名密钥,所以他在该方法中会没有产生自己的释放密钥的可能性。因为黑客不知道针对释放密钥的激活必需的密码,所以他也不可能会为了他的目的使用在客户端中的被存储的释放密钥的池(Pool)。所述密码已经在服务器中随机地或者通过秘密的密钥衍生函数被选择,而且黑客现在仅仅可能会通过暴力破解攻击(Brute-Force-Attacke)来试遍针对所存储的释放密钥的所有可能的密码。

如果密码被选择得足够长,那么然而这与很大的花费相关。例如,具有100比特的密码可以在具有大约20个字符的字符串中被Base32编码。对所存储的具有100比特密码的释放密钥的暴力破解攻击不能在可认为正当的(vertretbar)时间内被执行。

因为随着时间的推移,越来越多的被存储的释放密钥通过使用变得不活跃或者通过有效性持续时间的期满变得不可使用,所以被存储的释放密钥的池必须被填满。这可以通过服务器设备例如在客户端或客户端设备的反复的系统更新的范围内发生。

按照另一方面,建议了一种带有具有如上面所描述的那样的客户端设备的客户端和具有如上面所描述的那样的服务器设备的服务器的系统,其中所述客户端和所述服务器被设立为彼此进行通信。

客户端和服务器也可以隐性地彼此进行通信,例如其方式是由服务器提供的密码通过键盘被输入到客户端中。客户端的由服务器提供的系统更新也可以被理解为通信。这意味着:也可以间接进行在客户端与服务器之间的通信。可替换地,也可以通过通信网络(诸如WLAN或者相类似的)进行在客户端与服务器之间的通信。

按照另一方面,建议了一种用于安全地释放客户端的功能的方法。该方法具有如下步骤:存储多个释放密钥,其中每个释放密钥都限定了客户端的至少一个功能并且被分配给密码;从服务器接收密码;并且将多个释放密钥与所接收到的密码相比较;选出给其分配有所接收到的密码的释放密钥;并且将客户端的被包含在所选出的释放密钥中的至少一个功能释放。

按照另一方面,建议了一种用于为客户端设备提供密码的方法。该方法具有如下步骤:存储多个释放密钥,其中每个释放密钥都限定了客户端的至少一个功能并且被分配给密码;接收释放密钥询问,其中所述释放密钥询问说明了客户端的用于释放的至少一个功能;基于所接收到的释放密钥询问从多个释放密钥选出释放密钥;并且将被分配给所选出的释放密钥的密码发送给客户端。

针对所建议的设备被描述的实施形式和特征相对应地适用于所建议的方法。

此外,还建议了一种计算机程序产品,所述计算机程序产品在被程序控制的装置上促使执行如上面被解释的方法。

计算机程序产品(诸如计算机程序装置)例如可以作为存储介质(诸如存储卡、记忆棒(USB-Stick)、CD-ROM、DVD)、或者也可以以网络中的服务器的可下载的文件的形式被提供或者被供给。例如在无线通信网络中,这可以通过传输相对应的具有计算机程序产品或者计算机程序装置的文件来进行。

本发明的其它的可能的实施方案也包括之前或者在下文关于实施例被描述的特征或者实施形式的没有明确被提到的组合。在此,本领域技术人员也将把单个方面作为改进方案或者补充方案添加到本发明的相应的基本形式。

附图说明

本发明的其它的有利的构建方案和方面是本发明的从属权利要求以及在下文所描述的实施例的主题。此外,本发明依据参考附图的优选的实施形式进一步被解释。

图1示出了具有客户端设备和服务器设备的系统的示意性的方框图;

图2示出了用于释放客户端的功能的方法的示意性的流程图;和

图3示出了用于为客户端设备提供密码的方法的示意性的流程图。

在这些附图中,只要不另作说明,相同的或者功能相同的要素就已经被配备有同样的参考符号。

具体实施方式

图1示出了带有具有客户端设备10的客户端和具有服务器设备20的服务器的系统100。这里没有明确地示出该客户端或服务器。

客户端设备10具有存储单元11、接收单元12、处理单元13和发送单元14。

服务器设备20具有存储单元21、接收单元22、处理单元23和发送单元24。

为了释放客户端的功能,客户端设备10可以借助于发送单元14将释放密钥询问发送给服务器设备20。该释放密钥询问可限定客户端的用于释放的功能、释放的持续时间和/或客户端的标识符。该释放密钥询问由服务器设备20的接收单元22接收。服务器设备20的处理单元23现在可以从多个被存储在服务器设备20的存储单元21中的释放密钥选出释放密钥。为此,该处理单元23可以检验:所存储的释放密钥的哪些功能最有可能对应于所接收到的释放密钥询问。

服务器设备20的发送单元24现在可以将分配给所选出的释放密钥的密码发送给客户端设备10。在本上下文中,发送也可以被理解为隐性地发送(例如被理解为将密码传送给另一设备)并且将密码手动地输入客户端设备10中。

客户端设备10的接收单元12现在(至少隐性地)从服务器设备20接收密码。客户端设备10的处理单元13现在可以将多个被存储的释放密钥与所接收到的密码相比较,所述多个被存储的释放密钥被存储在客户端设备10的存储单元11中。在这种情况下,比较可以对应于利用依据密码和所希望的包含在释放密钥询问中的功能的所产生的签名检验被存储的释放密钥的签名。接着,客户端设备10的处理单元13可以选出相对应的释放密钥,而且将客户端的包含在所选出的释放密钥中的至少一个功能释放。

释放密钥因此可具有如下形式:

Auth+ || SIGN(Auth+ || Auth- || PWD)

在这种情况下,如下标记符号被使用:

· A || B是字符串A和B的串接(Konkatenation)。

· SIGN(A)是利用私有签名密钥p对字符串A的数字签名。

· VERIFY(A,B)通过具有公开的签名密钥q的输入数据A检验签名B。在正确的签名的情况下返回OK,否则返回“错误(FEHLER)”。

· Auth+是涌入签名中并且为释放密钥的部分的那些认证数据、诸如服务持续时间。

· Auth-是同样涌入签名、但不是释放密钥的部分的那些认证数据。所述数据直接在产品中是可查询的而不必作为释放密钥询问的部分被附寄:为此的例子是客户端的标识符。

· PWD是随机产生的密码。

多个n个被存储的释放密钥可具有如下形式:

Authi+ || SIGN(Authi+ || Auth- || PWDi) 针对i=1…n

针对每个被安装的并且活跃的释放密钥,在处理单元13中都可以通过所属的授权数据并且通过所输入的密码来检查签名:针对i=1…n检验是否VERIFY(Authi+ || Auth- || PWD,SIGN(Authi+ || Auth- || PWDi))= = OK。

图2示出了用于安全地释放客户端的功能的方法。该方法具有步骤201-205。

在步骤201中,多个释放密钥被存储,其中每个释放密钥都限定了客户端的至少一个功能并且被分配给密码。

在步骤202中,从服务器接收密码。

在步骤203中,将所述多个释放密钥与所接收到的密码相比较。

在步骤204中,选出给其分配有所接收到的密码的释放密钥。

在步骤205中,客户端的被包含在所选出的释放密钥中的至少一个功能被释放。

图3示出了用于为客户端设备10提供密码的方法。该方法具有步骤301-304。

在步骤301中,多个释放密钥被存储,其中每个释放密钥都限定了客户端的至少一个功能并且被分配给密码。

在步骤302中,释放密钥询问被接收,其中所述释放密钥询问说明了客户端的用于释放的至少一个功能。

在步骤303中,基于所接收到的释放密钥询问从多个释放密钥中选出释放密钥。

在步骤304中,将被分配给所选出的释放密钥的密码发送给客户端。

即使本发明已经依据实施例被描述,本发明也可以各式各样地(vielfaeltig)被修改。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1