Source Code Obfuscation Logic for Server Security

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Scripting languages, such as JavaScript, are vulnerable to reverse engineering and intellectual property theft due to their interpretation-based execution, making it difficult to secure server computers from malicious attacks by client computers.

Innovation Solution

Implementing a computer system with source code obfuscation logic that applies obfuscation transformations to original source code instructions, producing obfuscated instructions that maintain functionality while obscuring the code structure, thereby enhancing security against human analysis and automation-based attacks.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of manufacture

If source code is delivered to browser as source code for interpretation execution, then deployment and customization are simplified, but security and intellectual property are compromised due to vulnerability to reverse engineering and malicious alteration

Engineering Contradiction:
Improvedeployment simplicityVSAvoidsecurity
Core Design Contradiction:
Ease of manufactureVSReliability

Solution Approach 1:

The patent introduces an intermediary obfuscation process between the server and browser. The obfuscation logic transforms readable source code into obfuscated code that maintains functionality but is difficult to analyze. This intermediary transformation layer protects the original source code while still enabling browser execution, thus resolving the contradiction between deployment simplicity and security.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If source code is made public for browser execution, then accessibility and functionality are improved, but machine analysis by bots and malicious software becomes easier

Engineering Contradiction:
Improvebrowser accessibilityVSAvoidmachine analysis resistance
Core Design Contradiction:
Adaptability or versatilityVSDifficulty of detecting and measuring

Solution Approach 1:

The patent changes the parameters of source code presentation by applying obfuscation transformations that alter the code's structure, naming conventions, and formatting while preserving its functional behavior. This parameter transformation makes the code accessible to browsers for execution but significantly increases the difficulty of machine analysis by bots and malicious software, thus resolving the contradiction between accessibility and analysis resistance.

Inventive Principle:
Principle #35Parameter changes

3Adaptability or versatility

If algorithms and data are exposed in source code, then functionality and customization are enhanced, but security by obscurity is lost

Engineering Contradiction:
ImprovefunctionalityVSAvoidsecurity by obscurity
Core Design Contradiction:
Adaptability or versatilityVSLoss of information

Solution Approach 1:

The patent applies obfuscation transformations as a preliminary action before delivering source code to the browser. This preliminary obfuscation process hides algorithms and data within the code structure, maintaining security by obscurity while preserving full functionality. The obfuscation is applied in advance, ensuring that sensitive information remains protected before the code reaches the browser environment.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS9582666B1Computer system for improved security of server computers interacting with client computers
Publication Date: 2017.02.28 SHAPE SECURITY INC
  • US9582666B1 patent drawing
  • US9582666B1 patent drawing
  • US9582666B1 patent drawing

AI summary

A computer system is configured to improve security of server computers interacting with client computers, and comprises: a memory, a processor coupled to the memory, and source code obfuscation logic coupled to the memory and the processor. The source code obfuscation logic is configured to read, from the memory, one or more original source code instructions that are configured to achieve an expected result when executed by a web browser on a client computer; to apply one or more obfuscation transformations, to the one or more original source code instructions, to produce one or more obfuscated source code instructions that are configured to achieve the same expected result when executed by the web browser but is expressed in an obfuscated format; to write the one or more obfuscated source code instructions to the memory.