conceitos básicos de criptografia -...

61
1 Page 1 Departamento de Engenharia Informática Conceitos básicos de criptografia Sistemas Distribuídos 2012/13 Departamento de Engenharia Informática Criptografia • A base da criptografia é conseguir que um grupo de pessoas transmita informação entre elas que seja ininteligível para todas as outras • Uma solução: ter um dialecto próprio – não é escalável, nem seguro. Melhor solução: algoritmo que cifra a informação que é conhecido e uma chave que parametriza o algoritmo, Algoritmo público, chave é segredo Análogo às fechaduras físicas... Sistemas Distribuídos 2012/13

Upload: lamphuc

Post on 03-Oct-2018

213 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Conceitos básicos de criptografia - disciplinas.ist.utl.ptdisciplinas.ist.utl.pt/~leic-sod.daemon/2012-2013-sem2/teoricas... · One-time pads • Substituição poli-alfabética

1

Page 1

Departamento de Engenharia Informática

Conceitos básicos de criptografia

Sistemas Distribuídos 2012/13

Departamento de Engenharia Informática

Criptografia

• A base da criptografia é conseguir que um grupo de pessoas transmita informação entre elas que seja ininteligível para todas as outras

• Uma solução: ter um dialecto próprio

– não é escalável, nem seguro.

• Melhor solução: – algoritmo que cifra a informação que é conhecido e uma chave que

parametriza o algoritmo,

– Algoritmo público, chave é segredo

– Análogo às fechaduras físicas...

Sistemas Distribuídos 2012/13

Page 2: Conceitos básicos de criptografia - disciplinas.ist.utl.ptdisciplinas.ist.utl.pt/~leic-sod.daemon/2012-2013-sem2/teoricas... · One-time pads • Substituição poli-alfabética

2

Page 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.

Sistemas Distribuídos 2012/13

Departamento de Engenharia Informática

Criptografia

Conceitos

• Algoritmo de cifra– Função injectivas– Parametrizadas por uma chave

• Algoritmo de decifra– As cifras são reversíveis apenas por quem possuir o algoritmo

inverso– Parametrizado por chave inversa

• NomenclaturaM � {M}K1 : cifra da mensagem M com a chave K1

é gerado um criptograma

Sistemas Distribuídos 2012/13

Page 3: Conceitos básicos de criptografia - disciplinas.ist.utl.ptdisciplinas.ist.utl.pt/~leic-sod.daemon/2012-2013-sem2/teoricas... · One-time pads • Substituição poli-alfabética

3

Page 3

Departamento de Engenharia Informática

Comunicação Cifrada (Modelo)

{P}K

Sistemas Distribuídos 2012/13

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

Sistemas Distribuídos 2012/13

Page 4: Conceitos básicos de criptografia - disciplinas.ist.utl.ptdisciplinas.ist.utl.pt/~leic-sod.daemon/2012-2013-sem2/teoricas... · One-time pads • Substituição poli-alfabética

4

Page 4

Departamento de Engenharia Informática

Criptografia Simétrica

Sistemas Distribuídos 2012/13

Departamento de Engenharia Informática

Cifra simétrica

• Substituição– Mono-alfabética

– Poli-alfabética

• Exemplo Mono-alfabético– Chave – troia

– Problema?

ABCDEFGHIJLMNOPQRSTUVXZ

TROIABCDEFGHJLMNPQSUVXZ

Sistemas Distribuídos 2012/13

Page 5: Conceitos básicos de criptografia - disciplinas.ist.utl.ptdisciplinas.ist.utl.pt/~leic-sod.daemon/2012-2013-sem2/teoricas... · One-time pads • Substituição poli-alfabética

5

Page 5

Departamento de Engenharia Informática

Cifra simétrica

• Objectivo

– Confundir – operações não destrutivas que permitam alterar o significado da mensagem em aberto misturando-o com a chave

– Difundir – fazer com que as alterações se difundam a toda a mensagem cifrada para não ser alvo de análise estatistica de padrões

• Operações usuais – XOR, Shift, permutação de bits

Sistemas Distribuídos 2012/13

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

– Difundir no criptograma a mensagem

• Exemplo: Tabelas de Vigenère

Sistemas Distribuídos 2012/13

Page 6: Conceitos básicos de criptografia - disciplinas.ist.utl.ptdisciplinas.ist.utl.pt/~leic-sod.daemon/2012-2013-sem2/teoricas... · One-time pads • Substituição poli-alfabética

6

Page 6

Departamento de Engenharia Informática

Sistemas Distribuídos 2012/13

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) :

– ATTACKATDAWN

• O cifrador escolhe a chave e repete-a até que tenha o tamanho da mensagem

– Vamos usar "LEMON": LEMONLEMONLE

• 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:

– ATTACKATDAWN

• Chave:– LEMONLEMONLE

• Mensagem Cifrada– LXFOPVEFRNHR

Sistemas Distribuídos 2012/13

Page 7: Conceitos básicos de criptografia - disciplinas.ist.utl.ptdisciplinas.ist.utl.pt/~leic-sod.daemon/2012-2013-sem2/teoricas... · One-time pads • Substituição poli-alfabética

7

Page 7

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

Sistemas Distribuídos 2012/13

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

Sistemas Distribuídos 2012/13

Page 8: Conceitos básicos de criptografia - disciplinas.ist.utl.ptdisciplinas.ist.utl.pt/~leic-sod.daemon/2012-2013-sem2/teoricas... · One-time pads • Substituição poli-alfabética

8

Page 8

Departamento de Engenharia Informática

Data Encription Standard - DES

• Blocos de 64 bits

• Aplica funções de permutação e substituição a cada bloco

• 16 etapas e duas permutações totais

• Chave de 56 bits, desdobrada em chaves de 48 bits para cada etapa

• Pode ser realizado em software ou em hardware

Sistemas Distribuídos 2012/13

Departamento de Engenharia Informática

DES

• Substituição, Permutação, Compressão e Expansão

Input (64)

P I

L0 R0

Li Ri

L1 R1

KS1

L16 R16

KS16

inverso PI

output (64)

Li-1 Ri-1

Ri

E + P

S-Box i

K (56)

[i] [i]

C + P

P-box

KSi

Sistemas Distribuídos 2012/13

Page 9: Conceitos básicos de criptografia - disciplinas.ist.utl.ptdisciplinas.ist.utl.pt/~leic-sod.daemon/2012-2013-sem2/teoricas... · One-time pads • Substituição poli-alfabética

9

Page 9

Departamento de Engenharia Informática

Algoritmo do DES

Entrada 64 bit

