criptografia aplicada - módulo iii -- aplicações correntes...

63
Criptografia Aplicada Módulo III – Aplicações Correntes da Criptografia M. B. Barbosa [email protected] Departamento de Informática Universidade do Minho 2006/2007 M. B. Barbosa [email protected] Criptografia Aplicada 06/07

Upload: others

Post on 21-Jul-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Criptografia Aplicada - Módulo III -- Aplicações Correntes ...wiki.di.uminho.pt/twiki/pub/Education/Criptografia/... · Secure Sockets Layer (SSL) – Transport Layer Security

Criptografia AplicadaMódulo III – Aplicações Correntes da Criptografia

M. B. [email protected]

Departamento de InformáticaUniversidade do Minho

2006/2007

M. B. Barbosa [email protected] Criptografia Aplicada 06/07

Page 2: Criptografia Aplicada - Módulo III -- Aplicações Correntes ...wiki.di.uminho.pt/twiki/pub/Education/Criptografia/... · Secure Sockets Layer (SSL) – Transport Layer Security

Secure Sockets Layer (SSL) – Transport Layer Security (TLS)

IntroduçãoEstrutura do SSLSessões SSLCamadas SSLSegurança do SSL

Introdução

A Secure Sockets Layer está para o TCP como o IPsecestá para o IP. É um upgrade da camada de transportepara incluir segurança nas comunicações.O SSL foi desenvolvido pela Netscape, e a sua versão 3foi adoptada pela IETF sob a designação Transport LayerSecurity (TLS). O TLS está definido no RFC2246.Os serviços fornecidos pelo SSL incluem:

Confidencialidade baseada em cifras simétricas.Autenticação baseada em criptografia de chave pública.Integridade baseada em Message Authentication Codes.

M. B. Barbosa [email protected] Criptografia Aplicada 06/07

Page 3: Criptografia Aplicada - Módulo III -- Aplicações Correntes ...wiki.di.uminho.pt/twiki/pub/Education/Criptografia/... · Secure Sockets Layer (SSL) – Transport Layer Security

Secure Sockets Layer (SSL) – Transport Layer Security (TLS)

IntroduçãoEstrutura do SSLSessões SSLCamadas SSLSegurança do SSL

Estrutura do SSL

O SSL está estruturado em duas sub-camadas:

SSL Handshake Layer

SSL Record Layer

TCP/IP

A Handshake Layer permite a autenticação mutua entreclientes e servidores, e a negociação de algoritmos echaves criptográficos antes de se iniciar a troca de dadosatravés da Record Layer.A Record Layer encapsula a informação correspondenteàs camadas superiores.

M. B. Barbosa [email protected] Criptografia Aplicada 06/07

Page 4: Criptografia Aplicada - Módulo III -- Aplicações Correntes ...wiki.di.uminho.pt/twiki/pub/Education/Criptografia/... · Secure Sockets Layer (SSL) – Transport Layer Security

Secure Sockets Layer (SSL) – Transport Layer Security (TLS)

IntroduçãoEstrutura do SSLSessões SSLCamadas SSLSegurança do SSL

Sessões SSL

O funcionamento do SLL baseia-se em sessõesestabelecidas entre um cliente e um servidor.Cada sessão SSL pode incluir várias ligações seguras, ecada nó pode manter diversas sessões SSL. Durante oseu estabelecimento e operação, as sessões e ligaçõesSSL atravessam uma sequência de estados.Cliente e Servidor mantêm uma máquina de estados paracada sessão e ligação. A camada de Hanshake sincronizaos estados no cliente e no servidor.As transições entre estados efectuam-se em duas fases:

Primeiro constrói-se/negoceia-se um pending state.Depois substitui-se o operating state pelo pending state.

M. B. Barbosa [email protected] Criptografia Aplicada 06/07

Page 5: Criptografia Aplicada - Módulo III -- Aplicações Correntes ...wiki.di.uminho.pt/twiki/pub/Education/Criptografia/... · Secure Sockets Layer (SSL) – Transport Layer Security

Secure Sockets Layer (SSL) – Transport Layer Security (TLS)

IntroduçãoEstrutura do SSLSessões SSLCamadas SSLSegurança do SSL

Estado de uma Sessão SSL

Session identifier Uma sequência arbitrária de bytesescolhida pelo servidor para identificar a sessão.X509 certificate of the peer Certificado do interlocutor.Compression method Algoritmo de compressão dainformação antes de ser cifrada.Cipher spec Algoritmo de cifra simétrica (e algoritmo dehash criptográfico para utilização em MACs).Master secret Chave secreta partilhada por Cliente eServidor e da qual são derivados todos os segredosutilizados na sessão (chaves e IVs).Is resumable Indica se a sessão pode ser utilizada paranovas ligações.

M. B. Barbosa [email protected] Criptografia Aplicada 06/07

Page 6: Criptografia Aplicada - Módulo III -- Aplicações Correntes ...wiki.di.uminho.pt/twiki/pub/Education/Criptografia/... · Secure Sockets Layer (SSL) – Transport Layer Security

Secure Sockets Layer (SSL) – Transport Layer Security (TLS)

IntroduçãoEstrutura do SSLSessões SSLCamadas SSLSegurança do SSL

Estado de uma Ligação SSL

Server/Client random Números aleatórios escolhidos porCliente e Servidor para estabelecimento da ligação.Server/Client write MAC secret Chaves utilizadas porCliente e Servidor para efectuar MACs sobre dadostransmitidos.Server/Client write key Chaves utilizadas por Cliente eServidor para cifrar dados transmitidos.Initialization vectors Vectores de inicialização (IV) paraos modos de cifra simétrica que os utilizam.Sequence numbers Contadores sequenciais dasmensagens enviadas e recebidas.

M. B. Barbosa [email protected] Criptografia Aplicada 06/07

Page 7: Criptografia Aplicada - Módulo III -- Aplicações Correntes ...wiki.di.uminho.pt/twiki/pub/Education/Criptografia/... · Secure Sockets Layer (SSL) – Transport Layer Security

Secure Sockets Layer (SSL) – Transport Layer Security (TLS)

IntroduçãoEstrutura do SSLSessões SSLCamadas SSLSegurança do SSL

Record Layer

Recebe informação arbitrária das camadas superiores, emblocos de dados de tamanho variável.Os dados são fragmentados em blocos com um máximode 214 bytes denominados SSL Plaintext.Os blocos SSL Plaintext são comprimidos com o algoritmoda sessão, originando blocos SSL Compressed.Os dados SSL Compressed são protegidos com a cifra ealgoritmo de MAC definidos na CipherSpec da sessão (oMAC é calculado antes da cifragem). O resultado é umbloco do tipo SSL Ciphertext.Estes blocos são trocados entre Cliente e Servidor quetêm de reverter estas transformações para obter o textolimpo.

M. B. Barbosa [email protected] Criptografia Aplicada 06/07

Page 8: Criptografia Aplicada - Módulo III -- Aplicações Correntes ...wiki.di.uminho.pt/twiki/pub/Education/Criptografia/... · Secure Sockets Layer (SSL) – Transport Layer Security

Secure Sockets Layer (SSL) – Transport Layer Security (TLS)

IntroduçãoEstrutura do SSLSessões SSLCamadas SSLSegurança do SSL

Handshake Layer

Os parâmetros de sessão e ligação utilizados pela RecordLayer são estabelecidos pela Hanshake Layer.As mensagens da Handshake Layer viajam elas própriassob o controlo da Record Layer. Inicialmente não háqualquer protecção: é utilizada uma cipher spec nula atéque a primeira negociação seja concluida.Uma negociação é iniciada pelo Cliente com umamensagem Client Hello. O Servidor deve responder comuma mensagem equivalente. Ficam acordados:

