Teaching material
based on Distributed
Systems: Concepts
and Design, Edition 3,
Addison-Wesley 2001.
Sistemas Distribuídos
Segurança
Copyright © George
Coulouris, Jean Dollimore,
Tim Kindberg 2001
email: [email protected]
This material is made
available for private study
and for direct use by
individual teachers.
It may not be included in any
product or employed in any
service without the written
permission of the authors.
Viewing: These slides
must be viewed in
slide show mode.
Capítulo 2 (seção 2.3.3):
O Modelo de Segurança
Capítulo 7:
Visão geral de técnicas de segurança
Algoritmos criptográficos
Assinaturas digitais
Aspectos práticos do uso de criptografia
Estudos de caso
Objetivos
 O modelo de segurança
– Tipos de ameaças
 Técnicas básicas
– Técnicas de criptografia




Sigilo e privacidade
Autenticação
Certificados e credenciais
Controle de acesso
– Logs de auditoria
 Algoritmos de criptografia simétricos e assimétricos
 Assinaturas digitais
 Abordagens para o projeto de sistemas seguros
 Pragmática e casos de estudo
2
Objetos and “principals”
Figure 2.13
Access rights
Object
invocation
Client
Server
result
Principal (user)
Network
Principal (server)
 Objeto (ou recurso)
– Mailbox, arquivo do sistema, parte de um sítio web comercial
 “Principal” (entidade que realiza uma requisição)
– Usuário ou processo que tem autoridade (direito) para realizar ações
– A identidade de um principal é importante
3
O Inimigo
Figure 2.14
Copy of m
The enemy
Process p
m’
m
Process q
Communication channel
 Ataques
– A aplicações que lidam com informações financeiras ou outros tipos
de informação para os quais sigilo e integridade são essenciais
 Inimigo (adversário): autor dos ataques
 Ameaças
– A processos, canais de comunicação, negação de serviço
4
Canais seguros
Figure 2.15
PrincipalA
Processp
Cryptography
The enemy
Secure channel
Principal B
Processq
Propriedade de segredos:
 Propriedades
Ocultação de informações criptográficas baseia-se
 Cada processo
deve ter certeza
sobreconvencionais
a identidade dos demais
de criptografia
privativas
em:Chaves
 Dados são privativos e protegidos contra adulteração
Par
de chaves
pública/privativa
Confusão
e difusão
 Proteção
contra
repetição (replay) ou re-ordenação dos dados
 Emprego de criptografia
 Privacidade baseada em ocultação criptográfica
 Autenticação baseada na prova de propriedade de segredos
5
Ameaças e formas de ataque
 Espionagem (eavesdropping)
– obtenção de informação privativa ou sigilosa
 Mascaramento
– alguém assume a identidade de um outro usuário / “principal”
 Adulteração de mensagens
– alteração do conteúdo de mensagens em trânsito
 ataque tipo “man in the middle” (corrompe o mecanismo de canal seguro)
 Repetição (Replay)
– armazenamento de mensagens seguras e posterior re-envio das mesmas
 Negação de serviço (“denial of service”)
– inundar um canal ou outro recurso, negando acesso a outros usuários
6
Ataques imunes a canais seguros
ou outras técnicas criptográficas
 Ataques de negação de serviço
– Uso excessivo e deliberado de recursos, a ponto de os tornar
inacessíveis a usuários legítimos
 “Cavalos de Tróia” e vírus
– Um vírus apenas pode entrar em um computador quando código é
importado.
– Mas usuários freqüentemente necessitam novos programas, Ex.:
 Instalação de novo software
 Código móvel “baixado” dinamicamente por software existente (ex.:
applets Java)
 Execução acidental de programas suspeitos
