• Nenhum resultado encontrado

Segurança em Sistemas Computacionais Introdução à Criptografia II

N/A
N/A
Protected

Academic year: 2019

Share "Segurança em Sistemas Computacionais Introdução à Criptografia II"

Copied!
37
0
0

Texto

(1)

Segurança em Sistemas Computacionais

Introdução à Criptografia II

Prof. Esp. Gustavo Cardial

(2)

Tipos de operação de cifras

simétricas

Cifras de fluxo

Também chamadas de “cifras de estado”

Encripta um fluxo de dados, um bit (ou byte) de cada

vez

Cifras de bloco

Texto claro dividido em blocos de n bits (geralmente 64

ou outras potências de 2)

(3)
(4)

Cifras de fluxo

Baseadas na cifra OTP, mas com uma chave

pseudo-aleatória

São mais velozes

Exigem hardware mais simples

(5)

Pseudo aleatoriedade

Números pseudoaleatórios são criados por Geradores

de Números Pseudo Aleatórios (PRNGs, na sigla em

inglês)

Os PRNGs geram números cujas propriedades

estatísticas se aproximam às dos números

aleatórios

“Pseudo” aleatórios porque, apesar de tudo, os

(6)
(7)
(8)

Cifra de Feistel

Cifra antiga, mas é a base de muitas das cifras de bloco em uso atualmente

Exs: Blowfish, DES, RC5, 3DES, etc...

Uma de suas vantagens

As operações de encriptação e decriptação são muito similares, até mesmo idênticas em alguns casos, bastando aplicar operações em ordem inversa. Portanto, apenas metade do código (ou de circuitos) tipicamente necessário para implementar tal cifra

Ela promove duas propriedades importantes, que são a base das cifras de bloco

Difusãocada bit do texto limpo deve afetar o maior número de bits do texto cifrado. Desta forma, escondemos propriedades estatísticas da

mensagem.

Confusãocada bit do texto cifrado deve ser uma função complexa dos bits do texto limpo. Desta forma torna-se “complicada” a relação entre

(9)

Confusão e difusão

Para alcançar as propriedades de “difusão” e

“confusão”, a cifra de Feistel utiliza duas operações (já

vistas)

“Difusão” é obtida com

permutações

“Confusão” é obtida com algoritmos de

substituição

(10)
(11)
(12)

Criptografia de chave pública

Ou criptografia assimétrica

Existência de 2 chaves

● Uma encriptará

● Outra decriptará

Nomenclatura da chave na criptografia simétrica...

● 1 chave → chamada de chave secreta Na criptografia assimétrica...

● 2 chaves → chamada de chave pública e chave privada

Operações na criptografia simétrica → substituições e permutações

Operações na criptografia assimétrica → funções matemáticas

(13)

Por que surgiu?

Surgiu da tentativa de

atacar 2 problemas da criptografia

simétrica

Distribuição de chaves

Como distribuir a chave secreta (que encripta e decripta) de

forma segura?

Assinaturas digitais

Se o uso da criptografia é cada vez mais comum, seria

(14)
(15)

Chaves

Na criptografia assimétrica, as chaves são geradas sempre em dupla

Em geral, na criptografia simétrica uma chave com mais de 128 bits

é tida como segura. Bruteforce levaria muitos e muitos anos

Na criptografia assimétrica, chaves de pelo menos 1024 bits (!)

Chaves secretas (cripto. simétrica) são totalmente aleatórias, portanto um ataque bruteforce contra uma chave secreta de 128 bits possui a complexidade (ou “dificuldade”) de 2128, segura o bastante Chaves privadas (cripto. assimétrica) advém de funções matemáticas. E a complexidade do cálculo de tais funções pode não aumentar na mesma proporção que o número de bits da chave.

(16)

Chaves

Na criptografia assimétrica, as chaves são geradas sempre em dupla

Em geral, na criptografia simétrica uma chave com mais de 128 bits

é tida como segura. Bruteforce levaria muitos e muitos anos

Na criptografia assimétrica, chaves de pelo menos 1024 bits (!)

