Shared Symmetric Key Encryption for License Enforcement

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing license enforcement mechanisms for applications, especially those written in scripted languages or distributed systems, are vulnerable to hacking and circumvention due to lack of robust encryption and validation processes, allowing attackers to bypass licensing restrictions through code modification or communication interception.

Innovation Solution

Implementing a two-level encryption process using hardcoded shared and private symmetric keys to encrypt asymmetric key pairs for secure communication between a license server and client devices, ensuring that both public and private keys are securely managed and used to validate license requests and authorize operations, while also employing timestamp verification to prevent replay attacks.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If license enforcement code is written in scripted language for ease of modification and distribution, then adaptability and ease of operation are improved, but security and reliability deteriorate due to vulnerability to reverse-engineering and hacking

Engineering Contradiction:
ImproveadaptabilityVSAvoidsecurity
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The system separates the license enforcement mechanism into distinct components: the application code written in accessible scripted language and the encryption/decryption operations performed by a secure runtime environment. This segmentation allows the application to remain adaptable while the critical security functions are isolated in a protected context where they cannot be easily reverse-engineered or modified.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

A secure runtime environment acts as an intermediary between the scripted application code and the licensing system. This intermediary handles all encryption and decryption operations, preventing direct access to sensitive cryptographic operations while still allowing the application to function. The runtime environment mediates between the need for accessible code and the need for secure operations.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If encryption is implemented to improve security, then reliability is improved, but device complexity increases due to additional encryption and decryption operations

Engineering Contradiction:
ImprovesecurityVSAvoidcomplexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The secure runtime environment automatically handles encryption and decryption operations without requiring explicit programming or configuration by the application developer. The system self-manages the cryptographic operations, key management, and security protocols, reducing the complexity burden on the application layer while maintaining strong security.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The secure runtime environment provides multiple security functions (encryption, decryption, key management, authentication) through a single unified interface. This multi-functional approach consolidates what would otherwise be separate complex systems into one integrated component, reducing overall system complexity while maintaining comprehensive security.

Inventive Principle:
Principle #6Universality (Multi-functionality)

3Reliability

If timestamp verification is implemented to prevent replay attacks, then reliability is improved, but loss of time increases due to additional verification steps

Engineering Contradiction:
ImprovesecurityVSAvoidtime
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

Timestamps are embedded in license requests and responses during the initial communication phase, establishing a time reference before any potential replay attack can occur. This preliminary timestamping allows for efficient verification later without requiring complex real-time analysis, as the time validation can be performed by simply comparing pre-established timestamp values.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10027683B2Shared symmetric key encryption
Publication Date: 2018.07.17 MICRO FOCUS LLC
  • US10027683B2 patent drawing
  • US10027683B2 patent drawing
  • US10027683B2 patent drawing

AI summary

A method for encrypting a message is described in which a public key and a private key are generated. The public key is encrypted using a shared symmetric key shared with an agent. The private key is encrypted using a private symmetric key. The encrypted public key is sent to the agent and decrypted by the agent with the shared symmetric key. A message encrypted with the shared symmetric key is received from the agent, and is decrypted using the shared symmetric key.