Если пользовательские данные зашифрованы, как вы можете выполнять поиск по этим столбцам? - PullRequest
0 голосов
/ 01 июня 2018

Если у меня есть таблица пользователей на 1 миллион пользователей, и если по соображениям соблюдения безопасности мне необходимо зашифровать имя, фамилию и адрес электронной почты пользователей, как я могу предоставить функцию поиска?

Когда данные зашифрованы и хранятся в столбце типа varbinary, как я могу разрешить пользователям моего приложения выполнять поиск пользователей по частичным совпадениям имени, фамилии и адреса электронной почты?

Если мне нужно расшифроватьвсей базы данных для выполнения запроса, это не будет практично, если в нашей базе данных 1 миллион пользователей.

Ответы [ 3 ]

0 голосов
/ 01 июня 2018

Создайте столбец для хранения хэша (например, SHA256) имени плюс (постоянная) соль, затем найдите хэш искомого имени (плюс соль).

Обратите внимание, что толькоможно найти точные совпадения, плюс есть угроза безопасности, заключающаяся в том, что не используется соль переменной пользователя, так как хэши общих имен будут появляться несколько раз, и злоумышленник может использовать это для определения имен, даже не расшифровывая данные.

0 голосов
/ 01 июня 2018

Данные для 1 миллиона пользователей довольно малы по сегодняшним меркам - далеко под концерт.Вы можете просто загрузить всю БД в память при запуске вашего приложения и использовать обратный индекс для всех имен, возможно, под упорядоченной картой, чтобы также разрешить поиск по префиксу, или использовать NoSQL в памяти (например, Lucene) для тяжелой работы..

Несмотря на то, что загрузка данных заняла бы несколько секунд, результаты поиска будут светиться достаточно быстро - достаточно быстро, чтобы скрыть поле ввода типа «предложите при вводе».

0 голосов
/ 01 июня 2018

Я думаю, что в этом весь смысл шифрования.Если меня легко перевернуть, значит, он не справляется со своей задачей.

Я предполагаю, что ваше шифрование, скорее всего, будет включать в себя поле соли.Если это так, скорее всего, у вас очень мало вариантов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...