Prévia do material em texto
Inserir Título Aqui Inserir Título Aqui Métodos Criptográficos Criptoanálise – Como Quebrar a Criptografia Responsável pelo Conteúdo: Prof. Me. Almir Meira Alves Revisão Textual: Prof.ª Me. Natalia Conti Nesta unidade, trabalharemos os seguintes tópicos: • Introdução; • Rudimentos da Criptoanálise; • Criptografia na Idade Moderna; • Criptoanálise Diferencial e Linear; • Ataques por Adivinhação e Baseados em Dicionário. Fonte: Getty Im ages Objetivo • Compreender e simular maneiras de quebrar criptografias de servidores em ambientes coorporativos. Usar técnicas de hacking ético para criptoanálise e quebra de algoritmos criptográficos comerciais. Caro Aluno(a)! Normalmente, com a correria do dia a dia, não nos organizamos e deixamos para o úl- timo momento o acesso ao estudo, o que implicará o não aprofundamento no material trabalhado ou, ainda, a perda dos prazos para o lançamento das atividades solicitadas. Assim, organize seus estudos de maneira que entrem na sua rotina. Por exemplo, você poderá escolher um dia ao longo da semana ou um determinado horário todos ou alguns dias e determinar como o seu “momento do estudo”. No material de cada Unidade, há videoaulas e leituras indicadas, assim como sugestões de materiais complementares, elementos didáticos que ampliarão sua interpretação e auxiliarão o pleno entendimento dos temas abordados. Após o contato com o conteúdo proposto, participe dos debates mediados em fóruns de discussão, pois estes ajudarão a verificar o quanto você absorveu do conteúdo, além de propiciar o contato com seus colegas e tutores, o que se apresenta como rico espaço de troca de ideias e aprendizagem. Bons Estudos! Criptoanálise – Como Quebrar a Criptografia UNIDADE Criptoanálise – Como Quebrar a Criptografi a Contextualização Em maio de 2017, o mundo se viu às voltas com o ataque de Ransomware chamado WannaCry. Este ataque teve um aspecto técnico específico: ele acessava máquinas com sistema operacional desatualizado e criptografava os arquivos daqueles computadores. Inicialmente, houve um pânico geral. Aquelas primeiras 24 horas impactaram mais de 300.000 computadores pelo mundo. O Brasil foi um dos países mais atacados pelo WannaCry. Deste episódio, surgiram algumas discussões: primeiro, os departamentos de TI e Segurança da Informação devem ficar mais atentos às atualizações dos sistemas opera- cionais. Segundo, como resolver o problema da criptografia dos arquivos? No caso do WannaCry, os criminosos virtuais cobravam “resgates” de US$300.00 para liberar a chave que decriptografava os arquivos. Após esse episódio, o mundo voltou a falar nas maneiras de se quebrar a criptografia, em técnicas que ficaram conhecidas historicamente como criptoanálise. Esta unidade trata da criptoanálise em seus diferentes momentos ao longo da história, desde as cifras manuais até as cifras eletrônicas mais modernas. Aproveite os estudos e fique fera em quebra de criptografia! 6 7 Introdução Você já deve ter ouvido falar na eterna briga do gato contra o rato, certo? Existem diversas situações semelhantes a essas no mundo. Na tecnologia isso não é diferente! Quando um sistema é criado, imediatamente, algumas pessoas começam a investigar esse sistema em busca de falhas de codificação, bugs, problemas na execução e brechas de segurança. O mesmo ocorre com a criptografia. H istoricamente, a criptografia ajudou a resolver inúmeros problemas de proteção da informação. A criptografia deu vantagens a reis, imperadores, governos, exércitos e, mais recentemente, a empresas e pessoas, no que tange a proteção de dados e preser- vação do conteúdo de informações sensíveis. Da mesma forma que nos sistemas, a criptografia também sempre teve a sua briga de gato x rato. Sempre que um novo método criptográfico é apresentado, imediatamente, um conjunto de pessoas passa a tentar quebrá-lo. Muitos métodos foram quebrados ao longo da história, deixando cair por terra toda a vantagem competitiva que os detentores das técnicas tinham antes da quebra. A o conjunto de métodos e técnicas de quebra de algoritmos criptográficos damos o nome de criptoanálise. Nesta unidade, iremos analisar e comprovar como os diversos tipos de cifras criptográficas foram sistematicamente quebrados ao longo da história. A criptoanálise não é uma coisa ruim. Sem ela, não teríamos evoluído no desenvol- vimento de métodos melhores, mais seguros e eficientes ao longo da história. A cripto- análise sempre deu um fôlego novo aos criptólogos, que são aquelas pessoas que criam os métodos criptográficos. Iremos iniciar nosso estudo falando dos métodos manuais de quebra de criptografia. Eles nos darão a base para a compreensão dos métodos de quebra dos algoritmos ele- trônicos, que são realizadas em ambiente computacional. Vamos em frente, pois o estudo da criptoanálise vai nos mostrar muito de como as tecnologias de segurança da informação evoluíram, como algumas guerras foram venci- das e como alguns problemas complexos da sociedade moderna foram resolvidos com o uso do dueto criptografia-criptoanálise. Rudimentos da Criptoanálise Durante a Idade Antiga e a Idade Média, a construção de códigos era baseada em cifras monoalfabéticas. As mais populares, em virtude da fácil utilização e memorização, foram aquelas baseadas em Códigos de César, obtidos por deslocamento de letras. Este tipo de código pode ser quebrado por um método considerado como a pré-história da criptoanálise: “o método da força bruta”. Vamos ver como este método primitivo da criptoanálise se aplica na quebra de códigos. 7 UNIDADE Criptoanálise – Como Quebrar a Criptografi a P rimeiramente, o “método da força bruta” corresponde à análise sistemática de todas as possibilidades de chaves para quebrar o código. Com a mensagem cifrada em mãos, é feito o teste exaustivo de todas as chaves. Este método é eficiente para quebrar o Código de César. A chave é exatamente um número entre 1 e 25 que define seu comprimento. Assim, a partir de um trecho de mensagem interceptada, a qual se supõe estar criptografada por um código de César, basta, com paciência, testar qual das 25 possibilidades deco- dificam o trecho da mensagem. Após definir o número que é a chave do código, toda a mensagem se revela. Como se vê, um código ingênuo deste tipo não resiste ao “método da força bruta”. Outro método importante de criptoanálise referente ao período da pré-história é o “método da palavra provável”. Este método é universal e pode ser utilizado em qualquer situação na qual se tente decifrar uma mensagem. Por exemplo, considere um comu- nicado interceptado durante uma guerra moderna. Provavelmente, neste comunicado estarão presentes palavras como tanque, avião ou inimigo. Então tenta-se supor qual das palavras cifradas podem corresponder à “palavra provável”. Este procedimento, com sucesso, consegue decifrar algumas letras, um passo valioso para a decifragem total. No entanto, o “método da palavra provável” teve sua origem não propriamente na criptografia, mas na busca de revelar mensagens antigas, escritas em alfabetos desco- nhecidos. Embora, como foi apontado, não se trate da decifragem de um código, uma vez que os povos antigos não tinham intenção de esconder as mensagens. Do ponto de vista de quem trabalha com a decifragem de textos, é um problema equivalente. É preciso evocar a palavra certa para abrir a caverna de Ali Babá. No século VII, al-Khalil descreve em seu livro “Kitab al Mu’amma” (o livro das mensa- gens criptográficas) como decifrou antigos criptogramas bizantinos. Sua solução baseou-se na suposição de que o título do criptograma seria “Em nome de Deus”. Este título era co- mum na época em que o criptograma foi escrito e correspondeu à invocação de al-Kahlil. Na Idade Antiga e na primeira metade da Idade Média (até o ano 800), dominavam as cifragens monoalfabéticas, das quais as mais simples são as de tipo código de César. Na mesma época eram praticados dois métodos de decifragem:o método da força bruta e o método da palavra provável. Estes correspondem aos primeiros métodos de criptoanálise. Criptoanálise: a contribuição árabe O s primeiros sinais de ressurgimento da criptografia ocorrem com a Idade de Ouro da civilização árabe, que tem início por volta do ano 750. Pouco interessados em pro- mover guerras de conquistas, os Califas Árabes favorecem o desenvolvimento das ciên- cias, do comércio e da indústria, e desenvolvem uma administração eficaz, utilizando a criptografia na segurança de suas comunicações. O nascimento da criptoanálise ocorre nesta época, com a descoberta do “método da análise de frequências”. Não se sabe ao certo quem, pela primeira vez, propôs o método. 8 9 O primeiro registro aparece no livro “Escritos sobre a decifração de mensagens cripto- gráficas”, do sábio árabe a I-Kindy. A “análise de frequências” explora uma fraqueza fundamental nas mensagens codifi- cadas através de cifras monoalfabéticas: as diferentes frequências com que aparecem os vários símbolos. Veja como funciona o método. Em um texto longo, a frequência de aparecimento das letras é distinta para cada letra. Na língua portuguesa, a letra que mais aparece é a letra a, a segunda é a letra e, em seguida a letra o, o r etc. A aplicação da “análise de frequências” em um texto que se supõe criptograda por um código monoalfabético parte do princípio que o símbolo que aparece repetidamente na mensagem criptografada corresponderia à letra a, em segui- da, o outro símbolo mais frequente seria a letra e, e assim sucessivamente. A partir deste estágio, é preciso fazer ajustes, pois algumas letras têm frequência muito próximas. Uma dose de paciência e intuição são suficientes para completar a decifragem. O “método da análise de frequências” fundou, definitivamente, a criptoanálise em bases científicas a decifradores e instalou a eterna luta entre os criadores e os códigos. A reação europeia A Itália foi um dos primeiros países a ver com profissionalismo e como questão de estado o uso da criptografia. Este momento da história italiana, por volta de 1300, coin- cidiu com as primeiras manifestações do Renascimento. O governo italiano cria um órgão ligado diretamente ao centro do poder, dedicado exclusivamente ao estudo da criptografia, com o objetivo de decifrar as mensagens dos inimigos e aperfeiçoar os métodos de cifragem. Era uma época em que a Europa estava perto de uma revolução no campo das ideias, que influenciou definitivamente o desenvolvimento posterior das ciências, das artes, da política e a visão estabelecida do mundo. Este movimento que abalou o sono da Idade Média foi cunhado com o nome de Renascimento, ocorrendo primeiro na Itália e depois conquistando o resto do mundo. Durante toda a Idade Média, a Europa usou velhas técnicas criptográficas, embora os árabes tenham demonstrado a fragilidade destes métodos diante da análise de frequên- cias. O feito árabe marca o início efetivo da criptoanálise e coloca os decodificadores na frente dos codificadores. A reação da criptografia, com a criação de novos métodos para escapar à análise de frequências, só ocorreria na aurora da Idade Moderna, coincidindo com o início do Renascimento. Este tempo é também marcado pelo nascimento da Imprensa e a consequente mecanização da escrita. Esta nova ferramenta irá influenciar fortemente o desenvolvimento posterior da criptografia. 9 UNIDADE Criptoanálise – Como Quebrar a Criptografi a Criptografia na Idade Moderna Entre os anos 800 e 1200, os árabes desenvolveram um poderoso método de deci- fragem de códigos que foi a análise de frequências. Apesar disso, durante toda a Idade Média, a Europa continuava firmemente presa aos códigos monoalfabéticos, ignorando essa poderosa ferramenta. A Idade Moderna é marcada pelo início do movimento renascentista na Itália, em 1450, e vai até o fim do século XIX. O renascimento abre uma era de grande desenvol- vimento das ciências e das artes, causando impacto na economia e na política. A grande novidade na criptografia ocorre em 1580, com a invenção de uma cifra aparentemente imune à análise de frequências. Denominada cifra de Vigenère, ela fez seu reinado por quase três séculos, até 1850, quando foi quebrada por Babbage. No entanto, apesar de dispor de uma cifra poderosa como a de Vigenère, a Europa não a utilizou intensivamente. Devido à sua complexidade e a fraca mecanização da escrita, foram escolhidas alternativas como as cifras homofônicas e outras soluções mistas, que acrescentaram relativa segurança às cifras monoalfabéticas. A cifra de Vigenère seria usada com regularidade apenas 200 anos mais tarde. Esta situação determinou que as comunicações secretas na Europa, até por volta de 1750, continuassem sensíveis aos ataques da análise de frequências, provocando grande esta- do de confusão, com emocionantes relatos. Início da Era Moderna No ano de 1450, a Itália figura como palco ideal para o desenvolvimento da cripto- grafia. Colocada no epicentro do movimento que criou a Renascença, a Itália era cons- tituída de cidades-estados independentes, cada uma buscando sua hegemonia. Grande parte da correspondência que tratava de política externa, economia e assun- tos militares das cidades-estados era altamente sensível e necessitava de proteção. Conscientes da fragilidade dos códigos monoalfabéticos, frente à análise de frequên- cias, os criptógrafos começaram a desenvolver cifras de substituição homofônicas, onde cada vogal do alfabeto era representada por vários símbolos distintos. Foi usada também a combinação de substituição homofônica com transposição de letras. O novo tempo pedia a formação de uma estrutura organizada para tratar da proteção e interpretação da comunicação. A primeira resposta foi dada por Veneza, em 1452, criando uma secretaria dentro do governo, com o objetivo de lidar com a escrita secreta, solucionando e criando cifras. Esta secretaria foi chamada de “câmara negra”. O primeiro grande nome da criptoanálise da Europa foi Giovanni Soros, que assumiu seu posto em Veneza no ano de 1506. Sua capacidade em decifrar mensagens marcou o período. Nações aliadas de toda a Europa traziam mensagens para serem decifradas 10 11 por Soros. O tratamento de Estado dado à criptografia em Veneza se espalhou, pouco a pouco, por toda a Europa. Em Viena, a partir do ano de 1750, prosperou a mais organizada e eficiente “câmara negra” da Europa, liderada pelo Barão Ignaz von Koch. Toda correspondência nacional ou internacional que chegava ou saía de Viena passava antes pela câmara. As cartas eram violadas e entregues a um batalhão de copistas. Em seguida, o selo era reconstitu- ído e a carta, enviada ao destinatário. A mensagem copiada era entregue a outra equipe de criptoanalistas. Viena se tornou tão eficiente neste setor que vendeu serviço às nações aliadas da Europa. Na França, o primeiro nome ilustre foi Babou, nomeado decifrador de François I. Depois surge o matemático Viète, como o criptologista de Henri IV. Um dos feitos notá- veis de Viète foi decifrar as mensagens criptografadas da corte de Filipe II da Espanha. Conhecedor do fato, o Rei queixou-se ao Vaticano, pedindo que Viète fosse julgado por um tribunal de cardeais, sob acusação de possuir ligações com o demônio. O Papa Cle- mente II, ciente da força dos métodos de Viète, ignorou o pleito. No entanto, finalizando um ciclo, o mais renomado entre os franceses foi Antoine Rossignol (1600-1682), que se tornou célebre por seus trabalhos para Richelieu. Rossig- nol criou a Grande Cifra que só foi quebrada em 1890. Esses fatos marcaram a Idade Moderna na Europa nos séculos XV, XVI e XVII, antes do uso mais intensivo da cifra de Vigenère. De um lado, os criptógrafos continuavam de- pendentes, basicamente, de cifras monoalfabéticas. Por outro lado, criptoanalistas como Babou, Soro, Viète e Rossignol destruíam as mensagens com a análise de frequências. Uma das situações mais trágicas da época ocorrecom a quebra de um código monoal- fabético que provocou a condenação da Rainha Maria da Escócia pela rainha Elisabeth I da Inglaterra. Maria era prisioneira de Elizabeth e, de seu cárcere, trocava correspondên- cia cifrada com um grupo de católicos que tramavam a morte da rainha e a libertação de Maria para assumir o trono inglês. A correspondência de Maria foi interceptada e deci- frada por Thomas Phelipes, secretário de cifras do Reino. Maria foi decapitada em 1538. A fuga desesperada da análise de frequências Após a tomada de consciência europeia da fragilidade dos códigos monoalfabéti- cos, frente ao poder da análise de frequências, ocorreu um verdadeiro vale-tudo. A primeira reação, embora insuficiente, foi a de Crema, em 1452, com os “códigos de substituição homofônica”. U ma cifra homofônica é construída fazendo corresponder cada letra do alfabeto a um conjunto de símbolos diferentes (que podem ser, inclusive, as próprias letras per- mutadas). A quantidade de símbolos associados a cada letra corresponde ao nível de frequência estatística com que esta letra aparece em textos longos. 11 UNIDADE Criptoanálise – Como Quebrar a Criptografi a No caso de um texto longo em português, as vogais aparecem com mais frequência que as consoantes. Uma boa cifra homofônica deve associar muitos símbolos distin- tos a uma mesma vogal e um número reduzido de símbolos a cada consoante. Na figura a seguir, você vê a chave original de substituição homofônica de Crema. Note que, na cifra, para cada uma das letras (a, e, o e u) são associados quatro símbo- los diferentes. Tabela de substituição de Simeone de Crema: http://bit.ly/2QeBbQB. Você se lembra do código do Rei Felipe II da Espanha quebrado por Viète a pedido do Rei Henrique IV da França? Era um código homófono. Naquela época, final do século XVI, o rei Felipe II tinha muitas frentes de batalha. O império espanhol dominava grande parte do mundo e os agentes espanhóis se comunicavam usando uma cifra intrincada. A cifra espanhola era composta por mais de 500 caracteres, onde cada vogal era representada por três símbolos diferentes, cada consoante por dois símbolos, e extensas listas de símbolos para a substituição dos dígrafos e das palavras curtas mais usadas. Além disso, o código era alterado a cada três anos. A complexidade do código não garantiu sua invulnerabilidade. Tratando-se de uma variação monoalfabética, não escapou ao competente Viète, que utilizou de forma bri- lhante a análise de frequências. Humilhado, o rei espanhol foi reclamar com o Papa. Saindo agora das cifras clássicas, temos, no século XX, um imenso território onde a criptoanálise se desenvolveu. Diversas cifras foram criadas e utilizadas em guerras e, posteriormente, houve o sur- gimento das cifras eletrônicas, utilizadas em sistemas computacionais. A Criptografia mecânica e sua quebra A Revolução Industrial criou no homem a paixão pelas máquinas e a esperança de substituição do cansativo trabalho manual pelo mecânico. No fim do século XIX, o telégrafo já estava consolidado com quase 50 anos de exis- tência e a comunicação pelo rádio já era uma realidade. Os primeiros testes positivos foram realizados por Marconi em 1894. Era uma época muito difícil para a criptografia. O surgimento do rádio, uma ferramenta de comunicação poderosa e aberta, exigia uma criptografia ainda mais robusta, à prova de ataques. A cifra de Vigenère, vista como in- decifrável, tinha sido quebrada por Babbage e Kasiski e nada de novo havia sido criado pelos criptógrafos, gerando um sentimento de insatisfação. 12 13 O que aconteceu na Primeira Guerra Mundial A Primeira Guerra Mundial iniciou com a grande ofensiva alemã em 21 de março de 1918. Neste conflito, a mais famosa cifra em uso foi a ADFGVX, obtida com uma combinação de técnicas de substituição e transposição. Em junho de 1918, com menos de três meses de batalhas, o exército alemão estava a 100 quilômetros de Paris e preparava a ofensiva final. Era vital descobrir qual seria o ponto selecionado pelos alemães para penetrar na defesa aliada. A informação permi- tiria a concentração de esforços e a neutralização do efeito surpresa. A esperança da França e dos aliados era decifrar o código ADFGVX. As forças aliadas tinham uma arma secreta: um criptoanalista chamado Georges Pa- vin. Pavin tinha grande reputação por ter quebrado todos os códigos alemães até aquela data. No entanto, no fim de maio de 1918, os franceses interceptam, pela primeira vez, uma mensagem em código ADFGVX que Pavin não conseguia decifrar. O criptoanalista lutou contra a cifra durante dias e noites. Finalmente, em 2 de junho de 1918, conseguiu encontrar a chave que decifraria o algoritmo ADFGVX. A partir deste momento, Pavin começa a decifrar todas as mensagens interceptadas, principalmente a que revelou o ponto escolhido pelo exército alemão para o ataque rumo a Paris. Imediatamente as tropas aliadas reforçaram o local e, uma semana de- pois, o ataque alemão começou. A batalha durou cinco dias. Com a perda do elemento surpresa, o exército alemão recuou. A Segunda Guerra Mundial Foi marcante a entrada em cena da máquina de cifras alemã denominada Enigma, durante a Segunda Guerra Mundial. A primeira foi desenvolvida em 1918 pelo enge- nheiro alemão Arthur Scherbius. O objetivo era facilitar a troca de documentos secretos entre comerciantes e homens de negócios. No entanto, a máquina não conseguiu empolgar o setor. Mais tarde, a invenção de Scherbius se torna interessante para uso militar. O governo alemão adquire o direito de utilização da Enigma e o exército redesenha a máquina, começando a usá-la em junho de 1930 com o nome de Enigma I. Durante a guerra, o modelo inicial é aperfeiçoado e todos os níveis do governo alemão, incluindo o exército e a diplomacia, utilizam a má- quina para se comunicar. O filme Enigma (2001), do diretor Michael Apted, mostra a equipe de decodificadores in- gleses que precisam decifrar, durante a Segunda Guerra Mundial, um código ultra seguro – o Enigma – usado pelos nazistas para mandar mensagens aos seus submarinos. Vale a pena assistir e entender como funcionava a máquina alemã. 13 UNIDADE Criptoanálise – Como Quebrar a Criptografi a V eja alguns detalhes da estrutura da Enigma: • A mensagem era cifrada e decifrada usando o mesmo tipo de máquina. A Enigma lembrava uma máquina de escrever; • Era constituída de um teclado, um painel luminoso, uma câmara com três mistura- dores, um refletor e um painel frontal com cabos elétricos; • A chave para utilização da Enigma dependia de uma configuração de montagem, que compreendia a ordem e posição dos misturadores, conexão dos cabos empare- lhando duas letras no painel frontal e a posição do refletor; • Para cifrar uma mensagem, o operador teclava uma letra e o comando estimulava o circuito elétrico e as letras cifradas apareciam, uma a uma, no painel luminoso. Eram anotadas para compor a mensagem secreta. A máquina Enigma pode ser vista na Figura 1: A Alemanha nazista e os alemães apostavam em sua efici- ência para vencer a guerra. Ela trabalhava com um processo de cifragem complexo e de chave simétrica e, por questões de segurança, a cada mensagem a chave era trocada. A cifra começou a ser quebrada pelo matemático polonês Marian Rejewski, cujo esforço inicial foi baseado em textos cifrados interceptados e em uma lista de três meses de chaves diárias obtidas através de um espião. O trabalho de quebra da cifra Enigma foi concluído pela equipe inglesa liderada por Alan Turing, Gordon Welchman e outros pesquisadores, em Bletchley Park, Inglaterra. A quebra da criptografia da máquina Enigma se deu com o uso de uma máquina chamada Colossus. A Figura 2 mostra a Colussus: Figura 2 – Computador Colossus Fonte: Wikimedia Commons Figura 1 – Máquina Enigma Fonte: Wikimedia Commons 14 15 A Colossus foi um invento tão importante que essa máquina é considerada, por muitos especialistas, como o primeiro computadorda história. A partir da invenção da Colossus, os países aliados puderam saber, com alguma antecedência, o que era transmitido na comunicação dos alemães durante a Segunda Guerra. Essa vantagem foi fundamental para que os aliados pudessem vencer essa Guerra. Após a Segunda Guerra Mundial, o mundo evoluiu rapidamente e novas tecnolo- gias foram criadas e desenvolvidas. Uma das mais importantes e com impacto direto na vida das pessoas foi a invenção dos computadores. Eles mudaram e continuam mudando o mundo. Os computadores também trouxeram um novo desafio: como proteger a quantidade de informações armazenadas e trafegadas por eles. Ao longo da história recente, diversas técnicas eletrônicas de criptografia foram cria- das. Podemos destacar 3 delas como sendo as mais relevantes: DES, AES e RSA. As duas primeiras são cifras de criptografia simétrica, enquanto a terceira é uma cifra de criptografia de chave pública. Todos os 3 métodos são eficientes e tem seus méritos. Uma característica que chama a atenção quanto à eficiência destes métodos é a dificul- dade de se quebrar qualquer um destes tipos de criptografia. Por exemplo, até hoje, não há um registro de que a criptografia RSA tenha sido que- brada. O que se tem é a quebra de “senhas fracas” usadas no RSA. Um exemplo de uso inteligente da criptografia simétrica Vamos voltar ao problema fundamental que preocupou os criptógrafos de todos os tempos: a distribuição das chaves. Para pensar a questão, você pode escolher Alice, Bob e Eva, personagens fictícios da literatura da criptografia para animar a discussão. A situação típica a ser analisada ocorre quando Bob quer mandar mensagens para Alice, sob o risco de Eva interceptar a comunicação. Bob e Alice precisam combinar as chaves que serão usadas ao longo da troca das mensagens. Na criptografia simétrica, uma mesma chave será usada por Bob para codificar uma mensagem e por Alice para decodificá-la. Neste momento é que ocorre o problema. No processo de comunicação da chave, Eva pode ter acesso. Em uma situação mais sim- ples, Bob e Alice podem marcar um encontro mensal, onde combinam as chaves. Mas se Bob e Alice estão distantes, qual seria o meio seguro para trocar a chave? Esta é a fragilidade principal dos algoritmos de chave simétrica. A chave que cifra a mensagem é a mesma que a decifra. A necessidade de uma chave simétrica foi considerada uma verdade necessária durante quase dois mil anos, até que foi contrariada em 1976, com a criação do conceito de chave pública/chave privada. Mas voltando à pergunta: será possível a troca secreta de mensagens entre Bob e Ali- ce sem que haja previamente uma combinação das chaves? Vamos imaginar a seguinte situação que poderia ter ocorrido na época do Imperador Júlio César. 15 UNIDADE Criptoanálise – Como Quebrar a Criptografi a Veja como Alice e Bob podem trocar mensagens secretas sem nenhuma combinação prévia de chaves. Alice deseja comunicar, em segredo, para Bob a mensagem: “encontro” E assim escolhe para cifrar um código de César, que avança duas casas do alfabeto. Isto é, a letra a será cifrada como C, a letra b será cifrada como D e assim por diante. Desta forma, a mensagem “encontro”, cifrada por Alice, chegaria para Bob como: “G P E Q P V T Q” Bob, ao receber a mensagem cifrada, escolhe a sua cifra pessoal, do tipo César, que corresponde a avançar cinco casas no alfabeto, aplica nova cifragem na mensagem e reenvia para Alice. Veja como fica a mensagem duplamente cifrada ao chegar até Alice: “L U J V U C A V” Agora é o momento de Alice retirar da mensagem sua cifra usando sua chave pesso- al, e retornar a mensagem para Bob. Decifrar para Alice é recuar duas casas no alfabeto. Veja como chega para Bob a mensagem, após a atuação de Alice: J S H T S A X T” Bob recebe uma mensagem que tem apenas a intervenção de sua cifra. A cifra de Ali- ce foi retirada. Portanto, Bob pode agora decifrar a mensagem utilizando sua chave pes- soal, que no caso de decifragem corresponde a recuar cinco casas no alfabeto. Ao final deste processo, Bob pode finalmente ler a mensagem que Alice passou secretamente: “e n c o n t r o” O que aconteceu no processo? Houve uma troca secreta de mensagens entre Bob e Alice sem necessidade prévia de combinar chaves. Bob tem uma chave e Alice outra chave. Ambas são chaves simétricas. Este exemplo simples mostra a possibilidade da troca de mensagens secretas entre duas pessoas sem necessidade da troca prévia da chave. É evidente que nem sempre a situação é simples, como o código de César. Pela primeira vez, você viu, através de um exemplo, que a troca prévia de chaves não é uma parte intrínseca, inevitável da criptografia. Agora que vimos que, mesmo usando um método de chave simétrica, é possível re- solver o problema das trocas de chaves, podemos reafirmar que a criptografia de chave pública é realmente mais segura, uma vez que utiliza técnicas muito mais complexas para garantir a segurança da transmissão da informação, uma vez que utiliza chaves diferentes na cifragem e na decifragem, sem a necessidade de troca prévia de chaves entre os atores que enviam e recebem informações. Mas, se esses métodos são considerados tão seguros, como fica a criptoanálise? Será que é possível quebrar os algoritmos mais modernos de criptografia? 16 17 A resposta mais correta é: sim, é possível quebrar qualquer tipo de criptografia, mas talvez não se tenha conseguido poder computacional suficiente para isso ou a técnica mais eficiente para esta quebra talvez não tenha sido criada ainda. Na sequência, vamos falar do processo de criptoanálise utilizado em cifras eletrônicas e iremos dar alguns exemplos de como proceder em suas tentativas de quebrar a cripto- grafia presente nos sistemas computacionais. Criptoanálise Diferencial e Linear Os algoritmos DES, 3DES e AES são cifradores de bloco, ou seja, a cada rodada de cifragem, essas técnicas codificam vários bits de cada vez, aumentando a performance do processo de cifragem. A vulnerabilidade do DES foi demonstrada em 1998, quando a Electronic Frontier Foundation construiu uma máquina especificada para quebrar o DES com um ataque de força bruta. A máquina custou US$ 250.000,00 e continha 18.000 chips fabricados espe- cificamente para esta finalidade. A quebra do DES por esta máquina levou pouco mais de 2 dias. Ainda hoje, o ataque mais eficiente contra o DES ainda é o de força bruta. A Criptoanálise Diferencial - CD Este tipo de criptoanálise funciona com cifradores de bloco, cifradores de fluxo e funções de hash usados em criptografia. Esta técnica pode ser descrita como o estudo de como as diferenças entre duas en- tradas do algoritmo podem afetar as diferenças das saídas destas entradas. No caso das cifras de bloco, a CD estuda como uma diferença em duas entradas se propaga através das diversas etapas do algoritmo. A CD tenta explorar estas propriedades para ganhar acesso à chave. Esta técnica é considerada ineficiente em relação ao DES. O segredo está no projeto dos S-Boxes do DES, que altera o número de bits em algumas etapas do processo de cifragem, aumentando a segurança do algoritmo e dificultando a sua análise pela CD. A Criptoanálise Linear - CL É um ataque que tenta encontrar aproximações lineares para as transformações que ocorrem em um algoritmo criptográfico, isto é, tenta encontrar relações lineares que ocorram com alta probabilidade, envolvendo textos claros conhecidos, textos cifrados correspondentes e sub-chaves. Uma expressão linear assume a forma de uma soma bit a bit, usando a função XOR. Seja P um texto claro conhecido, C o texto cifrado correspondente e K a chave. Supo- nha que o algoritmo estudado use blocos de n bits e chave de m bits. 17 UNIDADE Criptoanálise – Como Quebrar a Criptografi a O texto claro é o bloco P[1], P[2],....,P[n], o texto cifrado é o bloco C[1], C[2],....,C[n] e a chave é o bloco K[1], K[2],....,K[m]. Defina A [i, j, ....,k]=A[i]⊕A[j] ⊕.....⊕A[k] ⇒ (soma XORde certos bits do bloco A) Na criptoanálise linear tenta-se encontrar expressões do tipo: P[α1, α2, ..., αa]⊕C[β1, β2, ... βb] = K[γ1, γ2, ..., γc] (1) Devemos testar essa relação com uma grande quantidade de textos claros e cifrados. Se tivermos: K[γ1, γ2, ..., γc] = 1 ou K[γ1, γ2, ..., γc] = 0 Se encontrarmos várias relações deste tipo, estes resultados podem ser combinados para encontrar a chave. Ataques por Adivinhação e Baseados em Dicionário Podemos dizer que, em Segurança da Informação, o elo fraco é o ser humano. Um ataque de força bruta é realizado por tentativa e erro. Normalmente, este ataque começa com algo simples: o aproveitamento da tendência de as pessoas utilizarem senhas fracas. Em sistemas que possuam muitos usuários, cada um com sua própria senha, é co- mum que algum deles escolha uma senha óbvia, simples, como seu próprio nome ou de uma pessoa conhecida ou uma data de nascimento, além de senhas como 123456 ou abc123. Mesmo que este tipo de senha não seja utilizado, é muito comum o uso de senhas que sejam construídas por palavras existentes em dicionários. Um ataque a um sistema pode utilizar um dicionário para testar diversas palavras como senha e, devido ao poder computacional, a quebra da segurança pode ser feita em pouco tempo. Demonstrando um Ataque de Dicionário Para ilustrar o processo de quebra de senhas por um ataque de dicionário iremos demonstrar a seguir esse processo, realizado em um computador com o sistema opera- cional Kali Linux instalado. A ferramenta utilizada é o John The Ripper, que é muito utilizada em pentests e análises de vulnerabilidades de senhas. 18 19 A Figura 3 mostra o início do processo, onde devemos copiar as pastas relativas às contas de usuários e senhas criptografadas. No Linux, os usuários podem ser visualiza- dos em /etc/passwd e as senhas criptografadas em /etc/shadow. Figura 3 – Início do processo de uso do John The Ripper Neste comando executado na Figura 3, primeiramente, estamos copiando os conte- údos de /etc/passwd e /etc/shadow para o diretório atual. Em seguida, estamos com- binando os dois arquivos em outro arquivo. No exemplo, criamos o arquivo quebrar. A Figura 4 mostra os 3 arquivos no diretório atual. Figura 4 Se quisermos ver o conteúdo do arquivo quebrar podemos utilizar o comando cat, conforme mostrado na Figura 5. Figura 5 A Figura 6 mostra o conteúdo combinado dos arquivos shadow e passwd. No final deste arquivo podemos ver que os usuários príncipe e princesa possuem senhas criptografadas. Figura 6 19 UNIDADE Criptoanálise – Como Quebrar a Criptografi a Essa informação é necessária para o passo seguinte. Nele, vamos iniciar agora o ataque de dicionário. Primeiramente, devemos criar um arquivo que será o nosso dicionário de senhas para realizar o ataque. A Figura 7 mostra a criação de um arquivo chamado dicionario.txt. Figura 7 O arquivo deve conter o maior número possível de senhas e de combinações que podem ser usadas para testar como senhas. A Figura 8 mostra o conteúdo do arquivo criado no passo anterior. Figura 8 Após a criação do nosso arquivo de dicionário devemos passar para o ataque propria- mente dito. Nele, iremos utilizar a ferramenta John The Ripper no arquivo quebrar, utili- zando o dicionário.txt como arquivo de teste das senhas. A Figura 9 mostra esse processo. Figura 9 20 21 Ao final do processo a ferramenta John The Ripper mostra as senhas em texto claro. No exemplo da Figura 10 são identificadas senhas de 3 usuários: príncipe, princesa e admin. Figura 10 Outra forma de mostrar os usuários e senhas em texto claro é usar a opção --show no arquivo que antes tinha as senhas criptografadas. Isso pode ser visto na Figura 11. Figura 11 Com isso, finalizamos a demonstração de um ataque de dicionário. Demonstrando um ataque de força bruta Agora, vamos realizar o ataque de força bruta. Para fazer isso devemos apagar os arquivos usados na etapa do ataque de dicionário. O comando que faz esse processo é mostrado na Figura 12. Figura 12 Agora, estamos prontos para executar o comando de uso de um ataque de força bruta na ferramenta John The Ripper. Você pode executar o comando mostrado na Figura 13. 21 UNIDADE Criptoanálise – Como Quebrar a Criptografi a Figura 13 Esta opção irá testar todos as combinações de letras, números e caracteres especiais, o que pode levar o processo a uma demora indesejada. Podemos reduzir esse escopo para, por exemplo, somente números e somente para o usuário root. Essa opção simplificada pode ser vista na Figura 14. Figura 14 Após a ferramenta realizar sua função, ela retornará as senhas quebradas por força bruta. Na Figura 15, é mostrado o momento em que é retornada a senha do usuário root. Figura 15 Com isso, finalizamos a demonstração de uma ferramenta de quebra de senhas por força bruta. Na sequência, iremos mostrar um exemplo de quebra de hashes, que são os resumos de senhas, usados em assinaturas digitais e para identificar a integridade de arquivos, além de serem usadas em processos de segurança de senhas. Demonstrando um ataque de quebra de Hashes Agora, vamos utilizar uma ferramenta mais rápida, em um tipo de ataque conhecido como Arco-Íris. A ferramenta chama-se RainbowCrack e pode ser baixada a partir do site a seguir. No site está toda a documentação para a instalação em Windows e Linux. RainbowCrack: http://bit.ly/2QhGbnq. Primeiramente, devemos baixar e instalar a ferramenta. Após a instalação devemos acessar o diretório da ferramenta e listar os arquivos. 22 23 Em seguida, devemos executar um comando que cria uma tabela, para que possa- mos delimitar o tamanho de nossas senhas e a quantidade de senhas a serem utilizadas no teste. Na Figura 16 temos um comando que limita a senha a caracteres numéricos e que as senhas tenham entre 5 e 8 dígitos. Figura 16 Com este comando foi gerada uma tabela para podermos inserir as nossas senhas que serão utilizadas no ataque. Na Figura 17 estão em destaque o comando que gera a tabela e o arquivo da tabela, nesta sequência. Figura 17 23 UNIDADE Criptoanálise – Como Quebrar a Criptografi a Essa tabela será utilizada na etapa seguinte, onde devemos carregar a tabela para podermos gerar os tipos de entradas que ela deverá ter. A Figura 18 mostra esse comando e o processo de carregamento da tabela. Figura 18 Gerando e quebrando Hashes Agora, podemos gerar os hashes a partir de alguns exemplos de senhas numéricas, que tenham entre 5 e 8 dígitos. A Figura 19 mostra esse processo, onde o hash é gerado com o algoritmo MD5. Figura 19 No exemplo, é criado o arquivo senhas.txt, que irá conter os hashes das senhas in- seridas no passo anterior. Essa ferramenta gera, ao final de cada hash, um traço (hífen), que deve ser retirado, para que a sequência possa ser interpretada como um hash MD5, que não admite espa- ços e traços. A Figura 20 mostra o arquivo original. Figura 20 24 25 Ao final do processo o arquivo deve ficar da forma que é mostrado na Figura 21. Figura 21 Finalmente, podemos executar a ferramenta RainbowCrack para gerar as senhas a partir dos hashes. A Figura 22 mostra esse processo. No final do arquivo é possível identificar as senhas em texto claro, comprovando a eficiência da ferramenta. Figura 22 Expandindo um pouco mais a saída do comando, podemos ver que os 7 hashes fo- ram quebrados em pouco mais de 17 segundos. Na Figura 23 também são mostradas todas as senhas obtidas. Figura 23 Com isso, fin alizamos esta etapa de demonstração das quebras de senha, o que prova que é possível quebrar senhas, mesmo que estejam criptografadas, utilizando as ferra- mentas corretas e tendo uma estratégia adequada. 25 UNIDADE Criptoanálise – Como Quebrar a Criptografi a Vale ressaltar que os exemplos utilizados aqui foram didáticos, com senhas e hashes de pouca complexidade. No “mundo real” pode ser necessário muito mais tempo e po- der computacional para realizar as mesmas tarefas. Nesta unidadeverificamos formas de se quebrar a criptografia, desde os métodos clássicos até os métodos eletrônicos. Estudem bastante e realizem as atividades propostas, para que o conteúdo seja assimilado e possa servir de base para seu aprofundamento posterior. 26 27 Material Complementar Indicações para saber mais sobre os assuntos abordados nesta Unidade: Livros Criptografia e Segurança de Redes William Stallings. Criptografia e Segurança de Redes. 6ed. -São Paulo: Editora Pear- son, 2014. Criptografia Geral Celso José da Costa, Luiz Manoel Silva de Figueiredo. Criptografia geral. 2ed. -Rio de Janeiro: UFF/CEP-EB, 2006. Vídeos Curso Hacker Ético - Quebrar Senhas - dicionário, força bruta e arco-íris (rainbow tables). https://youtu.be/8qspeuitVeg Como hackear WiFi usando Kali Linux [Canal Hi Security]. https://youtu.be/Z9yqGkC9AnQ 27 UNIDADE Criptoanálise – Como Quebrar a Criptografi a Referências CARLOS, M. C. ICPEdu Introdução à Infraestrutura de chaves públicas e aplicações – Rio de Janeiro: RNP/ESR,2014, 190p. Furht, B. & Kirovski, D., Multimedia Encryption and Authentication Techniques and Applications, Auerbach Publication, 2006. Konheim, A. G., Computer Security and Cryptography, John Willey & Sons, Professional, 2007. MORAES, A. F. Segurança em Redes – 1ed – São Paulo : Editora Érica, 2010. PEIXINHO, I. C. Segurança de Redes e Sistemas - Rio de Janeiro: RNP/ESR, 2013, 268p. Stallings, W., Criptografia e segurança de redes, 4ed, São Paulo : Pearson Prentice Hall, 2008. Stallings, W., Network Security Essentials: Applications and Standards, Prentice- Hall-USA, 3rd edition, 2006. Stallings, W., Segurança de Computadores – 2ed – Rio de Janeiro: Elsevier, 2014. 28