Protocolos de Segurança Érika Benning Salgado --> PGP Maria Eugênia Shuler --> Kerberos Simone...

Post on 17-Apr-2015

106 views 0 download

Transcript of Protocolos de Segurança Érika Benning Salgado --> PGP Maria Eugênia Shuler --> Kerberos Simone...

Protocolos de SegurançaProtocolos de Segurança

Érika Benning Salgado --> PGPÉrika Benning Salgado --> PGP

Maria Eugênia Shuler --> KerberosMaria Eugênia Shuler --> Kerberos

Simone Antunes --> SSL Simone Antunes --> SSL

SSLSSL

Secure Socket Layer Secure Socket Layer

IntroduçãoIntrodução

Privacidade e ConfiabilidadePrivacidade e Confiabilidade Composto de 2 níveis:Composto de 2 níveis:

Protocolos de Aplicação...

SSL Handshake Protocol

SSL Record Protocol

TCP ...

SSL

Propiedades da Conexão SSLPropiedades da Conexão SSL

Privada. Criptografia para definição da Privada. Criptografia para definição da chave secreta, depois do handshake. chave secreta, depois do handshake. Criptografia simétrica para dados, ex.: DESCriptografia simétrica para dados, ex.: DES

Identidade do par é autenticado através de Identidade do par é autenticado através de criptografia assimétrica ou de chave criptografia assimétrica ou de chave pública, ex.: DSS e RSApública, ex.: DSS e RSA

Confiável. Existe checagem de integridade Confiável. Existe checagem de integridade de mensagens através de MAC c/ chave.de mensagens através de MAC c/ chave.

ObjetivosObjetivos

Segurança criptográficaSegurança criptográfica InteroperabilidadeInteroperabilidade ExtensiabilidadeExtensiabilidade EficiênciaEficiência

PassosPassos

Mesagem a ser transmitida:

Fragmenta os dados

Comprime os dados

Aplica Mac e encriptografa

Transmite o resultado

Decriptografado eVerificado

Expandido

Reassembled

Mensagem Recebida:

... ...

Estado de Sessão e ConexãoEstado de Sessão e Conexão

Sessão “Stateful”. Estados controladados Sessão “Stateful”. Estados controladados pelo SSL Handshake Protocol.pelo SSL Handshake Protocol.

O estado é representado 2 vezes.O estado é representado 2 vezes. Mensagens de Alerta. Contém a importância Mensagens de Alerta. Contém a importância

da mensagem e descrição da alerta. da mensagem e descrição da alerta. Mensagens de Fechamento(Close_notify)Mensagens de Fechamento(Close_notify) Alertas de Erro. Ex.: Alertas de Erro. Ex.: unexpected_message.unexpected_message.

Continuação...Continuação...

Elementos do estado da sessão:Elementos do estado da sessão:– id da conexão -id da conexão - seq. de bytes escolhidas pelo servidor seq. de bytes escolhidas pelo servidor

– Mét. de Compressão Mét. de Compressão – CipherSpec - CipherSpec - especifica o algoritmo de criptografia dos especifica o algoritmo de criptografia dos

dados e um algoritmo MAC.dados e um algoritmo MAC.

Handshake ProtocolHandshake Protocol

Cliente Servidor

Client HelloServer HelloCertificado(*)

Pedido de Cerfificado(*)Fim do Server Hello

Verificação do Certificado(*)Certificado(*)[ Cipher Spec]Fim

[CipherSpec]Fim

Dados de Aplicação Dados de Aplicação

Implementações SSLImplementações SSL

SSL Netscape SSL Netscape SSLRefSSLRef SSLjavaSSLjava

Usando SSL para mandar dados Usando SSL para mandar dados seguramente... seguramente...

Web Server e Web BrowsersWeb Server e Web Browsers http -> httpshttp -> https Exemplo:Exemplo:

<form method =POST action = “http://www.company.com/cgi-bin/enter”><form method =POST action = “http://www.company.com/cgi-bin/enter”>

mude para:mude para:

