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
SSL Record Protocol
TCP ...
Propiedades da Conexão SSL
Privada. Criptografia para definição da
chave secreta, depois do handshake.
Criptografia simétrica para dados, ex.: DES
 Identidade do par é autenticado através de
criptografia assimétrica ou de chave
pública, ex.: DSS e RSA
 Confiável. Existe checagem de integridade
de mensagens através de MAC c/ chave.

Objetivos
Segurança criptográfica
 Interoperabilidade
 Extensiabilidade
 Eficiência

...
Passos
Mesagem a ser transmitida:
Fragmenta os dados
Comprime os dados
Aplica Mac e
encriptografa
Transmite o resultado
...
Mensagem Recebida:
Reassembled
Expandido
Decriptografado e
Verificado
Estado de Sessão e Conexão
Sessão “Stateful”. Estados controladados
pelo SSL Handshake Protocol.
 O estado é representado 2 vezes.
 Mensagens de Alerta. Contém a importância
da mensagem e descrição da alerta.
 Mensagens de Fechamento(Close_notify)
 Alertas de Erro. Ex.: unexpected_message.

Continuação...

Elementos do estado da sessão:
– id da conexão - seq. de bytes escolhidas pelo servidor
– Mét. de Compressão
– CipherSpec - especifica o algoritmo de criptografia dos dados
e um algoritmo MAC.
Handshake Protocol
Cliente
Servidor
Client Hello
Server Hello
Certificado(*)
Pedido de Cerfificado(*)
Fim do Server Hello
Verificação do Certificado(*)
Certificado(*)
[ Cipher Spec]
Fim
Dados de Aplicação
[CipherSpec]
Fim
Dados de Aplicação
Implementações SSL
SSL Netscape
 SSLRef
 SSLjava

Usando SSL para mandar dados
seguramente...
Web Server e Web Browsers
 http -> https
 Exemplo:

<form method =POST action = “http://www.company.com/cgi-bin/enter”>
mude para:
<form method =POST action = “https://www.company.com/cgi-bin/enter”>
Kerberos

Serviço de autenticação

Parte do projeto ATHENA
Problema a ser resolvido
Sistema distribuído aberto
usuários de workstations -> acessam serviços em
servidores da rede
servidores DEVEM ser capazes de:
restringir acesso
autenticar pedidos de serviços
Ameaças


Usuário se passar por um outro usuário
alteração do endereço de rede
consequência
Usuário não autorizado pode ser capaz de acessar
serviços e dados que ele não possui autorização
Kerberos oferece:
autenticação centralizada
criptografia convencional
Motivação


Cenário mais comum atualmente
- arquitetura distribuída com:
- workstations
- servidores distribuídos ou centralizados
Abordagens para segurança
1. Ambientes pequenos e fechados
- workstation garante identidade do usuário
- servidor utiliza políticas baseadas no ID do
usuário
Motivação
2. ambientes pequenos e fechados
- cliente se autentica para servidor
- cliente faz identificação do usuário
3. Sistemas mais abertos que suportam conexões de
rede para outras máquinas
- usuário informa identificação para cada serviço
invocado
- servidores provam identidade para cliente
Motivação
Abordagem 3 é suportada por Kerberos

Requisitos
* Segurança
* Confiabilidade
* Transparência
* Escalonável
Kerberos Versão 4

Utiliza DES no serviço de autenticação
um simples diálogo de autenticação
C -> AS:
IDc, Pc, Idv
AS -> C:
Ticket
C -> V:
IDc, Ticket
Ticket = Ek [ IDc, ADc, IDv ]

problemas ainda existem:
número de vezes que o usuário entra com a password
 transmissão plaintext da password