Etapa 1

Etapa 2

Etapa 16

64 bit saída

Permutação

Permutação

Chave de 56 bit

48-bit k1

48-bit k2

48-bit k16

A chave de 56 bits é usada

para criar as chaves de 48 bits

utilizadas em cada etapa

Sistemas Distribuídos 2012/13

Departamento de Engenharia Informática

Chave do DES

• Só há registos de quebra por teste sistemático da chave

• 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.

• [Kaufman95] considera que 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.

Sistemas Distribuídos 2012/13

Page 10: Conceitos básicos de criptografia - disciplinas.ist.utl.ptdisciplinas.ist.utl.pt/~leic-sod.daemon/2012-2013-sem2/teoricas... · One-time pads • Substituição poli-alfabética

10

Page 10

Departamento de Engenharia Informática

Chave do 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

• Em 2009 conseguia-se o mesmo em apenas 6 dias.

Sistemas Distribuídos 2012/13

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.

Sistemas Distribuídos 2012/13

Page 11: Conceitos básicos de criptografia - disciplinas.ist.utl.ptdisciplinas.ist.utl.pt/~leic-sod.daemon/2012-2013-sem2/teoricas... · One-time pads • Substituição poli-alfabética

11

Page 11

Departamento de Engenharia Informática

Exemplo de uma S-box

• Os 48 bits de cada etapa são transformados por 8 substituion boxes – S-Boxes

• Podem ser vistas como uma função com 6 bits de entrada e 4 de saída

• A representação interna da função é na forma de uma tabela que a partir de 4 bits de entrada escolhe com base em dois bits (4+2) um valor de saída de 4 bits

S5

Middle 4 bits of input

0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1100 1011 1100 1101 1110 1111

Outer bits

00 0010 1100 0100 0001 0111 1100 1011 0110 1000 0101 0011 1111 1101 0000 1110 1001

01 1110 1011 0010 1100 0100 0111 1101 0001 0101 0000 1111 1100 0011 1001 1000 0110

10 0100 0010 0001 1011 1100 1101 0111 1000 1111 1001 1100 0101 0110 0011 0000 1110

11 1011 1000 1100 0111 0001 1110 0010 1101 0110 1111 0000 1001 1100 0100 0101 0011

Sistemas Distribuídos 2012/13

Departamento de Engenharia Informática

Exemplo de cifra simétrica: TEA

• Algoritmo académico, pouco usado na prática

• Muito simples

• Razoavelmente rápido

Sistemas Distribuídos 2012/13

Page 12: Conceitos básicos de criptografia - disciplinas.ist.utl.ptdisciplinas.ist.utl.pt/~leic-sod.daemon/2012-2013-sem2/teoricas... · One-time pads • Substituição poli-alfabética

12

Page 12

Departamento de Engenharia Informática

Exemplo de cifra simétrica: TEA

void encrypt(unsigned long k[], unsigned long text[]) {

unsigned long y = text[0], z = text[1]; 1

unsigned long delta = 0x9e3779b9, sum = 0; int n; 2

for (n= 0; n < 32; n++) { 3

sum += delta; 4

y += ((z << 4) + k[0]) ^ (z+sum) ^ ((z >> 5) + k[1]); 5

z += ((y << 4) + k[2]) ^ (y+sum) ^ ((y >> 5) + k[3]); 6

}

text[0] = y; text[1] = z; 7

}32 etapas.

Técnicas base:shift de bits, XOR, soma,dependentes da chave k

Sistemas Distribuídos 2012/13

Departamento de Engenharia Informática

Exemplo de cifra simétrica: TEA

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;

}

Sistemas Distribuídos 2012/13

Page 13: Conceitos básicos de criptografia - disciplinas.ist.utl.ptdisciplinas.ist.utl.pt/~leic-sod.daemon/2012-2013-sem2/teoricas... · One-time pads • Substituição poli-alfabética

13

Page 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)

Sistemas Distribuídos 2012/13

Departamento de Engenharia Informática

Algoritmos de Cifra Simétrica

• DES

• Triple DES

• RC4

• RC5

• IDEA

• Blowfish

• AES – Advanced Encription Standard – norma dos EUA com chaves de 128, 196 e 256 bits

Sistemas Distribuídos 2012/13

Page 14: Conceitos básicos de criptografia - disciplinas.ist.utl.ptdisciplinas.ist.utl.pt/~leic-sod.daemon/2012-2013-sem2/teoricas... · One-time pads • Substituição poli-alfabética

14

Page 14

Departamento de Engenharia Informática

Algoritmos de Cifra Simétrica (Comp.)

• Rijndael - Advanced Encryption Standard (AES)

• Fonte: Computer Networks, Andrew Tanenbaum

Sistemas Distribuídos 2012/13

Departamento de Engenharia Informática

Criptografia Assimétrica

Sistemas Distribuídos 2012/13

Page 15: Conceitos básicos de criptografia - disciplinas.ist.utl.ptdisciplinas.ist.utl.pt/~leic-sod.daemon/2012-2013-sem2/teoricas... · One-time pads • Substituição poli-alfabética

15

Page 15

Departamento de Engenharia Informática

Funções injectivas

Aritmética Modular da Multiplicação

0 1 2 3 4 5 6 7 8 9

0 0 0 0 0 0 0 0 0 0 0

1 0 1 2 3 4 5 6 7 8 9

2 0 2 4 6 8 0 2 4 6 8

3 0 3 6 9 2 5 8 1 4 7

4 0 4 8 2 6 0 4 8 2 6

5 0 5 0 5 0 5 0 5 0 5

6 0 6 2 8 4 0 6 2 8 4

7 0 7 4 1 8 5 2 9 6 3

8 0 8 6 4 2 0 8 6 4 2

9 0 9 8 7 6 5 4 3 2 1

O inverso

multiplicativo é a

solução da equação:

Y*Y-1 mod N = 1

N=10

X*Y mod N

XY

Exemplo:Y=3, Y-1=7

Para cifrar T=9:C = 9*3 mod 10 = 7

Para decifrar C=7:T = 7*7 mod 10 = 9

Sistemas Distribuídos 2012/13

Departamento de Engenharia Informática

Algoritmos de cifra assimétrica

• RSA

• DSS – baseado ElGamal

• Curvas elípticas

Sistemas Distribuídos 2012/13

Page 16: Conceitos básicos de criptografia - disciplinas.ist.utl.ptdisciplinas.ist.utl.pt/~leic-sod.daemon/2012-2013-sem2/teoricas... · One-time pads • Substituição poli-alfabética

16

Page 16

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

