SEGURANA COMPUTACIONAL Prof Marcelo de Oliveira Rosa Segurana

  • Slides: 165
Download presentation
SEGURANÇA COMPUTACIONAL Prof. Marcelo de Oliveira Rosa

SEGURANÇA COMPUTACIONAL Prof. Marcelo de Oliveira Rosa

Segurança Computacional Situações envolvidas � Eu não quero que VOCÊ saiba o que EU

Segurança Computacional Situações envolvidas � Eu não quero que VOCÊ saiba o que EU fiz no verão passado � Trust no one, Mr. Mulder! � Não confio em ninguém com 32 dentes. . .

Segurança Computacional O que abordaremos aqui: � Problemas básicos � Tipos de cifragem e

Segurança Computacional O que abordaremos aqui: � Problemas básicos � Tipos de cifragem e codificação � Autenticação Segura � Comunicação Segura � Computação e Dados Seguros � Moeda e Eleição Seguros

Problemas básicos Controle de acesso a recursos

Problemas básicos Controle de acesso a recursos

Problemas básicos Proteger dados sensíveis de acesso indevido

Problemas básicos Proteger dados sensíveis de acesso indevido

Problemas básicos Necessidade de transmitir informação sem que TERCEIROS a descubram � Transmissão de

Problemas básicos Necessidade de transmitir informação sem que TERCEIROS a descubram � Transmissão de mensagens militares SEM que inimigos as interceptem � Se as mensagens forem interceptadas, inimigo NÃO deve ser capaz de lê-las. Man-in-the-middle

Problemas básicos Necessidade de transmitir informação sem que TERCEIROS a descubram Man-in-the-middle

Problemas básicos Necessidade de transmitir informação sem que TERCEIROS a descubram Man-in-the-middle

Problemas básicos Necessidade de transmitir informação sem que TERCEIROS a descubram Man-in-the-middle

Problemas básicos Necessidade de transmitir informação sem que TERCEIROS a descubram Man-in-the-middle

Problemas básicos Formas de ataque � Exploração de falhas no sistema Phreaking Morris worm

Problemas básicos Formas de ataque � Exploração de falhas no sistema Phreaking Morris worm (1988) Falhas no sendmail, estouro de buffer no fingerd + falhas sistema de login remoto rsh/rexec Jerusalem (1987) Infectava o MS-DOS, para deletar todos os programas do computador em sextas-feiras 13 Disquetes (lembram? !? !)

