IP Library Granted Patent US 10,915,650
Granted Patent B2
US 10,915,650 · App. 16/174,499 · Granted Feb 9, 2021

Securely sharing files with user devices based on location

Inventors: Praveen Raja Dhanabalan (Bangalore, IN); Saurabh Pant (Bangalore, IN)
Assignee: Citrix Systems, Inc.
G06F21/6218G06F16/176H04L63/0853H04L63/0876H04L63/107H04L67/06H04W12/06
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,915,650
App. No.
16/174,499
Granted
Feb 9, 2021
Kind
B2
Abstract

Methods and systems for securely sharing files with user devices based on location are described herein. A computing device may receive, from a user device, a request to share a file. The computing device may determine other user devices at the location of the user device desiring to share a file. Unique tokens and/or unique session identifiers may be generated to facilitate secure sharing of the file, and each token and/or session identifier may correspond to a different user device. The computing device may send, to each different user device, the device's corresponding token and/or session identifier. The computing device may also send, to the user device desiring to share the file, the tokens and/or session identifiers for the other user devices. The user device may securely send the file to one or more of the other user devices using the tokens and/or session identifiers.

Claims (73)

1. A method comprising:

receiving, by a server and from a first user device, a request to share a file;

determining, by the server, one or more user devices located within an area that includes a first location at which the first user device is located, the one or more user devices being different from the first user device;

based on the receiving the request to share the file, generating, by the server, identification information for the one or more user devices on a per device basis, the identification information uniquely identifies individual devices of the one or more user devices from other devices within the area and the first user device;

sending, by the server, different pieces of the identification information to the one or more user devices on a per device basis, so that the pieces of the identification information received by a given device of the one or more user devices is indicative of that device; and

sending, by the server, the identification information to the first user device so as to enable the first user device to securely send the file to at least one of the one or more user devices.

2. The method of claim 1 , wherein the determining the one or more user devices comprises determining the one or more user devices that are located within a threshold distance from the first user device.

3. The method of claim 1 , further comprising:

receiving location information for the one or more user devices, wherein the determining the one or more user devices comprises:

determining the first location of the first user device, the first location being a geographical location; and

based on a comparison of the location information to the geographical location of the first user device, determining the one or more user devices that are located within the area that includes the geographical location.

4. The method of claim 1 , wherein:

the identification information comprises a plurality of unique tokens and a plurality of unique session identifiers;

the generating the identification information comprises:

generating the plurality of unique tokens, each unique token, of the plurality of unique tokens, corresponding to a different user device of the one or more user devices, and

generating the plurality of unique session identifiers, each unique session identifier, of the plurality of unique session identifiers, corresponding to a different user device of the one or more user devices,

the sending the identification information comprises sending, to each user device of the plurality of one or more user devices, a respective unique token and a respective unique session identifier corresponding to each user device of the one or more user devices, and

the sending the identification information comprises sending, to the first user device, the plurality of unique tokens and the plurality of unique session identifiers.

5. The method of claim 1 , further comprising:

receiving, by the server and from the first user device, the file to be shared;

storing, by the server, the file to be shared; and

sending, by the server and to a second user device at a second location that is remote from the first location at which the first user device is located, the stored file.

6. The method of claim 1 , further comprising:

receiving, by the server and from a second user device at a geographical location different from the first location, a request for the file; and

sending, by the server and to the second user device, the file.

7. The method of claim 1 , further comprising:

before the sending the different pieces of the identification information to the one or more user devices, authenticating, by the server, the one or more user devices; and

based on the authenticating, generating, for the one or more user devices, a secured channel between the server and the first user device, wherein the sending the identification information to the first user device comprises sending, to the first user device and via the secured channel between the server and the first user device, the identification information.

8. A method comprising:

sending, by a first user device and to a server, a request to share a file;

based on the sending the request to share the file, receiving, by the first user device and from the server, first identification information uniquely identifying individual devices of one or more user devices that are different from the first user device;

sending, by the first user device and to the one or more user devices located in proximity of the first user device, identification information requests;

based on the sending the identification information requests, receiving, by the first user device and from the one or more user devices in proximity of the first user device, second identification information; and

based on receiving the second identification information, sending, by the first user device and to the one or more user devices in proximity of the first user device, the file.

9. The method of claim 8 , further comprising:

comparing, by the first user device, the second identification information received from the one or more user devices to the first identification information received from the server; and

based on the comparing, validating, by the first user device, the one or more user devices in proximity of the first user device,

wherein the sending the file is further based on the validating.

10. The method of claim 8 , wherein the sending the identification information requests comprises sending the identification information requests via direct connections between the first user device and the one or more user devices in proximity of the first user device.

11. The method of claim 10 , wherein the direct connections comprise one or more of a Bluetooth connection or a Wi-Fi Direct connection.

12. The method of claim 8 , wherein the sending the identification information requests comprises broadcasting the identification information requests via one or more short-range networks.

13. The method of claim 8 , wherein the receiving the second identification information comprises receiving the second identification information via one or more short-range networks.

14. The method of claim 8 , wherein the first identification information comprises a plurality of unique tokens and a plurality of unique session identifiers, and

wherein the receiving the first identification information comprises receiving, by the first user device, from the server, and via a secured channel between the server and the first user device, the plurality of unique tokens and the plurality of unique session identifiers, each unique token corresponding to a different user device of the one or more user devices and each unique session identifier corresponding to a different user device of the one or more user devices.

15. The method of claim 14 , further comprising:

