Virtual Key Memory Protection for Process-Level Access Control

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current data security systems face challenges in protecting memory data at a granularity above the page level, particularly in ensuring that only authorized processes or tasks can access sensitive information, as variables going out of scope or being de-allocated in memory allocation systems can lead to unauthorized access.

Innovation Solution

A key-based approach is implemented, where physical page keys are associated with virtual keys corresponding to processes or tasks, with a data protection bit indicating the protective status of memory pages. This involves generating physical keys for each page, deriving virtual keys for authorized processes, and storing these keys in tables and registers to control access.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If data is protected at the page level using existing memory protection mechanisms, then basic memory security is provided, but granular control over larger quantities of memory cannot be achieved

Engineering Contradiction:
Improvememory protection granularityVSAvoidkey management system complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent segments memory protection into multiple levels: physical page keys for fine-grained page-level control, virtual keys for process-level access, and data protection bits for coarser-grained region control. This hierarchical segmentation enables granular control over large memory quantities while managing complexity through structured organization of protection mechanisms at different levels.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements nested key structures where virtual keys contain physical page keys, and data protection bits encapsulate both physical and virtual key mechanisms. This nesting allows the system to provide detailed page-level protection within the context of larger memory regions, achieving fine-grained control without proportionally increasing overall system complexity.

Inventive Principle:
Principle #7Nested doll (Nesting)

2Reliability

If memory protection is extended to process level with virtual keys, then authorized process access is ensured, but the complexity of key generation and validation increases

Engineering Contradiction:
Improveauthorized access controlVSAvoidkey generation and validation mechanism
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The virtual key mechanism serves multiple functions simultaneously: it identifies authorized processes, validates access rights, and contains physical page keys for actual memory protection. This multi-functionality reduces the need for separate validation mechanisms, thereby limiting the increase in complexity while ensuring reliable authorized access control.

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

Solution Approach 2:

The virtual key acts as an intermediary between the process identification system and the physical memory protection system. It mediates by containing both process authorization information and the actual physical page keys, simplifying the interaction between different protection layers and reducing the complexity of direct key generation and validation mechanisms.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Reliability

If data protection bits are set to indicate protective status, then compliance with data security requirements is improved, but the overhead of protection bit management increases

Engineering Contradiction:
Improvedata security complianceVSAvoidmemory access efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The data protection bit is applied locally to specific memory regions rather than universally to all memory. This allows compliance with data security requirements for sensitive data while avoiding the overhead of protection bit management for unrelated memory areas, thereby maintaining memory access efficiency for non-sensitive data.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The system applies data protection bits selectively to only those memory regions that require enhanced protection, rather than applying protection uniformly across all memory. This partial application reduces the overhead of protection bit management while still ensuring compliance with data security requirements for the necessary data.

Inventive Principle:
Principle #16Partial or excessive action

4Adaptability or versatility

If physical page keys are associated with virtual keys for process-level protection, then serviceability in sensitive environments is enhanced, but the complexity of key association and validation increases

Engineering Contradiction:
Improveserviceability in sensitive environmentsVSAvoidkey association and validation system
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The virtual key structure nests physical page keys within it, creating a hierarchical key association system. This nesting enables the system to provide enhanced serviceability in sensitive environments by allowing process-level control over memory access while managing the complexity of key associations through a structured nested organization rather than flat one-to-one mappings.

Inventive Principle:
Principle #7Nested doll (Nesting)

Data Source

PatentUS10678711B2Key-based data security management
Publication Date: 2020.06.09 KYNDRYL INC
  • US10678711B2 patent drawing
  • US10678711B2 patent drawing
  • US10678711B2 patent drawing

AI summary

Embodiments of the present invention provide an approach for memory protection at a level of granularity above a “page” level (e.g., enhancing the protection provided by a memory key-based system). The approach further provides such a level of protection at a process or task level by associating the physical page key with a virtual key that corresponds to a particular process/task. When access to the data is requested for a particular process or task, it is determined if a protection bit for the data is set, and if the physical page keys and/or virtual keys submitted pursuant to the request match that previously stored for the data and process/task. If so, access to the data is allowed for the particular process/task.