Quão segura é a criptografia de arquivos com blowfish?

16

Sei que o uso não:set cryptmethod=zip é seguro, mas qual o nível de segurança ?:set cryptmethod=blowfish

Na wikipedia, li que a cifra blowfish, como tal, deveria ser segura, mas isso não diz nada sobre a segurança da implementação do Vim .

E quanto aos arquivos de troca, arquivos de backup, arquivos de remoção de arquivos e outras formas possíveis de ignorar a criptografia blowfish? Quão seguro é o Vim?

Martin Tournoij
fonte
11
Isso realmente não será melhor na segurança da informação , já que você já identificou o (s) algoritmo (s) que está sendo usado?
muru
Hmm. Os documentos são um pouco confusos aqui. :h encryptiondiz que os arquivos desfazer e trocar são criptografados nos 7.3 e 7.4 , mas :h cryptmethodno 7.4 faz menção explícita undoapenas ao arquivo blowfish2.
muru
2
@muru É uma pergunta sobre a implementação do Vim de criptografia baseada em blowfish, não sobre o próprio algoritmo blowfish. Essa pergunta também seria abordada no tópico Segurança da informação , mas isso não a torna desatualizada aqui. A resposta é, de fato, que o blowfish em si é seguro (mesmo que não seja a melhor escolha), mas que a implementação do Vim é ruim.
Gilles 'SO- stop be evil'

Respostas:

19

É não seguro. David Leadbeater postou o código POC com força bruta de até 64 bytes em um artigo intitulado, de maneira um tanto irônica, a criptografia de blowfish do Vim ... ou por que você não deve rolar sua própria criptografia . A documentação do Vim agora recomenda :

- The implementation of 'cryptmethod' "blowfish" has a flaw.  It is possible
  to crack the first 64 bytes of a file and in some circumstances more of the
  file. Use of it is not recommended, but it's still the strongest method
  supported by Vim 7.3 and 7.4.  The "zip" method is even weaker.

E, anteriormente:

The text in the swap file and the undo file is also encrypted.  E843
However, this is done block-by-block and may reduce the time needed to crack a
password.  You can disable the swap file, but then a crash will cause you to
lose your work.  The undo file can be disabled without much disadvantage. 
        :set noundofile
        :noswapfile edit secrets

Note: The text in memory is not encrypted.  A system administrator may be able
to see your text while you are editing it.  When filtering text with
":!filter" or using ":w !command" the text is also not encrypted, this may
reveal it to others.  The 'viminfo' file is not encrypted.

Resumo:

  • Se você se preocupa com segurança, blowfishnão deve ser usado. Use em blowfish2vez disso.
  • Enquanto swape os undoarquivos são criptografados, viminfonão é.

Conselho não solicitado:

  • Se você se preocupa com segurança, não role sua própria criptografia . E isso significa a blowfish2implementação também. Use outra coisa, como GPG. O gnupg.vimplugin pode ser útil. Parece ser mantido . Desativa viminfoe o arquivo de troca.
muru
fonte
11
A reivindicação de David Leadbeater no ( dgl.cx/2014/10/vim-blowfish ) no último parágrafo está usando um dicionário para ataque de força bruta. Ele então acrescenta "senhas pequenas" que seriam fracas. Seus argumentos teóricos são corretos, mas não práticos. Senhas aleatórias boas de 64 bits ou mais não podem ser quebradas.
mosh