A versão do protocolo SSL a utilizarO identificador da sessão e os números aleatórios.Os algoritmos criptográficos a utilizar (os mais fortes dossuportados).O algoritmo de compressão a utilizar

M. B. Barbosa [email protected] Criptografia Aplicada 06/07

Page 9: Criptografia Aplicada - Módulo III -- Aplicações Correntes ...wiki.di.uminho.pt/twiki/pub/Education/Criptografia/... · Secure Sockets Layer (SSL) – Transport Layer Security

Secure Sockets Layer (SSL) – Transport Layer Security (TLS)

IntroduçãoEstrutura do SSLSessões SSLCamadas SSLSegurança do SSL

Cliente

Client HelloServer HelloCertificateCertificate RequestServer Key Exchange

Servidor

Mudança de EstadoFinished

CertificateClient Key ExchangeVerify CertificateMudança de EstadoFinished

M. B. Barbosa [email protected] Criptografia Aplicada 06/07

Page 10: Criptografia Aplicada - Módulo III -- Aplicações Correntes ...wiki.di.uminho.pt/twiki/pub/Education/Criptografia/... · Secure Sockets Layer (SSL) – Transport Layer Security

Secure Sockets Layer (SSL) – Transport Layer Security (TLS)

IntroduçãoEstrutura do SSLSessões SSLCamadas SSLSegurança do SSL

Caso seja utilizada autenticação do Servidor, este envia oseu certificado X.509 ao Cliente, que o valida. Além davalidação habitual, o Cliente assegura-se de que o nomede domínio do Servidor, indicado no certificado, estácorrecto.Parâmetros do Servidor específicos para acordo dechaves podem também ser enviados nesta fase (ServerKey Exchange), se o seu certificado não incluirinformação suficiente para esta funcionalidade.Caso o Servidor autentique o Cliente, solicita o certificadocorrespondente (Certificate Request). Este pedido incluium desafio para ser utilizado na autenticação do cliente.O Servidor termina esta fase da negociação enviando umamensagem Server Hello Done.

M. B. Barbosa [email protected] Criptografia Aplicada 06/07

Page 11: Criptografia Aplicada - Módulo III -- Aplicações Correntes ...wiki.di.uminho.pt/twiki/pub/Education/Criptografia/... · Secure Sockets Layer (SSL) – Transport Layer Security

Secure Sockets Layer (SSL) – Transport Layer Security (TLS)

IntroduçãoEstrutura do SSLSessões SSLCamadas SSLSegurança do SSL

Caso tenha recebido um pedido de certificado, o Clientetem de envia-lo ou a negociação falha.Conjuntamente com o certificado o Cliente tem de enviaruma assinatura digital do desafio que recebeu,comprovando assim a posse da chave privada associadaao certificado.Finalmente, o Cliente envia os seus parâmetros paraacordo de chaves (Client Key Exchange), altera o seuestado de sessão, e envia uma primeira mensagemcifrada que indica o seu estado de prontidão (finished).O Servidor efectua o mesmo procedimento e a negociaçãotermina tendo sido acordado o Master Secret da sessão.

M. B. Barbosa [email protected] Criptografia Aplicada 06/07

Page 12: Criptografia Aplicada - Módulo III -- Aplicações Correntes ...wiki.di.uminho.pt/twiki/pub/Education/Criptografia/... · Secure Sockets Layer (SSL) – Transport Layer Security

Secure Sockets Layer (SSL) – Transport Layer Security (TLS)

IntroduçãoEstrutura do SSLSessões SSLCamadas SSLSegurança do SSL

A autenticação do servidor fica implicita pelo sucesso dacomunicação cifrada nas mensagens finished, ou não?De facto, o servidor só fica autenticado se o protocolo deacordo de chaves implicar a utilização da sua chaveprivada.Isto acontece sempre:

No protocolo RSAKeyExchange o cliente gera um segredoe cifra-o com a chave pública do servidor. Para gerar oMaster Secret, o servidor tem de decifrar este segredo coma sua chave privada.Nos outros protocolos, os parâmetros públicos do servidorutilizados no protocolo de acordo de chave são assinadoscom a sua chave privada.

M. B. Barbosa [email protected] Criptografia Aplicada 06/07

Page 13: Criptografia Aplicada - Módulo III -- Aplicações Correntes ...wiki.di.uminho.pt/twiki/pub/Education/Criptografia/... · Secure Sockets Layer (SSL) – Transport Layer Security

Secure Sockets Layer (SSL) – Transport Layer Security (TLS)

IntroduçãoEstrutura do SSLSessões SSLCamadas SSLSegurança do SSL

Segurança

A versão 3 do SSL é considerada um sistema seguro. Éuma evolução em relação às versões anteriores,colmatando falhas de segurança importantes.Um dos problemas mais conhecidos na versão 2 do SSLera a vulnerabilidade ao ataque “ciphersuit rollback”:

Um intruso podia editar as mensagens de hello trocadasentre Cliente e Servidor de forma a que ambos pensassemque o outro apenas conseguia funcionar com um nível desegurança reduzido.O resto da negociação decorria sem alterações eestabelecia-se uma ligação com um nível de segurançareduzido, mais vulnerável a ataques por parte do intruso.

Este ataque era possível porque as mensagens dehandshake não eram autenticadas!

M. B. Barbosa [email protected] Criptografia Aplicada 06/07

Page 14: Criptografia Aplicada - Módulo III -- Aplicações Correntes ...wiki.di.uminho.pt/twiki/pub/Education/Criptografia/... · Secure Sockets Layer (SSL) – Transport Layer Security

Secure Sockets Layer (SSL) – Transport Layer Security (TLS)

IntroduçãoEstrutura do SSLSessões SSLCamadas SSLSegurança do SSL

A versão 3 do SSL resolveu este problema obrigando aque todas as mensagens de handshake fossem utilizadaspara gerar o valor cifrado nas mensagens finished.“Change cipher spec dropping” é outro ataque possívelsobre uma implementação pouco cuidada:

Quando a sessão a ser negociada inclui apenasautenticação, i.e. não inclui cifragem, é possivel eliminardas mensagens finished a informação de autenticação.Interceptando as mensagens change cipher spec,impede-se a activação da autenticação. Fornecendo aCliente e Servidor mensagens finished alteradas,estabelece-se uma sessão sem protecção.

A solução para este ataque consiste em exigir umamensagem de change cipher spec antes de umamensagem finished nestas situações.

M. B. Barbosa [email protected] Criptografia Aplicada 06/07

Page 15: Criptografia Aplicada - Módulo III -- Aplicações Correntes ...wiki.di.uminho.pt/twiki/pub/Education/Criptografia/... · Secure Sockets Layer (SSL) – Transport Layer Security

Secure Sockets Layer (SSL) – Transport Layer Security (TLS)

IntroduçãoEstrutura do SSLSessões SSLCamadas SSLSegurança do SSL

Ficha Técnica

Cifras Simétricas: DES, 3-DES, RC4Algoritmos de Compressão: ZLIBFunções de Hash Criptográficas: SHA-1, MD5Cifras Assimétricas: RSAAssinaturas Digitais: RSA, DSAAcordo de Chaves: Fortezza, Diffie-Hellmann,distribuição RSA.

M. B. Barbosa [email protected] Criptografia Aplicada 06/07

Page 16: Criptografia Aplicada - Módulo III -- Aplicações Correntes ...wiki.di.uminho.pt/twiki/pub/Education/Criptografia/... · Secure Sockets Layer (SSL) – Transport Layer Security

Secure Shell (SSH)

IntroduçãoEstrutura do SSHPolíticas de segurançaCamadas do SSH

Introdução

