• Nenhum resultado encontrado

aulas-11-12-13

N/A
N/A
Protected

Academic year: 2021

Share "aulas-11-12-13"

Copied!
15
0
0

Texto

(1)

Disciplina: Segurança da Informação

Data: 25/10/2012

Notas de Aula

Conteúdo

1 Algoritmos Assimétricos ... 2 1.1 RSA ... 2

1.2 Outros Algoritmos Assimétricos Existentes ... 4

2 Assinatura Digital ... 4

2.1 Assinatura Digital de Chave Simétrica ... 5

2.2 Assinatura Digital de Chave Pública ... 5

3 Message Digests (Hash ou impressão digital da mensagem) ... 6

3.1 Algoritmo MD5 ... 7

3.2 Algoritmo SHA-1 ... 7

4 Gerenciamento de Chave Pública ... 8

4.1 Certificados... 8

4.1.1 X.509 ... 11

4.1.2 Caminho de Certificação ... 12

4.1.3 Seja cuidadoso com as suas chaves e certificados ... 14

4.1.4 Seja cuidadoso ao aceitar um certificado digital... 14

(2)

1 Algoritmos Assimétricos

1.1 RSA

Em 1976, dois pesquisadores da Universidade de Stanford, Diffie and Hellman, propuseram um novo tipo de criptosistema, um em quem as chaves de encriptação e decriptação eram diferentes, e a chave de decriptação não pode ser descoberta a partir da chave de encriptação. O método proposto por eles funcionava da seguinte forma. Uma pessoa, chamada Alice, desejando receber mensagens secretas, primeiramente cria duas chaves: uma chave pública para encriptar e outra privada capaz apenas de decriptar o que foi encriptado pela chave pública. Ela então publica no seu site o algoritmo de criptografia e a chave pública gerada por ela (por isso a denominação de algoritmo de criptografia de chave pública dada aos algoritmos de criptografia assimétricos). Alice mantém a chave privada em segredo. Bob, que nunca havia contatado Alice antes, encripta suas mensagens e as envia a Alice. Somente Alice sabe que a mensagem de Bob não foi lida por ninguém, mas visto que somente ela é capaz de decriptar as mensagens que Bob lhe enviou. Se Bob faz o mesmo e divulga sua chave pública na rede, Alice e Bob poderão trocar mensagens de forma confidencial sem que ninguém consiga saber o que eles conversam.

(3)

Um grupo do MIT em 1978 descobriu um método de fazer o algoritmo proposto acima por Diffie and Hellman e esse algoritmo ficou conhecido pelas iniciais dos nomes dos 3

descobridores (Rivest, Shamir, Adleman): RSA.

Esse algoritmo sobreviveu a todas as tentativas de quebra por mais de 25 anos e é considerado muito forte.

A maior desvantagem do RSA é que ele requer chaves de no mínimo 1024 bits para que tenha uma boa segurança (muito acima dos tamanhos das chaves dos algoritmos simétricos), o que faz que o algoritmo seja lento. Logo esse algoritmo é usado basicamente para criptografar apenas a chave dos algoritmos simétricos para fazer a distribuição de forma segura.

O algoritmo RSA é baseado nos seguintes princípios da teoria dos números primos e não será apresentados os detalhes aqui. Didaticamente falando, o que o algoritmo se baseia é num cálculo feito sobre 2 números primos, por exemplo, 3 e 11. Com esses primos ele chega nas seguintes formulas:

(4)

 P = C7 (mod 33)

Com isso ele consegue usar as formulas acima para criptografar e decriptografar como no exemplo abaixo:

Na prática os números primos criados a partir da chave serão números grandes, na ordem de 2512, e não primos pequenos como 3 e 11 usados no exemplo.

1024 e 4096 bits são os tamanhos de chaves recomendados para serem usados no RSA. Estima-se que um ataque força-bruta necessitaria de mais de:

 108 anos para uma chave de 1024 bits

 1020 anos para uma chave de 2048 bits

1.2 Outros Algoritmos Assimétricos Existentes

 Knapsack algorithm (Merkle and Hellman, 1978)

 Curva elíptica (Menezes and Vanstone, 1993)

2 Assinatura Digital

Serve para autenticar documentos legais, financeiros e outros de forma eletrônica (podendo ser transportada por e-mail) sem a necessidade da presença física do papel e caneta para colher uma assinatura que exigiria o envio do documento impresso via correios.

Os desafios da assinatura digital são:

