17
1. Noções de Criptografia 1.1 . Serviços criptográficos. Os avanços mais recentes da criptografia nos permitem seu emprego para atender, também, ao objetivo de segurança da integridade das informações, o que se dá através da utilização dos diversos serviços de segurança que a criptografia nos oferece: Confidencialidade – Visa proteger o sigilo das informações contra acesso de terceiros não autorizados Para isso, emprega mecanismos que impossibilitem o entendimento das informações para aqules que não possuem os elementos necessários para acessa-las Autenticação – Seu objetivo é averiguar a identidade de um indíviduo ou sistema situado na outra ponta de um canal de comunicação. Exemplo: Quando um usuário de mensagens instânteas usa sua chave PGP/GPG para provar sua identidade ou quando verificamos o certificado digital de um servidor em um acesso usando SSL/TLS Integridade – Este serviço assegura que as informações não tenham sido alteradas de sua forma original desde a sua geração. Não –repúdio ou irritabilidade – Com base nos serviços de autenticidade e integridade, o serviço de

Noções de Criptografia

Embed Size (px)

Citation preview

Page 1: Noções de Criptografia

1. Noções de Criptografia

1.1 . Serviços criptográficos.

Os avanços mais recentes da criptografia nos permitem seu emprego para atender, também, ao objetivo de segurança da integridade das informações, o que se dá através da utilização dos diversos serviços de segurança que a criptografia nos oferece:

Confidencialidade – Visa proteger o sigilo das informações contra acesso de terceiros não autorizados Para isso, emprega mecanismos que impossibilitem o entendimento das informações para aqules que não possuem os elementos necessários para acessa-las

Autenticação – Seu objetivo é averiguar a identidade de um indíviduo ou sistema situado na outra ponta de um canal de comunicação. Exemplo: Quando um usuário de mensagens instânteas usa sua chave PGP/GPG para provar sua identidade ou quando verificamos o certificado digital de um servidor em um acesso usando SSL/TLS

Integridade – Este serviço assegura que as informações não tenham sido alteradas de sua forma original desde a sua geração.

Não –repúdio ou irritabilidade – Com base nos serviços de autenticidade e integridade, o serviço de não-repudio visa impedir que um individuo negue a responsabilidade sobre seus atos. Desse modo, o usuário de cartão de credito não pode alegrar que não realizou uma determinada compra, com intuito de fugir ao pagamento, existe varias técnicas que vamos ver mais adiante

Page 2: Noções de Criptografia

2– Criptografia Simétrica

A mais antiga da formas de criptografia, também conhecida como criptografia de chave compartilhada ou chave secreta , possuem dois elementos fundamentais : Um algoritmo e uma chave que deve ser compartilhada entre os participantes na comunicação , daí o nome de simétrica ou de chave compartilhada. Na criptografia simétrica, a mesma chave é usada para codificar e decodificar as mensagens.

Quando dois indivíduos desejam trocar mensagens usando sistema de criptografia simétrica, o primeiro passo é combinar qual algoritmo irão empregar na comunicação. Esta etapa pode ser negociada em uma rede insegura, pois a informação do algoritmo a ser empregado não interfere na segurança do sistema, uma vez que está segurança vem do algoritmo possa ser considerado seguro, a única forma de se obter o texto original a partir do texto cifrado, sem o conhecimento prévio da chave, é tentar todas as combinações de chaves possíveis, o que chamamos de ataque de força bruta.

A seguir, eles deverão entrar em um consenso sobre qual a chave que será empregada. Uma vez que a segurança do sistema depende do sigilo desta chave, ela não pode ser transmitida no mesmo canal em que se dará a comunicação, sendo necessário que a transmissão se de fora de banda ( o que chamamos de de OOB ou Out-of-band) .

Uma vez que o algoritmo foi escolhido e a chave foi combinada por um canal seguro, podemos proceder com o processo de codificação das mensagens, Para isso, a mensagem . Para isso, a mensagem em claro e a chave são inserida na função criptográfica, gerando como resultado um texto cifrado, que poder ser transmitido por um canal inseguro. Ao chegar ao seu destino, o texto cifrado e a chave previamente combinadas são inseridas na mesma função , que gera como resultado o texto claro original.

Page 3: Noções de Criptografia