O SSH é um protocolo para o estabelecimento de serviçosde shell seguros, nomeadamente de login remoto, sobreuma rede não segura.Foi desenvolvido para substituir os serviços rlogin, rsh,etc, incluídos nas shell Unix/Linux, e que não sãosatisfatórios ao nível da segurança.O SSH funciona numa filosofia Cliente/Servidor:

o Servidor é típicamente uma máquina Unix/Linux queaceita o estabelecimento de sessões de shell segurasatravés da porta 22.o Cliente pode ser qualquer tipo de máquina que corrasoftware Cliente compatível com o SSH.

O SSH foi normalizado pela IETF para utilização naInternet (Internet Drafts) e o seu uso é generalizado.

M. B. Barbosa [email protected] Criptografia Aplicada 06/07

Page 17: Criptografia Aplicada - Módulo III -- Aplicações Correntes ...wiki.di.uminho.pt/twiki/pub/Education/Criptografia/... · Secure Sockets Layer (SSL) – Transport Layer Security

Secure Shell (SSH)

IntroduçãoEstrutura do SSHPolíticas de segurançaCamadas do SSH

Estrutura do SSH

A Transport Layer oferece autentica-ção do servidor, confidencialidade eintegridade sobre uma rede insegura.

A User Authentication Layer ofe-rece serviços de validação de utiliza-dores perante um servidor.

A Connection Layer oferece a multi-plexagem de um canal seguro a porvários canais lógicos.

TCP/IP

Transport Layer

User Authentication

Connection

M. B. Barbosa [email protected] Criptografia Aplicada 06/07

Page 18: Criptografia Aplicada - Módulo III -- Aplicações Correntes ...wiki.di.uminho.pt/twiki/pub/Education/Criptografia/... · Secure Sockets Layer (SSL) – Transport Layer Security

Secure Shell (SSH)

IntroduçãoEstrutura do SSHPolíticas de segurançaCamadas do SSH

Políticas de Segurança

Num servidor que utilize o SSH têm de ser definidas asseguintes políticas de segurança:

Quais os algoritmos de cifragem, compressão eautenticação utilizáveis para envio e recepção de dados; e,desses algoritmos, quais são as soluções preferenciais.Quais os algoritmos de Chave Pública utilizados paraacordo de chaves e autenticação do Servidor.Que tipo de autenticação é requerida aos utilizadores queacedem a partir de um determinado Cliente.Quais as operações que um utilizador pode efectuar,dependendo da sessão que estabeleceu.

As implementações SSH permitem geralmente definirestas políticas, através da manipulação de parâmetros deconfiguração mais ou menos uniformes.

M. B. Barbosa [email protected] Criptografia Aplicada 06/07

Page 19: Criptografia Aplicada - Módulo III -- Aplicações Correntes ...wiki.di.uminho.pt/twiki/pub/Education/Criptografia/... · Secure Sockets Layer (SSL) – Transport Layer Security

Secure Shell (SSH)

IntroduçãoEstrutura do SSHPolíticas de segurançaCamadas do SSH

Transport Layer

A camada de transporte do SSH utiliza a infraestrutura derede subjacente para transferir streams de bytes,geralmente com informação puramente binária.Excepções são as mensagens de gestão da própriacamada de transporte, que são simplesmente strings decaracteres ASCII.Os pacotes trocados ao nível desta camada têm aseguinte estrutura:

Packet Length Padding Length MACRandom PaddingPayload

O processamento aplicado ao pacote segue a sequênciahabitual: compressão (payload), autenticação (MAC),padding e cifragem.

M. B. Barbosa [email protected] Criptografia Aplicada 06/07

Page 20: Criptografia Aplicada - Módulo III -- Aplicações Correntes ...wiki.di.uminho.pt/twiki/pub/Education/Criptografia/... · Secure Sockets Layer (SSL) – Transport Layer Security

Secure Shell (SSH)

IntroduçãoEstrutura do SSHPolíticas de segurançaCamadas do SSH

O padding serve, não só para dar ao pacote um tamanhoadequado para a cifragem por blocos, mas também paraesconder o verdadeiro tamanho dos dados.O MAC é calculado sobre todos os bytes do pacote (antesda cifragem) e um número de sequência de pacote,utilizando um segredo pré-negociado. O número dopacote não é incluido no próprio pacote.O estabelecimento de um canal seguro começa pelanegociação dos parâmetros do protocolo.As primeiras mensagens trocadas por Cliente e Servidorpermitem escolher a versão do SSH utilizada: a versãomais recente suportada pelas duas máquinas (depreferência a última – actualmente a V2).

M. B. Barbosa [email protected] Criptografia Aplicada 06/07

Page 21: Criptografia Aplicada - Módulo III -- Aplicações Correntes ...wiki.di.uminho.pt/twiki/pub/Education/Criptografia/... · Secure Sockets Layer (SSL) – Transport Layer Security

Secure Shell (SSH)

IntroduçãoEstrutura do SSHPolíticas de segurançaCamadas do SSH

Estabelecida a versão, Cliente e Servidor trocammensagens em que indicam os algoritmos queimplementam, e aqueles que são de utilizaçãopreferencial.É escolhido um algoritmo para cada funcionalidade,procurando na lista de algoritmos implementados peloCliente o primeiro que também é suportado pelo Servidor.Antes de se iniciar a comunicação segura Cliente eServidor executam o protocolo de acordo de chavesnegociado, protocolo esse que inclui uma componente deautenticação do servidor.Este processo termina com o estabelecimento de umachave secreta partilhada e de um identificador de sessão(gerado a partir de um valor de hash).

M. B. Barbosa [email protected] Criptografia Aplicada 06/07

Page 22: Criptografia Aplicada - Módulo III -- Aplicações Correntes ...wiki.di.uminho.pt/twiki/pub/Education/Criptografia/... · Secure Sockets Layer (SSL) – Transport Layer Security

Secure Shell (SSH)

IntroduçãoEstrutura do SSHPolíticas de segurançaCamadas do SSH

Protocol Version

Protocol Negotiation

Protocol Negotiation

Protocol Version

Acordo de Chaves e Autenticaçao do Servidor~

Service Request

Accept Service Request

ServidorCliente

(User Authentication/Connection)

M. B. Barbosa [email protected] Criptografia Aplicada 06/07

Page 23: Criptografia Aplicada - Módulo III -- Aplicações Correntes ...wiki.di.uminho.pt/twiki/pub/Education/Criptografia/... · Secure Sockets Layer (SSL) – Transport Layer Security

Secure Shell (SSH)

IntroduçãoEstrutura do SSHPolíticas de segurançaCamadas do SSH

Os protocolos de acordo de chaves utilizados pela camadade transporte do SSH incluem uma componente deidentificação do Servidor.Cada Servidor tem uma Host Key: um par de chaves queé utilizado na fase de acordo de chaves para autenticaçãodo Servidor.Daí que, para haver segurança no estabelecimento deuma sessão:

ou o Cliente tem conhecimento prévio da chave pública doServidor (distribuição manual da chave pública),ou recorre-se a um esquema de certificação X.509, no qualo Cliente apenas tem de conhecer e confiar numa CA quepermita validar os certificados dos Servidores.

Ambos os modos de funcionamento são permitidos noSSH.

M. B. Barbosa [email protected] Criptografia Aplicada 06/07

Page 24: Criptografia Aplicada - Módulo III -- Aplicações Correntes ...wiki.di.uminho.pt/twiki/pub/Education/Criptografia/... · Secure Sockets Layer (SSL) – Transport Layer Security

Secure Shell (SSH)

IntroduçãoEstrutura do SSHPolíticas de segurançaCamadas do SSH

Cada algoritmo de acordo de chaves especifica umafunção de hash criptográfica que é utilizada, entre outrascoisas, na geração de mensagens de autenticação.Como passo intermédio do protocolo de acordo de chavestemos:

