protocolos de segurança
DESCRIPTION
Protocolos de Segurança. Érika Benning Salgado --> PGP Maria Eugênia Shuler --> Kerberos Simone Antunes --> SSL. SSL. Secure Socket Layer. Introdução. Privacidade e Confiabilidade Composto de 2 níveis:. Protocolos de Aplicação... SSL Handshake Protocol SSL Record Protocol - PowerPoint PPT PresentationTRANSCRIPT
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