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 Mestrado em Ciência da Computação 1o. 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 Mestrado em Ciência da Computação 1o. 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 Mestrado em Ciência da Computação 1o. Semestre / 2006 Prof. Fábio M. Costa fmc@inf.ufg.br www.inf.ufg.br/~fmc/DS-MSc2006 Aula 17: Segurança (Parte III)

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

3 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 216.6 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) *

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

5 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

6 Instituto de Informática - UFG Estudo de caso: O protocolo Needham - Schroeder Nos primeiros sistemas distribuídos (1974-84) era difícil proteger os servidores – Ex.: contra ataques de mascaramento sobre um servidor de arquivos – porque não havia mecanismos para autenticar a origem das requisições – criptografia de chave pública ainda não era disponível ou prática  computadores eram muito lentos para calcular funções trap-door  o Algoritmo RSA não estava disponível até 1978 Needham e Schroeder 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 *

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

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

9 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

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

11 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

12 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

13 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

14 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

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

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

17 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

18 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 Mestrado em Ciência da Computação 1o. Semestre / 2006 Prof. Fábio M. Costa."

Apresentações semelhantes


Anúncios Google