Eu estou procurando ajuda para descobrir como amarrar uma chave secreta com uma senha para criptografar um arquivo usando GPG. Eu tinha testado muitas opções (- encrypt, --sign, --recipient, --symmetric, etc), mas em todas elas, consegui descriptografar o arquivo digitando apenas a senha, mesmo em uma maquina onde eu não não tem o público nem as chaves privadas / secretas.
Existe uma maneira de forçar o usuário a ter a chave secreta e ser solicitado a digitar a frase secreta?
Estou aberto a qualquer outra ideia que force uma verificação de segurança dupla para descriptografar o arquivo protegido.
Eu estou usando o GnuPG versão 2.0.9 sobre o Linux.
Minhas linhas de comando de teste incluem:
Eu tentei proteger meu arquivo usando essas sintaxes diferentes: ###
gpg --encrypt --symmetric --sign file.txt
gpg --symmetric --sign file.txt
gpg --symmetric --recipient file.txt
gpg -sb file.txt
gpg --default-key AFAEF918 --encrypt file.txt
Em todas as tentativas, o arquivo protegido foi descriptografado digitando apenas a frase secreta, mesmo em um computador sem as chaves pública / privada.
/root/.gnupg/secring.gpg
seg 1024D / AFAEF918 2016-02-12
Usuário de TEST uid (TEST Dev GPG Key)
ssb 2048g / 50B959DD 2016-02-12
Obrigado,
gpg -K
na máquina onde você queria descriptografar o arquivo (não tendo as chaves privadas).Respostas:
Comece lendo o GPG MiniHOWTO e seguindo os exemplos lá.
Em seguida, consulte o Manual do GPG para mais informações, conforme necessário .
Se possível
Ao experimentar, use -v e -vv para ver mais informações sobre o que está acontecendo.
- simétrico é especificamente criptografia simétrica, que não é suposto usar chaves - ele usa apenas a frase secreta, portanto, ser capaz de decifrar com apenas a senha é esperada.
Criptografia simétrica - apenas uma frase secreta
A linha de comando mais simétrica para criptografar é
embora eu recomende fortemente a escolha de uma codificação melhor e um número maior de iterações de derivação de chave, ou seja,
para criptografia AES256 com um resumo SHA-512 e uma contagem de iteração de chave grande (por favor, aumente-a do que eu listei também), ou
para CAMELLIA256 como acima.
Assinaturas - sem criptografia por si só
-sb é duas formas de assinatura juntas e age da mesma forma que -b. Isto NÃO ENCRITO, em primeiro lugar, apenas assina com uma assinatura destacada; um uso mais completo seria:
para a assinatura destacada
Criptografia de chave pública
Um exemplo de chave pública de uma assinatura mais criptografia é:
Geração de chave pública
Eu recomendo um algoritmo mais forte de criptografia e resumo de frase secreta ao gerar chaves também
E, como acima, aumente mais --s2k-count, por favor.
Isso não apenas cria uma forte derivação de frase-senha, mas também define uma forte auto-assinatura de chave moderna (--cert-digest-algo). Alguns softwares GPG ou PGP antigos ou limitados podem não suportar novas assinaturas do SHA512; você pode usar o SHA256 em vez disso, se precisar, mas raramente vejo problemas com o SHA512 atualmente (e eles devem ser atualizados se tiverem).
Siga isso definindo preferências para os padrões mais fortes que você pode, por exemplo
essa etapa é segura, pois qualquer software de envio com configuração adequada simplesmente descerá na lista para encontrar a primeira cifra correspondente, o primeiro hash correspondente e a primeira compactação correspondente.
Senhas de chave pública
Observe que a frase secreta (inserida ao gerar a chave, alterável com o
comando no modo --edit-key, é o que criptografa a chave privada; NÃO é usado por quem quer que esteja usando a chave pública, e deve ser mantido tão secreto quanto a própria chave privada.
Tanto a frase secreta quanto a criptografia de chave pública, exigindo
Se você quiser que o destinatário tenha a chave privada E uma senha conhecida por ambas as partes (remetente e destinatário), será necessário executar o GPG duas vezes, ou seja,
Primeiro use criptografia simétrica, que será a segunda descriptografia (a camada "interna" da cebola de criptografia).
Em seguida, use a criptografia de chave pública no arquivo anteriormente criptografado; note que este está em test.txt.gpg, e produz test.txt.gpg.gpg
O destinatário (ou seu processo automatizado) primeiro descriptografará a parte da chave pública com sua chave privada, além de validar a assinatura. Então, se for uma chave corporativa ou de equipe, eles poderão rotear a mensagem para o destinatário pretendido que possui a chave simétrica.
Descriptografia (pública e privada)
fonte
gpg
sempre me pede algumrecipient
. Se eu adicionar um endereço de e-mail como--recipient
valor, ele vai reclamar, que não há chave pública para o endereço de e-mail. Aparentemente, ele ainda quer usar uma chave pública do destinatário em vez de apenas uma frase secreta para criptografar. - EDIT: Parece que foi causado por mim ter o inócuo--encrypt
também.