IP Library Granted Patent US 10,432,589
Granted Patent B1
US 10,432,589 · App. 15/223,557 · Granted Oct 1, 2019

Secure end-to-end communications

Inventors: David M'Raihi (San Carlos, CA); David Gurle (Palo Alto, CA); Michael Harmon (Saratoga, CA); Jon McLachlan (San Francisco, CA); Ivan Rylach (Mountain View, CA); Sergey Stelmakh (Mountain View, CA)
Assignee: Symphony Communication Services Holdings LLC
H04L63/0428H04L9/14H04L9/302H04L9/3249H04L51/04H04L63/065
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,432,589
App. No.
15/223,557
Granted
Oct 1, 2019
Kind
B1
Abstract

A communication server, interacting with an organization system having users that wish to communicate securely, provides secure communication capability to the users, without the communication server itself having access to unencrypted content of the user communications or to cryptographic keys that would allow the communication server to derive the unencrypted content. Thus, the communication server that provides the secure communication capability need not itself be trusted by the users with access to communicated content. To achieve this, the various entities communicate to exchange cryptographic keys in such a manner that the communication server never obtains usable copies of the cryptographic keys. Secure search capability is also provided by the client devices supplying a set of message tokens obtained by transformations that the communication server cannot replicate, and the communication server maintaining a search index storing the message tokens in association with the (encrypted) messages from which they were obtained.

Claims (45)

1. A computer-implemented method performed by a client device of a user, comprising:

obtaining, from a communication server, conversation key data for participating in a single, secure conversation between a plurality of users;

deriving a conversation key from the conversation key data, the conversation key generated by an organization system remote from the communication server and administered by an organization different from an organization that administers the communication server,

wherein the conversation key comprises a cryptographic key that permits the plurality of users to participate in the single, secure conversation from a plurality of conversations established by the organization system;

encrypting a message of the user using the conversation key; and

sending the encrypted message to the communication server for delivery to other users of the plurality of users,

wherein the communication server cannot decrypt the encrypted message.

2. The computer-implemented method of claim 1 , wherein the conversation key data comprises the conversation key encrypted using a user account key of the user.

3. The computer-implemented method of claim 2 , further comprising sending a request to the organization system for the user account key as signed by a private key of the communication server and as signed by a private key of a user of the user account key.

4. The computer-implemented method of claim 3 , further comprising:

receiving an encrypted form of the user account key;

decrypting the encrypted form of the user account key to obtain the user account key; and

deriving the conversation key from the conversation key data using the user account key.

5. The computer-implemented method of claim 2 , wherein the communication server does not have access to the user account key in unencrypted form.

6. The computer-implemented method of claim 1 , wherein the communication server does not have access to an unencrypted form of the conversation key.

7. The computer-implemented method of claim 1 , wherein each user from the plurality of users is associated with a respective user account key.

8. A computer-implemented method performed by a communication server, the computer-implemented method comprising:

storing a wrapped version of a conversation key generated at an organization system, the wrapped version being generated by encrypting the conversation key using a user account key generated by the organization system, the organization system being remote from the communication server and administered by an organization different from an organization that administers the communication server,

wherein the conversation key comprises a cryptographic key that permits a set of client devices to participate in a single conversation from a plurality of conversations established by the organization system;

receiving a message from a first client device in the set of client devices, the message encrypted using the conversation key and being undecipherable by the communication server;

sending the message for delivery to a second client device in the set of client devices;

receiving a request from the second client device for the conversation key and for the user account key; and

sending the wrapped version of the conversation key for delivery to the second client device;

sending the request for the user account key for delivery to the organization system,

wherein the organization system sends a wrapped version of the user account key to the second client device in response to receiving the request for the user account key, and

wherein the second client device unwraps the wrapped version of the user account key and unwraps the wrapped version of the conversation key using the user account key.

9. The computer-implemented method of claim 8 , wherein sending the request for the user account key comprises sending a request for the user account key as signed by a private key of the communication server and as signed by a private key of a user of the user account key.

10. The computer-implemented method of claim 8 , wherein the communication server does not have access to an unencrypted form of the conversation key.

11. The computer-implemented method of claim 8 , wherein the wrapped version of the user account key is wrapped with a public key of the user, wherein the second client device unwraps the wrapped version of the user account key using a private key of the user.

12. The computer-implemented method of claim 8 , wherein each user of a client device from the set of client devices is associated with a respective user account key.

13. The computer-implemented method of claim 8 , wherein the communication server does not have access to the user account key in unencrypted form.

14. A communication server comprising:

a physical computer processor; and

a non-transitory computer-readable storage medium storing instructions that when executed by the physical computer processor perform actions comprising:

storing a wrapped version of a conversation key generated at an organization system, the wrapped version being generated by encrypting the conversation key using a user account key generated by the organization system, the organization system being remote from the communication server and administered by an organization different from an organization that administers the communication server,

wherein the conversation key comprises a cryptographic key that permits a set of client devices to participate in a single conversation from a plurality of conversations established by the organization system;

receiving a message from a first client device in the set of client devices, the message encrypted using the conversation key and being undecipherable by the communication server;

sending the message for delivery to a second client device in the set of client devices;

receiving a request from the second client device for the conversation key and for the user account key; and

sending (i) the wrapped version of the conversation key for delivery to the second client device, and (ii) the request for the user account key for delivery to the organization system.

15. The communication server of claim 14 , wherein sending the request for the user account key comprises sending a request for the user account key as signed by a private key of the communication server and as signed by a private key of a user of the user account key.

16. The communication server of claim 14 , wherein the communication server does not have access to an unencrypted form of the conversation key.

17. The communication server of claim 14 , wherein the wrapped version of the user account key is wrapped with a public key of the user, and wherein the second client device unwraps the wrapped version of the user account key using a private key of the user.

18. The communication server of claim 14 , wherein each user of a client device from the set of client devices is associated with a respective user account key.

19. The communication server of claim 14 , wherein the communication server does not have access to the user account key in unencrypted form.

Assignments (4)
RELEASE OF SECURITY INTEREST Recorded Dec 18, 2025
From: HPS INVESTMENT PARTNERS, LLC, AS GRANTEE
To: SYMPHONY COMMUNICATION SERVICES, LLC; CLOUD9 TECHNOLOGIES LLC
Reel/Frame 073264/0835 →
SECURITY INTEREST Recorded Sep 29, 2025
From: SYMPHONY COMMUNICATION SERVICES HOLDINGS, LLC; SYMPHONY COMMUNICATION SERVICES, LLC; CLOUD9 TECHNOLOGIES LLC; PERZO INC.; STREETLINX INC.; AMENITY ANALYTICS, INC.
To: MUFG BANK, LTD.
Reel/Frame 072408/0921 →
SECURITY INTEREST Recorded Jun 24, 2021
From: CLOUD9 TECHNOLOGIES LLC; SYMPHONY COMMUNICATION SERVICES HOLDINGS, LLC
To: HPS INVESTMENT PARTNERS, LLC
Reel/Frame 056652/0359 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 2, 2016
From: M'RAIHI, DAVID; GURLE, DAVID; HARMON, MICHAEL; MCLACHLAN, JON; RYLACH, IVAN; STELMAKH, SERGEY
To: SYMPHONY COMMUNICATION SERVICES HOLDINGS LLC
Reel/Frame 039320/0510 →
Continuity (2)
Provisional Application 62199798 · Jul 31, 2015
Provisional Application 62199803 · Jul 31, 2015
Cited By (2)
US 12,524,561 US 12,621,522