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

Slides:



Advertisements
Apresentações semelhantes
Sistemas Distribuídos Segurança
Advertisements

Segurança de Sistemas e Redes
Introdução às Redes Privadas Virtuais - VPN
Redes de Computadores I
Hash HTTPS SSL Certificados.
Secure Sockets Layer (SSL) e Transport Layer Security (TLS)
Segurança e Auditoria de Sistemas
Tópicos Avançados em Redes de Computadores Prof. Fabiano Sabha.
SRC Prof. Luciano Brandão 5° Semestre ( UFA!!!)
Criptografia Assimétrica e Autenticação de Mensagens
Protocolos Seguros Camada de Aplicação
Segurança em Comércio Eletrônico Comércio tradicional realizado de maneira centralizada cercado de restrições legais Comércio eletrônico realização de.
REDES DE COMPUTADORES 1 CRIPTOGRAFIA QUÂNTICA Alunos: Fábio Dias Lopez (ECA ) Luiz Antonio Viana Carapeto (ECA ) Victor Frangipani de.
UNIVERSIDADE FEDERAL DE GOIÁS INSTITUTO DE INFORMÁTICA Sistemas Distribuídos Mestrado em Ciência da Computação 1o. Semestre / 2006 Prof. Fábio M. Costa.
Criptografia: uma Introdução. ● Definição: Criptografia é o estudo de técnicas matemáticas relacionadas a aspectos da segurança da informação tais como:
Segurança em Redes de Computadores VI Semana de Informática Carlos de Castro Goulart Departamento de Informática Universidade Federal de Viçosa
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
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
Acesso remoto a computadores. 2 Grupo André B. OliveiraRA: César H. KallasRA: Marcelo G. HyppolitoRA: Rafael B. CuriRA:
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
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
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
Princípios de Desenvolvimento de Algoritmos MAC122 Prof. Dr. Paulo Miranda IME-USP Variáveis e Atribuições.
Serviço de Protocolação Digital de Documentos Eletrônicos Acadêmico: Recígio Poffo Orientador: Paulo Fernando da Silva.
Acessos e Privilégios. Privilégios  O gerenciamento de usuários e seus respectivos privilégios aos objetos do banco de dados, dependendo do número de.
Camada de Transporte UDP – User Datagram Protocol.
Introdução à Computação para Engenharia MAC2166
UNIVERSIDADE FEDERAL DE GOIÁS INSTITUTO DE INFORMÁTICA
“Modelo de Camadas OSI e TCP/IP ” Nataniel Vieira
UNIVERSIDADE FEDERAL DE GOIÁS INSTITUTO DE INFORMÁTICA
Diagrama de Sequencia Prof. Thales Castro.
Banco de Registradores e ALU
DISTRIBUIÇÃO AMOSTRAL E ESTIMAÇÃO
Soquetes (1) SOCKET Uma interface local, criada por aplicações, ponto final de comunicação no qual os processos de aplicação podem tanto enviar quanto.
Protocolos de Segurança IP IPSec
Estruturas de Repetição
Browser Um browser (web browser), ou navegador, é um programa de computador que permite aceder a documentos virtuais da Internet, também conhecidos como.
Aula 05 Pilha TCP/IP.
Redes de Telecomunicações I
UNIVERSIDADE FEDERAL DE GOIÁS INSTITUTO DE INFORMÁTICA
Capítulo 7: Segurança de Redes
Método de Christian: precisão
Redes: Camada de Transporte, Protocolos pt. III Prof. Rafael Vieira
Segurança em Redes Sem Fio
Protocolos de comunicação
SCC0265 – Sistemas Interativos Web
Camada de Enlace de dados Controle de Fluxo
FUNDAMENTO DE PROGRAMAÇÃO
Endereçamento IP.
Prof. Msc. Diovani Milhorim
SSH – Secure Shell Profº Fábio Eder.
Firewalls UFRJ – UNIVERSIDADE FEDERAL DO RIO DE JANEIRO
Análise Sintática Botton Up Diomara M. R. Barros
ESTATÍSTICA AULA 04 ANÁLISE EXPLORATÓRIA DE DADOS I – Unidade 3
Tecnologia ASP Apresentada por.
Curso Técnico em Informática
aula 05 Métodos de controle de acesso
Complexidade de Algoritmos
TCP vs UDP CRD Filipe Pacheco.
Sistemas Distribuídos II
Redes de Computadores Camada de Transporte Antonio Alfredo Ferreira Loureiro Departamento de Ciência da Computação Universidade.
Criptografia Quântica Universidade Federal Do Rio de Janeiro
DSI – Desenvolvimento de Sistemas Inteligentes
Modbus Bernardo da cunha borges Guilherme Garcia gimenez
Computação Confiável Elysio Mendes Nogueira Larissa de Oliveira Alves
Exercícios de Revisão Redes de Computadores Edgard Jamhour
IPsec: IP Seguro Edgard Jamhour.
Segurança e auditoria em sistemas
RESULUÇÃO DOS EXERCÍCIOS E
SISTEMAS DISTRIBUIDOS
Transcrição da apresentação:

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 Aula 37-38: Segurança (Parte IV – Algoritmos de Criptografia)

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

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

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 Ghz. (Fonte: *

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

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

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 *

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: 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 para uma descrição e exemplo do algoritmo RSA.

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 ), 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, é divisível por d e = 385/5 = 77

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.