<form method =POST action = “https://www.company.com/cgi-bin/enter”><form method =POST action = “https://www.company.com/cgi-bin/enter”>

KerberosKerberos Serviço de autenticaçãoServiço de autenticação Parte do projeto ATHENAParte do projeto ATHENA

Problema a ser resolvidoProblema a ser resolvido

Sistema distribuído abertoSistema distribuído aberto

usuários de workstations -> acessam serviços em usuários de workstations -> acessam serviços em servidores da rede servidores da rede

servidores DEVEM ser capazes de:servidores DEVEM ser capazes de:

restringir acessorestringir acesso

autenticar pedidos de serviçosautenticar pedidos de serviços

AmeaçasAmeaças Usuário se passar por um outro usuárioUsuário se passar por um outro usuário alteração do endereço de redealteração do endereço de rede

consequênciaconsequência

Usuário não autorizado pode ser capaz de acessar Usuário não autorizado pode ser capaz de acessar

serviços e dados que ele não possui autorizaçãoserviços e dados que ele não possui autorização

Kerberos oferece:Kerberos oferece:

autenticação centralizadaautenticação centralizada

criptografia convencionalcriptografia convencional

MotivaçãoMotivação Cenário mais comum atualmenteCenário mais comum atualmente

- arquitetura distribuída com:- arquitetura distribuída com:

- workstations- workstations

- servidores distribuídos ou centralizados- servidores distribuídos ou centralizados Abordagens para segurançaAbordagens para segurança

1. Ambientes pequenos e fechados1. Ambientes pequenos e fechados

- workstation garante identidade do usuário- workstation garante identidade do usuário

- servidor utiliza políticas baseadas no ID do - servidor utiliza políticas baseadas no ID do usuário usuário

MotivaçãoMotivação

2. 2. ambientes pequenos e fechadosambientes pequenos e fechados

- cliente se autentica para servidor- cliente se autentica para servidor

- cliente faz identificação do usuário- cliente faz identificação do usuário

3. Sistemas mais abertos que suportam conexões de 3. Sistemas mais abertos que suportam conexões de

rede para outras máquinasrede para outras máquinas- - usuário informa identificação para cada serviço usuário informa identificação para cada serviço invocado invocado- servidores provam identidade para cliente- servidores provam identidade para cliente

MotivaçãoMotivação

Abordagem 3 é suportada por KerberosAbordagem 3 é suportada por Kerberos Requisitos Requisitos

* Segurança* Segurança

* Confiabilidade* Confiabilidade

* Transparência* Transparência

* Escalonável* Escalonável

Kerberos Versão 4Kerberos Versão 4 Utiliza DES no serviço de autenticaçãoUtiliza DES no serviço de autenticação

um simples diálogo de autenticaçãoum simples diálogo de autenticação

C -> AS:C -> AS: IDc, Pc, IdvIDc, Pc, Idv

AS -> C:AS -> C: TicketTicket

C -> V:C -> V: IDc, TicketIDc, Ticket

Ticket = Ek [ IDc, ADc, IDv ]Ticket = Ek [ IDc, ADc, IDv ]

problemas ainda existemproblemas ainda existem:: número de vezes que o usuário entra com a passwordnúmero de vezes que o usuário entra com a password

transmissão transmissão plaintextplaintext da password da password

Versão 4Versão 4Solução: * esquema para evitar password Solução: * esquema para evitar password plaintextplaintext

* * TGS ( novo servidor)TGS ( novo servidor)um diálogo de autenticação mais seguroum diálogo de autenticação mais seguro

uma vez por sessão de logonuma vez por sessão de logon

C -> AS: C -> AS: IDc, IDtgs IDc, IDtgs AS -> C:AS -> C: Ekc [ Tickettgs ] Ekc [ Tickettgs ]

Tickettgs = Ektgs [IDc, ADc, IDtgs, TS1, Lifetime1]Tickettgs = Ektgs [IDc, ADc, IDtgs, TS1, Lifetime1]

uma vez por tipo de serviçouma vez por tipo de serviço

