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 da chave de sessão Chave de sessão é decriptada com a chave privada do receptor Criptograma da mensagem Criptograma é decriptado com a chave de sessão Mensagem original zipada
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 Custo Uma senha é forte se: Custo para quebrá-la supera o valor da informação Tempo para quebrá-la supera a vida da informação
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ário john -format=raw-md5 -wordlist=500-worst-passwords.lst mypasswd john -format=raw-md5 -wordlist=500-worst-passwords.lst -incremental mypasswd