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

Apresentações semelhantes


Apresentação em tema: "UNIVERSIDADE FEDERAL DE GOIÁS INSTITUTO DE INFORMÁTICA"— 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 Aula 16: Segurança (Parte II)

2 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. KBpub 4. Certifying authority Fred – The Bankers Federation 5. Signature {Digest(field 2 + field 3)} KFpriv Account number Alice Account KBpriv Figure 7.3 Certificado da conta bancária de Alice Further details on the implementation of access control in distributed systems and the uses of credentials are in Sections and Instituto de Informática - UFG *

3 Controle de acesso Análogas a chaves (i.e., chave de porta)
Domínio de proteção Um conjunto de pares <recurso, direitos> 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: <resource id, permitted operations, authentication code> Não podem ser passíveis de serem forjadas Problemas: espionagem, dificuldade de cancelamento drwxr-xr-x gfc22 staff Oct 30 16:57 Acrobat User Data -rw-r--r-- gfc22 unknown Nov 1 09:34 Eudora Folder -rw-r--r-- gfc22 staff Oct 24 00:16 Preview of xx.pdf drwxr-xr-x gfc22 staff Oct 31 13:09 iTunes -rw-r--r-- gfc22 staff Oct 22 22:59 list of broken apps.rtf Popup shows Unix file access control list Instituto de Informática - UFG *

4 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 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 . 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 Instituto de Informática - UFG *

5 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. Consider the example of a print server that accepts requests to print files. It would be wasteful of resources to copy the file, so the name of the file is passed to the print server and it is accessed by the print server on behalf of the user making the request. If the file is read-protected, this does not work unless the print server can acquire temporary rights to read the file. Delegation is a mechanism designed to solve problems such as this. Delegation can be achieved using a delegation certificate or a capability. The certificate is signed by the requesting principal and it authorizes another principal (the print server in our example) to access a named resource (the file to be printed). In systems that support them, capabilities can achieve the same result without the need to identify the principals – a capability to access a resource can be passed in a request to a server. The capability is an unforgeable, encoded set of rights to access the resource. When rights are delegated, it is common to restrict them to a subset of the rights held by the issuing principal, so that the delegated principal cannot misuse them. In our example, the certificate could be time-limited to reduce the risk that the print server’s code is subsequently compromised and the file disclosed to third parties. The CORBA Security Service includes a mechanism for the delegation of rights based on certificates, with support for the restriction of the rights carried. Instituto de Informática - UFG *

