Search for encrypted information. How to implement?

0 like 0 dislike
116 views
Welcome!

There is data which is encrypted client-side using AES encryption algorithm. Next, the data is stored on the server.

To store the data in plaintext on the server we can't, this privacy policy.

How to organize the search for these data?

Take a hash (key words/tags) and search on it?

Thank you!
by | 116 views

7 Answers

0 like 0 dislike
Break the task into subtasks.
\r
The data is in. There are encryption keys of the data. Keys only the client. To isolate the text from the encrypted block is impossible by definition.
\r
You need to let the user using the index to find a link to the desired location in the selected storage structure.
Since the index needs to be encrypted, then access to it can only be the client. That is, the task index updates falls on the user portion of the software.
\r
Well here is the answer — the index is a separate encrypted document user. Every time he adds new data or changes existing ones it needs to make changes to the index.
Plus module for full scanning of existing documents for the first time or to repair a damaged index. Again, the same- works only and exclusively on the client side, because the only keys with him.
by
0 like 0 dislike
it's my impossible. The fact of the meaning of encryption.
by
0 like 0 dislike
The client search on the client. That is, in any case have to pull all the data on the client.
by
0 like 0 dislike
If the server is not involved in the encryption, how are you going to look at all there is not very clear... it is Theoretically possible to create indexes for plain text, and the text to store encrypted. But it seems like the benefits of this enough in terms of sigurnosti, and pass should be open on the server.
by
0 like 0 dislike
AES is resistant to cryptotoken of this type. Without changing the encryption algorithm does.
Well, or to encrypt or not all or parts. But then a privacy policy...
by
0 like 0 dislike
Tried to solve similar problem:
— data is stored on the server, is encrypted on the client, the server about the encryption algorithm does not know, although in General a symmetric algorithm, key one and closed as a result
— it was necessary to implement autocompletion in AJAX (the line is relatively short, the name in General)
\r
Got out so far:
— when saving field, the client encrypts the data and interfere in the main table
— additionally for each substring (the first letter, first two letters, three letters, ..., all the name) is formed by a hash (with salt) and placed in another table associated with the primary (a lot of hashes for each record in main)
— when you enter a new entry by the user, the client sends a hash of the entered letters on the server that issues the encrypted record for which the hash is (for example, all records that start with 'A')
— the client decrypts the recording, unicalities (doubles are even on a relatively small database, in theory the full namesakes are many) and shows the user some of them (the initial letters also show if real, but it makes no sense)
\r
Global nedostatok:
— a big burden on the customer when you have to decipher the order of a couple hundred (if the base in 3,000) after entering the first letter JavaScript to put it mildly, not fast, generating about 20-40 hashes when saving against this background detail, as a few extra kilobytes on the entry in the hash. What will happen when the return will be thousands of records to decrypt scary to think we have to think how to limit and unikalizirovat record on the server and JS browser to invoke native library encryption type mhash and mcrypt
by
0 like 0 dislike
Use Microsoft SQL Server 2008 enabled.
by

Related questions

0 like 0 dislike
5 answers
0 like 0 dislike
1 answer
asked Mar 23, 2019 by mihavxc
0 like 0 dislike
4 answers
0 like 0 dislike
4 answers
0 like 0 dislike
5 answers
asked Mar 20, 2019 by sopov
110,608 questions
257,186 answers
0 comments
28,868 users