2.1 – Cifras de substituição e transposição

Observando as diversas cifras descritas na seção de história da criptografia , é possível perceber que foram empregadas duas técnicas fundamentais nos diversos algoritmos descritos : Substituição e transposição

2.1.1 As cifras de substituição

Simplesmente substituem um caractere do texto-plano por outro no texto original, assim como o Atbash substiuia as letras da mensagem original por outra do alfabeto invertido, ou a Cifra de Cesar substituía uma letra a letra adiantada em três posições.

A Cifra de César e o Atbash , entre outros são chamadas cifras de substituição simples ou mono alfabéticas, onde cada caractere do texto-plano é traduzido para um caracteres do texto cifrado, o que facilita o trabalho do criptoanálise por analise de freqüência lingüística . A técnica desenvolvida por Polybius, embora usasse um alfabeto diferente do alfabeto do texto-plano, também era uma cifra de substituição simples.

São chamadas de cifras homofônicas as técnicas de substituição onde um determinado caractere do texto-plano pode ser traduzido para diversos símbolos do texto cifrado

2.1.2 As cifras de transposição

Similar ao realizado pelos espartanos 500 anos a.C , no qual, invés de substituirmos um caracteres, ele é transposto para outra posição Embora estas técnicas seja fácil dedução quando empregadas sozinhas , elas são usadas até hoje em diversos algoritmos, como o DES e o AES , só que , ao invés de atuarem sobre caracteres , elas agora realizam suas operações sobre bits. As oito s-boxes (substitution Box) empregadas no DES , as duas s-boxes empregadas no AES ou as s-boxes geradas dinamicamente a partir da chave pelo Bloufish e Twofish são exemplos de processos de substituição empregados em cifras modernas.

2.2 – Cifras de Bloco

As cifras de fluxo encriptam um texto claro bit a bit

Transformação opera em mensagens de qualquer tamanho, O tamanho do texto cifrado é o mesmo do texto claro. A cifração de cada bit da mensagem altera o estado interno do algoritmo (memória)3

Page 4: Noções de Criptografia

3 – Criptografia Assimétrica

Conceito de chave assimétrica, onde as operações criptográficas dependem de duas chaves matematicamente relacionadas : Uma pública e outra privada. Este sistema, também chamado de criptografia de chave pública, veio a resolver dois dos grandes problemas existentes com as cifras simétricas: troca segura de chaves e escalabilidade.

Ao contrario do que ocorre com os sistemas simétricos, nos sistemas de criptografia de chave pública, cada indivíduo possui um par de chaves : Uma pública, que pode ser livremente distribuídas, e outra privada, que é mantida em poder de seu proprietário. As operações realizadas como uma destas chaves somente podem ser desfeitas pela outra. Assim, se um mensagem é codificada com a chave pública, ela somente pode ser lida com a chave privada e vice-versa , segue uma breve descrição

Suponha que Alice queira se comunicar com Bob. Como mostra a ilustração acima, em vez de Bob e Alice compartilharem uma única chave secreta, Bob ( o destinatário das mensagens de Alice), tem duas chaves – uma chave pública, que está à disposição do mundo todo, inclusive a disposição de Trudy (a intrusa), e uma chave privada, que apenas ele (Bob) conhece. Para comunicar – se com Bob, Alice busca primeiramente a chave pública de Bob. Em seguida, ela criptografa a sua mensagem, usando a chave pública de Bob e um algoritmo criptográfico conhecido. Bob recebe a mensagem criptografada de Alice e usa a sua chave privada em um algoritmo de decriptografia para decifrar a mensagem de Alice.

Dessa maneira, Alice pode utilizar a chave de Bob disponível publicamente para enviar uma mensagem secreta a Bob sem que nenhum deles tenha de permutar nenhuma chave secreta!

Observe as duas propriedades que podemos garantir com o uso de criptografia de chave assimétrica:

Confidencialidade – Quando Alice cifra as mensagens utilizando a chave pública de Bob, somente ele (Bob) poderá decifrar a as mensagens, ou seja, Alice envia informações sigilosas para Bob.

Autenticidade – Quando Bob envia uma mensagem cifrada com a sua chave privada a Alice ou a qualquer outro indivíduo que possua a sua chave pública,

