Binding Encrypted Video Content to Player via Hash

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current video playback configurations are vulnerable to users bypassing advertisements by retrieving and reusing scripting code from video players, leading to security issues and revenue loss for content providers, as existing encryption methods are susceptible to interception and manipulation.

Innovation Solution

A system that binds encrypted video content to a specific video player by using the player's identifier as a hash to generate an encryption key, ensuring the scripting code is securely maintained and cannot be reused or hosted elsewhere, with the hash being calculated and stored locally to prevent exposure during validation.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the video player sends the hashed scripting code to a server for verification, then the server can validate the video player, but the hashed scripting code may be intercepted during transmission creating a security vulnerability

Engineering Contradiction:
Improvevideo player validationVSAvoidinterception of hashed scripting code
Core Design Contradiction:
ReliabilityVSObject-affected harmful factors

Solution Approach 1:

The patent extracts the scripting code hashing operation from the client-side video player and moves it to the server-side validation process. The server generates the hash of the scripting code and uses it to create the encryption key, rather than the client sending the hash for verification. This eliminates the transmission of the hashed scripting code through the network, removing the interception vulnerability while maintaining validation reliability.

Inventive Principle:
Principle #2Taking out (Extraction)

2Adaptability or versatility

If users retrieve scripting code from the video player, then they can reuse it in their own video players, but this allows them to bypass advertisements and revenue generating mechanisms

Engineering Contradiction:
Improvescripting code reusabilityVSAvoidad bypass and revenue loss
Core Design Contradiction:
Adaptability or versatilityVSObject-generated harmful factors

Solution Approach 1:

The patent segments the encryption key generation process into server-side operations only. The scripting code is processed on the server to generate a unique hash, which is then used to create the encryption key. This key is never exposed to the client, making it impossible for users to retrieve and reuse the scripting code or key in their own video players, thereby preventing ad bypass while maintaining system adaptability.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The server acts as an intermediary between the scripting code and the encryption key generation. Instead of the client directly handling the scripting code and key generation, the server mediates this process by generating the hash and key on the server-side, then providing only the necessary encrypted content to the client. This intermediary role prevents direct access to the scripting code and eliminates the ability to reuse it maliciously.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS8879731B2Binding of protected video content to video player with block cipher hash
Publication Date: 2014.11.04 ADOBE INC
  • US8879731B2 patent drawing
  • US8879731B2 patent drawing
  • US8879731B2 patent drawing

AI summary

A video player sends a video content identifier and a video player identifier through a network to a server. The video content identifier identifies video content. The video player identifier identifies the video player. Further, a first subset of encrypted video content and an initialization vector are received from a server. In addition, a hash of the video player identifier is generated. The first subset of the encrypted video content is decrypted with a decryption key to generate a first result. Further, a first operation on the initialization vector and the hash is performed to generate a second result. In addition, a second operation is performed on the first result and the second result to generate a first subset of plaintext of video content.