Cliente Servidor

Host Key(chave ou certificado)

Valor de Hash calculado a partir de mensagens de handshake

Valor de Hash assinado

A autenticação do Servidor assegura também o Cliente deque as mensagens de handshake que recebeu provieramdo Servidor.

M. B. Barbosa [email protected] Criptografia Aplicada 06/07

Page 25: Criptografia Aplicada - Módulo III -- Aplicações Correntes ...wiki.di.uminho.pt/twiki/pub/Education/Criptografia/... · Secure Sockets Layer (SSL) – Transport Layer Security

Secure Shell (SSH)

IntroduçãoEstrutura do SSHPolíticas de segurançaCamadas do SSH

O funcionamento da camada de transporte baseia-se emseis segredos derivados da chave secreta acordada porCliente e Servidor:

IV Cliente-Servidor = HASH(K |H|′A′|sessionid)IV Servidor-Cliente = HASH(K |H|′B′|sessionid)Cifragem Cliente-Servidor = HASH(K |H|′C′|sessionid)Cifragem Servidor-Cliente = HASH(K |H|′D′|sessionid)MAC Cliente-Servidor = HASH(K |H|′E ′|sessionid)MAC Servidor-Client = HASH(K |H|′F ′|sessionid)

Em que HASH representa a função de hash associada aoprotocolo de acordo de chaves, H é o valor de hashacordado nesse protocolo e sessionid é o valor de hashacordado no primeiro acordo de chaves.

M. B. Barbosa [email protected] Criptografia Aplicada 06/07

Page 26: Criptografia Aplicada - Módulo III -- Aplicações Correntes ...wiki.di.uminho.pt/twiki/pub/Education/Criptografia/... · Secure Sockets Layer (SSL) – Transport Layer Security

Secure Shell (SSH)

IntroduçãoEstrutura do SSHPolíticas de segurançaCamadas do SSH

User Authentication Layer

Quando o Cliente invoca com sucesso os serviços destacamada, ao nível da camada de transporte, pode procedera um pedido de autenticação de um utilizador.Um pedido de autenticação enviado pelo Cliente inclui osseguintes parâmetros:

User Name Identificação do utilizador a autenticar.Service Name O serviço a que pretende aceder.Authentication Method O método de autenticação autilizar.

Caso o Servidor aceite o pedido, o que depende dométodo de autenticação solicitado (bem como do utilizadore do serviço indicados), seguem-se mensagensespecíficas do processo de autenticação.

M. B. Barbosa [email protected] Criptografia Aplicada 06/07

Page 27: Criptografia Aplicada - Módulo III -- Aplicações Correntes ...wiki.di.uminho.pt/twiki/pub/Education/Criptografia/... · Secure Sockets Layer (SSL) – Transport Layer Security

Secure Shell (SSH)

IntroduçãoEstrutura do SSHPolíticas de segurançaCamadas do SSH

Métodos de autenticação:Chave Pública O Cliente envia a chave pública doutilizador ao Servidor, juntamente com uma assinatura doidentificador de sessão da camada de transporte. Tambémaqui a confiança na chave pública do cliente pode serestabelecida de forma manual ou através de um esquemade certificação.Password O Cliente envia simplesmente uma passwordque permite validar o utilizador no Servidor.Host Based O Servidor não autentica o utilizador, mas sima máquina Cliente, com base numa chave pública. Avalidação depende não só do User Name do utilizador noServidor, mas também do seu User Name no Cliente. Estemétodo de autenticação, apesar de conveniente, não érecomendado.

M. B. Barbosa [email protected] Criptografia Aplicada 06/07

Page 28: Criptografia Aplicada - Módulo III -- Aplicações Correntes ...wiki.di.uminho.pt/twiki/pub/Education/Criptografia/... · Secure Sockets Layer (SSL) – Transport Layer Security

Secure Shell (SSH)

IntroduçãoEstrutura do SSHPolíticas de segurançaCamadas do SSH

Authentication Request

Accept Request

Informaçao de Autenticaçao

Success/Failure

Cliente Servidor

~~

Caso a autenticação falhe, o Servidor indica ao Cliente seo processo pode continuar, e com que métodos deautenticação.Caso a autenticação tenha sucesso, essa informação ficadisponível para a camada superior (Connection) para quepossam ser estabelecidas ligações de shell.

M. B. Barbosa [email protected] Criptografia Aplicada 06/07

Page 29: Criptografia Aplicada - Módulo III -- Aplicações Correntes ...wiki.di.uminho.pt/twiki/pub/Education/Criptografia/... · Secure Sockets Layer (SSL) – Transport Layer Security

Secure Shell (SSH)

IntroduçãoEstrutura do SSHPolíticas de segurançaCamadas do SSH

Connection Layer

Os serviços desta camada utilizam a confidencialidade eautenticação fornecida pelas camadas inferiores paraoferecer os seguintes serviços:

login remoto.execução remota de comandos.reencaminhamento de portas TCP/IPreencaminhamento de ligações X11

Para uma determinada sessão, esta camada permiteestabelecer múltiplos canais de comunicação paralelos,através dos quais podem ser invocados serviçosindependentes.Os detalhes do funcionamento desta camada não sãorelevantes para a segurança do sistema e ficam, portanto,fora do âmbito desta disciplina.

M. B. Barbosa [email protected] Criptografia Aplicada 06/07

Page 30: Criptografia Aplicada - Módulo III -- Aplicações Correntes ...wiki.di.uminho.pt/twiki/pub/Education/Criptografia/... · Secure Sockets Layer (SSL) – Transport Layer Security

Secure Shell (SSH)

IntroduçãoEstrutura do SSHPolíticas de segurançaCamadas do SSH

Ficha Técnica

Cifras Simétricas: 3DES, Blowfish, Twofish, AES,Serpent, IDEA, CAST (as cifras por blocos funcionam emmodo CBC).Algoritmos de Compressão: ZLIBFunções de Hash Criptográficas: SHA-1, MD5Message Authentication Codes: HMACCifras Assimétricas: RSAAssinaturas Digitais: DSAAcordo de Chaves: Diffie-Hellmann

M. B. Barbosa [email protected] Criptografia Aplicada 06/07

Page 31: Criptografia Aplicada - Módulo III -- Aplicações Correntes ...wiki.di.uminho.pt/twiki/pub/Education/Criptografia/... · Secure Sockets Layer (SSL) – Transport Layer Security

Kerberos

IntroduçãoFuncionamentoTicketsCriptografia de Chave PúblicaSegurança

Introdução

O Kerberos é um protocolo para identificação deprincipals (agentes: utilizadores, aplicações, serviços)sobre uma rede insegura, em que os pacotes podem serlidos, modificados e inseridos por intrusos.O sistema não baseia a sua segurança nos endereços derede das máquinas envolvidos, não exigindo segurançafísica em todas as máquinas, e não impõe restrições aosistema operativo.Actualmente na versão 5, o Kerberos é utilizado naInternet com base em Internet Standards e RFCspublicados pela IETF.Os serviços Kerberos são oferecidos às aplicaçõesatravés de uma API definida no RFC1964.

M. B. Barbosa [email protected] Criptografia Aplicada 06/07

Page 32: Criptografia Aplicada - Módulo III -- Aplicações Correntes ...wiki.di.uminho.pt/twiki/pub/Education/Criptografia/... · Secure Sockets Layer (SSL) – Transport Layer Security

Kerberos

IntroduçãoFuncionamentoTicketsCriptografia de Chave PúblicaSegurança