Problemas básicos Formas de ataque � Eternal. Blue NSA ☞ MS-Windows (falha no protocolo

Problemas básicos Formas de ataque � Eternal. Blue NSA ☞ MS-Windows (falha no protocolo SMB) SMB – server message block Usado em Wannacry (ataque de resgate)

Problemas básicos Formas de ataque � Eternal. Blue NSA ☞ MS-Windows (falha no protocolo

Problemas básicos Formas de ataque � Eternal. Blue NSA ☞ MS-Windows (falha no protocolo SMB) SMB – server message block Usado em Wannacry � Wannacry Ataque (por que esse nome? ) global explorando falhas do MS-Windows Criptografava todos os seus arquivos Exigia resgate

Problemas básicos Formas de ataque � Wannacry

Problemas básicos Formas de ataque � Wannacry

Problemas básicos Formas de ataque � Stuxnet NSA? Israel? ☞ CLPs das centrífugas do

Problemas básicos Formas de ataque � Stuxnet NSA? Israel? ☞ CLPs das centrífugas do programa nuclear iraniano Sistemas PCS 7, Win. CC e STEP 7 SCADA da Siemens Altamente especializado Armazenada em pendrives ☞ infectar computadores isoladas da internet Exigiu alguém conectá-lo a algum computador iraniano Descoberto por erro de projeto do próprio “vírus” Se propagou além da infraestrutura e chegou ao mundo virtual

Problemas básicos Formas de ataque � Ataque de exaustão Distributed Denial of Service (DDo.

Problemas básicos Formas de ataque � Ataque de exaustão Distributed Denial of Service (DDo. S) Milhares de computadores escravos (por vírus) são comandados remotamente a acessar serviços específicos, exaurindo recursos computacionais. Mydoom ☞ www. sco. com (sítio da Santa Cruz Operation, antiga proprietária da marca UNIX) Mafiaboy ☞ amazon. com, CNN, Dell, e. Bay, Yahoo! Estonia

Problemas básicos Formas de ataque � Ataque de exaustão Distributed Denial of Service (DDo.

Problemas básicos Formas de ataque � Ataque de exaustão Distributed Denial of Service (DDo. S) 24. 000 computadores ☞ bancos russos 620 Gbps de tráfego ☞ Brian Krebs (jornalista que relatou Stuxnet) GCHQ (NSA britânica) tem ferramentas para ataques DDo. S Dia da morte de Michael Jackson

Problemas básicos Formas de ataque � Engenharia Social Usar influência pessoal, carisma, etc, para

Problemas básicos Formas de ataque � Engenharia Social Usar influência pessoal, carisma, etc, para conseguir acessos e dados sensíveis Kevin Mitnick Susan Headley “Aqui é do seu banco. Poderia nos passar sua senha para atualização de cadastro? ”

Cifragem e Codificação Letras e símbolos ☞ Alfabeto Ideogramas chineses, japoneses (katakana, hiragana e

Cifragem e Codificação Letras e símbolos ☞ Alfabeto Ideogramas chineses, japoneses (katakana, hiragana e kanji), egípcios, cuneiformes, etc. Símbolos latinos, gregos, cirílico, etc. Braille, código Morse Arranjo de elementos de alfabeto ☞ Idioma/Língua Mandarim, japonês, coreano, etc. Pedra de Roseta Português, inglês, alemão, etc.

Cifragem e Codificação Cifragem e decifragem de uma mensagem somente é possível se: Mesmo

Cifragem e Codificação Cifragem e decifragem de uma mensagem somente é possível se: Mesmo simbologia Mesmo linguagem (código/cifragem) código/cifragem Mandarim não é entendido por um falante brasileiro nativo Algumas cifragens e decifragens são possíveis Mesma simbologia (Português e Espanhol) Similaridade entre linguagem (ola ☞ hola)

Cifragem e Codificação Primeiras tentativas: ESTENOGRAFIA Escrever mensagem no couro cabeludo (raspado) do mensageiro

Cifragem e Codificação Primeiras tentativas: ESTENOGRAFIA Escrever mensagem no couro cabeludo (raspado) do mensageiro e enviá-lo após seu cabelo crescer Escrever mensagem em seda fina, amassá-la, cobri-la com cera, e dá-la ao mensageiro para engoli-la Escrever mensagem com “tinta” de limão Escrever mensagem, fotografá-la e reduzi-la até um “micro-ponto” � Qual o problema com essa técnica?

Cifragem e Codificação O queremos: � Ocultar o conteúdo da mensagem (M) do espião

Cifragem e Codificação O queremos: � Ocultar o conteúdo da mensagem (M) do espião

Cifragem e Codificação Princípio de Kerchkoff “A segurança de um criptossistema NÃO DEVE depender

Cifragem e Codificação Princípio de Kerchkoff “A segurança de um criptossistema NÃO DEVE depender da manutenção de um criptoalgoritmo mantido em segredo” Qualquer um deve conhecer a cifra: mesmo assim, dado uma mensagem cifrada, o INIMIGO não deve ser capaz de decifrar seu conteúdo. Apenas algum parâmetro deve ser bem guardado Chave

Cifragem e Codificação Próximo passo: cifrar/criptografar M � CIFRA Forma de manipular (algoritmo) sequência

Cifragem e Codificação Próximo passo: cifrar/criptografar M � CIFRA Forma de manipular (algoritmo) sequência de símbolos (dados) de forma a ESCONDER a informação contida nessa sequência. Exemplo: somar uma constante ao código ASCII de M � Qual MARCELO (77 65 82 67 69 76 79) + 2 = OCTEGNQ (79 67 84 69 71 78 81) o problema dessa técnica?

Cifragem e Codificação � Transposição Geração e transmissão de anagramas da mensagem Pode ser

Cifragem e Codificação � Transposição Geração e transmissão de anagramas da mensagem Pode ser muito trabalhoso sem oferecer suficientes garantias de segurança Exemplo (tipo de citale) EU NAO QUERO QUE NINGUEM LEIA ISTO ☞ EUNAOQUEROQUENINGUEMLEIAISTO ☞ E N O U R Q E I G E L I I T ☞ U A Q E O U N N U M E A S O ☞ ENOURQEIGELIITUAQEOUNNUMEASO

Cifragem e Codificação � Transposição Sua vez. . . EQEOEUCETSAEAOUURSRMINITDDDS

Cifragem e Codificação � Transposição Sua vez. . . EQEOEUCETSAEAOUURSRMINITDDDS

Cifragem e Codificação � Substituição Uso de dicionário simples de “tradução” simbólica Cifra de

Cifragem e Codificação � Substituição Uso de dicionário simples de “tradução” simbólica Cifra de César a b c d e f g h i j k l m n o p q r s t u v w x y z V I P H X O A R D L T B Q K E J Z S C U F G M Y M W A segunda linha do dicionário é a chave de cifragem � Qual TENTANDO NAO DORMIR NA AULA ☞ TENTANDONAODORMIRNAAULA ☞ UXKUVKHEKVEHESODSKVVFBV o problema dessa técnica?

Cifragem e Codificação � Substituição Sua vez. . . a b c d e

Cifragem e Codificação � Substituição Sua vez. . . a b c d e f g h i j k l m n o p q r s t u v w x y z V I P H X O A R D L T B Q K E J Z S C U F G M Y M W Escolha uma frase, codifique-a para que todos tentem decodificá-la!

Quebrando cifras Criptoanálise � Técnicas para encontrar as chaves e decifrar mensagens � Usada

Quebrando cifras Criptoanálise � Técnicas para encontrar as chaves e decifrar mensagens � Usada pelo INIMIGO (gato atrás do rato)

Quebrando cifras Criptoanálise � Análise Alta de frequência simbólica probabilidade do símbolo CIFRADO mais

Quebrando cifras Criptoanálise � Análise Alta de frequência simbólica probabilidade do símbolo CIFRADO mais frequente da mensagem corresponder à LETRA mais frequente do IDIOMA da mensagem. Em UXKUVKHEKVEHESODSKVVFBV, o símbolo V ocorre 4 vezes: pode ser A ou E. Alta probabilidade de sequência de poucos símbolos corresponder a palavras simples (QUE, ELA, etc) Praticamente uma análise linguística!

Cifragem e Codificação � Substituição polialfabética Uso de múltiplos dicionário simples de “tradução” simbólica

Cifragem e Codificação � Substituição polialfabética Uso de múltiplos dicionário simples de “tradução” simbólica a b c d e f g h i j k l m n o p q r s t u v w x y z B C D E F G H I J K L M N O P Q R S T U V W X Y Z A B C D F G H I J K L M N O P Q R S T U V W X Y Z A B C D E F

Cifragem e Codificação � Substituição polialfabética Exemplo Usando chave igual a CADE, cifre FACA

Cifragem e Codificação � Substituição polialfabética Exemplo Usando chave igual a CADE, cifre FACA = ? a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z A B C D E F

Cifragem e Codificação � Substituição polialfabética Exemplo Usando chave igual a CADE, cifre FACA

Cifragem e Codificação � Substituição polialfabética Exemplo Usando chave igual a CADE, cifre FACA = IBGF a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z A B C D E F

Quebrando Cifras � Substituição Não polialfabética é imune a análise de frequência!! Note que

Quebrando Cifras � Substituição Não polialfabética é imune a análise de frequência!! Note que o A foi cifrado de modos diferentes Chaves maiores tornam mais difícil a quebra dessa cifra

Cifragem e Codificação � Chaves simétricas Personagens no mundo da criptografia Alice e Bob

Cifragem e Codificação � Chaves simétricas Personagens no mundo da criptografia Alice e Bob desejam se comunicar Eve deseja ouvir o que eles conversam Aqui Alice e Bob possuem a mesma chave de cifragem Carol DEVE desconhecer essa chave Princípios básicos Substituição Permutação

Cifragem e Codificação � Chaves simétricas Substituição Trocar símbolos originais por outros Uso de

Cifragem e Codificação � Chaves simétricas Substituição Trocar símbolos originais por outros Uso de alfabetos Permutação/Transposição Reposicionamento de símbolos segundo uma regra TODOS VAMOS APRENDER = 2 4 1 DAANX TSORE OMPDY DAANX 3 T O D O S V A M O S A P R E N D E R X Y

Cifragem e Codificação � Chaves simétricas Máquina Enigma

Cifragem e Codificação � Chaves simétricas Máquina Enigma

Cifragem e Codificação � Chaves simétricas Máquina Enigma Repetição é a inimiga da segurança

Cifragem e Codificação � Chaves simétricas Máquina Enigma Repetição é a inimiga da segurança Repetições cíclicas Mensagens alemãs apresentavam textos repetitivos Marian Rejewski Allan Turing

Cifragem e Codificação � Chaves simétricas Substituição binária S-Box: entrada de m bits ☞

Cifragem e Codificação � Chaves simétricas Substituição binária S-Box: entrada de m bits ☞ n bits : operação não-linear + efeito avalanche 10110 ☞ 1 011 0 = 000 001 010 011 100 101 110 111 00 0101 1011 1000 0101 0010 0110 1000 1111 01 1010 1111 0001 1001 0111 0010 0111 10 1011 0110 1001 0011 1111 0101 1011 0001 1001 0111 0001 1010 0010 1011

Cifragem e Codificação � Chaves simétricas Substituição binária S-Box: entrada de m bits ☞

Cifragem e Codificação � Chaves simétricas Substituição binária S-Box: entrada de m bits ☞ n bits : operação não-linear + efeito avalanche 10110 ☞ 1 011 0 = 0011 000 001 010 011 100 101 110 111 00 0101 1011 1000 0101 0010 0110 1000 1111 01 1010 1111 0001 1001 0111 0010 0111 10 1011 0110 1001 0011 1111 0101 1011 0001 1001 0111 0001 1010 0010 1011

Cifragem e Codificação � Chaves DES simétricas (Data Encryption Standard) Desenvolvido pela IBM Padronizado

Cifragem e Codificação � Chaves DES simétricas (Data Encryption Standard) Desenvolvido pela IBM Padronizado pelo NBS (National Bureau of Standards) Atual NIST (National Institute of Standards and Technology) “Ajustado” pela NSA (National Security Agency) Chaves de 56 -bits Melhorado no 3 DES (Triple DES)

Cifragem e Codificação � Chaves DES simétricas (Data Encryption Standard) 16 rounds sobre cada

Cifragem e Codificação � Chaves DES simétricas (Data Encryption Standard) 16 rounds sobre cada bloco de 64 bits de M Estrutura Feistel Expansão (32 ☞ 48 bits) + Mixagem (xor bit-a-bit) + substituição + permutação Ajuste de chave Seleção de subchaves por rodada a partir de chave de 56 bits! Cifragem e decifragem são operações “simétricas”

Cifragem e Codificação � Chaves simétricas DES (Data Encryption Standard) 16 rounds Estrutura Feistel

Cifragem e Codificação � Chaves simétricas DES (Data Encryption Standard) 16 rounds Estrutura Feistel Ajuste de chave Esquerda (32 bits) X Direita (32 bits) F(a, b) Subkey 1 (48 bits) Direita (32 bits) F(a, b) Subkey 2 (48 bits)

Cifragem e Codificação � Chaves DES simétricas (Data Encryption Standard) Frágil Interesses de segurança

Cifragem e Codificação � Chaves DES simétricas (Data Encryption Standard) Frágil Interesses de segurança nacional americana Principais problemas Tamanho da chave (56 bits) S-Box

Cifragem e Codificação � Chaves Novas simétricas propostas “Concurso” do NIST para novo padrão

Cifragem e Codificação � Chaves Novas simétricas propostas “Concurso” do NIST para novo padrão de cifragem Alguns concorrentes AES (Advanced Encryption Standard) Serpent Twofish RC 6 MARS

Cifragem e Codificação � Chaves simétricas AES Rede de substituição/permutação Opera sobre blocos de

Cifragem e Codificação � Chaves simétricas AES Rede de substituição/permutação Opera sobre blocos de 128 bits (16 bytes) de M Chaves de 128, 192 e 256 bits 10, 12, ou 14 rounds De acordo com tamanho de chaves Operações em álgebra de corpo finitos (finite fields) + Matrizes 4 x 4 (1 byte por elemento)

Cifragem e Codificação � Chaves AES simétricas

Cifragem e Codificação � Chaves AES simétricas

Cifragem e Codificação � Chaves simétricas Outras disponíveis Blowfish CAMELLIA CAST-128 IDEA (International Data

Cifragem e Codificação � Chaves simétricas Outras disponíveis Blowfish CAMELLIA CAST-128 IDEA (International Data Encryption Algorithm) RC 2 RC 4 SEED Parte da biblioteca Open. SSL (e suas variantes)

Cifragem e Codificação Exercícios � Cifrando e decrifrando usando LINUX Comando openssl Canivete suíço

Cifragem e Codificação Exercícios � Cifrando e decrifrando usando LINUX Comando openssl Canivete suíço para criptografia! Faz cifragem/decrifragem Atua sobre arquivos Gera números aleatórios openssl rand –hex 100 openssl rand –base 64 100 Gera certificados

Cifragem e Codificação Exercícios � Cifrando e decrifrando usando LINUX openssl aes-256 -cbc -a

Cifragem e Codificação Exercícios � Cifrando e decrifrando usando LINUX openssl aes-256 -cbc -a Cifra um texto oriundo da entrada padrão usando cifra AES 256 por blocos (cipher block chaining) Invente uma senha Redigite-a (para termos certeza do que fazermos) Digite o texto a ser cifrado Termine o texto com ENTER e CTRL+D

Cifragem e Codificação Exercícios � Cifrando e decrifrando usando LINUX openssl aes-256 -cbc –d

Cifragem e Codificação Exercícios � Cifrando e decrifrando usando LINUX openssl aes-256 -cbc –d -a Decifra um texto oriundo da entrada padrão usando cifra AES-256 por blocos (cipher block chaining) Digite a senha que você usou anteriormente Copie o texto cifrado anteriormente Termine com ENTER e CTRL+D

Cifragem e Codificação Exercícios � Cifrando e decrifrando usando LINUX openssl des –a openssl

Cifragem e Codificação Exercícios � Cifrando e decrifrando usando LINUX openssl des –a openssl des –d –a Usando DES agora

Cifragem e Codificação � Chaves assimétricas Criptografia com chaves simétricas é suficiente para vencer

Cifragem e Codificação � Chaves assimétricas Criptografia com chaves simétricas é suficiente para vencer man-in-the-middle Problema de distribuição de chaves Como Alice e Bob recebem trocam chaves sem que Eve saiba? O que vocês acham?

Cifragem e Codificação � Chaves Chave assimétricas pública e privada Uso de aritmética modular

Cifragem e Codificação � Chaves Chave assimétricas pública e privada Uso de aritmética modular (resto de divisão) + números primos Conceito de função de mão única ou função “não-inversível” Parece fácil, mas o problema é que X é um valor inteiro!

Cifragem e Codificação � Distribuição Aritmética de chaves modular X 1 2 3 4

Cifragem e Codificação � Distribuição Aritmética de chaves modular X 1 2 3 4 5 6 3 X 3 9 27 81 243 729 3 X % 7 Note: 7 é número primo! primo

Cifragem e Codificação � Distribuição Aritmética de chaves modular X 1 2 3 4

Cifragem e Codificação � Distribuição Aritmética de chaves modular X 1 2 3 4 5 6 3 X 3 9 27 81 243 729 3 X % 7 3 2 6 4 5 1 Note: 7 é número primo! primo

Cifragem e Codificação � Distribuição Escolham % 11 = R Troque R’s com seu

Cifragem e Codificação � Distribuição Escolham % 11 = R Troque R’s com seu colega Calcule um número A entre 0 (zero) e 10 Não conte A para ninguém Calcule 7 A de chaves RA % 11 = S S é uma chave que você trocou com seu colega

Cifragem e Codificação � Distribuição de chaves Parabéns, ninguém sabe A, mas ambos têm

Cifragem e Codificação � Distribuição de chaves Parabéns, ninguém sabe A, mas ambos têm o mesmo S trocando R Eve demorará para encontrar A de ambos!

Cifragem e Codificação � Distribuição Troca Há de chaves Diffie-Hellman-Merkle Equação modular Yx %

Cifragem e Codificação � Distribuição Troca Há de chaves Diffie-Hellman-Merkle Equação modular Yx % P = R P primo, Y<P É possível trocar chaves por meio de comunicação inseguro Problema do logaritmo discreto Com números P grandes, considerável tempo para descobrir X, conhecendo-se Y, P e R. (>1024 bits) variantes mais seguras Diffie-Hellman com curvas elípticas

Cifragem e Codificação � Chaves Chave assimétricas pública e privada Alice e Bob possuem,

Cifragem e Codificação � Chaves Chave assimétricas pública e privada Alice e Bob possuem, cada um, um par de chaves 1 pública e 1 privada Alice e Bob divulgam amplamente suas chaves públicas Eve pode ler as chaves públicas Alice manda uma mensagem para Bob cifrada com a chave pública de Bob decifra a mensagem com sua chave privada

Cifragem e Codificação � Chaves Alice escolhe dois números primos (p e q) p

Cifragem e Codificação � Chaves Alice escolhe dois números primos (p e q) p = 17, q = 11 Alice assimétricas calcula N = p. q e escolhe um número e N = 187, e = 7 Alice divulga N e e

Cifragem e Codificação � Chaves assimétricas Alice conhece p, q (privada) e todos conhecem

Cifragem e Codificação � Chaves assimétricas Alice conhece p, q (privada) e todos conhecem N e e (pública) Bob quer mandar mensagem M para Alice M = ‘X’, que em ASCII é 88 Calcula C = Me % N C = 887 % 187 =

Cifragem e Codificação � Chaves assimétricas Alice conhece p, q (privada) e todos conhecem

Cifragem e Codificação � Chaves assimétricas Alice conhece p, q (privada) e todos conhecem N e e (pública) Bob quer mandar mensagem M para Alice M = ‘X’, que em ASCII é 88 Calcula C = Me % N C = 887 % 187 = (884 % 187 + 882 % 187 + 881 % 187) % 187 = 11 Aritmética modular (matemágica) Bob transmite C para Alice

Cifragem e Codificação � Chaves assimétricas Alice recebe C Alice calcula [e. d] %

Cifragem e Codificação � Chaves assimétricas Alice recebe C Alice calcula [e. d] % [(p-1). (q-1)] = 1 [7. d] % [ 160 ] = 1 ☞ d = 23 Algoritmo de Euclides para MDC Alice decodifica mensagem por M = Cd % N M = 1123 % 187 M = 88

Cifragem e Codificação � Chaves RSA assimétricas (Rivest, Shamir, Adleman) Chaves de Alice pública

Cifragem e Codificação � Chaves RSA assimétricas (Rivest, Shamir, Adleman) Chaves de Alice pública Síntese mensagem secreta privada do processo. . . c 8 s 7 am. Sj#amx sjf!ajg. AMslkd mensagem secreta

Cifragem e Codificação Cifrando e decifrando assimetricamente com o LINUX � Gerar um arquivo

Cifragem e Codificação Cifrando e decifrando assimetricamente com o LINUX � Gerar um arquivo com uma chave privada RSA openssl genpkey -algorithm RSA -out chave_privada. pem -pkeyopt rsa_keygen_bits: 2048 cat chave_privada. pem

Cifragem e Codificação Cifrando e decifrando assimetricamente com o LINUX � Extrair A a

Cifragem e Codificação Cifrando e decifrando assimetricamente com o LINUX � Extrair A a chave pública da chave privada gerada chave que vou distribuir para todo mundo openssl rsa -pubout -in chave_privada. pem -out chave_publica. pem cat chave_publica. pem

Cifragem e Codificação Cifrando e decifrando assimetricamente com o LINUX � Cifrar um texto

Cifragem e Codificação Cifrando e decifrando assimetricamente com o LINUX � Cifrar um texto com a chave pública echo ‘texto’ > texto_sem_cifra. txt openssl rsautl -encrypt -inkey chave_publica. pem -pubin -in texto_sem_cifra. txt -out texto_cifrado. enc openssl base 64 –in text_cifrado. enc

Cifragem e Codificação Cifrando e decifrando assimetricamente com o LINUX � Decifrar o texto

Cifragem e Codificação Cifrando e decifrando assimetricamente com o LINUX � Decifrar o texto cifrado com chave privada openssl rsautl -decrypt -inkey chave_privada. pem -in texto_cifrado. enc -out texto_decifrado. txt cat texto_decifrado. txt

Cifragem e Codificação � Assinatura Digital Como Bob verifica se um documento foi realmente

Cifragem e Codificação � Assinatura Digital Como Bob verifica se um documento foi realmente enviado por Alice? Alice usa chaves assimétricas para “assinar o documento” Gera resumo criptográfico (hash) do documento “Decifra” Decifra resumo criptográfico com sua chave privada Envia documento + resumo criptográfico “decifrado” decifrado = Documento Assinado

Cifragem e Codificação � Assinatura Digital Como Bob verifica se um documento foi realmente

Cifragem e Codificação � Assinatura Digital Como Bob verifica se um documento foi realmente enviado por Alice? Bob checa se Alice realmente enviou documento Também gera resumo criptográfico do documento Cifra esse novo resumo “decifrado” decifrado com chave pública de Alice Teste: resumo cifrado = cifra [ resumo decifrado (chave privada) ] com chave pública

Cifragem e Codificação � Assinatura RSA Digital (Rivest, Shamir, Adleman) Chaves de Alice pública

Cifragem e Codificação � Assinatura RSA Digital (Rivest, Shamir, Adleman) Chaves de Alice pública mensagem secreta 8 Mslgja privada mensagem secreta &ma. Ls 28#@ 8 Mslgja

Cifragem e Codificação � Como gerar os resumos? Funções Hash HASH e MAC ☞

Cifragem e Codificação � Como gerar os resumos? Funções Hash HASH e MAC ☞ Função de mapeamento y = f(x) Geralmente Tamanho(x) > Tamanho(y) Sobrejetora Hash para criptografia Tamanho(y) é constante (fixo) Inversa de f deve ser muito difícil de encontrar Ideal que seja bijetora

Cifragem e Codificação � Funções HASH e MAC Binacional ☞ c 5885 f 9

Cifragem e Codificação � Funções HASH e MAC Binacional ☞ c 5885 f 9 d 5316 b 22804 cb 96 d 5 bc 593982 Itaipu Binacional ☞ ab 35 a 291 ddaa 2 f 32 a 3537 bf 02609 bd 7 a Itaipú Usando função MD 5 Pequenas mudanças no texto ☞ Grandes mudanças no resultado Checagem de integridade de documentos Identidade de arquivos Armazenagem de senhas

Cifragem e Codificação � Funções MAC HASH e MAC (Message Authentication Code) Equivalente criptográfico

Cifragem e Codificação � Funções MAC HASH e MAC (Message Authentication Code) Equivalente criptográfico do CRC Dígito verificador do RG, CPF, etc. Usado em troca de mensagens para autenticar a própria mensagem Difícil alterar a mensagem para preservar mesmo MAC Integridade + Autenticidade

Cifragem e Codificação � Funções HASH e MAC MD 5 SHA-0 SHA-1 SHA-224, SHA-256,

Cifragem e Codificação � Funções HASH e MAC MD 5 SHA-0 SHA-1 SHA-224, SHA-256, SHA-384, SHA-512, e outras NSA SHA-3 NIST

Cifragem e Codificação Gerando resumos e assinando no LINUX � Resumos echo 'meu texto'

Cifragem e Codificação Gerando resumos e assinando no LINUX � Resumos echo 'meu texto' | openssl dgst –md 5 echo 'meu texto' | openssl dgst –sha 256

Cifragem e Codificação Gerando resumos e assinando no LINUX � Assinando echo documentos 'meu

Cifragem e Codificação Gerando resumos e assinando no LINUX � Assinando echo documentos 'meu texto' > documento. txt openssl dgst -sha 256 -sign chave_privada. pem -out resumo. enc documento. txt openssl base 64 -in resumo. enc -out resumo. txt cat resumo. txt

Cifragem e Codificação Gerando resumos e assinando no LINUX � Conferindo openssl assinaturas dgst

Cifragem e Codificação Gerando resumos e assinando no LINUX � Conferindo openssl assinaturas dgst -sha 256 -verify chave_publica. pem -signature resumo. enc documento. txt

Cifragem e Codificação Gerando resumos e assinando no LINUX � Fazendo o mesmo com

Cifragem e Codificação Gerando resumos e assinando no LINUX � Fazendo o mesmo com chave privada criptografada openssl genrsa -aes 128 -out chave_privada_cripto. txt 4096 openssl rsa -in chave_privada_cripto. txt -pubout -out chave_publica_cripto. txt openssl dgst -sha 256 -sign chave_privada_cripto. txt -out resumo. enc documento. txt

Cifragem e Codificação Gerando resumos e assinando no LINUX � Fazendo o mesmo com

Cifragem e Codificação Gerando resumos e assinando no LINUX � Fazendo o mesmo com chave privada criptografada openssl dgst -sha 256 -sign chave_privada_cripto. txt -out resumo. enc documento. txt openssl dgst -sha 256 -verify chave_publica_cripto. txt -signature resumo. enc documento. txt

Autenticação Segura Como nos “logamos” em um computador e adquirimos recursos � Diversos métodos

Autenticação Segura Como nos “logamos” em um computador e adquirimos recursos � Diversos métodos /etc/passwd (/etc/shadow) Linux PAM NTLM LDAP Windows Active Directory Kerberos

Autenticação Segura � /etc/passwd Arquivos onde cada linha contém: Nome dos usuário Senha criptografada*

Autenticação Segura � /etc/passwd Arquivos onde cada linha contém: Nome dos usuário Senha criptografada* (para que o administrador não saiba sua senha) Diretório do usuário (onde você coloca seus dados) Informações adicionais Arquivo (/etc/shadow)* “protegido” Somente o usuário “root” e suas aplicações pode lê-lo e manipulá-lo Autenticação, por exemplo Qual o problema?

Autenticação Segura � /etc/passwd (/etc/shadow)*

Autenticação Segura � /etc/passwd (/etc/shadow)*

Autenticação Segura Linux PAM Ideia básica: aplicações do usuário podem requisitar senha Como evitar

Autenticação Segura Linux PAM Ideia básica: aplicações do usuário podem requisitar senha Como evitar que o programa tenha acesso a senha do usuário? TI/Administradores querem controlar o acesso! Pluggable authentication module Configurado de acordo com o gosto da TI (administradores) auth : Definir quem é o usuário através de alguma credencial account : Definir se o usuário pode fazer o que deseja fazer password: Permite que o usuário troque suas credenciais session: o que o sistema faz antes ou depois da autenticação Qual o problema?

Autenticação Segura NTLM NT LAN Manager Desenvolvido pela Microsoft para seus produtos Baseado em

Autenticação Segura NTLM NT LAN Manager Desenvolvido pela Microsoft para seus produtos Baseado em protocolos de de autenticação desafioresposta Challenge-response authentication Cliente calcula hash() da senha digitada pelo usuário e a envia para o servidor Servidor calcula o hash() da senha que ele conhece e efetua comparação § Geralmente armazena apenas hash(senha) ao invés de senha. Servidor pode enviar desafio também!

Autenticação Segura NTLM Infelizmente é vulnerável Microsoft implementou melhorias ao longo do tempo

Autenticação Segura NTLM Infelizmente é vulnerável Microsoft implementou melhorias ao longo do tempo

Autenticação Segura LDAP Lightweight Directory Access Protocol Microsoft usou-o para implementar seu Windows Active

Autenticação Segura LDAP Lightweight Directory Access Protocol Microsoft usou-o para implementar seu Windows Active Directory Arquitetura Cliente – Servidor

Autenticação Segura LDAP É um diretório de serviços Lista de telefones / Lista de

Autenticação Segura LDAP É um diretório de serviços Lista de telefones / Lista de Ramais / Lista de Emails “Banco de Dados” de informações sobre objetos Chave ☞ Valor § Chave ☞ Distinguished Name (DN) § Valor ☞ Common Name (CN) ou email ou object. Class ou user. Password § O céu é o limite para informações contidas

Autenticação Segura LDAP Adaptado para funcionar com autenticação No Linux ☞ PAM requisita credenciais

Autenticação Segura LDAP Adaptado para funcionar com autenticação No Linux ☞ PAM requisita credenciais (login / senha) do usuário Módulo pam_ldap consulta servidor LDAP (search) pelo DN § Comunicação segura – aguarde próxima seção!!! Módulo pam_ldap checa se senhas são iguais Checagem de senhas não é feita usando a senha mas sua versão criptografada. Módulo pam_ldap deve rodar em ambiente seguro

Autenticação Segura Kerberos Protocolo de autenticação Arquitetura Cliente – Servidor Assume que o meio

Autenticação Segura Kerberos Protocolo de autenticação Arquitetura Cliente – Servidor Assume que o meio de comunicação é inseguro! Usa criptografia simétrica para troca de informações Usa a senha do usuário como chave de criptografia

Autenticação Segura Kerberos Estrutura KDC – Key distribution center Gera chaves usadas na autenticação

Autenticação Segura Kerberos Estrutura KDC – Key distribution center Gera chaves usadas na autenticação TGS – Ticket granting services Gera tickets com duração finita para transporte de informações Servidor do serviço Duas Lógica Básica (2) etapas básicas Obtenção de ticket para usar algum serviço Acesso ao serviço usando ticket

Autenticação Segura Kerberos Obtenção de ticket para usar algum serviço Cliente Recebe credenciais do

Autenticação Segura Kerberos Obtenção de ticket para usar algum serviço Cliente Recebe credenciais do usuário (login / senha) Gera uma chave secreta a partir dessa senha § Pode ser hash, por exemplo § Chave secreta e senha NUNCA trafegam na rede! Cliente ☞ Servidor TGS Requisição de ticket de autenticação para servidor Kerberos § Contém apenas login (sem criptografia)

Autenticação Segura Kerberos Obtenção de ticket para usar algum serviço Servidor TGS Checa se

Autenticação Segura Kerberos Obtenção de ticket para usar algum serviço Servidor TGS Checa se login existe Servidor TGS ☞ Cliente (se login existir) Chave de sessão cifrada com a chave gerada a partir da senha armazenada no servidor Ticket de autenticação cifrado com a chave do TGS § Só ele –TGS – conhece! § ID do usuário [1] + prazo de validade + chave de sessão

Autenticação Segura Kerberos Obtenção de ticket para usar algum serviço Cliente Decifra chave de

Autenticação Segura Kerberos Obtenção de ticket para usar algum serviço Cliente Decifra chave de sessão usando chave gerada localmente a partir da senha do usuário Não decifra ticket de autenticação – só o TGS consegue Cliente possui ☞ Ticket de autenticação + chave de sessão Cliente ☞ Servidor TGS: ID do serviço desejado + ticket de autenticação (continua cifrado com chave do TGS) TGS ID do usuário [1] + timestamp cifrados com chave de sessão

Autenticação Segura Kerberos Acesso ao serviço usando ticket Cliente possui Ticket de autenticação +

Autenticação Segura Kerberos Acesso ao serviço usando ticket Cliente possui Ticket de autenticação + chave de sessão + Ticket cliente-servidor Cliente ☞ Servidor de Serviço (SS – finalmente!): Ticket de cliente-servidor (continua cifrado com chave de serviço) ID de usuário [2] + timestamp cifrados com sua chave de sessão

Autenticação Segura Kerberos Acesso ao serviço usando ticket Servidor de Serviço (SS) Decifra ticket

Autenticação Segura Kerberos Acesso ao serviço usando ticket Servidor de Serviço (SS) Decifra ticket de cliente-servidor com chave de serviço (só TGS e SS conhecem!) Recupera e decifra requisição do serviço Checa ID de usuário [1] = ID de usuário [2] Servidor de Serviço ☞ Cliente Responde com timetamp cifrado com chave de serviço Cliente e Servidor desejado se conhecem e começam a trabalhar juntos

Autenticação Segura Kerberos Mensagens Cliente e Servidor conheciam Apenas 1 servidor (TGS) conhecia Dois

Autenticação Segura Kerberos Mensagens Cliente e Servidor conheciam Apenas 1 servidor (TGS) conhecia Dois servidores conhecem (TGS + SS) Separação foram cifradas usando chaves que entre servidores De Autenticação e Autorização (TGS) Do próprio serviço (SS)

Autenticação Segura Problema das senhas: De nada adianta tudo isso se o usuário usa

Autenticação Segura Problema das senhas: De nada adianta tudo isso se o usuário usa senhas fáceis de descobrir password 12345678 querty abc 123 dragon iloveyou

Autenticação Segura Problema das senhas: De nada adianta tudo isso se o usuário usa

Autenticação Segura Problema das senhas: De nada adianta tudo isso se o usuário usa senhas fáceis de descobrir <data de aniversário> <nome do cônjuge> <data de aniversário do filho> <sobrenome> <nome da namorado/namorada> <nome do animal de estimação>

Comunicação Segura � “Antigamente” computadores não conversavam entre si � Ataques exigiam contato direto

Comunicação Segura � “Antigamente” computadores não conversavam entre si � Ataques exigiam contato direto com os computadores Solução era proteger/controlar seu acesso

Comunicação Segura INTERNET Proposta de protocolos de comunicação entre computadores com premissas: Orientada a

Comunicação Segura INTERNET Proposta de protocolos de comunicação entre computadores com premissas: Orientada a pacotes (blocos de dados) Descentralizada (“ninguém” é dono da rede) Tolerante a falha (queda de nós exige apenas redirecionamento da informação) Alguns problemas atuais originam-se da “antiguidade” da proposta

Comunicação Segura � Computadores conversam entre si usando PROTOCOLOS Modelo conceitual em camadas (OSI

Comunicação Segura � Computadores conversam entre si usando PROTOCOLOS Modelo conceitual em camadas (OSI – Open Systems Interconnection – model) 7 camadas (1 – física, 2 – enlace de dados, 3 – rede, 4 – transporte, 5 – sessão, 6 – apresentação, 7 – aplicação)

Comunicação Segura � Computadores conversam entre si usando PROTOCOLOS Mais usado atualmente: TCP/IP Implementação

Comunicação Segura � Computadores conversam entre si usando PROTOCOLOS Mais usado atualmente: TCP/IP Implementação das 4 primeiras camadas (1 a 4), deixando a camada de aplicação (7) sem definição Interface de programação (API) usa conectores lógicos SOCKETS Orientada a datagramas (UDP) ou a conexão (TCP) Protocolos sem segurança implícita!

Comunicação Segura � Barreiras tecnológicas para impedir acessos não autorizados Iptables e Firewall BIND

Comunicação Segura � Barreiras tecnológicas para impedir acessos não autorizados Iptables e Firewall BIND (Berkeley Internet Name Domain) para DNS (Domain Name System) � No mundo MS Windows temos: firewall e netsh advfirewall (diretamente na linha de comando) NBNS (Net. BIOS Name Service) WINS (Windows Internet Name Service) netsh

Comunicação Segura Iptables e Firewall Controla a propagação de pacotes TCP/IP em uma máquina

Comunicação Segura Iptables e Firewall Controla a propagação de pacotes TCP/IP em uma máquina ou roteador Roteador Máquina “especializada” que gerencia o envio de pacotes Opera na camada 3 do modelo OSI

Comunicação Segura Iptables e Firewall Configurado a partir de regras Todos os pacotes destinados

Comunicação Segura Iptables e Firewall Configurado a partir de regras Todos os pacotes destinados a porta XX devem ser encaminhados para o endereço YY pela porta ZZ Bloqueie todos os pacotes para a porta HTTP (80) Mascare endereços externos para endereços da rede interna 172. 16. 0. 0/12 Gerenciado pelo administrador de redes/TI

Comunicação Segura Iptables e Firewall Roteamento de pacotes é função do núcleo de um

Comunicação Segura Iptables e Firewall Roteamento de pacotes é função do núcleo de um sistema operacional (kernel) “Antigamente” exigia re-compilação do S. O. “Atualmente” apenas exige manutenção de arquivos de regras Permite roteamento baseado no conteúdo dos pacotes Mudança errada de regras pode paralisar toda a rede de uma organização

Comunicação Segura BIND para DNS Servidor responsável pela tradução de nomes em endereços IPs

Comunicação Segura BIND para DNS Servidor responsável pela tradução de nomes em endereços IPs Evita que tenhamos que decorar números para serviços desejados Exemplos www. utfpr. edu. br ☞ 200. 19. 73. 182 www. nsa. org ☞ 96. 7. 195. 243 www. itaipu. gov. py ☞ 131. 161. 254. 21 www. itaipu. gov. br ☞ 189. 42. 28. 193

Comunicação Segura BIND para DNS Funcionamento Cliente faz pergunta aos servidores DNS que conhece

Comunicação Segura BIND para DNS Funcionamento Cliente faz pergunta aos servidores DNS que conhece Cadastrado na própria máquina ou obtido via DHCP Servidor pode saber a resposta ou ter que perguntar a outro servidor Hierarquia em árvore (descentralizado, tolerante a falhas, eficiente) Resposta é o endereço IP (pode receber mais de um) Ferramentas para testar nslookup (Windows e Linux) dig (Linux mas pode ser instalado em Linux)

Comunicação Segura BIND para DNS Funcionamento Cliente faz pergunta aos servidores DNS que conhece

Comunicação Segura BIND para DNS Funcionamento Cliente faz pergunta aos servidores DNS que conhece Cadastrado na própria máquina ou obtido via DHCP Servidor repassar pergunta quando não souber resposta Hierarquia em árvore (descentralizado, tolerante a falhas, eficiente) Resposta é o endereço IP (pode receber mais de um) Ferramentas para testar nslookup (Windows e Linux) dig (Linux mas pode ser instalado em Linux)

Comunicação Segura BIND para DNS

Comunicação Segura BIND para DNS

Comunicação Segura BIND para DNS Tanto a pergunta quanto a resposta são descriptografadas (abertas)

Comunicação Segura BIND para DNS Tanto a pergunta quanto a resposta são descriptografadas (abertas) Ataques man-in-the-middle não são percebidos Intruso pode responder mais rápido que o servidor correto, enganando o cliente Pergunto www. itaipu. gov. br e recebo 200. 19. 73. 182 (endereço da UTFPR) Servidor local DNS pode ser inundado por requisições, que impedem a minha de ser respondida a tempo (Do. S ou Denial of Service)

Comunicação Segura � Como incorporar segurança na comunicação de dados? Incluir criptografia para: Impedir

Comunicação Segura � Como incorporar segurança na comunicação de dados? Incluir criptografia para: Impedir ataques do tipo man-in-the-middle Verificar identidade das partes envolvidas (autenticação)

Comunicação Segura � Conceitos CA adicionais importantes (Certificate authority) Entidade que emite certificados digitais

Comunicação Segura � Conceitos CA adicionais importantes (Certificate authority) Entidade que emite certificados digitais Como um cartório em quem você confia! confia Certificado digital Documento digital cuja assinatura digital pode ser verificada (com prazo de validade) Contém informações como seu dono (emissor)

Comunicação Segura � Conceitos adicionais importantes Números aleatórios (true random numbers e pseudo random

Comunicação Segura � Conceitos adicionais importantes Números aleatórios (true random numbers e pseudo random numbers) Protocolo X. 509 para infraestrutura de chave pública (PKI) Cadeia de confiança

Comunicação Segura Certificado Digital Subject: www. utfpr. edu. br Organization: ITAIPÚ BINACIONAL Address: xxx

Comunicação Segura Certificado Digital Subject: www. utfpr. edu. br Organization: ITAIPÚ BINACIONAL Address: xxx Country: Brazil Chave pública de ITAIPÚ 59 A 9 00 58 AF 03 51 95 CA checa identidade, criptografa-o com a chave PRIVADA do CA e gera seu HASH = assinatura digital Subject: www. utfpr. edu. br Organization: ITAIPÚ BINACIONAL Address: xxx Country: Brazil Chave pública de ITAIPÚ 59 A 9 00 58 AF 03 51 95 Assinatura digital do Certificador CD 06 71 23 AA CE E 8 49

Comunicação Segura Certificado Digital � Vamos criar um certificado auto-assinado Idealmente No você: Cria

Comunicação Segura Certificado Digital � Vamos criar um certificado auto-assinado Idealmente No você: Cria um certificado Submete-o para uma autoridade certificadora que o assina e o reconhece como autêntico exemplo, nós assinaremos nosso próprio certificado Certamente não é seguro, Mas a ideia é entender o processo

Comunicação Segura Certificado Digital � Vamos criar um certificado auto-assinado openssl req -new -x

Comunicação Segura Certificado Digital � Vamos criar um certificado auto-assinado openssl req -new -x 509 -sha 256 -newkey rsa: 2048 -nodes -keyout chave-cert. pem -out cert-autoassinado. pem -days 365 Importante -x 509 Para criar um certificado padrão (X. 509) -nodes Chave gerada não é encriptada (tenha cuidado) Sem essa opção, você tem que fornecer uma “senha” § passphrase

Comunicação Segura Certificado Digital � Vamos criar um certificado para CA assinar Ou CSR

Comunicação Segura Certificado Digital � Vamos criar um certificado para CA assinar Ou CSR (certificate signing request) openssl req -new -sha 256 -newkey rsa: 2048 -nodes -keyout chave-certca. pem -out cert-requisicao. pem -days 365 Também responde perguntas Agora basta enviar a autoridade certificadora (CA) Dá para usar um arquivo contendo essas infos. Note a falta de -x 509

Comunicação Segura Certificado Digital � Para ler o conteúdo do certificado Refletindo o que

Comunicação Segura Certificado Digital � Para ler o conteúdo do certificado Refletindo o que os navegadores (por exempl 0) fazem openssl x 509 -in cert-autoassinado. pem -text –noout openssl req -in cert-requisicao. pem -text -noout

Comunicação Segura De agora em diante, para nos comunicarmos, usaremos chaves assimétricas, com certificação

Comunicação Segura De agora em diante, para nos comunicarmos, usaremos chaves assimétricas, com certificação � Gnu. PGP Pretty Good Privacy Objetivo segurança para massas Philip Zimmermann Para mais informações. . . https: //files. gpg 4 win. org/doc/ gpg 4 win-compendium-en. pdf

Comunicação Segura De agora em diante, para nos comunicarmos, usaremos chaves assimétricas, com certificação

Comunicação Segura De agora em diante, para nos comunicarmos, usaremos chaves assimétricas, com certificação � Gnu. PGP Windows: https: //www. gpg 4 win. org/ Mac: https: //gpgtools. org/index. html � Tarefa Criar para semana que vem. . . seu par de chaves, Divulgar para comunidade, Repassá-la para professor a chave pública!

Comunicação Segura TLS/SSL “Túneis” criptográficos de dados SSL ☞ Secure Sockets Layer TLS ☞

Comunicação Segura TLS/SSL “Túneis” criptográficos de dados SSL ☞ Secure Sockets Layer TLS ☞ Transport Layer Security Usa certificados digitais para garantir que cada lado é quem diz ser! Usa criptografia para proteger a comunicação Implementados na forma de bibliotecas Open. SSL, Libre. SSL, Gnu. TLS, wolf. SSL Usados no desenvolvimento da aplicação

Comunicação Segura TLS/SSL Após o estabelecimento de conexão insegura (TCP/IP) Algoritmos de cifragem e

Comunicação Segura TLS/SSL Após o estabelecimento de conexão insegura (TCP/IP) Algoritmos de cifragem e de troca de chaves são negociados Que idioma usaremos? Certificados são trocados e autenticados Você é quem diz ser? Trocam chaves públicas assimétricas Use minha “caneta especial” para escrever mensagens para mim Trocam chaves simétricas A caneta anterior era lenta: Vamos usar esta que é mais rápida

Comunicação Segura TLS/SSL Comunicação é segura pelo uso de criptografia com chaves simétricas

Comunicação Segura TLS/SSL Comunicação é segura pelo uso de criptografia com chaves simétricas

Comunicação Segura TLS/SSL

Comunicação Segura TLS/SSL

Comunicação Segura Iptable e Firewall Exige proteção das configurações de roteamento contra ataques de

Comunicação Segura Iptable e Firewall Exige proteção das configurações de roteamento contra ataques de acesso Autenticação Segura + Computação e Dados Seguros Veremos mais tarde! Tais serviços atuam na camada 3 do modelo OSI, implicitamente inseguro Níveis superiores devem se responsabilizar pela segurança BIND para DNS Uma tentativa de combater alguns ataques é DNSSEC Incluir criptografia na pergunta e na resposta

Comunicação Segura Ferramentas para INIMIGO � Wireshark Inspeção de todos os pacotes de dados

Comunicação Segura Ferramentas para INIMIGO � Wireshark Inspeção de todos os pacotes de dados Usado como ferramenta de “debug” de protocolos de comunicação Muito usado para inspecionar – sem autorização – redes Wi-Fi Descobrir senhas e outras informações

Comunicação Segura Ferramentas para INIMIGO � KALI Instalação LINUX com ferramentas para avaliação de

Comunicação Segura Ferramentas para INIMIGO � KALI Instalação LINUX com ferramentas para avaliação de segurança de sistemas Projetado para o BEM, mas pode ser usado para o MAL

Comunicação Segura Wi-Fi Rede de comunicação sem fio (IEEE 802. 11) Equivalente a rede

Comunicação Segura Wi-Fi Rede de comunicação sem fio (IEEE 802. 11) Equivalente a rede física, só que via onda eletromagnética Formas de proteção Esconder o SSID Só quem conhece o nome da rede consegue localizá-la Endereços MAC específicos MAC ☞ Media access control address Endereço físico “único” do dispositivo Controle de acesso à rede + cifragem de dados

Comunicação Segura Wi-Fi Controle de acesso à rede + cifragem de dados Protocolo para

Comunicação Segura Wi-Fi Controle de acesso à rede + cifragem de dados Protocolo para aceitar um dispositivo à uma rede privada específica AP (access point) media a entrada do dispositivo a essa rede privada AP Rede privada

Comunicação Segura Wi-Fi Controle de acesso à rede + cifragem de dados WEP (Wired

Comunicação Segura Wi-Fi Controle de acesso à rede + cifragem de dados WEP (Wired Equivalent Privacy) Autenticação por “aperto de mão” (handshake) baseado em desafio ou sem autenticação Ambos os lados conhecem a senha WEP (10 dígitos ☞ 40 bits) Dados cifrados por RC 4 + CRC 32 Dado cifrado = RC 4(senha WEP | “salt”) xor [dado transmitido] § Salt ☞ “número aleatório” para “apimentar” a senha W do usuário

Comunicação Segura Wi-Fi Controle de acesso à rede + cifragem de dados WEP (Wired

Comunicação Segura Wi-Fi Controle de acesso à rede + cifragem de dados WEP (Wired Equivalent Privacy) Insegura Aircrack-ng presente em Kali consegue abrir pacotes e descobrir senha

Comunicação Segura Wi-Fi Controle de acesso à rede + cifragem de dados WAP/WAP-2 (Wi-Fi

Comunicação Segura Wi-Fi Controle de acesso à rede + cifragem de dados WAP/WAP-2 (Wi-Fi Protected Access) Resposta aos problemas do WEP Cifragem de dados com chaves diferentes por pacotes (TKIP) ☞ WPA § RC 4 ☞ M inimiza problema do WEP por usar múltiplas chaves Cifragem de dados baseada em AES § Variante usada em Zigbee Permite autenticação contra servidor RADIUS § Para empresas

Comunicação Segura Wi-Fi Controle de acesso à rede + cifragem de dados WAP/WAP-2 (Wi-Fi

Comunicação Segura Wi-Fi Controle de acesso à rede + cifragem de dados WAP/WAP-2 (Wi-Fi Protected Access) Permite autenticação contra servidor RADIUS § Diversos EAP (Extensible Authentication Protocol) § EAP-MD 5 (Microsoft) ☞ Inseguro mas extremamente comum § EAP-TLS § EAP-SIM §. . . E muito outros

Comunicação Segura Wi-Fi Pausa para vídeo “demonstrativo”

Comunicação Segura Wi-Fi Pausa para vídeo “demonstrativo”

Computação e Dados Seguros Mundo em nuvem � Cloud computing Google, Amazon, Microsoft �

Computação e Dados Seguros Mundo em nuvem � Cloud computing Google, Amazon, Microsoft � Infra-estrutura local Atualização constante (CAPEX elevado) Pessoal + material sobresalente (OPEX elevado) Eu controlo tudo � Infra-estrutura Paga na núvem o que usa Alguém controla tudo por mim

Computação e Dados Seguros Mundo conectado � Máquinas de cartão de crédito/débito Chupa-cabra �

Computação e Dados Seguros Mundo conectado � Máquinas de cartão de crédito/débito Chupa-cabra � Processamento Controle � Equipe (Ex-) de distribuído remoto de carro da Chrysler/FIAT TI funcionário resolve se vingar Ataque interno

Computação e Dados Seguros Hardware pode sofrer ataques Side-channel attacks Objetivo ☞ obter senhas

Computação e Dados Seguros Hardware pode sofrer ataques Side-channel attacks Objetivo ☞ obter senhas e dados sensíveis Extrato de conta bancária Acordos de confidencialidade Informações comerciais relevantes TPM Trusted Platform Module Não confiamos nem no sistema operacional (root)

Computação e Dados Seguros Side-channel attacks Ataques onde se inspeciona características físicas de desempenho

Computação e Dados Seguros Side-channel attacks Ataques onde se inspeciona características físicas de desempenho do hardware para inferir o que ele está fazendo e extrair senhas

Computação e Dados Seguros Side-channel attacks Ataques onde se inspeciona características físicas de desempenho

Computação e Dados Seguros Side-channel attacks Ataques onde se inspeciona características físicas de desempenho do hardware para inferir o que ele está fazendo e extrair senhas

Computação e Dados Seguros TPM Padrão para hardware seguro Pode ser: Conjunto de instruções

Computação e Dados Seguros TPM Padrão para hardware seguro Pode ser: Conjunto de instruções dedicado (SGX) Co-processador dedicado Soluções de software que rodam em ambientes seguros de hardware Máquinas virtuais rodando em hardware seguro

Computação e Dados Seguros TPM Atestação remota Permitir que um elemento externo saiba se

Computação e Dados Seguros TPM Atestação remota Permitir que um elemento externo saiba se está ou não conversando com um software sendo executado em ambiente seguro Handshake seguro com troca de credenciais Geração de números “quase”-aleatórios Selagem Garantir que dados sejam somentendidos pelo processador seguro que o gerou Cifragem em hardware Memória RAM cifrada

Computação e Dados Seguros TPM Intel Conceito de ENCLAVEs Áreas seguras de memória, onde

Computação e Dados Seguros TPM Intel Conceito de ENCLAVEs Áreas seguras de memória, onde códigos são executados de modo “seguro” Intel Core sexta-geração e superior Exige que a placa-mãe saiba trabalhar com SGX Operacional desde 2015/2016 ARM SGX Trust. Zone Processador seguro “dentro” do processador inseguro Anunciado em 2015

Computação e Dados Seguros Dados armazenados em nuvem � Nossos dados estão na nuvem

Computação e Dados Seguros Dados armazenados em nuvem � Nossos dados estão na nuvem Facebook, Google, Amazon, Microsoft Como confiar neles? � Dados sensíveis são cifrados � Problemas com chaves primárias Se dados sensíveis forem chaves, como fazer operações lógicas com dados cifrados? � Ainda um problema em pesquisa!

Computação e Dados Seguros Dados armazenados em nuvem � “Máquina Docker virtual” segura seguro

Computação e Dados Seguros Dados armazenados em nuvem � “Máquina Docker virtual” segura seguro = SCONE (TU Dresden) � Processamento seguro SCBR (University of Neuchatel) + Ta. Lo. S (Imperial College) � Armazenamento Chocolate. Cloud � Smartgrid Institutos + Uni. FEI de dados seguro + CASCA (UTFPR) seguro Lactec + COPEL + Inmetro + UTFPR + UFCG

Moeda e Eleição Seguros Moeda digital ou criptomoeda � Bitcoin Satoshi Nakamoto � Ethereum,

Moeda e Eleição Seguros Moeda digital ou criptomoeda � Bitcoin Satoshi Nakamoto � Ethereum, Cardano, Litecoin, Stellar, NEM, Monero, Ripple, . . .

Moeda e Eleição Seguros Moeda digital ou criptomoeda � Sem autoridade central para gerenciá-las

Moeda e Eleição Seguros Moeda digital ou criptomoeda � Sem autoridade central para gerenciá-las Consenso distribuído � Propriedade Chaves pública e privadas � Transações moeda Evitar definida por cifragem definem troca de propriedade de duplo pagamento! � Evolução transacional é mantida por cifragem � Novas quantidades de uma moeda são criadas em circunstâncias específicas

Moeda e Eleição Seguros Moeda digital ou criptomoeda � Carteira digital Conjunto dos endereços

Moeda e Eleição Seguros Moeda digital ou criptomoeda � Carteira digital Conjunto dos endereços de bitcoin de um usuário Ideal é que se tenha um endereço de bitcoin por transação Evitar que alguém sabia quão rico você é! Fornecedores diversos “cuidam” para observar essa regra/sugestão

Moeda e Eleição Seguros Moeda digital ou criptomoeda � Mineração Realizado por um conjunto

Moeda e Eleição Seguros Moeda digital ou criptomoeda � Mineração Realizado por um conjunto de entidades (mineradores) Rede peer-to-peer Validam uma transação, recebendo uma taxa da operação Taxa é definida por quem requisita uma transação!

Moeda e Eleição Seguros Moeda digital ou criptomoeda � Mineração Operam por consenso N

Moeda e Eleição Seguros Moeda digital ou criptomoeda � Mineração Operam por consenso N mineradores devem chegar no mesmo resultado ☞ confirmação da transação N elevado ☞ elevada confiança na transação Operação difícil mas recompensável “Não se acha ouro em qualquer lugar”

Moeda e Eleição Seguros Moeda digital ou criptomoeda � Blockchain

Moeda e Eleição Seguros Moeda digital ou criptomoeda � Blockchain

Moeda e Eleição Seguros Moeda digital ou criptomoeda � Alice envia 1 BTC para

Moeda e Eleição Seguros Moeda digital ou criptomoeda � Alice envia 1 BTC para Bob Alice submete requisição de transação (bem simples) <“endereços de bitcoin” de Alice> + <“endereços de bitcoin” de Bob> + <valor transferido = 1 BTC> <assinatura digital da requisição> Assinatura digital com chave privada do “endereço de bitcoin” de Alice <hash de trans. prévias que formam 1 BTC> Dinheiro flui por transações Múltiplas entradas ☞ múltiplos destinos

Moeda e Eleição Seguros Moeda digital ou criptomoeda � Alice envia 1 BTC para

Moeda e Eleição Seguros Moeda digital ou criptomoeda � Alice envia 1 BTC para Bob Conjunto de mineradores recebe requisição Procuram por transações com melhores taxas Validam a req. de Alice (checagem da assinatura digital) Hash(requisição + nonce) nonce = <número de bits INICIAIS nulos> Nonce incremental até equação for verificada Quando equação é resolvida Novo bloco é adicionado à blockchain do minerador Resultado é propagado para outros mineradores Outros mineradores confirmam a operação

Moeda e Eleição Seguros Moeda digital ou criptomoeda � Alice envia 1 BTC para

Moeda e Eleição Seguros Moeda digital ou criptomoeda � Alice envia 1 BTC para Bob Alice e Bob aguardam N confirmações N elevado ☞ Maior garantia de transferência Podem aguardar por muito tempo! Depende da taxa de transação paga Confirmações permitem novas transações na blockchain

Moeda e Eleição Seguros Votação Eletrônica (e-voting) � Processo eletrônico para coleta e/ou tabulação

Moeda e Eleição Seguros Votação Eletrônica (e-voting) � Processo eletrônico para coleta e/ou tabulação de resultados de votação Apenas contabilização dos votos Totalmente eletrônica (fim-a-fim) Direct recording eletronic machines (DRE) Brasil Semi-eletrônica Cartões perfurados lidos eletrônicamente (alguns estados EUA) Online

Moeda e Eleição Seguros Votação Eletrônica (e-voting) � Identificação única do eleitor � Dissociação

Moeda e Eleição Seguros Votação Eletrônica (e-voting) � Identificação única do eleitor � Dissociação voto – eleitor � Inviolabilidade do voto � Auditabilidade do voto

Moeda e Eleição Seguros Votação Eletrônica (e-voting) � Identificação Ninguém votará no meu lugar,

Moeda e Eleição Seguros Votação Eletrônica (e-voting) � Identificação Ninguém votará no meu lugar, ou votará mais de 1 vez � Dissociação Apenas única do eleitor voto – eleitor eu sei em quem eu votei � Inviolabilidade Ninguém eleitoral pode alterar meu voto durante o processo � Auditabilidade O do voto processo eleitoral pode ser checado, sem invalidar demais características

Moeda e Eleição Seguros Votação Eletrônica (e-voting) � Segurança fim-a-fim Verificação individual Eu consigo

Moeda e Eleição Seguros Votação Eletrônica (e-voting) � Segurança fim-a-fim Verificação individual Eu consigo saber se meu voto foi corretamente considerado na eleição Verificação universal Um auditor consegue saber que o resultado final é oriundo de todos os votos

Moeda e Eleição Seguros Votação Eletrônica (e-voting) � Método de Farnel Proposto por brasileiros

Moeda e Eleição Seguros Votação Eletrônica (e-voting) � Método de Farnel Proposto por brasileiros Cada eleitor verifica o voto do outro Ninguém sabe em quem votou, . . . mas sabe se seu voto está na urna Duas urnas: Urna primária, com votos sem assinatura Urna com votos assinados (Farnel) Recibo de votação é checar assinatura em votos

Moeda e Eleição Seguros Votação Eletrônica (e-voting) � Prêt à Voter Cada cédula contém

Moeda e Eleição Seguros Votação Eletrônica (e-voting) � Prêt à Voter Cada cédula contém 2 seções Lista dos candidatos em ordem aleatória Id aleatório onde se registra o voto Na votação, descarta-se a seção com a lista de candidatos Um aparato eletrônico lê o voto e o id aleatório O eleitor leva consigo a prova de voto, assinada. Somente a máquina de apuração sabe a relação entre id aleatória e ordem da lista de candidatos

Moeda e Eleição Seguros Votação Eletrônica (e-voting) � Three. Ballot Cédula com três seções

Moeda e Eleição Seguros Votação Eletrônica (e-voting) � Three. Ballot Cédula com três seções idênticas destacáveis Mesmos candidatos na mesma ordem em todas as seções Um ID único para cada seção Vota correto na seção do meio e faz qualquer marcação nas demais seções Seção do meio é que conta para resultado

Moeda e Eleição Seguros Votação Eletrônica (e-voting) � Three. Ballot Uma das seções –

Moeda e Eleição Seguros Votação Eletrônica (e-voting) � Three. Ballot Uma das seções – aleatoriamente escolhida – é copiada e devolvida ao eleitor Recibo só é compreendido pelo eleitor Após eleição, todos os votos são publicados Checagem do recibo

Moeda e Eleição Seguros Votação Eletrônica (e-voting) � Bingo Voting Usa números aleatórios para

Moeda e Eleição Seguros Votação Eletrônica (e-voting) � Bingo Voting Usa números aleatórios para representar/codificar votos Gera N x M votos “nulos” (dummies – números aleatórios) Na N candidatos e M eleitores votação Cada eleitor escolhe um candidato O sistema gera um número aleatório para aquele candidato Copia votos “nulos” para demais candidatos Imprime o recibo com lista de candidatos e respectivos números aleatórios

Moeda e Eleição Seguros Votação Eletrônica (e-voting) � Bingo Voting

Moeda e Eleição Seguros Votação Eletrônica (e-voting) � Bingo Voting

Moeda e Eleição Seguros Votação Eletrônica (e-voting) � Bingo Na Voting apuração Publica-se cópia

Moeda e Eleição Seguros Votação Eletrônica (e-voting) � Bingo Na Voting apuração Publica-se cópia de todos os recibos emitidos Número de votos dummies é checado Usados + descartados Voto por candidato = Número de votos não-“dummies” Auditoria Eu checo meu voto ☞ conheço a minha sequência aleatória Auditor checa totais de votos dummies e não-dummies