IP Library Granted Patent US 11,848,923
Granted Patent B2
US 11,848,923 · App. 17/156,945 · Granted Dec 19, 2023

Secure peer-to-peer connection network and associated protocols for a group-based communication system

Inventors: Andrew MacDonald (San Francisco, CA); Mark Christian (Oakland, CA)
Assignee: Salesforce, Inc.
H04L63/065H04L63/0807H04L63/0876H04L63/104
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 11,848,923
App. No.
17/156,945
Granted
Dec 19, 2023
Kind
B2
Abstract

Secure peer-to-peer connection network and/or protocols for a group-based communication system, in which, a peer-to-peer connection request associated with a first identifier for a first client device and a second identifier for a second client device are received. The first identifier and the second identifier are compared to a group-based communication system validation registry associated with the group-based communication system and, based at least in part on a determination that the peer-to-peer connection request is authorized per the group-based communication system validation registry, a peer-to-peer connection between the second client device and the first client device is established.

Claims (55)

1. A group-based communication system comprising:

one or more processors; and

one or more computer-readable media storing instructions that, when executed by the one or more processors, cause the group-based communication system to perform operations comprising:

receiving a peer-to-peer connection request associated with a first identifier for a first client device and a second identifier for a second client device;

comparing the first identifier and the second identifier to a group-based communication system validation registry that is maintained by the group-based communication system and that stores data associated with groups of users of the group-based communication system;

determining that the first identifier and the second identifier are both within a peer-to-peer group of the groups of users included within the data stored by the group-based communication system validation registry, wherein users included in the peer-to-peer group have been pre-authorized to establish peer-to-peer connections with one another; and

based at least in part on a determination that the peer-to-peer connection request is authorized based at least in part on the first identifier and the second identifier both being within the peer-to-peer group, causing establishment of a peer-to-peer connection between the second client device and the first client device for sharing data associated with the group-based communication system.

2. The group-based communication system as claim 1 recites, wherein the peer-to-peer connection request is received, from the first client device, in response to the first client device (i) receiving a broadcast communication packet from the second client device, wherein at least a portion of the broadcast communication packet is encrypted using encryption data associated with a group with which the first identifier and the second identifier are associated, and (ii) decrypting the broadcast communication packet using the encryption data.

3. The group-based communication system as claim 1 recites, the operations further comprising:

receiving, from the second client device, a token generation request;

generating, based at least in part on the token generation request and encryption data, a token; and

sending the token to the first client device, wherein the peer-to-peer connection request is received in response to sending the token to the first client device.

4. The group-based communication system as claim 3 recites, the operations further comprising:

receiving the token from the first client device;

generating, in response to receiving the token and based at least in part on a second determination that the first client device, the second client device, and the token are associated with a same group, a validation packet; and

sending the validation packet to the first client device, wherein the peer-to-peer connection request is received in response to sending the validation packet to the first client device.

5. The group-based communication system as claim 4 recites, wherein determining that the first client device, the second client device, and the token are associated with the same group is based at least in part on a decryption routine, and wherein generating the validation packet is further based at least in part on a second determination that an output of the decryption routine corresponds to a token generation request used to generate the token.

6. The group-based communication system as claim 4 recites, the operations further comprising storing the token in the group-based communication system validation registry, wherein the token is associated with the first client device and is usable for determining whether the peer-to-peer connection request is authorized.

7. The group-based communication system as claim 1 recites, the operations further comprising:

determining whether the first identifier and the second identifier are associated with at least one of a same group identifier or a same group-based communication interface; and

based at least in part on a second determination that the first identifier and the second identifier are associated with at least one of the same group identifier or the same group-based communication interface, determining that the peer-to-peer connection request is authorized.

8. The group-based communication system as claim 7 recites, the operations further comprising:

determining whether the first identifier and the second identifier are associated with a same privilege; and

based at least in part on a second determination that the first identifier and the second identifier are associated with the same privilege, determining that the peer-to-peer connection request is authorized.

9. The group-based communication system as claim 1 recites, wherein the peer-to-peer connection request is associated with a token, the operations further comprising:

determining whether the first identifier is associated with the token in the group-based communication system validation registry; and

based at least in part on a second determination that the first identifier is associated with the token in the group-based communication system validation registry, determining that the peer-to-peer connection request is authorized.

10. The group-based communication system as claim 1 recites, the operations further comprising, based at least in part on the determination that the peer-to-peer connection request is authorized per the group-based communication system validation registry, transmitting, to the second client device, a peer-to-peer initiation instruction that comprises a data object that indicates at least one of (i) a characteristic or (ii) a condition associated with the data to be shared via the peer-to-peer connection, wherein the peer-to-peer connection is established based at least in part on the peer-to-peer initiation instruction.

11. A method, implemented at least in part by a group-based communication server of a group-based communication system, the method comprising:

receiving a peer-to-peer connection request associated with a first identifier for a first client device and a second identifier for a second client device;

comparing the first identifier and the second identifier to a group-based communication system validation registry that is maintained by the group-based communication system and that stores data associated with groups of users of the group-based communication system;