– Defesas: autenticação de código (código assinado), validação de
código (checagem de tipos, prova), “caixa de areia” (sandboxing).
7
Cenário 1: Comunicação sigilosa com uma chave
secreta compartilhada
Alice e Bob compartilham uma mesma chave secreta KAB.
1. Alice usa KAB e uma função de encriptação pré-acordada E(KAB, M)
para encriptar e enviar quaisquer mensagens {Mi}KAB para Bob.
2. Bob lê as mensagens encriptadas usando a função de decriptação
correspondente D(KAB, M).
Alice e Bob podem continuar usando KAB enquanto for seguro assumir que KAB não foi
comprometida.
Questões importantes:
Distribuição de chaves: Como Alice pode enviar uma chave compartilhada KAB
para Bob de maneira segura?
“Freshness” da comunicação: Como Bob saberia que {Mi} não é uma cópia de
uma mensagem anterior de Alice que foi capturada por Mallory e repetida
(replayed) posteriormente?
9
*
Cenário 2: Comunicação autenticada com um servidor
e chaves privadas
Suponha que Bob é um servidor de arquivos; Sara é um serviço de autenticação.
Sara compartilha chave secreta KA com Alice e chave secreta KB com Bob.
1.
Alice envia uma mensagem (não encriptada) para Sara informando sua
identidade e requisitando um ticket para acesso a Bob. 
2. ticket
Sara envia
resposta
para Alice,contendo:
{{Ticket}KBa, Kidentidade
é
AB}KA. A resposta
Um
é umuma
item
criptografado
do principal
em:
A e consiste
para encriptada
o qual elecom
foiKemitido,
e uma
chave compartilhada para a sessão
• um ticket (a ser enviado para Bob junto com cada requisição de acesso a
de comunicação.
arquivo) encriptado com KB, e uma nova chave secreta KAB.
3.
Alice usa KA para decriptar a resposta.
4.
Alice envia para Bob uma requisição R para fazer acesso a um arquivo:
•

{Ticket}KB, Alice, R.
Esta
é uma
simplificada
do, protocolo
Needham
and decriptá-lo
Schroeder (e
5. O
ticketversão
é, na verdade,
{KAB
Alice}KB. de
Bob
usa KB para
e checar
Kerberos).
que o nome de Alice está correto; então usa K para encriptar as respostas
AB

Questões
de temporização e replay – tratadas em N-S e Kerberos.
para Alice.

Não apropriada para e-commerce porque10o serviço de autenticação não escala…
*
Cenário 3:
Comunicação autenticada com chaves públicas
Bob tem um par de chaves pública/privada <KBpub, KBpriv>
1. Alice obtém um certificado, assinado por uma autoridade confiável,
informando a chave pública de Bob, KBpub
2. Alice cria uma nova chave compartilhada KAB , encripta-a com KBpub
usando um algoritmo de chave pública e envia o resultado para Bob.
3. Bob usa sua chave privada, KBpriv, para decriptar a mens. de Alice.
(Se eles quiserem ter certeza de que a mensagem não foi adulterada, Alice pode adicionar
um valor pré-acordade à mensagem, de forma que Bob possa checá-lo.)
 Mallory poderia interceptar a requisição inicial de Alice ao
serviço de distribuição de chaves pedindo o certificado de
chave pública de Bob e enviar uma resposta contendo sua
própria chave pública. Ela pode então interceptar todas as
mensagens.
11
*
Cenário 4:
Assinaturas digitais com uma função de “digest” segura
Alice deseja publicar um documento M de tal forma que qualquer um
possa verificar que o documento foi originado por ela.
1. Alice computa um digest de tamanho fixo do documento: Digest(M).
2. Alice encripta o digest com sua chave privativa, acrescenta-o a M
produz o seguinte documento assinado: (M, {Digest(M)}KApriv), o
qual fica disponível para os usuários.
3. Bob obtém o documento assinado, extrai M computa Digest(M).
4. Bob usa a chave pública de Alice para decriptar {Digest(M)}KApriv e
compara o resultado com o digest que ele calculou. Se iguais, a
assinatura de Alice foi verificada com sucesso.
A função de digest deve ser segura contra o chamado “ataque do aniversário”.
12
*
Ataque do aniversário
1. Alice prepara
duas versões M and M' de um contrato para Bob. M é favorável
Paradoxo
do aniversário:
a Bob eestatístico:
M' não o é. se houver 23 pessoas em uma sala, há grande
Resultado
2. Alice cria várias versões sutilmente diferentes de ambos M and M', as quais
chance
de que 2 delas terão o mesmo dia de aniversário.
são visivelmente indistinguíveis uma da outra, através de métodos tais como a
3.
adição de espaços em branco ao final das linhas. Ela compara os hashes de
todas as versões de M com todas as versões de M'. (É provável que ela
encontrará duas iguais, devido ao “Paradoxo do Aniversário”.)
Quando ela tem um par de documentos M and M' que tenham o mesmo valor
como hash, ela entrega o documento favorável M para Bob para ele assinar
com uma assinatura digital usando sua chave privativa. Quando ele retorna o
documento, ela o substitui pela versão desfavorável com mesmo hash, M',
retendo a assinatura dada para M.
– Se os valores de hash são de 64 bits, são necessárias apenas 232 versões of
M and M’ na média.
– Isto é insuficiente para se ter um certo conforto. É necessário usar valores de
hash de pelo menos 128 bits para se proteger deste ataque.
13
*
Certificados
Certificado:
umabank
afirmação
assinada por uma autoridade apropriada.
Figure 7.4 Alice’s
account certificate
Certificados requerem:
1. Certificate type:
Account number
• Um formato padrão Alice
pré-acordado entre as partes
2. Name:
• Acordo sobre a formação
de cadeias de confiança.
3. Account:
6262626
• Datas de
validade,
de
forma
que certificados possam ser revogados.
4. Certifying
authority
:
Bob’s
Bank
5. Signature:
{Digest(field 2 + field 3)} KBpriv
Figure 7.5 Public-key certificate for Bob's Bank
1. Certificate type:
Public key
2. Name:
Bob’s Bank
3. Public key:
KBpub
4. Certifying authority:
Fred – The Bankers Federation
{Digest(field 2 + field 3)} KFpriv
5. Signature:
14
*
Formato de Certificado X509
Figure 7.13
Subject
Distinguished Name, Public Key
Issuer
Distinguished Name, Signature
Period of validity
Not Before Date, Not After Date
Administrative information
Version, Serial Number
Extended Information
15
Certificados como credenciais
 Certificados podem atuar como credenciais
