Aula prática 1 - GPG e senhas

Preview:

Citation preview

PGP

• Pretty Good Privacy

• Desenvolvido por Phil R. Zimmermann (1991)

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

• Utiliza IDEA, RSA e MD5

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

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

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

PGP: Característica

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

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

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

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

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

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

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

GPG: Aula Prática

• Assine algum arquivo– gpg --clearsign arquivo

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

GPG: Aula Prática

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

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

Senhas

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

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

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, ...)

Senhas Fracas

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

Senhas Fortes: Recomendações

• Mínimo de 8 caracteres

• Utilizar– Maiúsculas

– Minúsculas

– Símbolos

– Números

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

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

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 ...

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.

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

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

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

Recommended