{'fraction_non_alphanumeric': 0.026599568655643422, 'fraction_numerical': 0.0, 'mean_word_length': 5.13215859030837, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Security Against Compromised Servers: Verifiable DB Queries

In these days almost every application on the Internet relies on a type of database to store client data on the server side. These databases are often used to store session identifiers, financial details, medical records, and other privacy-critical data. Consequently, security of these databases is very critical, but it cannot be guaranteed due to modern software complexity and ease in launching cyber-attacks. So if some intruder gets access the database, then he can change the user data to negatively impact the interest and safety of data owner. In this paper, we have proposed a solution to this problem and demonstrated in form of a proof-of-concept. Our solution provides cryptographic proof with each database query. This helps end client to verify the result in real time with minimum overhead even in fully compromised server-side environment. A successful verification status means that the result of database query is correct, complete, and fresh. Our proposed solution consists of database query verification components including (i) query verification client, (ii) query verification server and (iii) blockchain. We have implemented the proof-of-concept in node.js, and evaluation results show that it can work in real time with minimal overhead while guaranteeing freshness, completeness and correctness of data.