CN114503507A - 安全的发布-订阅通信方法和设备 - Google Patents

安全的发布-订阅通信方法和设备 Download PDF

Info

Publication number
CN114503507A
CN114503507A CN202080069408.8A CN202080069408A CN114503507A CN 114503507 A CN114503507 A CN 114503507A CN 202080069408 A CN202080069408 A CN 202080069408A CN 114503507 A CN114503507 A CN 114503507A
Authority
CN
China
Prior art keywords
data
publisher
subscriber
attributes
devices
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
CN202080069408.8A
Other languages
English (en)
Inventor
D·巴斯托斯
F·艾尔-莫萨
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.)
British Telecommunications PLC
Original Assignee
British Telecommunications PLC
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 British Telecommunications PLC filed Critical British Telecommunications PLC
Publication of CN114503507A publication Critical patent/CN114503507A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/55Push-based network 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/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
    • 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
    • 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/0471Network 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 applying encryption by an intermediary, e.g. receiving clear information at the intermediary and encrypting the received information at the intermediary before forwarding
    • 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/0478Network 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 applying multiple layers of encryption, e.g. nested tunnels or encrypting the content with a first key and then with at least a second key
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • H04L63/0838Network architectures or network communication protocols for network security for authentication of entities using passwords using one-time-passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/105Multiple levels of security
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/126Applying verification of the received information the source of the received data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/562Brokering proxy services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3226Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
    • H04L9/3228One-time or temporary data, i.e. information which is sent for every authentication or authorization, e.g. one-time-password, one-time-token or one-time-key
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/102Entity profiles

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Algebra (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

提供了对发布‑订阅协议的改进,包括在网络中传送数据的方法,所述网络包括发布者设备、代理和订阅者设备的,所述方法包括:发布者设备中的一个:i‑a.从所述代理接收公钥;i‑b.基于要发布给所述代理的数据的一个或更多个属性,确定所述数据的敏感度级别是否低;以及ii.在完成步骤i‑a和i‑b两者之后,向所述代理发布所述数据,其中:当步骤i‑b得到数据的敏感度级别低的确定时,步骤ii包括将数据未加密地发送到代理;以及当步骤i‑b得到数据的敏感度级别不低的确定时,步骤ii包括将数据加密,然后将得到的加密数据发送到代理,其中,将数据加密的步骤使用公钥。

Description

安全的发布-订阅通信方法和设备
技术领域
本公开涉及对发行-订阅协议的改进。
更具体地,多个方面涉及在包括一个或更多个发布者设备、代理以及一个或更多个订阅者设备的通信网络中传送数据的计算机实现的方法。另外的方面涉及被配置成执行这样的方法的发布者设备和代理、包括这样的发布者设备和这样的代理的通信网络、包括指令的计算机程序、其上存储有这样的计算机程序的计算机可读数据载体以及承载这样的计算机程序的数据载体信号,其中所述指令在由计算机执行时使计算机执行这样的方法。
背景技术
随着机器到机器(M2M)通信的增加和物联网(IoT)的扩展,需要适应于这些环境的约束的新的通信协议。这样的协议应该易于实现,具有低带宽要求和小的代码体积(codefootprint)。
然而,随着IoT的增长,安全性是非常关注的问题。大量数据由设备所收集,这些设备由于其网络连接而易受黑客攻击。在数据敏感的情况下,应保护数据。还应当保护有源设备免受恶意软件的侵害,所述恶意软件可被用于出于不法的目的而劫持设备的操作。IoT设备本身的安全特征由于不同的用途和不同的制造商而变化很大。IoT设备之间的通信通常是不受限制的,因为从源设备发送到目标设备的业务将根据所使用的任何协议由网络如实地传送,除非某些侵入性安全服务介入以过滤或阻止通信。由于IoT设备被大量地添加到网络并且具有可能不同的特性,所以保持安全服务是最新的具有挑战性。
一类的IoT通信协议利用发布-订阅机制,其中,中间设备或代理用于对从发布者设备接收的消息进行排队,以便随后传输到适当的订阅者设备。这类协议包括高级消息排队协议(AMQP)和消息排队遥测传输(MQTT)。MQTT是发布-订阅消息传递协议,其允许订阅者客户端向代理服务器注册以接收与发布者客户端发布的特定主题相关的发布。(客户端设备可以是发布者和订阅者中的一者或两者。)MQTT协议需要诸如传输控制协议/因特网协议(TCP/IP)的底层传输,其提供从客户端到服务器和从服务器到客户端的有序的无损字节流。作为传输协议,MQTT仅涉及消息传输,并且实施者负责提供适当的安全特征。诸如用户数据报协议(UDP)的无连接网络传输本身是不合适的,因为它们可能丢失数据或使数据重排序。
在MQTT网络中,客户端(发布者和/或订阅者)是建立到服务器(代理)的网络连接的设备。MQTT网络可以:
·发布其他客户端可能感兴趣的主题数据;
·订阅其对接收数据中的感兴趣的主题;
·取消订阅的主题;以及
·与服务器断开连接。
服务器(代理)是充当进行发布的客户端与已订阅的客户端之间的中间设备。所述服务器:
·接受来自客户端的网络连接;
·由客户接受发布;
·处理来自客户端的订阅和取消订阅请求;以及
·转发与客户订阅匹配的发布。
图1示意性地示出了包括根据诸如MQTT的发布-订阅协议工作的网络1100的典型IoT环境。网络1100包括代理服务器1110,代理服务器1110被配置为与网络1100内的多个客户端1121、1122、1123、1124和1125中的每一者通信。这些客户端设备中的每一个可以是发布者和/或订阅者。标记为T的箭头指示从发布者设备1121到代理1110再到订阅者设备1124和1125的示例性发布数据流(订阅者设备1124和1125订阅了向代理1110注册的温度主题)。标记为P的箭头指示从发布者设备1124到代理1110再到订阅者设备1124和1125的关于压力主题的用于发布的示例性发布数据流(订阅者设备1124和1125订阅了向代理1110注册的温度主题)。如果代理1110从不在可信网络1100内的外部客户端1221、1222接收到订阅请求,则默认拒绝该订阅请求。
图2示意性地示出了可以用作图1中所示的任何客户端设备或服务器设备的示例计算设备2000。计算设备2000包括在工作时可以连接到存储器2002和收发器2003中的每一者的处理器2001。
需要实现发布-订阅机制以分发在IoT网络中生成的数据的方法,其是安全且资源高效的。
发明内容
根据第一方面,提供了一种用于通信网络中的业务控制的计算机实现方法,所述通信网络包括一个或更多个发布者设备、代理以及一个或更多个订阅者设备,所述方法包括:由所述代理:
i-a.从所述发布者设备之一接收发布请求,所述发布请求包括具有一个或更多个数据属性的数据,所述数据属性包括所述数据所涉及的主题,所述主题是由所述订阅者设备之一向所述代理注册的订阅的专题;
i-b.将一个或更多个业务控制规则应用于:
发布者设备之一的简档,以及
所述数据属性中的一个或更多个;
i-c.响应于步骤i-a和i-b两者的完成,确定对于该发布请求是否满足所应用的业务规则;然后
ii.仅响应于在步骤i-c中确定满足所述一个或更多个业务控制规则,向所述订阅者设备中的所述一个发送数据。
该方法还可包括:仅响应于在步骤i-c中确定不满足一个或更多个业务控制规则,代理向发布者设备之一发送发布拒绝。
所述一个或更多个数据属性还可以包括非主题属性,在步骤i-b中将所述一个或更多个业务控制规则应用于所述数据属性中的一个或更多个数据属性是应用于至少所述非主题属性,所述非主题属性可选地是所述数据所源自的应用、操作系统(OS)或内核,或其版本号。
该方法还可以包括:在步骤i-b之前,代理生成并存储发布者设备之一的简档。
生成发布者设备之一的简档可以包括监视由发布者设备之一在初始化时段期间做出的发布,并由此确定由发布者设备之一发布的数据的一个或更多个典型属性。
步骤i-b还可以包括代理将一个或更多个业务控制规则应用于订阅者设备之一的简档。
该方法还可以包括:在步骤i-c之前,代理生成并存储订阅者设备之一的简档。
该方法可进一步包括:由所述代理:
iii-a.向所述一个或更多个发布者设备和所述一个或更多个订阅者设备发送公钥,其中:
在步骤i-a的发布请求中接收到的数据包括加密数据,所述加密数据已经使用包括使用公钥的方法进行了加密;
iii-b.基于所述数据属性中的一个或更多个,确定所述数据的敏感度级别是否高,其中:
当步骤iii-b得到所述数据的敏感度级别不高的确定时,步骤ii包括仅响应于在步骤i-c中确定满足所述一个或更多个业务控制规则,将所述加密数据发送到所述订阅者设备之一;以及
当步骤iii-b得到数据的敏感度级别高的确定时,步骤ii包括对加密的数据进行加密以产生双重加密的数据,然后仅响应于在步骤i-c中确定满足一个或更多个业务控制规则,将双重加密的数据发送到订阅者设备之一。
步骤iii-b的确定所基于的一个或更多个数据属性可以包括以下之一或两者:
主题;以及
数据所源自的应用。
步骤iii-b可以包括将数据分类为具有从“高”和“不高”中选择的敏感度级别。所述分类可以可选地包括:
对数据分配敏感度分数;然后
当所述敏感度分数高于预定的高敏感度阈值时,将所述数据分类为具有“高”的敏感度级别;以及
否则,将数据分类为具有“不高”的敏感度级别。
对加密数据进行加密的方法可以根据高级加密标准(AES)法来执行。
加密步骤可以根据椭圆曲线密码学(ECC)法来执行。
该方法还可以包括:由所述代理
注册所述订阅者设备之一的订阅,所述注册的步骤包括根据一次性密码(OTP)协议使计数器或定时器与所述订阅者设备之一同步;
随后:
从所述订阅者设备中的一者接收用于将所述订阅扩展到未包含在所述通信网络中的外部设备的OTP请求,其中,所述通信网络是受信通信网络;
响应于此,根据所述协议生成代理OTP;
响应于此,将所述代理OTP发送到所述订阅者设备中的所述一者;
随后:
从外部设备接收订阅请求,所述订阅请求包括外部设备OTP;
响应于此,确认所述代理OTP与所述外部设备OTP匹配;以及
响应于此,将外部设备的外部订阅注册到与该主题相关的发布。
步骤ii还可以包括仅响应于在步骤i-c中确定满足一个或更多个业务控制规则才将数据发送到外部设备。
该方法还可以包括代理在将数据发送到外部设备之前将该数据加密。
OTP请求可以包括外部设备的一个或更多个属性。订阅请求可以包括外部设备的一个或更多个属性。该方法还可以包括代理确认在OTP请求中接收到的外部设备的一个或更多个属性与在订阅请求中接收到的外部设备的一个或更多个属性匹配,其中,注册外部设备的订阅还是响应于该确认的。
OTP协议可以使用基于散列的消息认证码(基于HMAC的OTP,HOTP)算法或基于时间的OTP(TOTP)算法。
根据第二方面,提供了一种被配置为执行第一方面的方法的代理。
根据第三方面,提供了一种通信网络,该通信网络包括第二方面的代理、一个或更多个发布者设备以及一个或更多个订阅者设备。
通信网络可以被配置为根据消息排队遥测传输(MQTT)协议来工作。
根据第四方面,提供了一种包括指令的计算机程序,当所述程序由计算机执行时,所述指令使所述计算机执行第一方面的方法。
根据第五方面,提供了一种存储有第四方面的计算机程序的计算机可读数据载体。
根据第六方面,提供了一种承载第四方面的计算机程序的数据载波信号。
根据第七方面,提供了一种在通信网络中传送数据的计算机实现方法,所述通信网络包括一个或更多个发布者设备、代理以及一个或更多个订阅者设备,所述方法包括:由所述发布者设备之一:
i-a.从所述代理接收公钥;
i-b.基于要发布给所述代理的数据的一个或更多个属性,确定所述数据的敏感度级别是否低;以及
ii.在完成步骤i-a和i-b两者之后,向所述代理发布所述数据,其中:
当步骤i-b得到数据的敏感度级别低的确定时,步骤ii包括将数据未加密地发送到代理;以及
当步骤i-b得到数据的敏感度级别不低的确定时,步骤ii包括对数据进行加密,然后将得到的加密数据发送到代理,其中,对数据进行加密的步骤包括使用公钥。
所述一个或更多个属性可以包括以下之一或两者:
数据涉及的主题;以及
数据所源自的应用。
步骤i-b可以包括将数据分类为具有从“低”和“不低”中选择的敏感度级别。所述分类可以可选地包括:
向数据分配敏感度分数;然后
当所述敏感度分数低于预定的低敏感度阈值时,将所述数据分类为具有“低”敏感度级别;以及
否则,将数据分类为具有“不低”的敏感度级别。
加密数据可以包括密文和散列签名。对数据进行加密的步骤可包括通过用密文对发布者设备之一的一个或更多个属性进行散列计算来生成散列签名,其中,发布者设备之一的所述一个或更多个属性构成代理可访问的发布者设备简档。
该方法还可以包括代理接收加密数据,并通过用密文对发布者设备简档进行散列计算来验证签名,并确认结果与在加密数据中接收到的签名匹配。
对数据进行加密的步骤可以根据基于属性的加密(ABE)法来执行。
根据第八方面,提供了一种在通信网络中传送数据的计算机实现方法,所述通信网络包括一个或更多个发布者设备、代理和一个或更多个订阅者设备,所述方法包括:由所述代理
iii-a.向所述一个或更多个发布者设备和所述一个或更多个订阅者设备发送公钥;
iii-b.将所述发布者设备之一注册为数据的发布者,使得所述发布者设备能够发布具有一个或更多个属性的数据,所述一个或更多个属性包括所述数据所涉及的主题;
iii-c.将所述订阅者设备之一注册为与所述主题相关的数据的订阅者;
iii-d.在步骤iii-a之后,从发布者设备之一接收包括与该主题相关的加密数据的发布请求,所述加密数据已经使用包括使用公钥的方法进行了加密;
iii-e.基于所述属性中的一个或更多个,确定数据的敏感度级别是否高;以及
iv.向所述订阅者设备中的所述一者发布所述加密数据,其中:
当步骤iii-e得到所述数据的敏感度级别不高的确定时,步骤iv包括将所述加密数据发送到所述订阅者设备中的所述一者;以及
当步骤iii-e得到数据的敏感度级别高的确定时,步骤iv包括对加密的数据进行加密以产生双重加密的数据,然后将双重加密的数据发送到订阅者设备之一。
步骤iii-e的确定所基于的一个或更多个属性可以包括以下之一或两者:
数据涉及的主题;以及
数据所源自的应用。
步骤iii-e可以包括将数据分类为具有从“高”和“不高”中选择的敏感度级别。所述分类可以可选地包括:
向数据分配敏感度分数;然后
当所述敏感度分数高于预定的高敏感度阈值时,将所述数据分类为具有“高”的敏感度级别;以及
否则,将数据分类为具有“不高”的敏感度级别。
对加密的数据进行加密的步骤可以根据高级加密标准(AES)法来执行。
根据第九方面,提供了第七方面的方法,其中,步骤i-b得到数据的敏感度级别不低的确定,所述方法还包括第八方面的方法,其中,在步骤iii-d中由代理接收到的加密数据是在步骤ii中由发布者设备发送的加密数据。
在第七方面至第九方面的任一方面中,进行加密的步骤可根据椭圆曲线密码学(ECC)方法来执行。
第八方面的方法还可以包括:由所述代理
将一个或更多个业务控制规则应用于:
发布者设备之一的简档,以及
属性中的一个或更多个属性;然后
确定所述发布请求是否满足所应用的业务规则;
其中,步骤iv仅响应于确定满足所述一个或更多个业务控制规则才被执行。
在第八方面的方法中,步骤iii-c可以包括代理根据一次性密码(OTP)协议使计数器或定时器与订阅者设备之一同步。该方法还可以包括:随后由所述代理
从所述订阅者设备中的所述一者接收用于将所述订阅扩展到未包括在所述通信网络中的外部设备的OTP请求,所述通信网络为受信通信网络;
响应于此,根据所述协议生成代理OTP;
响应于此,将所述代理OTP发送到所述订阅者设备中的所述一者;
随后:
从外部设备接收订阅请求,所述订阅请求包括外部设备OTP;
响应于此,确认所述代理OTP与所述外部设备OTP匹配;以及
响应于此,将外部设备的订阅注册到与该主题相关的发布。
步骤iv还可以包括将加密数据发送到外部设备。
无论步骤iii-e是否得到数据的敏感度级别高的确定,步骤iv都可以包括对加密数据进行加密以产生双重加密数据,然后将双重加密数据发送到外部设备。
OTP请求可以包括外部设备的一个或更多个属性。订阅请求可以包括外部设备的一个或更多个属性。该方法还可以包括代理确认在OTP请求中接收到的外部设备的一个或更多个属性与在订阅请求中接收到的外部设备的一个或更多个属性匹配,其中,注册外部设备的订阅还是响应于该确认的。
OTP协议可以使用基于散列的消息认证码(基于HMAC的OTP,HOTP)算法或基于时间的OTP(TOTP)算法。
根据第十方面,提供了一种被配置为执行第七方面的方法的发布者设备。
根据第十一方面,提供了一种被配置为执行第八方面的方法的代理。
根据第十二方面,提供了一种通信网络,该通信网络包括第十方面的发布者设备、第十一方面的代理以及一个或更多个订阅者设备。
通信网络可以被配置为根据消息排队遥测传输(MQTT)协议来工作。
根据第十三方面,提供了一种包括指令的计算机程序,当所述程序由计算机执行时,所述指令使所述计算机执行第七方面或第八方面中的任一方面的方法。
根据第十四方面,提供了一种存储有第十三方面的计算机程序的计算机可读数据载体。
根据第十五方面,提供了一种承载第十三方面的计算机程序的数据载波信号。
根据第十六方面,提供了一种保护来自受信通信网络的数据通信的计算机实现方法,该受信通信网络包括一个或更多个发布者设备、代理以及一个或更多个订阅者设备,该方法包括:由所述一个或更多个订阅者设备之一:
向所述代理注册对与特定主题相关的发布的订阅,所述注册步骤包括根据一次性密码(OTP)协议使计数器或定时器与所述代理同步;
随后:
向所述代理请求OTP以将所述订阅扩展到未包括在所述受信通信网络中的外部设备;
根据所述协议生成订阅者OTP;
从代理接收代理OTP;
确认所述代理OTP与所述订阅者OTP匹配;以及
响应于此,将代理OTP发送到外部设备。
该方法还可以包括订阅者设备之一经由代理从一个或更多个发布设备之一接收发布。
请求OTP可以包括向代理提供外部设备的一个或更多个属性。
代理OTP可以通过安全传输层安全(TLS)或安全套接字层(SSL)信道或因特网协议安全(IPsec)连接被发送到外部设备。
根据第十七方面,提供了一种保护来自受信通信网络的数据通信的计算机实现方法,所述受信通信网络包括一个或更多个发布者设备、代理以及一个或更多个订阅者设备,所述方法包括:由所述代理:
将所述一个或更多个订阅者设备之一的订阅注册到与主题相关的发布,所述注册步骤包括根据一次性密码(OTP)协议将计数器或定时器与所述订阅者设备之一同步;
随后:
从所述订阅者设备中的所述一者接收OTP请求以将所述订阅扩展到未包括在受信通信网络中的外部设备的OTP请求;
响应于此,根据所述协议生成代理OTP;
响应于此,将所述代理OTP发送到所述订阅者设备中的所述一者;
随后:
从外部设备接收订阅请求,所述订阅请求包括外部设备OTP;
响应于此,确认所述代理OTP与所述外部设备OTP匹配;以及
响应于此,将外部设备的订阅注册到与该主题相关的发布。
该方法还可以包括:由所述代理
从所述一个或更多个发布者设备之一接收发布请求,所述发布请求针对与所述主题相关的发布;以及
响应于此,将所述发布发送到所述订阅者设备和所述外部设备中的一者。
该方法还可以包括:在将发布请求中接收到的数据发送到外部设备之前,所述代理对所述数据进行加密。
OTP请求可以包括外部设备的一个或更多个属性。订阅请求可以包括外部设备的一个或更多个属性。该方法还可以包括:代理确认在OTP请求中接收到的外部设备的一个或更多个属性与在订阅请求中接收到的外部设备的一个或更多个属性匹配,其中,注册外部设备的订阅还是响应于该确认的。
OTP协议可以使用基于散列的消息认证码(基于HMAC的OTP,HOTP)算法或基于时间的OTP(TOTP)算法。
发布请求可以包括具有包含主题的一个或更多个数据属性的数据。该方法还可以包括:由所述代理
将一个或更多个业务控制规则应用于:
发布者设备之一的简档,以及
所述数据属性中的一个或更多个;然后
确定所述发布请求是否满足所应用的业务规则;
其中,仅响应于确定满足所述一个或更多个业务控制规则来执行向所述订阅者设备和所述外部设备中的一者发送所述出版物。
所述一个或更多个数据属性还可以包括非主题属性,所述一个或更多个业务控制规则对所述数据属性中的一个或更多个的应用是对至少所述非主题属性的应用,所述非主题属性可选地是所述数据所源自的应用、操作系统(OS)或内核,或其版本号。
该方法还可包括:由代理在应用一个或更多个业务控制规则之前生成并存储发布者设备之一的简档;其中,生成所述发布者设备之一的简档可选地包括监视由所述发布者设备之一在初始化时段期间做出的发布,并由此确定由所述发布者设备之一发布的数据的一个或更多个典型属性。
应用一个或更多个业务控制规则还可以包括:所述代理将一个或更多个业务控制规则应用于订阅者设备之一的简档和外部设备的简档。该方法可以可选地还包括:所述代理在应用一个或更多个业务控制规则之前,生成并存储订阅者设备之一的简档和外部设备的简档。
所述方法还可以包括:所述代理在接收到所述发布请求之前向所述一个或更多个发布者设备和所述一个或更多个订阅者设备发送公钥;
其中,发布请求包括加密的数据,所述加密的数据是使用一种包括使用该公共密钥的方法加密的;
所述方法还包括:所述代理基于所述加密数据的一个或更多个属性来确定所述加密数据的敏感度级别是否高;其中:
当确定步骤得到加密数据的敏感度级别不高的确定时,发送所述发布包括发送加密数据;以及
当确定步骤得到加密数据的敏感度级别高的确定时,发送所述发布包括对加密数据进行加密以产生双重加密数据,然后发送双重加密数据。
确定步骤所基于的一个或更多个属性可以包括以下各项中的一者或两者:
主题;以及
加密数据所源自的应用。
确定加密数据的敏感度级别是否高的步骤可以包括将加密数据分类为具有从“高”和“不高”中选择的敏感度级别。所述分类可以可选地包括:
向加密后的数据分配敏感度分数;则
当所述敏感度分数高于预定的高敏感度阈值时,将所述加密数据分类为具有“高”的敏感度级别;以及
否则,将加密数据分类为具有“不高”的敏感度级别。
对加密的数据进行加密的步骤可以根据高级加密标准(AES)法来执行。
进行加密的步骤可以根据椭圆曲线密码学(ECC)法来执行。
根据第十八方面,提供了一种被配置为执行第十六方面的方法的订阅者设备。
根据第十九方面,提供了一种被配置为执行第十七方面的方法的代理。
根据第二十方面,提供了一种通信网络,该通信网络包括第十八方面的订阅者设备、第十九方面的代理以及一个或更多个发布者设备。
通信网络可以被配置为根据消息排队遥测传输(MQTT)协议来工作。
根据第二十一方面,提供了一种包括指令的计算机程序,当所述程序由计算机执行时,所述指令使所述计算机执行第十六方面或第十七方面中的任一方面的方法。
根据第二十二方面,提供了一种存储有第二十一方面的计算机程序的计算机可读数据载体。
根据第二十三方面,提供了一种承载第二十一方面的计算机程序的数据载波信号。
附图说明
现在将参照附图通过示例来描述本公开的各方面。在附图中:
图1示意性地示出了典型的IoT环境;
图2示意性地图示了示例计算设备;
图3示出了利用基于属性的业务控制技术的示例消息序列;
图4示出了用于业务控制的示例计算机实现方法;
图5A和图5B示出了利用基于属性的数据安全方法的示例消息序列;
图6和图7示出了在通信网络中传送数据的示例计算机实现方法;
图8A、图8B和图8C示出了如何在发行-订阅网络中实现基于密文策略属性的加密(CP-ABE)的示例;
图9A至图9C示出了如何在发行-订阅网络中实现基于密钥策略属性的加密(KP-ABE)的示例;
图10A和图10B示出了构建信任链的示例消息流;
图11和图12示出了保护来自受信通信网络的数据通信的示例计算机实现方法;以及
图13A、图13B、图13C、图13D、图13E和图13F示出了实现这里描述的一些技术的示例消息流。
具体实施方式
呈现以下描述以使所属领域的技术人员能够制作和使用所述系统,并且在特定应用的上下文中提供所述描述。考虑到说明书和本文公开的实施方案的实践,对公开的实施方案的各种修改对于本领域技术人员将是显而易见的。说明书和实施方式仅是示例性的。
此外,在本申请已经以特定顺序列出了方法或过程的步骤的情况下,改变执行一些步骤的顺序是可能的,或者在某些情况下甚至是有利的,并且除非在权利要求中明确地陈述了这种顺序特异性,否则本文阐述的方法或过程权利要求的特定步骤不被解释为顺序特异性的。也就是说,除非另外指明,否则操作/步骤可以以任何顺序执行,并且实施方式可以包括比本文所公开的那些更多或更少的操作/步骤。进一步预期,在另一操作之前、同时或之后执行或执行特定操作/步骤是根据所描述的实施方式。
本文所述的方法可被编码为包含在计算机可读介质中的可执行指令,所述计算机可读介质包括但不限于非暂时性计算机可读存储部、存储设备和/或存储装置。当由处理器(或一个或更多个计算机、处理器和/或其它设备)执行这些指令时,这些指令使处理器(一个或更多个计算机、处理器和/或其它设备)执行本文所述方法的至少一部分。非暂时性计算机可读存储介质包括但不限于易失性存储器、非易失性存储器、磁和光存储设备,诸如磁盘驱动器、磁带、压缩盘(CD)、数字多功能盘(DVD)或能够存储代码和/或数据的其他介质。
在本文中提及处理器的情况下,应理解为是指可操作地彼此连接的单个处理器或多个处理器。类似地,在本文中提及存储器的情况下,应理解为是指可操作地彼此连接的单个存储器或多个存储器。
所述方法和过程还可以部分地或完全地实现在硬件模块或装置或固件中,使得当硬件模块或装置被激活时,它们执行相关联的方法和过程。可使用代码、数据和硬件模块或装置的组合来实施所述方法和过程。
可适用于本文所述的实施方式的处理系统、环境和/或配置的示例包括但不限于嵌入式计算机设备、个人计算机、服务器计算机(专用或云(虚拟)服务器)、手持式或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品、移动电话、网络个人计算机(PC)、小型计算机、大型计算机、包括上述系统或设备中的任一个的分布式计算环境等。本公开中描述的硬件模块或装置包括但不限于专用集成电路(ASIC)、现场可编程门阵列(FPGA)、专用或共享处理器和/或其它硬件模块或装置。
用户设备可以包括但不限于诸如PC的静态用户设备和诸如智能电话、平板计算机、膝上型计算机和智能手表的移动用户设备。
这里描述的接收机和发射机可以是独立的或者可以包括在收发机中。这里描述的通信链路包括至少一个发射机,其能够通过一个或更多个有线或无线通信信道向至少一个接收机发送数据。有线通信信道可以被布置用于电或光传输。这种通信链路可以可选地进一步包括一个或更多个中继收发器。
用户输入设备可以包括但不限于麦克风、按钮、小键盘、触摸屏、触摸板、轨迹球、操纵杆和鼠标。用户输出设备可以包括但不限于扬声器、蜂鸣器、显示屏、投影仪、指示灯、触觉反馈设备和可刷新盲文显示器。用户接口设备可以包括一个或更多个用户输入设备、一个或更多个用户输出设备,或两者。
基于属性的业务控制(traffic control)
在发布-订阅网络中,每个发布者通常发布具有特定属性集的数据。例如,发布者可以以特定时间模式从特定位置发布来自与特定主题相关的特定应用的数据。如果发布者被恶意软件感染,则恶意软件可能试图发布发布者设备应当保密的数据。根据本公开,代理可以防止这种恶意发布。这是通过代理参考发布者的简档并将业务控制规则应用于该简档和发布者正寻求发布的数据的一个或更多个属性以便阻止异常发布并认证其它发布来实现的。例如,可以对照由代理在发布请求中接收到的有效载荷数据的属性来测试被配置为检测非典型发布请求的业务控制规则。这样的数据属性可以例如包括以下中的一个或更多个:应用程序、操作系统(OS)和/或内核签名(例如,标识数据所源自的应用程序、OS和/或内核,以及可选地它们的版本号)、主题标签、位置戳和时间戳。
该技术提供了超出通过使用防火墙技术可获得的安全性的改进安全性,防火墙技术基于要传送数据的连接的属性(例如,原地址和目的地地址和/或端口和/或所使用的传输协议的组合)来阻止所述数据的传送,但不考虑数据本身的属性。根据本公开,除数据属性之外,发布者简档还可包括连接属性以用于甚至更鲁棒的保护。例如,如果发布者的简档指示它通常只在端口53上发布温度数据,则代理可以阻止它在端口53上发布语音数据或阻止它在端口950上发布温度数据。诸如设备标识符(ID)、制造商和型号的设备属性也可以包括在发布者简档中。业务控制规则对照简档测试的属性的数量越大,恶意软件为了非法目的成功欺骗合法发布就变得越困难。通过将数据属性加密(这对于连接属性通常是不可能的)可以使数据属性的欺骗更加困难。如果数据属性包括数据所源自的应用和/或OS和/或内核的版本,则可以应用业务控制规则以确保仅允许来自足够最新以应用适当安全措施和漏洞修复的设备的发布。
在首次建立发布者-代理连接时和/或在发起通信会话时执行的认证过程在例如需要密钥交换以实现通信的后续加密时可能是有价值的,如下文关于本发明的基于属性的数据安全性方面所论述的那样。然而,仅此一点并不防止由在会话中发生的恶意软件感染或等待到会话中产生恶意发布的恶意软件攻击所产生的恶意发布。与作为发布者的初始认证的一部分相反,考虑是否逐请求地发布数据防止了在初始认证之后发生的发布者的感染(或休眠恶意软件感染的激活)。
除了安全方面的益处之外,阻止具有不符合如应用于发布者简档的业务控制规则的属性的数据发布避免了由于恶意发布和错误发布(其可能例如由发布者的故障引起)而导致的网络资源浪费。因此节省了网络资源,例如电力、处理功率、存储器和带宽。例如,发布者简档可以指示它每30秒发布到特定主题。如果发布应用中的漏洞导致每15秒尝试发布一次,则代理可以阻止所述交替的发布以避免资源浪费在无关发布上。
发布者简档可以作为每个发布者向代理、向发布者或提供代理的受信第三方,或代理可访问的具有简档细节的远程简档存储器注册的过程的一部分来建立。另选地或附加地,简档细节可以由代理通过在初始建立期间监视发布者的发布来学习和存储。
业务控制规则可以存储在代理处或存储在代理可以访问的单独储存库中。
图3示出了利用如上所述的基于属性的业务控制技术的示例消息序列。
在步骤3010,订阅者3125向代理3110发送订阅请求。在步骤3012,代理3110注册该订阅。订阅请求包括订阅者3125希望订阅的主题和标识订阅者3125的手段,例如ID号(SID)。
在步骤3020,发布者3121向代理3110发送注册请求,该注册请求包括用于生成发布者简档的属性和标识发布者3121的手段,例如ID号。在步骤3022,代理3110生成并存储发布者3121的简档。或者,发布者设备3121的制造商可预先向代理3110提供发布者简档(或用于生成发布者简档的一个或更多个属性)。另一选项是代理3110通过在初始化时段中监视由发布者3121做出的发布来生成简档,在初始化时段期间不应用这里描述的业务控制技术。该方法引入了在初始化期间发生或第一次激活的早期恶意软件感染的风险,但是允许发布者3121在建立与代理3110的连接时立即开始发布。
步骤3010和3012可以在所示的步骤3020和3022之前,或反之亦然,在所示的步骤3020和3022之后。另选地,步骤3010和3012可以与步骤3020和3022并行运行。
如上所述,订阅者的注册仅需要订阅请求标识订阅者3125和他们希望订阅的主题。或者,步骤3010和3012可分别镜像步骤3020和3022,其中,订阅者3125的注册涉及属性的传输和简档的创建。即,订阅者和发布者向代理的注册可以遵循一般的客户端注册过程。
稍后,在向代理3110注册了发布者3121和订阅者3125之后,在步骤3030,发布者3121向代理3110发送第一发布请求,请求发布与订阅者3125所订阅的主题有关的数据。在步骤3032,代理3110取得发布者3121的简档,并将该简档和第一发布请求中的数据的属性输入到业务控制规则。第一发布请求通过测试,因此在步骤3034,代理3110将数据转发到订阅者3125以完成保证的发布。
在另一个时间,也是在发布者3121和订阅者3125两者向代理3110注册之后(但在相对于步骤3030、3032和3034的任何时间),在步骤3040,发布者3121向代理3110发送第二发布请求,请求发布与订阅者3125所订阅的主题有关的数据。在步骤3042,代理3110取得发布者3121的简档,并将该简档和第二发布请求中的数据的属性输入到业务控制规则。然而,第二发布请求与第一发布请求不同的数据属性相关联,并且未能通过测试。第二发布请求中的数据因此被阻止,即,不转发到订阅者3125。相反,在可选步骤3044,代理3110可以通知发布者3121该第二发布请求已被拒绝。
图4示出了用于通信网络(如图1的网络1100)中的业务控制的示例计算机实现方法4000,该通信网络包括一个或更多个发布者设备(如图1的客户端1121和1124)、代理(如图1的服务器1110)以及一个或更多个订阅者设备(如图1的客户端1122、1124和1125)。方法4000由代理执行。代理可以是单个服务器或彼此通信的多个服务器,各种处理、存储和通信功能分布在所述多个服务器之间。
在步骤4030,代理从发布者设备之一接收发布请求,该发布请求包括具有一个或更多个数据属性的数据,所述数据属性包括与所述数据相关的主题,所述主题是由订阅者设备之一向代理注册的订阅的主题。
在步骤4032,代理将一个或更多个业务控制规则应用于发布者设备之一的简档和数据属性中的一个或更多个。
在查询4033,代理确定所应用的业务规则是否被满足,从而在步骤4034确定是否将数据转发到订阅者设备之一(如果在步骤4032应用一个或更多个业务控制规则的结果是在步骤4033的肯定确定)或不转发(如果在步骤4032应用一个或更多个业务控制规则的结果是查询4033处的否定确定)。无论如何,该过程然后返回到步骤4030以接收下一个发布请求。
只要都在发出查询4033之前完成,步骤4030和4032可以按照任一顺序执行。如果步骤4030在所示的步骤4032之前执行的,则业务控制规则仅需要应用于由发布请求引起的数据属性和发布者简档的特定组合,但是发布过程由于需要在步骤4032即时执行而稍微减慢。相反,如果在步骤4030之前执行步骤4032,则必须预先将业务控制规则应用于数据属性和发布者简档的每个可能的组合--需要相对高的设置时间和处理能力,并被存储以供将来参考--强加了相对高的存储器需求。然而,在这种情况下,发布过程本身可能稍快一些。
如果查询4033的结果是否定的,则在可选步骤4044,代理可任选地向发布者设备之一发送发布拒绝。
所述一个或更多个数据属性可以包括被应用了一个或更多个业务控制规则的非主题属性。例如,数据属性可以包括时间戳和位置戳。发布者简档可以指示发布者设备的时间位置模式,该时间位置模式可以通过业务控制规则对照时间和位置戳来测试。例如,如果发布者设备是提供给运动员以在训练课期间监视他们的心率的智能手表,则简档可以指示运动员的训练时间表以及相关的体育馆和训练场地位置。如果智能手表被恶意软件感染,该恶意软件试图以时间和位置的其它组合发布运动员的心率,则代理可以阻止这种发布。
在步骤4032之前,该方法可以可选地还包括:代理在可选步骤4022生成发布者设备之一的简档,并在可选步骤4023存储该简档。
简档可以可选地通过监视由发布者设备之一在初始化时段期间做出的发布并由此确定由发布者设备之一发布的数据的一个或更多个典型属性来生成。这在可选步骤4019示出,在该步骤中,代理接收发布请求,随后是可选的查询4020,其中,代理确定初始化时段是否结束。如果是,则过程进行到步骤4022,如果否,则过程返回到步骤4019。
步骤4032处的业务控制规则的应用还可以包括:代理将一个或更多个业务控制规则应用于订阅者设备之一的简档。回到具有智能手表的运动员的示例,他们的教练可以具有被注册为心率主题的订阅者的个人计算机(PC),并且运动员也可以注册他们自己的智能电话作为心率主题的订阅者。业务控制规则可以规定教练的PC可以从智能手表接收与训练课有关的心率发布,即,在运动员的训练时间表上被指示为训练课的时间窗口期间,同时运动员的智能电话可以从智能手表接收所有心率发布。代理可以按照与如上所述创建发布者简档类似的方式生成和存储订阅者设备之一的简档。
根据上述方法,可以自动阻止非典型的业务以降低恶意或无关的发布被完成的风险。在发布被阻止的情况下,可以可选地发出用户警报以提示用户调查异常发布尝试的原因。如果代理包括适当的用户接口设备,则可以由代理直接发出这种警报,或者代理可以使另一设备发出用户警报。例如,在可选步骤4044向发布者发送发布拒绝消息可以触发发布者设备的用户输出设备处的用户警报。
虽然上述方法通过降低业务被误导(无论是恶意的还是错误的)的风险而提高了数据安全性,但是它们本身并不提供针对拦截通信的入侵攻击的保护。然而,上述技术可与本公开的以下部分中详述的技术组合以在必要时提供这种保护。
基于属性的数据安全
由于许多IoT设备可用的资源有限,M2M通信中的数据加密很少见。在使用加密的情况下,通常只对传输而不是静止的数据单边实现加密。然而,本发明人已经认识到,在发行-订阅网络中,要发行的数据的属性对于是否需要加密可以是决定性的。发布者自动考虑其希望发布的数据的属性,然后做出关于是否加密的决定,这意味着敏感数据在运输中和在代理处静止时都是安全的,同时资源不会浪费在不必要的加密上。类似地,代理可以基于数据属性来确定针对订阅者的向前传输是否有必要进行双重加密。合适的数据属性例如可以包括数据所涉及的主题和/或数据所源自的应用。
图5A和图5B示出了使用这些基于属性的数据安全方法的示例消息序列。
从图5A开始,在步骤5010,订阅者5125向代理5110发送订阅请求。在步骤5012,代理5110注册该订阅。订阅请求包括订阅者5125希望订阅的主题和标识订阅者5125的手段,例如ID号(SID)。
在步骤5020,发布者5121向代理5110发送注册请求,该注册请求包括标识发布者5121的手段,例如ID号(PID)。
步骤5010和5012可以在所示的步骤5020和5022之前,或反之亦然,在所示的步骤5020和5022之后。或者,步骤5010和5012可以与步骤5020和5022并行运行。
稍后,在向代理5110注册了发布者5121和订阅者5125两者之后,代理5110分别在步骤5025和5027向发布者5121和订阅者5125两者提供其公钥(PublicK)。一旦发布者5121和订阅者5125都被提供了代理5110的公钥,发布者5121就可以开始发布。
在发布者5121和订阅者5125都被提供了代理5110的公钥之后,发布者5121准备与订阅者5125已订阅发布的主题有关的一些数据。在步骤5031,发布者5121根据它希望发布的数据的属性来评估该数据的敏感度,确定数据的敏感度低并且因此不需要加密。因此,在步骤5035,发布者5121向代理5110发送发布请求,请求在不对数据进行加密的情况下将数据发布。在步骤5037,代理5110根据数据的属性来评估数据的敏感度级别,确定数据的敏感度不高,因此不需要加密。在步骤5039,代理5110因此在不对数据进行加密的情况下将数据转发到订阅者5125而不对其加密。
转到图5B,在另一时间,也在向发布者5121和订阅者5125两者提供了代理5110的公钥之后(但在相对于步骤5031、5035、5037和5039的任何时间),发布者5121准备与订阅者5125已订阅发布的主题有关的一些更多数据。在步骤5041,发布者5121根据它希望发布的数据的属性评估该数据的敏感度,确定该数据的敏感度不低,因此需要加密。因此,在步骤5043,使用代理5110的公钥将数据加密以创建密文。在步骤5045,发布者5121向代理5110发送发布请求,请求发布与订阅者5125订阅的主题相关的数据,其中包括密文而不是数据本身。在步骤5047,代理5110根据数据的属性来评估该数据的敏感度级别,确定数据的敏感度不高并且因此不需要双重加密。在步骤5049,代理5110因此将密文转发到订阅者5125而不对其进行双重加密。最后,在步骤5050,订阅者5125使用代理5110的公钥将密文解密。
在另一时刻,也在向发布者5121和订阅者5125两者提供了代理5110的公钥之后(但在相对于步骤5031、5035、5037、5039、5041、5043、5045、5047、5049和5050的任何时间),发布者5121准备与订阅者5125已订阅发布的主题有关的一些更多数据。在步骤5061,发布者5121根据它希望发布的数据的属性来评估该数据的敏感度,确定该数据的敏感度不低,因此需要加密。因此,在步骤5063,使用代理5110的公钥将数据加密以创建密文。在步骤5065,发布者5121向代理5110发送发布请求,请求发布与订阅者5125订阅的主题相关的数据,其中包括密文而不是数据本身。在步骤5067,代理5110根据数据的属性来评估该数据的敏感度级别,确定数据的敏感度是高的,因此需要双重加密。因此,在步骤5068,代理将密文加密。在步骤5069,代理5110将加密的密文转发给订阅者512。最后,在步骤5070,订阅者5125将加密的密文解密。
发布者5121在步骤5043和5063处进行的加密可以例如经由基于属性的加密来完成,如将在下面进一步描述的。在步骤5068由代理5110进行的双重加密可以例如根据高级加密标准(AES)法来执行。AES对称加密可以与用于每个发布的新密钥一起使用,以便提供前向保密(forward secrecy)。任何加密步骤可以例如利用椭圆曲线密码学(ECC)技术。
在步骤5045和5065中发送的加密数据可以包括散列签名。这样的散列签名可以例如通过用密文对发布者5121的一个或更多个属性进行散列计算来生成。这些属性可以构成代理5110可访问的发布者设备简档,例如如以上关于基于属性的业务控制方法所描述的。代理5110然后可以通过用密文对发布者设备简档进行散列计算并确认结果与在发布请求中接收到的签名匹配来验证签名。
上述基于属性的业务控制方法可以与基于属性的数据安全方法相结合。例如,对应于图3的步骤3022、3032和3042的步骤可以包括在图5A和图5B的方法中。
图6示出了用于在包括一个或更多个发布者设备(例如图1的客户端1121和1124)、代理(例如如图1的服务器1110)以及一个或更多个订阅者设备(例如图1的客户端1122、1124和1125)的通信网络(例如图1的网络1100)中传送数据的示例计算机实现方法6000。方法6000由发布者设备之一执行。
在步骤6025,发布者从代理接收公钥。在查询6031处,发布者基于要发布给代理的数据的一个或更多个属性来确定数据的敏感度级别是否是低的。在完成步骤6025和查询6031两者之后,发布者根据在查询6031处做出的确定以两种方式中的一种向代理发布数据。
当查询6031得到数据的敏感度级别低的确定时,向代理发布数据包括在步骤6035通过准备包括未加密数据的发布请求分组,然后在步骤6045发送该分组而将数据未加密地发送到代理。
当查询6031得到数据的敏感度级别不低的确定时,向代理发布数据包括在步骤6043使用公钥将数据加密。然后,通过在步骤6044准备包括加密数据的发布请求分组,然后在步骤6045发送该分组,将得到的加密数据发送到代理。
每当发布者有数据要发布时,可以为该特定数据制定查询6031。另选地,由一个或更多个属性定义的各类数据的敏感度可以通过作为设置过程的一部分进行查询6031来确定,从而在数据准备好发布之前进行确定。(在这种情况下,查询6031可以跟随在步骤6025之后或与其并行地制定。)这可以加速发布过程,但可能需要更多的存储器资源来存储确定结果。
一个或更多个属性可以包括数据所涉及的主题和数据所源自的应用中的一个或两个。
加密数据可以包括密文和散列签名。步骤6043可包括通过用密文对发布者的一个或更多个属性进行散列计算来生成散列签名。发布者的那些一个或更多个属性可构成代理可访问的发布者设备简档。代理可以接收加密数据,并通过用密文对发布者简档进行散列计算并确认结果与在加密数据中接收到的签名匹配来验证签名。
步骤6043可以根据ABE方法来执行。
图7示出了用于在包括一个或更多个发布者设备(例如图1的客户端1121和1124)、代理(例如图1的服务器1110)以及一个或更多个订阅者设备(例如图1的客户端1122、1124和1125)的通信网络(例如图1的网络1100)中传送数据的示例计算机实现方法7000。方法7000由代理执行。代理可以是单个服务器或彼此通信的多个服务器,各种处理、存储和通信功能分布在所述多个服务器之间。
在步骤7025,代理向一个或更多个发布者设备和一个或更多个订阅者设备发送公钥。在步骤7028,代理将发布者设备之一注册为数据的发布者,使得该发布者设备可以发布具有一个或更多个属性的数据,所述一个或更多个属性包括数据所涉及的主题。在步骤7029,代理将订阅者设备之一注册为与主题相关的数据的订阅者。步骤7025、7028和7029可以按照任何顺序执行,或者它们中的两个或全部可以并行执行。如果步骤7025在所示的步骤7028和7029之前,则步骤7025可以例如通过广播传输来执行。另选地,如果步骤7028和7029在步骤7025之前,则步骤7025可以包括仅针对注册的发布者和订阅者设备的传输。
在步骤7045,代理从发布者设备之一接收包括与主题有关的加密数据的发布请求,所述加密数据已使用包括使用公钥的方法进行了加密。(步骤7045因此必须发生在步骤7025之后。)步骤7045可以在比所示的步骤7028晚的时间执行。另选地,步骤7028和7045可与包括发布者的第一发布请求的发布者的注册请求组合。
在查询7047,代理基于所述属性中的一个或更多个属性来确定数据的敏感度级别是否是高的。每当代理接收到针对特定数据的发布数据请求时,就可以进行查询7047。另选地,由一个或更多个属性定义的各类数据的敏感度可以通过执行作为设置过程的一部分的查询7047来确定,从而在数据准备好发布之前做出确定。(在这种情况下,查询7047可以在相对于步骤7025、7028和7029的任何时间被执行。)这可以加速发布过程,但是可能需要更多的存储器资源来存储确定结果。
在完成所有步骤7025、7028、7029、7045和查询7047之后,代理根据在查询7047处做出的确定,以两种方式之一向订阅者设备之一发布加密数据。
当查询7047得到数据的敏感度级别不高的确定时,公布加密数据包括在步骤7049准备用于包括加密数据的传输的分组,然后在步骤7079将该分组发送到订阅者设备之一。
当查询7047得到数据的敏感度级别高的确定时,公布加密数据包括在步骤7068将加密数据加密以产生双重加密数据,在步骤7069准备用于包括双重加密数据的传输的分组,然后在步骤7079将分组发送到订阅者设备之一。
查询7047的确定所基于的一个或更多个属性例如可以包括数据所涉及的主题和数据所源自的应用中的一个或两者。
步骤7068可以例如根据高级加密标准(AES)法来执行。
当图6的方法6000的查询6031得到数据的敏感度级别不低的确定时,可以在方法6000之后执行图7的方法7000。即,在步骤7045中由代理接收到的加密数据可以是在步骤6045中由发布者设备发送的加密数据。
图6的加密步骤6043和图7的加密步骤7068中的一个或两个可以例如根据椭圆曲线密码学(ECC)法来执行。
这里描述的基于属性的数据安全技术可以与上述基于属性的业务控制技术结合使用。
基于属性的加密(ABE)是一种公钥加密,其中,订阅者的密钥和密文取决于属性(例如,位置或设备制造商)。只有当订阅者密钥的属性集匹配密文的属性时,才可能解密密文。
ABE的一个关键安全性方面是抗共谋性:私钥分量以如下方式被绑定到随机多项式,即,多个用户不能以允许共谋攻击的任何方式组合所述私钥分量。持有多个密钥的对手只有在至少一个单独的密钥授权访问时才能够访问数据。
已经开发了ABE的两个变体:密文-政策ABE(CP-ABE)和密钥-政策ABE(KP-ABE)。两种方案之间的本质差别在于属性是与数据相关还是与接收者相关。
在CP-ABE中,发送方的数据访问策略被嵌入密文中,并且接收方的属性与其私钥相关联。仅当与其私钥相关联的属性满足嵌入在加密数据中的访问策略时,接收者才可以将密文解密。
在KP-ABE中,一组数据属性被嵌入在密文中,并且对数据的访问策略被嵌入在接收者的私钥中。只有当嵌入在私钥中的访问策略与加密数据的访问策略匹配时,接收者才可以将数据解密。
ABE中有四个基本功能:设置、加密、密钥生成和解密。这些功能针对CP-ABE和KP-ABE不同的工作。
CP-ABE功能如下。
·设置
该功能生成公钥(PublicK)和相关联的主密钥(SMK)。
·加密
该功能利用公钥(PublicK)和发送者的访问策略(P)来加密消息(m)。它输出与公钥(PublicK)和访问策略(P)相关联的密文(c)。
·密码生成
该功能将主密钥(SMK)、公钥(PublicK)和接收者的一组属性(A)作为输入。它输出解密密钥(DecryptK)。该解密密钥(DecryptK)与接收者的属性(A)、主密钥(SMK)及其公钥(PublicK)相关联。
·解密
该功能将密文(c)、公钥(PublicK)和解密密钥(DecryptK)作为输入。如果私钥(DecryptK)中的属性(A)满足策略(P)并且解密密钥(DecryptK)与最初用于加密的公钥(PublicK)相关联,则将密文(c)解密以输出消息(m)。
KP-ABE功能如下。
·设置
该功能与CP-ABE设置功能相同。它生成公钥(PublicK)和相关联的主密钥(SMK)。
·加密
该功能用公钥(PublicK)和消息(m)的一组数据属性(A)将消息(m)加密。它输出与公钥(PublicK)和数据属性(A)相关联的密文(c)。
·密钥生成
该功能将主密钥(SMK)、公钥(PublicK)和数据访问策略(P)作为输入。它输出解密密钥(DecryptK)。该解密密钥(DecryptK)与访问策略(P)、主密钥(SMK)及其公钥(PublicK)相关联。
·解密
该功能将密文(c)、公钥(PublicK)和解密密钥(DecryptK)作为输入。如果密文(c)中的属性(A)满足策略(P)并且解密密钥(DecryptK)与最初用于加密的公钥(PublicK)相关联,则将密文(c)解密以输出消息(m)。
ABE性能高度依赖于使用的属性的数量。CP-ABE和KP-ABE中的加密需要两次取幂;在CP-ABE中针对访问策略中的每个属性并且在KP-ABE中针对密文强制的每个属性。解密复杂度取决于匹配访问策略的属性的数量n。CP-ABE由n次取幂和2n次配对运算来取上界,而KP-ABE由n次取幂和n次配对运算来取上界。
ABE特别适合于发行-订阅环境,因为它需要的密钥比传统的公钥加密需要的密钥少。
图8A到图8C示出了CP-ABE如何在发布-订阅网络中实现用于经由代理8110从发布者8121到订阅者8125的发布的示例,其中,可以假定代理8110的可信赖性。
图8A示出了初始注册阶段,其中,订阅者8125以及可选地发布者8121向代理8110注册。
在步骤8010,订阅者8125向代理8110发送订阅请求。订阅请求包括订阅者属性(SA)、订阅者标识符(SID)和订阅所涉及的主题(T)。订阅者属性(SA)然后与订阅者标识符(SID)和主题(T)一起存储在代理8110处。
对于该CP-ABE方法,发布者8121向代理8110的注册不是严格需要的,除非要包含下面结合图8C讨论的可选散列签名认证。因此,可选的步骤8020和8022以虚线示出。在步骤8020,发布者8121向代理8110发送注册请求。注册请求包括发布者属性(PA)。包括在注册请求中的发布者属性包括发布者标识符(PID)。发布者属性(PA)然后与发布者标识符(PID)一起存储在代理8110处。
图8B示出了在图8A的注册阶段之后的密钥生成和分发阶段。
在步骤8024,代理8110执行设置功能以生成公钥(PublicK)和主密钥(SMK)。在步骤8025,向发布者8121和订阅者8125两者提供公钥(PublicK),发布者8121和订阅者8125两者然后存储该公钥(PublicK)。(步骤8025可以例如通过广播传输来执行,或者可以使用发布者8121和订阅者8125各自的标识符(PID,SID)来瞄准发布者8121和订阅者8125)。在步骤8026,代理8110使用公钥(PublicK)和主密钥(SMK)以及订阅者属性(SA)来执行密钥生成功能,以便为订阅者8125生成解密密钥(DecryptK)。在步骤8027,代理8110使用订阅者标识符(SID)来寻址传输,将解密密钥(DecryptK)发送到订阅者8125。然后,订阅者8125存储解密密钥(DecryptK)。
图8C示出了在图8B的密钥生成和分发阶段之后的发布阶段。
在步骤8043,发布者8121使用先前从代理8110接收的公钥(PublicK)将消息(m)加密,如以上关于图8B所述。加密过程将发布者的数据访问策略(P)嵌入到所得的密文(c)中。(数据访问策略(P)例如可以是主题相关的。)然后在发布请求步骤8045中,将密文(c)连同消息(m)涉及的主题(T)一起从发布者8121发送到代理8110。
在步骤8047,代理8110接收发布请求。密文(c)和主题(T)由代理8110提取,代理8110检查订阅者的主题(T),并找到作为图8A的订阅者注册8012的结果而与主题(T)一起存储的订阅者8125的标识符(SID)。因此,在步骤8049,密文(c)从代理8110发送到订阅者8125。
在步骤8050,订阅者8125使用先前从代理8110接收的公钥(PublicK)和解密密钥(DecryptK)来解密从代理8110接收的密文(c),如以上关于图8B所述。由于在图8B的步骤8026中用于生成解密密钥(DecryptK)的订阅者属性(SA)满足通过加密步骤8043嵌入密文(c)中的数据访问策略(P),所以该解密能够输出消息(m)。
属性可以是不可变的,即在交互的使用期限内不被预期/不被允许改变(例如设备的品牌和型号),或者属性是可变的,即预期改变(例如移动设备的位置)。如果订阅者属性和/或发布者的数据访问策略以订阅者属性不再满足发布者的数据访问策略的方式改变,则发布者的任何后续发布都不能被订阅者成功解密。因此,不需要生成和分发新密钥来适应这种改变。
如图8C中的虚线所示,可以使用散列签名来执行发布请求的可选认证。在步骤8080,发布者8121可以用密文(c)对发布者属性(PA)进行散列计算,以产生散列签名(#),该散列签名(#)与发布者标识符(PID)一起被结合到发布请求8045中。然后,在步骤8047,在接收到发布请求时,代理8110提取密文(c)、散列签名(#)和发布者标识符(PID)。在认证步骤8082,作为图8A的发布者注册8022的结果,代理8110查找与发布者ID(PID)一起存储的发布者属性(PA)。然后,用从发布请求中提取出的密文(c)对发布者属性(PA)进行散列计算,以确认所述结果与从发布请求中提取的散列签名(#)匹配。如果是,则步骤8049如上所述进行。如果否,则拒绝发布请求,可选地,发布拒绝是从代理8110发送到发布者8121的。以这种方式使用散列签名提供了数据完整性的保证,因为如果密文被截取其从发布者8121到代理8110的传输的一方篡改,则由代理8110接收到的消息中的散列将与在步骤8082期间由代理8110产生的散列不匹配。
这种CP-ABE可以实现为上述基于属性的数据安全方法中使用的加密技术,例如图5B的加密步骤5043映射到图8C的加密步骤8043。
关于图8A至图8C提及的发布者属性(PA)和订阅者属性(SA)可以对应于以上关于基于属性的业务控制技术描述的客户端简档。这种基于属性的业务控制技术可以与图8A到图8C的CP-ABE方案结合使用,以提高安全性。例如,图3的公布请求3030可以对应于图8C的公布请求8045。
图9A到图9C示出了如何在发布-订阅网络中针对经由代理9121从发布者9121到订阅者9125的发布实现KP-ABE的示例,其中,可以假定代理9110的可信度。
图9A示出了初始注册阶段,其中,订阅者9125以及可选地发布者9121向代理9110注册。
在步骤9010,订阅者9125向代理9110发送订阅请求。订阅请求包括订阅者属性(SA)、订阅者标识符(SID)和订阅所涉及的主题(T)。然后,订阅者属性(SA)与订阅者标识符(SID)和主题(T)一起被存储在代理9110处。
对于该KP-ABE方法,不严格要求发布者9121向代理9110的注册,除非下面关于图9C讨论的可选散列签名认证。因此,可选的步骤9020和9022以虚线示出。在步骤9020,发布者9121向代理9110发送注册请求。注册请求包括发布者属性(PA)。包括在注册请求中的发布者属性包括发布者标识符(PID)。发布者属性(PA)然后与发布者标识符(PID)一起存储在代理9110处。
图9B示出了在图9A的注册阶段之后的密钥生成和分发阶段。
在步骤9024,代理9110执行设置功能以生成公钥(PublicK)和主密钥(SMK)。在步骤9025,向发布者9121和订阅者9125两者提供公钥(PublicK),发布者9121和订阅者9125两者然后存储公钥(PublicK)。(步骤9025可以通过广播传输来执行,或者可以使用发布者9121和订阅者9125各自的标识符(PID,SID)来瞄准发布者9121和订阅者9125)。在步骤9026,代理9110使用公钥(PublicK)和主密钥(SMK)来执行密钥生成(KeyGen)功能,结合数据访问策略(P)以便为订阅者9125生成解密密钥(DecryptK)。
数据访问策略(P)例如可以是主题相关的。它可以由发布者9121设置,然后在步骤9026之前传送到代理9110,例如作为步骤9020的一部分。另选地,策略(P)可以由代理9110设置,并且在部署期间提供给发布者9121,或者在步骤9025中与公钥(PublicK)一起提供。
在步骤9027,代理9110使用订阅者标识符(SID)进行寻址传输,将解密密钥(DecryptK)发送到订阅者9125。然后,订阅者9125存储解密密钥(DecryptK)。
图9C示出了在图9B的密钥生成和分发阶段之后的发布阶段。
在步骤9043,发布者9121使用先前从代理9110接收到的公钥(PublicK)将消息(m)加密,如以上关于图9B所述的。加密过程将消息(m)的数据属性(A)嵌入到所得的密文(c)中。然后,在发布请求步骤9045中,将该密文(c)连同消息(m)所涉及的主题(T)一起从发布者9121发送到代理9110。
代理9110在步骤9047接收发布请求。密文(c)和主题(T)由代理9110提取,代理9110为订阅者检查主题(T)并找到作为图9A的订阅者注册9012的结果与主题(T)一起存储的订阅者9125的标识符(SID)。因此,在步骤9049,密文(c)从代理9110发送到订阅者9125。
在步骤9050,订阅者9125使用先前从代理9110接收到的公钥(PublicK)和解密密钥(DecryptK)来解密从代理9110接收到的密文(c),如以上关于图9B所述的。由于在图9B的步骤9026中用于生成解密密钥(DecryptK)的数据访问策略(P)在加密步骤9043嵌入在密文(c)中的数据属性(A)满足,所以该解密能够输出消息(m)。
如果数据属性和/或数据访问策略以数据属性不再满足数据访问策略的方式改变,则发布者的任何后续发布都不能被订阅者成功解密。因此,不需要生成和分发新密钥来适应这种改变。
如图9C中虚线所示,可以使用散列签名来执行发布请求的可选认证。在步骤9080,发布者9121可以用密文(c)来对发布者属性(PA)进行散列计算以产生散列签名(#),该散列签名(#)与发布者标识符(PID)一起被结合到发布请求9045中。然后,在步骤9047,代理9110在接收到发布请求时提取密文(c)、散列签名(#)和发布者标识符(PID)。在认证步骤9082,作为图9A的发布者注册9022的结果,代理9110查找与发布者ID(PID)一起存储的发布者属性(PA)。然后,用从发布请求中提取出的密文(c)对发布者属性(PA)进行散列计算,以确认所述结果与从发布请求中提取出的散列签名(#)匹配。如果是,则步骤9049如上所述进行。如果不是,则拒绝发布请求,可选地,发布拒绝是从代理9110发送到发布者9121的。以这种方式使用散列签名提供了数据完整性的保证,因为如果密文被截取其从发布者9121到代理9110的传输的一方篡改,则由代理9110接收到的消息中的散列将与在步骤9082期间由代理9110产生的散列不匹配。
这种KP-ABE可以实现为在上述基于属性的数据安全方法中使用的加密技术,例如图5B的加密步骤5043映射到图9C的加密步骤9043。
关于图9A至图9C提及的发布者属性(PA)和订阅者属性(SA)可以对应于以上关于基于属性的业务控制技术描述的客户端简档。这种基于属性的业务控制技术可以与图9A到图9C的KP-ABE方案结合使用,以提高安全性。例如,图3的公布请求3030可以对应于图9C的公布请求9045。
类似于上述的基于属性的业务控制技术,在进行安全判决中使用的属性的数量(即由数据访问策略指定的)越大,这里描述的CP-ABE和KP-ABE技术就越有效。
信任链机制
如以上关于图1所解释的,如果发布-订阅通信网络1100的代理1110从不在可信网络1100内的外部客户端1221、1222接收到订阅请求,则该订阅请求被默认拒绝。然而,根据本公开,可以以安全的方式将信任扩展至外部客户端。这是通过使用一次性密码(OTP)来建立安全信任链来实现的。
可以设想可实现这种信任链机制的各种场景。一个示例是在居家养老上下文中。由老年患者佩戴的健康监测设备可以向MQTT代理发布例如与血压主题有关的数据。护理者可以通过他们的智能电话访问血压数据,智能电话是血压主题的订阅者。
在该示例中,智能电话能够在其余代理都连接到同一家庭wifi网络时向该代理注册订阅,因为代理被配置成信任该网络上的设备。然而,如果患者的医生希望从当地医院的PC订阅血压主题,则首先需要教导该代理信任该PC。这可以通过智能电话从代理请求的OTP来实现。
当智能电话向代理注册其自己的订阅时,智能电话和代理使定时器或计数器在它们之间同步,同意每次生成OTP时将根据特定模式继续移动。这样,智能电话可以验证代理响应于智能电话的请求而生成和提供的OTP的有效性。然后可以通过安全信道(例如传输层安全,TLS)将OTP发送到医生的PC。PC然后可以向代理发送订阅请求,该订阅请求包括OTP。代理验证该OTP与其发布的相同,并相应地注册PC的订阅。
另一示例实现场景是汽车监控系统,其中,汽车的中央处理单元(CPU)充当代理,从各种传感器接收发布请求并将数据转发到所有者的平板计算机。例如,平板计算机可以是胎压主题的订阅者。CPU被配置成在购买时与新所有者的设备配对,而不接受其它订阅请求。车主可以通过使用平板计算机向CPU请求胎压主题的OTP,验证作为响应接收到的OTP并将其安全地转发到汽车修理厂的PC,从而向汽车修理厂提供对胎压数据的访问。
图10A和图10B示出了构建从代理10110通过代理的可信通信网络内部的订阅者10125到外部订阅者10221的信任链的示例消息流。
在图10A的步骤1010,内部订阅者10125向代理10110发送订阅请求以订阅与主题相关的发布。代理10110在步骤1012注册订阅,存储内部订阅者10125的标识符以及主题。代理还在步骤1014初始化计数器系列,然后在步骤1016将计数器系列(或使得能够计算该计数器系列的参数)发送到内部订阅者10125。在步骤1018,内部订阅者10125相应地初始化其自己的计数器。
稍后,内部订阅者10125希望将其对主题的订阅扩展到外部订阅者10221。因此,在步骤1090,内部订阅者10125向代理10110请求与主题相关的、针对外部订阅者10221的OTP。代理10110然后在步骤1091基于主题和内部订阅者的标识符生成OTP,同时使计数器递增。然后,在步骤1092,代理10110向内部订阅者10125提供所述OTP。在步骤1093,内部订阅者10125通过基于其自己的标识符和其希望扩展其订阅的主题独立地生成OTP,然后检查所生成和接收到的OTP匹配,同时递增其计数器,如此来验证在步骤1092从代理接收到的OTP。然后,在步骤1094,内部订阅者10125将OTP发送到外部订阅者10221。
转到图10B,代理10110和内部订阅者10125已经相对于图10A切换了页面上的位置,响应于在步骤1094接收到OTP,在步骤1095,外部订阅者10221向代理10110发送订阅请求。该订阅请求包括主题、外部订阅者10221的标识符以及OTP。在步骤1096,代理10110确认在步骤1095从外部订阅者10221接收到的OTP与其在图10A的步骤1091产生的OTP匹配,并且OTP所接收自的外部订阅者10221是由在步骤1090接收到的代理10110的OTP请求中的内部订阅者10125标识的相同的外部订阅者10221。然后,在步骤1097,代理注册外部订阅者10221对主题的订阅,将外部订阅者的标识符与主题一起存储。
稍后,代理10110从发布者(未示出)接收包括与内部订阅者10125和外部订阅者10221已订阅的主题有关的数据的发布请求。然后,在步骤1099,代理10110将数据转发到内部订阅者10125和外部订阅者10221二者。
虽然图10A和图10B仅涉及单个主题,但是可以一次为多个主题建立信任链,其中每个主题一个OTP或者为所有请求的主题建立单个OTP。所请求的主题可以是内部订阅者订阅的主题中的一个或更多个(但不是任何其它主题)。
所使用的OTP例如可以是6-8比特。它们可以是基于订阅者的身份和所请求的主题的。它们可以是有时间限制的;例如,代理可以被配置为在接收到包括OTP的外部连接请求时,检查所接收的OTP是否与其在预定的最近时间段(例如,在过去的一小时内)中生成的任何OTP相匹配。
可以限制外部订阅本身,并且代理被配置成在预定时间段或预定数目的发布之后取消外部订阅者的订阅。
代理可以被配置为向针对外部订阅者的发布添加加密层。
图11示出了用于保护来自受信通信网络(例如图1的网络1100)的数据通信的示例计算机实现的方法11000,该受信通信网络包括一个或更多个发布者设备(例如图1的客户端1121和1124)、代理(例如图1的服务器1110)以及一个或更多个订阅者设备(例如图1的客户端1122、1124和1125)。方法11000是由一个或更多个订阅者设备之一执行的。
首先,订阅者向代理注册对与特定主题有关的发布的订阅,所述注册步骤包括在步骤1110向代理发送订阅请求,并且在步骤1118根据OTP协议使计数器或定时器与代理同步。
随后,在步骤1190,订阅者向代理请求OTP以将订阅扩展到未包括在受信通信网络中的外部设备。OTP请求指定了请求订阅的主题并标识内部订阅者,使得代理可以确认内部订阅者已经注册了针对该主题的订阅。OTP请求还可以可选地包括外部订阅者的一个或更多个属性,代理可以使用这些属性来确认OTP来自正确的设备。
在步骤1191,订阅者根据协议生成订阅者OTP。在步骤1192,订阅者从代理接收代理OTP。步骤1191和1192可以按照任一顺序或彼此并行地执行。在步骤1193,订阅者确认代理OTP和订阅者OTP匹配。响应于此,在步骤1194,订阅者将代理OTP发送到外部设备。
在可选步骤1199,订阅者可以经由代理从一个或更多个发布设备之一接收发布。可选的步骤1199可以在向代理登记了订阅者的订阅之后的任何时间发生。
代理OTP可以例如通过安全TLS或安全套接字层(SSL)信道或因特网协议安全(IPsec)连接被发送到外部设备。
图12示出了用于保护来自受信通信网络(例如图1的网络1100)的数据通信的示例计算机实现的方法12000,该受信通信网络包括一个或更多个发布者设备(例如图1的客户端1121和1124)、代理(例如图1的服务器1110)以及一个或更多个订阅者设备(例如图1的客户端1122、1124和1125)。方法12000是由代理执行的。代理可以是单个服务器或彼此通信的多个服务器,各种处理、存储和通信功能分布在所述多个服务器之间。
首先,代理将一个或更多个订阅者设备之一的订阅注册到与主题相关的发布。注册步骤包括在步骤1212从订阅者设备之一接收订阅请求,并在步骤1214根据OTP协议使计数器或定时器与订阅者设备之一同步。
随后,在步骤1290,代理从订阅者设备之一接收OTP请求,以将订阅扩展到未包括在受信通信网络中的外部设备。OTP请求指定了所请求的订阅的主题并标识内部订阅者,使得代理可以确认内部订阅者已经注册了针对该主题的订阅。OTP请求还可以可选地包括外部设备的一个或更多个属性(例如,外部设备标识符),代理可以使用所述一个或更多个属性来确认OTP来自正确的设备。
响应于步骤1290,在步骤1291,代理根据协议生成代理OTP。响应于此,在步骤1292,代理将代理OTP发送到订阅者设备之一。
随后,在步骤1295,代理从外部设备接收订阅请求,所述订阅请求包括外部设备OTP。响应于此,在步骤1296,代理确认代理OTP和外部设备OTP匹配。响应于此,在步骤1297,代理将外部设备的订阅注册到与该主题相关的发布。如果步骤1290的OTP请求包括外部设备的一个或更多个属性(例如其标识符),则这些属性也可以包括在步骤1295的订阅请求中。在此情况下,步骤1296还可包含确认两组外部设备属性是匹配的以用于额外的安全性。
代理稍后可以在可选步骤1298接收来自一个或更多个发布者设备之一的发布请求,所述发布请求是针对与主题相关的发布的。响应于此,在可选步骤12099,代理可以将发布发送到订阅者设备之一和外部设备。
可选地,例如根据上面讨论的基于属性的数据安全方法之一,代理可以在将在步骤12068的公布请求中接收到的数据发送到外部设备之前将其加密。
图11和图12的OTP协议例如可以使用基于散列的消息认证码(基于HMAC的OTP,HOTP)算法或基于时间的OTP(TOTP)算法。
这里描述的信任链机制可以与上述基于属性的业务控制方法和/或基于属性的安全方法结合使用。
具有基于属性的业务控制和数据安全的通过信任链的示例发布方法
图13A、图13B、图13C、图13D、图13E和图13F示出了将上述许多技术集合在一起的示例消息流。
图13A和图13B示出了构建从代理13110通过代理的受信通信网络内部的订阅者13125到外部订阅者13221的信任链的示例消息流。步骤1310至1318分别对应于图10A的步骤1010至1018。步骤1390至1397分别对应于图10A和图10B的步骤1090至1097。
图13C示出了向代理13110注册发布者13121,包括代理13110存储发布者13121的简档。步骤13020和13022分别对应于图3的步骤3020和3022,并且可以在图13A和图13B的步骤之前、之后或与其并行地执行。
图13D示出了将代理13110的公钥提供给发布者13121(在步骤13025)以及内部订阅者13125和外部订阅者13221二者(在步骤13027)。步骤13025和13027分别对应于图5A的步骤5025和5027。如果密钥提供是经由广播完成的,则图13D的方法可以在发布者13121希望开始发布数据之前的任何时间执行,但是如果要直接寻址客户端13121、13125和13221,则必须等待,直到图13A到图13C的方法完成。
图13E和图13F示出了经由代理13110从发布者13121向内部订阅者13125和外部订阅者13221发布高敏感度数据。数据被加密以传输到代理13110,然后被双重加密以转发到订阅者13125、13221。图13E和图13F的步骤13061至13070分别对应于图5B的步骤5061至5070。然而,相对于图5B,包括了附加步骤;在步骤13065和13067之间执行步骤13032,以与图3的步骤3032类似的方式确认要发布的数据的属性符合业务规则。
包括图13A到图13F以说明如何组合以上分别描述的技术的一个示例,但其它组合也是可能的。

Claims (25)

1.一种在通信网络中传送数据的计算机实现的方法,所述通信网络包括一个或更多个发布者设备、代理以及一个或更多个订阅者设备,所述方法包括:所述发布者设备中的一个发布者设备
i-a.从所述代理接收公钥;
i-b.基于要发布给所述代理的数据的一个或更多个属性,确定所述数据的敏感度级别是否低;以及
ii.在完成步骤i-a和步骤i-b两者之后,向所述代理发布所述数据,其中:
当步骤i-b得到所述数据的敏感度级别低的确定时,步骤ii包括将所述数据不加密地发送到所述代理;以及
当步骤i-b得到所述数据的所述敏感度级别不低的确定时,步骤ii包括将所述数据加密,然后将得到的加密数据发送到所述代理,其中,将所述数据加密的步骤包括使用所述公钥。
2.根据权利要求1所述的方法,其中,所述一个或更多个属性包括以下项中的一个或两个:
所述数据涉及的主题;以及
所述数据所源自的应用。
3.根据权利要求1或2所述的方法,其中,步骤i-b包括将所述数据分类为具有从“低”和“不低”选出的敏感度级别;
所述分类可选地包括:
向所述数据分配敏感度分数;然后
当所述敏感度分数低于预定的低敏感度阈值时,将所述数据分类为具有“低”的敏感度级别;以及
否则,将所述数据分类为具有“不低”的敏感度级别。
4.根据权利要求1至3中任一项所述的方法,其中,所述加密数据包括密文和散列签名,将所述数据加密的步骤包括通过用所述密文对所述发布者设备中的所述一个发布者设备的一个或更多个属性进行散列计算来生成所述散列签名,其中,所述发布者设备中的所述一个发布者设备的所述一个或更多个属性构成所述代理能够访问的发布者设备简档。
5.根据权利要求4所述的方法,所述方法还包括:所述代理接收所述加密数据,并且通过用所述密文对所述发布者设备简档进行散列计算并确认结果与在所述加密数据中接收到的签名匹配来验证所述签名。
6.根据前述权利要求中任一项所述的方法,其中,将所述数据加密的步骤是根据基于属性的加密‘ABE’方法执行的。
7.一种在通信网络中传送数据的计算机实现的方法,所述通信网络包括一个或更多个发布者设备、代理以及一个或更多个订阅者设备,所述方法包括:所述代理iii-a.向所述一个或更多个发布者设备和所述一个或更多个订阅者设备发送公钥;
iii-b.将所述发布者设备中的一个发布者设备注册为数据的发布者,使得该发布者设备能够发布具有一个或更多个属性的数据,所述一个或更多个属性包括所述数据所涉及的主题;
iii-c.将所述订阅者设备中的一个订阅者设备注册为与所述主题相关的数据的订阅者;
iii-d.在步骤iii-a之后,从所述发布者设备中的所述一个发布者设备接收包括与所述主题相关的加密数据的发布请求,所述加密数据已经使用包括使用所述公钥的方法进行了加密;
iii-e.基于所述属性中的一个或更多个属性,确定所述数据的敏感度级别是否高;以及
iv.向所述订阅者设备中的所述一个订阅者设备发布所述加密数据,其中:
当步骤iii-e得到所述数据的所述敏感度级别不高的确定时,步骤iv包括将所述加密数据发送到所述订阅者设备中的所述一个订阅者设备;以及
当步骤iii-e得到所述数据的所述敏感度级别高的确定时,步骤iv包括将所述加密数据加密以产生双重加密数据,然后将所述双重加密数据发送到所述订阅者设备中的所述一个订阅者设备。
8.根据权利要求7所述的方法,其中,步骤iii-e的确定所基于的所述一个或更多个属性包括以下项中的一个或两个:
所述数据所涉及的所述主题;以及
所述数据所源自的应用。
9.根据权利要求7或8所述的方法,其中,步骤iii-e包括将所述数据分类为具有从“高”和“不高”选出的敏感度级别;
所述分类可选地包括:
向所述数据分配敏感度分数;然后
当所述敏感度分数高于预定的高敏感度阈值时,将所述数据分类为具有“高”的敏感度级别;以及
否则,将所述数据分类为具有“不高”的敏感度级别。
10.根据权利要求7至9中任一项所述的方法,其中,将所述加密数据加密的步骤是根据高级加密标准‘AES’方法执行的。
11.根据权利要求1至6中任一项所述的方法,其中,步骤i-b得到所述数据的所述敏感度级别不低的确定,所述方法还包括根据权利要求7至10中任一项所述的方法,其中,在步骤iii-d中由所述代理接收到的所述加密数据是在步骤ii中由所述发布者设备发送的所述加密数据。
12.根据前述权利要求中任一项所述的方法,其中,加密的步骤是根据椭圆曲线密码学‘ECC’方法执行的。
13.根据权利要求7至11中任一项或从属于权利要求7至11中任一项的权利要求12所述的方法,所述方法还包括:所述代理
将一个或更多个业务控制规则应用于:
所述发布者设备中的所述一个发布者设备的简档,以及
所述属性中的一个或更多个属性;然后
确定所述发布请求是否满足所应用的业务规则;
其中,步骤iv仅响应于确定满足所述一个或更多个业务控制规则而执行。
14.根据权利要求7至11中任一项、从属于权利要求7至11中任一项的权利要求12、或者权利要求13所述的方法,其中,步骤iii-c包括所述代理根据一次性密码‘OTP’协议使计数器或定时器与所述订阅者设备中的所述一个订阅者设备同步;所述方法还包括:所述代理随后
从所述订阅者设备中的所述一个订阅者设备接收将所述订阅扩展到未包括在所述通信网络中的外部设备的OTP请求,所述通信网络是受信通信网络;
响应于此,根据所述协议生成代理OTP;
响应于此,将所述代理OTP发送到所述订阅者设备中的所述一个订阅者设备;
随后:
从所述外部设备接收订阅请求,所述订阅请求包括外部设备OTP;
响应于此,确认所述代理OTP与所述外部设备OTP匹配;以及
响应于此,将所述外部设备的订阅注册到与所述主题相关的发布。
15.根据权利要求14所述的方法,其中,步骤iv还包括将所述加密数据发送到所述外部设备。
16.根据权利要求15所述的方法,其中,步骤iii-e得到所述数据的所述敏感度级别是否高的确定,步骤iv包括将所述加密数据加密以产生双重加密数据,然后将所述双重加密数据发送到所述外部设备。
17.根据权利要求14至16中任一项所述的方法,其中:
所述OTP请求包括所述外部设备的一个或更多个属性;
所述订阅请求包括所述外部设备的一个或更多个属性;
该方法还包括:所述代理确认在所述OTP请求中接收到的所述外部设备的一个或更多个属性与在所述订阅请求中接收到的所述外部设备的一个或更多个属性匹配,其中,注册所述外部设备的订阅还响应于该确认。
18.根据权利要求14至17中任一项所述的方法,其中,所述OTP协议使用基于散列的消息认证码‘基于HMAC的OTP,HOTP’算法或基于时间的OTP‘TOTP’算法。
19.一种发布者设备,所述发布者设备被配置为执行根据权利要求1至6中任一项或从属权利要求1至6中任一项的权利要求12所述的方法。
20.一种被配置为执行根据权利要求7至10中任一项或从属于权利要求7至10中任一项的权利要求12至18中任一项所述的方法的代理。
21.一种通信网络,所述通信网络包括根据权利要求19所述的发布者设备、根据权利要求20所述的代理以及一个或更多个订阅者设备。
22.根据权利要求21所述的通信网络,所述通信网络被配置成根据消息排队遥测传输‘MQTT’协议来工作。
23.一种包括指令的计算机程序,当所述程序由计算机执行时,所述指令使所述计算机执行以下方法:
根据权利要求1至6中任一项或从属于权利要求1至6中任一项的权利要求12的方法;或
根据权利要求7至10中任一项或从属于权利要求7至10中任一项的权利要求12至18中任一项的方法。
24.一种存储有根据权利要求23所述的计算机程序的计算机可读数据载体。
25.一种承载根据权利要求23所述的计算机程序的数据载波信号。
CN202080069408.8A 2019-10-07 2020-06-23 安全的发布-订阅通信方法和设备 Pending CN114503507A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB1914444.3A GB2588107B (en) 2019-10-07 2019-10-07 Secure publish-subscribe communication methods and apparatus
GB1914444.3 2019-10-07
PCT/EP2020/067502 WO2021069112A1 (en) 2019-10-07 2020-06-23 Secure publish-subscribe communication methods and apparatus

Publications (1)

Publication Number Publication Date
CN114503507A true CN114503507A (zh) 2022-05-13

Family

ID=68541293

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080069408.8A Pending CN114503507A (zh) 2019-10-07 2020-06-23 安全的发布-订阅通信方法和设备

Country Status (5)

Country Link
US (1) US11658949B2 (zh)
EP (1) EP4014425B1 (zh)
CN (1) CN114503507A (zh)
GB (1) GB2588107B (zh)
WO (1) WO2021069112A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180157692A1 (en) * 2015-06-30 2018-06-07 Omron Corporation Data flow control device and data flow control method
CN116055144A (zh) * 2022-12-29 2023-05-02 电子科技大学 基于物联网的数据安全性分析方法、装置、设备及存储

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113452511B (zh) * 2020-03-24 2023-01-24 国科量子通信网络有限公司 一种基于sdn的量子密钥分发物联网的发布订阅系统及方法
US11354439B2 (en) * 2020-06-03 2022-06-07 International Business Machines Corporation Content control through third-party data aggregation services
CN112104604B (zh) * 2020-08-07 2024-03-29 国电南瑞科技股份有限公司 基于电力物联管理平台的安全接入服务实现系统及方法
US20240007544A1 (en) * 2020-12-09 2024-01-04 Sony Group Corporation Broker device, publisher device, subscriber device, publisher-subscriber system, publisher-subscriber method
US11848767B2 (en) * 2021-06-01 2023-12-19 Apple Inc. Privacy-preserving electronic publication and subscription systems
US20230066604A1 (en) * 2021-08-30 2023-03-02 Hewlett Packard Enterprise Development Lp Performance improvement for encrypted traffic over ipsec
US11985211B2 (en) * 2022-03-16 2024-05-14 Cisco Technology, Inc. Dynamic hashing framework for synchronization between network telemetry producers and consumers
WO2024030308A1 (en) * 2022-08-02 2024-02-08 Capital One Services, Llc Data exchange protection and governance system
EP4322471A1 (de) * 2022-08-08 2024-02-14 Siemens Aktiengesellschaft Verfahren zum identitätsabgleich von übertragenen daten innerhalb eines publish-subscribe basierten kommunikationsnetzes

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070067389A1 (en) * 2005-07-30 2007-03-22 International Business Machines Corporation Publish/subscribe messaging system
US20100067695A1 (en) * 2008-09-15 2010-03-18 Yun-Wei Liao Message processing apparatus and processing method thereof
US20140372748A1 (en) * 2013-06-18 2014-12-18 International Business Machines Corporation Topic protection policy for publish-subscribe messaging system
US20170155628A1 (en) * 2015-12-01 2017-06-01 Encrypted Dynamics LLC Device, system and method for fast and secure proxy re-encryption
US20190394175A1 (en) * 2018-06-21 2019-12-26 University Of Maryland, Baltimore County Systems and methods for permissioned blockchain infrastructure with fine-grained access control and confidentiality-preserving publish/subscribe messaging

Family Cites Families (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5404394A (en) * 1993-05-24 1995-04-04 Comsat Corporation Secure communication system
US6158007A (en) 1997-09-17 2000-12-05 Jahanshah Moreh Security system for event based middleware
US20030159049A1 (en) * 2002-02-21 2003-08-21 Koninklijke Philips Electronics N.V. Copy-protection by alteration of control signals
EP2270622B1 (en) * 2003-06-05 2016-08-24 Intertrust Technologies Corporation Interoperable systems and methods for peer-to-peer service orchestration
CA2590989C (en) * 2007-06-05 2014-02-11 Diversinet Corp. Protocol and method for client-server mutual authentication using event-based otp
WO2012107058A1 (en) 2011-02-11 2012-08-16 Nec Europe Ltd. Method and system for supporting user authentication to a service
US8601544B1 (en) 2011-12-21 2013-12-03 Emc Corporation Computer system employing dual-band authentication using file operations by trusted and untrusted mechanisms
US9594921B2 (en) * 2012-03-02 2017-03-14 International Business Machines Corporation System and method to provide server control for access to mobile client data
KR101493212B1 (ko) 2012-10-31 2015-02-23 삼성에스디에스 주식회사 아이디 기반 암호화, 복호화 방법 및 이를 수행하기 위한 장치
US8955081B2 (en) 2012-12-27 2015-02-10 Motorola Solutions, Inc. Method and apparatus for single sign-on collaboraton among mobile devices
GB2509709A (en) * 2013-01-09 2014-07-16 Ibm Transparent encryption/decryption gateway for cloud storage services
US10389887B2 (en) 2013-03-14 2019-08-20 Aeris Communications, Inc. Application specific M2M billing reconciliation
DE202015009968U1 (de) 2014-04-29 2022-01-27 Twitter, Inc. Anwendungsübergreifende delegierte Authentifizierung
US9521122B2 (en) * 2014-05-09 2016-12-13 International Business Machines Corporation Intelligent security analysis and enforcement for data transfer
US9774577B2 (en) 2014-06-24 2017-09-26 Tata Consultancy Services Limited Device, system and method providing data security and attribute based data access in participatory sensing
EP3767896A1 (en) * 2014-08-12 2021-01-20 Eingot LLC A zero-knowledge environment based social networking engine
US20160112438A1 (en) 2014-10-17 2016-04-21 Christian Hengstler Secure messaging in message-oriented systems
US20160269418A1 (en) * 2015-03-11 2016-09-15 Nagula Tharma Sangary Method, system, and apparatus for managing and storing data based on information sensitivity
SG10201504240VA (en) 2015-05-29 2016-12-29 Huawei Internat Pte Ltd A method and system for secure sms communications
FR3043292B1 (fr) 2015-11-03 2017-10-27 Commissariat Energie Atomique Methode de chiffrement basee sur les attributs comprenant une phase de pre-calcul
KR101792404B1 (ko) 2016-03-29 2017-11-01 전자부품연구원 M2M/IoT 시스템에서 MQTT 프로토콜을 활용한 메시지 전달 방법
US10681012B2 (en) 2016-10-26 2020-06-09 Ping Identity Corporation Methods and systems for deep learning based API traffic security
US10645181B2 (en) * 2016-12-12 2020-05-05 Sap Se Meta broker for publish-subscribe-based messaging
US10313343B2 (en) 2016-12-28 2019-06-04 Mcafee, Llc Fabric assisted identity and authentication
US10164983B2 (en) 2017-01-20 2018-12-25 Verizon Patent And Licensing Inc. Distributed authentication for internet-of-things resources
US10432535B2 (en) 2017-02-28 2019-10-01 Hewlett Packard Enterprise Development Lp Performing a specific action on a network packet identified as a message queuing telemetry transport (MQTT) packet
EP3596649B1 (en) 2017-03-13 2021-12-22 McAfee, LLC Security risk evaluation across user devices
EP3376731B1 (en) 2017-03-15 2019-12-25 ABB Schweiz AG Rule-based information exchange in internet of things
US10757103B2 (en) 2017-04-11 2020-08-25 Xage Security, Inc. Single authentication portal for diverse industrial network protocols across multiple OSI layers
US11134092B2 (en) 2017-04-12 2021-09-28 International Business Machines Corporation Security for internet of things devices
CN107070652B (zh) 2017-04-24 2019-07-23 湖南科技学院 一种基于cp-abe的密文防篡改的车联网隐私保护方法及系统
EP4178242A1 (en) 2017-05-05 2023-05-10 Microsoft Technology Licensing, LLC Methods of and systems of service capabilities exposure function (scef) based internet-of-things (iot) communications
US10498754B2 (en) 2017-06-09 2019-12-03 Verizon Patent And Licensing Inc. Systems and methods for policing and protecting networks from attacks
CN107708112A (zh) 2017-11-02 2018-02-16 重庆邮电大学 一种适用于mqtt‑sn协议的加密方法
US10838954B1 (en) * 2017-12-14 2020-11-17 Amazon Technologies, Inc. Identifying user content
US11531645B2 (en) 2017-12-15 2022-12-20 Slack Technologies, Llc Method, apparatus and computer program product for improving data indexing in a group-based communication platform
US11026090B2 (en) * 2018-01-08 2021-06-01 All Purpose Networks, Inc. Internet of things system with efficient and secure communications network
US10673882B2 (en) 2018-01-15 2020-06-02 International Business Machines Corporation Network flow control of internet of things (IoT) devices
US10601960B2 (en) * 2018-02-14 2020-03-24 Eingot Llc Zero-knowledge environment based networking engine
CN111107085A (zh) * 2019-12-18 2020-05-05 青岛联众智芯科技有限公司 一种基于发布订阅模式的安全通讯方法
US11568596B2 (en) * 2020-07-23 2023-01-31 Salesforce.Com, Inc. Non-blocking token authentication cache

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070067389A1 (en) * 2005-07-30 2007-03-22 International Business Machines Corporation Publish/subscribe messaging system
US20100067695A1 (en) * 2008-09-15 2010-03-18 Yun-Wei Liao Message processing apparatus and processing method thereof
US20140372748A1 (en) * 2013-06-18 2014-12-18 International Business Machines Corporation Topic protection policy for publish-subscribe messaging system
US20170155628A1 (en) * 2015-12-01 2017-06-01 Encrypted Dynamics LLC Device, system and method for fast and secure proxy re-encryption
US20190394175A1 (en) * 2018-06-21 2019-12-26 University Of Maryland, Baltimore County Systems and methods for permissioned blockchain infrastructure with fine-grained access control and confidentiality-preserving publish/subscribe messaging

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180157692A1 (en) * 2015-06-30 2018-06-07 Omron Corporation Data flow control device and data flow control method
US11748326B2 (en) * 2015-06-30 2023-09-05 Omron Corporation Data flow control device and data flow control method
CN116055144A (zh) * 2022-12-29 2023-05-02 电子科技大学 基于物联网的数据安全性分析方法、装置、设备及存储

Also Published As

Publication number Publication date
WO2021069112A1 (en) 2021-04-15
EP4014425A1 (en) 2022-06-22
US20220353247A1 (en) 2022-11-03
GB201914444D0 (en) 2019-11-20
GB2588107B (en) 2022-11-02
GB2588107A (en) 2021-04-21
US11658949B2 (en) 2023-05-23
EP4014425B1 (en) 2023-03-22

Similar Documents

Publication Publication Date Title
EP4014425B1 (en) Secure publish-subscribe communication methods and apparatus
JP6923611B2 (ja) サービス層におけるコンテンツセキュリティ
US10069800B2 (en) Scalable intermediate network device leveraging SSL session ticket extension
US10693848B2 (en) Installation of a terminal in a secure system
EP3205048B1 (en) Generating a symmetric encryption key
CN109428867B (zh) 一种报文加解密方法、网路设备及系统
US9444807B2 (en) Secure non-geospatially derived device presence information
US10356090B2 (en) Method and system for establishing a secure communication channel
KR102433939B1 (ko) 무선 네트워크들에서 빠르고, 안전하며 프라이버시에 해가 되지 않는 인터넷 접속 발견을 위한 방법들
US10511596B2 (en) Mutual authentication
US10733309B2 (en) Security through authentication tokens
WO2020020007A1 (zh) 网络接入方法、装置、终端、基站和可读存储介质
WO2016068942A1 (en) Encryption for transactions in a memory fabric
CN110832806B (zh) 针对面向身份的网络的基于id的数据面安全
CN110995730B (zh) 数据传输方法、装置、代理服务器和代理服务器集群
US20230318818A1 (en) Quantum cryptography in an internet key exchange procedure

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