class: center, middle, title-slide .title[ # Aula 13 - Criptografia ] .author[ ### Leonardo Mancini ] .date[ ### 2023 ] --- class: inverse, middle, center # Revisão --- # Tipos de ataque / ameaças - IP ou Packet sniffing (ataque à confiabilidade) - IP ou DNS spoofing (ataque à autenticidade) - Man in the Middle (ataque à integridade) - DDoS - Distributed Denial of Service (ataque à disponibilidade) --- class: inverse, middle, center # Criptografia --- # Criptografia - Do grego, _escrever secretamente_ - Tem por objetivo resolver um problema que existe desde sempre: como fazer com que mensagens se tornem secretas ao circular por uma mídia insegura. - Governos, militares e corporações são especialmente interessados em criptografia, mas todos nós usamos criptogramas de alguma maneira --- # História - Existem identificadas _escritas secretas_ há pelo menos 3.000 anos. - A Cítala (ou _Sktale_), por exemplo, era uma técnica utilizada pelos espartanos. <br> <br> .center[ <img src="./imagens/citala.png" width="300px" /> ] - Depois de codificada, a fita de couro a tira era enviada como um cinto por um mensageiro. --- # História ### Quadrado de Polibius .center[ <img src="./imagens/cripto_polibus.png" width="800px" /> ] O que significa a frase: .center[ 35 42 34 51 11 14 24 11 07 ] ??? https://siriarah.wordpress.com/2014/01/28/criptografia-cifra-de-polibio-ou-quadrado-de-polibio-em-python/ A cifra de Políbio ou quadrado de Políbio, é um cifra de substituição relatada pelo historiador grego Políbio em seu livro Histórias, que trata da ascensão do Império Romano. -- .center[ "Prova dia 07" ] --- # História Telegrama enviado pelo embaixador alemão Arthur Zimmermann ao governo do México em 1917 .pull-left[ .center[ <img src="./imagens/cripto_telegram.jpg" width="240px"> ] ] .pull-right[ <img src="./imagens/telegrama_decript.jpg" width="250px"> ] ??? https://en.wikipedia.org/wiki/Zimmermann_Telegram The Zimmermann Telegram (or Zimmermann Note or Zimmerman Cable) was a secret diplomatic communication issued from the German Foreign Office in January 1917 that proposed a military alliance between Germany and Mexico. In the event that the United States entered World War I against Germany, Mexico would recover Texas, Arizona and New Mexico. The telegram was intercepted and decoded by British intelligence. Revelation of the contents enraged Americans, especially after German Foreign Secretary Arthur Zimmermann publicly admitted the telegram was genuine on March 3, and helped generate support for the United States declaration of war on Germany in April.[1] The decryption was described as the most significant intelligence triumph for Britain during World War I,[2] and one of the earliest occasions on which a piece of signal intelligence influenced world events.[3] --- class: inverse # Enigma .center[  [Emulador da Enigma](https://www.101computing.net/enigma-machine-emulator/) ] --- # Criptologia - <strong> Criptologia </strong> é o estudo das escritas secretas. Governos, militares e corporações dedicam-se a proteger sua comunicação desde a invenção da escrita. - Diferente da <strong> estenografia </strong>: o esforço de esconder [a existência da mensagem](https://incoherency.co.uk/image-steganography/). Exemplos: tinta secreta, micropontos (WWII), uso de fontes em páginas impressas. - A criptografia transforma a mensagem visível (_plain text_, ou texto simples) em algo ilegível através do processo de <strong> codificação </strong> ou <strong> cifragem </strong> ??? - Um texto cifrado é chamado de <strong> criptograma </strong> E processo reverso é a <strong> decodificação </strong> ou o <strong> deciframento </strong>. - Junto do estudo da criptografia surge a <strong> criptoanálise</strong>, o estudo das técnícas de deciframento das mensagens --- # Criptografia atualmente Fundamental para garantir privacidade e segurança nas comunicações + Telecomunicações + Transações bancárias + Acesso a sites + Assinaturas digitais + Catraca da ESPM Ilegal em muitos países - O Marco Civil da Internet considera invioláveis e sigilosos os fluxos de comunicações pela Internet (dados em trânsito ou dados em repouso) - No entanto, a inviolabiliade pode ser suspensa por ordem judicial ??? https://obcrypto.org.br/wp-content/uploads/2020/08/O-mosaico-legislativo-da-criptografia-no-Brasil-uma-an%C3%A1lise-de-Projetos-de-Lei-1.pdf The most important benefit of cryptography is indeed privacy. Today our lives are completely digitized. Nearly all your private information is stored in one of the many databases from the government, police, city services, banks, commercial holdings, health care services and so on. All this information can get exposed to unauthorized people. We need to stay in control of the technology that ensures our privacy. Cryptography protects the right to privacy and the right to communicate confidentially. Secure communications can protect one’s intimate private life, his business relations, and his social or political activities. --- # Métodos mais comuns - <strong> Substituição: </strong> as letras são substituídas por outras letras ou números. Exemplo: Cifra de César <br> <br> .center[ <img src="./imagens/rot13.png" width="300px" /> ] - É preciso saber qual a _chave (key)_ ou o _livro de código (codebook)_ para conseguir decifrar a mensagem. --- # Métodos mais comuns - <strong> Transposição: </strong> as letras do texto são desordenadas. <br> .center[ <img src="./imagens/cripto_transp.png" width="200px" /> ] <br> - Considerando que a chave seja 321654, o código ficaria .center[ <strong> cvdng eiaii sdncn donox nsatt oivgh </strong> ] --- # Criptografia atualmente - Usa algorítmos e funções matemáticas complexas, que se utilizam de poder computacional em sua base. - Tornam-se problemas matemáticos complexos - Para compreender em profundidade, é necessário entender de matemática avançada, estatística e de computação. .center[  ] ??? https://www.technologyreview.com/s/420287/1978-cryptosystem-resists-quantum-attack/ --- # Três principais formas de criptografia atualmente <strong>- Chaves simétricas:</strong> uma chave para criar e decodificar o criptograma <strong>- Chaves assimétricas:</strong> existem duas chaves, uma pública e uma privada <strong>- Hash functions:</strong> são funções utilizadas para gerar assinaturas digitais --- # Chaves simétricas - Forma mais simples de criptografia. - Eficiente, rápida, demanda pouco poder computacional. <br> .center[ <img src="./imagens/cripto_simetrica.png" width="400px" /> ] <br> - Enquanto as chaves mantiverem-se secretas, a comunicação é segura. - No entanto, como passar de forma segura a chave? --- # Chaves assimétricas - Utilizam chaves diferentes para cifrar e decifrar os dados - A chave privada é usada para decifar. A chave pública, para cifrar. <br> .center[ <img src="./imagens/cripto_assimetrica.gif" width="400px" /> ] - Demanda mais poder computacional do que o modelo de chaves simétricas. Por isso, nem sempre é apropriada para transferir grandes volumes de dados. - Às vezes, usada para enviar uma chave simétrica. ??? - Neste modelo, a chave pública tem que ser distribuída, e a privada, guardada. - https://docs.oracle.com/cd/E19656-01/821-1507/6nmg3rsra/index.html --- # Exemplo de chave pública <center> <img src="./imagens/chavepublica.png" width="260"> </center> --- # Tamanho da chave e força - A força de um processo criptográfico tem a ver com a dificuldade de se quebrar uma chave. - Uma chave de 128 bits oferece 2<sup>128</sup> combinações possíveis, ou 3,4 x 10<sup>38</sup> combinações. + Se todos os computadores já vendidos se juntassem para quebrar essa chave, demoraria 660 x a idade do universo (algo em torno de 13 bilhões de anos) - Uma chave de 256 bits demoraria uns 20 quadrilhões de anos. - Isso até chegarem os processadors quânticos... --- # Hash - São funções derivadas [do conteúdo a ser identificado](https://www.md5hashgenerator.com/). Cria uma sequência de caracteres através de uma fórmula aplicada ao conteúdo. ```r library(openssl) MD5("The quick brown fox jumps over the lazy cog") *= 1055d3e698d289f2af8663725127bd4b MD5("The quick brown fox jumps over the lazy dog") *= 9e107d9d372bb6826bd81d3542a419d6 ``` - Um _hash_ MD5 de 128-bit é representado por uma sequência de 32 caracteres em hexadecimal - O mesmo conteúdo gera sempre o mesmo _hash_ - É impossível transformar o hash de volta em conteúdo ??? Para aumentar a segurança,é preciso salgar a hash https://en.wikipedia.org/wiki/Salt_%28cryptography%29 --- # Usos de criptografia - Codificar HDs - FileVault do OSx, por exemplo. (chave simétrica) - VPNs (chave simétrica) - TSL (ou SSL), conexão segura entre sites e navegadores (chaves assimétricas) - Assinatura eletrônica (chaves assimétricas ou hash) - Ransomware - Por jornalistas: + https://www.theguardian.com/securedrop + https://www.nytimes.com/tips + https://www.revealnews.org/how-to-leak-to-the-center-for-investigative-reporting/ + https://theintercept.com/2016/08/02/como-enviar-informacoes-para-the-intercept/ --- # E-mail É um meio inseguro por design. - Pode-se implementar um esquema de chaves públicas com Thunderbird e PGP (https://ssd.eff.org/module-categories/tool-guides) Mas, atenção: - PGP não encripta toda a mensagem, somente o corpo. As informações a respeito de quem envia e de quem recebe são em _plain text_ - Também não encripta o assunto da msg. - PGP é complexo para a maior parte dos usuários. Opções: - Use servidores seguros, como Proton Mail, entre todas as partes da conversa - Serviços de msg seguros (Signal, WhatsApp) - Servidores de trocas de arquivos grandes criptogrados (SecureDrop) --- # WhatsApp .pull-left[ <small> - Desde 2016, o Whatsapp oferece criptografia "end-to-end" - Como checar se sua conexão está realmente criptografada? **Atenção:** - Whatsapp coleta metadados de totos os usuários (nome, IP, localização, histórico, rede de celular, contatos e dispositivos utilizados) - Dados podem ser compartilhados com o Gov dos EUA e aliados (UK foi o primeiro) - Aparentemente, governos conseguem acessar conteúdo criptografado pelo Whatsapp Web </small> ] .pull-right[ .center[ <img src="./imagens/ecdh-figure-5.png" width="400px" /> ] ]