25
PGP Pretty Good Privacy Desenvolvido por Phil R. Zimmermann (1991) Padrão para assinatura e encriptação de dados Utiliza IDEA, RSA e MD5

Aula prática 1 - GPG e senhas

  • Upload
    lynhi

  • View
    222

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Aula prática 1 - GPG e senhas

PGP

• Pretty Good Privacy

• Desenvolvido por Phil R. Zimmermann (1991)

• Padrão para assinatura e encriptação de dados

• Utiliza IDEA, RSA e MD5

Page 2: Aula prática 1 - GPG e senhas

PGP: Encriptação

• Compressão dos dados (zip)– Descaracterização da linguagem

– Economia de memória e tempo

• Geração de uma chave de sessão– Chave secreta randômica utilizada uma só

vez

Page 3: Aula prática 1 - GPG e senhas

PGP: Encriptação

Mensagem zipada é encriptada com a chave de sessão

Chave de sessão é encriptada com a chave pública do receptor

Criptograma da mensagem + criptograma da chave de sessão

Page 4: Aula prática 1 - GPG e senhas

PGP: Decriptação

Mensagem recebida

Criptograma é decriptado com a

chave de sessão

Mensagem original zipada

Criptograma da mensagem

Criptograma da chave de sessão

Chave de sessão é decriptada com a chave privada do receptor

Page 5: Aula prática 1 - GPG e senhas

PGP: Característica

• Combina a conveniência da encriptação de chave pública com a velocidade da encriptação de chave secreta

Page 6: Aula prática 1 - GPG e senhas

PGP: Assinatura Digital

• É calculado o resumo da mensagem, que enviado junto com a mensagem

• O receptor deve calcular este valor e comparar com o recebido

Page 7: Aula prática 1 - GPG e senhas

GPG (GNU Privacy Guard)

• Versão GNU do PGP

• Gratuito e de código aberto

• Suporta ElGamal, DSA, RSA, AES, 3DES, Blowfish, Twofish, CAST5, MD5, SHA-1, RIPE-MD-160 e TIGER

Page 8: Aula prática 1 - GPG e senhas

GPG: Aula Prática

• Utilizando o GnuPG (GNU Privacy Guard)– Executável: gpg (Linux), gpg4win (Windows)

• Gerar um par de chaves pública e privada– mkdir ~/.gnupg

– gpg --gen-key

– Siga as instruções

Page 9: Aula prática 1 - GPG e senhas

GPG: Aula Prática

• Você acabou de gerar suas chaves pública e privada

• Dê um ls -l no diretório ~/.gnupg

-rw-r--r-- 1 otto otto 908 Aug 28 15:36 pubring.gpg

-rw------- 1 otto otto 600 Aug 28 15:36 random_seed

-rw------- 1 otto otto 1129 Aug 28 15:36 secring.gpg

• Salve a sua chave pública– gpg -a --export seu_nome > seu_nome.asc

Page 10: Aula prática 1 - GPG e senhas

GPG: Aula Prática

• Envie sua chave pública aos seus amigos ou disponibilize em algum lugar (por exemplo na sua página HTML)

• Importe a chave de outras pessoas– gpg --import arquivo

• Ex.: gpg --import otto.asc

Page 11: Aula prática 1 - GPG e senhas

GPG: Aula Prática

• Liste as chaves públicas que você conhece– gpg --list-keys

• Declare confiança na autenticidade de uma chave pública assinando-a– gpg --sign-key nome

Page 12: Aula prática 1 - GPG e senhas

GPG: Aula Prática

• Assine algum arquivo– gpg --clearsign arquivo

• Verifique a assinatura– gpg --verify arquivo.asc

Page 13: Aula prática 1 - GPG e senhas

GPG: Aula Prática

• Encripte algum arquivo– gpg -r destinatário -e arquivo

• Decripte o arquivo– gpg -d arquivo.gpg > arquivo

Page 14: Aula prática 1 - GPG e senhas

Senhas

• Um código secreto convencionado entre as partes como forma de reconhecimento

• Amplamente utilizadas como forma de autenticação em sistemas computacionais

Page 15: Aula prática 1 - GPG e senhas

Senhas Fracas

• Senhas curtas

• Somente letras minúsculas

• Palavras contidas em dicionários

• Dados pessoais públicos

• Sequências visuais no teclado

• Substituições simples nas categorias acima (A : @, I : 1, ...)

Page 16: Aula prática 1 - GPG e senhas

Senhas Fracas

Page 17: Aula prática 1 - GPG e senhas

Senhas Fortes

• Toda senha pode ser quebrada testando todas as combinações– Tempo

– Recursos

• Uma senha é forte se:– Custo para quebrá-la supera o valor da informação

– Tempo para quebrá-la supera a vida da informação

Custo

Page 18: Aula prática 1 - GPG e senhas

Senhas Fortes: Recomendações

• Mínimo de 8 caracteres

• Utilizar– Maiúsculas

– Minúsculas

– Símbolos

– Números

Page 19: Aula prática 1 - GPG e senhas

Senhas Fortes: Métodos

• Mnemônico– Esta senha, por exemplo, foi escolhida para

2015! => Es,pe,fep2015!

• Frases-senha alteradas– Es,pe,fep2013! => E5,p3,f&p2013!– To be or not to be => 2B0r!2b

• Combinação e alteração– carta, cadeira, copo => Krt@Kd1r@C0p0

Page 20: Aula prática 1 - GPG e senhas

Senhas Fortes: Métodos

• Não deve ser usada a mesma senha em mais de um serviço– A quebra de segurança de um serviço implica na

quebra de todos neste caso

• Método da senha base:1.Criar senha por um dos métodos anteriores

2.Criar uma regra de derivação para cada serviço

Page 21: Aula prática 1 - GPG e senhas

Quebrando Senhas

• Força bruta

• Incremental– Força bruta

– Estudos linguísticos

– Cadeias de markov

– Estatística

• Dicionário– Regras de mistura: A:@, I:1, E:3 ...

Page 22: Aula prática 1 - GPG e senhas

Senhas: Aula Prática

• John the Ripper

– É gratuito, de código aberto.

– Desenvolvido originalmente UNIX por Alexander Peslyak.

– Hoje John the Ripper está disponível para diversas plataformas.

Page 23: Aula prática 1 - GPG e senhas

Senhas: Aula Prática

• Instalação– su

– apt-get install john john-data• Programa principal: john• Utilitário: Unshadow

• Listas de caracteres e dicionário em /usr/share/john/data

• Teste– john --test

Page 24: Aula prática 1 - GPG e senhas

Senhas: Aula Prática

• Arquivo de senha de usuário no Linux:<usuário>:<resumo da senha>:<identificador de usuário>:<identificador de

grupo>:<Infrmações de usuário>:<diretório base>:<interpretador de comandos>

• Exemplos:– root:425bea4086598b7c11668dd8483c926c:0:0:Root user:/root:/bin/bash– user:029deb807ad1843954390e990e4f06ed:1023:1008:Some

user:/lab/users/user:/bin/bash

• Linux separa arquivos de senha e dados– unshadow /etc/passwd /etc/shadow > mypasswd

Page 25: Aula prática 1 - GPG e senhas

Senhas: Aula Prática

• Ataques:– Manual: man john

– Exemplo: Ataque de dicionáriojohn -format=raw-md5 -wordlist=500-worst-passwords.lst mypasswd

john -format=raw-md5 -wordlist=500-worst-passwords.lst -incremental mypasswd