Sistemas Distribuídos 2012/13

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 coprimos com Z tais que Kp*Ks = 1 mod Z

Sistemas Distribuídos 2012/13

Page 17: Conceitos básicos de criptografia - disciplinas.ist.utl.ptdisciplinas.ist.utl.pt/~leic-sod.daemon/2012-2013-sem2/teoricas... · One-time pads • Substituição poli-alfabética

17

Page 17

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 = 13, Q = 17:

– N = P * Q = 13 x 17 = 221

– Z = (P - 1)*(Q - 1) = 12 x 16 = 192

2 - A chave Kp é um número co-primo com Z.

Neste caso, Z = 2*2*2*2*2*2*3, pelo que podemos escolher Kp = 5

3 - Para calcular Ks é necessário resolver a equação Kp* Ks = 1 mod Z,

– Ks *5= 1 mod 192

– Ks * 5 = 1, 193, 385, …

– Ks = 385:5 = 77

Sistemas Distribuídos 2012/13

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

Sistemas Distribuídos 2012/13

Page 18: Conceitos básicos de criptografia - disciplinas.ist.utl.ptdisciplinas.ist.utl.pt/~leic-sod.daemon/2012-2013-sem2/teoricas... · One-time pads • Substituição poli-alfabética

18

Page 18

Departamento de Engenharia Informática

Cifra/Decifra em RSA

• Cifra por blocos de dimensão k, em que 2k < N

– No nosso exemplo, k=7

• Para cifrar mensagem em claro M:

{M}Kp = MKp mod N

• Para decifrar mensagem cifrada C:

{C}Ks = CKs mod N

Sistemas Distribuídos 2012/13

Departamento de Engenharia Informática

Quebrar a chave privada sabendo

a chave pública?

• Se atacante sabe Kp e N, como consegue descobrir a chave privada?– Para saber Ks é preciso saber Z

• (ver slides de geração de chaves)

– Para saber Z é preciso saber os dois números primos P e Q tal que PxQ=N

• Este problema é considerado demasiado difícil• Se N > 10200, em 1978, Rivest considerava que para

computadores que executassem 1 MIPS levariam 4 mil milhões de anos

• Mas houve continua evolução dos computadores e dos métodos de cálculo…

Sistemas Distribuídos 2012/13

Page 19: Conceitos básicos de criptografia - disciplinas.ist.utl.ptdisciplinas.ist.utl.pt/~leic-sod.daemon/2012-2013-sem2/teoricas... · One-time pads • Substituição poli-alfabética

19

Page 19

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 curto-prazo

– Computador quântico (se algum dia vier a existir) quebra chave RSA facilmente (tempo polinomial)

• Usando Algoritmo de Shor

Sistemas Distribuídos 2012/13

Departamento de Engenharia Informática

Comparação cifra assimétrica

• As of 2003 RSA Security claims that – 1024-bit RSA keys are equivalent in strength to 80-bit symmetric keys, – 2048-bit RSA keys to 112-bit symmetric keys– 3072-bit RSA keys to 128-bit symmetric keys.

• RSA claims that:– 1024-bit keys are likely to become crackable some time between 2006 and 2010 – 2048-bit keys are sufficient until 2030. – key length of 3072 bits should be used if security is required beyond 2030.

• NIST key management guidelines – suggest that 15360-bit RSA keys are equivalent in strength to 256-bit symmetric

keys.

• elliptic curve cryptography, or ECC, appears to be secure with shorter keys than those needed by other asymmetric key algorithms. NIST guidelines state that ECC keys should be twice the length of equivalent strength symmetric key algorithms. So, for example, a 224-bit ECC key would have roughly the same strength as a 112-bit symmetric key.

Sistemas Distribuídos 2012/13

Page 20: Conceitos básicos de criptografia - disciplinas.ist.utl.ptdisciplinas.ist.utl.pt/~leic-sod.daemon/2012-2013-sem2/teoricas... · One-time pads • Substituição poli-alfabética

20

Page 20

Departamento de Engenharia Informática

Segurança do RSA (2)

Sistemas Distribuídos 2012/13

Departamento de Engenharia Informática

Considerações genéricas sobre

utilização de

algoritmos de criptografia

Sistemas Distribuídos 2012/13

Page 21: Conceitos básicos de criptografia - disciplinas.ist.utl.ptdisciplinas.ist.utl.pt/~leic-sod.daemon/2012-2013-sem2/teoricas... · One-time pads • Substituição poli-alfabética

21

Page 21

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.

Sistemas Distribuídos 2012/13

Departamento de Engenharia Informática

Métodos genéricos de ataque

a funções de cifra

• Dependem de em que situação o atacante estáa) Só tem acesso a mensagens cifradas

b) Tem acesso a amostras de um texto em claro e cifrado

c) A partir de qualquer texto original, pode gerar o cifrado

• Nos dois últimos, ataque exaustivo (brute-force) é sempre possível– Atacante itera todas as chaves possíveis até que cifra do texto

original resulte no cifrado

• Em c), caso a mensagem cifrada seja pequena, é também possível o chosen plaintext attack

– Quando mensagem cifrada C é pequena, itera-se todas as mensagens M até se obter C

Em qual se encontracifra assimétrica?

Como prevenir?

Como prevenir?Sistemas Distribuídos 2012/13

Page 22: Conceitos básicos de criptografia - disciplinas.ist.utl.ptdisciplinas.ist.utl.pt/~leic-sod.daemon/2012-2013-sem2/teoricas... · One-time pads • Substituição poli-alfabética

22

Page 22

Departamento de Engenharia Informática

Cifra híbrida (ou mista)

• Os algoritmos de cifra assimétrica são computacionalmente mais complexos que cifra simétrica

– 100 a 1000 vezes mais lentos

• Mas a distribuição da chave pública é mais prática que a chave secreta

• Como conseguir o melhor dos dois mundos?

• Cifras híbridas

– Gera-se chave secreta, chamada chave de sessão

– Usa-se cifra assimétrica para trocar apenas uma chave secreta

– Usa-se cifra simétrica e a chave secreta para os restantes dados

Sistemas Distribuídos 2012/13

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?

Sistemas Distribuídos 2012/13

Page 23: Conceitos básicos de criptografia - disciplinas.ist.utl.ptdisciplinas.ist.utl.pt/~leic-sod.daemon/2012-2013-sem2/teoricas... · One-time pads • Substituição poli-alfabética

23

Page 23

Departamento de Engenharia Informática

Criptografia:

Classificação das cifras

• Segundo o modelo de operação – Por blocos (todas as que vimos até agora excepto One-time Pad)

