用于数据通信的系统和方法与流程

文档序号:35137768发布日期:2023-08-16 21:32阅读:78来源:国知局
用于数据通信的系统和方法与流程

本公开的实施例总体涉及计算机联网和数据通信领域,并且更具体地,实施例涉及用于使用加密签名有效地路由和协调数据通信的设备、系统和方法。引言数据通信已变得越来越复杂,特别是考虑到不同标准和协议的激增。一个系统可以包含松散耦合的异构设备集合,这些设备需要在彼此之间进行可靠的通信。例如,这些通信可以根据通信的语法/格式要求或消息封装(例如,特定报头信息)要求进行。所存在的现有中间件解决方案提供了消息总线类型的机制,例如,可以对异步传递的消息进行排队和缓冲。然而,这些解决方案具有技术缺陷,这可能包括要求集中式系统调用特定机器上的服务(例如,提供中心故障点),从而仅经由与集中式凭证提供方的https连接作为附加组件提供安全性以及较差的访问控制(例如,当访问控制列表被添加到方法中时,没有设施来限制用户对服务、应用程序、类、接口或方法的访问,并且这需要与系统分开构建)。这些缺点导致了通信不可信,以及与不同协议“堆栈”之间的设备通信相关的困难,从而导致互操作性孤岛或竖井。即使是方案依从性方面的细微差异,如语法差异、用作参数的变量类型不同等,也可能导致消息丢失、未处理的异常等。从消息目标取向的角度来看,在服务调用中通常很少甚至没有目标用户的概念对于xmpp服务,目标用户不是实际用户,而是调用远程服务的一种手段,并且在大多数情况下,无法与防火墙(p2p)后面的服务通信。现有方法还容易受到中间人(mitm)类型的攻击,如果恶意用户可以访问web服务器环境,那么可以访问服务机器的该恶意用户可以凭借中间人类型攻击编写软件来使用调用。当可执行代码在执行之前未签名(例如,验证)时,这可能特别有问题。机器到机器接口的示例方法包括xml-rpc、soap和rest,所有这些方法都与不兼容问题作斗争,因此,机器到机器通信通常是为以人为中心的互联网标准设计的拼凑方法,或者在一个(或几个)计算孤岛共享证书体系、访问控制和互通的简单定义的封闭系统中,其中解决孤岛问题的最常见方式是挑选一个中央提供方来管理设备之间的互通,如与谷歌助手(wwga)或亚马逊的alexa语音服务(avs)的协作。这需要服务的发布者从有限的提供方列表中挑选一个(或多个)获胜者,或者建立其自己的孤岛。即使在挑选商业中央提供方时,设计者也可能会发现自己在招募竞争对手,以便有机会与其他服务进行互连。然而,该方法仍有缺点,因为标准可能很薄、功能有限,并且在任何时候,新的许可证或所有者可能会使其中央提供方不受欢迎或无法继续使用。无论开发者是选择xml-rpc、soap、rest、corba、dcom、xmpp jabber components、wwn、wwga、avs还是其他技术,他们都面临缺点。


背景技术:


技术实现思路

1、现有协议通常具有一个或多个可调用方法的弱服务定义,没有应用定义的概念,也没有要由服务提供方捆绑的应用程序集合,并且不提供识别或确认己发布接口、类、应用程序、服务的作者的能力,也不提供识别或确认服务发布者的标识(即,本文中描述的软件包)的能力,正是这种弱服务定义使得难以跨设备进行强接口发现。

2、在各种实施例中描述了一种改进的计算方法。该方法包括对应的系统、方法、计算机可读介质(例如,基于计算机的制造物品)。该方法可以实现为一种提供改进的计算中间层(例如“中间件”)的计算系统。计算层是消息处理程序组件集合,其可以用于协调设备和/或逻辑对象之间的消息传递(例如,设备间或设备内通信)。计算层实际上是中间设备集合,如向连接的设备提供消息传递服务的路由器、交换机、交换电路。

3、消息传递服务可以包括设备间通信、设备内通信等,并且消息传递服务还可以包括在消息缓冲器中对消息进行排队/存储以用于异步通信、握手协议、消息传输确认/确认接收、纠错码实现等。消息传递服务可以操作例如面向消息的中间件。

4、当用于封装或处理消息的接口类型存在高度复杂性时,消息传递服务尤为重要。例如,设备可能是针对不同堆栈构建的,或者针对需要彼此交互的不同代系统(例如,传统的基于cobol的系统)构建的不同设备的异构混合。

5、这一问题在企业级组织中尤为普遍,因为随着组织规模的扩大,复杂的后端计算基础设施是在多代计算技术上逐步构建的。在另一示例计算上下文中,本文所描述的中间件方面也可以关于智能家居/物联网应用来使用,其中存在需要改进的通信服务的潜在大量异构设备(例如,其中基本的点对点通信不再足够)。

