Secure message routing in multi-tenant system without content inspection
A method for message routing in a multi-tenant system includes encrypting an ID of a tenant with a public key that is generated for the tenant together with a corresponding private key; storing a set of the encrypted ID and the public key in both a device and a server of the multi-tenant system; transmitting from the device to the server a message comprising the set of the encrypted ID and the public key stored in the device; and detecting whether the message is directed toward a data store for the tenant by comparing the set comprised in the message and the set stored in the server.
1. A method for message routing in a multi-tenant system, comprising:
encrypting an ID of a tenant with a public key that is generated for the tenant together with a corresponding private key;
storing a set of the encrypted ID and the public key in both a device and a server of the multi-tenant system;
transmitting from the device to the server a message comprising the set of the encrypted ID and the public key stored in the device;
detecting by each of a plurality of receivers that are within the server whether the message is directed toward a data store for the tenant by comparing the set comprised in the message and the set stored in the server; and
storing, by one of the plurality of the receivers, a payload of the message onto the data store associated with the one of the plurality of receivers based on the comparison.
2. The method of claim 1 , wherein
the payload is encrypted by a block cypher associated with the tenant, and
the method further comprises decrypting, by the one of the plurality of receivers, the encrypted payload with a block cipher.
3. The method of claim 2 , wherein
the message comprises a data endpoint ID that identifies the device that has sent the message to the server, and
the method further comprises storing the decrypted payload based on the data endpoint ID.
4. A system comprising:
a server that comprises a data store and a plurality of receivers;
a first device that transmits a message to the server; and
a second device that:
encrypts an ID of a tenant with a public key that is generated for the tenant together with a corresponding private key; and
stores a set of the encrypted ID and the public key in both the server and the first device,
wherein the first device transmits to the server the message comprising the set of the encrypted ID and the public key,
each of the plurality of receivers detects whether the message is directed toward the data store for the tenant by comparing the set comprised in the message and the set stored in the server, and
one of the plurality of receivers stores a payload of the message onto the data store associated with the one of the plurality of the receivers based on the comparison.
5. The system of claim 4 , wherein
the payload is encrypted by a block cypher associated with the tenant, and
the one of the plurality of receivers decrypts the encrypted payload with a block cipher.
6. The method of claim 5 , wherein
the message comprises a data endpoint ID that identifies the device that has sent the message to the server, and
the one of the plurality of receivers stores the decrypted payload based on the data endpoint ID.