×

High-performance access management and data protection for distributed messaging applications

  • US 10,574,440 B2
  • Filed: 05/08/2018
  • Issued: 02/25/2020
  • Est. Priority Date: 05/06/2016
  • Status: Active Grant
First Claim
Patent Images

1. One or more tangible, non-transitory, machine readable media storing instructions that when executed by one or more processors effectuate operations comprising:

  • receiving, with a publish-subscribe application executed by one or more processors, from a first data producer, a first message and a first request to publish the first message to a first channel specified by the first request, wherein;

    at least part of the first message is encrypted by the first data producer,the first data producer is one of a plurality of data producers for which the publish-subscribe application publishes messages,the first channel is one of a plurality of channels on which the publish-subscribe application publishes messages on behalf of the plurality of data producers,at least part of the at least part of the first message is decryptable with a first private encryption key of a first public-private encryption key pair associated with the first channel,each of the plurality of channels is associated with at least one different respective public-private encryption key pair among a plurality of public-private encryption key pairs,private encryption keys of the public-private encryption key pairs are maintained in a first security domain,the plurality of data producers are external to the first security domain, andpublic encryption keys of the public-private encryption key pairs are accessible to the plurality of data producers;

    determining, with the publish-subscribe application, that a first subscriber is to be granted access to at least part of messages published to the first channel, wherein;

    the first subscriber is one of a plurality of subscribers to which the publish-subscribe application publishes messages on the plurality of channels from the plurality of data producers;

    obtaining, with the publish-subscribe application, in the first security domain, a second public encryption key of the first subscriber, wherein;

    the second public encryption key is a member of a second public-private encryption key pair,each of the subscribers is associated with at least one public encryption key from among a plurality of public-private encryption key pairs, andrespective subscribers have access to associated private encryption keys among the plurality of public-private encryption key pairs;

    generating a first re-encryption key associated with the first channel and the first subscriber, wherein;

    the first re-encryption key is generated with proxy re-encryption based on the first private encryption key and the second public encryption key, andthe first re-encryption key is generated within the first security domain, such that the first private encryption key is not revealed outside of the first security domain by generating the first re-encryption key;

    in response to determining that the first subscriber is to be granted access to the first channel, providing the first re-encryption key to a portion of the publish-subscribe application outside of the first security domain;

    transforming at least part of the at least part of the first message that is encrypted with the first re-encryption key to at least partially form a first transformed message, wherein;

    transforming at least part of the at least part of the first message is performed without decrypting the at least part of the at least part of the first message, andtransforming at least part of the at least part of the first message is performed outside of the first security domain; and

    providing the first transformed message on the first channel to the first subscriber, wherein;

    the at least part of the at least part of the first message is decryptable based on the second private encryption key of the first subscriber.

View all claims
  • 1 Assignment
Timeline View
Assignment View
    ×
    ×