1. O receptor poder verificar a identidade declarada pelo emissor da mensagem; 2. O emissor não poder repudiar a autoria do conteúdo da mensagem; e

3. O receptor não conseguir alterar ou criar uma mensagem falsa do receptor. Exemplo: O emissor solicita ao banco a compra de uma tonelada de ouro. O banco precisa certificar que o emissor é realmente o cliente que se identificou (item 1). Caso o preço do ouro caia e o cliente diga que não enviou a solicitação, o banco poderá provar que ele emitiu a mensagem (item 2). E se o preço do ouro subir, o banco, querendo ficar com a compra do ouro a preço baixo, não terá como alterar a mensagem do emissor para dizer que ele solicitou a compra apenas de 1 quilo de ouro.

(5)

2.1 Assinatura Digital de Chave Simétrica

Uma das formas de ter assinatura digital é com o uso de uma central de autorização na qual todos confiam nela e ela conhece todos (chamado Big Brother - BB).

Cada usuário escolhe a chave secreta e a entrega nas mãos do BB.

Se Alice deseja enviar uma mensagem assinada para o banco, ela criptografa B, RA, t e P pela

chave KA, onde:

 B é identidade do banco,

 RA é um número randômico escolhido por Alice para verificar se a mensagem não é

cópia de outra mensagem recente (evitando ataque de reenvio de mensagens),

 t é um timestamp para assegurar que a mensagem é recente (evitando ataque de reenvio de mensagens), e

 P é o texto que será lido pelo banco

KA(B, RA, t, P) simboliza a mensagem encriptada pela chave KA.

Conforme demonstrado na imagem abaixo, a mensagem de Alice é enviada ao BB que idêntica que a mensagem é de Alice. BB decriptografa a mensagem de Alice, criptografa com a chave do banco e a envia ao banco.

KBB (A, t, P) é a garantia dada pelo BB ao banco que a mensagem foi enviada por Alice. Em caso

de contestação o banco apresenta essa informação criptografada e ao levá-la ao BB ele irá comprovar que é verdadeira.

Um problema do algoritmos de criptografia simétrica para assinatura digital é que todos devem acreditar no BB. Além disso, ele irá ler todas as mensagens assinadas. Quem inspira tal confiança? Governo, banco, advogados, contadores e nenhuma outra organização inspira essa total confiança entre todos.

2.2 Assinatura Digital de Chave Pública

Alice pode enviar uma mensagem assinada para o banco utilizando um algoritmo assimétrico (RSA, por exemplo), onde Alice possui a sua chave privada DA e a chave pública do banco EB.

(6)

Essa solução possui dois problemas. São eles:

 Se Alice pode abrir um BO na delegacia horas depois de enviar a mensagem e alegar que ela não é a autora e a sua chave privada DA dela foi roubada por ladrões

que acessaram seu computador, a lei de alguns locais lhe dará ganho de causa; ou

 Alice pode criar uma nova chave privada para si. Com isso, não haverá como o banco provar que a mensagem realmente é de Alice.

3 Message Digests (Hash ou impressão digital da mensagem)

Os métodos de assinaturas exibidos até o momento sempre garantem autenticidade e confiabilidade.

Caso se deseje apenas garantir autenticidade sem se preocupar se outras pessoas vejam o conteúdo da mensagem, podemos utilizar um sistema mais simples que não requer criptografia dos dados.

Esse esquema se baseia na ideia do uso de uma função hash de mão única que gera um texto de tamanho fixo (geralmente chamado message digest) que possui as seguintes características.

1. Dado a mensagem P, é fácil descobrir o MD(P) (hash de P) 2. Dado MD(P), ele é efetivamente impossível encontrar P

3. Dado P ninguém pode encontrar outra mensagem P’ tal que MD(P) = MD(P’) 4. Uma mudança de 1 bit na mensagem gera um hash totalmente diferente.

Para obter o terceiro critério acima, é necessário que o hash possua pelo menos um tamanho 128 bits.

Utilizando um algoritmo de criptografia assimétrico a mensagem assinada ficaria assim. Gerar o hash de uma mensagem é muito mais rápido que a operação de criptografia.

Logo, posso utilizar o Message Digest para melhorar a performance de assinatura digital de chave simétrica, eliminando a necessidade do BB criptografar a mensagem (ver abaixo).

Já a assinatura digital de chave pública sem preocupação com o sigilo da mensagem basta fazer o seguinte:

(7)

Se algum intruso tentar replicar a mensagem, Bob descobrirá quando calcular o MD(P) e ver que o conteúdo decriptografado no segundo parâmetro da mensagem e ver que o valor não é igual.