O Kerberos baseia-se em Criptografia Simétrica e numsistema de autenticação por um agente de confiança, compré-distribuição de chaves.É atribuida uma chave secreta a todas os agentes queutilizam o sistema (para os utilizadores as chaves sãoderivadas de passwords).O Kerberos mantém uma base de dados com asidentidades e chaves secretas de cada agente.O Kerberos permite utilizar estas chaves secretas paraestabelecer uma chave de sessão entre um agente Clientee um agente Servidor.A chave de sessão é utilizada para autenticação do Clienteperante o Servidor e, opcionalmente, para autenticação doServidor e comunicação segura entre os dois.

M. B. Barbosa [email protected] Criptografia Aplicada 06/07

Page 33: Criptografia Aplicada - Módulo III -- Aplicações Correntes ...wiki.di.uminho.pt/twiki/pub/Education/Criptografia/... · Secure Sockets Layer (SSL) – Transport Layer Security

Kerberos

IntroduçãoFuncionamentoTicketsCriptografia de Chave PúblicaSegurança

Autenticação Básica

CredentialRequest

Kerberos Server

Client ServerAuthenticator

Ticket+Authenticator

Credential(Ticket)

Cliente: utilizador, aplicação.Servidor: serviço perante o qual se faz a autenticação.Todas as mensagens são definidas/codificadas utilizandoASN.1/DER.

M. B. Barbosa [email protected] Criptografia Aplicada 06/07

Page 34: Criptografia Aplicada - Módulo III -- Aplicações Correntes ...wiki.di.uminho.pt/twiki/pub/Education/Criptografia/... · Secure Sockets Layer (SSL) – Transport Layer Security

Kerberos

IntroduçãoFuncionamentoTicketsCriptografia de Chave PúblicaSegurança

Em termos genéricos, uma Credential contém um Tickete uma Session Key cifrados com a chave secretapertencente ao Cliente.Um Ticket contém a identificação do Cliente e a mesmaSession Key cifrados com a chave secreta pertencente aoServidor.A chave de sessão é gerada pelo Kerberos, e é transmitidaao Cliente numa Credential.O Servidor obtém a mesma chave de sessão, inserida noTicket, via Cliente. Para o Cliente, o conteúdo do Ticket édesconhecido.Conjuntamente com o Ticket, o Cliente envia umAuthenticator.

M. B. Barbosa [email protected] Criptografia Aplicada 06/07

Page 35: Criptografia Aplicada - Módulo III -- Aplicações Correntes ...wiki.di.uminho.pt/twiki/pub/Education/Criptografia/... · Secure Sockets Layer (SSL) – Transport Layer Security

Kerberos

IntroduçãoFuncionamentoTicketsCriptografia de Chave PúblicaSegurança

A função do Authenticator é demonstrar o conhecimentoda chave de sessão, e assegurar a frescura e integridadedo pedido de autenticação.Um Authenticator é uma mensagem autenticada por umMAC, gerado com a chave de sessão, e que contém aidentidade do Cliente e um timestamp indicando o instanteda sua geração.Um Ticket pode ser reutilizado. Um Authenticator nãopode ser reutilizado.O processo de autenticação pode, opcionalmente, incluir aautenticação do Servidor perante o Cliente.Neste caso, o Servidor gera e envia ao Cliente umAuthenticator semelhante ao que recebeu.

M. B. Barbosa [email protected] Criptografia Aplicada 06/07

Page 36: Criptografia Aplicada - Módulo III -- Aplicações Correntes ...wiki.di.uminho.pt/twiki/pub/Education/Criptografia/... · Secure Sockets Layer (SSL) – Transport Layer Security

Kerberos

IntroduçãoFuncionamentoTicketsCriptografia de Chave PúblicaSegurança

Servidor Kerberos

Num servidor Kerberos distinguem-se dois serviços: oAuthentication Server e o Ticket Granting Server.A obtenção de uma Credential para aceder a um qualquerServidor é, geralmente, uma negociação com duas fases:

O Cliente solicita primeiro uma Credential contendo umTicket Granting Ticket ao Authentication Server.Um Ticket Granting Ticket é um Ticket especial que permiteao Cliente aceder ao Ticket Granting Server de formasegura.Utilizando o Ticket Granting Ticket, o Cliente pode obter aCredential que pretende junto do Ticket Granting Server.

Em casos especiais a obtenção do Ticket pode ser feitanuma só fase, directamente junto do Authentication Server.

M. B. Barbosa [email protected] Criptografia Aplicada 06/07

Page 37: Criptografia Aplicada - Módulo III -- Aplicações Correntes ...wiki.di.uminho.pt/twiki/pub/Education/Criptografia/... · Secure Sockets Layer (SSL) – Transport Layer Security

Kerberos

IntroduçãoFuncionamentoTicketsCriptografia de Chave PúblicaSegurança

Kerberos Server

Granting Ticket

Service

Server

CredentialRequest

ClientCredential(Ticket)

Credential(Ticket Granting Ticket)

Ticket+Authenticator

Ticket Granting Ticket+Authenticator

Authenticator

M. B. Barbosa [email protected] Criptografia Aplicada 06/07

Page 38: Criptografia Aplicada - Módulo III -- Aplicações Correntes ...wiki.di.uminho.pt/twiki/pub/Education/Criptografia/... · Secure Sockets Layer (SSL) – Transport Layer Security

Kerberos

IntroduçãoFuncionamentoTicketsCriptografia de Chave PúblicaSegurança

Chave de Sessão

A chave de sessão estabelecida entre um Cliente e umServidor que utilizam Kerberos tem diversas finalidades:

Autenticação do Cliente perante o Servidor. O MACincluido no Authenticator enviado pelo Cliente demonstraao Servidor que o Cliente conhece a chave de sessãoestabelecida.É esta mensagem que implicitamente identifica o Clienteperante o Servidor: a confiança depositada no servidorKerberos assegura o Servidor que apenas Cliente eServidor conhecem a chave de sessão.Autenticação do Servidor perante o Cliente (opcional).Autenticação (MAC) de mensagens trocadassubsequentemente entre Cliente e Servidor (opcional).Confidencialidade de mensagens trocadassubsequentemente entre Cliente e Servidor (opcional).

M. B. Barbosa [email protected] Criptografia Aplicada 06/07

Page 39: Criptografia Aplicada - Módulo III -- Aplicações Correntes ...wiki.di.uminho.pt/twiki/pub/Education/Criptografia/... · Secure Sockets Layer (SSL) – Transport Layer Security

Kerberos

IntroduçãoFuncionamentoTicketsCriptografia de Chave PúblicaSegurança

Domínios (Realm) Kerberos

O Kerberos foi desenvolvido para ultrapassar fronteirasorganizacionais: um Cliente numa organização pode serautenticado perante um Servidor noutra organização.Cada organização implementa um ou mais ServidoresKerberos que constituem a infraestrutura do seu DomínioKerberos.O nome do Domínio é incluido no nome de todos osutilizadores nele registados, e pode servir para umServidor Kerberos noutro domínio “localizar” e validaresses utilizadores.A ligação entre Domínios consegue-se registando o TicketGranting Service de uma organização no Domínio da outraorganização, e vice-versa.

M. B. Barbosa [email protected] Criptografia Aplicada 06/07

Page 40: Criptografia Aplicada - Módulo III -- Aplicações Correntes ...wiki.di.uminho.pt/twiki/pub/Education/Criptografia/... · Secure Sockets Layer (SSL) – Transport Layer Security

Kerberos

IntroduçãoFuncionamentoTicketsCriptografia de Chave PúblicaSegurança

Este registo consiste na criação de uma Inter-Realm Key:uma chave secreta que o Kerberos Server de um domínioutiliza para autenticar um Cliente local perante umKerberos Server remoto.Um Cliente pode obter no seu Domínio um Ticket GrantingTicket para o Ticket Granting Server noutro Domínio.Estas relações são transitivas, i.e. se o Domínio A estáligado ao B, e o B ao C, então é possível autenticarutilizadores de A em C.Para evitar o estabelecimento de redes de Domínios, oque dificulta a identificação de um caminho deautenticação, em geral as ligações de Domíniosestabelecem-se de forma hierárquica.O caminho de autenticação é também incluido namensagem Ticket.

