Управление ключами шифрования с базой данных - PullRequest
0 голосов
/ 15 ноября 2018

Я застрял на уровне разработки реализации сквозного шифрования с помощью Firebase Firestore.

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

Учитывая, что его ключ шифрования хранится только на его устройстве, все теряется, могу ли я просто создать новый закрытый ключ и "пометить" его предыдущие данные как недоступные?

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

Ответы [ 2 ]

0 голосов
/ 15 ноября 2018

Здесь - это решение keybase.io, к которому вы можете обратиться.

Короче говоря,

  1. Пользователю рекомендуется зарегистрировать несколько устройств, где каждоеустройство имеет отдельную пару ключей
  2. Пользователю необходимо уже зарегистрированное устройство, чтобы иметь возможность зарегистрировать новое устройство
  3. Если пользователь теряет устройство, он / она должен иметь доступ к учетной записи с помощьюдругое зарегистрированное устройство и удалите украденное устройство из системы
0 голосов
/ 15 ноября 2018

Если пользователь теряет свой закрытый ключ, у вас есть два варианта:

  1. Вы объявляете их данные потерянными
  2. Вы даете им способ восстановить их ключ

Оба варианта являются допустимыми, но № 2, похоже, является наиболее распространенным среди облачных сервисов хранения данных.

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

Самое важное в службе восстановления - то, что вы не храните закрытый ключ и ключ восстановления в одном месте с данными пользователя.Вы можете использовать полную отдельную базу данных (я бы порекомендовал подумать о другом поставщике) или любой другой физически разделенный механизм.

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