Kernel Key Handling for Large Encryption Keys

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Storing large encryption keys in kernel memory can consume significant volatile memory, leading to reduced available memory and system inefficiency, especially when thousands of such keys are stored, as they cannot be paged out like other data.

Innovation Solution

Implementing a 'big key data type' that determines if the key size exceeds a threshold, allocating pageable memory outside the kernel for large keys, and storing a pointer to this memory within the kernel, allowing the bulk data to be paged out to non-volatile memory while maintaining security.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If large encryption keys are stored within kernel memory, then security is maintained, but volatile memory consumption increases significantly

Engineering Contradiction:
ImprovesecurityVSAvoidvolatile memory consumption
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent segments the key storage into two parts: the key handle and metadata remain in kernel memory for security, while the actual key data is stored in a separate buffer in user space. This segmentation allows the system to maintain security requirements while reducing kernel memory consumption.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent extracts the bulk key data from kernel memory and places it in user space buffer memory. Only essential references (pointers/handles) and metadata remain in kernel memory, significantly reducing the quantity of volatile memory consumed by the kernel while maintaining the ability to access and protect the keys.

Inventive Principle:
Principle #2Taking out (Extraction)

2Adaptability or versatility

If thousands of large encryption keys are stored in kernel memory, then comprehensive key management is achieved, but available memory for other uses is reduced

Engineering Contradiction:
Improvekey management capabilityVSAvoidavailable memory
Core Design Contradiction:
Adaptability or versatilityVSQuantity of substance

Solution Approach 1:

By segmenting key storage between kernel and user space, the system can manage thousands of large keys without proportionally increasing kernel memory consumption. Each key's handle and metadata occupy minimal kernel memory space, while the bulk data resides in user space, preserving memory for other system uses.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a key handle as an intermediary between the kernel and the actual key data stored in user space. This handle serves as a reference that allows the kernel to access and manage keys without storing the entire key data in kernel memory, enabling efficient management of numerous large keys.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Quantity of substance

If encryption keys are stored outside kernel memory in pageable memory, then volatile memory availability is improved, but security may be compromised

Engineering Contradiction:
Improvevolatile memory availabilityVSAvoidsecurity
Core Design Contradiction:
Quantity of substanceVSReliability

Solution Approach 1:

The patent segments key-related data into different security zones: sensitive metadata (key handle, permissions, state) remains in secure kernel memory, while the actual key data is stored in user space buffer memory. This segmentation allows pageable memory to be used for key data while maintaining security through proper isolation and access control.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies different security qualities to different parts of the key storage system. The kernel memory portion contains only essential metadata with strict access controls, while the user space buffer contains the bulk key data with appropriate memory protection. This local differentiation of security qualities allows optimization of both security and memory availability.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS9785577B2Kernel key handling
Publication Date: 2017.10.10 RED HAT INC
  • US9785577B2 patent drawing
  • US9785577B2 patent drawing
  • US9785577B2 patent drawing

AI summary

According to one example, a method performed by a computing system includes determining that a size of key data to be stored within a kernel memory is greater than a threshold value. The threshold value is based on a size value associated with maintaining the key data outside of the kernel memory. The method further includes allocating a block of memory within a volatile memory store, the block of memory being outside the kernel memory, storing the key data within the block of memory, and storing, within the kernel memory, a pointer to the key data.