Versão 4
Solução: * esquema para evitar password plaintext
* TGS ( novo servidor)
um diálogo de autenticação mais seguro
uma vez por sessão de logon
C -> AS:
IDc, IDtgs
AS -> C:
Ekc [ Tickettgs ]
Tickettgs = Ektgs [IDc, ADc, IDtgs, TS1, Lifetime1]
uma vez por tipo de serviço
C -> TGS:
IDc, IDv, Tickettgs
TGS -> C:
Ticketv
Ticketv = Ekv [IDc, ADc, IDv, TS2, Lifetime2]
uma vez por sessão de serviço
C -> V:
IDc, Ticketv
Versão 4
Restam dois problemas adicionais:
P - tempo de vida associado com o ticket ticket-granting
(Tickettgs)
Tempo de vida: longo ou curto (?)
S - é preciso provar que o usuário que está utilizando o
ticket é o mesmo para o qual o ticket foi cedido
P- Servidor Falso => Pedidos de serviços negados
 Examinando os problemas...
S - informação secreta para C e TGS por AS
isto é,
utilizar chave de criptografia = CHAVE DE SESSÃO
O 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 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 Kerberos
Um ambiente consistindo de:

um servidor Kerberos

um número de clientes

um número de servidores de aplicação
possui os seguintes requisitos:

servidor kerberos deve ter o UID e password de todos os
usuários participantes em uma base de dados.

Servidor Kerberos deve compartilhar uma chave secreta
com cada servidor. Todos servidores são registrados no
servidor Kerberos
Realms Kerberos
...tal ambiente é chamado um REALM

Redes sob diferentes organizações => diferentes REALMS

Usuários de um REALM  servidores de outro REALM
Kerberos oferece mecanismo para autenticação inter-REALM
um requisito a mais é necessário:

Servidor Kerberos em cada REALM interoperando,
compartilha chave secreta com o servidor no outro
REALM. Servidores são registrados um no outro.
Realms Kerberos
Como é feita a comunicação:
(1) C -> AS
(2) AS -> C
(3) C -> TGS
(4) TGS -> C
(5) C -> TGSrem
(6) TGSrem -> C
(7) C -> Vrem
Versão 4 X Versão 5
Limitações encontradas em Versão 4:
- ambiental
- deficiências técnicas
Algumas delas:
 Dependência do sistema de criptografia
 Dependência do protocolo Interner
 Tempo de vida do ticket
 Forward de autenticação
Deficiências técnicas:





Criptografia dupla
Criptografia PCBC (plain - e - cipher block chaining)
Chaves de sessão
Ataques de password
Versão 5
Autenticaçã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 5
AS -> C:
Realmc, Idc, Tickettgs,
Ekc[Kc,tgs, Times, Nonce1, Realmtgs, IDtgs ]
Tickettgs = Ek,tgs[ Flags, Kc,tgs, Realmc, IDc, ADc, Times ]
Ticket-Granting
C -> TGS:
Opções, Idv, Realmc, Tickettgs, Times, Nonce2,
Autenticadorc
TGS -> C:
Realmc, IDc, Ticketv, Ekc,tgs [ Kc,v, Times, Nonce2,
Realmv, IDv]
Ticketv = Ekv [Flags, Kc,v, Realmc, IDc, ADc, Times ]
Autenticadorc = Ekc,tgs [ IDc, Realmc, TS1]
Versão 5
Autenticaçã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
Flags







INITIAL: ticket foi liberado usando o protocolo AS
PRE-AUTHENT: durante autenticação inicial, cliente foi
autenticado por KDC
HW-AUTHENT: autenticação inicial precisa usar hardware
RENEWABLE: ticket pode ser usado para obter um outro
ticket com data de expiração posterior
INVALID: ticket é inválido e deve ser validado pelo KDC
antes de ser utilizado
PROXIABLE: novo ticket service-granting com um endereço
de rede diferente pode ser liberado com a apresentação deste
ticket.
FORWARDABLE: novo ticket service-granting com u
endereço de rede diferente pode ser liberado com a
apresentação deste ticket.
Segurança no Correio Eletrônico