6、本文所述的计算方法涉及一种用于设备和逻辑对象(例如,调用方/被调用方)之间的数据消息封装和路由的改进协议。计算系统可以是一个或多个服务器,它们可以彼此相结合地操作以提供改进的消息协调/路由平台,该平台操作以使分布式系统的各个组件能够通信和管理数据。计算系统适于实现互操作性和改进的通信流,以简化和改进设备间通信的安全性/鲁棒性。

7、可以在邮件服务器的上下文中提供说明性的非限制性示例。不同技术堆栈可能有不同类型的接口协议,如microsoft exchangetm、ibm lotustm以及google mailtm和yahoomailtm。虽然这些技术中的每一种表面上都可以使用简单邮件传输协议(smtp)进行操作,但出于本示例的目的,除了smtp之外,这些技术堆栈中的每一种使用具有自定义方法的不同的非标准、潜在的专有邮件协议,从而有效地为其邮件api提供了非标准变型。

8、在该示例中,每个组织都投入了大量的时间和精力来改进底层接口定义,但结果是,接口的可操作性偏离了通用标准,并且可能使用不同的数据消息/处理方案,且来自一个设备的消息在发送到另一个设备时可能存在处理困难。当组织调整其技术以适应其特定上下文时,通常会遇到非标准变型。通信协议和方案以非标准化的方式得到修改,如重新调整字段用途、更改变量类型、添加或删除参数作为命令行参数(arguments)、需要增强加密等。非标准化允许更灵活地使用技术堆栈。然而,对于建立技术互操作性非标准化也会导致巨大成本(例如,添加新设备或新技术合作伙伴需要大量的系统集成工作)。

9、该系统被配置为通过实现一种用于协调数据消息传递的计算机实现的方法来减轻上述技术挑战。根据一些实施例,该系统可以包括计算组件,如被配置为接收和处理传入消息的消息处理程序守护进程、传入消息缓冲器、消息变换引擎、访问控制器、消息封装引擎和输出消息缓冲器。这些计算组件可以使用一个或多个物理计算机处理器和以机器可解释指令集的形式提供的计算指令(例如,软件模块)来实现,这些指令集可以被执行以执行本文所述的各种方法的步骤。例如,通过使用本文所述的分层加密指纹来鲁棒地建立角色和访问控制列表,可以将经协调的数据消息传递用作底层实现的技术架构。

10、具体实施有不同的可能变型。例如,该系统可以被提供用于设备间(例如,作为中间的中间件服务器或服务器设备)、设备内(例如,作为在机器上运行的用于用户之间通信的沙盒装进各个用户空间的进程)或者它们的组合(例如,每个设备具有运行的中间件进程实例,并且设备之间到其特定用户空间的通信由彼此通信或者与目标用户空间通信的对应中间件进程协调)。用户、设备、用户空间等可以自动地耦合到访问控制机制,该访问控制机制在帐户级别控制接口级别的访问,并且本文描述的中间件系统可以利用相关联的加密指纹以计算有效的方式验证和确认角色和访问权限。

11、该系统可以包括用于认证消息和/或接口使用/采用的一个或多个证书颁发机构,并且这些证书颁发机构可以在设备/接口登录或发现期间使用,以建立用于以后使用的加密认证机制。系统的其他组件可以包括负载平衡器、网络接口控制器、web接口控制器、加密引擎等。可以使用所利用的证书颁发机构来附加元数据,或者在利用特定变换之前要求使用公钥/私钥,或者可以验证特定的加密指纹以供使用。例如,可以使用证书来建立发起方设备或调用方相关设备的标识,然后可以对照访问控制列表来利用该设备来确立该设备确实被认证以利用特定指纹。在另一个示例中,证书被用来提供一种加密签名的方法,以用于指示请求对变换的特定使用,从而使得可以跟踪该使用并支付信贷。在该示例中,医院1可能已投资开发了一种高度安全的转换工具以用于变换最初在hl7方案中提供的传入患者数据,该工具可净化传入患者数据、纠正错误并变换数据以供“主要设备制造商”专有心率监测/报警设备摄取。如果医院2希望利用该工具,他们可以利用他们的公钥来签署消息,该消息被合并到他们发送到本文所述系统的消息分组的报头信息中,然后该系统记录医院2的借项和医院1的贷项。借项和贷项可用于向医院1提供利益,在某些情况下,可跟踪开发工具的成本报酬,或在其他情况下,可以与对本文所述系统的优先访问相关联(例如,缓冲队列优先级增强)。例如,优先访问可以由通过逻辑规则建立的缓冲队列优先级来控制,例如,改进队列中的定位、建立单独的优先级队列以用于相对于用于通信的常规队列来交织消息,等等。其他类型的借项和贷项可以包括减少使用系统的总成本(例如,评估开发者对生态系统的贡献)。

