Eu quero fazer a sincronização ao vivo de um diretório criptografado com um servidor, de modo que o servidor veja somente dados criptografados.
Suponha que eu coloque os dados ecryptfs subjacentes em:
/home/user/.Private
E eu montei esse diretório em:
/home/user/unlocked
Posso atualizar os arquivos em .Private
(por exemplo, usando rsync) e esperar unlocked
para refletir as alterações? Ou isso vai apenas estragar as coisas? Existem alternativas melhores para a sincronização ao vivo de dados criptografados?
ATUALIZE para esclarecer:
Eu só quero transmitir dados criptografados para o servidor - o servidor não é confiável. Então eu quero ver:
client <-- encrypted data --> server
Pode haver mais de um cliente atualizando arquivos (descriptografados); daí o desejo de sincronização ao vivo:
client1
\
\--- encrypted data --\
\
server
/
/--- encrypted data --/
/
client2
Portanto, o cliente tem um diretório contendo arquivos criptografados - segmentado da maneira que o ecryptfs faz:
/home/client1/.Private/
|--- ECRYPTFS_FNEK_ENCRYPTED.Fabcde.../
| |--- ECRYPTFS_FNEK_...
|
|--- ECRYPTFS_FNEK_ENCRYPTED.Flaksd.../
|--- ...
Isto é montado com ecryptfs:
/home/client1/unlocked/
|--- secret_file_1
|--- secret_file_2
Agora, o client1 está realizando alterações nos arquivos em unlocked
. Quando o cliente faz alterações, os arquivos criptografados subjacentes em .Private
também são alterados. Assim, um local inotify ou algum tal notifica as alterações e rsyncs os arquivos base criptografados em .Private
para o servidor. O servidor, ciente de que o client2 também está escutando, notifica o client2 de que ele deve receber mudanças.
Então, minha preocupação é: Se o client2 extrair os arquivos fragmentados do encryptfs subjacentes em .Private enquanto estiver montado em unlocked
, suspeito que isso causará problemas, não? Isso exigiria que o client2 desmontasse unlocked
antes da sincronização, o que anula toda a ideia de "sincronização ao vivo".
Em caso afirmativo, quais são boas técnicas alternativas para sincronização eficiente de diffs de uma árvore criptografada?