用于在基于主题的发布订阅系统中传递数据的方法和设备与流程

文档序号:18005483发布日期:2019-06-25 23:19阅读:156来源:国知局
用于在基于主题的发布订阅系统中传递数据的方法和设备与流程

本发明涉及一种用于在基于主题的发布订阅系统中传递数据的方法。此外,本发明涉及一种用于在基于主题的发布订阅系统中传递数据的设备和这种发布订阅系统。



背景技术:

通过将闭合系统开放成公开的iot系统(iot;物联网),得到对工业网中的通信的要求,所述工业网从电信环境和开放式因特网中已知。通过系统越来越分散,部件也存在于防火墙系统之后从而不可直接由因特网达到。

在此,使用所谓的发布订阅系统,所述发布订阅系统一方面支持发现阶段,即找出通信配对者,但是也支持端到端通信关系的构建。发布订阅系统也能够称作为发布和订阅系统。在发布订阅系统中,能够使用传统的点对点通信和组通信,以便以尽可能有效的方式达到多个系统。对此的示例是卸载或还有智能电网系统中的电流馈入的限制。

对于端对端通信存在端对端安全性的要求。这不仅适用于点对点通信,而且适用于组通信。因此,在因特网中、如在iot系统中和在工业系统中存在如下需求,能够提供用于发布订阅通信的端对端安全性。

已知发布订阅协议,其中存在用于登记节点的中央主管机构并且执行地址解析。示例从具有h.323和sip的电信领域中已知。在工业领域中使用协议opc-ua并且在智能电网环境中集成协议xmpp。

在当前主要用于聊天应用的xmpp协议的情况下,组通信经由所谓的多用户聊天室(muc)发生。到muc的入口通过每节点的消息服务器检查。xmpp在此支持在应用层借助于sasl协议的认证。认证在此在客户端和服务器之间发生。在应用的意义上的端对端当前仅通过使用s/mime来支持。

此外,已知用于成对的安全关系的密钥推导,如其例如在协议、如tls中使用的那样。此外,在messenger客户端中已知用于商讨的解决方案,以便创建用于保护通信的密码学的语境。

为了推导密钥,使用密钥推导函数。对此的示例是hmac-sha256和kdf2。由这种密钥推导函数使用的常见的推导参数是节点的标识符、协议版本或跳数,如在3gppsae的情况下。

此外,对于基于迪菲赫尔曼问题对密钥进行可交换的密钥推导能够使用burmester-desmedt协商键控协议。除了用于分散系统中的组的密钥商讨之外,在具有中央部件的系统中存在其他密钥分配机制。对此的示例是群组释域(gdoi,在rfc6407中定义)和组安全关联管理协议(gsakmp,在rfc4535中定义)。

在所述协议中,典型地进行在密钥分配服务器处的登记,所述密钥分配服务器在完成节点的认证和授权之后将组密钥分配给所述节点。



技术实现要素:

在所述背景下,本发明的目的在于,改进数据在基于主题的发布订阅系统中的传递。

根据第一方面,提出一种用于在基于主题的发布订阅系统中传递数据的方法,所述发布订阅系统包括密钥分配服务器和多个可与密钥分配服务器耦合的本地客户端系统。所述方法包括如下步骤:

a)通过密钥分配服务器为选自本地客户端系统中的组提供组密钥,

b)借助于密钥推导参数为组的一阶子组本地推导一阶子组密钥,所述密钥推导参数至少包括所提供的组密钥和用于一阶子组的相应的客户端系统的发布订阅系统的特定的主题,和

c)将至少一个利用推导出的一阶子组密钥进行密码学保护的消息在一阶子组的客户端系统之间传递。

组包括与密钥分配服务器耦合的客户端系统的子集。相应的一阶子组由组的客户端系统的子集形成。

所提出的方案能够借助于特定的密码学密钥、在此为一阶子组密钥实现在组通信之内根据主题、例如题目或服务的区分。在此,无需其他机密就能够由组密钥实现根据特定的主题的密钥推导。组密钥也能够称作为基本组密钥。借此,潜在地与错的主题相关联的消息能够在接收方处、相应的本地客户端系统处已经由于消息的失败认证而识别。

