Blog Linux Avante

Como criptografar arquivos de armazenamento em nuvem com Rclone

26 de maio de 2020

Logotipo Rclone

Rclone é um programa de sincronização de armazenamento em nuvem de linha de comando que permite acessar e sincronizar arquivos entre seu sistema de arquivos e serviços de armazenamento em nuvem, ou entre vários serviços de armazenamento em nuvem. Versões recentes também vêm com uma GUI da Web e também há GUIs de terceiros disponíveis, como o Rclone Browser.

*A ferramenta oferece suporte a muitos provedores de armazenamento em nuvem como Amazon S3, Box, Dropbox, Google Drive/Fotos/Armazenamento em nuvem, Mega, Microsoft OneDrive (pessoal e empresarial), pCloud, Yandex Disk e muito mais. Está disponível para Windows, macOS, Linux e BSD.**

Este artigo mostra como criptografar arquivos de armazenamento em nuvem de um remoto (um remoto é um provedor de armazenamento em nuvem configurado no Rclone) usando Rclone. Ele assume que você já adicionou alguns provedores de armazenamento em nuvem à configuração do Rclone; caso contrário, baixe e instale o Rclone, execute rclone config, escolha Novo remoto e adicione Google Drive, OneDrive ou qualquer outro armazenamento em nuvem compatível com Rclone.

Para criptografia, usaremos o controle remoto crypt Rclone. É importante notar desde o início que apenas os arquivos copiados/sincronizados para o remoto crypt serão criptografados, então você pode continuar a carregar arquivos não criptografados se desejar, exatamente como antes; isso também significa que todos os arquivos carregados anteriormente para o armazenamento em nuvem não são criptografados e não os criptografará, a menos que você exclua os arquivos do armazenamento em nuvem e os armazene no novo remoto crypt.

A opção Rclone crypt pode criptografar os arquivos, nomes de arquivos (criptografia de nome de arquivo padrão ou ofuscação de nome de arquivo simples) e nomes de diretório. O comprimento do arquivo e a hora da modificação não são criptografados.

Verifique também o Cryptomator, outra ferramenta de plataforma cruzada para criptografar arquivos de armazenamento em nuvem (e mais).

Como funciona a criptografia de armazenamento em nuvem Rclone

Primeiro, mostrarei como isso funciona e, em seguida, direi como você pode criptografar seus arquivos de armazenamento em nuvem usando Rclone.

Digamos que eu tenha um arquivo de backup chamado backup.tar.gz em meu computador e desejo carregá-lo criptografado para o OneDrive, em uma pasta chamada Backups. Para conseguir isso, crio um Rclone crypt remote (chamado encrypted:) que criptografa um caminho remoto definido como onedrive:Backups.

Portanto, quando eu copiar este arquivo backup.tar.gz para o encrypted:, ele será carregado como criptografado na minha pasta de backups do OneDrive:

Comandos para usar no terminal

rclone copy backup.tar.gz encrypted:

Agora, quando eu listo os arquivos na pasta remota onedrive:Backups, este arquivo mostra como encrypted:

Comandos para usar no terminal

rclone ls onedrive:Backups

57480 aj7e9bv453dhpfdgskvieqmrtc

Se eu listar os arquivos no encrypted: remoto, poderei ver este arquivo como descriptografado:

Comandos para usar no terminal

rclone ls endrypted:

57432 backup.tar.gz

Caso eu precise deste arquivo, posso copiá-lo para o meu computador do encrypted: remoto da seguinte forma (o arquivo será copiado como descriptografado no meu computador, em ~/ que é a pasta pessoal):

Comandos para usar no terminal

rclone copy encrypted:backup.tar.gz ~/

Então, sempre que eu quiser acessar esse arquivo, vou precisar acessar o encrypted: remoto via Rclone. O site do OneDrive tem esse arquivo criptografado, portanto, não pode ser usado até que seja descriptografado com o Rclone crypt remote.

Rclone Browser, uma interface de usuário Qt de plataforma cruzada para Rclone, oferece suporte a controles remotos de criptografia, bem como um arquivo de configuração Rclone criptografado, para que você possa continuar a usá-lo com arquivos criptografados.

Crie um remoto Rclone criptografado para criptografar arquivos de armazenamento em nuvem

  1. Crie um controle remoto Rclone "crypt" abrindo um terminal e digitando:

Comandos para usar no terminal

rclone config

Agora você será perguntado o que deseja fazer a seguir:

e) Edit existing remote
n) New remote
d) Delete remote
r) Rename remote
c) Copy remote
s) Set configuration password
q) Quit config
e/n/d/r/c/s/q> n

Digite n para criar um novo controle remoto.

  1. Em seguida, você será solicitado a inserir um nome para o novo controle remoto - usei encrypted para o nome:

Comandos para usar no terminal

name> encrypted

  1. Agora você precisa escolher o tipo de armazenamento a ser configurado:
Type of storage to configure.
Enter a string value. Press Enter for the default ("").
Choose a number from below, or type in your own value
..............
10 / Encrypt/Decrypt a remote
   \ "crypt"
........
Storage> crypt

Digite crypt para criar um novo tipo de armazenamento crypt.

  1. Em seguida, você precisará inserir o caminho remoto para criptografar/descriptografar. Por exemplo, se você criou um controle remoto para OneDrive com o nome onedrive e deseja criptografar o conteúdo da pasta Backups dentro deste controle remoto OneDrive, você usaria onedrive:Backups aqui:
