segurança em sistemas distribuídos stanley araujo de sousa
TRANSCRIPT
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 sã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 n2 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.
RC2
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
RC4
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
RC5
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
Cifrar Decifrar
Canal Público
Canal Inseguro
Mensagem(abcdef...z)
Mensagem(abcdef...z)
Criptograma
(...)
ChaveKPública
ChaveKSecreta
Bob Alice
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.
ElGamal
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 ElGamal 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 ElGamal
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 2k < 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 7e = 1(mod 20), que produz e = 3.
O texto cifrado é obtido através de C = P3 (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
Cifrar Decifrar
Canal Inseguro
ChaveKPública
(Bob)
ChaveKSecreta
(Bob)≡ ?
Bob AliceCanal 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:– MD5– SHA-1
MD5(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 MD4 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