– Evidência sobre os direitos de um “principal” de acesso a um recurso
 Os dois certificados mostrados no slide anterior
poderiam
atuar como credenciais para Alice operar
Figure 7.4 Alice’s bank account certificate
sua conta
bancária Account number
1. Certificate type:
Name:
Alice certificado de chave pública a cada
– Ela2.precisaria
adicionar seu
3. Account:
6262626
transação
4. Certifying authority:
Bob’s Bank
5. Signature:
{Digest(field 2 + field 3)} KBpriv
Figure 7.5 Public-key certificate for Bob's Bank
1.
2.
3.
4.
5.
Certificate type:
Name:
Public key:
Certifying authority:
Signature:
Public key
Bob’s Bank
KBpub
Fred – The Bankers Federation
{Digest(field162 + field 3)} KFpriv
*
Controle de acesso
 Domínio de proteção
– Um conjunto de pares <recurso, direitos>
 Duas abordagens principais de implementação:
– Listas de controle de acesso (ACL) associadas a cada objeto
 Ex.: Permissões de acesso a arquivos no Unix 
drwxr-xr-x
gfc22
264de
Oct
30 16:57
User
Data
 Para
tiposstaff
de objetos e comunidades
usuários
maisAcrobat
complexos,
ACLs
-rw-r--r-- podem
gfc22
unknown
se tornar
muito complexas0 Nov 1 09:34 Eudora Folder
-rw-r--r-gfc22 staff
163945 Oct 24 00:16 Preview of xx.pdf
–
Capacidades
(capabilities)
associadas
“principals”
drwxr-xr-x gfc22 staff
264 aOct
31 13:09 iTunes
-rw-r--r-staff
325 Oct 22 22:59 list of
 Comogfc22
uma chave
broken apps.rtf
 Formato: <resource id, permitted operations, authentication code>
 Não podem ser passíveis de serem forjadas
 Problemas: espionagem, dificuldade de cancelamento
17
Credenciais
 Requisições para acesso a recursos devem vir
acompanhadas de credenciais:
– Evidência do direito do “principal” requisitante de acesso ao recurso
– Caso mais simples: um certificado de identidade do “principal”, assinado pelo
“principal”.
– Credenciais podem ser usadas em combinação. Ex.: para enviar um e-mail
autenticado como um membro da UFG, eu precisaria apresentar um
certificado provando que sou membro da UFG, bem como um certificado do
meu endereço de e-mail.
 A idéia de que a credencial “fala” pelo principal
– Indesejável que usuários forneçam sua senha toda vez que seus PCs fazem
acesso a um server que mantém recursos protegidos.
– Ao invés disso, a noção de que uma credencial “fala” pelo principal é
introduzida. Ex.: o certificado de chave pública de um usuário fala por ele.
 Um servidor que receba uma requisição acompanhada do certificado de um
usuário pode assumir que a requisição foi gerada por ele
 mesmo que tenha recebido a requisição através de terceiros
