Chaves GnuPG
GnuPG é uma implementação livre do padrão OpenPGP definido pela RFC4880
OpenPGP é um protocolo não-proprietário para comunicação encriptada por email usando chaves públicas criptográficas.
O protocolo OpenPGP define formatos padrão para mensagens encriptadas, assinaturas e certificados para troca de chaves públicas.
GnuPG criptografa mensagens utilizando a criptografia de chaves assimétricas.
Criptografia assimétrica é uma classe de protocolos de criptografia baseados em algoritmos que requerem duas chaves, uma delas sendo secreta (ou privada) e a outra delas sendo pública.
fonte: https://www.goanywhere.com/managed-file-transfer/encryption/open-pgp
apt install gnupg
gpg --gen-key
gpg -a --export [ID] > [FILENAME]
gpg --import [FILENAME]
Os grandes servidores sincronizam chaves entre si, exemplos de servidores:
gpg --send-keys [ID]
gpg --recv-keys [ID]
gpg --search-keys [NAME]
fonte:
https://cran.r-project.org/web/packages/gpg/vignettes/intro.html
slides sobre web of trust: http://slides.com/mricon/pgp-web-of-trust
You should only sign a key as being authentic when you are ABSOLUTELY SURE that the key is really authentic!!!. So if you are positive you got the key yourself (like on a key signing party) or you got the key through other means and checked it (for instance by phone) using the fingerprint-mechanism. You should never sign a key based on any assumption.
fonte: https://www.dewinter.com/gnupg_howto/english/GPGMiniHowto-3.html
Após importar uma chave para o chaveiro local é possível determinar o grau de confiabilidade que temos no dono dela.
gpg --edit-key [ID]
Você pode dizer que confia plenamente nas chaves que Ana assina. Assim, quando você receber a chave de Beto, que foi assinada por Ana, terá motivos para confiar nessa chave, mesmo não conhecendo Beto.
fonte: http://eriberto.pro.br/wiki/index.php?title=Usando_o_GnuPG
Unknown: Não se sabe como a pessoa em questão procede ao assinar uma chave. Não se deve confiar nas assinaturas dessa pessoa em chaves alheias.
None: Esta pessoa costuma assinar chaves sem certificar-se de que elas realmente são da pessoa que diz possuí-las. Não se deve confiar nas assinaturas dessa pessoa em chaves alheias.
Marginal: Esta pessoa assina chaves de forma correta (faz as verificações físicas necessárias). É possível confiar nessa pessoa, caso seja extremamente necessário.
Full: O usuário conhece muito bem sistemas criptográficos, é extremamente confiável e responsável. É possível pensar em aceitar algo de outras chaves que tenham sido assinadas por essa pessoa.
Demonstração prática usando gnupg
via linha de comando
man gpg
gnupg.vim: Plugin for transparent editing of gpg encrypted files
arquivos com extensão “.gpg”, “.pgp” ou “.asc” serão automaticamente reconhecidos
fonte: https://www.vim.org/scripts/script.php?script_id=3645
sudo apt install vim-scripts
sudo apt install vim-addon-manager
vim-addons install gnupg
key signing party
Antes da festa de assinatura de chaves:
The Keysigning Party HOWTO: http://www.cryptnet.net/fdp/crypto/keysigning_party/en/keysigning_party.html
Durante a festa de assinatura de chaves:
os servidores de chaves sabem lidar com varios envios da mesma chave somando as assinaturas
Após a festa de assinatura de chaves:
Palestra:
Criptografia e assinatura digital com GnuPG
Boa referência sobre criptografia simétrica, criptografia assimétrica, assinatura digital, autoridade certificadora e exemplos práticos com o GnuPG.
Palestra:
Assinatura de chaves na MiniDebConf
Exemplo de festa de assinatura de chaves realizada pela comunidade Debian na MiniDebConf Curitiba 2018.
joenio@joenio.me
Esta apresentação está disponível em:
http://joenio.me/gnupg
(código-fonte: http://github.com/joenio/joenio.me)
Onde e quando esta apresentação foi realizada