Page 5: Noções de Criptografia

Bob estará garantindo que quem mandou aquela mensagem foi ele mesmo, afinal, só ele possui a chave privada.

3.1 – Assinaturas Digitais

A assinatura digital é uma tecnologia que permite dar garantia de integridade e autenticidade a arquivos eletrônicos. É um conjunto de operações criptográficas aplicadas a um determinado arquivo, tendo como resultado o que se convencionou chamar de assinatura digital.

A assinatura digital permite comprovar que a mensagem ou arquivo não foi alterado e que foi assinado pela entidade ou pessoa que possui a chave criptográfica (chave privada) utilizada na assinatura.

O Certificado digital é o documento que comprova que uma chave privada pertence a determinada pessoa e o certificado digital correspondente, utilizados na assinatura. O certificado é um documento eletrônico assinado digitalmente, contendo a identificação de uma pessoa, sua chave pública (utilizada na verificação da validade da assinatura ) e assinado digitalmente por uma Autoridade Certificadora.

A tecnologia de assinatura digital é baseada num par de chaves

3.1.1 – Descrição do processo de assinatura digital

Para assinar digitalmente um arquivo, aplica-se inicialmente uma função matemática ao conteúdo do arquivo, obtendo-se um resumo criptográfico (hash) desse arquivo, chamada função hash. A função hash garante a integridade de um documento na medida em que qualquer alteração no conteúdo desse documento altera o resultado da função hash aplicada sobre o mesmo.

O signatário de um documento, aplicar a função hash está gerando uma espécie de “impressão digital” do conteúdo do documento. O hash é então criptografado com a chave privada do signatário.

Ao criptografar o hash com sua chave privada o signatário estará juntando a sua própria “impressão digital” ao “pacote”, que nesse momento terá : o original + assinatura digital (hash criptografado).

Finalmente, o certificado digital do signatário é agregado ao pacote. Agregar certificado ao pacote, “autentica a assinatura”, isto é, possibilita a mostrar que o signatário é o detentor de determinada chave pública.

O certificado permite a imediata verificação da assinatura digital. Utilizamos a chave pública que ele contém para descriptografar o hash, que havia sido criptografado com a chave privada do signatário. Se for possível realizar essa operação está comprovada a autenticidade (autoria) do arquivo.

Page 6: Noções de Criptografia

Assim, um arquivo assinado digitalmente geralmente compõe-se de:

original, Assinatura Digital (Hash criptografado), e, o certificado do signatário.

3.2 – Sistemas Híbridos

Ambos as chaves simétrica e assimétrica são impraticáveis em grande escala : enquanto os algorotimos simétricos dependem de canais seguros para a troca de chaves e demandam uma quantidade de chaves muito grande, a criptografia assimétrica requer muito poder de processamento, o que torna inviável para a comunicação com grandes quantidades de dados.

Pra resolver esse problema muitos protocolos e produtos de criptografia costumam adotar uma boradegem mista, empregando sistema de criptografia híbrida, no qual tanto sistemas simétricos quanto sistemas assimétricas são empregas, aproveitando das vantagens de cada um para eliminar as desvantagen do outro, Neste sistemas, a mensagem seria codificada usando-se de criptografia simétrica com a chave gerada randomicamente, ou melhor, psedeo-randimicamente, visto que sistemas computadorizados são incapazes de gerar números randômicos. A trasnmissão dessa chave é protegida através de algoritimos de criptografia assimétrica. Desse modo , tira-se proveito do alto desempenho dos algotimos simétricos para criptografia das mensagens , ao mesmo tempo em que se utiliza os serviços oferecidos pela criptografia assimétricas para troca de chaves

Existem três métodos comumente empregados para o desenho de sistema de criptografia hibrida: Envelopamento Digital , transmissão codificada de chaves e negociação de chaves.

No envelopamento Digital – Empregado na criptografia de arquivos do PGP , exemplo Uma chave simétrica é escolhida pelo sistema é usada para criptografar a mensagem. A seguir essa chave é criptografada com a chave pública do destinatário adicionada ao texto cifrado.Caso haja vários destinatários , o processo de criptografia da chave simétrica é repetido para cada um deles. Dessa forma, cada comunicação

Page 7: Noções de Criptografia