M. B. Barbosa [email protected] Criptografia Aplicada 06/07

Page 41: Criptografia Aplicada - Módulo III -- Aplicações Correntes ...wiki.di.uminho.pt/twiki/pub/Education/Criptografia/... · Secure Sockets Layer (SSL) – Transport Layer Security

Kerberos

IntroduçãoFuncionamentoTicketsCriptografia de Chave PúblicaSegurança

Alguns Atributos/Flags

Initial Indica a fase do processo de autenticação a que oTicket pertence i.e. se foi obtido com base num TicketGranting Ticket. Indica se o Cliente teve de apresentarrecentemente a sua chave secreta para o conseguir.Renewable Indica um Ticket que é válido por umdeterminado período de tempo e renovável durante umperíodo mais alargado. Evita a utilização frequente dachave secreta e mantém a frescura do ticket.Post Dated Permite a emissão de Tickets suspensos, paraactivação na altura da utilização.Proxiable Indica que um Servidor pode servir-se de umTicket fornecido por um utilizador para adoptar a suaidentidade perante outro Servidor.

M. B. Barbosa [email protected] Criptografia Aplicada 06/07

Page 42: Criptografia Aplicada - Módulo III -- Aplicações Correntes ...wiki.di.uminho.pt/twiki/pub/Education/Criptografia/... · Secure Sockets Layer (SSL) – Transport Layer Security

Kerberos

IntroduçãoFuncionamentoTicketsCriptografia de Chave PúblicaSegurança

Pre-authenticated Indica que o Authentication Serverautenticou o utilizador que pediu o Ticket de alguma formae.g. login/password.Hardware Authenticated Indica que o AuthenticationServer autenticou o utilizador que pediu o Ticket utilizandoum token de hardware e.g. um smartcard.Anonymous Permite a emissão de Tickets para umaentidade genérica dentro do Domínio.Transited Policy Checked Indica que o Servidor Kerberosdo Domínio verificou a validade do caminho deautenticação indicado no Ticket (válido apenas paraautenticações inter-domínio).

M. B. Barbosa [email protected] Criptografia Aplicada 06/07

Page 43: Criptografia Aplicada - Módulo III -- Aplicações Correntes ...wiki.di.uminho.pt/twiki/pub/Education/Criptografia/... · Secure Sockets Layer (SSL) – Transport Layer Security

Kerberos

IntroduçãoFuncionamentoTicketsCriptografia de Chave PúblicaSegurança

Extensões de Criptografia Chave Pública

O IETF define dois Draft Standards com extensões aoKerberos que utilizam técnicas de Criptografia de ChavePública e Certificação a dois níveis:

Autenticação Inter-Domínio A Inter-Realm Key ésubstituida por dois pares de chaves que passam asuportar a comunicação entre Servidores Kerberos emDomínios diferentes.Pedido de Ticket básico A chave secreta que um Clienteutiliza para solicitar um Ticket (Granting Ticket) perante umAuthentication Server é substituida por um par de chaves.

Estas extensões básicamente definem procedimentos degeração e formatos de transferencia alternativos para asmensagens Kerberos correspondentes a estes pontos deoperação.

M. B. Barbosa [email protected] Criptografia Aplicada 06/07

Page 44: Criptografia Aplicada - Módulo III -- Aplicações Correntes ...wiki.di.uminho.pt/twiki/pub/Education/Criptografia/... · Secure Sockets Layer (SSL) – Transport Layer Security

Kerberos

IntroduçãoFuncionamentoTicketsCriptografia de Chave PúblicaSegurança

Por exemplo, as alterações a um Pedido de Ticket básicosão as seguintes:

O Cliente junta ao seu pedido de Ticket o seu Certificado euma assinatura digital do próprio pedido.A Credential devolvida pelo Authentication Server passa avir cifrada:

usando o RSA, caso a Chave Pública do Cliente o permita,ou uma cifra simétrica e uma chave secreta negociadautilizando o protocolo Diffie-Hellman.

A utilização de certificados não é obrigatória: é possíveladicionar manualmente as chaves públicas dos agentes àbase de dados do Kerberos Server, conferindo-lhes destaforma o nível de confiança necessário.As extensões definem também restrições aosDistinguished Names dos certificados que permitemutiliza-los como identificadores Kerberos.

M. B. Barbosa [email protected] Criptografia Aplicada 06/07

Page 45: Criptografia Aplicada - Módulo III -- Aplicações Correntes ...wiki.di.uminho.pt/twiki/pub/Education/Criptografia/... · Secure Sockets Layer (SSL) – Transport Layer Security

Kerberos

IntroduçãoFuncionamentoTicketsCriptografia de Chave PúblicaSegurança

Segurança

A utilização de timestamps como indicadores da frescurados Authenticators pode trazer problemas:

obriga a uma sincronização próxima dos relógios dasmáquinas envolvidas – isto é uma brecha na segurançaporque os protocolos de sincronização temporal são,geralmente, inseguros.torna possível os ataques por repetição de pedidos – ostandard obriga a armazenar todos os pedidos para impedireste tipo de ataque, mas isto nem sempre é implementado.

A utilização de PBE para gerar as chaves dos utilizadoressimplifica os ataques por password-guessing, que tirampartido da fraca qualidade de passwords auto-atribuidas.Apesar destes questões, o Kerberos é tido como umsistema seguro, e a sua utilização é generalizada.

M. B. Barbosa [email protected] Criptografia Aplicada 06/07

Page 46: Criptografia Aplicada - Módulo III -- Aplicações Correntes ...wiki.di.uminho.pt/twiki/pub/Education/Criptografia/... · Secure Sockets Layer (SSL) – Transport Layer Security

Kerberos

IntroduçãoFuncionamentoTicketsCriptografia de Chave PúblicaSegurança

Ficha Técnica

Cifras Simétricas: DES, AESAlgoritmos de MAC: DES-MAC, H-MACFunções de Hash Criptográficas: SHA-1, MD5Cifras Assimétricas: RSAAssinaturas Digitais: RSA, DSAAcordo de Chaves: Diffie-Hellmann

M. B. Barbosa [email protected] Criptografia Aplicada 06/07

Page 47: Criptografia Aplicada - Módulo III -- Aplicações Correntes ...wiki.di.uminho.pt/twiki/pub/Education/Criptografia/... · Secure Sockets Layer (SSL) – Transport Layer Security

Pretty Good Privacy (PGP)

IntroduçãoFuncionamentoCertificaçãoModelos de ConfiançaRevogação

Introdução

O PGP é uma aplicação freeware desenvolvida por PhilZimmermann com o objectivo de colocar umainfraestrutura para protecção de informação, i.e.privacidade, à disposição do cidadão comum.O lançamento deste software causou alguma polémicanos EUA devido às leis que restringiam a difusão eutilização generalizada da chamada strong cryptography.Até hoje prevalece a ideia, nomeadamente nos EUA, deque a utilização do PGP é ilegal.Um argumento apresentado a favor da utilização do PGP,e contra as restrições ao uso de sistemas de protecção daprivacidade é: “se a protecção de informação é ilegalizadaapenas os fora-da-lei conseguem ter privacidade!”

M. B. Barbosa [email protected] Criptografia Aplicada 06/07

Page 48: Criptografia Aplicada - Módulo III -- Aplicações Correntes ...wiki.di.uminho.pt/twiki/pub/Education/Criptografia/... · Secure Sockets Layer (SSL) – Transport Layer Security

