Como hospedar arquivos criptografados de usuários de forma que não consiga lê-los?

Como hospedar arquivos criptografados de usuários de forma que não consiga lê-los?

Estou fazendo planos para um novo projeto e procurando uma maneira de permitir que os usuários carreguem seus arquivos e os mantenham criptografados e acessíveis apenas por eles, mas ao mesmo tempo preciso que seus contatos também acessem os arquivos.

Para explicar um pouco mais:

  • O usuário carrega o(s) arquivo(s) no meu servidor por meio de um aplicativo da web.
  • Eu (o servidor) não deveria ter acesso ao conteúdo dos arquivos.
  • Os contatos do usuário devem poder ter acesso aos arquivos, SE o usuário decidir compartilhar os arquivos com eles.

Algo assim é possível?

Responder1

A resposta curta: Criptografia de chave pública significa: Sim, você pode fazer isso. É difícil porque o gerenciamento de chaves é difícil, e não porque o problema seja matematicamente difícil.

A resposta longa: ... não cabe aqui.

A resposta médio-curta:

Se cada contato tiver uma chave privada que você não conhece e eles conhecem, e uma chave pública que você conhece, e você puder fazer com que o software (incluindo JavaScript) seja executado no computador do usuário, você poderá fazer com que os dados sejam ser criptografado no computador do usuário de forma que um programa semelhante em execução nos computadores de outros usuários com suas respectivas chaves privadas possa obter acesso a ele, mas de forma que você, sem alterar o software em execução no computador do usuário, não possa.

Algumas coisas para pensar:

  • Criptograficamente, este é um problema resolvido. Não resolva sozinho.
  • A maioria dos usuários deseja usabilidade.
  • Você ainda precisa tomar boas decisões sobre metadados.

informação relacionada