System Call Interceptor for Transparent Encryption in Multi-Key Databases
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
2Reliability
If encryption is implemented in multi-tenant database systems, then data security is improved, but access to data during encryption is limited
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.
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.
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
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.
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.
4Adaptability or versatility
If multiple encryption keys are managed in persistent access systems, then security flexibility is improved, but system complexity increases
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.
Data Source
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.