优选地,也能够将其他机密用于相应的子组,使得也能够实施,仅所述子组的具有预给定的组归属的成员能够发送和接收。

如在上文中已经详述的那样,发布订阅系统的主题例如是发布订阅系统的题目或服务。主题也能够是分级结构化的,例如借助于主题树,例如主题1、主题2、主题3。在此,密钥推导尤其也能够逐步地根据主题树进行。在该示例中首先针对作为推导参数的主题1,随后借助作为推导参数的主题2,并且随后借助作为推导参数的主题3。

密钥分配服务器在发布订阅系统中能够作为中央密钥分配服务器来布置或作为分散密钥分配服务器构造在发布订阅系统中的中间节点上。在此,因此能够在发布订阅系统中实现密钥分配服务器的分级的或级联的系统。中央密钥分配服务器在此可以为组的节点提供组密钥,即为组的客户端系统提供组密钥。分散密钥分配服务器、也即为组的客户端系统的中间节点能够为第二子组提供组密钥作为专用的密钥。由此,限制组密钥的滥用潜在可能性。目标节点、即相应的本地客户端系统或其他在相应的本地客户端系统上游设置的中间节点能够执行用于推导一阶子组密钥和可能甚至更高阶子组密钥的其他推导步骤。由此尤其可能的是,仅将专门的密钥灵活地提供给作为本地客户端系统的示例的暴露的现场仪器。

尤其地,组密钥和由组密钥推导出的子组密钥是密码学密钥。在此,将推导出的子组密钥用于以密码学的方式保护发布订阅消息。对发布订阅消息或消息的所述密码学的保护尤其包括完整性保护、认证和/或机密性。

下面的示例能够说明本方案的功能性。作为主题例如能够使用命名空间,以便相应地将组通信用于特定的题目。对此的示例是慕尼黑区域中的虚拟发电厂(vpp;virtualpowerplant),所述虚拟发电厂具有用于减小馈入(reduceinfeeds)的通信的单独的组:

vpp.munich.reduce_infeed

在此,能够使用三级方案。在此,为每个另外的嵌套深度使用另外的子组密钥。对于所述方案例如能够使用两个如下实现可能性:

1.与子组的关联需要相应的子组密钥,所述子组密钥能够在本地由子组的每个客户端系统根据预给定的规则推导出。预给定的规则例如通过密钥推导函数或密钥推导运算构成。在此,共同的机密仅接合于组的组密钥,因此最高等级水平的组的组密钥。全部其他密钥、即子组密钥能够利用主题由也称作为主密钥的组密钥推导出。

在下面的示例中,kvpp表示组密钥,h表示密钥推导函数,group-secret表示组的机密,“其他参数”表示其他推导参数,munich表示组vpp的一阶子组,并且reduce_infeed表示一阶子组munich的二阶子组。

-kvpp=h(group-secret,其他参数)

-kmunich=h(kvpp,其他参数)

-kreduce_infeed=h(kmunich,其他参数)。

与通信组的关联的直接识别通过子分组提高。推导的密钥的应用目的限于根据使用的主题的预见的应用领域。在此,应用目的通过包括主题的推导参数限定。

2.与每个等级水平的关联要求相应的附加的机密,在下面的示例中为用于一阶子组munich的group-secretmunich和用于二阶子组reduce_infeed的group-secretreduce_infeed,所述二阶子组作为一阶子组munich的子集得出。

-kvpp=h(group-secretvpp,其他参数)

-kmunich=h(group-secretmunich,kvpp,其他参数)

-kreduce_infeed=h(group-secretreduce_infeed,kmunich,其他参数)。

附加的子组机密group-secretmunich和group-secretreduce_infeed的分配能够经由密钥分配服务器进行。经由推导确保,各个子组密钥不足以验证和生成消息。借此,尤其能够确保,馈入降低reduce_infeed仅能够在特定的区域中实现并且这经由使用的密钥kreduce_infeed也得以确保。