3.1 Algoritmo MD5

O algoritmo de geração de hash mais usado são MD5 (Rivest, 1992) e SAH-1 (NIST, 1993). MD5 é o quinto de uma série de message digests concebidos por Rivest. Ele opera multilando bits de uma forma suficientemente complicada que todos os bits da saída são afetados por cada bit da entrada. Ele começa quebrando a mensagem em blocos de 448 bits (módulo 512). Então o comprimento original da mensagem é anexado como um inteiro de 64 bits (448 + 64 = 512 bits). O último passo de pré-computação é inicializar um buffer de 128 bits.

Depois disso, começa a computação, para cada rodada um bloco de 512 bits de entrada é misturado inteiramente com os buffers de 128 bits. Depois de quatro rodadas o conteúdo dos buffer de 128 bits constitui o message digest (hash).

MD5 tem sido atacado por quase 20 anos e algumas vulnerabilidades foram encontradas, mas certos passos internos conseguiram evitar que ele fosse quebrado. Se conseguirem vencer as barreiras que faltam esses algoritmos passará a ser obsoleto, mas até o momento ele não foi quebrado.

3.2 Algoritmo SHA-1

O outro maior algoritmos de hash é o SHA-1 (Secure Hash Algorithm 1), desenvolvido pela NSA e NIST.

Ele também quebra a entrada em blocos de 512 bits, mas gera hashes de 160 bits. A figura abaixo mostra como Alice manda uma mensagem não sigilosa assinada para Bob usando SHA-1 e RSA.

Nesse exemplo Alice gera o hash e o criptografa com a sua chave privada enviando-o junto com a mensagem para Bob. Quando Bob recebe a mensagem ele:

1. gera o hash da mensagem

2. decriptografa o hash assinado que foi enviado pela Alice utilizando a chave pública de Alice

(8)

3. compara se o hash gerado no passo 1 é igual ao dado decriptografado no passo 2.

Outras versões do SHA-1 estão sendo desenvolvida para gerar hashes de 256, 384 e 512 bits.

4

Gerenciamento de Chave Pública

A chave pública não pode ser simplesmente divulgada no site como falamos acima. Pois um intruso pode interceptar os acessos ao site do Bob e enviar para Alice sua chave pública, se fazendo passar por Bob.

4.1 Certificados

Como dito anteriormente, a chave púbica pode ser livremente divulgada. Entretanto, se não houver como comprovar a quem ela pertence, pode ocorrer de você se comunicar, de forma cifrada, diretamente com um impostor.

Um impostor pode criar uma chave pública falsa para um amigo seu e enviá-la para você ou disponibilizá-la em um repositório. Ao usá-la para codificar uma informação para o seu amigo, você estará, na verdade, codificando-a para o impostor, que possui a chave privada correspondente e conseguirá decodificar. Por exemplo, suponha que Bob deseja permitir que Alice e outras pessoas possam se comunicar com ele de forma secreta. Ele pode ir a CA com sua chave publica e seu CPF e solicitar que seja certificada. A CA então cria um certificado como exibido na figura abaixo e assina o hash com a chave privada dela (chave privada da CA). Bob então paga a taxa da CA e leva a sua certificação e a hash assinada num pen-driver. Como primeira tentativa de distribuir a chave pública de forma segura, podemos imaginar um centro de distribuição de chaves públicas disponíveis 24 horas por dia. Mas essa solução não é escalável e rapidamente esse centro de distribuição seria um gargalo, sem falar do problema que seria no caso dele ficar fora do ar.

A solução é uma unidade certificadora de chaves publicas que não precisam ficar on-line o tempo todo. Essas unidades certificadoras são chamada de CA (Certification Authority).

A solução e a criação de certificados digitais.

O certificado digital é um registro eletrônico composto por um conjunto de dados que distingue uma entidade e associa a ela uma chave pública. Ele pode ser emitido para pessoas, empresas, equipamentos ou serviços na rede (por exemplo, um site Web) e pode ser homologado para diferentes usos, como confidencialidade e assinatura digital.

Um certificado digital pode ser comparado a um documento de identidade, por exemplo, o seu passaporte, no qual constam os seus dados pessoais e a identificação de quem o emitiu. No caso do passaporte, a entidade responsável pela emissão e pela veracidade dos dados é a Polícia Federal. No caso do certificado digital esta entidade é uma Autoridade Certificadora (AC).

(9)