encrypting, for each user device of the one or more user devices in proximity of the first user device, the file with a unique session identifier corresponding to the each user device,

wherein the sending the file comprises sending, for the each user device of the one or more user devices in proximity of the first user device, the file encrypted with the unique session identifier corresponding to the each user device.

16. The method of claim 8 , further comprising:

based on a determination to share the file with the one or more user devices, sending, by the first user device and to the server, the file.

17. An apparatus comprising:

one or more processors; and

memory storing instructions that, when executed by the one or more processors, cause the apparatus to:

receive, from a first user device, a request to share a file;

determine one or more user devices located within an area that includes a first location at which the first user device is located, the one or more user devices being different from the first user device;

based on the receiving the request to share the file, generate identification information for the one or more user devices on a per device basis, the identification information uniquely identifies individual devices of the one or more user devices from other devices within the area and the first user device;

send different pieces of the identification information to the one or more user devices on a per device basis, so that the pieces of the identification information received by a give device of the one or more user devices is indicative of that device; and

send the identification information to the first user device so as to enable the first user device to securely send the file to at least one of the one or more user devices.

18. The apparatus of claim 17 , wherein the instructions, when executed by the one or more processors, further cause the apparatus to:

receive location information for the one or more user devices, and

wherein the instructions, when executed by the one or more processors, cause the apparatus to determine the one or more user devices by:

determining the first location of the first user device, the first location being a geographical location; and

based on a comparison of the location information to the geographical location of the first user device, determining the one or more user devices that are located within the area that includes the geographical location.

19. The apparatus of claim 17 , wherein:

the identification information comprises a plurality of unique tokens and a plurality of unique session identifiers;

the instructions, when executed by the one or more processors, cause the apparatus to generate the identification information by:

generating the plurality of unique tokens, each unique token, of the plurality of unique tokens, corresponding to a different user device of the one or more user devices,

generating the plurality of unique session identifiers, each unique session identifier of the plurality of unique session identifiers corresponding to a different user device of the one or more user devices,

the instructions, when executed by the one or more processors, cause the apparatus to send the identification information by sending, to each user device of the one or more user devices, a respective unique token and a respective unique session identifier corresponding to each user device of the one or more user devices, and

the instructions, when executed by the one or more processors, cause the apparatus to send the identification information by sending, to the first user device, the plurality of unique tokens and the plurality of unique session identifiers.

20. The apparatus of claim 17 , wherein the instructions, when executed by the one or more processors, further cause the apparatus to:

receive, from the first user device, the file to be shared;

store the file to be shared; and

send, to a second user device at a second location that is remote from the first location at which the first user device is located, the stored file.

Assignments (16)
SECURITY INTEREST Recorded Jul 21, 2025
From: PROGRESS SOFTWARE CORPORATION
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 072094/0790 →
SECURITY INTEREST Recorded Dec 26, 2024
From: PROGRESS SOFTWARE CORPORATION
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 069784/0578 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 12, 2024
From: CITRIX SYSTEMS, INC.
To: PROGRESS SOFTWARE CORPORATION
Reel/Frame 069618/0836 →
RELEASE OF CERTAIN PATENT SECURITY INTERESTS AT REEL/FRAME 067662/0568 Recorded Nov 2, 2024
From: WILMINGTON TRUST, NATIONAL ASSOCIATION
To: CITRIX SYSTEMS, INC.; CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.)
Reel/Frame 069291/0525 →
RELEASE OF CERTAIN PATENT SECURITY INTERESTS AT REEL/FRAME 062079/0001 Recorded Nov 2, 2024
From: WILMINGTON TRUST, NATIONAL ASSOCIATION
To: CITRIX SYSTEMS, INC.
Reel/Frame 069291/0536 →
RELEASE OF CERTAIN PATENT SECURITY INTERESTS AT REEL/FRAME 062112/0262 Recorded Nov 2, 2024
From: BANK OF AMERICA, N.A.
To: CITRIX SYSTEMS, INC.; CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.)
Reel/Frame 069291/0492 →
RELEASE OF CERTAIN PATENT SECURITY INTERESTS AT REEL/FRAME 063340/0164 Recorded Nov 2, 2024
From: WILMINGTON TRUST, NATIONAL ASSOCIATION
To: CITRIX SYSTEMS, INC.; CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.)
Reel/Frame 069291/0503 →
RELEASE OF CERTAIN PATENT SECURITY INTERESTS AT REEL/FRAME 062113/0470 Recorded Nov 2, 2024
From: WILMINGTON TRUST, NATIONAL ASSOCIATION
To: CITRIX SYSTEMS, INC.; CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.)
Reel/Frame 069291/0514 →
SECURITY INTEREST Recorded May 24, 2024
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 067662/0568 →
RELEASE AND REASSIGNMENT OF SECURITY INTEREST IN PATENT (REEL/FRAME 062113/0001) Recorded Apr 14, 2023
From: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
To: CITRIX SYSTEMS, INC.; CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.)
Reel/Frame 063339/0525 →
PATENT SECURITY AGREEMENT Recorded Apr 14, 2023
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 063340/0164 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 062113/0001 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 062112/0262 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 062113/0470 →
SECURITY INTEREST Recorded Sep 30, 2022
From: CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 062079/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 30, 2018
From: DHANABALAN, PRAVEEN RAJA; PANT, SAURABH
To: CITRIX SYSTEMS, INC.
Reel/Frame 047353/0993 →
Continuity (1)
Related Publication 20200134219A1 · Apr 30, 2020