此外,在密钥推导中也能够一同引入方向相关的参数(发布,订阅)。借此能够实现用于发布通信的和用于订阅通信的分开的密钥。经由确定的密钥,于是也有利地可能的是,实现用于允许的通信的安全策略(securitypolicy)。

根据一个实施方式,将步骤a)、b)和c)在相应地认证组的客户端系统之后在密钥分配服务器上执行。

有利地,将组密钥在认证和与此相关地授权本地客户端系统之后才通过密钥分配服务器分配到所述本地客户端系统上。

根据另一实施方式,方法包括如下步骤:

借助于推导出的一阶子组密钥通过二阶子组的相应的客户端系统为一阶子组的二阶子组本地推导二阶子组密钥,和

将至少一个利用推导出的二阶子组密钥进行密码学保护的消息在二阶子组的客户端系统之间传递。

通过二阶子组和相应的二阶子组密钥,能够实现在组和一阶子组下的其他等级水平。因此,能够将消息在发布订阅系统中进一步区分地分配。

根据另一实施方式,借助于密钥推导参数推导用于一阶子组的一阶子组密钥,所述密钥推导参数包括提供的组密钥、发布订阅系统的确定的主题、对于一阶子组特定的机密和至少一个另外的推导参数。

通过利用对于子组为特定的特定机密能够确保,单个子组密钥不足以验证或生成消息。

根据另一实施方式,另外的推导参数是基于发布订阅系统的参数。

根据另一实施方式,另外的推导参数指示在发布订阅系统之内的通信方向,在发布订阅系统之内的密钥使用和/或一阶子组密钥的有效时间段。

如在上文中已经详述的那样,方向相关的推导参数或参数也能够一同引入到密钥推导中。借此,例如能够实现分开的发布通信和订阅通信。

此外可能的是,将强制访问控制系统的目录(rolle)或安全标签用作为推导参数。将主题与目录或标签相关联。在此,能够将域类型与数据相关联,而将目录类型例如与本地客户端系统相关联。此外,作为推导参数除了主题之外或替代主题能够使用主题的安全标签。这能够构造为间接方式,其中将主题首先映射到标签上并且将标签用作为推导函数的推导参数。

根据另一实施方式,借助于可交换运算从密钥推导参数中通过一阶子组的相应的客户端系统为一阶子组推导一阶子组密钥。

根据另一实施方式,设置客户端系统的组的m个分等级排列的子组。在此,借助于n阶子组的n阶子组密钥推导(n+1)阶子组的(n+1)阶子组密钥。

运算尤其是密钥推导函数。可交换密钥推导函数是如下密钥推导,在所述密钥推导中包括多个密钥推导参数,所述密钥推导参数能够逐步地使用。在可交换密钥推导函数中,不同的推导参数的推导步骤可交换,即适用:

kdf(kdf(k,p1),p2)=kdf(kdf(k,p2)p1),

其中kdf表示密钥推导函数,k表示组密钥,p1表示第一参数,并且p2表示第二参数。

根据另一实施方式,n阶子组在m个排列的子组的等级中直接布置在(n+1)阶子组之上。

根据另一实施方式,方法包括如下步骤:

借助于推导出的n阶子组密钥,通过(n+1)阶子组的相应的客户端系统为n阶子组的(n+1)阶子组本地推导(n+1)阶子组密钥,其中n∈[1,…,m],并且m>2,并且

将至少一个利用推导出的(n+1)阶子组密钥进行密码学保护的消息在(n+1)阶的客户端系统之间传递。

所述步骤优选能够迭代地针对全部子组执行,使得可以为每个子组在相应子组的每个客户端系统处提供相应的子组密钥。

根据另一实施方式,在利用推导出的n阶子组密钥和对于(n+1)阶子组特定的机密的情况下通过(n+1)阶子组的相应的客户端系统推导用于(n+1)阶子组的(n+1)阶子组密钥。

特定的机密还更好地以密码学的方式保护相应的子组。

根据另一实施方式,本地客户端系统包括多个客户端设备。相应的客户端设备尤其是分散能量产生装置,用于将电能提供到能量供应网络中。

