IT & Engineering
Lemmacmd: ferramenta simples de criptografia de arquivos
De vez em quando, todo mundo precisa criptografar arquivos como parte do trabalho. A necessidade de criptografar arquivos surge por vários motivos: enviar informações confidenciais para um repositório, transferir dados por um meio inseguro ou deixar algo em um disco que exige controles de acesso mais rigorosos do que os oferecidos pelo sistema operacional.
Embora existam várias opções, a maioria delas é desajeitada, confusa ou, pior ainda, passa uma falsa sensação de segurança. Por exemplo, o GPG é frequentemente recomendado para criptografar arquivos, mas vem com várias cifras desatualizadas e usabilidade nunca foi o seu forte. O OpenSSL vem com uma ferramenta de linha de comando conveniente chamada “openssl enc”, mas, na verdade, não oferece suporte a nenhuma forma de criptografia autenticada.
O Mailgun criou uma ferramenta simples chamada lemmacmd que usa NaCl e PBKDF#2 nos bastidores para criptografar e descriptografar pequenos arquivos no disco. E ela acerta em muitos pontos:
- Fácil de usar:
lemmacmd encrypt -in foo.txt -out foo.txt.enc - Oferece suporte a chaves e senhas para poder ser usada de forma automatizada ou interativa.
- Quando usada com uma senha, utiliza uma KDF (PBKDF#2) com uma grande contagem de iterações: 524.288.
- Usa uma cifra autenticada: Salsa 20 com Poly1305 como um Código de Autenticação de Mensagem (MAC) da biblioteca NaCl.
- É um pequeno binário de 4 MB vinculado estaticamente que funciona de qualquer lugar em que for colocado.
- É rápida: criptografar um arquivo de 10 MB leva pouco mais de um segundo.
- É facilmente auditável: o lemmacmd tem apenas 222 linhas, a biblioteca lemma tem apenas 365 linhas e o código real de criptografia do NaCl e PBKDF#2 tem apenas 226 linhas.
Se você quiser conferir o código-fonte ou contribuir, ela está disponível pelo GitHub assim como o último lançamento.
Como sempre, caso encontre algum problema (ou vulnerabilidades de segurança!), entre em contato conosco pelo GitHub.