# US 9,882,960 B2 · Security framework for media playback

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

- Number: US 9,882,960 B2
- Document ID: US9882960B2
- Status: Granted
- Kind: B2
- Application number: 14/691,596
- Filed: 2015-04-21
- Published: 2016-06-30
- Granted: 2018-01-30
- Earliest claimed: 2014-12-30
- Applicants: Airwatch LLC
- Inventors: Ramani Panchapakesan; Sivaji Koya; Anshuman Biswal; Suman Das
- Web page: https://patentgrep.com/patent/US9882960B2

## CPC

- H04L 67/02: based on web technology, e.g. hypertext transfer protocol [HTTP]
- H04L 65/612: for unicast
- H04L 65/613: for the control of the source by the destination (control signals issued by the client directed to the server or network components specially adapted for selective content distribution H04N21/637)
- H04W 12/02: Protecting privacy or anonymity, e.g. protecting personally identifiable information [PII]
- H04W 12/033: of the user plane, e.g. user's traffic
- H04L 63/0435: {wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption (cryptographic mechanisms or cryptographic arrangements for symmetric key encryption H04L9/06)}
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- H04W: WIRELESS COMMUNICATION NETWORKS (broadcast communication H04H; communication systems using wireless links for non-selective communication, e.g. wireless extensions H04M1/72)

## Abstract

Disclosed are various embodiments relating to a security framework for media playback. In one embodiment, a client device has a decryption module, a streaming module, and a playback module. The playback module may be configured to request media data from the streaming module and render the media data on an output device. The streaming module may be configured to obtain the media data from the decryption module by a request that specifies a size of the media data. The size may be dynamically determined based at least in part on an amount of available temporary data storage. The decryption module may be configured to decrypt a portion of an encrypted media file based at least in part on the specified size to produce the media data.

## Claims

### Claim 1

A non-transitory computer-readable medium embodying at least one program executable in at least one computing device comprising a processor, comprising:
a decryption module executable by the processor;
a streaming module executable by the processor;
a playback module executable by the processor and configured to at least request media data from the streaming module and render the media data using at least one output device of the at least one computing device;
the streaming module being configured to at least obtain the media data from the decryption module by a request specifying a size of the media data, the size being dynamically determined based at least in part on an amount of available temporary data storage;
the decryption module being configured to decrypt a portion of an encrypted media file based at least in part on the specified size to produce the media data; and
the playback module being configured to request the media data beginning at a specified offset and to continue requesting the media data from the streaming module until an end of the encrypted media file is reached.

### Claim 2 (depends on 1)

The non-transitory computer-readable medium of claim 1, wherein the decryption module is further configured to at least place the media data in a temporary data storage once it is decrypted, the streaming module is further configured to at least obtain the media data from the decryption module by way of the temporary data storage, and the decryption module is further configured to at least cause the media data to be overwritten or erased from the temporary data storage once the media data has been obtained by the streaming module.

### Claim 3 (depends on 1)

The non-transitory computer-readable medium of claim 1, wherein the media data comprises at least one of: video data, audio data, document data or slide show data.

### Claim 4 (depends on 1)

The non-transitory computer-readable medium of claim 1, wherein the streaming module is configured to transfer the media data to the playback module via a streaming protocol.

### Claim 5 (depends on 1)

The non-transitory computer-readable medium of claim 1, wherein the streaming module comprises a hypertext transfer protocol (HTTP) server, and the streaming module sends the media data to the playback module via HTTP.

### Claim 6 (depends on 1)

The non-transitory computer-readable medium of claim 1, wherein the streaming module and the playback module are executed in separate computing devices.

### Claim 7

A client device comprising a processor and a memory storing executable instructions, wherein when executed the instructions cause the processor to at least:
identify, by a playback module, a media item;
request, by the playback module, a first portion of the media item from a streaming module beginning at a specified offset, wherein the playback module is configured to continue requesting the media item from the streaming module until an end of an encrypted media file is reached;
obtain, by the streaming module, the first portion of the media item from a decryption module;
decrypt, by the decryption module, the first portion of the media item from the encrypted media file;
deliver, by the decryption module, the first portion of the media item to the streaming module; and
deliver, by the streaming module, the first portion of the media item to the playback module.

### Claim 8 (depends on 7)

The client device of claim 7, being further configured to at least:
determine an amount of available temporary data storage of the client device; and
determine a size of the first portion of the media item by dividing the amount of available temporary data storage by a constant factor.

### Claim 9 (depends on 7)

The client device of claim 7, being further configured to at least:
obtain, by the playback module, a user selection of the media item from a listing of a plurality of media items.

### Claim 10 (depends on 7)

The client device of claim 7, being further configured to at least:
render, by the playback module, the first portion of the media item using at least one of: a display device of the client device or a sound device of the client device.

### Claim 11 (depends on 7)

The client device of claim 7, wherein the streaming module delivers the first portion of the media item to the playback module via an encrypted channel.

### Claim 12

A method, comprising:
decrypting, by a decryption service of at least one computing device comprising a processor, an encrypted media file to generate decrypted media data;
supplying, by the decryption service of the at least one computing device, a portion of the decrypted media data to a streaming service of the at least one computing device in response to a first request, wherein the first request is made by the streaming service; and
sending, by the streaming service of the at least one computing device, the portion of the decrypted media data to a playback service of the at least one computing device in response to a second request, wherein the second request is made by the playback service beginning at a specified offset, wherein the playback service is configured to continue requesting the decrypted media data from the streaming service until an end of the encrypted media file is reached.

### Claim 13 (depends on 12)

The method of claim 12, further comprising rendering, by the playback service of the at least one computing device, the portion of the decrypted media data using at least one output device of the at least one computing device.

### Claim 14 (depends on 12)

The method of claim 12, further comprising generating, by the streaming service of the at least one computing device, the first request, the first request specifying an offset in the decrypted media data.

### Claim 15 (depends on 12)

The method of claim 12, further comprising generating, by the playback service of the at least one computing device, the second request, the second request specifying the specified offset in the decrypted media data.

### Claim 16 (depends on 12)

The method of claim 12, wherein the playback service, the streaming service, and the decryption service are executed in a single computing device.

### Claim 17 (depends on 12)

The method of claim 12, wherein the playback service and the streaming service are executed in separate computing devices.

### Claim 18 (depends on 12)

The method of claim 12, wherein the streaming service comprises a hypertext transfer protocol (HTTP) server, and the streaming service sends the portion of the decrypted media data to the playback service via HTTP.

### Claim 19 (depends on 12)

The method of claim 12, wherein the streaming service sends the portion of the decrypted media data to the playback service via an encrypted channel.

### Claim 20 (depends on 12)

The method of claim 12, further comprising:
determining, by the at least one computing device, an amount of available temporary data storage in the at least one computing device; and
determining, by the at least one computing device, a size of the portion of the decrypted media data based at least in part on the amount of available temporary data storage.
