Segurança em Sistemas Distribuídos Stanley Araujo de Sousa.

Post on 21-Apr-2015

115 views 6 download

Transcript of Segurança em Sistemas Distribuídos 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 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