Alguns serviços solicitados:
– Confidencialidade
– Autenticação
– Integridade
Pretty Good Privacy (PGP)
Roda em diferentes plataformas incluindo
DOS/Windows, UNIX, Machintosh, e
muitas outras.
 A versão comercial do PGP dá direito a
suporte.
 Utiliza algoritmos considerados
extremamente seguros.
 Tem uma variedade de aplicações distintas.

Pretty Good Privacy (PGP)

Oferece 5 recursos:
–
–
–
–
–
Autenticação
Confidencialidade
Compressão
Compatibilidade de e-mail
Segmentação
Autenticação





O transmissor cria a mensagem;
MD5 é usado para gerar o hash code;
O hash code é criptografado utilizando RSA
com a chave privada do transmissor;
O receptor usa RSA com a chave pública do
transmissor
para
descriptografar
e
restabelecer o hash code;
O receptor gera um novo hash code para a
mensagem e compara-o com o hash code
descritpografado.
Autenticação
Origem A
KRa
H
M
||
ER
Z
ERKRa[H(M)]
Destino B
KUa
Z-1
ER
M
Comparação
H
Confidencialidade





O transmissor gera a mensagem e a chave
de sessão;
A mensagem é cifrada, usando IDEA com a
chave de sessão;
A chave de sessão é cifrada com RSA,
usando a chave pública do receptor;
O receptor usa RSA com sua chave privada
para decifrar e obter a chave de sessão;
A chave de sessão é usada para decifrar a
mensagem.
Confidencialidade
Origem A
Destino B
KUb
KS
M
Z
EI
ER
ERKUb[KS]
KRb
DR
||
DI
Z-1
M
Confidencialidade e Autenticação
O transmissor primeiro assina a
mensagem com sua chave privada;
 Criptografa a mensagem com a chave
de sessão;
 Cifra a chave de sessão com a chave
pública do receptor.

Confidencialidade e Autenticação
Origem A
Destino B
ERKUb[KS]
ERKRa[H(M)]
KUb
KRb
KS
H
M
||
ER
Z
EI
ER
ER
KRa
||
KUa
M
Comparação
DR
DI
Z-1
H
Outros Serviços

Compressão
– PGP faz a compressão dos dados depois de aplicar a
assinatura, mas antes de cifrar a mensagem.

Segmentação e Remontagem
– PGP automaticamente divide as mensagens que são
muito longas em segmentos pequenos
– A segmentação é feita após todos os outros processos.
– A chave de sessão e a assinatura aparecem uma única
vez, no início do primeiro segmento.
Diagrama de transmissão
X:= arquivo
Sim
Assinatura?
Geração da assinatura X:= ass | | X
Não
Compressão
X:= Z(X)
Confidencialidade?
Não
Conversão
X:= R64[X]
Sim
X:= ERKUb[KS] | | EIKs[X]
Diagrama de recepção
Conversão
X:= R64-1 [X]
Sim
Confidencialidade?
K:= DRKUb [KS]; X:= DIK [X]
Não
Descompressão
X:= Z=-1 (X)
Assinatura?
Não
Sim
Capturar a assinatura de X e
verificá-la
Chaves usadas pelo PGP
Nome
Algoritmo de
Utilização
Cifragem
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 privadas
Timestamp: Dia/hora que o par de chaves
foi gerado;
 Key ID: Os últimos 64 bits significantes da
chave pública;
 Chave pública;
 Chave privada: Este campo é criptografado;
 User ID: Geralmente o e-mail do usuário.

Tabela de chaves públicas
Timestamp: Dia/hora que esta entrada foi
gerada;
 Key ID: Os últimos 64 bits significantes da
chave pública;
 Chave pública;
 User ID: Identifica o dono da chave;

Gerenciamento das chaves
públicas
A deve receber fisicamente,
pessoalmente, a chave de B.
 Verificar a chave de B por telefone, se A
reconhecer bem a voz de B.
 Obter a chave de B através de um
terceiro confiável D que pode ser uma
autoridade com certificado

Download

Apresentacao