Uma AC emissora é também responsável por publicar informações sobre certificados que não são mais confiáveis. Sempre que a AC descobre ou é informada que um certificado não é mais confiável, ela o inclui em uma "lista negra", chamada de "Lista de Certificados Revogados" (LCR) para que os usuários possam tomar conhecimento. A LCR é um arquivo eletrônico publicado periodicamente pela AC, contendo o número de série dos certificados que não são mais válidos e a data de revogação.

A Figura 9.1 ilustra como os certificados digitais são apresentados nos navegadores Web. Note que, embora os campos apresentados sejam padronizados, a representação gráfica pode variar entre diferentes navegadores e sistemas operacionais. De forma geral, os dados básicos que compõem um certificado digital são:

 versão e número de série do certificado;

 dados que identificam a AC que emitiu o certificado;

 dados que identificam o dono do certificado (para quem ele foi emitido);  chave pública do dono do certificado;

 validade do certificado (quando foi emitido e até quando é válido);  assinatura digital da AC emissora e dados para verificação da assinatura.

O trabalho de um certificado é associar uma chave pública com o nome de uma companhia, ou pessoa. Certificados não são secretos ou protegidos. Logo Bob pode colocar o certificado no seu site onde será exibido o certificado e o bloco assinado (hash do certificado criado com o uso do SHA-1).

Agora se um intruso interceptar a mensagem de Alice e enviar seu certificado, ela saberá que não é o Bob.

Se o intruso trocar a chave pública do Bob pela sua, ela também descubrirá a falsificação quando ela gerar o hash da chave (usando SHA-1) e verificar que ao decriptografar a assinatura enviada pelo CA o dado obtido não é igual ao hash gerado. Como o intruso não possui a chave privada do CA, ele não consegue gerar a assinatura do CA (uma hash criptografada com a chave privada do CA). Note que Alice não necessitou que a CA estivesse on-line para fazer a verificação.

(10)

Idade dono do certificado, logotipo, etc.

Apesar de existir uma CAs, as certificações podem ser emitidas por entidades específicas na qual o usuário confia. Por exemplo, um sistema de uma empresa pode criar certificados e enviar esses certificados a seus usuários para que os usuários se conversem sabendo que eles fazem parte do grupo que possui acesso ao sistema, e portanto podem compartilhar informações secretas entre si.

(11)

4.1.1

X.509

X-509 é o modelo padrão de certificação largamente utilizado na Internet.

A primeira versão saiu em 1988 e atualmente está na versão 3 (V3) a qual iremos discorrer aqui.

(12)

4.1.2 Caminho de Certificação

Se existisse apenas uma CA no mundo, obviamente o esquema de certificação não funcionaria, pois iria colapsar devido à carga e seria o risco seria enorme por possuir um único ponto de falha para todo o sistema. Uma alternativa é existir diversas CAs num esquema de cadeia de confiança denominado “caminho de certificação”.

O certificado digital de uma AC é emitido, geralmente, por outra AC, estabelecendo uma hierarquia conhecida como "cadeia de certificados" ou "caminho de certificação", conforme ilustrado na Figura 9.2. A AC raiz, primeira autoridade da cadeia, é a âncora de confiança para toda a hierarquia e, por não existir outra AC acima dela, possui um certificado autoassinado (mais detalhes a seguir). Os certificados das ACs raízes publicamente reconhecidas já vêm inclusos, por padrão, em grande parte dos sistemas operacionais e navegadores e são

atualizados juntamente com os próprios sistemas. Alguns exemplos de atualizações realizadas na base de certificados dos navegadores são: inclusão de novas ACs, renovação de certificados vencidos e exclusão de ACs não mais confiáveis.

(13)

Figura: Caminho de certificação.

Alguns tipos especiais de certificado digital que você pode encontrar são:

Certificado autoassinado: é aquele no qual o dono e o emissor são a mesma entidade.

Costuma ser usado de duas formas:

Legítima: além das ACs raízes, certificados autoassinados também costumam ser

usados por instituições de ensino e pequenos grupos que querem prover confidencialidade e integridade nas conexões, mas que não desejam (ou não podem) arcar com o ônus de adquirir um certificado digital validado por uma AC comercial.

Maliciosa: um atacante pode criar um certificado autoassinado e utilizar, por exemplo,

mensagens de phishing (mais detalhes na Seção 2.3 do Capítulo Golpes na Internet), para induzir os usuários a instalá-lo. A partir do momento em que o certificado for instalado no navegador, passa a ser possível estabelecer conexões cifradas com sites fraudulentos, sem que o navegador emita alertas quanto à confiabilidade do certificado.

