# US 2019/0319935 A1 · Systems and Methods for Application Identification

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2019/0319935 A1
- Document ID: US20190319935A1
- Status: Published application
- Kind: A1
- Application number: 16/457,255
- Filed: 2019-06-28
- Published: 2019-10-17
- Earliest claimed: 2011-08-31
- Assignees: Divx, LLC
- Applicants: Divx, LLC
- Inventors: Eric William Grab; Kourosh Soroushian; Tung Lin; Francis Yee-Dug Chan; Evan Wallin; William David Amidei
- Web page: https://patentgrep.com/patent/US20190319935A1

## CPC

- H04L 63/0428: {wherein the data content is protected, e.g. by encrypting or encapsulating the payload}
- G06F 21/10: Protecting distributed programs or content, e.g. vending or licensing of copyrighted material (protection in video systems or pay television H04N7/16) {; Digital rights management [DRM]}
- G06F 21/12: Protecting executable software
- H04L 63/06: {for supporting key management in a packet data network (cryptographic mechanisms or cryptographic arrangements for key management H04L9/08)}
- H04L 63/0876: {based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint}
- H04L 63/0884: {by delegation of authentication, e.g. a proxy authenticates an entity to be authenticated on behalf of this entity vis-à-vis an authentication entity}
- H04L 63/168: {above the transport layer}
- H04L 67/60: Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources (admission control or resource allocation H04L47/70)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Systems and methods for application identification in accordance with embodiments of the invention are disclosed. In one embodiment, a user device includes a processor and memory configured to store an application, a session manager, an application identifier, and at least one shared library, and the processor is configured by the session manager to communicate the application identifier and the application identifier data to an authentication server and permit the execution of the application in response to authentication of the application by the authentication server.

## Claims

### Claim 1

A method for providing an application with access to a shared library on a user device, the method comprising:
receiving a request for access to a shared library on a user device;
verifying provisioning data stored on the user device containing an application identifier;
verifying the shared library stored on the user device using a library manifest containing information that can be used to identify and verify the shared library;
negotiating a session token key with the shared library using the user device; and
providing a session token encrypted with the session token key to the application using the user device, wherein the session token key grants access to the shared library.

### Claim 2 (depends on 1)

The method of claim 1, wherein the request for access to a shared library received by the user device comprises provisioning data and the name of the shared library.

### Claim 3 (depends on 1)

The method of claim 1, wherein verifying the provisioning data comprises:
sending the provisioning data to an authentication server; and
receiving confirmation from the authentication server.

### Claim 4 (depends on 1)

The method of claim 1, wherein the library manifest contains at least one private key signature.

### Claim 5 (depends on 1)

The method of claim 1, wherein the library manifest contains at least one hash of the shared library.

### Claim 6 (depends on 1)

The method of claim 1, wherein the library manifest contains a private key signature of the contents of the manifest.

### Claim 7 (depends on 1)

The method of claim 1, wherein the library manifest is encrypted with a manifest key.

### Claim 8 (depends on 1)

The method of claim 1, wherein negotiating a session token key comprises:
sending a request to the shared library using the user device;
receiving data encrypted with the session manager's public key using the user device;
sending data encrypted with the shared library's public key to the shared library using the user device; and
receiving confirmation from the share library using the user device.

### Claim 9

An authentication server, comprising:
a processor; and
memory configured to store:
at least one application identifier, where the application identifier is associated with a specific application and with application identifier data;
wherein the processor is configured by an authentication application to:
receive application identifier data and encrypted provisioning data containing an application identifier from a user device;
extract the application identifier from the encrypted provisioning data;
retrieve stored application identifier data associated with the extracted application identifier;
compare at least a portion of the stored application identifier data with the received application identifier data; and
send a message authenticating the application to a user device, when the compared portions of application identifier data match.

### Claim 10 (depends on 9)

The authentication server of claim 9, wherein the memory is further configured to store cryptographic information associated with the application identifier and the processor is configured to access the application identifier within the encrypted provisioning data using the cryptographic information associated with the application identifier.

### Claim 11 (depends on 9)

The authentication server of claim 9, wherein:
the application includes at least one file; and
the application identifier data comprises information that can be used to authenticate at least one of the files.

### Claim 12 (depends on 11)

The authentication server of claim 11, wherein the information that can be used to authenticate at least one of the files comprises hashes of part or all of the files.

### Claim 13 (depends on 9)

The authentication server of claim 9, wherein the application identifier data comprises at least one piece of information selected from the group consisting of: application name, application version, and application vendor.

### Claim 14 (depends on 9)

The authentication server of claim 9, wherein the application identifier is further associated with one or more product identifiers that indicate execution platforms with which the application is compatible.

### Claim 15 (depends on 9)

The authentication server of claim 9, wherein the memory is further configured to store information describing the compatibility and interoperability of software modules using application identifiers.

### Claim 16 (depends on 15)

The authentication server of claim 15, wherein the software modules comprise shared libraries.

### Claim 17

A method for certifying an application for a consumer electronics product, the method comprising:
receiving application identifier data;
storing an application identifier on a server so that the application identifier data is associated with the application identifier and application;
storing the application identifier on a device;
extracting the application identifier from communications sent from the device;
retrieving application identifier data associated with the application identifier; and
displaying the application identifier and application identifier data in human-readable format.

### Claim 18 (depends on 17)

The method of claim 17, further comprising:
receiving one or more product identifiers, where each product identifier is associated with an execution platform;
validating the application associated with the application identifier on a device including the execution platform identified by the product identifier; and
storing an association between the one or more product identifiers and the application identifier on the server.
