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

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

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

Поясню немного подробнее:

  • Пользователь загружает файл(ы) на мой сервер через веб-приложение.
  • Я (сервер) не должен иметь доступа к содержимому файлов.
  • Контакты пользователя должны иметь доступ к файлам, ЕСЛИ пользователь решит поделиться с ними файлами.

Возможно ли что-то подобное?

решение1

Короткий ответ: Криптография с открытым ключом означает: Да, вы можете это сделать. Это сложно, потому что управление ключами сложно, а не потому, что проблема математически сложна.

Развернутый ответ: ... здесь не поместится.

Средне-краткий ответ:

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

Вот о чем стоит подумать:

  • Криптографически это решенная проблема. Не решайте ее сами.
  • Большинству пользователей важно удобство использования.
  • Вам по-прежнему необходимо принимать правильные решения относительно метаданных.

Связанный контент