IP Library Granted Patent US 11,544,233
Granted Patent B2
US 11,544,233 · App. 16/987,696 · Granted Jan 3, 2023

File source tracking

Inventors: Arnav Akhoury (Bangalore, IN); Divyansh Deora (Bangalore, IN); Satish Vanahalli (Bangalore, IN); Nandikotkur Achyuth (Bangalore, IN)
Assignee: Citrix Systems, Inc.
G06F16/1873G06F16/1734H04L9/3247H04L63/102
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,544,233
App. No.
16/987,696
Granted
Jan 3, 2023
Kind
B2
Abstract

A computing system may determine different patterns of modifications that are to be made to data of a file to generate respective modified versions of the file, the different patterns of modifications enabling identification of other files derived from the respective modified versions of the file, the different patterns of modifications including a first pattern of modifications. The computing system may generate a first modified version of the file at least in part by modifying the data based on the first pattern of modifications, may send the first modified version of the file to a client device, and may store signature data indicative the first pattern of modifications so as to enable identification of other files derived from the first modified version of the file.

Claims (96)

1. A method, comprising:

determining, by a computing system, at least a first address within an original copy of a file at which first data of the original copy of the file is to be modified in a first manner to generate a first modified version of the file;

generating, by the computing system, the first modified version of the file at least in part by modifying the first data at the first address in the first manner;

sending, by the computing system, the first modified version of the file to a first client device;

storing, by the computing system, first signature data identifying one or more bit values stored at the first address in the first modified version of the file;

determining, by the computing system, at least a second address within the original copy of the file at which second data of the original copy of the file is to be modified in a second manner to generate a second modified version of the file that is different than the first modified version of the file;

generating, by the computing system, the second modified version of the file at least in part by modifying the second data at the second address in the second manner;

sending, by the computing system, the second modified version of the file to a second client device; and

storing, by the computing system, second signature data identifying one or more bit values stored at the second address in the second modified version of the file.

2. The method of claim 1 , wherein:

the first modified version of the file is generated in response to receipt of a first request for a copy of the file from the first client device, and

the second modified version of the file is generated in response to receipt of a second request for a copy of the file from the second client device.

3. The method of claim 1 , wherein:

storing the first signature data comprises storing the first signature data as a first record of a blockchain ledger; and

storing the second signature data comprises storing the second signature data as a second record of a blockchain ledger.

4. The method of claim 1 , further comprising:

determining a first user of the first client device to which the first modified version of the file is sent;

generating the first signature data such that the first signature data is further indicative of the first user;

determining a second user of the second client device to which the second modified version of the file is sent; and

generating the second signature data such that the second signature data is further indicative of the second user.

5. The method of claim 1 , wherein:

modifying the first data at the first address further comprises changing a value of at least a first bit in the first data;

configuring the first signature data to identify the changed value of the first bit in the first data;

modifying the second data at the second address further comprises changing a value of at least a second bit in the second data; and

configuring the second signature data to identify the changed value of the second bit in the second data.

6. The method of claim 5 , further comprising:

determining, by the computing system, at least a third address within the original copy of the file at which at least a third bit is to be inserted generate the first modified version of the file;

generating, by the computing system, the first modified version of the file at least in part by inserting at least the third bit at the third address;

configuring the first signature data to identify a value of the third bit inserted at the third address;

determining, by the computing system, at least a fourth address within the original copy of the file at which at least a fourth bit is to be inserted generate the second modified version of the file;

generating, by the computing system, the second modified version of the file at least in part by inserting at least the fourth bit at the fourth address; and

configuring the second signature data to identify the fourth bit inserted at the fourth address.

7. The method of claim 1 , further comprising:

identifying a copy of the file;

determining that second data at the first address of the copy of the file includes the one or more bit values identified by the first signature data; and

determining, based at least in part on the second data including the one or more bit values identified by the first signature data, that the copy of the file was derived from the first modified version of the file.

8. The method of claim 1 , wherein:

modifying the first data at the first address further comprises inserting at least a first bit at the first address; and

configuring the first signature data to identify a value of the first bit inserted at the first address.

9. The method of claim 1 , wherein generating the first modified version of the file further comprises:

extracting a payload from a container of the original copy of the file;

decoding the payload to determine the first data at the first address;

modifying the first data at the first address to generate modified first data;

encoding the modified first data to generate a first modified payload; and

including the first modified payload in the first modified version of the file.

10. The method of claim 9 , further comprising:

determining that the file is of a first file type;

determining, based at least in part on the file being of the first file type, a plurality of addresses within the original copy of the file at which data can potentially be modified to generate the first modified version of the file; and