utilizara uma chave simétrica única e ao mesmo tempo o texto cifrado pode ser distribuído de uma vez para varias pessoas , através de uma mensagem de correio eletrônico com um arquivo anexado , por exemplo. Ao receber a mensagem, o destinatário usaria sua chave privada par abrir sua cópia da chave simétrica e usaria a chave simétrica para abrir o texto cifrado

O protocolo SSL , por sua vez , utilizada uma outra abordagem. Primeiro uma das pontas , o cliente , gera uma chave simétrica, a codifica com a chave pública so servidor a abre e usa um algoritmo simétrica, a codifica a com a chave pública do servidor e envia para ele. Uma vez recebida a chave, o servidor a abre e usa um algoritmo simétrico como o RC4, para criptografar as mensagens em si. Novamente, o desempenho da criptografia simétrica é aproveitado com a segurança da criptografia assimétrica para a troca de chaves.

Outra abordagem é a empregada pelo algoritmo de troca de chaves Diffie-Hellman que , usando dois pares de chaves públicas e privada, possibilita que dois indivíduos calculem uma chave simétricas. Se Alice quer se comunicar com Beto, por exemplo, primeiro eles troca suas chaves públicas. Uma vez em posse da chave pública de Beto, Alice usa sua chave privada e a chave pública dele como entrada do algoritmo Diffie-Hellman , produzindo uma chave simétrica. Se Beto usar sua chave provada e a chave pública de Alice, ele irá conseguir gerar a mesma chave simétrica. Dessa forma, as chaves simétricas podem ser negociadas de forma segura sem nunca serem transmitidas no canal de comunicação . A única limmitação deste algoritimo , é que a chave simétrica negociada entra Alice e Beto será a mesma para toda a comunicação . Para evitar isso, implementação práticas deste algoritimos, como a empregada no protocolo IKE , geram dinamicamente um outro para de chaves, que é usado na troca de chaves Diffic-Hellman , evitando a repetição da chave empregada em duas comunicações distintas com os mesmos parceiros. No entanto , o par de chaves assimétricas da entidade continua sendo empregado para as operações de assinatura digital e o par de chaves geradas dinamicamente é usado unicamente para a troca de chaves Diffic-Hellman

Algumas imagens e paragrafos aproveitei dos textos dos sites da justiça federal, viva o linux, curso aprovação

Page 8: Noções de Criptografia

4. Certificado Digital

Um certificado digital é um arquivo eletrônico que identifica quem é seu titular, pessoa física ou jurídica, ou seja, é um Documento Eletrônico de Identidade.

Quando são realizadas transações, de forma presencial, muitas vezes é solicitada uma identificação, por meio de um registro que comprove a identidade.

Na internet, como as transações são feitas de forma eletrônica o Certificado Digital surge como forma de garantir a identidade das partes envolvidas.

4.1 – Autoridade Certificadoras

Esta entidade terá a responsabilidade de averiguar a identidade do proprietário de uma determinada chave pública e a assiná –la digitalmente quando esta identidade for comprovada. Da mesma forma que a Secretária de Segurança Pública dos Estados emite um documento único atestando a sua identidade, estas entidades, denominadas Autoridades Certificadoras ou ACs (Certification Authority – CA) , emitem para cada individuo um único atestado de propriedade de sua respctiva chave pública, o certificado digital, após a comprovação de sua identidade. Esta comprovação se dá por meios específicos à natureza e ao nível de segurança do certificado desejado, bem como a requisitos legais e regulatórios existentes, variando de uma AC para outra.

Usando os serviços de uma AC, quando Alice e Beto precisarem se comunicar, primeiro eles deverão contatar a AC e solicitar seus respectivos certificados digitais. Este processo é realizado apenas uma vez durante o período de validade do certificado. Para tal, eles devem seguir um processo semelhante ao seguinte:

Page 9: Noções de Criptografia

Alice gera um par de chaves assimétricas, sendo uma pública e outra privada; Alice gera um hash de sua chave pública Alice envia sua chave pública para AC e solicita seu certificado digital ;

Fernanda , uma funcionaria da AC, Entra em contato com Alice, através de meios não fornecidos na solicitação

Fernanda pergunta a Alice uma serie de informações para confirmar sua identidade e por fim questiona a Alice qual o hash de sua chave pública.