Chaves secretas (cripto. simétrica) são totalmente aleatórias, portanto um ataque bruteforce contra uma chave secreta de 128 bits possui a complexidade (ou “dificuldade”) de 2128, segura o bastante Chaves privadas (cripto. assimétrica) advém de funções matemáticas. E a complexidade do cálculo de tais funções pode não aumentar na mesma proporção que o número de bits da chave.

(17)

Exemplo

Em certos algoritmos de criptografia assimétrica, a chave privada é um número primo.

Supondo um caso em que a chave tenha 128 bits, o número de chaves a serem testadas num ataque de bruteforce não é 2128 (que seria o caso da criptografia simétrica)

Pois de antemão já poderemos descartar diversas chaves que, sabidamente, não são números primos

Por exemplo, supondo que utilizemos um algoritmo simétrico com uma chave de 3 bits. Para atacá-la com força bruta, teremos que testar um total de 8 chaves: { 000, 001, 010, 011, 100, 101, 110, 111}

Com uma chave de mesmo tamanho, mas utilizando um algoritmo assimétrico que utiliza números primos como chaves, teríamos

(18)

Exemplo ilustrado

Cada pixel do quadrado ao lado representa

um número inteiro positivo. Os pixels

pretos são números primos.

Claramente

percebe-se

a

maior

quantidade de números não-primos, e

portanto de possíveis chaves que, de cara,

seriam

descartadas,

facilitando

o

bruteforce.

(19)

Efeito colateral de chaves

grandes

Ok, na criptografia precisa-se adotar chaves maiores

para tornar o bruteforce inviável

Mas há um efeito colateral!

O tempo para encriptar e decriptar depende do

tamanho da chave!

Chaves tão grandes quanto as utilizadas na

criptografia assimétrica tornam tais cifras muito lentas

para uso geral

(20)

Problema: troca de chave +

arquivos grandes

Dada a velocidade limitada das cifras assimétricas, geralmente opta-se por não utilizá-las durante longas trocas de dados, preferindo-se as cifras simétricas...

À princípio, então, permanece o problema da troca da chave secreta (criptografia simétrica), que pode facilmente ser interceptada por um atacante.

Um uso comum da criptografia assimétrica, porém, é justamente em encriptar não os dados, mas encriptar a chave secreta.

Supondo que A e B queiram se comunicar. A gera um par de chaves pública/privada, e divulga sua chave pública. B gera uma chave secreta (simétrica) , criptografa essa chave secreta com a chave pública de A, e envia. Ao receber dados criptografados com sua própria chave pública, A é o único que pode decriptá-los, pois é o único que possui a chave privada correta. A, então, realiza a decriptação, e com isso obtém a chave secreta (simétrica).

(21)

Envelope digital

No exemplo anterior, pode-se transmitir a mensagem cifrada

(com chave secreta) e a chave secreta cifrada (com a chave

pública) ao mesmo tempo, formando um tipo de mensagem

(22)

Recapitulando...

Cifras assimétricas surgiram para resolver 2

problemas

Distribuição/troca de chaves (solução = envelope

digital)

Assinatura digital

Vimos envelope digital. E quanto a assinatura digital?

É importante garantir a autenticidade – que uma

(23)
(24)

No diagrama anterior, Bob criptografou sua mensagem não com a chave pública de seu destinatário, como de costume.

A encriptação foi realizada com sua própria chave privada

Desta forma, ao receber a mensagem, o destinatário pode tentar decriptá-la com a chave pública de Bob, o remetente. Se a decriptação ocorrer com sucesso, a autenticidade da mensagem está provada: apenas Bob seria capaz de gerar uma mensagem que fosse decodificada com sucesso com sua chave pública. Afinal, só ele possui o par (chave privada).

Isto é possível pois no par de chaves pública/privada, tanto uma quanto outra pode ser usada para criptografar, bastando que a outra seja usada para decriptar.

Atenção: com este uso da criptografia assimétrica, ganhamos autenticidade, mas perdemos confidencialidade!

(25)

Assinatura digital

Caso você precise “assinar um arquivo” grande,

utilizando a técnica anterior para provar que o envio

do mesmo foi realmente realizado por você, qual

problema podemos encontrar?

Problema de performance → criptografar o arquivo

grande com sua chave privada é demorado

(26)

