Runtime Memory Encryption for Cloud Containers

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing solutions for in-memory protection of software code and data require significant re-engineering and are limited to specific runtimes, making it difficult to protect code and data from unauthorized access and modification, especially in dynamic and diverse software development environments.

Innovation Solution

A system and method that integrates a protected memory software program conversion service with a software development pipeline, using a wrapper engine and secure engine to wrap software program code and data, generating secure counterpart code that executes in protected memory areas, such as Intel SGX enclaves, providing runtime memory encryption and access protection.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If existing in-memory protection solutions are implemented, then code and data security is improved, but device complexity and re-engineering requirements increase significantly

Engineering Contradiction:
Improvecode and data securityVSAvoidre-engineering requirements
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent introduces a wrapper engine as an intermediary component that sits between the existing software and the protected memory area. This wrapper engine automatically handles the encryption and decryption of code and data, eliminating the need for extensive re-engineering of existing software while still providing strong security protection through the intermediary encryption layer

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system segments the memory into protected and unprotected areas, with only critical code and data placed in protected memory areas. This segmentation approach allows selective protection of sensitive information without requiring the entire system to be re-engineered, thus reducing overall complexity while maintaining security

Inventive Principle:
Principle #1Segmentation

2Reliability

If runtime memory encryption is implemented, then unauthorized access protection is improved, but processing overhead and execution speed may worsen

Engineering Contradiction:
Improveunauthorized access protectionVSAvoidexecution speed
Core Design Contradiction:
ReliabilityVSSpeed

Solution Approach 1:

The encryption keys and protection mechanisms are prepared and configured in advance during system initialization or software compilation. The wrapper engine pre-establishes encryption contexts and manages key storage, so that during runtime, the encryption operations can proceed efficiently without excessive overhead, as the heavy preparation work has already been done

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent applies encryption selectively only to specific code and data segments that require protection, rather than encrypting the entire memory space. This local approach ensures that only the necessary portions incur encryption overhead, while the rest of the system operates at full speed, thus minimizing the impact on overall execution performance

Inventive Principle:
Principle #3Local quality

3Ease of operation

If protection service is integrated with software development pipeline, then ease of operation is improved, but device complexity increases

Engineering Contradiction:
Improveintegration with development pipelineVSAvoidservice architecture complexity
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The wrapper engine is designed as a universal component that can work with multiple programming languages, runtime environments, and software development pipelines. By creating a multi-functional wrapper that handles various scenarios through a unified interface, the system reduces the need for separate complex integration solutions for each development environment, thus improving ease of operation without proportionally increasing complexity

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

Data Source

PatentUS10776459B2Facilitating build and deploy runtime memory encrypted cloud applications and containers
Publication Date: 2020.09.15 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US10776459B2 patent drawing
  • US10776459B2 patent drawing
  • US10776459B2 patent drawing

AI summary

Technologies for providing software code and data with in-memory protection through runtime memory encryption are described. A service comprising an integration component (an interface set) receives software program code and data that is to be protected in one or more protected areas of execution in memory. The integration component can integrate with a software development pipeline. The service (e.g. a wrapper engine component thereof) obtains the software program code and wraps the software program code and the data into a wrapped component. The service generates a secure counterpart program for executing in one or more protected areas of execution in memory (e.g., an enclave).