CN114124454A - 消息发送方法、***、电子设备、可读存储介质及产品 - Google Patents

消息发送方法、***、电子设备、可读存储介质及产品 Download PDF

Info

Publication number
CN114124454A
CN114124454A CN202111224787.6A CN202111224787A CN114124454A CN 114124454 A CN114124454 A CN 114124454A CN 202111224787 A CN202111224787 A CN 202111224787A CN 114124454 A CN114124454 A CN 114124454A
Authority
CN
China
Prior art keywords
message
participant
receiving
publish
forwarded
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202111224787.6A
Other languages
English (en)
Inventor
张春海
孙军欢
孙夏
张翔宇
楚汉祥
薛新江
陈沫
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Zhixing Technology Co Ltd
Original Assignee
Shenzhen Zhixing Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shenzhen Zhixing Technology Co Ltd filed Critical Shenzhen Zhixing Technology Co Ltd
Priority to CN202111224787.6A priority Critical patent/CN114124454A/zh
Publication of CN114124454A publication Critical patent/CN114124454A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0442Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/606Protecting data by securing the transmission between two devices or processes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Medical Informatics (AREA)
  • Computing Systems (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明公开了一种消息发送方法、***、电子设备、可读存储介质及产品,所述消息发送方法包括:接收第一消息参与方发布的待转消息,并提取所述待转消息中的消息主题和消息主体,其中,所述待转消息是所述第一消息参与方以发布订阅模式发布的消息,且所述待转消息仅被所述消息转发方订阅;对所述消息主题进行解析得到第二消息参与方的标识;基于所述第二消息参与方的标识从预设的配置文件中查找获取所述第二消息参与方的接收地址;按照所述接收地址以发布订阅模式向所述第二消息参与方发布所述消息主体。本发明解决了在隐私计算场景中需要应对一个发送方发送给指定某几个订阅者的场景时,采用基本的发布订阅模式所存在的消息泄露风险的技术问题。

Description

消息发送方法、***、电子设备、可读存储介质及产品
技术领域
本发明涉及数据库技术领域,尤其涉及一种消息发送方法、***、电子设备、可读存储介质及产品。
背景技术
目前,在一些应用场景中,例如基于可信执行环境(Trusted executionenvironment,TEE)的隐私计算场景,需要采用消息中间件***中的发布订阅模式进行消息通信,但是,基本的发布订阅模式中发布者向一个主题发布一个消息后,只要订阅了该主题的订阅者都能收到该消息,也即,发布者只管发布消息,而不管接收消息的是谁,是否接收消息的选择权在订阅者一方,那么,如果需要应对一个发送方发送给指定某几个订阅者的场景,此时采用基本的发布订阅模式将有消息泄露的风险。
发明内容
本发明的主要目的在于提供一种消息发送方法、***、电子设备及可读存储介质,旨在解决在需要应对一个发送方发送给指定某几个订阅者的场景时,采用基本的发布订阅模式将有消息泄露风险的技术问题。
为实现上述目的,本发明提供一种消息发送方法,所述消息发送方法应用于隐私计算场景中的消息转发方,所述隐私计算场景中还包括多个消息参与方,所述消息发送方法包括:
接收第一消息参与方发布的待转消息,并提取所述待转消息中的消息主题和消息主体,其中,所述待转消息是所述第一消息参与方以发布订阅模式发布的消息,且所述待转消息仅被所述消息转发方订阅;
对所述消息主题进行解析得到第二消息参与方的标识;
基于所述第二消息参与方的标识从预设的配置文件中查找获取所述第二消息参与方的接收地址;
按照所述接收地址以发布订阅模式向所述第二消息参与方发布所述消息主体。
可选地,所述接收第一消息参与方发布的待转消息,并提取所述待转消息中的消息主题和消息主体的步骤包括:
接收第一消息参与方发布的待转消息,并提取所述待转消息中的消息主题和加密的消息主体,加密的所述消息主体是所述第一消息参与方采用所述第一消息参与方的第一私钥对明文的所述消息主体加密得到的;
从所述配置文件中查找与所述第一私钥对应的第一公钥,并采用所述第一公钥对加密的所述消息主体进行解密,得到明文的所述消息主体;
所述按照所述接收地址以发布订阅模式向所述第二消息参与方发布所述消息主体的步骤包括:
按照所述接收地址以发布订阅模式向所述第二消息参与方发布明文的所述消息主体。
可选地,所述对所述消息主题进行解析得到第二消息参与方的标识的步骤之前,还包括:
检测所述消息主题是否符合预设的消息主题规范;
若符合所述消息主题规范,则执行所述对所述消息主题进行解析得到第二消息参与方的标识的步骤;
若不符合所述消息主题规范,则向所述第一消息参与方返回报错信息。
可选地,所述对所述消息主题进行解析得到第二消息参与方的标识的步骤之后,还包括:
在所述配置文件中查找与所述第二消息参与方的标识对应的所述第二消息参与方的第二公钥;
所述按照所述接收地址以发布订阅模式向所述第二消息参与方发布所述消息主体的步骤包括:
将明文的所述消息主体采用所述第二公钥进行加密,并按照所述接收地址以发布订阅模式向所述第二消息参与方发布加密的所述消息主体,以供所述第二消息参与方采用所述第二公钥对应的第二私钥解密得到明文的所述消息主体。
可选地,所述消息发送方法还包括:
开启监听线程监听所述配置文件的更新状态;
所述基于所述第二消息参与方的标识从预设的配置文件中查找获取所述第二消息参与方的接收地址的步骤包括:
在基于所述监听线程监听到的最新的配置文件中查找与所述第二消息参与方的标识对应的所述第二消息参与方的接收地址。
可选地,所述消息发送方法还包括:
启动固定的本端接收端口;
所述接收第一消息参与方发布的待转消息的步骤包括:
监听所述本端接收端口,以接收第一消息参与方向所述本端接收端口发布的待转消息。
可选地,当有多个所述消息转发方时,多个所述消息转发方的IP地址共同绑定一个转发方域名,所述接收第一消息参与方发布的待转消息的步骤包括:
接收第一消息参与方向所述转发方域名发布的待转消息。
为实现上述目的,本发明还提供一种消息发送方法,所述消息发送方法应用于隐私计算场景中的多个消息参与方中的任意需要以发布订阅模式发布消息的第一消息参与方,所述隐私计算场景中还包括至少一个消息转发方,所述消息发送方法包括:
获取待发送给第二消息参与方的消息主体和所述第二消息参与方的标识;
将所述第二消息参与方的标识封装在消息主题中,将所述消息主题和所述消息主体打包得到待转消息;
将所述待转消息以发布订阅模式发布给消息转发方,其中,所述待转消息仅被所述消息转发方订阅;
其中,所述待转消息用于所述消息转发方提取所述消息主体和所述消息主题,以及解析获取所述消息主题中的所述第二消息参与方的标识;
所述第二消息参与方的标识与所述第二消息参与方的接收地址一一对应的存储在预设的配置文件中,所述待转消息还用于所述消息转发方基于所述第二消息参与方的标识从预设的配置文件中查找所述第二消息参与方的接收地址,并依据所述第二消息参与方的接收地址将所述消息主体以发布订阅模式发送到所述第二消息参与方。
为实现上述目的,本发明还提供一种消息发送方法,所述消息发送方法应用于隐私计算场景中的多个消息参与方中的任意需要接收订阅消息的第二消息参与方,所述隐私计算场景中还包括至少一个消息转发方,所述消息发送方法包括:
启动固定的本端接收端口,所述本端接收端口设有固定的端口号;
基于所述端口号接收消息转发方以发布订阅模式向所述本端接收端口发布的消息主体;
其中,所述消息主体是所述消息转发方从待转消息中提取出后,按照接收地址向所述本端接收端口发布的消息主体;
所述待转消息是第一消息参与方以发布订阅模式向所述消息转发方发布的消息,且所述待转消息仅能被所述消息转发方订阅;
所述待转消息还包括消息主题,所述接收地址是所述消息转发方基于解析所述消息主题得到的所述第二消息参与方的标识在预设的配置文件中查询得到的,所述接收地址中包含所述端口号。
本发明还提供一种消息转发装置,所述消息转发装置部署于隐私计算场景中的消息转发方,所述隐私计算场景中还包括多个消息参与方,所述消息转发装置包括:
第一接收模块,用于接收第一消息参与方发布的待转消息,并提取所述待转消息中的消息主题和消息主体,其中,所述待转消息是所述第一消息参与方以发布订阅模式发布的消息,且所述待转消息仅被所述消息转发方订阅;
解析模块,用于对所述消息主题进行解析得到第二消息参与方的标识;
查找模块,用于基于所述第二消息参与方的标识从预设的配置文件中查找获取所述第二消息参与方的接收地址;
第一发布模块,用于按照所述接收地址以发布订阅模式向所述第二消息参与方发布所述消息主体。
本发明还提供一种消息发送装置,所述消息发送装置部署于隐私计算场景中的多个消息参与方中的任意需要以发布订阅模式发布消息的第一消息参与方,所述隐私计算场景中还包括至少一个消息转发方,所述消息发送装置包括:
获取模块,用于获取待发送给第二消息参与方的消息主体和所述第二消息参与方的标识;
打包模块,用于将所述第二消息参与方的标识封装在消息主题中,将所述消息主题和所述消息主体打包得到待转消息;
第二发布模块,用于将所述待转消息以发布订阅模式发布给消息转发方,其中,所述待转消息仅被所述消息转发方订阅;
其中,所述待转消息用于所述消息转发方提取所述消息主体和所述消息主题,以及解析获取所述消息主题中的所述第二消息参与方的标识;
所述第二消息参与方的标识与所述第二消息参与方的接收地址一一对应的存储在预设的配置文件中,所述待转消息还用于所述消息转发方基于所述第二消息参与方的标识从预设的配置文件中查找所述第二消息参与方的接收地址,并依据所述第二消息参与方的接收地址将所述消息主体以发布订阅模式发送到所述第二消息参与方。
本发明还提供一种消息接收装置,所述消息接收装置应用于隐私计算场景中的多个消息参与方中的任意需要接收订阅消息的第二消息参与方,所述隐私计算场景中还包括至少一个消息转发方,所述消息接收装置包括:
启动模块,用于启动固定的本端接收端口,所述本端接收端口设有固定的端口号;
第二接收模块,用于基于所述端口号接收消息转发方以发布订阅模式向所述本端接收端口发布的消息主体;
其中,所述消息主体是所述消息转发方从待转消息中提取出后,按照接收地址向所述本端接收端口发布的消息主体;
所述待转消息是第一消息参与方以发布订阅模式向所述消息转发方发布的消息,且所述待转消息仅能被所述消息转发方订阅;
所述待转消息还包括消息主题,所述接收地址是所述消息转发方基于解析所述消息主题得到的所述第二消息参与方的标识在预设的配置文件中查询得到的,所述接收地址中包含所述端口号。
本发明还提供一种消息发送***,包括消息发送装置、消息转发装置和消息接收装置,所述消息转发装置部署于隐私计算场景中的消息转发方,所述消息发送装置部署于所述隐私计算场景中多个消息参与方中的任意需要以发布订阅模式发布消息的第一消息参与方,所述消息接收装置部署于所述隐私计算场景中多个消息参与方中的任意需要接收订阅消息的第二消息参与方;
所述消息发送装置用于将所述第一参与方的待转消息以发布订阅模式发布给所述消息转发装置,其中,所述待转消息仅被所述消息转发方通过所述消息转发装置订阅;
所述消息转发装置用于接收所述待转消息,并提取所述待转消息中的消息主题和消息主体,对所述消息主题进行解析得到第二消息参与方的标识;以及用于基于所述第二消息参与方的标识从预设的配置文件中查找获取所述第二消息参与方的接收地址,并按照所述接收地址以发布订阅模式向所述第二消息参与方的所述消息接收装置发布所述消息主体;
所述消息接收装置用于接收所述消息主体。
本发明还提供一种电子设备,所述电子设备为实体设备,所述电子设备包括:存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的所述消息发送方法的程序,所述消息发送方法的程序被处理器执行时可实现如上述的消息发送方法的步骤。
本发明还提供一种可读存储介质,所述可读存储介质为计算机可读存储介质,所述计算机可读存储介质上存储有实现消息发送方法的程序,所述消息发送方法的程序被处理器执行时实现如上述的消息发送方法的步骤。
本发明还提供一种产品,所述产品为计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述的消息发送方法的步骤。
本发明提供了一种消息发送方法、***、电子设备、可读存储介质及产品,本发明通过增设消息转发方,接收第一消息参与方以发布订阅模式发布的待转消息,并设置待转消息只被该消息转发方订阅,使得第一消息参与方发给消息转发方的待转消息只能被消息转发方收到;又通过消息转发方提取待转消息中的消息主题和消息主体,对消息主题解析得到第二消息参与方的标识,基于第二消息参与方的标识在预先设置的配置文件中查找第二消息参与方的接收地址,按照接收地址以发布订阅模式向第二消息参与方发布该消息主体,使得消息转发方发送给第二消息参与方的消息主体只能被第二消息参与方接收到;整个过程实现了第一消息参与方以发布订阅模式针对性地将消息主体发送给第二消息参与方,且不会泄露给第二消息参与方以外的消息参与方,解决了在隐私计算场景中需要应对一个发送方发送给指定某几个订阅者的场景时,采用基本的发布订阅模式所存在的消息泄露风险的技术问题。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明消息发送方法第一实施例的流程示意图;
图2为本发明实施例中消息发送方法涉及的硬件运行环境的设备结构示意图。
本发明目的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其它实施例,均属于本发明保护的范围。
实施例一
请参阅图1,本发明实施例提供的一种消息发送方法,应用于消息转发方,所述消息发送方法包括:
步骤S10,接收第一消息参与方发布的待转消息,并提取所述待转消息中的消息主题和消息主体,其中,所述待转消息是所述第一消息参与方以发布订阅模式发布的消息,且所述待转消息仅被所述消息转发方订阅;
在基本的发布订阅模式中,发布者通过消息队列中间件将消息发布到不同的主题(或通道),订阅者将收到其订阅的主题上的所有消息。主题是由发布者自定义的,可以理解为对消息的分类。订阅者具体如何订阅主题根据具体采用的消息队列中间件不同而不同,例如,ZeroMQ中,订阅者通过监听发布者的发送端口的方式来获取发布者发布的感兴趣主题中的消息。ZeroMQ是一种基于消息队列的多线程网络库,其对套接字类型、连接处理、帧、甚至路由的底层细节进行抽象,提供跨越多种传输协议的套接字。此外,消息队列中间件还有RabbitMQ、RocketMQ、ActiveMQ、Kafka、MetaMq等。在本实施例中,对具体采用的消息队列中间件不做限制。发布订阅模式一般应用于一方向多方广播消息的场景,且,发布者以发布订阅模式发送的消息时,一般并不需要接收订阅者的回复。
因此,基于发布订阅模式的特性,在很多应用场景中,通信多方之间需要采用发布订阅模式来进行消息通信,例如,在基于可信环境的隐私计算场景。但是,基本的发布订阅模式中,由于发布者发布的消息,只要订阅者订阅了相应主题,就能够被订阅者收到,在隐私计算场景中,需要应对一个发送方发送给指定某几个订阅者的场景,此时,采用基本的发布订阅模式将有消息泄露的风险。
针对该技术问题,在本实施例中,将隐私计算场景中需要通信的多方都称为消息参与方,在消息参与方外,增设一个角色,即消息转发方,通过消息转发方对各消息参与方需要发送给其他消息参与方的消息进行过滤转发。
具体地,以下将多个消息参与方中任意需要向其他消息参与方以发布订阅模式发送消息的消息参与方称为第一消息参与方,将第一消息参与方指定的接收消息的消息参与方称为第二消息参与方;第二消息参与方可以有多个,也即第一消息参与方指定将消息发送给多个第二消息参与方。需要说明的是,“第一”和“第二”只是为了便于指代区分而采用的称呼,并不是对消息参与方的分类。可以理解的是,一个消息参与方既可以作为第一消息参与方向第二消息参与方发送消息,也可以作为第二消息参与方接收第一消息参与方发送的消息。
第一消息参与方在确定需要发送给第二消息参与方的消息主体后,获取第二消息参与方的标识。其中,预先给各个消息参与方设置唯一的标识,以区分各个消息参与方。第一消息参与方中可以预先保存有其他消息参与方的标识,当第一消息参与方确定第二消息参与方后,获取第二消息参与方的标识。
第一消息参与方将第二消息参与方的标识封装在消息主题中,具体地,可以按照预先设置的规范来封装。进一步地,在一实施方式中,为使得方便第二消息参与方或消息转发方追溯消息的发送方,第一消息参与方也可以将自己的标识与第二消息参与方的标识一起按照预先设置的规范封装在消息主题中。具体的封装规范有很多种,在本实施例中并不做限制。示例性地,一个消息主题为:party_2&party_3@party_1,代表发送方为party_1,接收方为party_2和party_3,party_1、party_2、party_3是三个消息参与方的参与方标识。
第一消息参与方将获取到的消息主体和消息主题打包为消息(以下称为待转消息以示区分),将待转消息以发布订阅模式发布给消息转发方。为避免其他消息参与方都能够获取该待转消息,可以设置第一消息参与方以发布订阅模式发布的消息仅被消息转发方订阅。需要说明的是,实现第一消息参与方以发布订阅模式发布的消息仅被消息转发方订阅的方式有很多种,根据具体采用的消息队列中间件不同而不同,在本实施例中并不做限制。示例性地,可以通过第一消息参与方以一个固定的发送端口发布消息,而该发送端口的端口号仅在消息转发方中预先保存,消息转发方通过监听该发送端口的方式接收第一消息参与方以发布订阅模式发布的待转消息。
消息转发方接收第一消息参与方以发布订阅模式发布的待转消息,对待转消息中的消息主题和消息主体进行提取。需要说明的是,各个消息参与方与消息转发方之间可以预先约定好消息主题和消息主体的打包方式和提取方式。
步骤S20,对所述消息主题进行解析得到第二消息参与方的标识;
消息转发方在提取到待转消息中的消息主题后,对消息主题进行解析得到第二消息参与方的标识。具体地,各消息参与方与消息转发方之间可以预先约定好消息主题的封装方式,消息转发方按照约定好的封装方式对应的解析方式来解析消息主题,得到消息主题中携带的第二消息参与方的标识。
步骤S30,基于所述第二消息参与方的标识从预设的配置文件中查找获取所述第二消息参与方的接收地址;
消息转发方在得到第二消息参与方的标识后,基于第二消息参与方的标识在配置文件中查找获取第二消息参与方的接收地址。其中,配置文件是预先在消息转发方中设置的一个文件,包括第二消息参与方的标识和接收地址,且第二消息参与方的标识与接收地址之间相互关联,以使得消息转发方能够通过第二消息参与方的标识查找到第二消息参与方的接收地址。需要说明的是,配置文件中可以预先设置包括所有需要作为消息接收方的消息参与方的标识和接收地址。接收地址可以包括消息参与方的IP地址和接收端口的端口号。需要说明的是,消息参与方的接收地址一经设置则不再更改,或者更改时同步在配置文件中进行更改。
进一步地,若消息转发方在配置文件中未查找到第二消息参与方的标识,或未查找到第二消息参与方的接收地址,则可以向第一消息参与方返回报错信息。
步骤S40,按照所述接收地址以发布订阅模式向所述第二消息参与方发布所述消息主体。
消息转发方在查找到第二消息参与方的接收地址后,可以按照第二消息参与方的接收地址以发布订阅模式向第二消息参与方发布消息主体。其中,消息转发方是按照第二消息参与方的接收地址针对性地将消息主体发布给第二消息参与方的,所以,第二消息参与方以外的消息参与方无法接收到该消息主体,从而实现了第一消息参与方以发布订阅模式针对性地将消息主体发送给了第二消息参与方,且不会泄露给第二消息参与方以外的消息参与方。需要说明的是,消息转发方将消息主体发布给第二消息转发方具体可以是仅将消息主体发布给第二消息参与方,也可以将待转消息整体发布给第二消息参与方。
在本实施例中,通过增设消息转发方,接收第一消息参与方以发布订阅模式发布的待转消息,并设置待转消息只被该消息转发方订阅,使得第一消息参与方发给消息转发方的待转消息只能被消息转发方收到;又通过消息转发方提取待转消息中的消息主题和消息主体,对消息主题解析得到第二消息参与方的标识,基于第二消息参与方的标识在预先设置的配置文件中查找第二消息参与方的接收地址,按照接收地址以发布订阅模式向第二消息参与方发布该消息主体,使得消息转发方发送给第二消息参与方的消息主体只能被第二消息参与方接收到;整个过程实现了第一消息参与方以发布订阅模式针对性地将消息主体发送给第二消息参与方,且不会泄露给第二消息参与方以外的消息参与方,解决了在隐私计算场景中需要应对一个发送方发送给指定某几个订阅者的场景时,采用基本的发布订阅模式所存在的消息泄露风险的技术问题。
进一步地,在一实施方式中,所述步骤S20之前,还包括:
步骤a,检测所述消息主题是否符合预设的消息主题规范;
消息转发方在接收到待转消息,并从待转消息中提取到消息主题后,可以先检测消息主题是否符合消息主题规范。其中,消息主题规范是预先根据需要设置的封装消息主题的规范,例如规定如何将第二消息参与方的标识与第一消息参与方的标识组织为消息主题。示例性地,消息转发方检测消息主题是否符合消息主题规范可以包括检测消息主题中是否包含第二消息参与方的标识、消息主题中包含的第二消息参与方的标识是否完整等操作。
步骤b,若符合所述消息主题规范,则执行所述对所述消息主题进行解析得到第二消息参与方的标识的步骤;
消息转发方若检测到消息主题符合消息主题规范,则对消息主题进行解析得到第二消息参与方的标识,进而依据第二消息参与方的标识查找第二消息参与方的接收地址,以及按照第二消息参与方的接收地址以发布订阅模式向第二消息参与方发布消息主体。
步骤c,若不符合所述消息主题规范,则向所述第一消息参与方返回报错信息。
消息转发方若检测到消息主题不符合消息主题规范,则向第一消息参与方返回报错信息。第一消息参与方在接收到报错信息后,可以重新封装消息主题后重发待转消息。
在本实施方式中,通过消息转发方在从待转消息中提取到消息主题后,先对消息主题进行合规性检测,在合规时才依据消息主题中携带的第二消息参与方的标识进行消息转发,在不合规时返回报错信息,保证第一消息参与方的消息能够准确发布给第二消息参与方。
进一步地,在一实施方式中,所述步骤S20之后,还包括:
步骤S50,在所述配置文件中查找与所述第二消息参与方的标识对应的所述第二消息参与方的第二公钥;
消息转发方在获取到第二消息参与方的标识后,还可以在配置文件中查找与第二消息参与方的标识对应的第二消息参与方的公钥(以下称为第二公钥以示区分)。其中,各消息参与方可以预先按照规定的密钥生成方法生成自己的公钥和私钥,各个消息参与方的公钥可以与参与方的标识一起关联存储在消息转发方的配置文件中,私钥则只在消息参与方本地保存。示例性地,当消息参与方和消息转发方采用ZeroMQ发布消息时,消息参与方的公钥可以采用curve协议的公钥,curve协议是ZeroMQ信道加密的协议。
所述步骤S40包括:
步骤S401,将明文的所述消息主体采用所述第二公钥进行加密,并按照所述接收地址以发布订阅模式向所述第二消息参与方发布加密的所述消息主体,以供所述第二消息参与方采用所述第二公钥对应的第二私钥解密得到明文的所述消息主体。
消息转发方在获取到第二公钥后,可以将明文的消息主体采用该第二公钥进行加密,得到加密后的消息主体。消息转发方按照第二消息参与方的接收地址以发布订阅模式向第二消息参与方发布该加密后的消息主体。第二消息参与方在接收到加密后的消息主体后,采用本地保存的与该第二公钥对应的第二私钥对加密后的消息主体进行解密,得到明文的消息主体,其中,第二私钥就是第二消息参与方所拥有的与该第二公钥对应的私钥。
在本实施方式中,通过消息转发方中预置配置文件保存各个消息参与方的公钥,根据从消息主题中解析得到的第二消息参与方的标识在配置文件中查找到第二消息参与方的第二公钥,采用第二公钥对消息主体进行加密后发布给第二消息参与方,保证了消息转发方在将消息主体转发给第二消息参与方的过程中消息主体的安全性。
进一步地,在一实施方式中,所述步骤S10包括:
步骤S101,接收第一消息参与方发布的待转消息,并提取所述待转消息中的消息主题和加密的消息主体,加密的所述消息主体是所述第一消息参与方采用所述第一消息参与方的第一私钥对明文的所述消息主体加密得到的;
步骤S102,从所述配置文件中查找与所述第一私钥对应的第一公钥,并采用所述第一公钥对加密的所述消息主体进行解密,得到明文的所述消息主体;
第一消息参与方也可以在获取到消息主题和消息主体后,将消息主体采用第一消息参与方的私钥(以下称为第一私钥)进行加密后再与消息主题一起打包得到待转消息,将包含密文的消息主体的待转消息发布给消息转发方。消息转发方从接收到的待转消息中提取密文的消息主体,并从配置文件中查找第一消息参与方的公钥(以下称为第一公钥),采用该第一公钥对密文的消息主体进行解密得到明文的消息主体。通过第一消息参与方对消息主体进行加密后再发布给消息转发方,保证了第一消息参与方在将消息主体转发给消息转发方的过程中消息主体的安全性。
所述步骤S40包括:
步骤S402,按照所述接收地址以发布订阅模式向所述第二消息参与方发布明文的所述消息主体。
消息转发方得到明文的消息主体后,可以按照第二消息参与方的接收地址以发布订阅模式向第二消息参与方发布该明文的消息主体,或者也可以采用第二消息参与方的第二公钥对明文的消息主体进行加密后发布给第二消息参与方。
进一步地,在一实施方式中,所述消息发送方法还包括:
步骤S60,开启监听线程监听所述配置文件的更新状态;
当有新增或删除消息参与方时,管理人员可以在配置文件中新增消息参与方的标识、接收地址、公钥等参与方信息。消息转发方可以开启一个监听线程监听配置文件的更新状态,以采用最新的配置文件来进行消息转发服务。
所述步骤S30包括:
步骤S301,在基于所述监听线程监听到的最新的配置文件中查找与所述第二消息参与方的标识对应的所述第二消息参与方的接收地址。
消息转发方在获取到第二消息参与方的标识后,可以在监听线程监听到的最新的配置文件中查找与第二消息参与方的标识对应的第二消息参与方的接收地址。
在本实施例中,通过在消息转发方中通过配置文件维护各个消息参与方的参与方信息,并通过消息转发方开启监听线程监听配置文件的更新状态,采用最新的配置文件进行消息转发服务,使得增加和删除消息参与方只需要对配置文件进行更新即可,无需重启消息参与方和消息转发方,同时也极大地降低了通信多方以发布订阅模式进行消息通信时的网络复杂性及维护成本。
实施例二
在上述实施例一的基础上,上述实施例中的消息发送方法还可以包括步骤S70,所述步骤S10中接收第一消息参与方发布的待转消息的步骤还包括步骤S103,下面对这种情况进行介绍。其中,本实施例中,与上述实施例一相同或相似的内容,可以参考上文介绍,后续不再赘述。
步骤S70,启动固定的本端接收端口;
步骤S103,监听所述本端接收端口,以接收第一消息参与方向所述本端接收端口发布的待转消息。
基本的发布订阅模式中,订阅者可通过监听发布者的发送端口的方式订阅发布者发布到主题中的消息,只要订阅者知道发布者的发送端口,就可以接收到发布者发布的消息,从而当发布者仅需向指定的一些订阅者发布消息时,消息会泄露给其他订阅者。
为解决该技术问题,在本实施例中,消息转发方可以启动至少一个固定的接收端口(以下称为本端接收端口,本端指的是消息转发方这一端)。并预先将该本端接收端口的端口号预置在各个消息参与方。
第一消息参与方根据该本端接收端口的端口号,以发布订阅模式向该本端接收端口发布待转消息。消息转发方通过监听该本端接收端口,获取到第一消息参与方发布的该待转消息。由于第一消息参与方是向消息转发方的本端接收端口针对性地发布待转消息,所以,消息转发方以外的消息参与方无法接收到该待转消息,从而实现了第一消息参与方以发布订阅模式针对性地将消息主体发送给了第二消息参与方,且不会泄露给第二消息参与方以外的消息参与方。
实施例三
在上述实施例一的基础上,上述实施例中的消息发送方法步骤S10中接收第一消息参与方发布的待转消息的步骤还可以包括步骤S104,下面对这种情况进行介绍。其中,本实施例中,与上述实施例一相同或相似的内容,可以参考上文介绍,后续不再赘述。
步骤S104,接收第一消息参与方向所述转发方域名发布的待转消息。
由于增加了消息转发方后所有的消息都会经过消息转发方,消息转发方会把消息以队列的方式放入内存,这样当消息参与方的数量增大以及需要发送的消息增多后,部署消息转发方的机器内存会成为短板。
为解决该问题,在本实施例中,可以设置多个消息转发方,各个消息转发方中配置文件是相同的,多个消息转发方实现相同的消息转发服务。当有多个消息转发方时,多个消息转发方的IP地址可以共同绑定一个域名(以下称为转发方域名)。
第一消息参与方可以通过以发布订阅模式向该转发方域名发布待转消息,由于是向该转发方域名发布待转消息,所以也能够实现第一消息参与方以发布订阅模式发布的消息只被消息转发方订阅。由于该转发方域名绑定了多个IP地址,域名服务默认会轮询该转发方域名绑定的各个IP地址,进而使得待转消息被发布至被轮询到的IP地址所对应的消息转发方,从而将各个第一消息参与方发布的待转消息分散给各个消息转发方处理,达到分流的效果,进而使得本实施例消息发送方法支持大规模的消息发送。
实施例四
在上述实施例一、二和/或三的基础上,本发明实施例提供的一种消息发送方法,应用于隐私计算场景中的多个消息参与方中的任意需要以发布订阅模式发布消息的第一消息参与方,所述隐私计算场景中还包括至少一个消息转发方,所述消息发送方法包括:
步骤A10,获取待发送给第二消息参与方的消息主体和所述第二消息参与方的标识;
步骤A20,将所述第二消息参与方的标识封装在消息主题中,将所述消息主题和所述消息主体打包得到待转消息;
步骤A30,将所述待转消息以发布订阅模式发布给消息转发方,其中,所述待转消息仅被所述消息转发方订阅;
其中,所述待转消息用于所述消息转发方提取所述消息主体和所述消息主题,以及解析获取所述消息主题中的所述第二消息参与方的标识;
所述第二消息参与方的标识与所述第二消息参与方的接收地址一一对应的存储在预设的配置文件中,所述待转消息还用于所述消息转发方基于所述第二消息参与方的标识从预设的配置文件中查找所述第二消息参与方的接收地址,并依据所述第二消息参与方的接收地址将所述消息主体以发布订阅模式发送到所述第二消息参与方。
本实施例中步骤A10~A30的具体扩展实施方式,可参照上述实施例一、二和/或三的内容,在此不再赘述。与现有技术相比,本实施例提供的消息发送方法的有益效果与上述实施例一提供的消息发送方法的有益效果相同,在此不做赘述。
实施例五
在上述实施例一、二、三和/或四的基础上,本发明实施例提供的一种消息发送方法,应用于隐私计算场景中的多个消息参与方中的任意需要接收订阅消息的第二消息参与方,所述隐私计算场景中还包括至少一个消息转发方,所述消息发送方法包括:
步骤B10,启动固定的本端接收端口,启动固定的本端接收端口,所述本端接收端口设有固定的端口号;
步骤B20,基于所述端口号接收消息转发方以发布订阅模式向所述本端接收端口发布的消息主体;
其中,所述消息主体是所述消息转发方从待转消息中提取出后,按照接收地址向所述本端接收端口发布的消息主体;
所述待转消息是第一消息参与方以发布订阅模式向所述消息转发方发布的消息,且所述待转消息仅能被所述消息转发方订阅;
所述待转消息还包括消息主题,所述接收地址是所述消息转发方基于解析所述消息主题得到的所述第二消息参与方的标识在预设的配置文件中查询得到的,所述接收地址中包含所述端口号。
第二消息参与方可以启动至少一个固定的接收端口(以下称为本端接收端口,本端指的是第二消息参与方这一端)。预先将该本端接收端口的端口号作为第二消息参与方的接收地址配置在消息转发方的配置文件中。
消息转发方在获取到第二消息参与方的标识后,在配置文件中查找与第二消息参与方的标识对应的第二消息参与方的接收地址,接收地址中包括该本端接收端口的端口号。消息转发方根据第二消息参与方的接收地址,以发布订阅模式向该本端接收端口发布消息主体。第二消息参与方通过监听该本端接收端口,获取到消息转发方发布的该消息主体。由于消息转发方是向第二消息参与方的本端接收端口针对性地发布消息主体,所以,第二消息参与方以外的消息参与方无法接收到该消息主体,从而实现了第一消息参与方以发布订阅模式针对性地将消息主体发送给了第二消息参与方,且不会泄露给第二消息参与方以外的消息参与方。
与现有技术相比,本实施例提供的消息发送方法的有益效果与上述实施例一提供的消息发送方法的有益效果相同,在此不做赘述。
实施例六
本发明实施例提供一种消息转发装置,所述消息转发装置部署于隐私计算场景中的消息转发方,所述隐私计算场景中还包括多个消息参与方,所述消息转发装置包括:
第一接收模块,用于接收第一消息参与方发布的待转消息,并提取所述待转消息中的消息主题和消息主体,其中,所述待转消息是所述第一消息参与方以发布订阅模式发布的消息,且所述待转消息仅被所述消息转发方订阅;
解析模块,用于对所述消息主题进行解析得到第二消息参与方的标识;
查找模块,用于基于所述第二消息参与方的标识从预设的配置文件中查找获取所述第二消息参与方的接收地址;
第一发布模块,用于按照所述接收地址以发布订阅模式向所述第二消息参与方发布所述消息主体。
本发明提供的消息转发装置,解决了在隐私计算场景中需要应对一个发送方发送给指定某几个订阅者的场景时,采用基本的发布订阅模式所存在的消息泄露风险的技术问题。与现有技术相比,本发明实施例提供的消息转发装置的有益效果与上述实施例一提供的消息发送方法的有益效果相同,且该消息转发装置中的其他技术特征与上述实施例一、二、三、四或五提供的消息转发装置公开的特征相同,在此不做赘述。
实施例七
本发明实施例提供一种消息发送装置,所述消息发送装置部署于隐私计算场景中的多个消息参与方中的任意需要以发布订阅模式发布消息的第一消息参与方,所述隐私计算场景中还包括至少一个消息转发方,所述消息发送装置包括:
获取模块,用于获取待发送给第二消息参与方的消息主体和所述第二消息参与方的标识;
打包模块,用于将所述第二消息参与方的标识封装在消息主题中,将所述消息主题和所述消息主体打包得到待转消息;
第二发布模块,用于将所述待转消息以发布订阅模式发布给消息转发方,其中,所述待转消息仅被所述消息转发方订阅;
其中,所述待转消息用于所述消息转发方提取所述消息主体和所述消息主题,以及解析获取所述消息主题中的所述第二消息参与方的标识;
所述第二消息参与方的标识与所述第二消息参与方的接收地址一一对应的存储在预设的配置文件中,所述待转消息还用于所述消息转发方基于所述第二消息参与方的标识从预设的配置文件中查找所述第二消息参与方的接收地址,并依据所述第二消息参与方的接收地址将所述消息主体以发布订阅模式发送到所述第二消息参与方。
本发明提供的消息发送装置,解决了在隐私计算场景中需要应对一个发送方发送给指定某几个订阅者的场景时,采用基本的发布订阅模式所存在的消息泄露风险的技术问题。与现有技术相比,本发明实施例提供的消息发送装置的有益效果与上述实施例一提供的消息发送方法的有益效果相同,且该消息发送装置中的其他技术特征与上述实施例一、二、三、四或五提供的消息发送装置公开的特征相同,在此不做赘述。
实施例八
本发明实施例提供一种消息接收装置,所述消息接收装置应用于隐私计算场景中的多个消息参与方中的任意需要接收订阅消息的第二消息参与方,所述隐私计算场景中还包括至少一个消息转发方,所述消息接收装置包括:
启动模块,用于启动固定的本端接收端口,所述本端接收端口设有固定的端口号;
第二接收模块,用于基于所述端口号接收消息转发方以发布订阅模式向所述本端接收端口发布的消息主体;
其中,所述消息主体是所述消息转发方从待转消息中提取出后,按照接收地址向所述本端接收端口发布的消息主体;
所述待转消息是第一消息参与方以发布订阅模式向所述消息转发方发布的消息,且所述待转消息仅能被所述消息转发方订阅;
所述待转消息还包括消息主题,所述接收地址是所述消息转发方基于解析所述消息主题得到的所述第二消息参与方的标识在预设的配置文件中查询得到的,所述接收地址中包含所述端口号。
本发明提供的消息接收装置,解决了在隐私计算场景中需要应对一个发送方发送给指定某几个订阅者的场景时,采用基本的发布订阅模式所存在的消息泄露风险的技术问题。与现有技术相比,本发明实施例提供的消息接收装置的有益效果与上述实施例一提供的消息发送方法的有益效果相同,且该消息接收装置中的其他技术特征与上述实施例一、二、三、四或五提供的消息发送方法公开的特征相同,在此不做赘述。
实施例九
本发明实施例提供一种消息发送***,包括包括消息发送装置、消息转发装置和消息接收装置,所述消息转发装置部署于隐私计算场景中的消息转发方,所述消息发送装置部署于所述隐私计算场景中多个消息参与方中的任意需要以发布订阅模式发布消息的第一消息参与方,所述消息接收装置部署于所述隐私计算场景中多个消息参与方中的任意需要接收订阅消息的第二消息参与方;
所述消息发送装置用于将所述第一参与方的待转消息以发布订阅模式发布给所述消息转发装置,其中,所述待转消息仅被所述消息转发方通过所述消息转发装置订阅;
所述消息转发装置用于接收所述待转消息,并提取所述待转消息中的消息主题和消息主体,对所述消息主题进行解析得到第二消息参与方的标识;以及用于基于所述第二消息参与方的标识从预设的配置文件中查找获取所述第二消息参与方的接收地址,并按照所述接收地址以发布订阅模式向所述第二消息参与方的所述消息接收装置发布所述消息主体;
所述消息接收装置用于接收所述消息主体。
进一步地,在一实施方式中,所述消息发送装置还用于获取待发送给第二消息参与方的消息主体和所述第二消息参与方的标识,将所述第二消息参与方的标识封装在消息主题中,将所述消息主题和所述消息主体打包得到所述待转消息;
进一步地,在一实施方式中,所述消息接收装置还用于启动固定的本端接收端口,所述本端接收端口设有固定的端口号,基于所述端口号接收消息转发装置以发布订阅模式向所述本端接收端口发布的所述消息主体;
所述消息转发装置还用于在查找到所述接收地址后,按照所述接收地址中包含的所述端口号向所述本端接收端口发布所述消息主体。
进一步地,在一实施方式中,所述消息发送装置还用于采用所述第一消息参与方的第一私钥对明文的消息主体进行加密,将加密的所述消息主体与所述消息主题打包得到所述待转消息;
所述消息转发装置还用于接收所述待转消息,并提取所述待转消息中的所述消息主题和加密的所述消息主体,从所述配置文件中查找与所述第一私钥对应的第一公钥,并采用所述第一公钥对加密的所述消息主体进行解密,得到明文的所述消息主体;
所述所述消息转发装置还用于按照所述接收地址以发布订阅模式向所述第二消息参与方的所述消息接收装置发布明文的所述消息主体。
进一步地,在一实施方式中,所述消息转发装置还用于:
检测所述消息主题是否符合预设的消息主题规范;
若符合所述消息主题规范,则执行所述对所述消息主题进行解析得到第二消息参与方的标识的操作;
若不符合所述消息主题规范,则向所述第一消息参与方返回报错信息。
进一步地,在一实施方式中,所述消息转发装置还用于:
在所述配置文件中查找与所述第二消息参与方的标识对应的所述第二消息参与方的第二公钥;
将明文的所述消息主体采用所述第二公钥进行加密,并按照所述接收地址以发布订阅模式向所述第二消息参与方的所述消息接收装置发布加密的所述消息主体;
所述消息接收装置还用于接收加密的所述消息主体,采用所述第二公钥对应的第二私钥解密得到明文的所述消息主体。
进一步地,在一实施方式中,所述消息转发装置还用于:
开启监听线程监听所述配置文件的更新状态;
在基于所述监听线程监听到的最新的配置文件中查找与所述第二消息参与方的标识对应的所述第二消息参与方的接收地址。
进一步地,在一实施方式中,所述消息转发装置还用于:
启动固定的本端接收端口;
监听所述本端接收端口,以接收第一消息参与方的所述消息发送装置向所述本端接收端口发布的待转消息。
进一步地,在一实施方式中,当有多个所述消息转发方时,多个所述消息转发方的IP地址共同绑定一个转发方域名,所述消息转发装置还用于接收第一消息参与方的所述消息发送装置向所述转发方域名发布的待转消息。
其中,本发明实施例中,与上述实施例一、二、三、四或五相同或相应的内容,请参考上文介绍,后续不再赘述。
本发明提供的消息发送***,解决了在隐私计算场景中需要应对一个发送方发送给指定某几个订阅者的场景时,采用基本的发布订阅模式所存在的消息泄露风险的技术问题。与现有技术相比,本发明实施例提供的消息发送***的有益效果与上述实施例一提供的消息发送方法的有益效果相同,且该消息发送***中的其他技术特征与上述实施例一、二、三、四或五提供的消息发送方法公开的特征相同,在此不做赘述。
实施例十
本发明实施例提供一种电子设备,电子设备包括:至少一个处理器;以及,与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行上述实施例一中的消息发送方法。
下面参考图2,其示出了适于用来实现本公开实施例的电子设备的结构示意图。本公开实施例中的电子设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图2示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图2所示,电子设备可以包括处理装置(例如中央处理器、图形处理器等),其可以根据存储在只读存储器(ROM)中的程序或者从存储装置加载到随机访问存储器(RAM)中的程序而执行各种适当的动作和处理。在RAM中,还存储有电子设备操作所需的各种程序和数据。处理装置、ROM以及RAM通过总线彼此相连。输入/输出(I/O)接口也连接至总线。
通常,以下***可以连接至I/O接口:包括例如触摸屏、触摸板、键盘、鼠标、图像传感器、麦克风、加速度计、陀螺仪等的输入装置;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置;包括例如磁带、硬盘等的存储装置;以及通信装置。通信装置可以允许电子设备与其他设备进行无线或有线通信以交换数据。虽然图中示出了具有各种***的电子设备,但是应理解的是,并不要求实施或具备所有示出的***。可以替代地实施或具备更多或更少的***。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置从网络上被下载和安装,或者从存储装置被安装,或者从ROM被安装。在该计算机程序被处理装置执行时,执行本公开实施例的方法中限定的上述功能。
本发明提供的电子设备,采用上述实施例一、二、三、四或五中的消息发送方法,解决了在隐私计算场景中需要应对一个发送方发送给指定某几个订阅者的场景时,采用基本的发布订阅模式所存在的消息泄露风险的技术问题。
与现有技术相比,本发明实施例提供的电子设备的有益效果与上述实施例一提供的消息发送方法的有益效果相同,且该电子设备中的其他技术特征与上述实施例一、二、三、四或五提供的消息发送方法公开的特征相同,在此不做赘述。
应当理解,本公开的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式的描述中,具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
实施例十一
本实施例提供一种计算机可读存储介质,具有存储在其上的计算机可读程序指令,计算机可读程序指令用于执行上述实施例一中的消息发送的方法。
本发明实施例提供的计算机可读存储介质例如可以是U盘,但不限于电、磁、光、电磁、红外线、或半导体的***、***或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、***或者器件使用或者与其结合使用。计算机可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
上述计算机可读存储介质可以是电子设备中所包含的;也可以是单独存在,而未装配入电子设备中。
上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被电子设备执行时,使得电子设备:接收第一消息参与方发布的待转消息,并提取所述待转消息中的消息主题和消息主体,其中,所述待转消息是所述第一消息参与方以发布订阅模式发布的消息,且所述待转消息仅被所述消息转发方订阅;对所述消息主题进行解析得到第二消息参与方的标识;基于所述第二消息参与方的标识从预设的配置文件中查找获取所述第二消息参与方的接收地址;按照所述接收地址以发布订阅模式向所述第二消息参与方发布所述消息主体。
或者,上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被电子设备执行时,使得该电子设备:获取待发送给第二消息参与方的消息主体和所述第二消息参与方的标识;将所述第二消息参与方的标识封装在消息主题中,将所述消息主题和所述消息主体打包得到待转消息;将所述待转消息以发布订阅模式发布给消息转发方,其中,所述待转消息仅被所述消息转发方订阅。
或者,上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程度被电子设备执行时,使得该电子设备:启动固定的本端接收端口,所述本端接收端口设有固定的端口号;基于所述端口号接收消息转发方以发布订阅模式向所述本端接收端口发布的消息主体。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本发明各种实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,模块的名称在某种情况下并不构成对该单元本身的限定。
本发明提供的计算机可读存储介质,存储有用于执行上述消息发送方法的计算机可读程序指令,解决了在隐私计算场景中需要应对一个发送方发送给指定某几个订阅者的场景时,采用基本的发布订阅模式所存在的消息泄露风险的技术问题。与现有技术相比,本发明实施例提供的计算机可读存储介质的有益效果与上述实施例一、二、三、四或五提供的消息发送方法的有益效果相同,在此不做赘述。
本发明还提供一种产品,所述产品为计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述的消息发送方法的步骤。
本发明提供的计算机程序产品解决了在隐私计算场景中需要应对一个发送方发送给指定某几个订阅者的场景时,采用基本的发布订阅模式所存在的消息泄露风险的技术问题。与现有技术相比,本发明实施例提供的计算机程序产品的有益效果与上述实施例一、实施例二或实施例三提供的消息发送方法的有益效果相同,在此不做赘述。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利处理范围内。

Claims (13)

1.一种消息发送方法,其特征在于,所述消息发送方法应用于隐私计算场景中的消息转发方,所述隐私计算场景中还包括多个消息参与方,所述消息发送方法包括:
接收第一消息参与方发布的待转消息,并提取所述待转消息中的消息主题和消息主体,其中,所述待转消息是所述第一消息参与方以发布订阅模式发布的消息,且所述待转消息仅被所述消息转发方订阅;
对所述消息主题进行解析得到第二消息参与方的标识;
基于所述第二消息参与方的标识从预设的配置文件中查找获取所述第二消息参与方的接收地址;
按照所述接收地址以发布订阅模式向所述第二消息参与方发布所述消息主体。
2.如权利要求1所述的消息发送方法,其特征在于,所述接收第一消息参与方发布的待转消息,并提取所述待转消息中的消息主题和消息主体的步骤包括:
接收第一消息参与方发布的待转消息,并提取所述待转消息中的消息主题和加密的消息主体,加密的所述消息主体是所述第一消息参与方采用所述第一消息参与方的第一私钥对明文的所述消息主体加密得到的;
从所述配置文件中查找与所述第一私钥对应的第一公钥,并采用所述第一公钥对加密的所述消息主体进行解密,得到明文的所述消息主体;
所述按照所述接收地址以发布订阅模式向所述第二消息参与方发布所述消息主体的步骤包括:
按照所述接收地址以发布订阅模式向所述第二消息参与方发布明文的所述消息主体。
3.如权利要求1所述的消息发送方法,其特征在于,所述对所述消息主题进行解析得到第二消息参与方的标识的步骤之前,还包括:
检测所述消息主题是否符合预设的消息主题规范;
若符合所述消息主题规范,则执行所述对所述消息主题进行解析得到第二消息参与方的标识的步骤;
若不符合所述消息主题规范,则向所述第一消息参与方返回报错信息。
4.如权利要求1所述的消息发送方法,其特征在于,所述对所述消息主题进行解析得到第二消息参与方的标识的步骤之后,还包括:
在所述配置文件中查找与所述第二消息参与方的标识对应的所述第二消息参与方的第二公钥;
所述按照所述接收地址以发布订阅模式向所述第二消息参与方发布所述消息主体的步骤包括:
将明文的所述消息主体采用所述第二公钥进行加密,并按照所述接收地址以发布订阅模式向所述第二消息参与方发布加密的所述消息主体,以供所述第二消息参与方采用所述第二公钥对应的第二私钥解密得到明文的所述消息主体。
5.如权利要求1所述的消息发送方法,其特征在于,所述消息发送方法还包括:
开启监听线程监听所述配置文件的更新状态;
所述基于所述第二消息参与方的标识从预设的配置文件中查找获取所述第二消息参与方的接收地址的步骤包括:
在基于所述监听线程监听到的最新的配置文件中查找与所述第二消息参与方的标识对应的所述第二消息参与方的接收地址。
6.如权利要求1至5任一项所述的消息发送方法,其特征在于,所述消息发送方法还包括:
启动固定的本端接收端口;
所述接收第一消息参与方发布的待转消息的步骤包括:
监听所述本端接收端口,以接收第一消息参与方向所述本端接收端口发布的待转消息。
7.如权利要求1至5任一项所述的消息发送方法,其特征在于,当有多个所述消息转发方时,多个所述消息转发方的IP地址共同绑定一个转发方域名,所述接收第一消息参与方发布的待转消息的步骤包括:
接收第一消息参与方向所述转发方域名发布的待转消息。
8.一种消息发送方法,其特征在于,所述消息发送方法应用于隐私计算场景中的多个消息参与方中的任意需要以发布订阅模式发布消息的第一消息参与方,所述隐私计算场景中还包括至少一个消息转发方,所述消息发送方法包括:
获取待发送给第二消息参与方的消息主体和所述第二消息参与方的标识;
将所述第二消息参与方的标识封装在消息主题中,将所述消息主题和所述消息主体打包得到待转消息;
将所述待转消息以发布订阅模式发布给消息转发方,其中,所述待转消息仅被所述消息转发方订阅;
其中,所述待转消息用于所述消息转发方提取所述消息主体和所述消息主题,以及解析获取所述消息主题中的所述第二消息参与方的标识;
所述第二消息参与方的标识与所述第二消息参与方的接收地址一一对应的存储在预设的配置文件中,所述待转消息还用于所述消息转发方基于所述第二消息参与方的标识从预设的配置文件中查找所述第二消息参与方的接收地址,并依据所述第二消息参与方的接收地址将所述消息主体以发布订阅模式发送到所述第二消息参与方。
9.一种消息发送方法,其特征在于,所述消息发送方法应用于隐私计算场景中的多个消息参与方中的任意需要接收订阅消息的第二消息参与方,所述隐私计算场景中还包括至少一个消息转发方,所述消息发送方法包括:
启动固定的本端接收端口,所述本端接收端口设有固定的端口号;
基于所述端口号接收消息转发方以发布订阅模式向所述本端接收端口发布的消息主体;
其中,所述消息主体是所述消息转发方从待转消息中提取出后,按照接收地址向所述本端接收端口发布的消息主体;
所述待转消息是第一消息参与方以发布订阅模式向所述消息转发方发布的消息,且所述待转消息仅能被所述消息转发方订阅;
所述待转消息还包括消息主题,所述接收地址是所述消息转发方基于解析所述消息主题得到的所述第二消息参与方的标识在预设的配置文件中查询得到的,所述接收地址中包含所述端口号。
10.一种消息发送***,包括消息发送装置、消息转发装置和消息接收装置,所述消息转发装置部署于隐私计算场景中的消息转发方,所述消息发送装置部署于所述隐私计算场景中多个消息参与方中的任意需要以发布订阅模式发布消息的第一消息参与方,所述消息接收装置部署于所述隐私计算场景中多个消息参与方中的任意需要接收订阅消息的第二消息参与方;
所述消息发送装置用于将所述第一参与方的待转消息以发布订阅模式发布给所述消息转发装置,其中,所述待转消息仅被所述消息转发方通过所述消息转发装置订阅;
所述消息转发装置用于接收所述待转消息,并提取所述待转消息中的消息主题和消息主体,对所述消息主题进行解析得到第二消息参与方的标识;以及用于基于所述第二消息参与方的标识从预设的配置文件中查找获取所述第二消息参与方的接收地址,并按照所述接收地址以发布订阅模式向所述第二消息参与方的所述消息接收装置发布所述消息主体;
所述消息接收装置用于接收所述消息主体。
11.一种电子设备,其特征在于,所述电子设备包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1至9中任一项所述的消息发送方法的步骤。
12.一种可读存储介质,其特征在于,所述可读存储介质上存储有实现消息发送方法的程序,所述实现消息发送方法的程序被处理器执行以实现如权利要求1至9中任一项所述的消息发送方法的步骤。
13.一种产品,所述产品为计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至9中任一项所述消息发送方法的步骤。
CN202111224787.6A 2021-10-21 2021-10-21 消息发送方法、***、电子设备、可读存储介质及产品 Pending CN114124454A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111224787.6A CN114124454A (zh) 2021-10-21 2021-10-21 消息发送方法、***、电子设备、可读存储介质及产品

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111224787.6A CN114124454A (zh) 2021-10-21 2021-10-21 消息发送方法、***、电子设备、可读存储介质及产品

Publications (1)

Publication Number Publication Date
CN114124454A true CN114124454A (zh) 2022-03-01

Family

ID=80376136

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111224787.6A Pending CN114124454A (zh) 2021-10-21 2021-10-21 消息发送方法、***、电子设备、可读存储介质及产品

Country Status (1)

Country Link
CN (1) CN114124454A (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103534988A (zh) * 2013-06-03 2014-01-22 华为技术有限公司 消息发布与订阅的方法及装置
CN109981641A (zh) * 2019-03-26 2019-07-05 北京邮电大学 一种基于区块链技术的安全发布订阅***及发布订阅方法
CN111095256A (zh) * 2019-04-26 2020-05-01 阿里巴巴集团控股有限公司 在可信执行环境中安全地执行智能合约操作
CN112346833A (zh) * 2020-09-30 2021-02-09 深圳致星科技有限公司 用于隐私计算的任务处理方法、处理器及异构处理***
CN112953940A (zh) * 2021-02-20 2021-06-11 同济大学 基于混合加密算法和关键属性过滤的安全发布订阅***及方法
US20210266160A1 (en) * 2020-02-21 2021-08-26 International Business Machines Corporation Publish/subscribe messaging

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103534988A (zh) * 2013-06-03 2014-01-22 华为技术有限公司 消息发布与订阅的方法及装置
CN109981641A (zh) * 2019-03-26 2019-07-05 北京邮电大学 一种基于区块链技术的安全发布订阅***及发布订阅方法
CN111095256A (zh) * 2019-04-26 2020-05-01 阿里巴巴集团控股有限公司 在可信执行环境中安全地执行智能合约操作
US20210266160A1 (en) * 2020-02-21 2021-08-26 International Business Machines Corporation Publish/subscribe messaging
CN112346833A (zh) * 2020-09-30 2021-02-09 深圳致星科技有限公司 用于隐私计算的任务处理方法、处理器及异构处理***
CN112953940A (zh) * 2021-02-20 2021-06-11 同济大学 基于混合加密算法和关键属性过滤的安全发布订阅***及方法

Similar Documents

Publication Publication Date Title
CN110266480B (zh) 数据传输方法、装置及存储介质
CN110311983B (zh) 服务请求的处理方法、装置、***、电子设备及存储介质
JP5870471B2 (ja) 端末間でソフトウェアを共有する方法、装置、及びシステム
US11824854B2 (en) Communication system and computer readable storage medium
CN112866385B (zh) 接口调用方法、装置、电子设备和存储介质
CN113434905B (zh) 数据传输方法、装置、计算机设备及存储介质
CN111241559A (zh) 训练模型保护方法、装置、***、设备和计算机存储介质
CN113254103A (zh) 应用程序的功能实现方法、装置及存储介质
CN112261651B (zh) 终端的控制方法、装置、终端和存储介质
CN111314351A (zh) 反爬虫的数据处理方法、装置、电子设备及存储介质
CN114124454A (zh) 消息发送方法、***、电子设备、可读存储介质及产品
CN113923167B (zh) 联邦学习中数据传输优化方法
CN113900976B (zh) 联邦学习中dma连接建立方法
CN112257039B (zh) 身份属性添加方法、装置和电子设备
CN111624983B (zh) 同步连接方法及车辆远程诊断***
CN113965360A (zh) 智能设备云服务器接入方法、装置、介质、设备和***
CN111752625A (zh) 用于接口mock的方法和装置
CN109962962B (zh) 一种套接字socket连接的方法及设备
CN116226888B (zh) 基于隐私保护的电力数据交互加密方法、***与设备
CN116578427B (zh) 资源设备调度方法、电子设备和计算机可读介质
CN113472785B (zh) 数据处理方法、装置、电子设备及可读存储介质
CN111291199B (zh) 信息查询方法和装置
CN111314320B (zh) 基于http的通信方法、终端、服务器和***
CN114398098B (zh) 应用脚本执行方法、装置、电子设备和计算机可读介质
US20210344557A1 (en) Systems, methods, and apparatuses for network management

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination