Posts

Como funciona Criptografia

Hoje em dia, quando pensamos em internet, pensamos em um meio de comunicação confiável, levamos como verdade que enviaremos uma mensagem para alguém e essa mensagem chegará nessa pessoa instantaneamente sem problemas pelo caminho.

Apesar disso, as mensagens na internet, assim como em qualquer meio de comunicação, passam por um percurso e estão sucetíveis à problemas.

Vamos imaginar um meio de comunicação mais antigo, as cartas por exemplo. Se eu enviar uma carta à alguém, não tenho garantia nenhuma de que no meio do caminho ninguém abra a minha carta e leia ela, na internet é a mesma coisa, alguém pode ver o tráfego de uma mensagem sendo enviada e ler tudo que está lá. É ai que entra a criptografia, a criptografia não impede que um agente malicioso intercepte o tráfego e leia oque está sendo enviado, porém ela garante que caso esse agente intermediário leia, a mensagem estará completamente bagunçada e não fará o menor sentido.

Como a criptografia funciona?

A criptografia é uma maneira de transformar uma mensagem em outra e conseguir pegar a mensagem original de volta, esse conceito já existe à centenas de anos, como por exemplo a cifra de cesar que substitui as letras do alfabeto, movendo-as em um número de vezes fixo para criar uma mensagem criptografada a partir da mensagem original.

Existem dois tipos diferentes de criptografia, a criptografia simétrica e a criptografia assimétrica, ambas são bem semelhantes porém com diferenças cruciais, com suas forças e fraquezas.

Criptografia simétrica

Imaginemos uma situação em que duas pessoas querem poder conversar de forma criptografada para ninguém bisbilhotar as mensagens delas, na criptografia simétrica essas pessoas vão previamente decidir uma chave e utilizar essa chave para criptografar e descriptografar as mensagens enviadas.

 

 

Por exemplo, usando a cifra de césar que eu comentei anteriormente, vamos supor que as duas pessoas decidam o número 9 para movimentar as letras do alfabeto, se a pessoa A quer enviar a mensagem “OLÁ TUDO BEM” aplicando a criptografia a mensagem vira “XUJ CDMX KNV”, visto que a pessoa B sabe que a chave é 9, ela utiliza a chave para descriptografar a mensagem e pegar a mensagem “OLÁ TUDO BEM” de volta.

Existem diversos algoritmos de criptografia simétrica, geralmente a maior vantagem deles comparado à criptografia assimétrica é que eles são bem mais rápidos, visto isso são usados para mensagens efêmeras que precisam de mais rapidez como uma conversa https por exemplo.

Criptografia assimétrica

Nessa situação hipotética, as duas pessoas já haviam decidido uma chave previamente, porém como  faremos numa situação aonde eu queira ter uma conversa criptografada com uma pessoa sem que tivéssemos decidido uma chave antes?

 Nesse caso, utilizamos a criptografia assimétrica, na criptografia assimétrica, cada indivíduo tem 2 chaves, a chave pública e a privada, a pública pode ser compartilhada com o mundo todo sem problemas, porém a privada deve ser bem guardada apenas pelo dono dela, uma vai criptografar mensagens e outra vai descriptografar mensagens.

 

 

Voltando no nosso exemplo anterior, dessa vez a pessoa A e a pessoa B irão conversar utilizando criptografia assimétrica, se a pessoa A quer mandar a mensagem “OLÁ TUDO BEM” para a pessoa B, ela deve ter a chave pública da pessoa B. Com a chave pública B , a pessoa A vai criptografar a mensagem “OLÁ TUDO BEM” transformando ela em algo que não faz sentido, e vai enviar para a pessoa B a mensagem criptografada, com a mensagem criptografada em mãos, a pessoa B consegue ler a mensagem que foi escrita utilizando a chave privada dela, dessa forma temos garantia que a comunicação será segura visto que as chaves são um par definido matematicamente e a única chave do mundo todo que consegue descriptografar a mensagem criptografada com a chave pública, é a chave privada equivalente. 

Dessa forma, com a chave pública e a privada, temos uma situação na qual “TODO MUNDO pode escrever uma mensagem que APENAS UMA PESSOA pode ler”.

Assinatura digital

Utilizando a criptografia assimétrica também conseguimos garantir uma assinatura digital, é necessário apenas inverter a frase apresentada anteriormente que então teremos uma situação em que “APENAS UMA PESSOA pode escrever uma mensagem que TODO MUNDO pode ler”, assim, teremos garantia de que a pessoa que escreveu a mensagem realmente é quem ela diz ser, essa é a lógica utilizada em certificados digitais. 

Para que possamos inverter a frase, é necessário apenas inverter a função de cada chave, para a pessoa B ter uma assinatura digital, ela usa a chave privada dela para criptografar uma mensagem, então ela envia a mensagem original, a mensagem criptografada e a chave pública equivalente para a pessoa A, então a pessoa A utiliza a chave pública para descriptografar a mensagem criptografada e verifica se ela é igual a mensagem original, caso seja, eu tenho garantia de que a pessoa B realmente tem q chave privada, logo, ela é quem ela diz ser.

Conclusão

Na internet utilizamos a criptografia simétrica e a assimétrica o tempo todo, no https por exemplo, utilizamos primeiro a criptografia assimétrica para validar o certificado enviado pelo site, assim que estiver validado, utilizamos a criptografia assimétrica novamente para fazer a troca de chave, definindo uma chave comum entre as duas partes, com a chave definida, utilizamos a criptografia simétrica para seguir com a comunicação, garantindo uma maior velocidade do que se fosse usado a criptografia assimétrica.


Por Filipe Abrão dos Santos, Technical Support Analyst GoCache.