C -> TGS:C -> TGS: IDc, IDv, Tickettgs IDc, IDv, Tickettgs

TGS -> C:TGS -> C: Ticketv TicketvTicketv = Ekv [IDc, ADc, IDv, TS2, Lifetime2]Ticketv = Ekv [IDc, ADc, IDv, TS2, Lifetime2]

uma vez por sessão de serviçouma vez por sessão de serviço

C -> V:C -> V: IDc, Ticketv IDc, Ticketv

Versão 4Versão 4Restam dois problemas adicionais: Restam dois problemas adicionais:

P - tempo de vida associado com o ticket ticket-granting P - tempo de vida associado com o ticket ticket-granting (Tickettgs)(Tickettgs)

Tempo de vida: longo ou curto (?)Tempo de vida: longo ou curto (?)

S - é preciso provar que o usuário que está utilizando o S - é preciso provar que o usuário que está utilizando o ticket é o mesmo para o qual o ticket foi cedidoticket é o mesmo para o qual o ticket foi cedido

P- Servidor Falso => Pedidos de serviços negadosP- Servidor Falso => Pedidos de serviços negados Examinando os problemas...Examinando os problemas...

S - informação secreta para C e TGS por ASS - informação secreta para C e TGS por AS

isto é,isto é,

utilizar chave de criptografia = CHAVE DE SESSÃOutilizar chave de criptografia = CHAVE DE SESSÃO

O ProtocoloO Protocolo

Autenticação

C -> AS: IDc, IDtgs, TS1

AS -> C: Ekc [ Kc,tgs, IDtgs, TS2, Lifetime2, Tickettgs]

Tickettgs = Ekc[Kc,tgs, IDc, ADc, IDtgs, TS2, Lifetime2 ]

Ticket-Granting

C -> TGS: IDv, Tickettgs, Autenticadorc

TGS -> C: Ekc,tgs [ Kc,v, IDv, TS4, Ticketv]

Ticketv = Ekv [ Kc,v, IDc, ADc, IDv, TS4, Lifetime4]

Autenticadorc = Ekc,tgs[ IDc, ADc, TS3 ]

O ProtocoloO Protocolo

Autenticação Cliente/Servidor

C -> V: Ticketv, Autenticadorc

** V -> C: Ekc,v [ TS5 + 1]

Ekc,v : garante a C que esta mensagem é de V

TS5 + 1: garante a C que esta mensagem não é um

replay de um reply antigo

** Opcional

Realms KerberosRealms KerberosUm ambiente consistindo de:Um ambiente consistindo de:

um servidor Kerberosum servidor Kerberos um número de clientesum número de clientes um número de servidores de aplicaçãoum número de servidores de aplicação

possui os seguintes requisitos:possui os seguintes requisitos:

servidor kerberos deve ter o UID e password de todos os servidor kerberos deve ter o UID e password de todos os

usuários participantes em uma base de dados.usuários participantes em uma base de dados.

Servidor Kerberos deve compartilhar uma chave secreta Servidor Kerberos deve compartilhar uma chave secreta

com cada servidor. Todos servidores são registrados no com cada servidor. Todos servidores são registrados no

servidor Kerberosservidor Kerberos

Realms KerberosRealms Kerberos...tal ambiente é chamado um ...tal ambiente é chamado um REALMREALM

Redes sob diferentes organizações => diferentes REALMSRedes sob diferentes organizações => diferentes REALMS Usuários de um REALM Usuários de um REALM servidores de outro REALM servidores de outro REALM

Kerberos oferece mecanismo para autenticação inter-REALMKerberos oferece mecanismo para autenticação inter-REALM

um requisito a mais é necessário:um requisito a mais é necessário:

Servidor Kerberos em cada REALM interoperando, Servidor Kerberos em cada REALM interoperando,

compartilha chave secreta com o servidor no outro compartilha chave secreta com o servidor no outro

REALM. Servidores são registrados um no outro.REALM. Servidores são registrados um no outro.

Realms KerberosRealms Kerberos

Como é feita a comunicaçãoComo é feita a comunicação::

