System Call Interceptor for Transparent Encryption in Multi-Key Databases

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Cloud platform users with strict security requirements, such as banks and telecommunication companies, face limitations in application functionality and data access due to encryption, and often lack the permissions to alter kernel or user application code to implement encryption effectively in multi-tenant database systems.

Innovation Solution

Implementing system call interceptors, like a filesystem in userspace (Fuse) driver, to intercept and manage encryption calls without altering existing user applications or kernel code, allowing for transparent encryption and decryption of data sets using tenant-specific keys, while supporting key rotation and archiving without disrupting data access.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If encryption is introduced to user applications to secure data at rest, then data security is improved, but application functionality and data access are limited

Engineering Contradiction:
Improvedata securityVSAvoidapplication functionality
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

A system call interceptor is introduced as an intermediary component between user applications and the kernel. This interceptor manages encryption transparently by intercepting system calls, determining when encryption is needed, and handling the encryption/decryption process without requiring modifications to user applications or kernel code. The interceptor acts as a mediator that enables encryption while preserving application functionality.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The encryption functionality is segmented into a separate system call interceptor rather than being integrated into user applications or the kernel. This allows encryption to be implemented as an independent layer that can be activated without affecting the core application logic or system stability. The interceptor handles encryption as a separate concern, isolating it from application code.

Inventive Principle:
Principle #1Segmentation

2Reliability

If encryption is implemented in multi-tenant database systems, then data security is improved, but access to data during encryption is limited

Engineering Contradiction:
Improvedata securityVSAvoiddata access
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

The system call interceptor serves as a mediator that transparently handles data access during encryption. It intercepts read and write system calls, determines whether encryption is applicable, and manages the encryption/decryption process automatically. This allows tenants to access encrypted data without manual intervention or complex operations, as the interceptor handles the transparency aspect.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The encryption system provides self-service by automatically determining when encryption is needed and handling the encryption/decryption process without requiring user applications to explicitly manage encryption keys or encryption operations. The system self-manages the encryption state and access control, simplifying data access for users.

Inventive Principle:
Principle #25Self-service

3Ease of manufacture

If users alter kernel code or user application code to introduce encryption, then encryption functionality is achieved, but user permissions are insufficient

Engineering Contradiction:
Improveencryption implementationVSAvoidcode alteration requirements
Core Design Contradiction:
Ease of manufactureVSDevice complexity

Solution Approach 1:

The system call interceptor is positioned as an intermediary layer between user applications and the kernel, eliminating the need for users to directly modify kernel code. The interceptor handles encryption operations in user space while interacting with the kernel through standard system calls, respecting user permission constraints while achieving encryption functionality.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The encryption functionality is extracted from the kernel and implemented as a separate system call interceptor in user space. This extraction allows users to implement encryption without modifying kernel code, as the interceptor operates in user space and interfaces with the kernel through standard system calls, bypassing the permission restrictions that would apply to kernel modifications.

Inventive Principle:
Principle #2Taking out (Extraction)

4Adaptability or versatility

If multiple encryption keys are managed in persistent access systems, then security flexibility is improved, but system complexity increases

Engineering Contradiction:
Improvekey management flexibilityVSAvoidsystem complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The system call interceptor acts as a mediator that manages multiple encryption keys transparently. It intercepts system calls, determines which key should be used based on the data and access requirements, and handles key rotation and archiving operations. This centralizes key management logic in the interceptor, preventing key management complexity from propagating to user applications.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS11695806B2Intercepting calls for encryption handling in persistent access multi-key systems
Publication Date: 2023.07.04 SALESFORCE INC
  • US11695806B2 patent drawing
  • US11695806B2 patent drawing
  • US11695806B2 patent drawing

AI summary

Some database systems may implement encryption services to improve the security of data stored in databases or on disks. The systems may implement encryption using multiple encryption keys. For example, a worker server may implement a system call interceptor, such as a filesystem in userspace (Fuse) driver. The system call interceptor may intercept system calls (e.g., associated with query or extract, transform, and load (ETL) jobs) as they enter or exit the kernel. The system call interceptor may determine whether data sets associated with the jobs are marked for encryption, and may perform an encryption process on the data sets. A worker may encrypt and store data sets on a worker disk or at a file store, or may retrieve and decrypt the data sets. The system may additionally manage encryption keys, and may provide mechanisms for archiving or revoking encryption keys while maintaining user access to stored data sets.