O que é criptografia de ponta a ponta?
Visto que usamos muito a correspondência digital em nosso dia a dia, o tópico quente da "criptografia ponta a ponta" aparece nas notícias de vez em quando. Mas o que é criptografia ponta a ponta e como ela difere de outros tipos de criptografia?
Vamos analisar esse método de criptografia e ver por que ele é tão importante.
O que é "criptografia ponta a ponta"?
A criptografia ponta a ponta é uma forma de proteger as comunicações de olhares indiscretos. Se você enviar uma mensagem pela Internet para outra pessoa sem a criptografia adequada, as pessoas que estiverem assistindo a sua conexão poderão ver o que você está enviando. Isso é conhecido como ataque man-in-the-middle .
Como tal, os serviços de mensagens às vezes empregam criptografia ponta a ponta (E2EE) para proteger seus usuários. Alguns dos principais serviços de mensagens instantâneas usam E2EE para evitar que as pessoas espionem seus usuários.
Para isso, o serviço implementa um método que permite aos usuários criptografar suas mensagens automaticamente. Antes de alguém enviar uma mensagem, eles a criptografam usando o que é chamado de "chave". Esta chave torna a mensagem ilegível, então os espiões não podem ver o que ela diz.
Quando a mensagem chega ao dispositivo do destinatário, o aplicativo usa uma chave para desembaraçar a mensagem de volta ao que foi dito originalmente. Agora o destinatário pode ler o que a mensagem dizia e os hackers são mantidos fora da equação.
Como o E2EE difere de outros tipos de criptografia?
Você pode estar confuso quanto à diferença entre esse método de criptografia e outros métodos. Na verdade, a mecânica real por trás do E2EE é semelhante a outros tipos de criptografia. A principal diferença, entretanto, é a resposta a esta pergunta: quem possui as chaves de criptografia?
Quando você usa um serviço com criptografia que não é E2EE, pode enviar mensagens para seu amigo usando uma chave que o serviço lhe deu. Isso é ótimo para impedir que hackers entrem em suas comunicações, mas significa que as pessoas que operam o serviço que você está usando podem tecnicamente ler o que você envia.
É como se você usasse um aplicativo de mensagens para falar com seu amigo e os desenvolvedores que projetaram o aplicativo dissessem a vocês dois para usarem a chave "APPLE" para criptografar seus dados. Claro, hackers aleatórios não podem ler o que você diz, mas os desenvolvedores sabem que você está usando a APPLE como chave. Isso significa que eles podem descriptografar suas mensagens conforme você as envia e ler tudo o que você está dizendo.
Quando uma empresa usa esse tipo de criptografia, isso se transforma em uma questão de confiança. Você acredita que a empresa que administra o aplicativo de mensagens fechará os olhos e permitirá que você converse em particular? Ou eles usarão a chave APPLE para abrir sua segurança e ler todos os detalhes interessantes?
Isso não é um problema para o E2EE. Como você pode esperar do "ponta a ponta" em seu nome, o E2EE funciona permitindo que cada usuário gere suas próprias chaves de criptografia em seu dispositivo. Dessa forma, ninguém – nem mesmo os desenvolvedores de aplicativos de mensagens – pode descriptografar as mensagens sem fisicamente levar seu dispositivo.
É por isso que o E2EE é tão popular e alguns aplicativos de e-mail seguro o usam. Os usuários não precisam confiar em uma empresa sem rosto. Eles têm tudo de que precisam para fazer a criptografia sozinhos.
Existem algumas maneiras de fazer isso, mas a "criptografia de chave pública" e a "troca de chaves Diffie-Hellman" são alguns dos métodos mais conhecidos.
Atingindo E2EE com criptografia de chave pública
Quando um programa usa criptografia de chave pública, cada usuário no serviço obtém duas chaves. A primeira é a chave pública, e ela pode ser vista e distribuída gratuitamente a qualquer pessoa. No entanto, é importante notar que a chave pública só pode criptografar dados; não pode ser usado para decifrá-lo.
Cada usuário também recebe uma chave privada, que nunca é compartilhada e fica permanentemente em seu dispositivo. A chave privada é projetada para que a chave privada possa descriptografar quaisquer dados criptografados usando a chave pública. No entanto, você também deve observar que a chave privada só pode descriptografar dados; nunca é usado para criptografá-lo.
Quando duas pessoas querem falar uma com a outra, elas trocam as chaves públicas. Eles então usam a chave pública da outra pessoa para criptografar suas mensagens para eles. Depois que uma chave pública a criptografa, ela só pode ser descriptografada corretamente pela chave privada do destinatário, que nunca sai do dispositivo.
Um exemplo não técnico de criptografia de chave pública
Para ter uma ideia melhor de como esse sistema funciona, imagine que Bob e Alice desejam conversar um com o outro. Para conseguir isso, eles compram um cofre de uma empresa de segurança um tanto excêntrica.
É assim que funciona.
Um cofre pode ser deslocado com um cartão de "bloqueio" ou "desbloqueio" para bloqueá-lo ou desbloqueá-lo. Cada usuário tem um cartão de "bloqueio" e "desbloqueio" exclusivo para usar no cofre. Além disso, você pode solicitar uma cópia do cartão de "bloqueio" de uma pessoa específica da empresa, mas nunca pode solicitar o cartão de "desbloqueio" de alguém.
Bob tem duas cartas: BOB LOCK e BOB UNLOCK. Alice também tem seu próprio conjunto de cartas, ALICE LOCK e ALICE UNLOCK.
Se Bob fechar o cofre e passar o cartão BOB LOCK, o cofre se trancará. Ele permanecerá bloqueado, mesmo se Bob passar o cartão BOB LOCK uma segunda vez. A única maneira de desbloqueá-lo é deslizando BOB UNLOCK. Nenhum cartão de desbloqueio de outra pessoa funcionará.
Agora, digamos que Bob deseja enviar uma mensagem para Alice. Ele precisa pedir uma cópia de um dos cartões de segurança de Alice da empresa de cofres para fazer isso. A empresa permite isso porque você não pode usar um cartão de bloqueio para arrombar um cofre. Você só pode usá-lo para bloquear um.
Bob pede um cartão ALICE LOCK. Em seguida, ele escreve uma carta para Alice, coloca-a no cofre e passa o cartão ALICE LOCK. A caixa de segurança está totalmente bloqueada e só pode ser desbloqueada se um cartão ALICE UNLOCK for passado. O cartão de desbloqueio do próprio Bob é inútil.
Agora, Bob pode enviar o cofre para Alice. Mesmo se alguém interessado na carta pedir seu próprio cartão ALICE LOCK e sequestrar a caixa, eles não conseguirão abri-la. Apenas um cartão ALICE UNLOCK pode desbloqueá-lo, e Alice é a única dona desse cartão.
Alice recebe o cofre de Bob, usa seu cartão ALICE UNLOCK para abri-lo e lê a carta. Se Alice quiser enviar uma mensagem de volta, ela pode solicitar e usar um cartão BOB LOCK para enviar o cofre de volta. Agora, apenas o cartão BOB UNLOCK pode abri-lo – o que apenas Bob tem.
Atingindo E2EE com o Diffie-Hellman Key Exchange
Se duas pessoas desejam obter E2EE em uma rede insegura, há uma maneira de compartilharem as chaves de criptografia à vista de todos e não serem hackeadas.
Para fazer isso, ambos os lados concordam primeiro com uma chave compartilhada. Essa chave é compartilhada abertamente e o sistema de troca de chaves Diffie-Hellman assume que os hackers descobrirão o que é essa chave.
No entanto, ambos os lados geram uma chave privada em seus próprios dispositivos. Em seguida, eles adicionam essa chave privada à chave compartilhada e enviam sua chave combinada ao destinatário. Quando eles recebem a chave combinada do destinatário, eles a adicionam à chave privada para obter uma chave secreta compartilhada para usar na criptografia.
Um exemplo não técnico da troca de chaves Diffie-Hellman
Se voltarmos a Bob e Alice, digamos que eles usem essa técnica para compartilhar informações. Primeiro, os dois concordam com um número compartilhado – digamos o número três. Isso é feito publicamente, portanto, um bisbilhoteiro pode teoricamente ouvir esse número.
Então, Bob e Alice escolhem um número em particular. Digamos que Bob escolha o número oito e Alice escolha cinco. Em seguida, eles somam o número escolhido ao número compartilhado acordado e dão o resultado à outra pessoa.
- Bob pega a chave compartilhada (3) e sua chave privada (8) e obtém 11 (8 + 3). Ele dá o número 11 para Alice.
- Alice pega a chave compartilhada (3) e sua chave privada (5) e obtém 8 (5 + 3). Ela dá o número 8 para Bob.
Esse compartilhamento também é feito em público, portanto, novamente, um bisbilhoteiro pode ver que Bob compartilhou 11 e Alice compartilhou 8.
Uma vez feito o compartilhamento, cada lado adiciona o que recebeu com seu número privado. Isso faz com que ambos os lados obtenham o mesmo número, pois uma soma apenas com adição não se preocupa com a ordem.
- Bob recebe o número combinado de Alice (8), adiciona seu número privado a ele (8) e obtém 16. (8 + 8)
- Alice recebe o número combinado de Bob (11), adiciona seu próprio número privado a ele (5) e obtém 16. (11 + 5)
- Ambos os lados podem criptografar mensagens usando a chave "16", que ninguém fora de Bob e Alice conhece.
Claro, neste exemplo, um hacker poderia quebrar esse código com muita facilidade. Tudo que eles precisam é a chave compartilhada, a chave que Bob envia e a chave que Alice envia, todas enviadas em plena luz do dia.
No entanto, os programadores que implementam a troca de chaves Diffie-Hellman irão implementar equações complexas que são difíceis para os hackers fazerem engenharia reversa e ainda darão o mesmo resultado, não importa a ordem em que os números sejam inseridos.
Dessa forma, os hackers ficam intrigados sobre o que gerou os números, enquanto Bob e Alice conversam com segurança usando a chave compartilhada.
Envio de dados com segurança usando E2EE
Se você não quiser confiar que as empresas não irão espionar seus dados, não é necessário. Usando métodos E2EE, ninguém pode espiar suas mensagens até que elas cheguem com segurança ao seu destino.
Se toda essa conversa sobre criptografia fez você querer aumentar a segurança do seu computador, você sabia que existem várias maneiras de criptografar sua vida diária?
Crédito da imagem: Steve Heap / Shutterstock.com