Segurana em Sistemas Distribudos Stanley Araujo de Sousa
Segurança em Sistemas Distribuídos Stanley Araujo de Sousa
Criptografia - História • Usada por governantes e pelo povo em épocas de guerra e de paz. • Criptografia na antiguidade; • Criptografia na idade média; • Criptografia na idade moderna; • Criptografia na atualidade;
Conceitos
Conceitos Criptologia = Criptografia + Criptoanálise Criptografia é A arte de criar mensagens cifradas Criptoanálise é a arte de solucionar mensagens cifradas
Conceitos Cifras: Transformação de bit a bit; Código: Transformação de palavra por palavra ou símbolo; Estenografia("escrita coberta”): Na escrita, consiste em ocultar uma informação, através de códigos com caracteres convencionais (letras e números) ou símbolos
Conceitos O código mais bem sucedido já inventado foi usado pelos EUA durante a Segunda Guerra Mundial no Pacífico. Eles simplesmente tinha índios navajo que se comunicavam uns com os outros usando palavras navajo específicas para termos militares como, por exemplo: chay-dagahi-nail-tsaidi(literalmente, assassino de cágado) para indicar uma arma antitanque. A linguagem navajo é altamente tonal, extremamente complexa, e não tem nenhuma forma escrita. Além disso, nenhuma pessoa no Japão conhecia nada sobre ela.
Cifra O sistema de cifra possui duas classes: – Substituição; – Transposição
Cifra de Substituição Cada letra ou grupo de letras é substituído por outras letras ou grupo de letras; Exemplo: cifra de César (Caeser cipher) Problemas – Aparentemente segura – Existe 26! = 4 x 1026 possibilidades
Cifra de Substituição Com poucos textos cifrados, o algoritmo pode ser quebrado. – Estratégias: • Conhecimento das letras – Exemplo: No inglês – Letras: e, t, o, a , n, i – digramas: th, in, er, re e an – trigramas: the, ing, and e ion – Adivinhar uma frase ou palavra provável;
Cifras de transposição Reordenam as letras, mas não as disfarçam. Mensagens curtas não seguras – Ex: SIM, tenho somente 3! = 6 possibilidades A permutação pode-se basear em: – Palavra-chave: • Palavra ou frase que não contenha letras repetidas • A chave enumera a seqüência de colunas; • Exemplo: NUMABOA é cifrado para AOBAMUN.
Cifra de transposição – Dispositivo mecânico
Criptografia Grande contribuição dos militares; Dificuldades: – Criptografar as informações no campo de batalha – Alterar os métodos criptográficos rapidamente;
Criptografia Surge assim o método da figura abaixo.
Princípio Kerckhoff Todos os algoritmos devem ser públicos; apenas as chaves são secretas. O criptoanalista conhece os algoritmos e que o segredo reside exclusivamente na chave Inúmeros criptólogos irão tentar "quebrar" o algoritmo
O tamanho da chave é uma questão muito importante no projeto Chaves de 64 bits = 264 possibilidades Quanto maior a chave, maior o fator de trabalho para o criptoanalista; O fator de trabalho é exponencial ao tamanho da chave
Criptografia – serviços oferecidos Disponibilidade: A informação estará disponível para acesso no momento desejado. Integridade: Garante que o conteúdo da mensagem não foi alterado. Controle de acesso: Garante que o conteúdo da mensagem somente será acessado por pessoas autorizadas
Criptografia – serviços oferecidos Autenticidade da origem: Garante a identidade de quem está enviando a mensagem. Não-repudiação: Previne que alguém negue o envio e/ou recebimento de uma mensagem. Privacidade: Impede que pessoas não autorizadas tenham acesso ao conteúdo da mensagem, garantindo que apenas a origem e o destino tenham conhecimento.
Criptografia – Conceitos básicos Algoritmo de criptografia: É uma função, normalmente matemática, que executa a tarefa de cifrar e decifrar os dados que se desejam manter seguro; Chave criptográfica: Parâmetro do algoritmo de criptografia. Quanto maior a chave, maior a dificuldade do intruso;
Criptografia – Conceitos básicos Texto claro ou inteligível: Texto que se deseja cifrar Texto cifrado: Informação após o processo de cifragem
Classificação dos sistemas Criptográficos Criptografia Simétrica Criptografia assimétrica Outros critérios: – Maneira como o texto claro é processado • Cifrador de blocos: Processa um bloco de entra e gera um bloco de saída • Cifrador de fluxos: Processo elementos de forma contínua – Tipo de operação utilizada para transformar o texto claro em texto cifrado • Substituição ou Transposição
Sistemas Criptográficos Simétricos Outras denominações: Criptografia de chave simples ou de chave secreta Técnica de criptografia onde é utilizada a mesma chave para criptografar e descriptografar os dados.
Sistemas Criptográficos Simétricos
Sistemas Criptográficos Simétricos Segurança do algoritmo – Não seja possível decifrar a mensagem baseado somente no texto cifrado – Segurança depende da manutenção da chave e não do algoritmo
Vantagens Em geral, os algoritmos simétricos são computacionalmente mais simples; Utilização do mesmo algoritmo para o receptor e emissor Em caso de violação, facilmente se realiza a troca das chaves
Desvantagens A chave deve ser trocada entre as partes e armazenada de forma segura; Para n usuários precisaríamos de algo da ordem de n 2 chaves(dificulta a gerência das chaves) A criptografia simétrica não garante a identidade de quem enviou ou recebeu a mensagem (autenticidade e não-repudiação).
Exemplos de Algoritmo de Criptografia Simétrica
DES(Data Encryption Standard): Cifrador de blocos de 64 bits Chaves de 56 bits Desenvolvido pela ibm e NIST (National Institute of Standards and Technology) Quebrado por "força bruta" em 1997 em um desafio lançado na Internet.
DES(Data Encryption Standard):
Triple DES Chaves de 112 ou 168 bits Variação do DES É seguro, porém muito lento para ser um algoritmo padrão.
RC 2 Cifrador de blocos Desenvolvido por Ronald Rivest Proprietário(RSA Segurança de Dados) Chaves de 1 a 1024 bits Softwares para fora do EUA (chaves de 40 bits) Voltado para criptografia de e-mail corporativo
RC 4 Cifrador de fluxo Desenvolvido por Ronald Rivest Proprietário(RSA Segurança de Dados) Chaves de até 256 bits Softwares para fora do EUA (chaves de 40 bits) Fácil de implementar 10 vezes mais rápido que o DES
RC 5 Cifrador de blocos Desenvolvido por Ronald Rivest Permite ao usuário definir: – tamanho da chave – tamanho do bloco – número de vezes que será aplicada a cifração sobre o arquivo
IDEA(Data Encryption Algorithm) Cifrador de blocos de 64 bits Desenvolvido por James e Xuejia, na Suiça Chaves de 128 bits Considerado muito forte
AES (Advanced Encryption Standard) Substituto do DES padrão oficial do governo dos EUA Eleito o algoritmo Rijndael Admite tamanho de chaves e blocos de 128 bits até 256 bits em intervalos de 32 bits Porém, o AES especifica: – Tamanho do bloco: 128 bits – Comprimento da chave: 128, 192 ou 256 bits
AES (Advanced Encryption Standard) Temos basicamente duas variantes – Bloco de 128 bits e chave de 128 bits: tende a ser o padrão – Bloco de 128 bits e chave de 256 bits
Sistemas Criptográficos Assimétricos Baseada no conceito de par de chaves: – Chave privada – Chave pública Qualquer uma das chaves é utilizada para cifrar uma mensagem e a outra para decifrá-la ; As mensagens cifradas com uma das chaves do par só podem ser decifradas com a outra chave correspondente
Chave privada Exclusiva de cada usuário Deve ser mantida secreta Usada para descriptografar as mensagens; Usada para assinar as mensagens
Chave pública Cada usuário tem a sua chave pública Chave de cifração pública (disponibilizada em um repositório) Utilizada para criptografar a mensagem;
Algoritmo Assimétrico Chave KPública Bob Mensagem (abcdef. . . z) Canal Público Criptogra ma ( . . . ) Canal Inseguro Chave KSecreta Alice Mensagem (abcdef. . . z)
Algoritmo Assimétrico Desvantagens – São relativamente lentos; • RSA é 1000 mais lento que o AES – São complexos de serem implementados; Vantagens – Qualquer pessoa pode enviar uma mensagem secreta usando a chave pública; – Não há necessidade do envio de chaves; Outra abordagem: – União dos simétricos com assimétricos
Exemplos de Algoritmo de Criptografia Assimétrica
RSA Ron Rivest, Adi Shamir e Len Adleman, que o criaram em 1977 no MIT Atualmente, o algoritmo de chave pública mais amplamente utilizado, além de ser uma das mais poderosas formas de criptografia de chave pública conhecidas até o momento. O RSA utiliza números primos.
El. Gamal O algoritmo envolve a manipulação matemática de grandes quantidades numéricas ; Sua segurança advém de algo denominado problema do logaritmo discreto O El. Gamal obtém sua segurança da dificuldade de se calcular logaritmos discretos em um corpo finito, o que lembra bastante o problema da fatoração.
DSA (Digital Signature Algorithm) Unicamente destinado a assinaturas digitais Proposto pelo NIST em agosto de 1991 Utilizado no padrão DSS (Digital Signature Standard) Variação dos algoritmos de assinatura El. Gamal e Schnorr
Curvas Elípticas Curvas elípticas para sistemas criptográficos de chave pública Implementaram algoritmos de chave pública já existentes Eles possuem o potencial de proverem sistemas criptográficos de chave pública mais seguros, com chaves de menor tamanho.
RSA Sistema de criptografia de chaves públicas Utilizado para cifração e assinatura digital Desenvolvido por Rivest-Shamir-Adleman, MIT, em 1977 É considerado muito forte
RSA Sua segurança baseia-se no fato de não existir um algoritmo eficiente na fatoração de números primos grandes. – A fatoração de um número de 500 dígitos demoraria 1025 anos Sua desvantagem é exigir chaves de pelo menos 1024 bits, e isso o torna bastante lento.
RSA - Funcionamento Escolha dois números primos extensos, p e q (geralmente, de 1024 bits) Calcule n = p x q e z = (p-1) x (q-1) Escolha um número d tal que z e d sejam primos entre si; – Dois números inteiros são ditos primos entre si quando não existir um divisor maior do que 1 que divida ambos , ou seja, MDC(d, z)=1 – Por exemplo, 12 e 13 são primos entre si; porém, 12 e 14 não o são porque ambos são divisíveis por 2. Encontre e de forma que e x d = 1 mod z
Processo Divida o texto simples em blocos de tamanho P onde 0 P n. Ou ache k bits, onde k é o maior número inteiro para o qual 2 k < n Para criptografar P, calcule C = Pe (mod n). Para descriptografar C, calcule P = C d (mod n) As funções de criptografia e descriptografia são inversas entre si.
Processo Para criptografar são necessários e e n Para descriptografar são necessários d e n Logo, a chave pública consiste em (e, n) e a chave privada consiste em (d, n) Se n pudesse ser fatorado, o criptoanalista encontraria p e q, e a partir deles chegar a z. Com o conhecimento de z e e, é possível encontrar d utilizando o algoritmo de Euclides.
Exemplo Escolhemos p = 3 e q =11, o que gera n =33 e z =20, e d=7. Então, resolve-se a equação 7 e = 1(mod 20), que produz e = 3. O texto cifrado é obtido através de C = P 3 (mod 33) Neste exemplo, como n =33, k deve ser igual 5 bits. Logo, cada bloco de texto deve conter somente um único caracter
Assinatura Digital Objetivo: Garantir a autenticidade de quem envia a mensagem, associada à integridade do seu conteúdo. Garante o não-repúdio Técnicas: – Algoritmos simétricos – Algoritmos assimétricos – Sumário de mensagens
Assimétrico Bob Canal Inseguro Chave KSecreta (Bob) Alice Chave KPública (Bob) Canal Inseguro ≡?
Sumário de mensagens Na prática é inviável e contraproducente utilizar puramente algoritmos de chave pública para assinaturas digitais Denominada Message Digest, One-Way Hash Function. A função Hashing funciona como uma impressão digital de uma mensagem gerando, a partir de uma entrada de tamanho variável, um valor fixo pequeno: o digest ou valor hash.
Sumário de mensagens Uma função de hashing é uma função criptográfica que gera uma saída de tamanho fixo (geralmente 128 a 256 bits) independentemente do tamanho da entrada Para ter utilidade criptográfica, a função de hashing deve ser tal que
Sumário de mensagens É simples (eficiente, rápido) se computar o hash de dada mensagem; É impraticável se determinar a entrada a partir de seu hash; É impraticável se determinar uma outra entrada que resulte no mesmo hash de uma dada entrada; Os valores de hash possíveis são estatisticamente equiprováveis.
Sumário de mensagens As funções de hash mais conhecidas são: – MD 5 – SHA-1
MD 5(Message Digest 5) Inventado por Ron Rivest, do MIT. Este algoritmo produz um valor hash de 128 bits para qualquer entrada Projetado para ser rápido, simples e seguro Um valor hash de 128 bits é causa de preocupação; é preferível uma função Hashing que produza um valor maior.
SHA-1 (Secure Hash Algorithm ) Desenvolvido pela NSA Baseado no MD 4 Gera um valor de hash de 160 bits independente da entrada Não há nenhum ataque de criptoanálise conhecido contra o SHA-1
Certificados Digitais e Autoridades Certificadoras Como confiar que determinada chave efetivamente pertence ao seu suposto proprietário? É que um documento (eletrônico) contendo a chave pública de um usuário (ou processo) e dados de identificação do mesmo Este documento deve ser assinado por uma autoridade confiável, a Autoridade Certificadora, atestando sua integridade e origem.
Certificados Digitais O padrão mais comumente utilizado para certificados digitais é o denominado X-509 Prevê os seguintes campos: – chave pública do usuário; – nome do usuário proprietário da chave; – nome da organização associada; – data de emissão do certificado; – período de validade da chave.
Tipos de certificados Certificados de CA: utilizados para validar outros certificados; são auto-assinados ou assinados por outra CA. Certificados de servidor: utilizados para identificar um servidor seguro; contém o nome da organização e o nome DNS do servidor. Certificados pessoais: contém nome do portador e, eventualmente, informações como endereço eletrônico, endereço postal, etc. Certificados de desenvolvedores de software: utilizados para validar assinaturas associadas a programas.
Kerberos O protocolo kerberos envolve três servidores: autenticação (Autentication Server), o TGS(Ticket-Grating Server) que concede os ingressos e o servidor que se deseja comunicar
Kerberos O cliente envia um ticket para o AS O ticket contém nome do usuário e o nome do TGS O AS gera uma chave de sessão e criptografa com a chave pública do usuário Cria um TGT (ingresso que concede ingresso) para o usuário apresentar ao TGS e codifica o TGT usando a chave de segredo do TGS (que só é conhecido pelo servidor de autenticação e o servidor TGS) O usuário decifra a primeira mensagem e recupera a chave de sessão. E cria um autenticador(nome+endereço+selo tempo)
Kerberos O usuário envia o pedido então ao TGS para fazer ingresso a um servidor designado. Contém o nome do servidor, o TGT KERBEROS (que foi codificado com o a chave de segredo do TGS), e o autenticador codificado O TGS decifra o TGT com sua chave secreta e então usa a chave de sessão incluída no TGT para decifrar o autenticador Compara a informação do autenticador com a informação do ingresso, o endereço da rede do usuário com o endereço foi enviado no pedido e o tempo estampado com o tempo atual
Kerberos O TGS cria uma chave de sessão nova para o usuário e o servidor final. Inseri esta chave em um ingresso válido(nome do usuário, endereço da rede, um selo de tempo, e um tempo de vencimento) para o usuário apresentar ao servidor O ingresso é codificado com a chave de segredo do servidor designado e o seu nome O TGS também codifica a nova chave de sessão designada que vai ser compartilhada entre o usuário e o TGS. Envia ambas as mensagens de volta ao usuário O usuário decifra a mensagem e a chave de sessão para uso com o servidor designado Ele cria um autenticador novo codificado com a chave de sessão de usuário e servidor final
Kerberos Envia a mensagem codificada pelo TGS e o autenticador codificado com a nova chave de sessão O servidor designado decifra, confere o ingresso, o autenticador e também confere o endereço do usuário e o selo de tempo
SSL(Secure Socket Layer)
SSL Protocolo de segurança desenvolvido pela Netscape Communications A SSL constrói uma conexão segura entre dois soquetes, incluindo: – Negociação de parâmetros entre cliente e servidor – Autenticação mútua de cliente e servidor – Comunicação secreta – Proteção da integridade dos dados
SSL
SSL A SSL é um conjunto de três protocolo situados, dois deles, a nível de aplicação e, o terceiro, entre o protocolo de aplicação e o TC A SSL admite vários algoritmos com opções distintas A principal tarefa da SSL é manipular a compactação e criptografia HTTP sobre a SSL => HTTPS Telnet, FTP, SMTP
SSL Handshake Protocol O usuário envia uma mensagem( versão do SSL, algoritmo de criptografia , compactação, nonce) para o servidor. O servidor escolhe alguns dos algoritmos especificados pelo usuário, um nonce e envia para o usuário O servidor envia um certificado(ou cadeia de certificados) contendo a chave pública O servidor envia uma mensagem para o usuário informando que é a vez dele. O usuário escolhe, ao acaso, uma chave de 384 bits, codifica com a chave pública do servidor e envia.
SSL Handshake Protocol A chave de sessão é a combinação da chave de 384 bits com os dois nonces de maneira complexa O usuário informa que o servidor pode passar para a nova chave de sessão
SSL Record Layer Protocol Tem-se um canal que faz uso de um algoritmo simétrico de criptografia e um algoritmo de inserção de redundância na mensagem (chamada de MAC, Message Autentication Code) As mensagens são comprimidas, inseridas as MACs e então cifradas antes de serem envidadas ao TCP No destino, após a mensagem ser decifrada, a autenticidade da mensagem é verificada, comparando-a com a MAC, quando então ela é descomprimida e envida para a camada de aplicação
- SSL Alert Protocol: – Acompanha os erros na Record Layer, fazendo troca de mensagens para sinalizar problemas com a seqüência de mensagens, erros de certificação ou encriptação. SSL Change Cipher SPEC Protocol: – Sinaliza as transições nas estratégias de cifragem.
SSL Record Layer Protocol – – – Serviços de fragmentação Compressão Autenticação de mensagem Número sequencial Encriptação
Vantagens X Desvantagens Vantagens – Mais convenientes e utilizados nas transações seguras – A implementação é relativamente simples Desvantagens – O processo é lento – O usuário não tem certificados e caso tenham não verificam as chaves
- Slides: 79