Caso as informações sobre identidade de Alice e o hash de sua chave pública forem confirmadas, AC assina a chave pública de Alice com seu próprio certificado digital;

A assinatura é adicionada à chave pública de Alice , gerando um certiifcado digital;

O Certificado é enviado para Alice

Concluído o processo , Alice possui um certificado atestando a sua identidade. Caso Beto deseje um certificado digital, ele deverá seguir o mesmo processo. Agora, quando Beto receber o certificado digital de Alice, ele pegará uma cópia do certificado digital da AC, que pode estar em seu próprio certificado ou pré-armazenado em seu navegador da Internet ou outra aplicação qualquer, e utilizando-o,Beto decodificará a assinatura digital contida no certificado de Alice, recuperando o hash da chave publica. A seguir Beto gerará um hash da chave pública contida no certificado e verificará se coincidem : caso positivo, ele terá comprovado a autenticidade do certificado de Alice e poderá se comunicar com ela de forma segura.

4.2 – Relação entre ACs

A AC faz presente em varias localização como Pais , Estado e Cidade , o relacionamento entre outras ACs é estruturado pelos modelos de confiança , Estes modelos definem como se dará o relacionamento entre as diversas ACs e possui três formatos : Hierárquico , certificação cruzada ou hibrido.

No modelo Hierárquico, há uma AC primária , chamada AC-Raiz que tem a função de apenas assinar o certificado de outras ACs. Logo abaixo da AC raiz, há as ACs subordinadas em uma estrutura que se assemelha bastante a um organograma.Cada AC subordinada, por sua vez, pode ter zero ou mais AC subordinadas a elas, e assim porá diante. Nesse modelo , as ACs subordinadas devem assinar os certificados dos usuários e/ou sistemas sobre sua responsabilidade.

Page 10: Noções de Criptografia

Um exemplo de segmentação de responsabilidade poderia ser por distribuição geográfica. Nesse caso , a Ac-raiz assinaria o certificado de uma AC subordinada para cada pais em que a AC atuasse. Se fosse preciso, estas ACs poderiam assinar o certificados de novas ACs subordinadas

5. Ataques Criptográficos

Além do ataque de força bruta, em que todas as chaves possíveis são empregadas até se achar a chave correta, existem seis tipos principais de técnicas que podem ser empregadas pelo criptoanalistas. Elas variam de acordo com a quantidade de informações que lhe possui ou possa produzir.

Page 11: Noções de Criptografia

A primeira é denominada COA (Ciphertext-Only Attack) – onde o criptoanalista tem acesso apenas a uma ou mais mensagens codificadas e tem por objetivo descobrir as mensagens originais codificadas ou parte delas. Esta técnica pode ser empregada com o propósito de se descobrir a chave utilizada, mas seu principal objetivo e comprometer a confidencialidade

No Ataque KPA (Know-Plaintext Attack), o criptoanalista tem acesso tento ao texto cifrado quanto ao texto plano que o originou e, com base nestas informações, tenta obter a chave em uso, para comprometer a confidencialidade de outras mensagens

Caso o adversário seja capaz de escolher o texto plano que irá ser cifrado , este será um CPA (Choose-Plaintext Attack) e tem por objetivo usar um texto plano que facilite a criptoanálise e a obtenção da chave.

Se, Além de escolher o texto a ser cifrado , o atacante puder adptar este texto plano conforme for obtendo informações, este será um ACPA (Adaptative Choosen-Plaintext Attack) onde são enviados diversos pequenos blocos de dados, que são adaptados conforme-o criptoanalista vai coletando informações, ao contrário do que ocorre com o CPA, onde é enviado um grande bloco de dados a ser cifrado de uma única vez. Assim como no CPA, o objetivo é descobrir a chave em uso

Se, ao invés de ter acesso a um dispositivo que cifre as mensagens, o criptoanalista tiver acesso a um equipamento que decifre as mensagens, como um hardware que realize esta função, ele poderá submeter a um texto cifrado de sua escolha e analisar o texto plano produzido com o intuito de obter a chave empregada. Caso o criptoanalista tenha acesso irrestrito a este equipamento, ele já é capaz de comprometer a confidencialidade dos dados, porém , se ele obtiver a chave, ele também será capaz de forjar mensagens cifradas, comprometendo o objetivo de segurança da integridade, Está técnica é chamada de CCA (Choosen-Ciphertext Attack).