Remote to encrypt/decrypt.
Normally should contain a ':' and a path, eg "myremote:path/to/dir",
"myremote:bucket" or maybe "myremote:" (not recommended).
Enter a string value. Press Enter for the default ("").
remote> onedrive:Backups

Tudo contido no caminho que você inserir aqui será criptografado, e qualquer coisa externa não será criptografada.

Caso você não saiba como se chama(m) seu(s) controle(s) remoto(s) de armazenamento em nuvem, pode abrir um terminal e digitar isso para listar todos os controles remotos configurados no Rclone:

Comandos para usar no terminal

rclone listremotes

  1. A próxima etapa é escolher como criptografar os nomes de arquivo e você pode optar por ofuscação de nome de arquivo simples padrão ou não criptografar os nomes de arquivo. A criptografia de nome de arquivo padrão produzirá nomes de arquivo mais longos e alguns provedores de armazenamento em nuvem podem ter uma limitação de comprimento de nome de arquivo, portanto, tenha isso em mente. Escolha a opção que melhor atende às suas necessidades (eu escolhi o padrão abaixo):
How to encrypt the filenames.
Enter a string value. Press Enter for the default ("standard").
Choose a number from below, or type in your own value
 1 / Encrypt the filenames see the docs for the details.
   \ "standard"
 2 / Very simple filename obfuscation.
   \ "obfuscate"
 3 / Don't encrypt the file names.  Adds a ".bin" extension only.
   \ "off"
filename_encryption> standard
  1. Na próxima etapa, você também pode optar por criptografar os nomes dos diretórios (digite true ou 1) ou deixe-os intactos (digite false ou 2):
Option to either encrypt directory names or leave them intact.
Enter a boolean value (true or false). Press Enter for the default ("true").
Choose a number from below, or type in your own value
 1 / Encrypt directory names.
   \ "true"
 2 / Don't encrypt directory names, leave them intact.
   \ "false"
directory_name_encryption> true
  1. Em seguida, você será solicitado a inserir uma senha ou gerar uma senha aleatória para seus arquivos de armazenamento em nuvem criptografados. Certifique-se de não perder esta senha! A senha é armazenada no arquivo de configuração Rclone (que pode ser criptografado como você verá um pouco mais tarde) para que você não precise digitá-la toda vez que quiser acessar seus arquivos criptografados, mas no caso de você perder a configuração Rclone arquivo, você precisará dessa senha para descriptografar seus arquivos de armazenamento em nuvem!

Decidi inserir minha própria senha (y) e, neste caso, tive que inserir a senha duas vezes:

Password or pass phrase for encryption.
y) Yes type in my own password
g) Generate random password
y/g> y

Enter the password:
password:
Confirm the password:
password:
  1. Agora, você será solicitado a inserir uma senha para o salt (ou gerar uma senha aleatória) ou deixe em branco. Esta segunda senha é usada pelo Rclone em conjunto com scrypt, o que torna impraticável montar um ataque de dicionário nos dados criptografados do Rclone, e é recomendado que você defina um senha para proteção total.

Aqui eu digitei g, que diz ao Rclone para gerar uma senha aleatória:

Password or pass phrase for salt. Optional but recommended.
Should be different to the previous password.
y) Yes type in my own password
g) Generate random password
n) No leave this optional password blank (default)
y/g/n> g
  1. Como o Rclone irá gerar a senha para você, ele a seguir solicitará que você insira a força da senha em bits. Eu recomendo usar 1024 para força máxima da senha:
Password strength in bits.
64 is just about memorable
128 is secure
1024 is the maximum
Bits> 1024
  1. Rclone irá agora revelar a senha gerada e perguntar se você deseja usá-la (digite y ou apenas pressione a tecla Enter se estiver ok com a nova senha). Mais uma vez, certifique-se de não perder essa senha, então guarde-a em algum lugar seguro, como um gerenciador de senhas (eu recomendo Bitwarden):
Your password is: A-very-long-password-generated-by-rclone
Use this password? Please note that an obscured version of this
password (and not the password itself) will be stored under your
configuration file, so keep this generated password in a safe place.
y) Yes (default)
n) No
y/n> y

Rclone irá imprimir sua configuração e perguntar se está tudo bem. Pressione Enter para confirmar:

Como criptografar o arquivo de configuração Rclone

A senha de criptografia Rclone é armazenada no arquivo de configuração e é apenas ligeiramente obscurecida. Para protegê-lo, é recomendável criptografar o arquivo de configuração Rclone.

Isso pode ser feito facilmente a partir da configuração do Rclone. Digite:

Comandos para usar no terminal

rclone config

Isso apresenta os controles remotos configurados atualmente, seguidos por algumas opções:

e) Edit existing remote
n) New remote
d) Delete remote
r) Rename remote
c) Copy remote
s) Set configuration password
q) Quit config
e/n/d/r/c/s/q> s

Digite s pressione a tecla Enter para definir uma senha de configuração.

Na próxima tela, você verá:

Your configuration is not encrypted.
If you add a password, you will protect your login information to cloud services.
a) Add Password
q) Quit to main menu
a/q> a

Digite a e você será solicitado a inserir a senha de configuração do Rclone:

Enter NEW configuration password:
password:
Confirm NEW configuration password:
password:
Password set
Your configuration is encrypted.
c) Change Password
u) Unencrypt configuration
q) Quit to main menu
c/u/q> q

Depois de digitar sua nova senha de configuração Rclone duas vezes, digite q para sair.

Confira a versão original desse post em inglês
Propaganda
Blog Comments powered by Disqus.
Propaganda