Categories
Linux Tutoriais UNIX

Como gravar arquivos criptografados com o Vim

Como gravar arquivos criptografados usando o editor de textos Vim.

O editor de textos Vim tem suporte a diversos métodos de criptografia.
É possível guardar código ou qualquer outro texto (como senhas ou outras informações sensíveis) longe de olhares curiosos.

Uma vez criptografado, o texto não pode mais ser lido, sem a chave correta.
Tenha isto em mente, antes de usar este tipo de segurança em um arquivo — pra não ficar “trancado do lado de fora”.
Você pode enviar o texto codificado para outras pessoas, que usem o Vim no Windows ou no MacOS.
Se elas tiverem a senha para descriptografar, poderão ler o conteúdo da mensagem.

Para ativar a criptografia, a qualquer momento, use o comando ‘:X’.
Forneça a senha e a confirmação.
A criptografia será aplicada na hora de gravar o arquivo (:w).

criptografia no vim

É possível já abrir um arquivo com a criptografia ativada:

vim -x meu-arquivo-secreto.txt

Após este comando, o Vim iniciará pedindo uma nova chave de segurança para o seu arquivo.
Na próxima vez em que for abrir o arquivo, não precisa usar ‘-x’:

vim meu-arquivo-secreto.txt

Cuidados com a segurança criptográfica no Vim

Além de não perder a sua senha e usar, também, uma senha decente, há outros aspectos a levar em consideração, caso você se preocupe realmente com a sua segurança.
Quando tentar abrir o seu arquivo, só conseguirá ver um monte de caracteres desconexos.
texto criptografado

Tanto o texto contido no swap, quanto o do arquivo undo (usado para desfazer ações dentro do editor), são guardados sob criptografia.

Talvez não seja paranoia, mas a gente tem que falar sobre isso…
A codificação dos arquivos de swap e do undo são feitas bloco a bloco — fator que pode ajudar a reduzir o tempo necessário para um invasor quebrar sua senha.
Portanto, se quiser segurança extra, desative o swap e o undo (desfazer) para o arquivo.
Para desativar o recurso de swapping do Vim, entre no modo de comando (tecla ESC) e execute o seguinte:

:noswapfile

O comando abaixo, inicia a edição do arquivo ‘meus_segredos.txt’, com o swap desativado:

:noswapfile edit meus_segredos

Use o que achar melhor.
O lado ruim desta ação é que você pode perder texto, que ainda não tenha sido gravado, caso ocorra alguma queda de energia ou travamento no sistema operacional.
Já o arquivo undo pode ser desativado sem maiores problemas:

:set noundofile

Veja outros procedimentos adicionais (opcionais) de segurança que você pode adotar.
Para desativar também o backup automático:

:set nobackup

Para desativar o arquivo temporário:

:set nowritebackup

Para desativar a criptografia de um arquivo use o comando:

:set key=

Você também pode desativar o viminfo, que oferece informações sobre a sessão atual:

:set viminfo=

Quais métodos de criptografia estão disponíveis para o Vim

Você pode usar a opção ‘cryptmethod‘ (ou cm) para selecionar o tipo de criptografia a ser usado:

  1. zip: método mais fraco, porém rápido e mais difundido. Tem maior compatibilidade.
  2. blowfish: método mais seguro que o anterior.
  3. blowfish2: método atualizado e com segurança média para forte. É recomendado pela documentação oficial do Vim.

Para escolher o método de criptografia blowfish2, use o seguinte comando no Vim:

:setlocal cm=blowfish2

Você precisa fazer esta opção antes de começar a escrever no arquivo.
Quando você for abrir um arquivo, o Vim detecta automaticamente o método usado para criptografá-lo.
Você pode alterar o cryptmethod, ao abrir um arquivo, antes de começar editar.
Para definir permanentemente o método ou qualquer outro ajuste de que falamos neste post, edite o arquivo de configuração vimrc.

Como saber se a minha versão do Vim tem suporte a criptografia

Se você efetuou a instalação do aplicativo a partir dos repositórios oficiais da sua distro, não há muito o que fazer. E o suporte provavelmente já estará lá.
Alguns usuários preferem baixar e compilar o código fonte — entre outras coisas, isto lhes dá acesso a uma versão mais atual do aplicativo.
Neste caso, pode ser necessário compilar com a opção ‘cryptv’ selecionada.
Use a opção ‘–version’, combinada ao comando grep, para saber se a sua versão tem suporte a criptografia:


vim --version | grep crypt

Se o +cryptv estiver presente, então está tudo ok com a sua versão.

vim version

Referências

Como considerações finais, tenha cuidado para não começar a editar (e gravar em seguida) um arquivo criptografado, que você não descodificou adequadamente. Todo o conteúdo do arquivo será perdido, caso você o faça.
Lembre-se que o texto armazenado na memória não é criptografado.
Isto significa que o administrador do seu sistema, tecnicamente, poderá ler o seu conteúdo, enquanto você o estiver editando.
O manual do Vim também informa que, em uma máquina antiga (32 bit) é possível quebrar uma senha de 6 caracteres em menos de 1 dia, por força bruta, no caso de usar o cryptmethod zip.
Você pode iniciar o Vim com criptografia ativada e o swap desligado, com as seguintes opções:


vim -xn meuarquivo.txt

Leia mais:
https://linux-audit.com/using-encrypted-documents-with-vim/.

By Elias Praciano

Autor de tecnologia (livre, de preferência), apaixonado por programação e astronomia.
Fã de séries, como "Rick and Morty" e "BoJack Horseman".
Me siga no Twitter e vamos trocar ideias!

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.