(1) C -> AS(1) C -> AS

(2) AS -> C(2) AS -> C

(3) C -> TGS(3) C -> TGS

(4) TGS -> C(4) TGS -> C

(5) C -> TGSrem(5) C -> TGSrem

(6) TGSrem -> C(6) TGSrem -> C

(7) C -> Vrem(7) C -> Vrem

Versão 4 X Versão 5Versão 4 X Versão 5 Limitações encontradas em Versão 4:Limitações encontradas em Versão 4:

- ambiental- ambiental- deficiências técnicas- deficiências técnicas

Algumas delas:Algumas delas: Dependência do sistema de criptografiaDependência do sistema de criptografia Dependência do protocolo InternerDependência do protocolo Interner Tempo de vida do ticketTempo de vida do ticket Forward de autenticaçãoForward de autenticação

Deficiências técnicas:Deficiências técnicas: Criptografia duplaCriptografia dupla Criptografia PCBC (Criptografia PCBC (plain - e - cipher block chaining)plain - e - cipher block chaining) Chaves de sessãoChaves de sessão Ataques de passwordAtaques de password

Versão 5Versão 5Autenticação

C -> AS: Opções, IDc, Realmc, IDtgs, Times, Nonces1

Elementos adicionados a Versão 4

* Realm: realm do usuário

* Opções: alguns flags devemser setados no ticket que vai ser

retornado

* Times: configurações de tempo

- from: tempo inicial do ticket requisitado

- till: tempo de expiração do ticket requisitado

- rtime:renovação do tempo

* Nonce: número randômico para ser repetido em mensagem 2

Versão 5Versão 5AS -> C:AS -> C: Realmc, Idc, Tickettgs, Realmc, Idc, Tickettgs,

Ekc[Kc,tgs, Times, Nonce1, Realmtgs, IDtgs ]Ekc[Kc,tgs, Times, Nonce1, Realmtgs, IDtgs ]

Tickettgs = Ek,tgs[ Flags, Kc,tgs, Realmc, IDc, ADc, Times ]Tickettgs = Ek,tgs[ Flags, Kc,tgs, Realmc, IDc, ADc, Times ]

Ticket-GrantingTicket-Granting

C -> TGS:C -> TGS: Opções, Idv, Realmc, Tickettgs, Times, Nonce2, Opções, Idv, Realmc, Tickettgs, Times, Nonce2,

AutenticadorcAutenticadorc

TGS -> C:TGS -> C: Realmc, IDc, Ticketv, Ekc,tgs [ Kc,v, Times, Realmc, IDc, Ticketv, Ekc,tgs [ Kc,v, Times,

Nonce2, Nonce2, Realmv, IDv]Realmv, IDv]

Ticketv = Ekv [Flags, Kc,v, Realmc, IDc, ADc, Times ]Ticketv = Ekv [Flags, Kc,v, Realmc, IDc, ADc, Times ]

Autenticadorc = Ekc,tgs [ IDc, Realmc, TS1]Autenticadorc = Ekc,tgs [ IDc, Realmc, TS1]

Versão 5Versão 5Autenticação cliente/servidor

C -> TGS: Opções, Ticketv, Autenticadorc

