MongoDb Полевое Шифрование - PullRequest
       0

MongoDb Полевое Шифрование

1 голос
/ 19 сентября 2019

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

Я пытался просмотреть документацию MongoDB, но нет четкого маршрута

Я хочу, чтобы что-то вроде этого

{
    fname : John,
    lname : Smith,
    ssn : "555-55-5555"
}

выглядело так

{
    fname : John,
    lname : Smith,
    ssn : "fweiubv3b443hbv4f48h"
}

, тогда я мог бы выполнить поиск вроде

db.users.find({ssn : "555-55-5555"})

Цель состоит в том, чтобы запустить схему и создать коллекцию

db.createCollection("user", {
    "validator": {
       "$jsonSchema": {
           ....
});

1 Ответ

0 голосов
/ 20 сентября 2019

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

Пример вашего SSN:

Сохранение

  • Возьмите открытый SSN и HMAC, используя key1.
  • Возьмите открытый SSN и зашифруйте его, используя режим AAED, такой как GCM с key2.
  • Сохраните результат хеширования и шифрования в документе базы данных или чем-либо еще.Имена, такие как ssn_hash и ssn_enc, могут быть подходящими.

Looking Up

  • Возьмите SSN, который вы ищете, и HMAC, используя key1.
  • Выполните поиск по ssn_hash для указанного выше результата.

Получение открытого текста

  • Однако выполните поиск в документе базы данных.
  • Расшифруйте ssn_enc с key2.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...