Seguranca - parte II

Transcrição

Seguranca - parte II
Departamento de Engenharia Informática
Conceitos básicos de criptografia
2008/09
José Alves Marques. João Barreto,
Ricardo Chaves
Departamento de Engenharia Informática
2008/09
José Alves Marques. João Barreto,
Ricardo Chaves
1
Departamento de Engenharia Informática
Criptografia
• A base da criptografia é conseguir que um grupo de pessoas conheça
uma forma de transmitir informação entre elas que seja ininteligível
para todas as outras.
• Uma solução seria este grupo de pessoas ter um dialecto próprio que
apenas eles conheciam
– não é escalável, nem seguro.
– Solução?
• A solução para este problema é ter um algoritmo que modifica a
informação que é conhecido e uma chave que parametriza o
funcionamento, o segredo partilhado pelo grupo
– a ideia á igual à das fechaduras físicas...
2008/09
José Alves Marques. João Barreto,
Ricardo Chaves
Departamento de Engenharia Informática
Criptografia - Conceitos
• Objectivo: criar algoritmos em que um atacante a partir de
informação cifrada tenha uma probabilidade muito
reduzida de deduzir a chave em tempo útil
• É vulgar distinguir entre vários graus de dificuldade no
ataque ao mecanismo de cifra.
– A partir exclusivamente de mensagens cifradas – mais difícil
– A partir de amostras de um texto em claro e cifrado
– a partir de qualquer texto original e do correspondente cifrado –
mais fácil
2008/09
José Alves Marques. João Barreto,
Ricardo Chaves
2
Departamento de Engenharia Informática
Criptografia – Segurança Total vs Prática
• As funções de cifra são consideradas totalmente seguras
se:
– independentemente do tempo e do poder computacional envolvido,
a chave não puder ser descoberta.
• Normalmente são praticamente seguras
– o valor da informação não justifica o investimento computacional
(em máquinas especiais)
– temporalmente limitada a sua validade e muito inferior ao tempo
necessário para decifrá-la com a tecnologia existente.
2008/09
José Alves Marques. João Barreto,
Ricardo Chaves
Departamento de Engenharia Informática
Criptografia
Conceitos
• Algoritmos de cifra
– Funções injectivas definidas por:
• Um modelo de processamento de dados
• As funções são injectivas porque um valor de entrada tem de corresponder a
um de saída senão seria impossível decifrar
• Uma chave que altera esse processamento
– As cifras são reversíveis apenas por quem possuir o algoritmo inverso
• Modelo inverso de processamento dos dados
• Chave inversa
– Nomenclatura
M {M}K1 : cifra da mensagem M com a chave K1
é gerado um criptograma
2008/09
José Alves Marques. João Barreto,
Ricardo Chaves
3
Departamento de Engenharia Informática
Comunicação Cifrada
Emissor
f(K, M) ⇒ {M}
Enviar ({M} )
K
Receptor
K
→
Receber ({M} )
K
f -1 (K, {M} ) ⇒ M
K
Para simplificar a notação na explicação dos protocolos utilizaremos a seguinte convenção de escrita:
E→R:
2008/09
{M}
K
José Alves Marques. João Barreto,
Ricardo Chaves
Departamento de Engenharia Informática
Comunicação Cifrada (Modelo)
{P}K
2008/09
José Alves Marques. João Barreto,
Ricardo Chaves
4
Departamento de Engenharia Informática
Criptografia - Conceitos
• Admitindo que o algoritmo de cifra não permite
ataques simples a forma de tentar obter a
informação é por teste sistemático das chaves –
ataque de força bruta (brute force)
• A dimensão da chave é decisiva
– uma chave de pequena dimensão pode ser facilmente
encontrada por teste sistemático
2008/09
José Alves Marques. João Barreto,
Ricardo Chaves
Departamento de Engenharia Informática
Criptografia:
Classificação das cifras
• Segundo as chaves
– Simétricas (ou de chave secreta)
• A chave que permite decifrar é “igual” à que permite cifrar
• Só os interlocutores legítimos a conhecem
– Assimétricas (ou de chave pública)
• Usam-se pares de chaves relacionadas:
– Privada (apenas conhecida por uma entidade)
– Pública (conhecida por todos)
2008/09
José Alves Marques. João Barreto,
Ricardo Chaves
5
Departamento de Engenharia Informática
Criptografia: Aspectos operacionais
• Cifras simétricas
– Normalmente usam técnicas de substituição e difusão
– São normalmente muito mais rápidas que as assimétricas
• Cifras assimétricas
– Normalmente usam operações matemáticas
– A sua segurança baseia-se na complexidade de certas operações
matemáticas
• Logaritmo modular
– Y = aX mod b;
Dados a, b e Y, calcular X
• Factorização de grandes números
– Y = ab, a e b primos;
Dado Y, calcular a ou b
2008/09
José Alves Marques. João Barreto,
Ricardo Chaves
Departamento de Engenharia Informática
Criptografia Simétrica
2008/09
José Alves Marques. João Barreto,
Ricardo Chaves
6
Departamento de Engenharia Informática
Cifra simétrica
• Substituição
– Mono-alfabética
– Poli-alfabética
• Exemplo Mono-alfabético
– Chave – troia
ABCDEFGHIJLMNOPQRSTUVXZ
TROIABCDEFGHJLMNPQSUVXZ
– Problema?
2008/09
José Alves Marques. João Barreto,
Ricardo Chaves
Departamento de Engenharia Informática
Cifra Simétrica
• Poli-alfabético
– Procura que as distribuições sejam
combinadas de forma a que não
existam caracteres que sejam mais
frequentes
• Exemplo: Tabelas de Vigenère
2008/09
José Alves Marques. João Barreto,
Ricardo Chaves
7
Departamento de Engenharia Informática
2008/09
José Alves Marques. João Barreto,
Ricardo Chaves
Departamento de Engenharia Informática
Exemplo de Cifra com a Tabela de Vigenère
•
Vamos, supor que se pretende cifrar uma mensagem em claro (plaintext) :
•
O cifrador escolhe a chave e repete-a até que tenha o tamanho da mensagem
•
•
•
A primeira letra da mensagem, A, é cifrada usando o alfabeto na linha L, que
é a primeira letra da chave. Na tabela de Vigenère corresponde à linha L e à
coluna A.
Da mesma forma para a segunda letra da mensagem: a linha E e a coluna T
resulta X.
A restante mensagem é cifrada da mesma forma
Mensagem:
•
Chave:
•
Mensagem Cifrada
– ATTACKATDAWN
– Vamos usar "LEMON": LEMONLEMONLE
•
– ATTACKATDAWN
– LEMONLEMONLE
– LXFOPVEFRNHR
2008/09
José Alves Marques. João Barreto,
Ricardo Chaves
8
Departamento de Engenharia Informática
One-time pads
• Substituição poli-alfabética
• Chave de grande dimensão não repetida
• O emissor usa a parte da chave que necessita para cifrar a
mensagem e o receptor usa a mesma parte da chave
estando ambos sincronizados sobre que parte já utilizaram
• Totalmente seguro, mas... como distribuir a chave?
– Uma aproximação a one-time pads nos computadores são
geradores de números aleatórios
– Que funcionam a partir de chave (limitada) distribuída inicialmente
2008/09
José Alves Marques. João Barreto,
Ricardo Chaves
Departamento de Engenharia Informática
Data Encription Standard - DES
•
•
1970 - O National Bureau of Standards (NBS) dos EUA reconheceu a
necessidade de um algoritmo padrão para cifra na sociedade civil
1972 – O NBS abriu um concurso para uma novo algoritmo que devia ter
várias características, entre elas:
–
–
–
–
–
•
•
•
Alto nível de segurança
Completamente especificado e fácil de perceber
O algoritmo devia ser público, a sua segurança não vinha de ser secreto
Adaptável a diversas utilizações
Fácil de realizar em dispositivos electrónico
1974 - Os primeiros resultados foram desencorajadores e houve um segundo
concurso
Desta vez foi considerada aceitável a proposta do algoritmo de cifra Lucifer
desenvolvido pela IBM
1976 – depois de análise pelo DoD em particular pela NSA foi aceite como
standard nos EUA
2008/09
José Alves Marques. João Barreto,
Ricardo Chaves
9
Departamento de Engenharia Informática
Data Encription Standard - DES
• Criptografia simétrica
– Usa as técnicas fundamentais de substituição e permutação
• Baseia-se na aplicação a blocos de 64 bits de funções de
permutação e substituição.
• O algoritmo tem 16 etapas e duas permutações totais
• A chave tem 56 bits que é desdobrada em chaves de 48 bits
para cada etapa
• Pode ser realizado em software ou em hardware
• Só há registos de quebra por teste sistemático da chave
2008/09
José Alves Marques. João Barreto,
Ricardo Chaves
Departamento de Engenharia Informática
Algoritmo do DES
Chave de 56 bit
Entrada 64 bit
Permutação
Etapa 1
Etapa 2
Etapa 16
48-bit k1
48-bit k2
48-bit k16
Permutação
64 bit saída
2008/09
A chave de 56 bits é usada
para criar as chaves de 48 bits
utilizadas em cada etapa
José Alves Marques. João Barreto,
Ricardo Chaves
10
Departamento de Engenharia Informática
Técnicas Elementares de Criptografia
Simétrica
• Substituição - dificultar a descoberta da forma como a mensagem e
a chave foram utilizadas na transformação da informação.
• Permutação - difundir a informação uniformemente pelo texto
cifrado.
2008/09
José Alves Marques. João Barreto,
Ricardo Chaves
Departamento de Engenharia Informática
Funções de Substituição
• A chave e a palavra de 32 bits são entradas de uma função
que mistura os respectivos bits produzindo uma palavra de
32 bits.
• Cada etapa pode ser decomposta em duas operações,
– A parte mais significativa é uma cópia dos 32 bits menos
significativos da entrada (Li = Ri-1).
– Na outra metade efectua-se um “ou-exclusivo” dos 32 bits mais
significativos, com o resultado da função F que tem por entradas os
32 bits menos significativos e parte da chave Ki.
• Grande parte da complexidade do algoritmo reside nas
funções de substituição.
• Os detalhes das funções e das diferentes etapas são
conhecidos.
2008/09
José Alves Marques. João Barreto,
Ricardo Chaves
11
Departamento de Engenharia Informática
Função de base do DES – rede de Feistel
2008/09
José Alves Marques. João Barreto,
Ricardo Chaves
Departamento de Engenharia Informática
DES
• Substituição, Permutação, Compressão e Expansão
Input (64)
L0
Ri
Li-1
PI
E+P
R0
KSi
KS1
L1
 [i]
 [i]
