Proxy Merkle B+-Tree for Database Integrity Verification
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Cloud databases face security threats from privileged computing layers and insider attacks, leading to data tampering and integrity issues, with current integrity verification techniques imposing significant overheads.
Innovation Solution
A proxy system utilizing secure memory spaces (enclaves) to mediate communication between clients and untrusted database servers, performing integrity checks using a Merkle B+-tree and Intel SGX enclaves to ensure authenticity and freshness of data, while minimizing overhead through caching and concurrency optimizations.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If integrity verification techniques are implemented to protect against data tampering, then data reliability is improved, but system overhead increases significantly
Solution Approach 1:
The patent introduces a proxy device as an intermediary component between the client and the untrusted database server. This proxy maintains an authenticated data structure (Merkle B+-tree) in its own memory and performs integrity verification locally, mediating all communications between the client and server. The proxy verifies server responses against its local authenticated structure before forwarding to the client, eliminating the need for complex verification overhead at the client or server ends while ensuring data integrity.
2Reliability
If secure execution environments are deployed to prevent attacks, then security is improved, but system complexity and resource requirements increase
Solution Approach 1:
The proxy device serves as a security intermediary that operates in untrusted cloud environments without requiring the client or server to implement complex secure execution environments. The proxy maintains an authenticated data structure in its own memory and performs verification operations, providing security through a centralized mediation layer rather than distributed security infrastructure.
Solution Approach 2:
The patent creates a copy of the authenticated data structure (Merkle B+-tree) in the proxy's memory that mirrors the structure on the untrusted server. This copy allows the proxy to perform local verification operations without requiring the original server or client to implement security mechanisms, simplifying the overall system architecture while maintaining security.
3Productivity
If high-performance database engines are used to increase throughput, then productivity is improved, but vulnerability to implementation bugs increases
Solution Approach 1:
The proxy device acts as a safety intermediary between the client and high-performance database engine. It maintains an authenticated data structure that serves as a ground truth for data integrity, verifying all operations against this structure. This allows the use of high-performance engines while providing a verification layer that catches implementation bugs and ensures correctness.
Solution Approach 2:
The system implements continuous feedback through the authenticated data structure maintained by the proxy. Each database operation is verified against the authenticated structure, providing immediate feedback on integrity. If verification fails, the system can detect and correct errors, creating a feedback loop that maintains reliability even with high-performance engines that may have implementation vulnerabilities.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
Verification system and methods are provided for allowing database server responses to be verified. A proxy device may maintain a data structure (e.g., a Merkle B+- tree) within a secure memory space (e.g., an Intel SGX enclave) associated with a protected application. In some embodiments, the data structure may comprise hashed values representing hashed versions of the data managed by the database server. The proxy may intercept client requests submitted from a client device and forward such requests to the database server. Responses from the database server may be verified using the data structure (e.g., the hashes contained in the Merkle B+- tree). If the data is verified by the proxy device, the response may be transmitted to the client device.