Participando de uma Festa de Assinaturas de Chaves GPG (signing-party)
Pré-requisitos
- Ter uma chave pública e privada válida na sua máquina configurada. (https://keyring.debian.org/creating-key.html)
- Dicas de configuração do arquivo de configuração do GnuPG
$ cat ~/.gnupg/gpg.conf # Created by pEpEngine keyserver keyserver.ubuntu.com keyserver-options no-self-sigs-only cert-digest-algo SHA512 no-emit-version no-comments personal-cipher-preferences AES AES256 AES192 CAST5 personal-digest-preferences SHA512 SHA384 SHA224 ignore-time-conflict allow-freeform-uid pinentry-mode loopback
Instalando pacotes necessários - como root ou utilizar sudo
apt install signing-party msmtp msmtp-mta
Configurando o serviço do msmtp
-
O MSMTP é um cliente SMTP que permite enviar email pelo terminal Linux.
-
Um exemplo do arquivo de configuração está disponível no seguinte arquivo: /usr/share/doc/msmtp/examples/msmtprc-user.example
-
Como exemplo criaremos um arquivo configurando um cliente SMTP do gmail
vim ~/.msmtprc # O conteúdo do arquivo deverá ser o seguinte: # Set default values for all following accounts. defaults port 587 tls on tls_trust_file /etc/ssl/certs/ca-certificates.crt logfile - account gmail host smtp.gmail.com from <user>@gmail.com auth on user <user>@gmail.com passwordeval gpg --for-your-eyes-only --quiet --decrypt ~/.msmtp-gmail.gpg # Set a default account account default : gmail
-
Usaremos como exemplo o serviço do Gmail para envio de email e com isso teremos que criar uma chave para aplicativos a qual será utilizada pelo msmtp. A url para criação é a seguinte: https://myaccount.google.com/apppasswords
-
Após criada a senha de aplicativos do Gmail iremos gerar um arquivo criptografado com sua chave gpg para que o msmtp possa ler e se autenticar toda vez que for enviar um email.
# O comando deverá ser executado dentro da pasta do usuário que está utilizando o serviço.(/home/user) cd ~/ gpg --encrypt --output=.msmtp-gmail.gpg --recipient=<email_da_sua_chave_gpg_que_irá_criptografar> - <<END copie-a-senha-criada-pelo-gmail END
-
Testando o envio de email
echo "teste de email" | msmtp -a default <email_do_destinatario> # Após esse comando ser executado com sucesso deverá ser recebido um email como o corpo do texto:'teste de email'
Configurando o Caff
-
O comando caff está presente no pacote signing-party empacotado no Debian
-
Deverá ser alterado o arquivo ~/.caffrc (Altere os campos 'seu-nome', 'seu-email' e 'sua-fingerprint-da-chave-gpg' antes de copiar esse modelo)
# .caffrc -- vim:ft=perl: # This file is in perl(1) format - see caff(1) for details. $CONFIG{'owner'} = 'seu_nome'; $CONFIG{'email'} = 'seu-email'; #$CONFIG{'reply-to'} = 'foo@bla.org'; # You can get your long keyid from # gpg --keyid-format long --list-key <yourkeyid|name|emailaddress..> # # If you have a v4 key, it will simply be the last 16 digits of # your fingerprint. # # Example: # $CONFIG{'keyid'} = [ qw{FEDCBA9876543210} ]; # or, if you have more than one key: # $CONFIG{'keyid'} = [ qw{0123456789ABCDEF 89ABCDEF76543210} ]; $CONFIG{'keyid'} = [ qw{sua-fingerprint-da-chave-gpg} ]; # Select this/these keys to sign with #$CONFIG{'local-user'} = [ qw{5A303591F8CDB08B E1DB53241AB7E528 B378B80629059B40 D83EC937563FB6D4 18827D0F11708D4C} ]; # Additionally encrypt messages for these keyids #$CONFIG{'also-encrypt-to'} = [ qw{5A303591F8CDB08B E1DB53241AB7E528 B378B80629059B40 D83EC937563FB6D4 18827D0F11708D4C} ]; # Mail template to use for the encrypted part #$CONFIG{'mail-template'} = << 'EOM'; #Hi, # #please find attached the user id{(scalar @uids >= 2 ? 's' : '')} #{foreach $uid (@uids) { # $OUT .= "\t".$uid."\n"; #};}of your key {$key} signed by me. # #If you have multiple user ids, I sent the signature for each user id #separately to that user id's associated email address. You can import #the signatures by running each through `gpg --import`. # #Note that I did not upload your key to any keyservers. If you want this #new signature to be available to others, please upload it yourself. #With GnuPG this can be done using # gpg --keyserver keyserver.ubuntu.com --send-key {$key} # #If you have any questions, don't hesitate to ask. # #Regards, #-- #{$owner} #EOM
-
Após configurado o caff está pronto para o uso
# É possível assinar mais de uma chave por vez somente dar um espaço entre as fingerprints a serem assinadas na mesma linha. caff -m yes <fingerprint da chave a ser assinada> [NOTICE] Importing GnuPG options from ~/.gnupg/gpg.conf: [NOTICE] keyserver keyserver.ubuntu.com [NOTICE] keyserver-options no-self-sigs-only [NOTICE] cert-digest-algo SHA512 [NOTICE] personal-cipher-preferences AES AES256 AES192 CAST5 [NOTICE] personal-digest-preferences SHA512 SHA384 SHA224 [NOTICE] pinentry-mode loopback [INFO] Key XXXXXXXXXXXXXXX not changed [NOTICE] Fetching keys from a keyserver (this may take a while)... [INFO] Key XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX imported [NOTICE] Sign the following keys according to your policy, then exit gpg with 'save' after signing each key Really sign? (y/N) y gpg> save Save changes? (y/N) y gpg> quit [INFO] Key xxxxxxxxxxxxxxxxxxx UID 1 João Maria <joao@maria.wiki.br> done Mail signature for 'seu nome' to 'joao@maria.wiki.br'? [Y/n] YES (from config/command line) May 01 12:12:20 host=smtp.gmail.com tls=on auth=on user=email@gmail.com from=email@gmail.com recipients=joao@maria.wiki.br mailsize=5437 smtpstatus=250 smtpmsg='250 2.0.0 OK exitcode=EX_OK [INFO] Key 0xAEDF123123123123 done # Essa é a mensagem de sucesso!