根据另一实施方式,客户端系统具有密钥推导单元,借助于所述密钥推导单元推导用于客户端系统的客户端设备的子组密钥。

根据另一实施方式,将客户端系统与用于客户端系统的组的m个在等级中排列的子组的确定的子组关联,其中借助于客户端系统的密钥推导单元推导与确定的子组关联的用于客户端系统的客户端设备的子组密钥。

下面的针对用于将电能馈入到本地能量供应网络中的发布订阅系统的示例能够说明本方案的功能性。发布订阅系统包括密钥分配服务器,所述密钥分配服务器与多个本地客户端系统例如经由因特网或内联网连接。本地客户端系统能够包括本地能量生成器、本地能量消耗器和控制部件,如虚拟运算器,用于控制能量馈入和能量分配。

在发布订阅系统中使用的通信协议例如能够是xmpp。密钥分配服务器当前也能够称作为xmpp服务器并且有时实现地址解析,以便使生成器和消耗器对控制部件可见和可响应。此外,在xmpp服务器中搭建的多用户聊天室能够实现组通信,使得控制部件例如能够将卸载指令或减少馈入发送给全部登记的组成员。

根据标准iec61350-8-2,全部xmpp客户端能够经由tls保护的链接在xmpp服务器上登记并且对此能够使用本地存在的证书和所属的私钥,以便进行认证。附加地,认证能够在xmpp服务器的多用户聊天室处执行,以便获得相应授权的聊天室的入口。根据可能的不同的组,能够搭建不同的聊天室,例如根据确定的本地扩展。不同的聊天室例如被能够搭建用于一阶子组和二阶子组。

根据第二方面,提出一种计算机程序产品,所述计算机程序产品在程序控制的装置上推动执行根据第一方面或第一方面的实施方式之一的在上文中阐述的方法。

计算机程序产品、例如计算机程序装置例如能够作为存储介质、诸如存储卡、usb棒、cd-rom、dvd或也以可从服务器下载的数据的形式在网络中提供或交付。这例如能够在无线通信网络中通过传递相应的具有计算机程序产品或计算机程序装置的数据进行。

根据第三方面,提出一种用于在基于主题的发布订阅系统中传递数据的设备,所述发布订阅系统包括密钥分配服务器和多个可与密钥分配服务器耦合的本地客户端系统。该设备包括第一单元、第二单元和第三单元。第一单元被设计用于为选自本地客户端系统的组通过密钥分配服务器提供组密钥。第二单元被设计用于通过一阶子组的相应的客户端系统借助于密钥推导参数为该组的一阶子组推导一阶子组密钥,所述密钥推导参数至少包括提供的组密钥和发布订阅系统的确定的主题。第三单元被设计用于将至少一个利用推导出的一阶子组密钥进行密码学保护的消息在一阶子组的客户端系统之间传递。

针对所提出的方法描述的实施方式和特征相应地适用于所提出的设备。

相应的单元、例如第一单元能够以硬件的方式和/或软件的方式实现。在硬件的实现方案中,相应的单元能够构造为设备或设备的一部分,例如构造为计算机或构造为微处理器或构造为集成电路。在软件的实现方案中,相应的单元能够构造为计算机程序产品,构造为函数,构造为例程,构造为程序编码的一部分或构造为可运行的对象。

根据第四方面,提出一种基于主题的发布订阅系统。发布订阅系统包括密钥分配服务器、多个可与密钥分配服务器耦合的本地客户端系统和至少一个根据第四方面的用于在发布订阅系统中传递数据的设备。

本发明的其他可能的实现方案也包括在上文中或在下文中关于实施例描述的特征或实施方式的未明确提出的组合。在此,本领域技术人员也将单个方面作为改进或补充添加至本发明的相应的基本形式。

附图说明

本发明的其他有利的设计方案和方面是从属权利要求以及本发明的在下文中描述的实施例的对象。此外,本发明根据优选的实施方式参照附图详细阐述。

图1示出用于在基于主题的发布订阅系统中传递数据的方法的第一实施例的示意流程图;

图2示出发布订阅系统的一个实施例的示意方框图;