6 Algoritmos criptográficos
Mensagem M, chave K, funções de criptografia publicadas E, D 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: Ke, Kd D(Kd, E(Ke, 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. Popup bullet points defining symmetric and asymmetric algorithms Instituto de Informática - UFG *

7 Cifras de bloco, encadeamento de cifras de bloco, e cifras de fluxo
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. n n+3 n+2 n+1 XOR E(K, M) n-1 n-2 n-3 plaintext blocks ciphertext blocks Figure 7.5 Cipher block chaining (CBC) XOR E(K, M) number generator n+3 n+2 n+1 plaintext stream ciphertext buffer keystream Figure 7.7 Stream cipher Popups show cipher block chaining snd stream cipher illustrations Compare use of keystream with the use of a white noise generator to enable secret conversation to be recorded in an exposed place. Playbeack substracts the original white noise from the recorded sound. Can combine CBC with key stream generator for extra security. Instituto de Informática - UFG *

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

9 TEA: Função de encriptação
Figure 7.7 key 4 x 32 bits plaintext and result 2 x 32 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 << 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; Exclusive OR logical shift The TEA algorithm uses rounds of integer addition, XOR (the ^ operator) and bitwise logical shifts (<< and >>) to achieve diffusion and confusion of the bit patterns in the plaintext. The plaintext is a 64-bit block represented as two 32-bit integers in the vector text[]. The key is 128 bits long, represented as four 32-bit integers. On each of the 32 rounds, the two halves of the text are repeatedly combined with shifted portions of the key and each other in lines 5 and 6. The use of XOR and shifted portions of the text provides confusion, and the shifting and swapping of the two portions of the text provides diffusion. The non-repeating constant delta is combined with each portion of the text on each cycle to obscure the key in case it might be revealed by a section of text that does not vary. The decryption function is the inverse of that for encryption and is given in Figure 7.9. Linhas 5 & 6 realizam a confusão (XOR do texto deslocado) e difusão (deslocamento e troca de valor, entre y e z) Instituto de Informática - UFG *

10 TEA: Função de decriptação
Figure 7.8 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; O inverso da função de encriptação Instituto de Informática - UFG *

11 TEA in use Figure 7.9 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 */ Instituto de Informática - UFG *

12 Algoritmos de criptografia assimétricos
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. 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. 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. A trapdoor provides a secret way into a room. If you're inside, the way out is obvious, if you're outside, you need to know a secret to get in. Veja a seção para uma descrição e exemplo do algoritmo RSA. Instituto de Informática - UFG *

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

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

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

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

17 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 portanto 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”. Instituto de Informática - UFG *

18 O protocolo de autenticação com chave secreta de Needham–Schroeder
Figure 7.15 Header Message Notes 1. A->S: A, B, NA A requests that S provides a key for Communication with B. 2. S->A: {NA , B, KAB, {KAB, A}KB}KA S returns a message encrypted in A’s secret key, containing a newly generated key KAB and a ‘ticket’ encrypted in B’s secret key. The nonce NA 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 KAB to encrypt another nonce NB. 5. A->B: A demonstrates to B that it was the sender of the previous message by returning an agreed transformation of NB. {KAB, A}KB {NB}KAB {NB - 1}KAB Ponto fraco: A msg 3 pode não ser “fresca” – e KAB pode ter sido comprometida enquanto armazenada no computador de A. Kerberos (a seguir) contempla isto adicionando um timestamp, ou nonce, à msg 3. Ticket NA é 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 presição de milissegundos). Instituto de Informática - UFG *

19 baseado no protocolo de Needham - Schroeder Internet RFC 1510, OSF DCE
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 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 *

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

21 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 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 todos os sistemas de arquivos remotos devem ser montados a cada login do usuário Instituto de Informática - UFG *

22 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) Extendido e adotado como um padrão da Internet com o nome de Transport Level Security (TLS) Provê segurança em em todos os servidores web e browsers 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 comunicação em cada direção pode ser autenticada e/ou encriptada Instituto de Informática - UFG

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

24 SSL handshake protocol
Figure 7.18 Client A Server B ClientHello ServerHello 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 Componente Descrição Exemplo 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 Cipher suite Certificate Certificate Request ServerHelloDone Opcional: envia o certificado do servidor e requisita o certificado do cliente Certificate Certificate Verify Envia resposta com o certificado do cliente se requisitado 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ão 2 chaves MAC KAB MAB KBA MBA Instituto de Informática - UFG *

25 SSL: opções de configuração do handshake
Figure 7.19 Componente Descrição Exemplo 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 *

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

27 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 suportam comunicação segura e autenticada. Instituto de Informática - UFG *

28 Suposições de pior caso linhas mestras para o projeto
Interfaces are exposed Distributed systems are composed of processes that offer services or share information. Their communication interfaces are necessarily open (to allow new clients to access them) – an attacker can send a message to any interface. Networks are insecure For example, message sources can be falsified – messages can be made to look as though they came from Alice when they were actually sent by Mallory. Host addresses can be ‘spoofed’ – Mallory can connect to the network with the same address as Alice and receive copies of messages intended for her. Limit the lifetime and scope of each secret When a secret key is first generated we can be confident that it has not been compromised. The longer we use it and the more widely it is known, the greater the risk. The use of secrets such as passwords and shared secret keys should be time-limited, and sharing should be restricted. Algorithms and program code are available to attackers The bigger and the more widely distributed a secret is, the greater the risk of its disclosure. Secret encryption algorithms are totally inadequate for today’s large-scale network environments. Best practice is to publish the algorithms used for encryption and authentication, relying only on the secrecy of cryptographic keys. This helps to ensure that the algorithms are strong by throwing them open to scrutiny by third parties. Attackers may have access to large resources The cost of computing power is rapidly decreasing. We should assume that attackers will have access to the largest and most powerful computers projected in the lifetime of a system, then add a few orders of magnitude to allow for unexpected developments. Minimize the trusted base The portions of a system that are responsible for the implementation of its security, and all the hardware and software components upon which they rely, have to be trusted – this is often referred to as the trusted computing base. Any defect or programming error in this trusted base can produce security weaknesses, so we should aim to minimize its size. For example, application programs should not be trusted to protect data from their users. 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

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


Carregar ppt "UNIVERSIDADE FEDERAL DE GOIÁS INSTITUTO DE INFORMÁTICA"

Apresentações semelhantes


Anúncios Google