PGP – Pretty Good Privacy Privacidade Bastante Boa Segurança para correio eletrônico Criador e suas funções • Foi criado por Phil Zimmermann em 1991. • Fornece PRIVACIDADE, AUTENTICAÇÃO, ASSINATURAS DIGITAIS e COMPACTAÇÃO de uma forma facil de usar. • Roda em ambientes UNIX, Linux, Windows e MAC OS. Principais Características • Usa algoritmos simétricos como o IDEA, CAST ou 3DES para cifras as mensagens. • Usa RSA ou Diffie-Hellman para compartilhar a chave usada para cifrar as mensagens. • Usa MD5 para gerar o hash criptográfico. • Em 2004 ele deixou de ser gratuito. NÃO OFERECE RECURSOS DE CORREIO • Funciona como um pré-processador que recebe texto simples como entrada e produz texto cifrado, assinado e codificado em base64 como saída. • Essa saída pode ser enviada usando o protocolo de correio eletrônico SMTP. FUNCIONAMENTO DO PGP PGP Passo a Passo - ENVIANDO Alice possui uma mensagem P e a submete ao software PGP. 1 – A mensagem P passa por uma função hash (MD5 com saída de 128 bits). 2 – O hash é assinado com a chave privada D(a) de Alice. 3 – O hash assinado de P e uma cópia de P em claro são concatenados gerando P1. 4 – P1 é submetido a um processo de compactação usando um programa ZIP que emprega o algoritmo Ziv-Lempel. A saída do programa ZIP é chamada de P1.Z. 5 – O software PGP solicita que Alice insira dados aleatoriamente. O conteúdo passado e a velocidade de digitação geram uma chave de 128 bits, K. O algoritmo simétrico cifra P1.Z usando a chave K. 6 – A chave K é cifrada com a chave publica de Bob E(b). 7 – Os dois componentes são convertidos para base 64 podendo ser incluída em um corpo de mensagem SMTP. PGP – Passo a Passo - RECEBENDO 1 - Bob ao receber a mensagem de Alice reverte a codificação base 64. 2 – Ele obtém a chave para abrir a mensagem que foi cifrada com o IDEA usando sua chave privada D(b) RSA. 3 – Com a chave K, ele decodifica a mensagem e obtém P1.Z. 4 – Bob agora separa o texto simples P e o hash assinado para validar a integridade do documento. 5 – Bob usa a chave publica de Alice E(a) RSA e obtém o hash criptográfico. Neste passo ele válida o emissor. 6 - Com a mensagem P, ele realiza MD5 (P) e compara este hash com o que veio assinado por Alice. 7 - Se os resultados forem iguais, a mensagem está correta e que realmente veio de Alice (INTEGRIDADE e AUTENTICIDADE). Mensagem PGP • Uma mensagem PGP é dividida em 3 partes. Na parte da chave da mensagem, fica também um identificador da chave publica de Bob, pois ele pode ter várias chaves públicas. A parte da assinatura possui um cabeçalho, um timbre de hora, o identificador de chave pública do transmissor, informações que identifique os algoritmos usados (permitindo uso do MD6 e SHA2) e pelo hash criptografado. A parte da mensagem contém um cabeçalho, o nome padrão do arquivo a ser usado caso o receptor grave o arquivo no disco e o timbre de hora de criação da mensagem e a mensagem propriamente dita. Gerenciamento de Chaves Cada usuário manter duas estruturas de dados localmente, que são dois anéis: • Anel de chave privada . • Anel de chave publica. Anel de Chave Privada • Contém um ou mais pares de chave pública/privada. • São aceitos vários pares para os usuários possam alterar suas chaves publicas sem invalidar as mensagens que estiverem sendo preparadas ou em transito. • As chaves privadas armazenadas em disco são cifradas com uma senha especial arbitrariamente longa. Anel de Chaves Públicas • Contém as chaves dos correspondentes do usuário. São necessários para cifrar a chave simétrica de cada mensagem. Cada entrada contém a chave publica, a identificação da chave e um grau de confiança da chave. Teia de Confiança Obtendo chaves públicas • Na prática as pessoas recebem as chaves públicas consultando um servidor de chaves confiável. • Após a padronização do X.509, o PGP também passou a admitir certificados digitais.