C+P
R1
KS16
L16
K (56)
Ri-1
S-Box i
R16
Li
Ri
P-box
inverso PI
output (64)
2008/09
José Alves Marques. João Barreto,
Ricardo Chaves
12
Departamento de Engenharia Informática
Chave do DES
• Desde a sua publicação que a chave de 56 bits é
considerada insuficiente, permitindo que o sistema seja
alvo de ataques sistemáticos.
• Com o rápido aumento do desempenho das máquinas, esta
questão torna-se cada vez mais preocupante.
• Em [Kaufman95] considera-se que com um incremento de
40% do desempenho dos processadores ao ano, as chaves
deveriam crescer 1 bit cada dois anos.
• Se admitirmos que 56 bits era adequado em 79, este valor
deveria ser 64 em 93 e 128 em 2121.
2008/09
José Alves Marques. João Barreto,
Ricardo Chaves
Departamento de Engenharia Informática
Ataque ao DES
• Em 2006 um computador dedicado designado de
COPACOBANA construído por $10,000 quebrou
o DES com ataques de força bruta em 8,7 dias
• Actualmente (2009) consegue-se o mesmo em
apenas 6 dias.
2008/09
José Alves Marques. João Barreto,
Ricardo Chaves
13
Departamento de Engenharia Informática
DES Triplo
- Com 3 chaves de 56 bits diferentes, DES triplo
consegue segurança efectiva de 112 bits (< 168 bits)
2008/09
José Alves Marques. João Barreto,
Ricardo Chaves
Departamento de Engenharia Informática
Criptografia:
Classificação das cifras
• Segundo o modelo de operação
– Por blocos
• Facilita a análise
P
EK
C
DK
P
– Contínuas (stream)
• Cifra de um bloco depende dos blocos anteriores
• Necessita mecanismo de inicialização
2008/09
José Alves Marques. João Barreto,
Ricardo Chaves
14
Departamento de Engenharia Informática
Por Blocos versus Contínuas: Exemplo
Original
Cifra Por Bloco
Cifra Contínua
Fonte: Wikipedia
2008/09
José Alves Marques. João Barreto,
Ricardo Chaves
Departamento de Engenharia Informática
Modos de cifra
• Inicialmente apresentados para o DES
–
–
–
–
ECB (Electronic Code Book)
CBC (Cipher Block Chaining)
OFB (Output Feeback Mode)
CFB (Cipher Feedback Mode)
• Podem ser usados por outras cifras por blocos
2008/09
José Alves Marques. João Barreto,
Ricardo Chaves
15
Departamento de Engenharia Informática
Modos de cifra:
ECB e CBC
Electronic Code Book
Ci = EK(Ti)
Ti = DK(Ci)
T1
T2
EK
EK
C1
C2
DK
DK
T1
T2
Cipher Block Chaining
Ci = EK(Ti ⊕ Ci-1)
Ti = DK(Ci ) ⊕ Ci-1
Tn
EK
EK
IV
Cn
DK
2008/09
DK
IV
T1
T2
EK
EK
C1
C2
DK
DK
T1
T2
EK
DK
Tn-1
Tn
EK
EK
Cn-1
Cn
DK
DK
Tn-1
Tn
Tn
José Alves Marques. João Barreto,
Ricardo Chaves
Departamento de Engenharia Informática
Modos de cifra:
OFB e CFB
Output Feedback (autokey)
Ci = Ti ⊕ EK(Si)
Ti = Ci ⊕ EK(Si)
Si = f(Si-1, EK(Si-1))
2008/09
Ciphertext Feedback
Ci = Ti ⊕ EK(Si)
Ti = Ci ⊕ EK(Si)
Si = f(Si-1, Ci)
José Alves Marques. João Barreto,
Ricardo Chaves
16
Departamento de Engenharia Informática
Algoritmos de Cifra Simétrica
•
•
•
•
•
•
•
DES
Triple DES
RC4
RC5
IDEA
Blowfish
AES – Advanced Encription Standard – norma futura dos
EUA com chaves de 128, 196 e 256 bits
2008/09
José Alves Marques. João Barreto,
Ricardo Chaves
Departamento de Engenharia Informática
Algoritmos de Cifra Simétrica (Comp.)
•
Rijndael - Advanced Encryption Standard (AES)
•
Fonte: Computer Networks, Andrew Tanenbaum
2008/09
José Alves Marques. João Barreto,
Ricardo Chaves
17
Departamento de Engenharia Informática
Criptografia Assimétrica
2008/09
José Alves Marques. João Barreto,
Ricardo Chaves
Departamento de Engenharia Informática
Algoritmos de cifra assimétrica
•
•
•
•
Diffie Hellman
RSA
DSS – baseado ElGamal
Curvas elípticas
2008/09
José Alves Marques. João Barreto,
Ricardo Chaves
18
Departamento de Engenharia Informática
RSA - Rivest Shamir Adleman
• Algoritmo de cifra de chave pública mais
divulgado
• Patente expirou recentemente
• Enquanto era válida, os autores permitiram aos
browsers utilizar o algoritmo sem pagar desde que
reconhecessem a sua empresa (VeriSign) como
autoridade para gerar certificados
2008/09
José Alves Marques. João Barreto,
Ricardo Chaves
Departamento de Engenharia Informática
RSA - Rivest Shamir Adleman
• O método baseia-se na existência de duas chaves
• Qualquer uma pode ser usada para cifrar ou decifrar
• Uma das chaves é pública Kp (todos conhecem) e outra é privada ou
secreta Ks
• O emissor cifra a mensagem efectuando a exponenciação da
informação elevada à chave Kp e efectuando o módulo com N:
{M}Kp = MKp mod N
• O receptor decifra a informação efectuando a exponenciação com a
outra chave e calculando o módulo N:
M= ({M}Kp)Ks mod N
2008/09
José Alves Marques. João Barreto,
Ricardo Chaves
19
Departamento de Engenharia Informática
Fundamento do RSA
•
•
•
•
•
P,Q números primos da ordem de 10100
N = P*Q
Z = (P-1)*(Q-1)
Kp e Ks são primos com Z tais que Kp*Ks = 1 mod Z
(Fundamento matemático: i Ks * Kp = i mod N)
2008/09
José Alves Marques. João Barreto,
Ricardo Chaves
Departamento de Engenharia Informática
Chaves
• São trocados N e Kp que constituem a chave
pública
• N e Ks são a chave privada
2008/09
José Alves Marques. João Barreto,
Ricardo Chaves
20
Departamento de Engenharia Informática
Exemplo do cálculo das Chaves
1- Escolhem-se dois números primos P e Q e calcula-se N e Z,
– Vamos supor P = 11, Q = 13:
– N = P * Q = 11 x 13 = 143
– Z = (P - 1)*(Q - 1). = 10 x 12 = 120
2 - A chave Kp é um número co-primo com Z.
Neste caso, Z = 2*2*2*3*5, pelo que podemos escolher K p = 7
3 - Para calcular Ks é necessário resolver a equação Kp* Ks = 1 mod Z,
– Ks *7= 1 mod 120
– Ks * 7 = 1, 121, 241, 361, 481, 601, 721
– Ks = 721:7 = 103
2008/09
José Alves Marques. João Barreto,
Ricardo Chaves
Departamento de Engenharia Informática
Exemplo do cálculo das Chaves
4 - Os blocos sobre os quais se efectua a cifra têm que ser inferiores
a N.
– Podemos usar 27 = 128 <143. Neste caso, a cifra calcular-se-ia
efectuando as seguintes operações sobre blocos de informação de 7
bits.
Emissor: M7 mod 143 => {M }Kp
Receptor: {M }Kp103 mod 143 => M
2008/09
José Alves Marques. João Barreto,
Ricardo Chaves
21
Departamento de Engenharia Informática
Segurança do RSA
• Actualmente, chaves são normalmente de 1024-2048 bits
• Recomendação é de 2048 bits, pelo menos
– Chaves de 256 bits quebradas em poucas horas com PC
– Em 1999, chave de 512 bits foi quebrada por sistema distribuído de
centenas de computadores
– Alguns peritos acreditam que 1024 bits será quebrável a curtoprazo
– Computador quântico (se algum dia vier a existir) quebra chave
RSA facilmente (tempo polinomial)
• Usando Algoritmo de Shor
2008/09
José Alves Marques. João Barreto,
Ricardo Chaves
Departamento de Engenharia Informática
Segurança do RSA (2)
2008/09
José Alves Marques. João Barreto,
Ricardo Chaves
22
Departamento de Engenharia Informática
Cifra Mista
• Os algoritmos de cifra assimétrica como são
computacionalmente complexos não são usados
normalmente para cifrar a informação.
• O uso habitual é para trocar uma chave secreta que será
usada para cifrar com um algoritmo de cifra simétrica a
informação
• Cifras mistas
– Usa-se cifra assimétrica para trocar apenas uma chave secreta
– Usa-se cifra simétrica e a chave secreta para os restantes dados
2008/09
José Alves Marques. João Barreto,
Ricardo Chaves
Departamento de Engenharia Informática
Distribuição e gestão de chaves
2008/09
José Alves Marques. João Barreto,
Ricardo Chaves
23
Departamento de Engenharia Informática
Distribuição e gestão de chaves
• Distribuição das chaves é problema de difícil resolução
• Cifras simétricas
– Há que divulgar um valor secreto a universos limitados de
interlocutores legítimos
• Que o devem manter secreto
• Cifras assimétricas
– Há que garantir que a chave privada apenas é conhecida pela
entidade a que pertence
– Há que garantir que a chave pública é verdadeira e que não foi
modificada para induzir um agente a trocar informação com um
atacante
• Ataque “man in the middle”
• Autoridades de certificação
2008/09
José Alves Marques. João Barreto,
Ricardo Chaves
Departamento de Engenharia Informática
Diffie-Hellman
• O objectivo deste protocolo é criar uma chave
simétrica a partir da troca de valores em claro
entre os dois interlocutores
• O algoritmo baseia-se na dificuldade
computacional de efectuar logaritmos de grandes
números.
2008/09
José Alves Marques. João Barreto,
Ricardo Chaves
24
Departamento de Engenharia Informática
Diffie-Hellman
• 1 - A e B escolhem números primos de 512 bits n e g e trocam-nos
abertamente na rede.
• 2 - Cada um escolhe agora aleatoriamente um número de 512 bits e
mantém-no secreto (designemo-los por x e y). Calculam
respectivamente:
• TA = gx mod n
• TB = gy mod n
• 3 - TA e TB são trocados entre os dois interlocutores.
• 4 - A calcula TBx mod n e B calcula TAy mod n. Estes valores são a
chave secreta a utilizar pelos interlocutores. Os valores são idênticos,
porque:
TBx mod n = (gy)x mod n = gx.y mod n = (gx)y mod n = TAy mod n
Propriedade de
2008/09
aritmética
modular
José Alves Marques.
João Barreto,
Ricardo Chaves
Departamento de Engenharia Informática
Man-in-the-Middle
2008/09
José Alves Marques. João Barreto,
Ricardo Chaves
25
Departamento de Engenharia Informática
Autenticação
2008/09
José Alves Marques. João Barreto,
Ricardo Chaves
Departamento de Engenharia Informática
Autenticação
• A autenticação baseia-se sempre em o sistema
apresentar um desafio que o agente deve saber
responder.
• O desafio pode ser:
– Fornecer um informação que deve ser secreta,
• Senha
– Apresentar um identificador físico
• Cartão, Chave física
– Fornecer informação biométrica
• Impressões digitais, estrutura da íris
2008/09
José Alves Marques. João Barreto,
Ricardo Chaves
26
Departamento de Engenharia Informática
Autenticação em sistemas distribuídos:
Aproximações
• Uso do mecanismo local de autenticação
– Autenticação por cada ligação TCP/IP
• telnet, ftp, http
• Envio em claro de pares (nome, senha)
2008/09
José Alves Marques. João Barreto,
Ricardo Chaves
Departamento de Engenharia Informática
Protocolo Simples de Autenticação
1)
2)
3)
C ->S:
S ->C:
C ->S:
“Iniciar Sessão”
D
{D}K
cs
O segredo neste caso é a chave Kcs
O protocolo tem vários problemas:
– Não é recíproco, só autentica o cliente;
– O valor de D tem de variar senão pode ser reutilizado;
– É necessário estabelecer a chave secreta entre o cliente e o servidor.
2008/09
José Alves Marques. João Barreto,
Ricardo Chaves
27
Departamento de Engenharia Informática
Protocolo de Needham-Schroeder – criptografia
simétrica
C
S
Saut
C
C, S, Nc
{Nc ,S, Kcs, {Kcs, C}Ks}Kc
Saut
S
Kcs
Saut
Kc
Ks
{Kcs, C}Ks
C
{Ns}Kcs
S
{Ns-1}Kcs
Pode ser alvo de Replay Attack
se atacante descobrir KCS e enviar esta mensagem para S
2008/09
José Alves Marques. João Barreto,
Ricardo Chaves
Departamento de Engenharia Informática
Autenticação: Kerberos
Kerberos
Ticket
Autenticação Granting Service
1)
2)
Cliente
Servidor
3)
4)
Identificação
(login)
Pedido de acesso ao
servidor
5)
Execução das
operações
2008/09
6)
1) Identifica-se
2) Ticket para o TGS
3) Pedido de acesso ao Servidor
4) Ticket para o Servidor
5) Pedido Operação
6) Resultado Operação
José Alves Marques. João Barreto,
Ricardo Chaves
28
Departamento de Engenharia Informática
Autenticação : Kerberos (Simplificado)
C, S, n
C
login
C
{Kc,s, n}Kc, ticketc,s
Saut
2008/09
S
Kc,s
Saut
Kc
KS
ticketx,y = {x, y, T1, T2, Kx,y}Ky
authx,y = {x, Treq}Kx,y
S
{Treq, resposta}Kc,s
Saut
C
ticketc,s, authc,s, pedido, Treq
acesso a S
S
José Alves Marques. João Barreto,
Ricardo Chaves
Departamento de Engenharia Informática
Autenticação : Kerberos (V5)
C, TGS, n
C
login
{Kc,tgs, n }Kc , ticketc,tgs
C
Saut
2008/09
{Treq, resposta}Kc,s
Saut
S
Kc,s
TGS
Kc,tgs
Saut
Kc
Ks
Ktgs
TGS
ticketx,y = {x, y, T1, T2, Kx,y}Ky
ticketc,s, authc,s, pedido, Treq
acesso a S
TGS
C
ticketc,tgs, authc,tgs, S, n2
pedido de
acesso a S{Kc,s, n2 }Kc,tgs, ticketc,s
S
Porquê a separação
Saut/TGS?
S
authx,y = {x, Treq}Kx,y
José Alves Marques. João Barreto,
Ricardo Chaves
29
Departamento de Engenharia Informática
Kerberos
• Escalabilidade
– Subdivisão em realms
– Cada realm possui um Saut e um TGS
– Um realm pode aceitar autenticações feitas por outro
• Exploração
– Segurança física dos servidores e das respectivas BDs
• Saut e TGS
– Relógios sincronizados
• Para validar tickets e authenticators
2008/09
José Alves Marques. João Barreto,
Ricardo Chaves
Departamento de Engenharia Informática
Protocolo de Needham-Schroeder
criptografia assimétrica
C, S
{KpS, S} K
s Saut
Saut
{ NC, C } K
PS
S,C
C
Saut {KpC, C} KSaut
S
{NC, NS, S} KPC
{NS} KPS
8/28/2003
2008/09
José
Alves Marques
José Alves
Marques.
João Barreto,
Ricardo Chaves
30
Departamento de Engenharia Informática
Protocolo de Needham-Schroeder – criptografia
assimétrica
1: C -> Saut: C, S
2: Saut -> C: {Kps, S}KsSaut
• O cliente pede ao servidor de autenticação a chave pública
do servidor S
• O servidor de autenticação envia para o cliente a chave
pública do servidor (Kps), cifrada com a sua chave privada
para garantir a autenticação da informação.
• A mensagem é decifrada utilizando a chave pública do
servidor de autenticação, conhecida de todos.
2008/09
José Alves Marques. João Barreto,
Ricardo Chaves
Departamento de Engenharia Informática
Protocolo de Needham-Schroeder – criptografia
assimétrica
3: C -> S:
•
•
O cliente envia ao servidor uma mensagem cifrada com a chave pública do
servidor (Kps) que contém o seu identificador e um carimbo.
Só o servidor, utilizando a sua chave privada, pode ver o conteúdo da
mensagem.
4: S -> Saut:
5: Saut -> S:
•
{Nc, C} Kps
C,S
{Kpc, C} KsSaut
As etapas 4 e 5 repetem o protocolo do lado do servidor. Este pede ao servidor
de autenticação a chave pública do cliente.
6: S -> C :
7: C -> S:
2008/09
{ Nc, Ns, S}Kpc
{ Ns }Kps
José Alves Marques. João Barreto,
Ricardo Chaves
31
Departamento de Engenharia Informática
Assinatura Digital
Autenticação e Integridade da Informação
2008/09
José Alves Marques. João Barreto,
Ricardo Chaves
Departamento de Engenharia Informática
Assinaturas digitais
• Semelhantes às assinaturas textuais.
• Objectivos:
– Identificar inequivocamente o autor de um texto
(autenticidade)
– Impedir alterações do texto (integridade)
– Impedir que o autor repudie o conteúdo a posteriori
(não-repudiação)
• As assinaturas não fazem sentido isoladas; só
junto do texto a que se referem
2008/09
José Alves Marques. João Barreto,
Ricardo Chaves
32
Departamento de Engenharia Informática
Propriedades de Cifra de Chave Pública
• E(D(P)) = P
• Utilização inversa da usual
• RSA tem esta propriedade
2008/09
José Alves Marques. João Barreto,
Ricardo Chaves
Departamento de Engenharia Informática
Assinaturas digitais
• Técnica base de Autenticação
– Assinatura de T por A
•
{T}Kprivada A
– Validação da assinatura:
• T == {assinatura}Kpública A
• Como é evidente, o sistema de cifra tem de ser de chave
assimétrica senão não havia possibilidade de garantir que a
assinatura não era forjada
• Problemas?
2008/09
José Alves Marques. João Barreto,
Ricardo Chaves
33
Departamento de Engenharia Informática
Funções de Resumo ou Dispersão (Digest/Hash)
• Função H que recebe um texto (possivelmente
longo) e devolve uma sequência de bits de
comprimento fixo (e.g., 160 bits)
• Propriedades:
– Não-invertível – dado H(P) é impossível determinar P
cujo resumo é H(P)
– Sem colisões – impossível encontrar P1, P2 tais que
H(P1) = H(P2)
• Devem também ser muito eficientes (versus
criptografia assimétrica)
2008/09
José Alves Marques. João Barreto,
Ricardo Chaves
Departamento de Engenharia Informática
Paradoxo do Aniversário
• Quantas operações são necessárias para encontrar
uma colisão numa chave de m bits?
• Qual a probabilidade de duas pessoas na aula terem
o mesmo aniv.?
• Para n>=23, p>50%
– Numero de pares de aniversários = C(23,2) = 22 * 23 / 2
= 253 pares
• Resposta à pergunta inicial: 2m/2 (muito menos do
que 2m)
2008/09
José Alves Marques. João Barreto,
Ricardo Chaves
34
Departamento de Engenharia Informática
Funções Resumo (Digest)
• A função MD5 [Rivest92].
– A informação é processada em blocos de 512 bits (16 palavras de 32 bits)
e o valor do resumo é uma palavra de 128 bits.
– Em cada etapa é calculado um novo valor de resumo baseado no valor
anterior e no bloco seguinte de 512 bits da mensagem.
• A função SHA-1 é a norma dos EUA. Resumo de 160 bits
• A mais recente função SHA-2 produz um resumo de 256 a 516 bits
Message
MD5 Digest
I need a raise of $10,000.
9i5nud5r2a9idskjs2tbuop2ildax
I need a raise of $100,000.
8m4ikijuelaidsfg8asyfnasdfgll
I need a raise of $1,000,000.
4M9i2t8c7h4361712t1h4e1d1otg7
2008/09
José Alves Marques. João Barreto,
Ricardo Chaves
Departamento de Engenharia Informática
Protocolo de Assinatura Digital
1.
A -> B:
I, A, {D(I)} KsA
A envia para B a informação I e a respectiva assinatura constituída pelo resumo da
informação obtido pela função resumo D, cifrado com a chave privada de A.
2. B -> SAUT :
A
3. SAUT -> B:
A, KpA
B pede ao servidor de autenticação a chave pública de A.
4. B:
5. B:
calcula D(I)
decifra ({D(I)} com KpA
Com a chave pública de A (KpA), B decifra a assinatura
6. B:
Compara os dois
Se for idêntica, a mensagem não foi modificada, garante a integridade e tem a certeza que
foi A que a enviou, garante a autenticação.
2008/09
José Alves Marques. João Barreto,
Ricardo Chaves
35
Departamento de Engenharia Informática
MAC (Código de autenticação de mensagem)
• Garante integridade e
autenticidade de mensagens
• Pressuposto: interlocutores
partilham segredo
(ou “chave secreta” KAB)
• Exemplo (HMAC):
–
–
–
–
2008/09
m = mensagem
k = segredo KAB
opad,ipad = padding fixo
h = função de hash
José Alves Marques. João Barreto,
Ricardo Chaves
Departamento de Engenharia Informática
MAC (Código de autenticação de mensagem)
• Emissor envia <m, HMAC(m)>
• Receptor calcula HMAC da mensagem recebida, e compara
com HMAC recebido
• Se são iguais, há garantia de integridade e que foi produzida
pelo (outro) detentor de KAB
• Propriedade das assinaturas digitais não oferecida? Porquê?
2008/09
José Alves Marques. João Barreto,
Ricardo Chaves
36
Departamento de Engenharia Informática
Certificados de chaves públicas
• Validação de assinaturas digitais
– Sensível à correcção das chaves públicas respectivas
• Têm de ser as correctas
• Têm que estar ainda em uso
• Certificados de chaves públicas
– Documento que associa uma chave pública a:
• Um dono (nome, e-mail, etc.)
• Datas (de emissão, de validade)
• Outra informação
– assinado por uma autoridade de certificação
• Institucional ou não
• A norma X.509 é a mais utilizada para formato de certificados
2008/09
José Alves Marques. João Barreto,
Ricardo Chaves
Departamento de Engenharia Informática
Formato do Certificado X509
Subject
Distinguished Name, Public Key
Issuer
Distinguished Name, Signature
Period of validity
Not Before Date,
Date
Administrative information
Version, Serial Number
Not After
Extended information
2008/09
José Alves Marques. João Barreto,
Ricardo Chaves
37
Departamento de Engenharia Informática
Autoridades de certificação:
Sistemas ad-hoc ou hierárquicos
• Certificação ad-hoc
– Cada utilizador escolhe em quem confia como autoridade de
certificação (ex. PGP)
• Certificação hierárquica
– Existe uma hierarquia de certificação (institucional)
• Árvore de Certification Authorities (CAs)
– Cada CA emite certificados assinados com a sua chave pública
• Que é distribuída em certificados assinados pela CA acima na
hierarquia
• A chave pública da raiz é bem conhecida (configurada manualmente,
e.g., os browsers reconhecem a VeriSign)
– Funções de uma CA
• Emissão e distribuição de certificados
• Gestão e distribuição de listas de certificados revogados
2008/09
José Alves Marques. João Barreto,
Ricardo Chaves
Departamento de Engenharia Informática
Public Key Infrastructure (PKI)
• Infra-estrutura de apoio ao sistema de Chavespúblicas
– Criação segura de pares de chaves assimétricas
– Criação e distribuição de certificados de chavespúblicas
– Definição e uso das cadeias de certificação
– Actualização, publicação e consulta da lista de
certificados revogados
– Revogação de certificados: qual o compromisso?
2008/09
José Alves Marques. João Barreto,
Ricardo Chaves
38
Departamento de Engenharia Informática
2008/09
José Alves Marques. João Barreto,
Ricardo Chaves
Departamento de Engenharia Informática
Autorização
2008/09
José Alves Marques. João Barreto,
Ricardo Chaves
39
Departamento de Engenharia Informática
Política de Autorização
• Baseia-se na autenticação
– Num ambiente distribuído é mais difícil manter um esquema de
protecção baseado na identificação dos utilizadores
– As UID têm de ser definidas num espaço único ou então devem ser
convertidas em cada máquina.
– Não é pratico ter passwords para os vários servidores
– Os tickets do Kerberos são uma solução para a autenticação porque
são independentes de qualquer identificação local
2008/09
José Alves Marques. João Barreto,
Ricardo Chaves
Departamento de Engenharia Informática
Matriz de direitos de acesso
Objectos
Agentes
O1
O2
O3
O4
A1
R
RW
RX
---
A2
RX
---
RW
R
• Decomposição da tabela
– Listas de controlo de acesso (Access Control Lists, ACLs)
• Guardadas junto de cada objecto
– Capacidades (capabilities)
• Guardadas junto de cada agente
• A autenticação dos agentes é fulcral
– Para determinar a parcela da ACL que lhe é aplicável
– Para distribuir as capacidades correctas
2008/09
José Alves Marques. João Barreto,
Ricardo Chaves
40
Departamento de Engenharia Informática
Uma ilustração do que constitui uma
capacidade
• Um utilizador tem um nome de um ficheiro ex.: /etc/passwd . Este
nome é apenas um identificador
• Supondo que temos também os direitos /etc/passwd O_RDWR.
Temos o nome e os direitos mas não é uma capacidade porque não são
validados por nenhum monitor de autorização
• Consideremos a habitual abertura de ficheiro - int fd =
open("/etc/passwd", O_RDWR);
• A variável fd pode ser considerada uma capacidade que pode ser
usada nos acessos subsequentes ao ficheiro
• A razão de ser segura é que a tabela de ficheiros abertos não pode ser
manipulada pelo utilizador
2008/09
José Alves Marques. João Barreto,
Ricardo Chaves
Departamento de Engenharia Informática
Canal de Comunicação Seguro
2008/09
José Alves Marques. João Barreto,
Ricardo Chaves
41
Departamento de Engenharia Informática
Canais de comunicação seguros:
Funcionalidade
•
Privacidade
– Dos dados
• Cifra dos dados enviados
– Dos fluxos de informação
•
Integridade
– Das mensagens
• Adição de valores de controlo não forjáveis
– Dos fluxos de mensagens
• Contextos de cifra e/ou controlo
•
Autenticidade
– Dos interlocutores
• Cifra de valores pré-combinados e frescos
– Com uma chave secreta partilhada por emissor e receptor
– Com a chave privada do emissor
•
•
Não Repudiação
Autorização
2008/09
José Alves Marques. João Barreto,
Ricardo Chaves
Departamento de Engenharia Informática
Argumento “extremo-a-extremo”
(End-to-end principle)
• As funcionalidades dos protocolos de
comunicação devem ser implementadas pelos
extremos do canal de comunicação (sempre que
possível), pois…
– Ao implementar nos níveis mais baixos, obrigam todos
os canais a pagar o seu custo, mesmo que não queiram
– Evitam redundâncias, quando as funcionalidades têm de
ser repetidas extremo-a-extremo
• Princípio de desenho do IP
2008/09
José Alves Marques. João Barreto,
Ricardo Chaves
42
Departamento de Engenharia Informática
Nível de Protocolo
• Nível de protocolo onde realizar o canal seguro
– Ligação de dados
• Podia ser eficientemente implementado no hardware do controlador
de rede.
• Não evita o ataque aos comutadores
– Rede
• ex.: IPsec – para Virtual Private Networks
• Não vai até ao nível do transporte
– Interfaces de Transporte
• Sockets - ex.: SSL
– Aplicação :
• ex.: HTTPS, SSH, PGP, PEM, SET, Handlers dos Web Services
2008/09
José Alves Marques. João Barreto,
Ricardo Chaves
Departamento de Engenharia Informática
Exemplo: Correio Electrónico
• Idealmente, o correio deveria ser capaz de oferecer os seguintes tipos
de serviço:
– Privacidade — apenas o receptor é capaz de ler o conteúdo da mensagem;
– Autenticação — o receptor pode assegurar-se da identidade do emissor;
– Integridade — assegurar ao receptor que a mensagem não foi alterada
desde que foi enviada pelo emissor;
– Não Repudição — o emissor não pode negar o envio de uma mensagem e
o receptor pode, perante uma terceira entidade, provar que o emissor lhe
enviou uma mensagem;
– Prova de submissão — prova que o emissor enviou a mensagem,
semelhante ao registo no correio tradicional;
– Prova de entrega — prova que o receptor recebeu a mensagem,
semelhante ao aviso de recepção no correio postal.
2008/09
José Alves Marques. João Barreto,
Ricardo Chaves
43
Departamento de Engenharia Informática
PGP – Pretty Good Privacy
• Autenticação, privacidade, e assinaturas digitais
para email
• Não requer confiança em nenhuma autoridade
central de certificação (ou PKI)
• Gratuito
• Usa algoritmos criptográficos existentes
2008/09
José Alves Marques. João Barreto,
Ricardo Chaves
Departamento de Engenharia Informática
PGP
2008/09
José Alves Marques. João Barreto,
Ricardo Chaves
44
Departamento de Engenharia Informática
Representação de dados binários em texto
• Codificação de base 64
• Usa um sub-conjunto de 64 caracteres do ASCII
que são os caracteres mais "universais", ou seja,
caracteres que são iguais em practicamente todos
os códigos: A-Z, a-z, 0-9, +, /
• Caracter ‘=‘ usado no final para identificar
quantidade de padding requerido
• Aumenta tamanho do conteúdo. Qual o overhead?
2008/09
José Alves Marques. João Barreto,
Ricardo Chaves
Departamento de Engenharia Informática
Mensagem PGP
2008/09
José Alves Marques. João Barreto,
Ricardo Chaves
45
Departamento de Engenharia Informática
Gestão de Chaves no PGP
• Cada utilizador mantem “anel de chaves públicas”
– Chaves públicas conhecidas
– Grau de confiança
– Depende da forma como chave foi obtida (e.g., número
e grau de confiança nas autoridades que a certificaram)
• Modelo “web of trust”
– Deixa as decisões sobre confiança nas mãos dos
utilizadores
– Ausência de entidade(s) centralizada(s) (raíz(es) de
confiança)
2008/09
José Alves Marques. João Barreto,
Ricardo Chaves
Departamento de Engenharia Informática
Privacy Enhanced Mail
• Standard IETF para correio electronico seguro
(RFCs 1421-4)
• Requer uma PKI hierárquica
– Autoridades de certificação certificadas pela IPRA
– Suporta revogação de certificados
– Certificados são validados antes de serem utilizados
2008/09
José Alves Marques. João Barreto,
Ricardo Chaves
46
Departamento de Engenharia Informática
Privacy Enhanced Mail
• No PEM considera-se que o utilizador pode pretender diferentes tipos
de serviço:
– dados sem protecção;
– MIC-CLEAR:
• garantia de autenticidade e integridade,
• é adicionada uma assinatura (MIC —Message Integrity Code);
• os dados não são cifrados;
– MIC-ONLY:
• garantia de autenticidade e integridade e dados codificados. O PEM codifica a
mensagem no código de 6 bits (Base 64) que passará nos servidores de e-mail
sem ser modificada
– ENCRYPTED:
• dados codificados, cifrados e garantia de autenticidade e integridade.
• O PEM calcula a assinatura e cifra a mensagem e a assinatura com uma chave
secreta escolhida aleatoriamente. A mensagem cifrada, a assinatura e a chave
são codificadas para passar nos servidores de e-mail como texto normal.
2008/09
José Alves Marques. João Barreto,
Ricardo Chaves
Departamento de Engenharia Informática
Exemplos PEM: MIC-CLEAR
From: Alice
To: Bob
Subject: Ola
Date: Sun April 1, 2007
-----BEGIN PRIVACY ENHANCED MESSAGE----Proc-Type: 4, MIC-CLEAR
Content-Type: RFC822
Originator-ID-Asymmetric: <certificate ID>
MIC-Info: RSA-MD5, RSA, <encoded MIC>
Ola Bob
Alice
-----END PRIVACY ENHANCED MESSAGE-----
2008/09
José Alves Marques. João Barreto,
Ricardo Chaves
47
Departamento de Engenharia Informática
Exemplos PEM: MIC-ONLY
From: Alice
To: Bob
Subject: Ola
Date: Sun April 1, 2007
-----BEGIN PRIVACY ENHANCED MESSAGE----Proc-Type: 4, MIC-ONLY
Content-Type: RFC822
Originator-ID-Asymmetric: <certificate ID>
MIC-Info: RSA-MD5, RSA, <encoded MIC>
<mensagem codificada Base 64>
-----END PRIVACY ENHANCED MESSAGE-----
2008/09
José Alves Marques. João Barreto,
Ricardo Chaves
Departamento de Engenharia Informática
Exemplos PEM: ENCRYPTED
From: Alice
To: Bob
Subject: Ola
Date: Sun April 1, 2007
-----BEGIN PRIVACY ENHANCED MESSAGE----Proc-Type: 4, ENCRYPTED
Content-Type: RFC822
DEK-Info: DES-CBC, IV
Originator-ID-Asymmetric: <Originator certificate ID>
Key-Info: RSA, <chave simetrica cifrada com chave publica da Alice>
MIC-Info: RSA-MD5, RSA, <MIC cifrado e base-64>
Recipient-ID-Asymmetric: <Recipient certificate ID>
Key-Info: RSA, <chave simetrica cifrada com chave publica do Bob>
<mensage cifrada com DES-CBC, codificada em base-64>
-----END PRIVACY ENHANCED MESSAGE-----
2008/09
José Alves Marques. João Barreto,
Ricardo Chaves
48
Departamento de Engenharia Informática
PEM vs. PGP
Item
PGP
PEM
Mensagem Cifrada?
Sim
Sim
Autenticação?
Sim
Sim
Compressão
Sim
Não
Algoritmo cifra
IDEA
DES
Confiança em entidades?
Não (web-of-trust)
Sim: IPRA
Revogação de Chaves
Difícil
Sim
Standard?
Não
Sim
Desenhado por
Investigadores
Comité de standards
2008/09
José Alves Marques. João Barreto,
Ricardo Chaves
Departamento de Engenharia Informática
Autenticação Básica do HTTP
Web Browser
Web Server
GET /protected/index.html HTTP/1.0
HTTP/1.0 401 Unauthorized
WWW-Authenticate: Basic realm = “Basic
Authentication Area”
Input password
GET /protected/index.html HTTP/1.0
Authorization: Basic
U2thdGVib2FyZFdhcmVob3VzZTp3c2Jvb2tleGFtcGx1
Codific. Base 64 de
“user:password”
HTTP/1.0 200
OK
2008/09
José Alves Marques. João Barreto,
Ricardo Chaves
49
Departamento de Engenharia Informática
Protocolo do SSL
SSL Client
I
•Handshake Start
•Client Random
•Supported Cipher Suites
•Supported Compression Algorithms
II
•Server Random
•Decided Cipher Suite
•Decided Compression Algorithm
•Server Certificate
•Server Public Key
III
• Client Certificate
• Client Public Key
•Encrypted Premaster Secret
•Handshake Finished
IV
encrypted and
compressed
• Handshake Finished
• Application Data
2008/09
José Alves Marques. João Barreto,
Ricardo Chaves
Departamento de Engenharia Informática
Canal seguro e os RPC
• Se a cifra para garantir o canal seguro for efectuada antes dos stubs
perde-se a sua capacidade de tratar a heterogeneidade
– Uma grande vantagem dos sistemas de RPC é tratar a heterogeneidade
automaticamente nas funções de adaptação - stub
• A cifra tem de ser feita depois
– Mas convém que seja dentro do mecanismo de RPC para garantir
segurança de extremo a extremo,
• O RPC pode ser baseado num canal SSL mas há limitações
importantes
• Se a mensagem SOAP tiver intermediários estes têm de receber parte
da informação mas não necessitam de a receber toda em aberto.
– Necessidade de cifrar apenas partes da mensagem.
• Nos Web Services os handlers foram pensados para permitir
implementar as funções de segurança na sequência certa
2008/09
José Alves Marques. João Barreto,
Ricardo Chaves
50

Documentos relacionados