18
*
Delegação
 Considere um servidor que imprime arquivos:
– seria um desperdício copiar os arquivos: deveria acessá-los in situ
– ao servidor deve ser dado acesso restrito e temporário aos arquivos
do usuário
 Pode usar um certificado de delegação ou uma
capability
– um certificado de delegação é uma requisição assinada autorizando
um outro principal a acessar um recurso designado, de acordo com
certas restrições.
– CORBA Security Service suporta certificados de delegação.
– uma capability é uma chave que permite ao seu possuidor o acesso
a uma ou mais das operações suportadas por um recurso.
– A restrição temporal pode ser obtida adicionando prazos de validade.
19
*
Algoritmos criptográficos
Mensagem M, chave K, funções de criptografia publicadas E, D
 Simétricos (chave secreta)
E(K, M) = {M}K
D(K, E(K, M)) = M
Mesma chave para E e D
M deve ser difícil (não factível) de se computar se K não for conhecida.
A forma usual de ataque é por força bruta: tentar todos os valores de chave
possíveis para um dado par M, {M}K. Pode-se resistir a este ataque tornando
K suficientemente grande ~ 128 bits
 Assimétricos (chave pública)
Chaves separadas para encriptação e decriptação: Ke, Kd
D(Kd. E(Ke, M)) = M
Depende do uso de uma função trap-door para se criar chaves. E tem alto custo
computacional. Usa chaves muito grandes > 512 bits
 Protocolos Híbridos – usado em SSL (atualmente conhecido como TLS)
Usa criptografia assimétrica para transmitir a chave simétrica que é então usada
para encriptar os dados transmitidos em uma sessão.
20
*
Blocos de cifra, encadeamento, cifras de fluxo
A maioria dos algoritmos opera sobre blocos de 64 bit.
Fraqueza de cifras de único bloco: padrões repetidos podem ser detectados.
Figure 7.6 Cipher block chaining (CBC)
n+3
plaintext blocks
n+2
n+1
XOR
E(K, M)
n-3
ciphertext blocks
n-2
n-1
n
Figure 7.7 Stream cipher
keystream
number
generator
n+3
n+2
n+1
E(K, M)
buffer
XOR
ciphertext
stream
plaintext
stream
21
*
Algoritmos de criptografia simétricos
Todos estes são programas que realizam operações de confusão e difusão sobre
blocos de dados binários
TEA: um algoritmo simples mas efetivo desenvolvido na U. Cambridge (1994) com
finalidade de ensino e explanação de conceitos. Chave de 128 bits, 700 kbytes/s.
DES: Data Encryption Standard (EUA, 1977). Atualmente, não é seguro em sua
forma original. Chave de 56 bits, 350 kbytes/s.
Triple-DES: aplica DES três vezes, com duas chaves diferentes. Chaves de 112 bits,
120 Kbytes/s.
IDEA: International Data Encryption Algorithm (1990). Parecido com TEA. Chave de
128 bits, 700 kbytes/s.
AES: Advanced Encryption Standard (proposto nos EUA, 1997). Chaves de 128/256
bits.
Há muitos outros algoritmos efetivos. Veja Schneier [1996].
As taxas de dados acima foram medidas em um processador Pentium II com clock de 330
MHZ. PCs de hoje (janeiro de 2002) deveriam obter uma melhora de 5x.
22
*
TEA: Função de encriptação
Figure 7.8
void encrypt(unsigned long k[], unsigned long text[]) {
unsigned long y = text[0], z = text[1];
unsigned long delta = 0x9e3779b9, sum = 0; int n;
for (n= 0; n < 32; n++) {
sum += delta;
y += ((z << 4) + k[0]) ^ (z+sum) ^ ((z >> 5) + k[1]);
z += ((y << 4) + k[2]) ^ (y+sum) ^ ((y >> 5) + k[3]);
}
text[0] = y; text[1] = z;
}
Exclusive OR
key 4 x 32 bits
plaintext
and result 2 x 32
5
6
logical shift
 Linhas 5 & 6 realizam a confusão (XOR do texto deslocado)
e difusão (deslocamento e troca de valor, entre y e z)
23
*
TEA: Função de decriptação
Figure 7.9
void decrypt(unsigned long k[], unsigned long text[]) {
unsigned long y = text[0], z = text[1];
unsigned long delta = 0x9e3779b9, sum = delta << 5; int n;
for (n= 0; n < 32; n++) {
z -= ((y << 4) + k[2]) ^ (y + sum) ^ ((y >> 5) + k[3]);
y -= ((z << 4) + k[0]) ^ (z + sum) ^ ((z >> 5) + k[1]);
sum -= delta;
}
text[0] = y; text[1] = z;
}
 O inverso da função de encriptação