Instituto de Informática - UFG Assinaturas digitais Requisito: – Autenticação de documentos armazenados e mensagens – Proteção contra assinaturas forjadas – Prevenir que o assinante repudie um documento por ele assinado (negando sua responsabilidade) A encriptação de um documento com uma chave constitui uma assinatura -impossível para outros realizarem a assinatura sem conhecimento da chave -autenticação forte de documentos -proteção forte contra falsificações -fraca contra repúdio (assinante pode dizer que a chave foi comprometida) *

Instituto de Informática - UFG Funções de digest seguro -O documento inteiro encriptado é uma assinatura impraticavelmente longa -sendo assim, encripta-se apenas um digest (resumo) do documento -Uma função de digest seguro computa um hash de tamanho fixo H(M) que caracteriza o documento M -H(M) deve ser: -rápido de se computar -difícil de inverter - difícil de computar M dado H(M) -difícil de derrotar em quaisquer variantes do Birthday Attack -MD5: Desenvolvido por Rivest (1992). Computa um digest de 128 bit. Taxa de Mbytes/s. - SHA-1: (1995) baseado no MD4 de Rivest, mas tornado mais seguro através da produção de um digest de 160 bits. Taxa: 67.9 Mbytes/s - Qualquer algoritmo de criptografia assimétrico pode ser usado em CBC (cipher block chaining). O último bloco na cadeia é H(M) *

Instituto de Informática - UFG Assinaturas digitais com chaves públicas Assinatura h H(doc) D(K pub,{h}) h' h = h'?authentic:forged Verificação M H(M) 128 bits h E(K pri, h) {h} Kpri M signed doc M {h} Kpri *

Instituto de Informática - UFG MACs: Assinaturas de baixo custo com chave privada Assinatura Verificação M K M K h = h'?authentic:forged h M signed doc H(M+K) h h' H(M+K) * Assinante e verificador compartilham a chave privada K MAC: Message Authentication Code

Instituto de Informática - UFG Estudo de caso: O protocolo Needham - Schroeder Nos primeiros sistemas distribuídos ( ) era difícil proteger os servidores – Ex.: contra ataques de mascaramento sobre um servidor de arquivos – porque não havia mecanismos para autenticar a origem das requisições – criptografia de chave pública ainda não era disponível ou prática  computadores eram muito lentos para calcular funções trap-door  o Algoritmo RSA não estava disponível até 1978 Needham e Schroeder desenvolveram um protocolo de autenticação e distribuição de chaves para uso em uma rede local – Um primeiro exemplo do tipo de cuidado necessário para se projetar um algoritmo efetivamente seguro – Introduziu várias idéias de projeto, incluindo o uso de “nonces” – Baseado em um servidor de autenticação, como aquele visto anteriormente *

Instituto de Informática - UFG HeaderMessageNotes 1. A->S: A, B, N A A requests that S provides a key for Communication with B. 2. S->A:{N A, B, K AB, {K AB, A} K B } K A S returns a message encrypted in A’s secret key, containing a newly generated key K AB and a ‘ticket’ encrypted in B’s secret key. The nonce N A demonstrates that the message was sent in response to the preceding one. A believes that S sent the message because only S knows A’s secret key. 3. A->B: A sends the ‘ticket’ to B. 4. B->A: B decrypts the ticket and uses the new key K AB to encrypt another nonce N B. 5. A->B: A demonstrates to B that it was the sender of the previous message by returning an agreed transformation of N B. {K AB, A} K B {N B } K AB {N B - 1} K AB Ticket O protocolo de autenticação com chave secreta de Needham–Schroeder N A é um nonce. Nonces são inteiros que são adicionados a mensagens para demonstrar a originalidade da transação. Eles são geradas pelo processo remetente sempre que necessário, por exemplo incrementando um contador ou lendo o relógio do sistema (com precisão de milissegundos). * Ponto fraco: A msg 3 pode não ser “fresca” – e K AB pode ter sido comprometida enquanto armazenada no computador de A. Kerberos (a seguir) contempla isto adicionando um timestamp, ou nonce, à msg 3.

Instituto de Informática - UFG Estudo de caso: Kerberos – serviço de autenticação e distribuição de chaves ● Torna segura a comunicação com servidores em uma LAN – Desenvolvido no MIT nos anos 1980 para prover segurança em uma rede de campus com mais de 5000 usuários – baseado no protocolo de Needham - Schroeder ● Padronizado e agora incluído em sistemas operacionais – Internet RFC 1510, OSF DCE – BSD UNIX, Linux, Windows 2000, NT, XP, etc. – Disponível no sítio do MIT ● O servidor Kerberos cria uma chave secreta compartilhada para cada servidor que necessite de uma e a envia (encriptada) para o computador do usuário ● A senha do usuário é o segredo original compartilhado com Kerberos *

