A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

UNIVERSIDADE FEDERAL DE GOIÁS INSTITUTO DE INFORMÁTICA Sistemas Distribuídos Ciência da Computação 2o. Semestre / 2006 Prof. Fábio M. Costa

Apresentações semelhantes


Apresentação em tema: "UNIVERSIDADE FEDERAL DE GOIÁS INSTITUTO DE INFORMÁTICA Sistemas Distribuídos Ciência da Computação 2o. Semestre / 2006 Prof. Fábio M. Costa"— Transcrição da apresentação:

1 UNIVERSIDADE FEDERAL DE GOIÁS INSTITUTO DE INFORMÁTICA Sistemas Distribuídos Ciência da Computação 2o. Semestre / 2006 Prof. Fábio M. Costa fmc@inf.ufg.br www.inf.ufg.br/~fmc/SD2006 Aula 35-36: Segurança (Parte III – Certificados, Controle de Acesso e Algoritmos de Criptografia)

2 Instituto de Informática - UFG Certificados como credenciais ● Certificados podem atuar como credenciais – Evidência sobre os direitos de um “principal” a ter acesso a um recurso ● Os dois certificados mostrados no slide anterior poderiam atuar como credenciais para Alice operar sua conta bancária – Ela precisaria adicionar seu certificado de chave pública a cada transação * Figure 7.4 Certificado de chave pública do “Bob's Bank” 1.Certificate type: Public key 2.Name:Bob’s Bank 3. Public key:K Bpu b 4.Certifying authority:Fred – The Bankers Federation 5. Signature : {Digest(field 2 + field 3)} K Fpri v 1.Certificate type:Account number 2.Name:Alice 3.Account:6262626 4.Certifying authority:Bob’s Bank 5.Signature:{Digest(field 2 + field 3)} K Bpri v Figure 7.3 Certificado da conta bancária de Alice

3 Instituto de Informática - UFG Controle de acesso ● Domínio de proteção – Um conjunto de pares ● Duas abordagens principais de implementação: – Listas de controle de acesso (ACL) associadas a cada objeto ● Ex.: Permissões de acesso a arquivos no Unix ● Para tipos de objetos e comunidades de usuários mais complexos, ACLs podem se tornar muito complexas – Capacidades (capabilities) associadas a “principals” ● Análogas a chaves (i.e., chave de porta) ● Formato: ● Não podem ser passíveis de serem forjadas ● Problemas: espionagem, dificuldade de cancelamento drwxr-xr-x gfc22 staff 264 Oct 30 16:57 Acrobat User Data -rw-r--r-- gfc22 unknown 0 Nov 1 09:34 Eudora Folder -rw-r--r-- gfc22 staff 163945 Oct 24 00:16 Preview of xx.pdf drwxr-xr-x gfc22 staff 264 Oct 31 13:09 iTunes -rw-r--r-- gfc22 staff 325 Oct 22 22:59 list of broken apps.rtf *

4 Instituto de Informática - UFG Credenciais ● Requisições para acesso a recursos devem vir acompanhadas de credenciais: – Evidência do direito do “principal” requisitando acesso ao recurso – Caso mais simples: um certificado de identidade do “principal”, assinado pelo próprio “principal”. – Credenciais podem ser usadas em combinação. Ex.: para enviar um e-mail autenticado como um membro da UFG, eu precisaria apresentar um certificado provando que sou membro da UFG, bem como um certificado do meu endereço de e-mail. ● A idéia de que a credencial “fala” pelo principal – Indesejável que usuários forneçam sua senha toda vez que seus PCs fazem acesso a um servidor que mantém recursos protegidos. – Ao invés disso, a noção de que uma credencial “fala” pelo principal é introduzida. Ex.: o certificado de chave pública de um usuário fala por ele. ● Um servidor que receba uma requisição acompanhada do certificado de um usuário pode assumir que a requisição foi gerada por ele ● mesmo que tenha recebido a requisição através de terceiros *