24
TEA in use
Figure 7.10
void tea(char mode, FILE *infile, FILE *outfile, unsigned long k[]) {
/* mode is ’e’ for encrypt, ’d’ for decrypt, k[] is the key.*/
char ch, Text[8]; int i;
while(!feof(infile)) {
i = fread(Text, 1, 8, infile);
/* read 8 bytes from infile into Text */
if (i <= 0) break;
while (i < 8) { Text[i++] = ' ';}
/* pad last block with spaces */
switch (mode) {
case 'e':
encrypt(k, (unsigned long*) Text); break;
case 'd':
decrypt(k, (unsigned long*) Text); break;
}
fwrite(Text, 1, 8, outfile);
/* write 8 bytes from Text to outfile */
}
}
25
*
Algoritmos de criptografia assimétricos
Todos dependem do uso de funções do tipo trap-door
Uma função trap-door é uma função apenas de entrada (oneway), com uma saída secreta
– ex.: produto de dois números grandes; fácil de multiplicar, muito difícil (não factível) de
se fatorar.
RSA: O primeiro algoritmo prático (Rivest, Shamir and Adelman 1978) e até
hoje o de uso mais freqüente. Tamanho de chave variável: 512-2048 bits.
Uma trapdoor provê uma
Velocidade
entrepara
1 e uma
7 kbytes/s. (Processador PII 350 MHz)
entrada secreta
sala. Uma vez dentro, a
Curva elíptica:
Um método recentemente desenvolvido, usa chaves mais
saída é óbvia, mas se
curtas
e mais
rápidas.
estiver
de fora,
necessitase saber o segredo para
Algoritmos
entrar.assimétricos são cerca de 1000 x mais lentos e, portanto, não
são práticos para encriptação de grandes quantidades de dados, mas
suas outras propriedades os tornam ideais para distribuição de chaves e
para autenticação.
Veja a seção 7.3.2 para uma descrição e exemplo do algoritmo RSA.
26
*
Assinaturas digitais
Requisito:
– Autenticação de documentos armazenados e mensagens
– Proteção contra assinaturas forjadas
– Prevenir que o assinante repudie um documento por ele assinado (negando
sua responsabilidade)
A encriptação de um documento com uma chave constitui uma
assinatura
-
impossível para outros realizarem sem conhecimento da chave
autenticação forte de documentos
proteção forte contra falsificações
fraca contra repúdio (assinante pode dizer que a chave foi comprometida)
29
*
Funções de digest seguro
- O documento inteiro encriptado é uma chave impraticavelmente
longa
- sendo assim, encripta-se apenas um digest (resumo) do documento
- Uma função de digest seguro computa um hash de tamanho fixo H(M) que
caracteriza o documento M
- H(M) deve ser:
- rápido de se computar
- difícil de inverter - difícil de computar M dado H(M)
- difícil de derrotar em quaisquer variantes do Birthday Attack
-
MD5: Desenvolvido por Rivest (1992). Computa um digest de 128 bit. Taxa
de 1740 kbytes/s.
 SHA: (1995) baseado em no MD4 de Rivestmas tornado mais seguro
através da produção de um digest de 160 bits. Taxa? 750 kbytes/s.
 Qualquer algoritmo de criptografia assimétrico pode ser usado em nidi