Assim como acontence entre o CPA e ACPA, o CCa também tem uma variação , conhecida como ACCA (Adaptative Choosen-Ciphertext Attack), onde o texto cifrado submetendo ao dispositivo vai se adaptando de acordo com as necessidades e descobertas do atacantes. Este Ataque tem os mesmos objetivos do CCA.

Page 12: Noções de Criptografia

6. Esteganografia

Ou escrita oculta , é a técnica que busca ocultar a presença da mensagens, ao contrário da criptografia, onde a presença da mensagem é percebida , porém seu conteúdo é secreto . Portanto, a esteganografia é a técnica de se escrever uma mensagem de forma que ele seja imperceptível.

Abaixo segue o texto do professor Gabriel Torres, pois o material referente ao security officer achei fraco

Vamos supor que você queira passar uma mensagem secreta para alguém. Você esconde essa mensagem secreta dentro de um arquivo de imagem (um arquivo Jpg por exemplo) e envia essa imagem para um amigo, que conhece esse método de criptografia. Ele, obviamente através de um programa de esteganografia, conseguirá ler a mensagem oculta no arquivo de imagem, desde que ele conheça a senha usada na criptografia, obviamente. Se um xereta qualquer abrir a imagem em qualquer momento, seja no seu micro, seja no micro do seu amigo, ou seja ao longo do caminho que seu e-mail tem de percorrer até chegar ao seu amigo, a única coisa que ele verá será uma imagem. Mesmo que ele tente visualizar os bytes que compõem a imagem (através de um utilitário editor de arquivo, por exemplo), ele não conseguirá ler a mensagem, já que esta estará criptografada baseada em uma senha que só você e seu amigo conhecem. E o legal de tudo é que não há diferença visual entre a imagem com ou sem a mensagem criptografada embutida, e o arquivo não fica maior do que o arquivo original.

Através desse programa, você pode embutir dentro de um arquivo do tipo Jpg qualquer outro tipo de arquivo, como por exemplo, um documento do Word ou uma planilha do Excel. O programa irá criptografar esse arquivo de acordo com uma senha dada. A operação é bem simples. O primeiro passo é escolher uma imagem Jpg para esconder o seu arquivo. Essa imagem tem de ser grande o suficiente para poder ocultar o seu arquivo. O próprio programa, quando você abre um arquivo Jpg através da opção Open jpeg, informa qual é a capacidade máxima disponível nesse arquivo e qual é a capacidade máxima recomendável, que é um pouco abaixo da capacidade máxima. Obviamente, quanto maior o tamanho do arquivo da imagem, maior poderá ser o tamanho do arquivo que você pretende ocultar dentro dele.

Depois de escolher um arquivo Jpg que tenha um “espaço disponível” igual ou maior do que o tamanho do arquivo que você pretende ocultar, basta escolher a opção Hide. O programa pedirá a senha que será usada na criptografia e uma confirmação dela. Em seguida, será aberta uma caixa de diálogo para você escolher o arquivo a ser ocultado. Após ter inserido um arquivo dentro do outro, basta você mandar o programa salvar a imagem Jpg resultante usando a opção Save jpeg. Prontinho, o seu arquivo “secreto” estará embutido dentro da imagem Jpg criptografado de acordo com a senha dada.

Page 13: Noções de Criptografia

Para remover o arquivo secreto da imagem, o processo é o mesmo, bastando usar a opção Seek do programa, fornecendo a senha usada na criptografia.

Se você quiser aumentar ainda mais a segurança desse processo, você pode ainda criptografar o arquivo antes dele ser inserido na imagem. Alguns programas permitem isso, como o próprio Word e o Excel (Salvar Como, clicando na caixa Opções, definindo uma senha de proteção – o arquivo será criptografado com base nessa senha)

Existem alguns sites na Internet dedicados ao tema.. Neste site você encontrará vários programas de esteganografia. Um programa que é extremamente pequeno, fácil de usar e ainda por cima de graça, é o JP Hide and Seek (JPHS), que pode ser baixado em http://linux01.gwdg.de/~alatham/stego.html