** TGS -> C: Ec,v [ TS2, SubKey, Seq# ]

Ticketv = Ekv [Flags, Kc,v, Realmc, IDc, ADc, Times ]

Autenticadorc = Ekc,v [ IDc, Realmc, TS2, SubKey, Seq#]

SubKey: cliente escolhe uma chave de criptografia para proteger esta específica sessão de aplicação. Se omitido é utilizada a chave de sessão Kc,v

Sequence number: número de sequência inicial para ser usado por mensagens enviadas pelo cliente durante esta sessão. Usado para detectar replay.

**Opcional

FlagsFlags INITIAL: ticket foi liberado usando o protocolo ASINITIAL: ticket foi liberado usando o protocolo AS PRE-AUTHENT: durante autenticação inicial, cliente foi PRE-AUTHENT: durante autenticação inicial, cliente foi

autenticado por KDCautenticado por KDC HW-AUTHENT: autenticação inicial precisa usar hardwareHW-AUTHENT: autenticação inicial precisa usar hardware RENEWABLE: ticket pode ser usado para obter um outro RENEWABLE: ticket pode ser usado para obter um outro

ticket com data de expiração posteriorticket com data de expiração posterior INVALID: ticket é inválido e deve ser validado pelo KDC INVALID: ticket é inválido e deve ser validado pelo KDC

antes de ser utilizadoantes de ser utilizado PROXIABLE: novo ticket service-granting com um endereço PROXIABLE: novo ticket service-granting com um endereço

de rede diferente pode ser liberado com a apresentação deste de rede diferente pode ser liberado com a apresentação deste ticket.ticket.

FORWARDABLE: novo ticket service-granting com u FORWARDABLE: novo ticket service-granting com u endereço de rede diferente pode ser liberado com a endereço de rede diferente pode ser liberado com a apresentação deste ticket.apresentação deste ticket.

Segurança no Correio EletrônicoSegurança no Correio Eletrônico

Alguns serviços solicitados:Alguns serviços solicitados:– ConfidencialidadeConfidencialidade

– AutenticaçãoAutenticação

– IntegridadeIntegridade

Pretty Good Privacy (PGP)Pretty Good Privacy (PGP)

Roda em diferentes plataformas incluindo Roda em diferentes plataformas incluindo DOS/Windows, UNIX, Machintosh, e DOS/Windows, UNIX, Machintosh, e muitas outras. muitas outras.

A versão comercial do PGP dá direito a A versão comercial do PGP dá direito a suporte.suporte.

Utiliza algoritmos considerados Utiliza algoritmos considerados extremamente seguros. extremamente seguros.

Tem uma variedade de aplicações distintas.Tem uma variedade de aplicações distintas.

Pretty Good Privacy (PGP)Pretty Good Privacy (PGP)

Oferece 5 recursos:Oferece 5 recursos:– AutenticaçãoAutenticação– ConfidencialidadeConfidencialidade– CompressãoCompressão– Compatibilidade de e-mailCompatibilidade de e-mail– SegmentaçãoSegmentação

AutenticaçãoAutenticação

O transmissor cria a mensagem;O transmissor cria a mensagem; MD5 é usado para gerar o hash code;MD5 é usado para gerar o hash code; O hash code é criptografado utilizando RSA O hash code é criptografado utilizando RSA

com a chave privada do transmissor;com a chave privada do transmissor; O receptor usa RSA com a chave pública do O receptor usa RSA com a chave pública do

transmissor para descriptografar e transmissor para descriptografar e restabelecer o hash code;restabelecer o hash code;

O receptor gera um novo hash code para a O receptor gera um novo hash code para a mensagem e compara-o com o hash code mensagem e compara-o com o hash code descritpografado.descritpografado.

AutenticaçãoAutenticação

MMZ| | ER

ER

H

H Z-1

Origem A Destino B

Comparação

KRaKUaERKRa[H(M)]

ConfidencialidadeConfidencialidade

O transmissor gera a mensagem e a chave O transmissor gera a mensagem e a chave de sessão;de sessão;

A mensagem é cifrada, usando IDEA com a A mensagem é cifrada, usando IDEA com a chave de sessão;chave de sessão;

A chave de sessão é cifrada com RSA, A chave de sessão é cifrada com RSA, usando a chave pública do receptor;usando a chave pública do receptor;

O receptor usa RSA com sua chave privada O receptor usa RSA com sua chave privada para decifrar e obter a chave de sessão;para decifrar e obter a chave de sessão;

A chave de sessão é usada para decifrar a A chave de sessão é usada para decifrar a mensagem.mensagem.

ConfidencialidadeConfidencialidade

M

M | |DR

ER

EI

DI Z-1

Z

Origem A Destino B

KS

KUb

KRb

ERKUb[KS]

Confidencialidade e AutenticaçãoConfidencialidade e Autenticação

O transmissor primeiro assina a O transmissor primeiro assina a mensagem com sua chave privada;mensagem com sua chave privada;

Criptografa a mensagem com a chave Criptografa a mensagem com a chave de sessão; de sessão;

Cifra a chave de sessão com a chave Cifra a chave de sessão com a chave pública do receptor.pública do receptor.

Confidencialidade e AutenticaçãoConfidencialidade e Autenticação

M

MZ| |

ER

ER H

HZ-1

Origem A Destino B

ComparaçãoKRa

KUa

ERKUb[KS]

ERKRa[H(M)]

| |DI

DR

ER

EI

KS

KUb

KRb

Outros ServiçosOutros Serviços

CompressãoCompressão– PGP faz a compressão dos dados depois de aplicar a PGP faz a compressão dos dados depois de aplicar a

assinatura, mas antes de cifrar a mensagem.assinatura, mas antes de cifrar a mensagem. Segmentação e RemontagemSegmentação e Remontagem

– PGP automaticamente divide as mensagens que são PGP automaticamente divide as mensagens que são muito longas em segmentos pequenosmuito longas em segmentos pequenos

– A segmentação é feita após todos os outros processos. A segmentação é feita após todos os outros processos.

– A chave de sessão e a assinatura aparecem uma única A chave de sessão e a assinatura aparecem uma única

vez, no início do primeiro segmentovez, no início do primeiro segmento..

Diagrama de transmissãoDiagrama de transmissão

Assinatura?

Confidencialidade?

CompressãoX:= Z(X)

X:= ERKUb[KS] | | EIKs[X]

Geração da assinatura X:= ass | | X

ConversãoX:= R64[X]

X:= arquivo

Não

Não

Sim

Sim

Diagrama de recepção Diagrama de recepção

Assinatura?

Confidencialidade?

DescompressãoX:= Z=-1 (X)

K:= DRKUb [KS]; X:= DIK [X]

Capturar a assinatura de X everificá-la

Não

Não

Sim

Sim

ConversãoX:= R64-1 [X]

Chaves usadas pelo PGPChaves usadas pelo PGP

Nome Algoritmo de

Cifragem

Utilização

Chave de Sessão IDEA Cifrar mensagens para transmissão. É

usada uma única vez e é gerada

randomicamente.

Chave Pública RSA Cifrar chaves de sessão para transmissão

com a mensagem. Ambos, transmissor e

receptor devem ter uma cópia de cada

chave pública.

Chave Privada RSA Formar uma assinatura. Apenas o

receptor mantém uma cópia de sua chave

privada.

Chave baseada em

Passphrase

IDEA Cifrar chave privada para ser estocada no

transmissor.

Tabela de chaves privadasTabela de chaves privadas

Timestamp: Dia/hora que o par de chaves Timestamp: Dia/hora que o par de chaves foi gerado;foi gerado;

Key ID: Os últimos 64 bits significantes da Key ID: Os últimos 64 bits significantes da chave pública;chave pública;

Chave pública;Chave pública; Chave privada: Este campo é criptografado;Chave privada: Este campo é criptografado; User ID: Geralmente o e-mail do usuário.User ID: Geralmente o e-mail do usuário.

Tabela de chaves públicasTabela de chaves públicas

Timestamp: Dia/hora que esta entrada foi Timestamp: Dia/hora que esta entrada foi gerada;gerada;

Key ID: Os últimos 64 bits significantes da Key ID: Os últimos 64 bits significantes da chave pública;chave pública;

Chave pública;Chave pública; User ID: Identifica o dono da chave;User ID: Identifica o dono da chave;

Gerenciamento das chaves Gerenciamento das chaves públicaspúblicas

A deve receber fisicamente, A deve receber fisicamente, pessoalmente, a chave de B. pessoalmente, a chave de B.

Verificar a chave de B por telefone, se Verificar a chave de B por telefone, se A reconhecer bem a voz de B.A reconhecer bem a voz de B.

Obter a chave de B através de um Obter a chave de B através de um terceiro confiável D que pode ser uma terceiro confiável D que pode ser uma autoridade com certificadoautoridade com certificado