CBC (cipher block chaining). O último30 bloco na cadeia é H(M)
*
Assinaturas digitais com chaves públicas
Figure 7.11
M
signed doc
H(M)
Assinatura
{h}Kpri
h E(Kpri, h)
M
128 bits
{h}Kpri
Verificação
D(Kpub,{h})
h'
M
h = h'?authentic:forged
H(doc)
31
h
*
MACs: Assinaturas de baixo custo com chave privada
Figure 7.12
M
MAC: Message Authentication Code
signed doc
h
H(M+K)
Assinatura
M
K
Assinante e
verificador
compartilham a chave
privada K
M
h
H(M+K)
Verificação
h = h'?authentic:forged
h'
K
32
*
Desempenho de algoritmos de encriptação e digest seguro
Figure 7.14
Algoritmo
os dados são para um proc. Pentium II a 330 MHZ
Key size/hash size
(bits)
Extrapolated PRB optimized
speed
speed
(kbytes/sec.)
(kbytes/s)
TEA
128
700
-
DES
56
350
7746
Triple-DES
112
120
2842
IDEA
128
700
4469
Public
key
RSA
512
7
-
RSA
2048
1
-
Digest
MD5
128
1740
62425
SHA
160
750
25162
Secret
key
PRB = Preneel, Rijmen and Bosselaers [Preneel 1998]
33
*
Estudo de caso: O protocolo Needham - Schroeder
Nos primeiros sistemas distribuídos (1974-84) era difícil
proteger os servidores
– Ex.: contra ataques de mascaramento sobre um servidor de arquivos
– porque não havia mecanismos para autenticar a origem das requisições
– criptografia de chave pública ainda não era disponível ou prática
 computadores eram muito lentos para calcular funções trap-door
 o Algoritmo RSA não estava disponível até 1978
Needham e Schroeder portanto desenvolveram um protocolo
de autenticação e distribuição de chaves para uso em uma
rede local
– Um primeiro exemplo do tipo de cuidado necessário para se projetar um
algoritmo efetivamente seguro
– Introduziu várias idéias de projeto, incluindo o uso de nonces.
34
*
O protocolo de autenticação com chave secreta de Needham–
Schroeder
Ponto7.15
fraco: A msg
Figure
3 pode não ser “fresca” – e KAB pode ter sido
comprometida enquanto armazenada no computador de A. Kerberos (a
Headercontempla
Message isto adicionando
Notes
seguir)
um timestamp, ou nonce, à msg 3.
A requisita que S providencie uma chave para
comunicação com B.
S returns a message encrypted in A’s secret key,
2. S->A:
{NA , B, KAB,
NA é um nonce. Nonces são
inteiros
que generated
são adicionados
containing
a newly
key KAB andaa
{K , A}KB}KA ‘ticket’ encrypted in B’s secret key. The nonce N
mensagens
paraABdemonstrar
a originalidade da transação. Eles Asão
Ticket
demonstrates that the message was sent in response
geradas pelo processo remetente
sempre
necessário,
por
to the preceding
one.que
A believes
that S sent
the
message
becauseou
only
S knows
A’s secretdo
key.
exemplo incrementando um
contador
lendo
o relógio
1. A->S:
A, B, NA
{KAB, A}
sistema
presição
3.
A->B: (com
KB
4. B->A:
{NB}KAB
5. A->B:
{NB - 1}KAB
A sends the ‘ticket’ to B.
de milissegundos).
B decrypts the ticket and uses the new key KAB to
encrypt another nonce NB.
A demonstrates to B that it was the sender of the
previous message by returning an agreed
transformation of NB.
35
*
Estudo de caso: Kerberos – serviço de autenticação e
distribuição de chaves
 Torna segura a comunicação com servidores em uma LAN
– Desenvolvido no MIT nos anos 1980 para prover segurança em uma
rede de campus com mais de 5000 usuários
– baseado no protocolo de Needham - Schroeder
 Padronizado e agora incluído em sistemas operacionais
– Internet RFC 1510, OSF DCE
– BSD UNIX, Linux, Windows 2000, NT, XP, etc.
– Disponível no sítio do MIT
 O servidor Kerberos cria uma chave secreta compartilhada
para cada servidor que necessite e a envia (encriptada) para
o computador do usuário
 A senha do usuário é o segredo original compartilhado com
Kerberos
36
*
Arquitetura de sistema de Kerberos
Figure 7.16
TGS: Ticketgranting
service
Protocolo
Needham - Schroeder
Kerberos Key Distribution Center
Step A
1. Request for
TGS ticket
Authentication
database
Authentication
service A
1. A->S: A, B, NA
2. S->A: {NA , B, KAB,
{KAB, A}KB}KA
Ticketgranting
service T
3. A->B: {KAB, A}KB
2. TGS
ticket
Login
session setup
Server
session setup
DoOperation
Step B
3. Request for
server ticket
4. Server ticket
4. B->A: {NB}KAB
5. A->B: {NB - 1}KAB
Step C
5. Service
request
Service
function
Request encrypted with session key
Step A once per login session
Reply encrypted with session key
Step B once per server session
Server
Client
37
Step C once per server transaction
*
Kerberized NFS
 O protocolo Kerberos é muito caro para ser aplicado a cada