Certificado EV SSL (Extended Validation Secure Socket Layer): certificado emitido sob

um processo mais rigoroso de validação do solicitante. Inclui a verificação de que a empresa foi legalmente registrada, encontra-se ativa e que detém o registro do domínio para o qual o certificado será emitido, além de dados adicionais, como o endereço físico.

Dicas sobre como reconhecer certificados autoassinados e com validação avançada são apresentados na Seção 10.1do Capítulo Uso seguro da Internet.

(14)

4.1.3 Seja cuidadoso com as suas chaves e certificados

 utilize chaves de tamanho adequado. Quanto maior a chave, mais resistente ela será a ataques de força bruta (mais detalhes na Seção 3.5 do Capítulo Ataques na Internet);  não utilize chaves secretas óbvias (mais detalhes na Seção 8.2 do Capítulo Contas e

senhas);

 certifique-se de não estar sendo observado ao digitar suas chaves e senhas de proteção;

 utilize canais de comunicação seguros quando compartilhar chaves secretas;  armazene suas chaves privadas com algum mecanismo de proteção, como por

exemplo senha, para evitar que outra pessoa faça uso indevido delas;

preserve suas chaves. Procure fazer backups e mantenha-os em local seguro (se você perder uma chave secreta ou privada, não poderá decifrar as mensagens que

dependiam de tais chaves);

 tenha muito cuidado ao armazenar e utilizar suas chaves em computadores potencialmente infectados ou comprometidos, como em LAN houses, cybercafes, stands de eventos, etc;

 se suspeitar que outra pessoa teve acesso à sua chave privada (por exemplo, porque perdeu o dispositivo em que ela estava armazenada ou porque alguém acessou indevidamente o computador onde ela estava guardada), solicite imediatamente a revogação do certificado junto à AC emissora.

4.1.4 Seja cuidadoso ao aceitar um certificado digital

mantenha seu sistema operacional e navegadores Web atualizados (além disto contribuir para a segurança geral do seu computador, também serve para manter as cadeias de certificados sempre atualizadas);

 mantenha seu computador com a data correta. Além de outros benefícios, isto impede que certificados válidos sejam considerados não confiáveis e, de forma contrária, que certificados não confiáveis sejam considerados válidos (mais detalhes no Capítulo Segurança de computadores);

ao acessar um site Web, observe os símbolos indicativos de conexão segura e leia com atenção eventuais alertas exibidos pelo navegador (mais detalhes na Seção 10.1 do Capítulo Uso seguro da Internet);

 caso o navegador não reconheça o certificado como confiável, apenas prossiga com a navegação se tiver certeza da idoneidade da instituição e da integridade do certificado, pois, do contrário, poderá estar aceitando um certificado falso, criado especificamente para cometer fraudes (detalhes sobre como fazer isto na Seção 10.1.2 do Capítulo Uso seguro da Internet).

5 Bibliografia

[1] Stallings, William. Criptografia e Segurança de Redes – Princípios e Práticas, 4ª edição. Ed Pearson Prentice Hall, 2008.

[2] Cartilha de Segurança para Internet, http://cartilha.cert.br

(15)

Referências

Documentos relacionados

•   O  material  a  seguir  consiste  de  adaptações  e  extensões  dos  originais  gentilmente  cedidos  pelo 

1595 A caracterização do repertório de habilidades sociais dos alunos do Grupo com Baixo Desempenho Acadêmico (GBD) e do Grupo com Alto Desempenho Acadêmico (GAD),

2 - OBJETIVOS O objetivo geral deste trabalho é avaliar o tratamento biológico anaeróbio de substrato sintético contendo feno!, sob condições mesofilicas, em um Reator

Este trabalho buscou, através de pesquisa de campo, estudar o efeito de diferentes alternativas de adubações de cobertura, quanto ao tipo de adubo e época de

Acreditamos que o estágio supervisionado na formação de professores é uma oportunidade de reflexão sobre a prática docente, pois os estudantes têm contato

Preliminarmente, alega inépcia da inicial, vez que o requerente deixou de apresentar os requisitos essenciais da ação popular (ilegalidade e dano ao patrimônio público). No

O enfermeiro, como integrante da equipe multidisciplinar em saúde, possui respaldo ético legal e técnico cientifico para atuar junto ao paciente portador de feridas, da avaliação

Entrega do empenho e abertura do prazo para que o beneficiário da ata entregue o bem/serviço – é feito contato com o beneficiário da ata (o fornecedor que