Instituto de Informática - UFG Server Client Do Operation Authentication database Login session setup Ticket- granting service T Kerberos Key Distribution Center Server session setup Authen- tication service A Service function Arquitetura de sistema de Kerberos 3. Request for server ticket 4. Server ticket Step B 5. Service request Request encrypted with session key Reply encrypted with session key Step C 1. A->S: A, B, N A 2. S->A:{N A, B, K AB, {K AB, A} K B } K A 3. A->B: 4. B->A: {K AB, A} K B {N B } K AB Protocolo Needham - Schroeder 5. A->B: {N B - 1} K AB Step B once per server session Step C once per server transaction * Figure 7.16 Step A once per login session 1. Request for TGS ticket 2. TGS ticket Step A TGS: Ticket-granting service

Instituto de Informática - UFG Kerberized NFS ● O protocolo Kerberos é muito caro para ser aplicado a cada operação do NFS ● Kerberos é usado no serviço de montagem (mount): – para autenticar a identidade do usuário – O UserID e GroupID do usuário são armazenados no servidor com o endereço IP do cliente ● Para cada requisição de arquivo: – O UserID e GroupID são enviados encriptados na chave de sessão compartilhada (ao invés e encriptar a requisição e a resposta) – O UserID e GroupID devem ser iguais àqueles armazenados no servidor – Os endereços IP também devem ser idênticos ● Esta abordagem tem alguns problemas – não consegue acomodar múltiplos usuários compartilhando o mesmo computador cliente (Por que?) – todos os sistemas de arquivos remotos devem ser montados a cada login do usuário (pois é o único ponto onde a autenticação é feita) *

Instituto de Informática - UFG Estuto de caso: Secure Socket Layer (SSL) ● Distribuição de chaves e canais seguros para comércio na Internet – Protocolo híbrido; depende de criptografia de chave pública – Originalmente desenvolvido pela Netscape Corporation (1994) – Estendido e adotado como um padrão da Internet com o nome de Transport Level Security (TLS) – Provê segurança em todos os servidores Web e navegadores e em versões seguras de Telnet, FTP e outras aplicações de rede ● Requisitos de projeto – Comunicação segura sem negociação de chaves ou ajuda de terceiros – Escolha livre dos algoritmos de criptografia por clientes e servidores – A comunicação em cada direção pode ser autenticada e/ou encriptada

Instituto de Informática - UFG A pilha de protocolos SSL SSL Handshake protocol SSL Change Cipher Spec SSL Alert Protocol Transport layer (usually TCP) Network layer (usually IP) SSL Record Protocol HTTPTelnet SSL protocols:Other protocols: * negotiates cipher suite, exchanges certificates and key masters changes the secure channel to a new spec implements the secure channel

Instituto de Informática - UFG Client A Server B ClientHello ServerHello SSL handshake protocol Estabelece a versão do protocolo, o ID da sessão, cipher suite, método de compressão, troca de valores de inicialização aleatórios Certificate Certificate Request ServerHelloDone Envia o certificado do servidor e requisita o certificado do cliente (opcional) Certificate Certificate Verify Envia resposta com o certificado do cliente se requisitado Change Cipher Spec Finished Change Cipher Spec Finished Muda a cipher suite e finaliza o handshake * Inclui a troca da chave mestra. A chave mestra é usada por A e B para gerar: 2 chaves de sessão2 chaves MAC K AB M AB K BA M BA ComponenteDescriçãoExemplo Método de troca de chaves o método a ser usado para troca da chave de sessão RSA com certificados de chave pública Cifra para transf. de dados a cifra de bloco ou stream a ser usada para dados IDEA Fução de digest de mensagens para criação de códigos de autenticação de msgs. (MACs) SHA Cipher suite

Instituto de Informática - UFG SSL: opções de configuração do handshake * ComponenteDescriçãoExemplo Método de troca de chaves o método a ser usado para troca da chave de sessão RSA com certificados de chave pública Cifra para transf. de dados a cifra de bloco ou stream a ser usada para dados IDEA Fução para digest de mensagens para criação de códigos de autenticação de msgs. (MACs) SHA

Instituto de Informática - UFG SSL record protocol Application data abcdefghi abcdefghi Record protocol units Fragment/combine Compressed units Compress MAC Hash Encrypted Encrypt TCP packet Transmit *

Instituto de Informática - UFG Sumário ● É essencial proteger contra ataques os recursos, canais de comunicação e as interfaces de sistemas e aplicações distribuídos. ● Isto é obtido com o uso de mecanismos de controle de acesso e canais seguros. ● Criptografia de chave pública e secreta provê a base para autenticação e comunicação segura. ● Kerberos e SSL são componentes de sistema largamente utilizados que oferecem suporte a comunicação segura e autenticada. *

Instituto de Informática - UFG Suposições de pior caso e linhas mestras para o projeto ● As interfaces são expostas ● As redes são inseguras  Limitar o tempo de vida e o escopo de cada segredo ● Os algoritmos e código de programa são disponíveis aos intrusos ● Os intrusos podem ter acesso a vastos recursos  Minimizar a base de confiança

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