• Facilita a análise

– Contínuas (stream)

• Cifra de um bloco depende dos blocos anteriores

• Necessita mecanismo de inicialização

EKP C DK P

Sistemas Distribuídos 2012/13

Departamento de Engenharia Informática

Por Blocos versus Contínuas: Exemplo

Original Cifra Por Bloco Cifra Contínua

Fonte: Wikipedia

Sistemas Distribuídos 2012/13

Page 24: Conceitos básicos de criptografia - disciplinas.ist.utl.ptdisciplinas.ist.utl.pt/~leic-sod.daemon/2012-2013-sem2/teoricas... · One-time pads • Substituição poli-alfabética

24

Page 24

Departamento de Engenharia Informática

Modos de cifra

• Inicialmente apresentados para o DES

– ECB (Electronic Code Book)

– CBC (Cipher Block Chaining)

– Stream Cipher

• Podem ser usados por outras cifras por blocos

Sistemas Distribuídos 2012/13

Departamento de Engenharia Informática

Modos de cifra:

ECB vs CBC

Electronic Code Book

Ci = EK(Ti)

Ti = DK(Ci)

Cipher Block Chaining

Ci = EK(Ti ⊕ Ci-1)

Ti = DK(Ci ) ⊕ Ci-1

T1 T2 Tn

C1 C2 Cn

EK EK EK EK

DK DK DK DK

T1 T2 Tn

T1 T2 Tn-1 Tn

C1 C2 Cn-1 Cn

EK EK EK EK EK

T1 T2 Tn-1 Tn

DK DK DK DK DK

IV

IV

Se Ci se perde narede, conseguedecifrar Ci+1?

CBC também pode ser usado com cifra

assimétrica

Sistemas Distribuídos 2012/13

Page 25: Conceitos básicos de criptografia - disciplinas.ist.utl.ptdisciplinas.ist.utl.pt/~leic-sod.daemon/2012-2013-sem2/teoricas... · One-time pads • Substituição poli-alfabética

25

Page 25

Departamento de Engenharia Informática

CBC (outra maneira de o entender)

n

n+3 n+2 n+1 XOR

E(K, M)

n-1n-2n-3

plaintext blocks

ciphertext blocks

Sistemas Distribuídos 2012/13

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))

Ciphertext Feedback

Ci = Ti ⊕ EK(Si)

Ti = Ci ⊕ EK(Si)

Si = f(Si-1, Ci)

Sistemas Distribuídos 2012/13

Page 26: Conceitos básicos de criptografia - disciplinas.ist.utl.ptdisciplinas.ist.utl.pt/~leic-sod.daemon/2012-2013-sem2/teoricas... · One-time pads • Substituição poli-alfabética

26

Page 26

Departamento de Engenharia Informática

Modos de cifra:

Stream Cipher

XOR

E(K, M)number generator n+3 n+2 n+1

plaintext stream

ciphertext stream

buffer

keystream

Se Ci se perde narede, conseguimosdecifrar restantes?

Semelhança com outro algoritmo de

Cifra?

Sistemas Distribuídos 2012/13

Departamento de Engenharia Informática

A Informação como um Bem

• Integridade da Informação

• Confidencialidade/Privacidade da informação– Ex.: Pessoal, Médica, relação com o Governo

• Identidade – não se efectuarem acções em nome de outro

• Anonimato – realizar acções que são autenticadas mas em que não se deve conhecer a identidade (ex.: votações)

• Disponibilidade dos serviços que permitem aceder a informação

Sistemas Distribuídos 2009/10Sistemas Distribuídos 2012/13

Page 27: Conceitos básicos de criptografia - disciplinas.ist.utl.ptdisciplinas.ist.utl.pt/~leic-sod.daemon/2012-2013-sem2/teoricas... · One-time pads • Substituição poli-alfabética

27

Page 27

Departamento de Engenharia Informática

Assinatura Digital

Autenticação e Integridade da Informação

Sistemas Distribuídos 2012/13

Departamento de Engenharia Informática

Assinaturas digitais

• 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

Sistemas Distribuídos 2012/13

Page 28: Conceitos básicos de criptografia - disciplinas.ist.utl.ptdisciplinas.ist.utl.pt/~leic-sod.daemon/2012-2013-sem2/teoricas... · One-time pads • Substituição poli-alfabética

28

Page 28

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

Sistemas Distribuídos 2012/13

Departamento de Engenharia Informática

Assinatura Digital

{h}Kpri

M

Signing

Verifying

E(Kpri, h)

128 bits

H(M) h

M

hH(doc)

D(Kpub ,{h}) {h}Kpri h'

h = h'?

M

signed doc

Sistemas Distribuídos 2012/13

Page 29: Conceitos básicos de criptografia - disciplinas.ist.utl.ptdisciplinas.ist.utl.pt/~leic-sod.daemon/2012-2013-sem2/teoricas... · One-time pads • Substituição poli-alfabética

29

Page 29

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:– Eficiente – dado P é fácil calcular H(P)

– Não-invertível – dado H(P) é difícil determinar P’ tal que H(P’) = H(P)

– Difícil encontrar P1, P2 tais que H(P1) = H(P2)• Esta situação é chamada uma colisão

Sistemas Distribuídos 2012/13

Departamento de Engenharia Informática

Funções de Hash não invertíveis

• As funções de hash não invertíveis têm como objectivo criar um resumo único semelhante a uma impressão digital de um conteúdo digital muito mais extenso

• As funções produzem um resumo de algumas dezenas de bytes a partir dos dados originais

• São não invertíveis porque é computacionalmente impossível reconstruir o conteúdo original a partir do resumo.

• A probabilidade de colisão (dois textos diferentes produzirem a mesma assinatura) deve ser mínima.

• Mudanças pequenas no texto devem produzir resumo muito diferentes (valores de hash estão distribuídos uniformemente)

Sistemas Distribuídos 2012/13

Page 30: Conceitos básicos de criptografia - disciplinas.ist.utl.ptdisciplinas.ist.utl.pt/~leic-sod.daemon/2012-2013-sem2/teoricas... · One-time pads • Substituição poli-alfabética

30

Page 30

Departamento de Engenharia Informática

Porque é que deve ser difícil encontrar

colisões?

Se não, seria fácil forjar assinaturas digitais.

Como?

Sistemas Distribuídos 2012/13

Departamento de Engenharia Informática

Paradoxo do Aniversário

• Quantas operações são necessárias para encontrar uma colisão num resumo 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)

Sistemas Distribuídos 2012/13