12、在第一实施例中,该方法包括提供表示与硬件设备或软件处理程序相关联的计算元件的一个或多个交互特征的加密标识符集合。例如,这些加密标识符可以被称为“指纹”,并且如下所述,可以用于指示消息是否被处理、修改处理消息的方式,并且在一些实施例中,修改消息本身。这些加密标识符被用来提供一种容易验证但难以逆转的安全机制,以用于认证指示遵守(或期望采用)特定计算元件方案的元数据或报头数据。

13、新消息被接收以用于路由到目标设备或与目标设备相关联的逻辑目标进行处理,并且新消息包括加密标识符集合中的至少一个加密标识符。例如,新消息可以附加指示要采用的期望接口的指纹(例如,目标接口类型),或者其可以附加已经被设计为要使用其处理消息的接口的指纹。指纹可以例如被存储为将数据消息存储为有效载荷的数据分组上的报头信息,或者直接提供给有效载荷本身。

14、在简化的邮件服务器(mailserver)示例中,可以接收指示这是具有指纹f1、f2和f3的newmailmessage(目标ip地址、有效载荷)的消息。在这种情况下,指纹f1、f2和f3显示newmailmessage是遵守软件堆栈1的接口配置的,特别是mailmessageclassstack1(f1),并且遵循mailmessageclassstack1.interface1(f2)和mailmessageclassstack1.interface1.createnewemail method(f3)。指纹可以是各种类型的消息散列摘要。

15、在将新消息提供到消息总线上(例如,提供到输入消息缓冲器中)之后,消息处理程序守护进程连同指纹一起处理新消息。消息处理程序守护进程例如通过将指纹f1、f2和f3与参考数据结构进行比较来识别对应于用于路由到目标设备的新消息的至少一个加密标识符的对应计算元件。

16、如所识别的,计算元件可以包括要遵守的各种类型的方案,如枚举类型、结构、参数/变量类型(例如,浮点型对shorts、短整型对长整型、数组、布尔型、链表、定义的变量)、遵守的方法(例如,c/c++方法)或方法组。计算元件还可以在更高级别上识别更广泛地遵守类(一个或多个接口的集合)、应用程序(一个或者多个类的集合),服务(一个或多个应用程序的集合)和软件包(一个或多个服务的集合)的方案。

17、该消息可以由守护进程处理,以在消息可以被验证并且目的地/目标处理对应计算元件的能力被验证的情况下原样发送消息,或者消息可以被变换,从而使得其可以由目的地/目标正确处理。经处理的新消息路由到目标设备可以包括,例如,将经处理的新消息加载到与消息总线相关联的缓冲器上,以用于将经处理的新信息异步路由到所述目标设备。缓冲器可以用作当目标设备可用时发送消息的“存储并转发”类型的服务。对于存在大量消息的系统,缓冲器也可用于跨拥塞网络信道建立通信优先级。在本文描述的某些情况下,例如,基于设备/调用方/被调用方标识、基于路由逻辑等,可以修改优先级。

18、如上所述,加密标识符可以被视为“指纹”,并且是用于提供数据通信中间件的一种改进机制。例如,可以结合发现机制来建立指纹,使得指纹被注册到访问控制器的数据结构上,该数据结构可以被引用以用于识别对应的接口。

19、可以例如使用跨越多个接口交互层的级联散列来生成表示加密标识符集合的“指纹”,使得级联散列提供散列相互关系的层次结构,该层次结构可以用于验证相对于在所述多个接口交互层内的定位,较低的加密标识符属于较高的加密标识符。使用级联散列建立的相互关系可能是有用的,例如,在需要减少计算过程中以能够验证指纹属于其正上方的指纹组(例如,merkle树中的叶/父节点验证)。并非所有实施例都需要级联散列。

20、多个接口交互层的示例集合可以包括例如以下中的至少两者:参数、包括所述参数作为命令行参数的可编程方法、包含一个或多个可编程方法的可编程接口、包含一个或多个可编程接口的可编程类、包含一个或多个可编程类的可编程应用程序以及包含一个或多个可编程应用程序的编程服务;并且其中级联散列合并了指示多个接口交互层的相关元件之间的关系的散列关系。在一些实施例中,接口交互层是单层。

21、因此,在一个变型实施例中,指纹不仅可以用于识别消息所适用的特定交互类型,级联关系可用于识别指纹之间的分层关系,并且可以在特定消息的上下文中使用多个指纹,从而广义地或狭义地指示正在传递的参数的类型、要使用的类、方法、接口类型等。在另一变型中,指纹还可以与建立优先级访问级别相关联。