Funções hash

As funções hash mapeiam uma entrada de tamanho variável

(domínio) numa saída de tamanho fixo (imagem)

onde H é a função hash, Z2 é {0, 1} (binário), m é o tamanho

da entrada e n é o tamanho da saída (ambos em número de

bits).

Funções não reversíveis

Após codificar um dado, em posse de tal codificação, não será

possível decodificá-la

(27)

Funções hash

(28)

Voltando à assinatura digital

Na prática, podemos fornecer qualquer arquivo grande para

uma função hash, e teremos uma saída de alguns poucos bits

Essa saída equivale a uma assinatura do arquivo

A ideia da assinatura digital é calcular o hash de uma

mensagem e encriptar este hash com sua chave privada

Envia-se a mensagem + o hash encriptado. O destinatário

visualiza a mensagem normalmente, mas para ter certeza que

a mensagem partiu de você, decripta o hash recebido com sua

chave pública e recalcula o hash da mensagem recebida.

(29)
(30)

Envelope + Assinatura Digital

(31)

Distribuição da chave-pública

Ok, pra conferir se um documento foi mesmo enviado

por alguém (e não foi adulterado),

decripto a

assinatura digital do mesmo usando a

chave-pública do remetente

, e então comparo o hash

resultante com o hash que eu passei na mensagem.

(32)

Certificados digitais

Também conhecidos como

certificados de chave

pública

“Documentos eletrônicos usados para provar a posse

de uma chave pública” (Wikipedia)

(33)

Autoridade Certificadora

Também chamadas de Certificate Authorities (CA's)

(34)

Autoridade Certificadora

Queríamos resolver um problema: como confiar que a chave

pública de uma pessoa é dela mesmo? Precisamos dessa

certeza, para verificar a validade de uma assinatura digital.

A solução vista consiste no certificado digital, que é

basicamente um documento que atesta a validade de uma

chave pública.

Como sabemos que esse documento é válido?

Verificamos a assinatura dele! Ele está assinado pela

autoridade certificadora.

Ora, mas para verificar a validade da assinatura da autoridade

certificadora, precisamos usar a chave pública dela. Como

saberemos se a chave é realmente dela?

(35)

Infraestrutura de chave pública

A solução para o problema de saber se uma determinada chave pública realmente pertence a uma autoridade certificadora está na confiança.

Os sistemas computacionais que dependem de certificados digitais simplesmente possuem uma lista de autoridades certificadoras que confiam (em sua maioria, empresas que seguem determinadas normas técnicas vigentes em cada país) e suas respectivas chaves públicas.

Ou seja, trata-se de um sistema de confiança centralizado (com os CA's

no centro).

(36)
(37)

Referências

Documentos relacionados

• Para evitar danos ao produto (devido a relâmpagos e/ou picos de tensão) durante uma tempestade ou quando o equipamento não for ser usado durante um período de tempo prolongado,

NUTRIÇÃO FUNCIONAL NUTRACÊUTICOS/FITOTERÁPICOS COMPLEXO B 2mg/kg L-GLUTAMINA 20-30mg/kg ZINCO QUELATO 10mg/kg BROMELINA 500mcg-10mg/kg. TARAXACUM

Baseando-se nos resultados iniciais, foram selecionados para demonstração os resultados para o ensaio de estabilidade acelerada frente à luz UV apenas as

Os dados demonstram um cenário de grandes desafios para as Instituições Estaduais Públicas de Educação Superior da Bahia, não apenas no que se refere

Exame de 3 anos Envio do aviso individual para pessoas que enquadram a este exame.. Consultas de congratulações Trazer: 1 toalha de banho Até 4 meses de idade N D 10 e 21

O artigo propõe um caso fictício para ilustrar o uso das tecnologias de Dados Abertos Interligados como mecanismos para tornar interoperáveis informações em acervos de

Devido ao baixo índice de produção teórica nacional sobre o assunto, ocorre por vezes uma dificuldade de interpretação dos dados e também em relação à metodologia

4.3.6.2 O medidor de volume de água pode incluir dispositivos auxiliares. 4.3.6.3 É permitido o uso de dispositivo de leitura remota para ensaios, verificação e leitura à distância,