Page 31: Conceitos básicos de criptografia - disciplinas.ist.utl.ptdisciplinas.ist.utl.pt/~leic-sod.daemon/2012-2013-sem2/teoricas... · One-time pads • Substituição poli-alfabética

31

Page 31

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

Sistemas Distribuídos 2012/13

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

B pede ao servidor de autenticação a chave pública de A.

3. SAUT -> B: A, KpA

4. B: calcula D(I)

5. B: 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.

Sistemas Distribuídos 2012/13

Page 32: Conceitos básicos de criptografia - disciplinas.ist.utl.ptdisciplinas.ist.utl.pt/~leic-sod.daemon/2012-2013-sem2/teoricas... · One-time pads • Substituição poli-alfabética

32

Page 32

Departamento de Engenharia Informática

MACs: Assinaturas low-cost

• Funções de hash muito mais rápidas que as funções de cifra

• Interessante ter método de assinatura digital que não implicasse cifra

…Como?

• Assumindo que interlocutores partilham segredo K é possível

– Por exemplo, K pode ser chave de sessão em cifra híbrida

Sistemas Distribuídos 2012/13

Departamento de Engenharia Informática

MACs: Assinaturas low-costM

Signing

Verifying

H(M+K) h

h'H(M+K)

h

h = h'?

K

M

signed doc

M

K

Sistemas Distribuídos 2012/13

Page 33: Conceitos básicos de criptografia - disciplinas.ist.utl.ptdisciplinas.ist.utl.pt/~leic-sod.daemon/2012-2013-sem2/teoricas... · One-time pads • Substituição poli-alfabética

33

Page 33

Departamento de Engenharia Informática

MACs: Discussão

• Quem pode validar mensagens assinadas?

• Que requisitos são assegurados?

– Autenticidade dentro do grupo conhecedor de K e Integridade

Sistemas Distribuídos 2012/13

Departamento de Engenharia Informática

Distribuição e gestão de chaves

Sistemas Distribuídos 2012/13

Page 34: Conceitos básicos de criptografia - disciplinas.ist.utl.ptdisciplinas.ist.utl.pt/~leic-sod.daemon/2012-2013-sem2/teoricas... · One-time pads • Substituição poli-alfabética

34

Page 34

Departamento de Engenharia Informática

Distribuição e gestão de chaves

Cifras simétricas

Há que divulgar um valor secreto a

um conjunto limitado 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 a

troca de informação com

um atacante

Sistemas Distribuídos 2012/13

Departamento de Engenharia Informática

Man-in-the-middle

Exemplo com um sistema de chave assimétrica

Sistemas Distribuídos 2012/13

Page 35: Conceitos básicos de criptografia - disciplinas.ist.utl.ptdisciplinas.ist.utl.pt/~leic-sod.daemon/2012-2013-sem2/teoricas... · One-time pads • Substituição poli-alfabética

35

Page 35

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

• Algoritmo de chave assimétrica

• Baseia-se na dificuldade computacional de efectuar logaritmos de grandes números.

Sistemas Distribuídos 2012/13

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:

1. TA = gx mod n2. 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.

5. 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 aritmética modularSistemas Distribuídos 2012/13

Page 36: Conceitos básicos de criptografia - disciplinas.ist.utl.ptdisciplinas.ist.utl.pt/~leic-sod.daemon/2012-2013-sem2/teoricas... · One-time pads • Substituição poli-alfabética

36

Page 36

Departamento de Engenharia Informática

Man-in-the-Middle

Ataque também designado por bucket brigade

Sistemas Distribuídos 2012/13

Departamento de Engenharia Informática

Ataque de man-in-the-middle com chave

assimétrica

• O agente A cria um par de chaves de cifra assimétrica

• Publica a sua chave KpA num servidor de nomes

• O atacante I consegue substituir a chave por KpI

e o endereços dos serviços pelo seu endereço

• Quando o agente B utilizar o servidor de nomes poderá:– Estabelecer um canal confidencial com I pensando

que é A

– Validar assinaturas de A forjadas por I

Sistemas Distribuídos 2012/13

Page 37: Conceitos básicos de criptografia - disciplinas.ist.utl.ptdisciplinas.ist.utl.pt/~leic-sod.daemon/2012-2013-sem2/teoricas... · One-time pads • Substituição poli-alfabética

37

Page 37

Departamento de Engenharia Informática

• Estes problemas só se resolvem com entidades que garantam que as chaves utilizadas são realmente as produzidas pelos agentes

Sistemas Distribuídos 2012/13

Departamento de Engenharia Informática

Autenticação

Sistemas Distribuídos 2012/13

Page 38: Conceitos básicos de criptografia - disciplinas.ist.utl.ptdisciplinas.ist.utl.pt/~leic-sod.daemon/2012-2013-sem2/teoricas... · One-time pads • Substituição poli-alfabética

38

Page 38

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

Sistemas Distribuídos 2012/13

Departamento de Engenharia Informática

Protocolo Simples de Autenticação

O segredo neste caso é a chave Kcs

– poderia ser obtida por um hash da password, um segredo entre o C e o S

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.

1) C ->S: “Iniciar Sessão”

2) S ->C: D

3) C ->S: {D}Kcs

Sistemas Distribuídos 2012/13

Page 39: Conceitos básicos de criptografia - disciplinas.ist.utl.ptdisciplinas.ist.utl.pt/~leic-sod.daemon/2012-2013-sem2/teoricas... · One-time pads • Substituição poli-alfabética

39

Page 39

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.

Sistemas Distribuídos 2012/13

Departamento de Engenharia Informática

Protocolo de Needham-Schroeder – criptografia

assimétrica

3: C -> S: {Nc, C} Kps

• 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: C,S5: Saut -> 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 : { Nc, Ns, }Kpc7: C -> S: { Ns }Kps

Sistemas Distribuídos 2012/13

Page 40: Conceitos básicos de criptografia - disciplinas.ist.utl.ptdisciplinas.ist.utl.pt/~leic-sod.daemon/2012-2013-sem2/teoricas... · One-time pads • Substituição poli-alfabética

40

Page 40

Departamento de Engenharia Informática

Protocolo de Needham-Schroeder – criptografia

assimétrica

3: C -> S: {Nc, C} Kps

• 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: C,S5: Saut -> 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 : { Nc, Ns, S}Kpc7: C -> S: { Ns }Kps

S evita o ataque man-in-the-middlefoi sugerido como uma evolução por

Lowe

Sistemas Distribuídos 2012/13

Departamento de Engenharia Informática

• Necessidade de carimbos temporais para evitar a reutilização das mensagens

Sistemas Distribuídos 2012/13

