IP Library › Granted Patent US 11,361,055
Granted Patent B1
US 11,361,055 · App. 17/111,559 · Granted Jun 14, 2022

Protection of a content repository using dynamic watermarking

Inventors: Killian Levacher (Dundrum, IE); Beat Buesser (Ashtown, IE); Marco Simioni (Dublin, IE)
Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
G06F21/16G06F2221/0737
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,361,055
App. No.
17/111,559
Granted
Jun 14, 2022
Kind
B1
Abstract

Methods, systems and computer program products for protection of content repositories using dynamic watermarking are provided. Aspects include receiving a request for a code stored in a content repository from a user and identifying a plurality of candidate locations in the code to insert watermarks. Aspects also include generating one or more watermarks and inserting the one or more watermarks in a subset of the plurality of candidate locations in the code. Aspects further include providing the code, including the one or more watermarks, to the user.

Claims (53)

1. A method for dynamic watermarking code in a collaborative software system, the method comprising:

receiving, by a processor, a request for a code stored in a content repository from a user;

identifying, by the processor, a plurality of candidate locations in the code to insert watermarks;

generating, by the processor, one or more watermarks;

inserting, by the processor, the one or more watermarks in a subset of the plurality of candidate locations in the code;

providing, by the processor, the code, including the one or more watermarks, to the user;

receiving an updated code from the user;

obtaining a watermark insertion history for the user;

identifying one or more user-specific watermarks within the updated code received from the user based on the watermark insertion history for the user;

tracking changes to the one or more user-specific watermarks across each commit in the updated code;

removing the one or more user-specific watermarks present within the updated code; and

storing the updated code in a code repository server.

2. The method of claim 1 , wherein the one or more watermarks are generated at least in part based on an identity of the user.

3. The method of claim 2 , wherein the one or more watermarks are generated at least in part based on one or more watermark configuration parameters.

4. The method of claim 2 , wherein the identity of the user is based on at least one of a username of the user and an internet protocol (IP) address of a user device used by the user to request the code.

5. The method of claim 1 , wherein the plurality of candidate locations are identified based at least in part on a code leakage sensitivity parameter.

6. The method of claim 1 , further comprising storing the code provided to the user in a watermarked code database.

7. The method of claim 1 , wherein the one or more watermarks inserted into the code are unique to the user that requested the code.

8. A collaborative software system, comprising:

a memory having computer readable instructions; and

a processor for executing the computer readable instructions, the computer readable instructions including instructions for:

receiving a request for a code stored in a content repository from a user;

identifying a plurality of candidate locations in the code to insert watermarks;

generating one or more watermarks;

inserting the one or more watermarks in a subset of the plurality of candidate locations in the code;

providing the code, including the one or more watermarks, to the user;

receiving an updated code from the user;

obtaining a watermark insertion history for the user;

identifying one or more user-specific watermarks within the updated code received from the user based on the watermark insertion history for the user;

tracking changes to the one or more user-specific watermarks across each commit in the updated code;

removing the one or more user-specific watermarks present within the updated code; and

storing the updated code in a code repository server.

9. The system of claim 8 , wherein the one or more watermarks are generated at least in part based on an identity of the user.

10. The system of claim 9 , wherein the one or more watermarks are generated at least in part based on one or more watermark configuration parameters.

11. The system of claim 9 , wherein the identity of the user is based on at least one of a username of the user and an internet protocol (IP) address of a user device used by the user to request the code.

12. The system of claim 8 , wherein the plurality of candidate locations are identified based at least in part on a code leakage sensitivity parameter.

13. The system of claim 8 , wherein the computer readable instructions further include instructions for storing the code provided to the user in a watermarked code database.

14. The system of claim 8 , wherein the one or more watermarks inserted into the code are unique to the user that requested the code.

15. A computer program product comprising a non-transitory computer readable storage medium having program instructions embodied therewith the program instructions executable by a computer processor to cause the computer processor to perform a method, comprising:

receiving a request for a code stored in a content repository from a user;

identifying a plurality of candidate locations in the code to insert watermarks;

generating one or more watermarks;

inserting the one or more watermarks in a subset of the plurality of candidate locations in the code;

providing the code, including the one or more watermarks, to the user;

receiving an updated code from the user;

obtaining a watermark insertion history for the user;

identifying one or more user-specific watermarks within the updated code received from the user based on the watermark insertion history for the user;

tracking changes to the one or more user-specific watermarks across each commit in the updated code;

removing the one or more user-specific watermarks present within the updated code; and

storing the updated code in a code repository server.

16. The computer program product of claim 15 , wherein the one or more watermarks are generated at least in part based on an identity of the user.

17. The computer program product of claim 16 , wherein the one or more watermarks are generated at least in part based on one or more watermark configuration parameters.

18. The computer program product of claim 16 , wherein the identity of the user is based on at least one of a username of the user and an internet protocol (IP) address of a user device used by the user to request the code.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 4, 2020
From: LEVACHER, KILLIAN; BUESSER, BEAT; SIMIONI, MARCO
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 054541/0097 →
Cited By (1)
US 12,192,215