5 Instituto de Informática - UFG Delegação ● Considere um servidor que imprime arquivos: – seria um desperdício copiar os arquivos: deveria acessá-los in situ – ao servidor deve ser dado acesso restrito e temporário aos arquivos do usuário ● Pode usar um certificado de delegação ou uma capability – um certificado de delegação é uma requisição assinada autorizando um outro principal a acessar um recurso designado, de acordo com certas restrições. – CORBA Security Service suporta certificados de delegação. – uma capability é uma chave que permite ao seu possuidor o acesso a uma ou mais das operações providas por um recurso. – A restrição temporal pode ser obtida adicionando prazos de validade. *

6 Instituto de Informática - UFG Algoritmos criptográficos ● Simétricos (chave secreta) E(K, M) = {M} K D(K, E(K, M)) = M Mesma chave para E (função de encriptação) e D (função de decriptação) M deve ser difícil (não factível) de se computar se K não for conhecida. A forma usual de ataque é por força bruta: tentar todos os valores de chave possíveis para um dado par M, {M} K. Pode-se resistir a este ataque tornando K suficientemente grande ~ 128 bits ● Assimétricos (chave pública) Chaves separadas para encriptação e decriptação: K e, K d D(K d, E(K e, M)) = M Depende do uso de uma “função trap-door” para se criar chaves. E tem alto custo computacional. Usa chaves muito grandes > 512 bits ● Protocolos Híbridos – usado em SSL (também conhecido como TLS) Usa criptografia assimétrica para transmitir a chave simétrica que é então usada para encriptar os dados transmitidos em uma sessão. * Mensagem M, chave K, funções de criptografia publicadas E, D

7 Instituto de Informática - UFG Cifras de bloco, encadeamento de cifras de bloco, e cifras de fluxo n n+3n+2n+1 XOR E(K, M) n-1n-2 n-3 plaintext blocks ciphertext blocks Figure 7.5 Cipher block chaining (CBC) XOR E(K, M) number generator n+3n+2n+1 plaintext stream ciphertext stream buffer keystream Figure 7.7 Stream cipher Cifras de bloco: operam sobre blocos de 64 bits. Cifras de bloco único: um bloco criptografado não depende dos demais Fraqueza de cifras de único bloco: padrões repetidos podem ser detectados. *

8 Instituto de Informática - UFG Algoritmos de criptografia simétricos Todos estes são programas que realizam operações de confusão e difusão sobre blocos de dados binários TEA: um algoritmo simples mas efetivo desenvolvido na U. Cambridge (1994) com finalidade de ensino e explanação de conceitos. Chave de 128 bits, 23.8 Mbytes/s. DES: Data Encryption Standard (EUA, 1977). Atualmente, não é seguro em sua forma original. Chave de 56 bits, 21.3 Mbytes/s. Triple-DES: aplica DES três vezes, com duas chaves diferentes. Chaves de 112 bits, 9.8 Mbytes/s. IDEA: International Data Encryption Algorithm (1990). Parecido com TEA. Chave de 128 bits, 18.9 Mbytes/s. AES: Advanced Encryption Standard (proposto nos EUA, 1997). Chaves de 128 (61 Mbytes/s) e 256 bits (48.2 Mbytes/s). Há muitos outros algoritmos efetivos. Veja Schneier [1996]. As taxas de dados acima foram medidas em um processador Pentium 4 2.1 Ghz. (Fonte: www.cryptopp.com) *

9 Instituto de Informática - UFG TEA: Função de encriptação void encrypt(unsigned long k[], unsigned long text[]) { unsigned long y = text[0], z = text[1]; unsigned long delta = 0x9E3779B9, sum = 0; int n; for (n= 0; n < 32; n++) { sum += delta; y += ((z > 5) + k[1]);5 z += ((y > 5) + k[3]);6 } text[0] = y; text[1] = z; } ● Linhas 5 & 6 realizam a confusão (XOR do texto deslocado) e difusão (deslocamento e troca de valor, entre y e z) * Figure 7.7 key 4 x 32 bits plaintext and result 2 x 32 Exclusive OR logical shift

10 Instituto de Informática - UFG TEA: Função de decriptação 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 > 5) + k[3]); y -= ((z > 5) + k[1]); sum -= delta; } text[0] = y; text[1] = z; } Figure 7.8 *  O inverso da função de encriptação