Pretty Good Privacy (PGP)

IntroduçãoFuncionamentoCertificaçãoModelos de ConfiançaRevogação

Funcionamento do PGP

O PGP é um sistema com três vertentes principais:privacidade, integridade e autenticação, e certificação.Privacidade Utilização de algoritmos de compressão,cifras simétricas e assimétricas na protecção deinformação, nomeadamente ficheiros e mensagens dee-mail.Integridade e Autenticação Utilização de funções dehash criptográficas e algoritmos de assinatura digital paraa assinatura de mensagens e documentos.Certificação Estabelecimento de relações de confiança edistribuição de chaves públicas com base num esquemacertificação próprio, alternativo à PKI e ao X.509.

M. B. Barbosa [email protected] Criptografia Aplicada 06/07

Page 49: Criptografia Aplicada - Módulo III -- Aplicações Correntes ...wiki.di.uminho.pt/twiki/pub/Education/Criptografia/... · Secure Sockets Layer (SSL) – Transport Layer Security

Pretty Good Privacy (PGP)

IntroduçãoFuncionamentoCertificaçãoModelos de ConfiançaRevogação

Cifragem

Quando um utilizador cifra um texto limpo utilizando oPGP, o primeiro passo é a compressão dessa informação.A compressão tem duas vantagens:

Poupa espaço e largura de banda.Esconde padrões existentes no texto limpo aumentando asegurança.

O segundo passo consiste na criação de uma chave desessão. A chave secreta é criada utilizando um gerador denúmeros (pseudo-)aleatórios.A aleatoriedade deste gerador baseia-se na monitorizaçãode movimentos do rato.

M. B. Barbosa [email protected] Criptografia Aplicada 06/07

Page 50: Criptografia Aplicada - Módulo III -- Aplicações Correntes ...wiki.di.uminho.pt/twiki/pub/Education/Criptografia/... · Secure Sockets Layer (SSL) – Transport Layer Security

Pretty Good Privacy (PGP)

IntroduçãoFuncionamentoCertificaçãoModelos de ConfiançaRevogação

A mensagem comprimida é depois cifrada com a chave desessão utilizando um algoritmo de cifra simétrica.Finalmente, a chave de sessão é cifrada com a chavepública do destinatário utilizando um algoritmo de cifraassimétrica.A mensagem PGP é constituida pelos dois criptogramas:é um envelope digital.O processo de decifragem é inverso:

Decifragem da chave secreta utilizando a chave privada dodestinatário.Recuperação da mensagem comprimida utilizando a chavede sessão.Descompressão do texto limpo.

M. B. Barbosa [email protected] Criptografia Aplicada 06/07

Page 51: Criptografia Aplicada - Módulo III -- Aplicações Correntes ...wiki.di.uminho.pt/twiki/pub/Education/Criptografia/... · Secure Sockets Layer (SSL) – Transport Layer Security

Pretty Good Privacy (PGP)

IntroduçãoFuncionamentoCertificaçãoModelos de ConfiançaRevogação

Assinaturas Digitais

O PGP permite efectuar assinaturas digitais sobredocumentos, de duas formas:

Assinaturas que permanecem ligadas aos documentos aque correspondem, na forma de attachments.Assinaturas que existem isoladamente dos documentos aque correspondem. Para quê?

As assinaturas geradas pelo PGP seguem o procedimentostandard:

Primeiro o documento é passado por uma função de hashcriptográfica.O valor de hash é então assinado com a chave privada doutilizador utilizando um algoritmo de assinatura digital.

M. B. Barbosa [email protected] Criptografia Aplicada 06/07

Page 52: Criptografia Aplicada - Módulo III -- Aplicações Correntes ...wiki.di.uminho.pt/twiki/pub/Education/Criptografia/... · Secure Sockets Layer (SSL) – Transport Layer Security

Pretty Good Privacy (PGP)

IntroduçãoFuncionamentoCertificaçãoModelos de ConfiançaRevogação

Chaves

O PGP armazena as chaves que um utilizador conheceem dois ficheiros denominados keyrings:

Private Keyring Ficheiro onde o PGP guarda as chavesprivadas do utilizador (cifradas com PBE utilizando umapassphrase).Public Keyring Ficheiro onde o PGP guarda as chavespúblicas dos interlocutores do utilizador.

As chaves públicas conhecidas por um utilizadorpertencem a outros utilizadores do sistema PGP.A introdução destas chaves públicas no sistema doutilizador pode ser feita directamente, apresentando o seuvalor numérico, ou através de certificados PGP trocadoscom outros utilizadores.

M. B. Barbosa [email protected] Criptografia Aplicada 06/07

Page 53: Criptografia Aplicada - Módulo III -- Aplicações Correntes ...wiki.di.uminho.pt/twiki/pub/Education/Criptografia/... · Secure Sockets Layer (SSL) – Transport Layer Security

Pretty Good Privacy (PGP)

IntroduçãoFuncionamentoCertificaçãoModelos de ConfiançaRevogação

Certificação

Um certificado PGP contém a seguinte informação:A versão do PGP utilizada.Uma chave pública e informação sobre o seu tipo.A identificação do detentor da chave privadacorrespondente à chave pública. Esta informação podeincluir um User ID, endereço de e-mail, número do ICQ,uma fotografia, etc.O período de validade do certificado.O algoritmo de cifra simétrica preferido pelo titular parareceber informação cifrada.A assinatura do detentor da chave pública, que atesta aassociação identidade/chave pública, e demonstra oconhecimento da chave privada (self-signature).Assinaturas de outros utilizadores PGP que corroboram ainformação patente no certificado, ou parte dela.

M. B. Barbosa [email protected] Criptografia Aplicada 06/07

Page 54: Criptografia Aplicada - Módulo III -- Aplicações Correntes ...wiki.di.uminho.pt/twiki/pub/Education/Criptografia/... · Secure Sockets Layer (SSL) – Transport Layer Security

Pretty Good Privacy (PGP)

IntroduçãoFuncionamentoCertificaçãoModelos de ConfiançaRevogação

Um certificado PGP pode incluir diversasinstancias/versões da identidade do utilizador assinadasseparadamente por diversos utilizadores.As grandes diferenças entre os certificados PGP e oscertificados X.509 são evidentes:

Os emissores de certificados PGP são utilizadores comunsdo sistema PGP.A confiança não é transitiva: A confia em B e B confia emC, não implica que A confia em C.Não existe a figura de agente de confiança ou dehierarquia/cadeia de certificação.

Cada certificado pode ser assinado por vários utilizadoresPGP. Pode dizer-se que a credibilidade de um certificadoPGP pode ser reforçada desta forma.

M. B. Barbosa [email protected] Criptografia Aplicada 06/07

Page 55: Criptografia Aplicada - Módulo III -- Aplicações Correntes ...wiki.di.uminho.pt/twiki/pub/Education/Criptografia/... · Secure Sockets Layer (SSL) – Transport Layer Security

Pretty Good Privacy (PGP)

IntroduçãoFuncionamentoCertificaçãoModelos de ConfiançaRevogação

Cada utilizador do PGP tem de decidir quais são osutilizadores em que confia para assinar certificados. Porexemplo:

“Confio em B quando este assina um certificado que oindica como o titular da chave KB”, ou“Confio em B quando este assina um certificado que indicaC como o titular da chave KC”.

Quando um utilizador se assegura (de uma forma quejulgue segura) de que uma chave pública pertence a umutilizador, pode assinar a cópia dessa chave no seuKeyring.Se assim pretender, o utilizador pode exportar essecertificado PGP para um PGP Key Server (repositório decertificados PGP) para que outros utilizadores possamusufruir dessa informação.

M. B. Barbosa [email protected] Criptografia Aplicada 06/07

