IP Library Granted Patent US 7,073,197
Granted Patent B2
US 7,073,197 · App. 10/737,079 · Granted Jul 4, 2006

Methods and apparatus for protecting information

Assignee: ShieldIP, Inc.
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 7,073,197
App. No.
10/737,079
Granted
Jul 4, 2006
Kind
B2
Abstract

System, methods and apparatus are applicable to enable owners and vendors of software to protect their intellectual property and other rights in that software. The system also enables vendors or distributors of software to charge per-use for an instance of software. The system produces a unique, unforgeable, tag for every vendor supplied instance (copy) of specific software. Each user device is equipped with a supervising program that ensures, by use of the tag and other information, that no software instance will be used on the device in a manner infringing on the vendor, distributor, or software owner's rights. When installing or using a vendor-supplied software instance, the supervising program verifies the associated tag and stores the tag. When installing or using untagged software, the supervising program fingerprints selected portions of the software and stores the fingerprints. Software is used on a user's device through the supervising program which ensures proper use of the software. A vendor can submit a copy of infringing software to a guardian center which fingerprints appropriate portions of the infringing software. A user device's ( 104 ) supervising program periodically calls up, or can be called up, by the guardian center. During call-up, the supervising program can securely sends to the guardian center information about the use of the software instances associated with tags and fingerprints. The guardian center detects unauthorized use of software by comparison of current call-up data with records of past call-ups involving the same tags, and/or by comparing call-up supplied fingerprints with fingerprints of infringing software stored by the guardian center. The guardian center completes the call-up by enabling continued use of properly used software instances and generating appropriate punitive actions upon detection of improperly used software instances on the calling user's device. The data supplied by a supervising program during call-up is also employed by the guardian center to prepare data on usage by a user's device of vendor or distributor supplied software instances, for pay-per-use or pay-per-view billing.

Claims (39)

1. A system for supervising usage of software comprising:

a software vendor producing instances of software;

a tag server producing a plurality of tags, one tag per instance of software, each tag uniquely identifying an instance of software with which it is associated;

a user device receiving and installing an instance of software and securely receiving a tag uniquely associated with that instance of software, the user device including a supervising program which detects attempts to use the instance of software and which verifies the authenticity of the tag associated with the instance of software before allowing use of the instance of software; and

an untagged instance of software used on the user device;

wherein the supervising program detects the use of the untagged instance of software and performs a fingerprinting process on the untagged instance of software and stores fingerprints resulting from the fingerprinting process on the user device.

2. The system of claim 1 , wherein the user device's supervising program further performs a fingerprinting process on a tagged instance of software used on the device and stores the fingerprints resulting from the fingerprinting process in a fingerprint table on the user device.

3. The system of claim 2 , wherein the supervising program stores locations from which the fingerprints are computed.

4. The system of claim 2 , wherein the fingerprints are based on contents of the instance of software.

5. The system of claim 2 , wherein the fingerprints are based on known sequences of behavior of the instance of software.

6. A user device comprising:

an input port receiving an instance of software and receiving a tag uniquely associated with that instance of software and receiving a request to use the instance of software;

a processor executing a supervising program, the supervising program detecting the request to use the instance of software and verifying the authenticity of the tag associated with the instance of software before allowing use of the instance of software by the user device; and

an untagged instance of software used on the user device;

wherein the supervising program detects the untagged instance of software and performs a fingerprinting process on the untagged instance of software and stores fingerprints resulting from the fingerprinting process in a fingerprint table on the user device.

7. The user device of claim 6 , wherein the supervising program determines that a call-up procedure is required as defined by a call-up policy and the supervising program performs the call-up procedure to update the usage status of untagged instances of software stored on the user device.

8. The user device of claim 7 , wherein during performing the call-up procedure, the supervising program transmits a portion of the fingerprint table from the user device via an interconnection mechanism coupled to the user device and awaits reception of a continuation message returned to the user device that indicates actions to be performed for each untagged instance of software stored on the user device.

9. A system for supervising usage of software comprising:

a software vendor producing instances of software,

a user device receiving and installing an instance of software,

the user device including a supervising program,

an untagged instance of software used on the user device;

wherein the supervising program detects the use of the untagged instance of software and performs a fingerprinting process on the untagged instance of software and stores fingerprints resulting from the fingerprinting process on the user device.

10. The system of claim 9 , wherein the user device's supervising program further performs a fingerprinting process on an untagged instance of software used on the device and stores the fingerprints resulting from the fingerprinting process in a fingerprint table on the user device.

11. The system of claim 10 , wherein the supervising program stores locations from which the fingerprints are computed.

12. The system of claim 10 , wherein the fingerprints are based on the contents of the instance of software.

13. The system of claim 10 , wherein the fingerprints are based on known sequences of behavior of the instance of software.

14. The system of claim 10 , further comprising:

a guardian center including:

a fingerprint data structure; and

a verification program;

the guardian center periodically communicating with the user device via a call-up procedure to receive all fingerprints from the user device for an instance of software used on the user device, the verification program comparing every fingerprint received from the user device against the fingerprint data structure to determine if an instance of software used on the user device is an infringing instance of software.

15. The system of claim 14 , wherein if the verification program detects more than a specified number of matches between fingerprints in the guardian center's fingerprint data structure and fingerprints received from the user device, the verification program specifies a punitive action to be performed, and the verification program returns a continuation message to the user device, the continuation message indicating the punitive action to be performed on the user device.

16. The system of claim 15 , wherein the fingerprint matching process is at least one of general location or same location fingerprint matching.

17. The system of claim 15 , wherein the fingerprint matching uses an inverted guardian center fingerprint table.

18. The system of claim 15 , wherein the punitive action specifies that the user device be disabled for a specified length of time.

19. The system of claim 15 , wherein the punitive action specifies that the instance of software associated with the fingerprint that was matched to a fingerprint in the fingerprint data structure of the guardian center should be disabled for a specified length of time.

20. The system of claim 15 , wherein the punitive action depends on at least one of a combination of the history of the behavior of the user device, the history of the behavior of a particular user on the user device, and the collection of other software on the user device.

21. The system of claim 14 , wherein the software vendor transmits a copy of an infringing instance of software to the guardian center and the guardian center computes fingerprints on the copy of the infringing instance of software and incorporates and stores the fingerprints into the fingerprint data structure on the guardian center.

Assignments (5)
RELEASE OF SECURITY INTEREST Recorded Oct 26, 2020
From: JEFFERIES FINANCE LLC
To: RPX CORPORATION
Reel/Frame 054486/0422 →
SECURITY INTEREST Recorded Jun 29, 2018
From: RPX CORPORATION
To: JEFFERIES FINANCE LLC
Reel/Frame 046486/0433 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 21, 2016
From: IP SOFTWARE AUTHENTICATION SERVICES, LLC
To: RPX CORPORATION
Reel/Frame 038337/0179 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 18, 2015
From: SHIELDIP, INC.
To: IP SOFTWARE AUTHENTICATION SERVICES LLC
Reel/Frame 035931/0448 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 11, 2014
From: RABIN, MICHAEL O.; SHASHA, DENNIS E.
To: SHIELDIP, INC.
Reel/Frame 033294/0446 →
Continuity (2)
Division 0930557200 · May 5, 1999
Related Publication 20040128515A1 · Jul 1, 2004