Giter Site home page Giter Site logo

gpg-talk's Introduction

Roteiro da Talk sobre GPG

Conceitos

Cripto Simétrica

./roteiro_gpg.org_20230405_231007.png [fn:1]

Cripto Assimétrica

Exemplo 1

./roteiro_gpg.org_20230405_231044.png

Exemplo 2

./roteiro_gpg.org_20230405_231529.png

Hashs

Conceito

./roteiro_gpg.org_20230405_231922.png

Manipulação

https://emn178.github.io/online-tools/md5.html

Diferença para encoding.

Usos da criptografia

Para confidencialidade

Não permite computadores intermediários à saber o conteúdo da mensagem.

Integridade

Verifica que tudo o que eu te enviei chegou sem falta.

Autenticidade

Atesta que minha mensagem fui eu quem mandei.

Não-repúdio

Você de posse da mensagem pode provar que fui eu quem escrevi.

Não adianta eu mudar de idéia.

Usos da assinatura (Como funciona)

./roteiro_gpg.org_20230405_232713.png

Confidencialidade e Integridade

./roteiro_gpg.org_20230405_232903.png

Autenticidade e Não repúdio

./roteiro_gpg.org_20230405_233016.png

Certificado Digital

  • Um orgão certificador assina a chave pública
  • Teia de confiança
  • Chave pública do CA
  • O órgão certificador “Assina” a sua chave pública

Ou seja, eu entrego para você minha chave pública junto com o hash gerado pela chave privada do órgão certificador.

Assim você pode pegar minha chave pública, a informação do órgão certificador e comparar as duas.

Tanto quanto você acredite no órgão certificador.

gpg

GNU Privacy Guard

PGP

RFC 4880

Troca de chaves:

  • entre pessoas
  • servidores de chaves

Mão na massa

Cripto Simétrica

Criptografar / Descriptografar

gpg --version

gpg --symmetric document.txt

gpg --decrypt document.txt.gpg

Também é possível gerar com `gpg -c filename` e descriptografar com `gpg filename.gpg`, repare que `gpg -d filename.gpg` joga a saída para o stdout.

Também é possível ser muito mais específico:

gpg --symmetric --cipher-algo AES256 --output encrypted_file filename

Sobre o agent e senha cacheada:

Pode-se ver o agente gpg rodando com o `ps aux | grep gpg`.

gpg-connect-agent “getpinentry” /bye

(Retorna pinetry-curses, pinentry-gtk-2, …)

Para reiniciar o agent. gpg-connect-agent reloadagent /bye

Para apagar a senha cacheada no agent. gpg-connect-agent “CLEAR_PASSPHRASE” /bye

Critpo Assimétrica

Criar o par de chaves

gpg --help | grep genera

gpg --gen-key
gpg --full-generate-key

Listar chaves

gpg --list-keys
gpg --list-secret-keys

Procurar / Baixar / Atualizar chaves de um servidor

gpg --search-keys PESQUISA
gpg --keyserver keyserver.ubuntu.com --search-keys richard stallman
gpg --keyserver pgp.mit.edu --search-keys richard stallman
gpg --recv-keys ID_CHAVE
gpg --recv-keys ID_CHAVE --keyserver keyserver.ubuntu.com
gpg --refresh-keys

Remover chaves

gpg --delete-keys
gpg --delete-secret-keys
gpg --delete-secret-and-public-keys

Enviar chave ao servidor

gpg --send-keys --keyserver pgp.mit.edu ID_DA_CHAVE

Assinar arquivo

Par assinar:

gpg --sign ARQUIVO

gpg --sign --armor ARQUIVO
gpg --sign -a ARQUIVO

Para verificar a autencidade:

gpg --verify ARQUIVO.gpg
gpg --verify ARQUIVO.asc

Criptografar arquivo para alguém

Geramos um arquivo com uma mensagem secrega

echo "Essa é uma mensagem muito secreta!" >> msg.txt

Agora de posse da chave PÚBLICA do recipiente, importada em nosso chaveiro, rodamos o comando:

gpg --recipient RECIPIENT_EMAIL --encrypt FILENAME

Descriptografar arquivo para você

Somente a pessoa que detém a chave PRIVADA pode descriptografar um arquivo.

Dessa forma, supondo que alguém criptografou um arquivo com sua chave PUBLICA, enviou para você, você pode então descriptografar:

gpg --decrypt --output FILENAME FILENAME.gpg

Gerando o arquivo da sua chave pública para os outros

Tudo o que é seu fica em ~/.gnupg, mas não é uma boa idéia copiar arquivos diretamente dali.

O melhor é usar o comando de exportação para ter certeza de que você está enviando a chave pública.

Binário:

gpg --output my_public_key_filename.gpg --export USER_EMAIL

Armoured version:

gpg --armor --export USER_EMAIL

Assinar chaves

Um fluxo normal envolveria importar a chave pública que a pessoa te enviou ou do servidor.

Ter um contato pessoal com a pessoa para ela confirmar a fingerprint da chave pública.

Conferir com `gpg -k` tanto na sua máquina quanto na da pessoa que é a mesma.

E agora você pode “assinar” essa chave como confiável.

gpg --sign-key OTHER_PERSON_EMAIL

Também é possível inicializar em modo interativo com

gpg --edit-key OTHER_PERSON_EMAIL

E navegar por comandos, exemplo:

	fpr
	sign
	check
	save

Note:

[fn:1] All pictures created by Prof. Paulo Kretcheu

gpg-talk's People

Contributors

lionyxml avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.