22、指纹还可用于控制发现、认证和/或利用特定计算元件(如接口)的权限。例如,指纹可以用存储数据值的访问控制数据结构引用,数据值指示计算元件的发起方/作者、被批准或未被批准使用该计算元件的设备的类型,以及每当采用或使用计算元件时需要向发起方/作者提供的任何预期报酬。

23、例如对新消息的处理可以包括(i)通过使用访问控制列表(acl)将新消息的至少一个加密标识符与新消息的发起方设备的标识符进行比较来认证新消息,以确定是否允许发起方设备使用与至少一个加密标识符相关联的计算元件;以及(ii)变换新消息以指示对与至少一个加密标识符相关联的计算元件的使用的授权,或者(i)通过使用能够由目标设备处理的已知计算元件的列表来比较新消息的至少一个加密标识符以识别目标计算元件,来认证新消息,以及(ii)变换新消息以指示对与至少一个加密标识符相关联的计算元件的使用的授权。

24、例如,在被批准的情况下,新消息随后可以被变换为与与至少一个加密标识符相关联的计算元件相关联的新方案相对应。在一些实施例中,指纹可以与证书颁发机构相关联,使得指纹可以与存储在其上的各种公钥/私钥相关联,例如,这些公钥/私钥与各种组织相关联。例如,可以利用这些来确立指纹确实源自使用其公钥的特定组织(例如,接口确实是由信誉良好的自由软件组织使用高标准的it安全开发的),或者可以用于指示存在使用特定指纹的授权(例如,导致变换以及使用专有接口的指纹)。在该示例中,专门开发接口的独立开发公司可以创建一个可重用的接口,该接口允许两个不同的专有公司的接口之间的互连。独立开发公司可能需要使用独立开发公司创建并出售给各个组织的私钥建立的指纹,并且系统可以被配置为在允许在中间件系统级进行变换之前对其进行确认和验证,然后将其路由到目的地。

25、新消息的变换可以包括为经变换的新消息生成新加密签名,并将新加密签名附加到经变换的新消息上以指示兼容性。签名可以以不同的方式附加,例如通过向数据添加字段、以报头信息的形式添加元数据等。变换可以在通信的不同时间和阶段发生,例如,由发送设备封装,或者发送设备在加载到缓冲器并路由到目标设备之前发送负载,然后由中间件系统封装。

26、为了添加新的计算元件并将其耦合到加密标识符(例如,注册新的邮件服务器(mailserver)接口类),在一些实施例中,接收新计算元件的新方案,并且可以基于新方案的加密表示将新加密标识符附加到加密标识符集合。

27、在一个变型实施例中,该系统还可以用作接口采用和重用的机制。例如,如果第三方已将资源投入开发能够允许两个不同服务之间的互通的定制接口(例如,映射各种字段和/或代码的变换,实现对消息的更改以进行处理),第三方可以选择使这样的定制接口可供通过系统通信的其他方使用。

28、指纹可以由第三方暴露并提供给多个通信方(或仅一个通信方)。当任何一方使用指纹(指示消息应该如何发送或消息需要如何接收)时,系统可以识别需要将消息从第一类型转换为第二类型的变换,并相应地实现该变换。在本示例中,发送方或接收方不必承担编写它们自己的定制接口的费用和成本。

29、在另一变型实施例中,该系统可用于接口发现。当新设备被注册用于跨系统通信时,新设备可以进行发现进程,其中可以运行程序来识别正在使用的所有兼容服务,并生成对应的指纹(如果有新的话),或者设备只需提供指示设备将如何发送、接收或处理消息以及哪些消息的指纹列表。系统可以将这些指纹记录在系统上,使得寻求与新设备通信的另一设备能够识别通信是兼容还是不兼容。如果不兼容,根据一个实施例,如果定制接口由第三方制作,如上所述,则定制接口的指纹可以用于进行对应的变换,以允许互操作性而无需重新开发定制接口。

30、根据一些实施例,可以为定制接口提供市场,其中可以利用使用的自动计数和/或报酬进程(例如,使用加密指纹的定制接口应用商店)。

31、在另一个变型实施例中,该系统可以被配置为在允许设备跨系统通信之前要求特定地遵守至少最小的指纹集合。例如,这可以用于要求遵守最低网络安全要求(例如,仅可使用已知包括sql注入避免机制的认证接口),或者要求遵守特定技术堆栈或通信标准(例如医院网络要求基于医院对hl-7的特定解释来建立网络内医院的所有通信以鼓励数据完整性,使得在一家医院曾就诊的患者如果在另一家医院就医,可以获得一致的数据)。

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