Page 41: Conceitos básicos de criptografia - disciplinas.ist.utl.ptdisciplinas.ist.utl.pt/~leic-sod.daemon/2012-2013-sem2/teoricas... · One-time pads • Substituição poli-alfabética

41

Page 41

Departamento de Engenharia Informática

Sistemas Distribuídos 2012/13

Protocolo de Needham-Schroeder-Lowe

criptografia assimétrica

C

S

Saut

C, S

{KpS, S} K s Saut

{ NC, C } K PS

Saut

S,C

{NC, NS, S} KPC

{NS} KPS

{KpC, C} KSaut

Departamento de Engenharia Informática

Certificados de chaves públicas

• 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

Sistemas Distribuídos 2012/13

Page 42: Conceitos básicos de criptografia - disciplinas.ist.utl.ptdisciplinas.ist.utl.pt/~leic-sod.daemon/2012-2013-sem2/teoricas... · One-time pads • Substituição poli-alfabética

42

Page 42

Departamento de Engenharia Informática

Formato do Certificado X509

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

Sistemas Distribuídos 2012/13

Departamento de Engenharia Informática

Sistemas Distribuídos 2012/13

Page 43: Conceitos básicos de criptografia - disciplinas.ist.utl.ptdisciplinas.ist.utl.pt/~leic-sod.daemon/2012-2013-sem2/teoricas... · One-time pads • Substituição poli-alfabética

43

Page 43

Departamento de Engenharia Informática

Public Key Infrastructure (PKI)

• Infra-estrutura de apoio ao sistema de Chaves-públicas

– Criação segura de pares de chaves assimétricas

– Criação e distribuição de certificados de chaves-pú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?

Sistemas Distribuídos 2012/13

Departamento de Engenharia Informática

Certificados e Assinaturas Digitais

• Validação de assinaturas digitais

• Sensível à correcção das chaves públicas

– Têm de ser as obtidas de forma segura -> certificados

– Têm que estar ainda em uso e não serem revogadas – black list

Sistemas Distribuídos 2012/13

Page 44: Conceitos básicos de criptografia - disciplinas.ist.utl.ptdisciplinas.ist.utl.pt/~leic-sod.daemon/2012-2013-sem2/teoricas... · One-time pads • Substituição poli-alfabética

44

Page 44

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

Sistemas Distribuídos 2012/13

Departamento de Engenharia Informática

Funcionamento

PKI

1 – funcionamento offline

1

Sistemas Distribuídos 2012/13

Page 45: Conceitos básicos de criptografia - disciplinas.ist.utl.ptdisciplinas.ist.utl.pt/~leic-sod.daemon/2012-2013-sem2/teoricas... · One-time pads • Substituição poli-alfabética

45

Page 45

Departamento de Engenharia Informática

Autenticação com chave simétrica

Evolução do protocolo de needham-schroder -> kerberos

Sistemas Distribuídos 2012/13

Departamento de Engenharia Informática

• Em cifra simétrica o problema principal é a partilha da chave

• Se o protocolo se basear em chaves apenas conhecidas do agente e de uma autoridade de distribuição de chaves (KDS) podemos controlar a partilha do segredo

Sistemas Distribuídos 2012/13

Page 46: Conceitos básicos de criptografia - disciplinas.ist.utl.ptdisciplinas.ist.utl.pt/~leic-sod.daemon/2012-2013-sem2/teoricas... · One-time pads • Substituição poli-alfabética

46

Page 46

Departamento de Engenharia Informática

Distribuição de Chaves e Autenticação

S1

S2

S3

K12

K12K23

K23

K13

K13

{M}K12

Distribuição correcta de pares de chaves secretas autentica o emissor da mensagem!

Novo servidor: implica avisar todos os outros servidores

Chaves de longa duração usadas sempre: mau uso!

Chaves previamente distribuídas “fora-de-banda”

Sistemas Distribuídos 2012/13

Departamento de Engenharia Informática

Protocolo de Needham-Schroeder –

criptografia simétrica

C

S

Saut

C, S, Nc

{Nc ,S, Kcs, {Kcs, C}Ks}Kc

{Kcs, C}Ks

{Ns}Kcs

{Ns-1}Kcs

C S Saut

C

S Kcs

Saut Kc Ks

Pode ser alvo de Replay Attackse atacante descobrir KCS e enviar esta mensagem para S

Sistemas Distribuídos 2012/13

Page 47: Conceitos básicos de criptografia - disciplinas.ist.utl.ptdisciplinas.ist.utl.pt/~leic-sod.daemon/2012-2013-sem2/teoricas... · One-time pads • Substituição poli-alfabética

47

Page 47

Departamento de Engenharia Informática

Autenticação: Kerberos

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

ClienteServidor

AutenticaçãoTicket

Granting Service

Kerberos

Identificação(login)

Pedido de acesso aoservidor

Execução dasoperações

1)

2)

3)

4)

5)

6)

Sistemas Distribuídos 2012/13

Departamento de Engenharia Informática

Autenticação : Kerberos (Simplificado)

C

S

Saut

C S Saut

C

S Kc,s

Saut Kc KS

ticketx,y = {x, y, T1, T2, Kx,y}Ky

authx,y = {x, Treq}Kx,y

C, S, n

{Kc,s, n}Kc, ticketc,s

login

{Treq, resposta}Kc,s

ticketc,s, authc,s, pedido, Treq

acesso a S

Timestamps reais para evitar re-utilização de tickets antigos (implica relógios sincronizados)

Autenticador: para evitar re-envio de pedidos antigos(implica relógios sincronizados)

Sistemas Distribuídos 2012/13

Page 48: Conceitos básicos de criptografia - disciplinas.ist.utl.ptdisciplinas.ist.utl.pt/~leic-sod.daemon/2012-2013-sem2/teoricas... · One-time pads • Substituição poli-alfabética

48

Page 48

Departamento de Engenharia Informática

Arquitectura Kerberos (completo)

ServerClient

DoOperation

Authenticationdatabase

Loginsession setup

Ticket-grantingservice T

Kerberos Key Distribution Centre

Serversession setup

Authen-tication

service A1. Request for

TGS ticket

2. TGSticket

3. Request forserver ticket

4. Server ticket5. Service

request

Request encrypted with session key

Reply encrypted with session key

Servicefunction

Step B

Step A

Step C

C S

Sistemas Distribuídos 2012/13

Departamento de Engenharia Informática

Autenticação : Kerberos (V5)

C S TGS Saut

C

S Kc,s

TGS Kc,tgs Ks

Saut Kc Ktgs

ticketx,y = {x, y, T1, T2, Kx,y}Ky