determining that the first identifier and the second identifier are both within a peer-to-peer group of the groups of users included within the data stored by the group-based communication system validation registry, wherein users included in the peer-to-peer group have been pre-authorized to establish peer-to-peer connections with one another; and

based at least in part on a determination that the peer-to-peer connection request is authorized based at least in part on the first identifier and the second identifier both being within the peer-to-peer group, causing establishment of a peer-to-peer connection between the second client device and the first client device for sharing data associated with the group-based communication system.

12. The method as claim 11 recites, wherein the first client device and the second client device are associated with a common local area connection, and wherein the peer-to-peer connection request is received in response to the first client device receiving a broadcast communication packet from the second client device via the common local area connection, wherein the broadcast communication packet identifies the second identifier.

13. The method as claim 11 recites, further comprising:

generating, based at least in part on receiving a token generation request from the second client device, a token;

storing the token in the group-based communication system validation registry, wherein the token is associated with the first identifier and the second identifier; and

sending the token to the first client device, wherein the peer-to-peer connection request is received in response to sending the token to the first client device.

14. The method as claim 11 recites, wherein determining whether the peer-to-peer connection request is authorized is based on one or more of:

a group identifier associated with the first identifier or the second identifier;

a group-based communication interface associated with the first identifier or the second identifier; or

a token, in the group-based communication system validation registry, associated with the first identifier or the second identifier.

15. The method as claim 11 recites, further comprising, based at least in part on the determination that the peer-to-peer connection request is authorized per the group-based communication system validation registry, transmitting, to the second client device, a peer-to-peer initiation instruction associated with a data object instructing the second client device to transmit all data received by the second client device and from the group-based communication server, that is associated with a group identifier with which the first identifier and the second identifier are associated, to the first client device.

16. The method as claim 11 recites, further comprising, based at least in part on the determination that the peer-to-peer connection request is authorized per the group-based communication system validation registry, transmitting, to the second client device, a peer-to-peer initiation instruction associated with a data object instructing the second client device to transmit a portion of data received by the second client device and from the group-based communication server, that is (i) associated with a group identifier with which the first identifier and the second identifier are associated, and (ii) is requested by the first client device, to the first client device.

17. The method as claim 11 recites, further comprising, based at least in part on the determination that the peer-to-peer connection request is authorized per the group-based communication system validation registry, transmitting, to the second client device, a peer-to-peer initiation instruction associated with a data object instructing the second client device to transmit all data received by the second client device and from the group-based communication server, that is associated with a group identifier with which the first identifier and the second identifier are associated, to the first client device in response to an indication that the first client device at least one of (i) lacks connection to the group-based communication server or (ii) is associated with a suboptimal connection to the group-based communication server.

18. One or more non-transitory computer-readable media storing instructions that, when executed by one or more processors of a group-based communication system, cause the group-based communication system to perform operations comprising:

receiving a peer-to-peer connection request associated with a first identifier for a first client device and a second identifier for a second client device;

comparing the first identifier and the second identifier to a group-based communication system validation registry that is maintained by the group-based communication system and that stores data associated with groups of users of the group-based communication system;

determining that the first identifier and the second identifier are both within a peer-to-peer group of the groups of users included within the data stored by the group-based communication system validation registry, wherein users included in the peer-to-peer group have been pre-authorized to establish peer-to-peer connections with one another; and

based at least in part on a determination that the peer-to-peer connection request is authorized based at least in part on the first identifier and the second identifier both being within the peer-to-peer group, causing establishment of a peer-to-peer connection between the second client device and the first client device for sharing data associated with the group-based communication system.

19. The one or more non-transitory computer-readable media as claim 18 recites, wherein determining whether the peer-to-peer connection request is authorized is based on one or more of:

a group identifier associated with the first identifier or the second identifier;

a group-based communication interface associated with the first identifier or the second identifier; or

a token, in the group-based communication system validation registry, associated with the first identifier or the second identifier.

20. The one or more non-transitory computer-readable media as claim 18 recites, the operations further comprising, based at least in part on the determination that the peer-to-peer connection request is authorized per the group-based communication system validation registry, transmitting, to the second client device, a peer-to-peer initiation instruction that comprises a data object that indicates at least one of (i) a characteristic or (ii) a condition associated with the data to be shared via the peer-to-peer connection, wherein the peer-to-peer connection is established based at least in part on the peer-to-peer initiation instruction.

Assignments (4)
MERGER Recorded Nov 21, 2022
From: SLACK TECHNOLOGIES, LLC
To: SALESFORCE.COM, INC.
Reel/Frame 061972/0569 →
CHANGE OF NAME Recorded Nov 21, 2022
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 061972/0769 →
MERGER AND CHANGE OF NAME Recorded Oct 1, 2021
From: SLACK TECHNOLOGIES, INC.; SLACK TECHNOLOGIES, LLC
To: SLACK TECHNOLOGIES, LLC
Reel/Frame 057683/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 25, 2021
From: MACDONALD, ANDREW; CHRISTIAN, MARK
To: SLACK TECHNOLOGIES, INC.
Reel/Frame 055017/0356 →