Page 56: Criptografia Aplicada - Módulo III -- Aplicações Correntes ...wiki.di.uminho.pt/twiki/pub/Education/Criptografia/... · Secure Sockets Layer (SSL) – Transport Layer Security

Pretty Good Privacy (PGP)

IntroduçãoFuncionamentoCertificaçãoModelos de ConfiançaRevogação

Confiança e Validade de Chaves Públicas

Uma forma de testar a validade de uma chave pública éatravés de um processo manual qualquer e.g. exigir que odestinatário de uma mensagem cifrada entregasse emmãos uma cópia da sua chave pública.Outra forma é confiar em alguém que afirma ter feito essetipo de validação. Numa PKI, este é o papel de umaautoridade de certificação.O PGP permite estas duas formas de aceitar uma chavepública como válida e acrescenta-la ao Keyring doutilizador.Em termos de relações de confiança, diz-se que o PGPpermite implementar três modelos: confiança directa,confiança hierarquica e rede de confiança.

M. B. Barbosa [email protected] Criptografia Aplicada 06/07

Page 57: Criptografia Aplicada - Módulo III -- Aplicações Correntes ...wiki.di.uminho.pt/twiki/pub/Education/Criptografia/... · Secure Sockets Layer (SSL) – Transport Layer Security

Pretty Good Privacy (PGP)

IntroduçãoFuncionamentoCertificaçãoModelos de ConfiançaRevogação

Confiança Directa

O modelo de confiança directa é o mais básico.Cada par de utilizadores troca as suas chaves públicasentre si, directamente.A validação das chaves públicas e o estabelecimento daconfiança resultam sempre de uma relação em primeirograu.Por outras palavras, nenhum utilizador confia emintermediários no estabelecimento de confiança numachave pública.É equivalente à relação de confiança estabelecida entreuma entidade e uma Root CA dentro de uma PKI.

M. B. Barbosa [email protected] Criptografia Aplicada 06/07

Page 58: Criptografia Aplicada - Módulo III -- Aplicações Correntes ...wiki.di.uminho.pt/twiki/pub/Education/Criptografia/... · Secure Sockets Layer (SSL) – Transport Layer Security

Pretty Good Privacy (PGP)

IntroduçãoFuncionamentoCertificaçãoModelos de ConfiançaRevogação

Confiança Hierárquica

É equivalente às cadeias de certificação da PKI.No PGP existem dois tipos de agentes de confiança:

Trusted Introducer é um utilizador em que se confia paracertificar chaves públicas de outros utilizadores.Meta Introducer é um utilizador PGP no qual se confia,não só para certificar chaves públicas, mas também paraindicar outros utilizadores PGP como Trusted Introducersválidos. é equivalente a uma Root CA.

Com o PGP é possível implementar uma hierarquia derelações de confiança semelhante à existente numa PKI.Por exemplo, reconhecendo um Meta Introducer ecertificando este alguns Trusted Introducers obtém-se uma“PKI” com dois níveis hierárquicos.

M. B. Barbosa [email protected] Criptografia Aplicada 06/07

Page 59: Criptografia Aplicada - Módulo III -- Aplicações Correntes ...wiki.di.uminho.pt/twiki/pub/Education/Criptografia/... · Secure Sockets Layer (SSL) – Transport Layer Security

Pretty Good Privacy (PGP)

IntroduçãoFuncionamentoCertificaçãoModelos de ConfiançaRevogação

Rede de Confiança

A Rede (Teia) de Confiança é um modelo misto, em que seutilizam os dois anteriores.É um modelo mais próximo da visão da confiança queexiste no mundo real, e evidencia o facto de que aconfiança é um conceito que depende da perspectiva doutilizador.A validação de uma chave pública pode ser obtidadirectamente, ou através de uma cadeia que termina comum Meta Introducer ou com um conjunto suficientementegrande de Trusted Introducers.O PGP introduz o conceito de “aritmética” nas relações deconfiança através do qual é possível construir confiançade uma forma cumulativa.

M. B. Barbosa [email protected] Criptografia Aplicada 06/07

Page 60: Criptografia Aplicada - Módulo III -- Aplicações Correntes ...wiki.di.uminho.pt/twiki/pub/Education/Criptografia/... · Secure Sockets Layer (SSL) – Transport Layer Security

Pretty Good Privacy (PGP)

IntroduçãoFuncionamentoCertificaçãoModelos de ConfiançaRevogação

Níveis de Confiança e Validade

Armazenado no Public Keyring de um utilizador PGP estáa seguinte informação:

Se o utilizador considera uma determinada chave públicaválida.O nível de confiança que o utilizador deposita nessa chavee, em particular no titular dessa chave, para certificar aschaves de outros utilizadores.

O mais alto nível de confiança é a Confiança Implícitaque é aquela que se deposita na nossa chave pública.Isto significa que o PGP assume que o utilizador confia emtudo o que foi assinado com a sua própria chave pública.

M. B. Barbosa [email protected] Criptografia Aplicada 06/07

Page 61: Criptografia Aplicada - Módulo III -- Aplicações Correntes ...wiki.di.uminho.pt/twiki/pub/Education/Criptografia/... · Secure Sockets Layer (SSL) – Transport Layer Security

Pretty Good Privacy (PGP)

IntroduçãoFuncionamentoCertificaçãoModelos de ConfiançaRevogação

às chaves públicas dos outros utilizadores podem seratríbuidos três níveis de confiança:

Completa O titular da chave é aceite como um TrustedIntroducer digno de confiança.Marginal O titular da chave não é aceite como TrustedIntroducer, mas a informação por ele fornecida pode serutilizada na validação de chaves públicas.Nula Não se confia neste utilizador para certificar chavespúblicas de outros utilizadores.

A validação automática de uma chave pública requer pelomenos:

Certificação utilizando uma chave pública com confiançacompleta, ouCertificação por duas chaves públicas com confiançamarginal.

M. B. Barbosa [email protected] Criptografia Aplicada 06/07

Page 62: Criptografia Aplicada - Módulo III -- Aplicações Correntes ...wiki.di.uminho.pt/twiki/pub/Education/Criptografia/... · Secure Sockets Layer (SSL) – Transport Layer Security

Pretty Good Privacy (PGP)

IntroduçãoFuncionamentoCertificaçãoModelos de ConfiançaRevogação

Revogação de Certificados

Um utilizador pode revogar uma assinatura (certificação)sua: basta que possua a mesma chave privada.Isto significa simplesmente que aquele utilizador já nãoacredita que a chave pública em questão seja válida.Mas, se um utilizador reconhece uma chave como válidadevido a assinaturas em que confia marginalmente, arevogação de uma delas pode não implicar a invalidação.No entanto, o PGP permite sempre a um utilizadorinvalidar totalmente a sua própria chave directamente, ouatravés de outro utilizador: o revoker. O revoker édesignado na altura da emissão do certificado.Uma revogação é geralmente distribuida via um PGP KeyServer.

M. B. Barbosa [email protected] Criptografia Aplicada 06/07

Page 63: Criptografia Aplicada - Módulo III -- Aplicações Correntes ...wiki.di.uminho.pt/twiki/pub/Education/Criptografia/... · Secure Sockets Layer (SSL) – Transport Layer Security

Pretty Good Privacy (PGP)

IntroduçãoFuncionamentoCertificaçãoModelos de ConfiançaRevogação

Ficha Técnica

Cifras Simétricas: CAST, Triple-DES, IDEA, Two-FishAlgoritmos de Compressão: ZIPFunções de Hash Criptográficas: SHA-1, MD-5 (versõesmais antigas)Cifras Assimétricas: RSA, El GamalAssinaturas Digitais: RSA, Digital Signature Algorithm

M. B. Barbosa [email protected] Criptografia Aplicada 06/07