determining the first address at least in part by selecting the first address from among plurality of addresses.

11. The method of claim 10 , wherein modifying the first data at the first address in the first manner further comprises:

changing a value of at least one bit of an existing addressable unit of data at the first address.

12. The method of claim 10 , wherein modifying the first data at the first address in the first manner further comprises:

inserting at least one new addressable unit of data at the first address.

13. A method, comprising:

determining, by a computing system, at least a first address within an original copy of a file at which first data of the original copy of the file is to be modified in a first manner to generate a first modified version of the file;

generating, by the computing system, the first modified version of the file at least in part by modifying the first data at the first address in the first manner;

sending, by the computing system, the first modified version of the file to a client device;

storing, by the computing system, first signature data identifying one or more bit values stored at the first address in the first modified version of the file;

identifying, by the computing system, a copy of a file;

accessing, by the computing system, stored signature data entries for respective modified versions of the file, wherein the stored signature data entries include the first signature data for the first modified version of the file;

determining, by the computing system, that second data at the first address of the copy of the file includes the one or more bit values identified by the first signature data; and

determining, by the computing system and based at least in part on the second data including the one or more bit values identified by the first signature data, that the copy of the file was derived from the first modified version of the file.

14. The method of claim 13 , further comprising:

extracting a payload from a container of the copy of the file; and

decoding the payload to determine the second data.

15. A computing system, comprising:

at least one processor; and

at least one non-transitory computer-readable medium encoded with instruction which, when executed by the at least one processor, cause the computing system to:

determine at least a first address within an original copy of a file at which first data of the original copy of the file is to be modified in a first manner to generate a first modified version of the file,

generate the first modified version of the file at least in part by modifying the first data at the first address in the first manner,

send the first modified version of the file to a first client device,

store first signature data identifying one or more bit values stored at the first address in the first modified version of the file,

determine at least a second address within the original copy of the file at which second data of the original copy of the file is to be modified in a second manner to generate a second modified version of the file that is different than the first modified version of the file,

generate the second modified version of the file at least in part by modifying the second data at the second address in the second manner,

send the second modified version of the file to a second client device, and

store second signature data identifying one or more bit values stored at the second address in the second modified version of the file.

16. The computing system of claim 15 , wherein the at least one non-transitory computer-readable medium is further encoded with additional instructions which, when executed by the at least one processor, further cause the computing system to:

determine a first user of the first client device to which the first modified version of the file is sent;

generate the first signature data such that the first signature data is further indicative of the first user;

determine a second user of the second client device to which the second modified version of the file is sent; and

generate the second signature data such that the second signature data is further indicative of the second user.

17. The computing system of claim 15 , wherein the at least one non-transitory computer-readable medium is further encoded with additional instructions which, when executed by the at least one processor, further cause the computing system to:

modify the first data at the first address at least in part by changing a value of at least a first bit in the first data;

configuring the first signature data to identify the changed value of the first bit in the first data;

modify the second data at the second address at least in part by changing a value of at least a second bit in the second data; and

configuring the second signature data to identify the changed value of the second bit in the second data.

18. The computing system of claim 15 , wherein the at least one non-transitory computer-readable medium is further encoded with additional instructions which, when executed by the at least one processor, further cause the computing system to:

modify the first data at the first address at least in part by inserting at least a first bit at the first address; and

configure first signature data to identify a value of the first bit inserted at the first address.

19. The computing system of claim 15 , wherein the at least one non-transitory computer-readable medium is further encoded with additional instructions which, when executed by the at least one processor, further cause the computing system to:

generate the first modified version of the file in response to receipt of a first request for a copy of the file from the first client device; and

generate the second modified version of the file in response to receipt of a second request for a copy of the file from the second client device.

20. The computing system of claim 15 , wherein the at least one non-transitory computer-readable medium is further encoded with additional instructions which, when executed by the at least one processor, further cause the computing system to:

identify a copy of the file;

determine that second data at the first address of the copy of the file includes the one or more bit values identified by the first signature data; and

determine, based at least in part on the second data including the one or more bit values identified by the first signature data, that the copy of the file was derived from the first modified version of the 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 →
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 →
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 Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 062113/0470 →
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 →
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 →
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 Aug 7, 2020
From: AKHOURY, ARNAV; DEORA, DIVYANSH; VANAHALLI, SATISH; ACHYUTH, NANDIKOTKUR
To: CITRIX SYSTEMS, INC.
Reel/Frame 053431/0749 →
Priority Claims (1)
IN 202041026752 · Jun 24, 2020 · national
Continuity (1)
Related Publication 20210406225A1 · Dec 30, 2021