Criptografia e descriptografia de senha

Criptografia e descriptografia de senha

Armazenei a senha como texto simples em um arquivo txt. Agora quero escrever o script que irá ler o texto simples do arquivo txt e depois criptografá-lo e descriptografá-lo.

Responder1

Criptografar uma senha é inútil quando você não consegue mantê-la criptografada. No instante em que você o descriptografa, ele fica vulnerável novamente.

Não importa quão difíceis sejam criptograficamente, os métodos de criptografia e descriptografia estão aí para qualquer um ver e copiar e colar de qualquer maneira. Isso só torna tudo mais bobo.

chmodserá uma defesa muito melhor contra espionagem do que uma máquina rube goldberg, mas com algum trabalho você poderá evitar o uso de senhas armazenadas, o que seria uma coisa muito boa. Porque: Senhas armazenadas de forma recuperável são batatas quentes de segurança e devem ser evitadas. Eles são uma ideia tão ruim que sudo, su, ssh, scp, e sftpnão apenas os evite, eles são todos projetados especificamente para impedir que você os use também.

Se você planeja solicitar uma senha, que tem uso limitado, mas considerarei a possibilidade de automação de operações ou algo assim, você pode usar um utilitário como o openssl.

$ echo foobar | openssl enc -aes-128-cbc -a -salt -pass pass:asdffdsa
U2FsdGVkX1/lXSnI4Uplc6DwDPPUQ/WjHULJoKypTO8=

$ echo U2FsdGVkX1/lXSnI4Uplc6DwDPPUQ/WjHULJoKypTO8= | openssl enc -aes-128-cbc -a -d -salt -pass pass:asdffdsa
foobar

Alternativamente, você pode fazer isso,

$ touch pass.txt && echo foobar > pass.txt
$ openssl bf -a -salt -in pass.txt -out secret && rm -f pass.txt
enter bf-cbc encryption password:
Verifying - enter bf-cbc encryption password:

$ openssl bf -d -a -in secret -out pass.txt
enter bf-cbc decryption password:

$ cat pass.txt
foobar

Responder2

Parece que você pode querer reinventar a roda. Minha sugestão pessoal seria criar um arquivo de texto com as senhas desejadas, organizadas de uma forma esteticamente agradável para você (nome de usuário, senha e site exclusivos aos quais pertence em cada linha?).

Gere uma chave RSA de 4.096 bits escolhendo gpg --full-gen-key"RSA e RSA". Ou, diabos, 2.048 bits ainda é seguro para uso técnico. Apenas não vá abaixo de 2048 bits.

gpg -e passwords.txtpara criptografar o arquivo com as senhas nele contidas.

Digite o nome do destinatário (que seria você). Então, quando terminar, verifique se password.txt.gpgexiste. Em seguida, exclua o passwords.txt original (não criptografado).

Agora a parte fácil.

Quando você quiser uma das senhas do arquivo, execute gpg -d passwords.txt.gpg

Tudo que você precisa lembrar é a senha que você escolheu ao gerar a chave RSA, e o conteúdo não criptografado será despejado no stdout (o terminal que você está usando). Limão fácil de espremer.

Uma alternativa ao RSA seria usar este método de geração de chaves:

gpg --full-gen-key --expert

em seguida, escolha a Opção 9 - “ECC e ECC”. para o algoritmo, escolha Brainpool P-512. Geração de chaves muito mais rápida que o RSA e igualmente segura com um tamanho de chave menor. Preferência pessoal, realmente. O restante da minha resposta (criptografia/descriptografia do arquivo de senha) ainda se aplica.

Alternativamente, você pode ir para odemaisrota fácil e apenas usar software pré-fabricado como KeePassX para armazenar senhas criptografadas.

informação relacionada