图3示出发布订阅系统的本地客户端系统的不同组的示意图;

图4示出用于在基于主题的发布订阅系统中传递数据的方法的第二实施例的示意流程图;

图5示出用于在基于主题的发布订阅系统中传递数据的方法的第三实施例的示意流程图;和

图6示出用于在基于主题的发布订阅系统中传递数据的设备的一个实施例的示意方框图。

在附图中,相同的或功能相同的元件配备有相同的附图标记,只要没有另作说明。

具体实施方式

图1示出用于在基于主题的发布订阅系统100中传递数据的方法的第一实施例的示意流程图。

发布订阅系统100包括密钥分配服务器200和多个可与密钥分配服务器200耦合的本地客户端系统310、320。

对此,图2示出这种发布订阅系统100的一个实施例的示意方框图。不限制一般性地,图2的发布订阅系统100具有两个本地客户端系统310和320。客户端系统的数量是任意的。例如,发布订阅系统100能够包括数百个或数千个客户端系统。

图2的相应的客户端系统310、320包括相应的客户端设备410、420和相应的密钥推导单元510、520。尤其地,密钥推导单元510、520在相应的本地客户端系统310、320中布置在相应的客户端设备410、420上游,即布置在相应的客户端设备410、420和密钥分配服务器200之间。密钥推导单元510、520在相应的客户端设备410、420上游的这种布置的优点在于,相应的客户端系统310、320能够具有多个相应的客户端设备。在这种情况下,相应的密钥推导单元510、520能够用于相应的客户端系统310、320的多个客户端设备。

图1的方法包括如下步骤s1、s2和s3:

在步骤s1中,通过密钥分配服务器200为选自本地客户端系统310、320的组g提供组密钥。如在上文中已经详述的那样,发布订阅系统200例如包括多个、例如数百个或数千个客户端系统。相应地,发布订阅系统100能够包括多个不同的组g,其中相应的组g与发布订阅系统100的一个主题相关联。

在步骤s2中,借助于密钥推导参数通过一阶子组ug1的相应的客户端系统310、320为组g的一阶子组ug1本地推导一阶子组密钥,所述密钥推导参数至少包括提供的组密钥和发布订阅系统100的确定的主题。在简单的示例中,客户端系统310、320是组g的一阶子组ug1的一部分。组g除了客户端系统310、320之外还可以具有其他的未详细示出的客户端系统。

为了更好地理解组g和一个子组ug1或多个子组ug1,图3示出发布订阅系统100的本地客户端系统的不同组的示意图。两个在图3中示出的子组ug1是客户端系统的组g的子集。尤其地,左边的一阶子组ug1和右边的一阶子组ug1虽然是组g的子集,但是通常不是组g的不相交的子集。

此外,图3示出,相应的一阶子组如在图3的示例中示出的那样能够具有在右侧的一阶子组ug1和其他子组,即所谓的二阶子组ug2。一阶子组ug1的三个在图3中示出的二阶子组ug2又对应于一阶子组ug1的客户端系统的子集。三个在图3中示出的二阶子组ug2虽然是子组ug1的子集,但是通常不是一阶子组ug1的不相交的子集。

例如,组g包括慕尼黑的全部能量产生装置,用于在局部能量供应网络中产生电能。这种能量产生装置的示例包括发电厂,但是也包括用于提供太阳能电流的本地能量生成器。

如果组g包括慕尼黑的全部能量产生装置,那么例如图3的左边的一阶子组ug1可以包括慕尼黑城市中的能量产生装置作为客户端系统,而图3的右边的一阶子组ug1包括慕尼黑乡村的能量产生装置作为客户端系统。

每个一阶子组ug1又能够包括多个二阶子组ug2。在图3的示例中,右边的一阶子组(慕尼黑乡村)例如包括三个二阶子组ug2,例如用于法特尔斯特滕中的能量产生装置的二阶子组(左边),用于波因格的能量产生装置(中间)和用于阿施海姆的能量产生装置(右边)。所述列举是纯示例性的并且不是排他的。