authx,y = {x, Treq}Kx,y

C

S

Saut

TGS

C, TGS, n

{Kc,tgs, n }Kc , ticketc,tgs

login

ticketc,tgs, authc,tgs, S, n2

{Kc,s, n2 }Kc,tgs, ticketc,s

{Treq, resposta}Kc,s

ticketc,s, authc,s, pedido, Treq

acesso a S

Porquê a separação Saut/TGS?

pedido de

acesso a S

Sistemas Distribuídos 2012/13

Page 49: Conceitos básicos de criptografia - disciplinas.ist.utl.ptdisciplinas.ist.utl.pt/~leic-sod.daemon/2012-2013-sem2/teoricas... · One-time pads • Substituição poli-alfabética

49

Page 49

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

Sistemas Distribuídos 2012/13

Departamento de Engenharia Informática

Sistemas Distribuídos

Autorização

Sistemas Distribuídos 2012/13

Page 50: Conceitos básicos de criptografia - disciplinas.ist.utl.ptdisciplinas.ist.utl.pt/~leic-sod.daemon/2012-2013-sem2/teoricas... · One-time pads • Substituição poli-alfabética

50

Page 50

Departamento de Engenharia Informática

Controlo de direitos de acesso

• Modelo conceptual– Os objectos são protegidos por um monitor de controlo de

referências

– Cada agente, antes de poder efectuar um acção sobre um objecto, tem que pedir autorização ao monitor

– O monitor verifica se o agente está ou não autorizado através de uma matriz de direitos acesso

Sistemas Distribuídos 2012/13

Departamento de Engenharia Informática

Controlo dos Direitos de Acesso

• Um Monitor de Controlo de Referências valida quando uma operação é efectuada se o agente tem direito de a executar.

– Os objectos só podem ser acedidos através do monitor de controlo de referências;

– Os objectos têm de ser univocamente identificados e o identificador não pode ser reutilizado sem precauções adicionais.

– Num sistema multiprogramado a informação relativa à matriz é mantida dentro do espaço de isolamento do núcleo.

– Esta situação é, obviamente, diferente numa rede

• Os ataques a esta política visam essencialmente subverter o isolamento entre os agentes mais que procurar alterar a matriz ou eliminar o controlo do monitor de controlo de referências.

Sistemas Distribuídos 2012/13

Page 51: Conceitos básicos de criptografia - disciplinas.ist.utl.ptdisciplinas.ist.utl.pt/~leic-sod.daemon/2012-2013-sem2/teoricas... · One-time pads • Substituição poli-alfabética

51

Page 51

Departamento de Engenharia Informática

Matriz de direitos de acesso

• 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

Objectos

Agentes O1 O2 O3 O4

A1 R RW RX ---

A2 RX --- RW R

Sistemas Distribuídos 2012/13

Departamento de Engenharia Informática

ACLs vs Capacidades

• Capacidades permitem descentralizar autorização

– Servidor analisa a capacidade enviada no pedido para determinar se cliente tem direito ao que pede

– Não é necessário contactar nenhuma entidade centralizada que armazena ACLs

• Também suportam delegação facilmente

• Capacidade análoga a uma chave do mundo real

• E tem limitações análogas:

– Pode ser roubada

– Revogar acesso a alguém que tem a chave é difícil

Como lidar com isto?

Sistemas Distribuídos 2012/13

Page 52: Conceitos básicos de criptografia - disciplinas.ist.utl.ptdisciplinas.ist.utl.pt/~leic-sod.daemon/2012-2013-sem2/teoricas... · One-time pads • Substituição poli-alfabética

52

Page 52

Departamento de Engenharia Informática

Controlo dos Direitos de Acesso

• O Monitor de Controlo de Referênciavalida se o agente tem direito de a executar a operação.

• Duas opções:– A informação relativa à matriz é mantida

dentro do espaço de endereçamento do servidor que se supõe seguro - ACL

– É enviada uma capacidade de cada vez que o cliente pretende utilizar o objecto. Capacidade: Ticket ou Certificado de autenticação + direitos

Sistemas Distribuídos 2012/13

Departamento de Engenharia Informática

Amoeba

• Sistema operativo distribuído baseado num micro-núcleo

• Capacidades para autenticação e autorização

• As capacidades são armazenadas no espaço de endereçamento dos utilizadores.

• Cifra para proteger os campos de direitos.

• Mecanismos para permitir revogar direitos.

Sistemas Distribuídos 2012/13

Page 53: Conceitos básicos de criptografia - disciplinas.ist.utl.ptdisciplinas.ist.utl.pt/~leic-sod.daemon/2012-2013-sem2/teoricas... · One-time pads • Substituição poli-alfabética

53

Page 53

Departamento de Engenharia Informática

Amoeba: Estrutura das capacidades

As capacidades são constituídas por quatro campos:1 – Porto do servidor que gere o objecto: 48 bits2 – Número do objecto ( só com significado para o servidor): 24 bits3 – Direitos sobre o objecto ( 1 bit por cada operação): 8 bits4 – Número aleatório (usado para protecção das capacidades) : 48 bits

Cifra da capacidade para garantir que não é modificada. Problema como modificar os direitos

Porto do

Servidor

Numero do

Objecto

Direitos Campo de verificação

48 bits 24 bits 8 bits 48 bits

Sistemas Distribuídos 2012/13

Departamento de Engenharia Informática

Canal de Comunicação Seguro

Sistemas Distribuídos 2012/13

Page 54: Conceitos básicos de criptografia - disciplinas.ist.utl.ptdisciplinas.ist.utl.pt/~leic-sod.daemon/2012-2013-sem2/teoricas... · One-time pads • Substituição poli-alfabética

54

Page 54

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

Sistemas Distribuídos 2012/13

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

Sistemas Distribuídos 2012/13

Page 55: Conceitos básicos de criptografia - disciplinas.ist.utl.ptdisciplinas.ist.utl.pt/~leic-sod.daemon/2012-2013-sem2/teoricas... · One-time pads • Substituição poli-alfabética

55

Page 55

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

Sistemas Distribuídos 2012/13

Departamento de Engenharia Informática

Caso de estudo: TLS/SSL

(base do HTTPS)

Sistemas Distribuídos 2012/13

Page 56: Conceitos básicos de criptografia - disciplinas.ist.utl.ptdisciplinas.ist.utl.pt/~leic-sod.daemon/2012-2013-sem2/teoricas... · One-time pads • Substituição poli-alfabética

56

Page 56

Departamento de Engenharia Informática

SSL protocol stack

SSL