operação do NFS
 Kerberos é usado no serviço de montagem (mount):
– para autenticar a identidade do usuário
– O UserID e GroupID do usuário são armazenados no servidor com o endereço
IP do cliente
 Para cada requisição de arquivo:
– O UserID e GroupID são enviados encriptados na chave de sessão
compartilhada
– O UserID e GroupID devem ser iguais àqueles armazenados no servidor
– Os endereços IP também devem ser idênticos
 Esta abordagem tem alguns problemas
– não consegue acomodar múltiplos usuários compartilhando o mesmo
computador cliente
– todos os sistemas de arquivos remotos devem ser montados a cada login do
usuário
38
*
Estuto de caso: Secure Socket Layer (SSL)
 Distribuição de chaves e canais seguros para comércio
na Internet
– Protocolo híbrido; depende de criptografia de chave pública
– Originalmente desenvolvido pela Netscape Corporation (1994)
– Extendido e adotado como um padrão da Internet com o nome de
Transport Level Security (TLS)
– Provê segurança em em todos os servidores web e browsers e em
versões seguras de Telnet, FTP e outras aplicações de rede
 Requisitos de projeto
– Comunicação segura sem negociação de chaves ou ajuda de terceiros
– Escolha livre dos algoritmos de criptografia por clientes e servidores
– comunicação em cada direção pode ser autenticada e/ou encriptada
39
Pilha de protocolos SSL
Figure 7.17
changes the
secure channel
to a new spec
negotiates cipher
suite, exchanges
certificates and key
masters
SSL
Handshake
protocol
SSL Change
Cipher Spec
implements the
secure channel
SSL Alert
Protocol
HTTP
Telnet
SSL Record Protocol
Transport layer (usually TCP)
Network layer (usually IP)
SSL protocols:
Other protocols:
40
*
SSL handshake protocol
Figure 7.18
Estabelece a versão do protocolo, o ID da sessão,
cipher suite, método de compressão,
troca de valores de inicialização aleatórios
ClientHello
ServerHello
Cipher suite
Componente
Certificate
Opcional: envia o certificado do servidor
e requisita o certificado do cliente
Certificate Request
ServerHelloDone
Descrição
Exemplo
Método deClient
troca o método
a ser usado
para
Certificate
Server
de chaves A
troca
da chave
B
Certificate
Verify de sessão
RSA com certificados
Envia resposta com o certificado do cliente
de chave pública
se requisitado
Cifra para transf. a cifra de bloco ou stream a ser
Change
Spec
de dados
usada Cipher
para dados
IDEA
Muda a cipher suite e finaliza
de o handshake
SHA
Fução para digest para criação de códigos
Inclui a troca da chave mestra.
de mensagens
autenticação
de msgs. (MACs)
Change
Cipher Spec
Finished
A chave mestra é usada por A e B
para gerar:
2 chaves de sessão 2 chaves MAC
KAB
MAB
KBA
MBA
Finished
41
*
SSL: opções de configuração do handshake
Figure 7.19
Componente
Descrição
Exemplo
Método de troca o método a ser usado para
de chaves
troca da chave de sessão
RSA com certificados
de chave pública
Cifra para transf. a cifra de bloco ou stream a ser
de dados
usada para dados
IDEA
Fução para digest para criação de códigos de
de mensagens
autenticação de msgs. (MACs)
SHA
42
*
SSL record protocol
Figure 7.20
abcdefghi
Application data
Fragment/combine
abc
Record protocol units
def
ghi
Compress
Compressed units
Hash
MAC
Encrypt
Encrypted
Transmit
TCP packet
43
*
Sumário
 É essencial proteger contra ataques os recursos,
canais de comunicação e as interfaces de sistemas
e aplicações distribuídos.
 Isto é obtido com o uso de mecanismos de controle
de acesso e canais seguros.
 Criptografia de chave pública e secreta provê a
base para autenticação e comunicação segura.
 Kerberos e SSL são componentes de sistema
largamente utilizados que suportam comunicação
segura e autenticada.
44
*
Suposições de pior caso linhas mestras de projeto
[p. 260]
 As interfaces são expostas
 As redes são inseguras
 Limitar o tempo de vida e o escopo de cada segredo
 Os algoritmos e código de programa são disponíveis
aos intrusos
 Os intrusos podem ter acesso a vastos recursos
 Minimizar a base de confiança
45
Download

N - UFG