此外,图4示出用于在基于主题的发布订阅系统100中传递数据的方法的第二实施例的示意流程图。

图4的第二实施例基于图1的第一实施例并且除了关于图1已经阐述的步骤s1-s3之外还包括步骤s4和s5。

在步骤s4中,借助于推导出的一阶子组密钥通过二阶子组ug2的相应的客户端系统为一阶子组ug1的二阶子组ug2推导二阶子组密钥(对此参见图3)。对此,图3示出三个不同的二阶子组ug2,其中图3的相应的二阶子组ug2包括在图3中在右边示出的一阶子组ug1的客户端系统的子集。

在步骤s5中,将至少一个利用推导出的二阶子组密钥进行密码学保护的消息在二阶子组ug2的客户端系统之间传递。

尤其地,借助于密钥推导参数为一阶子组ug1推导一阶子组密钥,所述密钥推导参数包括提供的组密钥,发布订阅系统100的确定的主题,对于一阶子组ug1特定的机密和至少一个另外的推导参数。

另外的推导参数尤其是基于发布订阅系统的参数。基于发布订阅系统的参数例如指示在发布订阅系统100之内的通信方向,指示在发布订阅系统100之内的密钥使用或指示用于一阶子组密钥的有效时间段。尤其地,借助于可交换运算从密钥推导参数中通过一阶子组ug1的相应的客户端系统为一阶子组ug1推导一阶子组密钥。

如图3示出的,子组ug1和ug2分等级来布置。如果n表示组的等级中的等级水平,那么对于图3的示例得出:

n=0:组g,最高的等级水平

n=1:一阶子组ug1,第二等级水平

n=2:二阶子组ug2,最低的等级水平

对于子组密钥的推导,因此通常能够列出,借助于n阶子组的n阶子组密钥来推导(n+1)阶子组的(n+1)阶子组密钥。对于二阶子组ug2的示例,借助于一阶子组ug1的一阶子组密钥推导二阶子组密钥。在此,n阶子组在等级中直接布置在(n+1)阶子组之上。

图5示出用于在基于主题的发布订阅系统100中传递数据的方法的第三实施例的示意流程图。

图5的第三实施例包括步骤t1-t5:

步骤t1-t3对应于关于图1已经阐述的步骤s1-s3。

在步骤t4中,借助于推导出的n阶子组密钥通过(n+1)阶子组的相应的客户端系统为n阶子组的(n+1)阶子组推导(n+1)阶子组密钥,其中n∈[1,…,m]并且m>2。

在步骤t5中,将至少一个利用推导出的(n+1)阶子组密钥进行密码学保护的消息在(n+1)阶子组的客户端系统之间传递。

优选地,将步骤t4和t5迭代地针对m个子组中的每个执行。

尤其地,利用推导出的n阶子组密钥和对于(n+1)阶子组特定的机密通过(n+1)阶子组的相应的客户端系统为(n+1)阶子组推导(n+1)阶子组密钥。

在图6中示出用于在基于主题的发布订阅系统100中传递数据的设备10的一个实施例的示意方框图。

发布订阅系统100包括至少一个密钥分配服务器200和多个可与密钥分配服务器200耦合的本地客户端系统310、320。这种发布订阅系统100的示例在图2中示出。

设备10包括第一单元11、第二单元12和第三单元13。

第一单元11被设计用于,通过密钥分配服务器200为选自本地客户端系统310、320的组g提供组密钥。

第二单元12被设计用于,借助于密钥推导参数为一阶子组ug1推导一阶子组密钥,所述密钥推导参数至少包括提供的组密钥和用于一阶子组ug1的相应的客户端系统310、320的发布订阅系统100的确定的主题。

第一单元11与密钥分配服务器200相关联,而第二单元12本地与客户端系统310、320相关联。根据一阶子组ug1的客户端系统310、320的数量,设有相应多的第二单元12。

第三单元13被设计用于,将至少一个利用推导出的一阶子组密钥进行密码学保护的消息在一阶子组ug1的客户端系统310、320之间传递。

尽管本发明根据实施例描述,但是本发明可多样化地改变。

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