Handshakeprotocol

SSL ChangeCipher Spec

SSL AlertProtocol

Transport layer (usually TCP)

Network layer (usually IP)

SSL Record Protocol

HTTP Telnet

SSL protocols: Other protocols:

Sistemas Distribuídos 2012/13

Departamento de Engenharia Informática

TLS handshake protocol

Client Server

ClientHello

ServerHello

Certificate

Certificate Request

ServerHelloDone

Certificate

Certificate Verify

Change Cipher Spec

Finished

Change Cipher Spec

Finished

Establish protocol version, session ID,

cipher suite, compression method,

exchange random values

Optionally send server certificate and

request client certificate

Send client certificate response if

requested

Change cipher suite and finish

handshake

Sistemas Distribuídos 2012/13

Page 57: Conceitos básicos de criptografia - disciplinas.ist.utl.ptdisciplinas.ist.utl.pt/~leic-sod.daemon/2012-2013-sem2/teoricas... · One-time pads • Substituição poli-alfabética

57

Page 57

Departamento de Engenharia Informática

TLS handshake: opções

Sistemas Distribuídos 2012/13

Departamento de Engenharia Informática

SSL record protocol

Application data abcdefghi

abc def ghiRecord protocol units

Compressed units

MAC

Encrypted

TCP packet

Fragment/combine

Compress

Hash

Encrypt

Transmit

Sistemas Distribuídos 2012/13

Page 58: Conceitos básicos de criptografia - disciplinas.ist.utl.ptdisciplinas.ist.utl.pt/~leic-sod.daemon/2012-2013-sem2/teoricas... · One-time pads • Substituição poli-alfabética

58

Page 58

Departamento de Engenharia Informática

Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5 © Pearson Education 2012

TLS record protocolApplication data abcdefghi

abc def ghiRecord protocol units

Compressed units

MAC

Encrypted

TCP packet

Fragment/combine

Compress

Hash

Encrypt

Transmit

Sistemas Distribuídos 2012/13

Departamento de Engenharia Informática

Exemplo: 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

Sistemas Distribuídos 2012/13

Page 59: Conceitos básicos de criptografia - disciplinas.ist.utl.ptdisciplinas.ist.utl.pt/~leic-sod.daemon/2012-2013-sem2/teoricas... · One-time pads • Substituição poli-alfabética

59

Page 59

Departamento de Engenharia Informática

Web Services - Handlers

• Handler Chain– Sequência de handlers executados sobre pedidos e respostas

• Handler– Extende a classe

• javax.xml.rpc.handler.Handler

– Métodos relevantes• handleRequest(MessageContext context)

• handleResponse(MessageContext context)

• handleFault(MessageContext context)

Sistemas Distribuídos 2012/13

Departamento de Engenharia Informática

Exemplo handler de segurança

public boolean handleRequest(MessageContext context) {

System.out.println(this + ">\n\t handleRequest(MessageContext=" + context + ")");

try {

SOAPMessageContext smc = (SOAPMessageContext) context;

SOAPMessage msg = smc.getMessage();

SOAPPart sp = msg.getSOAPPart();

SOAPEnvelope se = sp.getEnvelope();

SOAPBody sb = se.getBody();

SOAPHeader sh = se.getHeader();

if (sh == null) {sh = se.addHeader();

}

// cipher message with symmetric key

ByteArrayOutputStream byteOut = new ByteArrayOutputStream();

msg.writeTo(byteOut);

Cipher cipher = Cipher.getInstance("DES/ECB/PKCS5Padding");

cipher.init(Cipher.ENCRYPT_MODE, KeyManager.getSecretKey());

byte[] cipheredMessage = cipher.doFinal(byteOut.toByteArray());

Sistemas Distribuídos 2012/13

Page 60: Conceitos básicos de criptografia - disciplinas.ist.utl.ptdisciplinas.ist.utl.pt/~leic-sod.daemon/2012-2013-sem2/teoricas... · One-time pads • Substituição poli-alfabética

60

Page 60

Departamento de Engenharia Informática

Exemplo handler de segurança

// encode in base64

BASE64Encoder encoder = new BASE64Encoder();

String encodedMessage = encoder.encode(cipheredMessage);

// remove clear text

sb.detachNode();

sh.detachNode();

// reinitialize SOAP components

sb = se.addBody();

sh = se.addHeader();

// store message

SOAPBodyElement element =

sb.addBodyElement(se.createName("CipherBody"));

element.addTextNode(encodedMessage);

} catch (Exception e) { System.out.println(this + ">\n\t

Exception caught in handleRequest:\n" + e);

return false;

}

return true;

}

Sistemas Distribuídos 2012/13

Departamento de Engenharia Informática

Diagrama de Segurança dos Web Services

WS-Security

WS-PrivacyWS-Trust

WS-Secure

ConversationWS-AuthorizationWS-Federation

XML Dig Sig XML Enc SAML

WS-SecurePolicy

Blocos da mensagem

Blocos básicos

Liberty

Allia

nce

XACML

Sistemas Distribuídos 2012/13

Page 61: Conceitos básicos de criptografia - disciplinas.ist.utl.ptdisciplinas.ist.utl.pt/~leic-sod.daemon/2012-2013-sem2/teoricas... · One-time pads • Substituição poli-alfabética

61

Page 61

Departamento de Engenharia Informática

Estrutura da Assinatura em XML- DSIG

<Signature ID?> <SignedInfo>

<CanonicalizationMethod/><SignatureMethod/>(<Reference URI?>

(<Transforms>)?<DigestMethod><DigestValue>

</Reference>)+</SignedInfo><SignatureValue> (<KeyInfo>)?(<Object ID?>)*

</Signature>

Cardinalidade“?” indica zero ou uma ocorrência, “+” indica uma ou mais ocorrências “*” indica zero ou mais ocorrências

Sistemas Distribuídos 2012/13

Departamento de Engenharia Informática

Advanced Electronic Signatures (XAdES)

• O European Telecomunications Standard Institute (ETSI) tem vindo a desenvolver a especificação de assinaturas em XML - XAdES

• A XAdES preenche os requisitos para assinaturas electrónicas avançadas de acordo com a directiva da União Europeia, como também requisitos para o não-repúdio e validade de longo prazo.

• Estes requisitos incluem – Provas da validade da assinatura mesmo que o assinante ou a

entidade verificadora tentem mais tarde negar (repudiar) a validade da assinatura.

– Pode ser usada como prova em disputas que ocorram entre o assinante e a entidade verificadora, que poderão ocorrer vários anos depois da data de assinatura.

Sistemas Distribuídos 2012/13