11 Instituto de Informática - UFG TEA in use void tea(char mode, FILE *infile, FILE *outfile, unsigned long k[]) { /* mode is ’e’ for encrypt, ’d’ for decrypt, k[] is the key.*/ char ch, Text[8]; int i; while(!feof(infile)) { i = fread(Text, 1, 8, infile);/* read 8 bytes from infile into Text */ if (i <= 0) break; while (i < 8) { Text[i++] = ' ';}/* pad last block with spaces */ switch (mode) { case 'e': encrypt(k, (unsigned long*) Text); break; case 'd': decrypt(k, (unsigned long*) Text); break; } fwrite(Text, 1, 8, outfile);/* write 8 bytes from Text to outfile */ } Figure 7.9 *

12 Instituto de Informática - UFG Algoritmos de criptografia assimétricos RSA: O primeiro algoritmo prático (Rivest, Shamir and Adelman 1978) e até hoje o de uso mais freqüente. Tamanho de chave variável: 512-2048 bits. Velocidade entre 1 e 7 kbytes/s. (Processador PII 350 MHz) Curva elíptica: Um método recentemente desenvolvido, usa chaves mais curtas e mais rápidas. Algoritmos assimétricos são cerca de 1000 x mais lentos e, portanto, não são práticos para encriptação de grandes quantidades de dados, mas suas outras propriedades os tornam ideais para distribuição de chaves e para autenticação. Uma trapdoor provê uma entrada secreta para uma sala. Uma vez dentro, a saída é óbvia, mas se estiver de fora, necessita-se saber o segredo para entrar. Todos dependem do uso de funções do tipo trap-door Uma função trap-door é uma função apenas de entrada (oneway), com uma saída secreta – ex.: produto de dois números grandes; fácil de multiplicar, muito difícil (não factível) de se fatorar. * Veja a seção 7.3.2 para uma descrição e exemplo do algoritmo RSA.

13 Instituto de Informática - UFG Encriptação com RSA - 1 Para encontrar um par de chaves e, d: 1. Escolha dois números primos grandes, P e Q (cada um maior que 10 100 ), e forme: N = P * Q Z = (P–1) * (Q–1) 2. Para d escolha qualquer número que seja primo relativo com Z (isto é, tal que d não tenha fatores comuns com Z). Ilustramos as computações envolvidas usando valores pequenos para P e Q: P = 13, Q = 17 –> N = 221, Z = 192 d = 5 3.Para encontrar e resolva a equação: e * d = 1 mod Z Isto é, e x d é o menor elemento divisível por d na série Z+1, 2Z+1, 3Z+1,.... e x d = 1 mod 192 = 1, 193, 385,... 385 é divisível por d e = 385/5 = 77

14 Instituto de Informática - UFG Encriptação com RSA - 2 Para encriptar texto usando o método RSA, o plaintext é dividido em blocos iguais de tamanho k bits, onde 2 k < N (isto é, tal que o valor numérico de um bloco é sempre menor que N; em aplicações práticas, k está usualmente na faixa de 512 a 1024). k = 7, uma vez que 2 7 = 128 A função para encriptar um único bloco de plaintext M é: E'(e,N,M) = M e mod N para uma mensagem M, o texto cifrado é M 77 mod 221 A função para decriptar um bloco de texto cifrado c para produzir o bloco de plaintext original é: D'(d,N,c) = c d mod N Rivest, Shamir e Adelman provaram que E' e D' são mutuamente inversas (isto é, E'(D'(x)) = D'(E'(x)) = x) para todos os valores de P na faixa 0 ≤ P ≤ N. Os dois parâmetros e,N podem ser considerados como uma chave para a função de encriptação; similarmente d,N representam uma chave para a função de decriptação. Desta forma, podemos escrever K e = e K d =, podendo obter a função de encriptação: E(K e, M) ={M} K (a notação indica que a mensagem encriptada pode ser decriptada apenas pelo detentor da chave privada K d ) e D(K d, ={M} K ) = M.

15 Instituto de Informática - UFG From Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edition 4 © Pearson Education 2005


Carregar ppt "UNIVERSIDADE FEDERAL DE GOIÁS INSTITUTO DE INFORMÁTICA Sistemas Distribuídos Ciência da Computação 2o. Semestre / 2006 Prof. Fábio M. Costa"

Apresentações semelhantes


Anúncios Google