Skip to main content
Surveillance
Self-Defense

Um mergulho profundo na criptografia de ponta a ponta: Como funcionam os sistemas de criptografia de chave pública?

Última revisão: January 01, 2025

This page was translated from English. The English version may be more up-to-date.

Se você ainda não o fez, recomendamos a leitura de alguns guias antes deste, para ajudar a consolidar alguns dos conceitos discutidos aqui: O que devo saber sobre criptografia?, Principais conceitos de criptografia e Verificação de chaves.

Usada corretamente, a criptografia de ponta a ponta pode ajudar a proteger o conteúdo de suas mensagens, textos e arquivos contra a leitura por qualquer pessoa, exceto pelos destinatários pretendidos. As ferramentas de criptografia de ponta a ponta tornam as mensagens inacessíveis para bisbilhoteiros na rede, bem como para os próprios provedores de serviços. Elas também podem provar que uma mensagem veio de uma pessoa específica e não foi alterada.

Antes complicadas de configurar, as ferramentas de criptografia de ponta a ponta são muito mais úteis do que antes eram. Uma ferramenta de mensagens seguras, como o Signal, é um bom exemplo de aplicativo que usa a criptografia de ponta a ponta para criptografar mensagens entre o remetente e o destinatário pretendido, mantendo-se fácil de usar. Até mesmo as maiores plataformas, como o WhatsApp e o Facebook Messenger, oferecem suporte à criptografia de ponta a ponta sem que você precise fazer qualquer tipo de configuração antecipada.

O tipo de criptografia de que estamos falando neste guia, no qual as ferramentas de criptografia de ponta a ponta se baseiam, é chamado de criptografia de chave pública .

A compreensão dos princípios subjacentes da criptografia de chave pública o ajudará a usar essas ferramentas com segurança. Há limites para o que a criptografia de chave pública pode e não pode fazer, e é útil entender esses limites

O que a criptografia faz?

Assim funciona a criptografia ao enviar uma mensagem secreta:

  1. Uma mensagem claramente legível é primeiro criptografada em uma mensagem embaralhada que é incompreensível para qualquer pessoa que a veja ("oi mamãe " se transforma em "OhsieW5ge+osh1aehah6").
  2. A mensagem criptografada é enviada pela Internet, onde, se alguém estiver observando, o bisbilhoteiro só verá a mensagem codificada ("OhsieW5ge+osh1aehah6").
  3. Quando chega ao destino, o destinatário pretendido, e somente ele, tem alguma forma de descriptografá-la de volta à mensagem original ("OhsieW5ge+osh1aehah6" é transformada novamente em "oi mamãe").

Criptografia simétrica: Uma história sobre a transmissão de notas secretas com chave única

Vamos começar com um exemplo da história: a cifra de César.

Julia quer enviar a seu amigo César um bilhete dizendo: "Encontre-me no jardim". Mas ela não quer que seus colegas de classe o vejam.

Se Julia passar o bilhete como está, ele passará por vários colegas intermediários antes de chegar a César. Embora neutros, os intermediários ainda são intrometidos e podem dar uma olhada na mensagem antes de passá-la adiante. Eles também podem fazer cópias da mensagem antes de passá-la adiante e registrar o horário em que Julia envia a mensagem para César.

Assim, para proteger a privacidade da conversa, Julia poderia decidir criptografar sua mensagem com uma "chave de três", deslocando as letras do alfabeto em três. Por exemplo, A seria D, B seria E e assim por diante.

Se Julia e César usarem uma chave simples de três para criptografar e uma chave de três para descriptografar , a mensagem criptografada sem sentido poderá ser suficiente para enganar os colegas de classe, mas ainda assim será fácil de decifrar. Qualquer um dos colegas poderia "usar força bruta" da chave tentando todas as combinações possíveis até descobrir uma ou duas palavras. Em outras palavras, eles podem tentar adivinhar persistentemente até obterem a resposta para descriptografar a mensagem.

O método de mudar o alfabeto em três caracteres é um exemplo histórico de criptografia usado por Júlio César, daí o nome cifra de César. Quando há uma chave para criptografar e descriptografar, como neste exemplo, ela é chamada de criptografia simétrica.

A cifra de César é uma forma fraca de criptografia simétrica. Felizmente, a criptografia evoluiu muito desde então. Em vez de apenas deslocar as letras de uma mensagem em alguns caracteres, as chaves agora podem usar a matemática e a ajuda de computadores para criar uma longa sequência de números que é muito mais difícil de decodificar.

A criptografia simétrica tem muitas finalidades práticas, mas não aborda os seguintes problemas: E se alguém puder espionar e esperar que Julia e César compartilhem a chave e, em seguida, roubar a chave para descriptografar suas mensagens? E se eles esperarem que Júlia e César revelem de alguma forma que o segredo para descriptografar suas mensagens é a chave de três?

Como César e Julia podem contornar esse problema?

A melhor resposta atualmente é a criptografia de chave pública. Na criptografia de chave pública, as chaves de criptografia e de descriptografia são diferentes, e é perfeitamente seguro compartilhar a chave pública, desde que a chave privada seja mantida em sigilo.

Criptografia de chave pública: Uma história de duas chaves

Vamos examinar o problema mais de perto: Como o remetente envia a chave simétrica para o destinatário sem que alguém também espie essa conversa?

A criptografia de chave pública (também conhecida como criptografia assimétrica) tem uma solução simples para isso. Ela permite que cada pessoa em uma conversa crie duas chaves: uma chave pública e uma chave privada. As duas chaves estão conectadas e, apesar do nome, não são "chaves", mas números muito grandes com determinadas propriedades matemáticas. Se você codificar uma mensagem usando a chave pública de uma pessoa, ela poderá decodificá-la usando a chave privada correspondente.

Agora, Julia e César deixaram de enviar anotações em papel na aula e estão usando seus computadores para enviar mensagens criptografadas usando criptografia de chave pública. Todos os colegas de classe que estavam passando as anotações no exemplo anterior foram substituídos pelos computadores que atuam como intermediários entre Julia e César: Os respectivos pontos Wi-Fi de Julia e César, os provedores de serviços de Internet e seus servidores de e-mail. Na realidade, pode haver centenas de computadores entre Júlia e César que facilitam essa conversa e, assim como os colegas intrometidos, esses intermediários fazem e armazenam cópias das mensagens de Júlia e César sempre que passam por eles.

Eles não se importam que os intermediários possam vê-los se comunicando, mas querem que o conteúdo de suas mensagens permaneça privado.

Primeiro, Julia precisa da chave pública de César. César envia sua chave pública por um canal inseguro, como um e-mail não criptografado. (Boas notícias: os aplicativos de comunicação modernos farão isso em nome de César, eliminando a etapa manual, mas as etapas manuais ainda são um bom exemplo de como isso funciona).

César não se importa que os intermediários tenham acesso a ela, pois a chave pública é algo que ele pode compartilhar livremente (a metáfora da chave não funciona bem aqui; não é correto pensar na chave pública como uma chave literal; mais uma vez: é um número muito grande com determinadas propriedades matemáticas, geralmente codificado como uma cadeia de caracteres). Por segurança, César envia sua chave pública por vários canais, um e-mail e uma mensagem de texto, para que seja mais difícil para os intermediários enviarem uma de suas próprias chaves públicas para Julia.

Julia recebe o arquivo de chave pública de César. Agora, Julia pode criptografar uma mensagem para ele. Ela escreve: "Encontre-me no jardim".

Ela envia a mensagem criptografada. Ela é criptografada somente para César.

Tanto Julia quanto César conseguem entender a mensagem, mas ela parece sem sentido para qualquer outra pessoa que tente lê-la. Mas os intermediários ainda podem ver os metadados , como a linha de assunto, as datas, o remetente e o destinatário.

Como a mensagem é criptografada com a chave pública de César, somente César e o remetente (Julia) podem desbloquear e ler o conteúdo da mensagem.

César pode ler a mensagem usando sua chave privada.

Para recapitular:

  • A criptografia de chave pública permite que alguém envie sua chave pública em um canal aberto e inseguro. Hoje em dia, os aplicativos de comunicação cuidam dessa etapa para você.
  • Ter a chave pública de um amigo permite que você criptografe mensagens para ele.
  • Sua chave privada é usada para descriptografar mensagens criptografadas destinadas a você.
  • Intermediários, como provedores de serviços de e-mail, provedores de serviços de Internet e aqueles em suas redes, podem ver os metadados durante todo esse tempo. Isso inclui detalhes como quem está enviando o quê para quem, a que horas é recebida, qual é a linha de assunto, se a mensagem estar criptografada e assim por diante.

Outro problema: e quanto à falsificação de identidade?

No exemplo com Julia e César, os intermediários podem ver os metadados o tempo todo.

Mas digamos que um dos intermediários seja um mau ator. Por mau ator, queremos dizer alguém que tem a intenção de prejudicá-lo, tentando roubar ou interferir em suas informações. Esse mau ator quer espionar a mensagem de Julia para César.

Digamos que esse mau ator consiga enganar Julia para que ela pegue o arquivo de chave pública errado para César. Julia não percebe que, na verdade, essa não é a chave pública de César. Assim, em vez de César, o malfeitor recebe a mensagem de Julia, dá uma olhada nela e a repassa para César.

O malfeitor pode decidir alterar o conteúdo do arquivo antes de passá-lo para César. Por exemplo, ele poderia alterar "Encontre-me no jardim" para "Encontre-me na cafeteria".

Mas, na maioria das vezes, o mau ator decide deixar o conteúdo inalterado. Assim, o mau ator encaminha a mensagem de Julia para César como se nada tivesse acontecido, César sabe que vai encontrar Julia no jardim e, para sua surpresa, o mau ator também está lá!

Isso é conhecido como "ataque man-in-the-middle" ou "ataque machine-in-the-middle".

Felizmente, a criptografia de chave pública tem um método para evitar ataques man-in-the-middle (homem-do-meio) por meio de algo chamado "verificação de impressão digital". É melhor fazer isso na vida real, quando possível. Você teria a impressão digital da sua chave pública disponível e seu amigo verificaria duas vezes se cada caractere da impressão digital da sua chave pública corresponde ao que ele tem da impressão digital da sua chave pública. Isso é um pouco tedioso, mas vale a pena.

Diferentes aplicativos criptografados de ponta a ponta também têm uma maneira de verificar as impressões digitais, embora haja variações quanto ao nome da prática e à forma como ela é implementada. Em alguns casos, você lerá cuidadosamente cada caractere da impressão digital e garantirá que ele corresponda ao que você vê na sua tela e ao que seu amigo vê na tela dele. Em outros, você pode escanear um código QR no telefone de outra pessoa para "verificar" o dispositivo dela." No exemplo abaixo, Julia e César podem se encontrar pessoalmente para verificar as impressões digitais de seus telefones escaneando os códigos QR um do outro usando a câmera do telefone.

Para ver um exemplo de como esse método funciona na prática, confira a do Signal opção "Verificar número de segurança" ou o recurso "Verificar código de segurança" do WhatsApp.

Se você não puder se dar ao luxo de se encontrar pessoalmente, poderá compartilhar sua impressão digital por meio de outro canal seguro, como outro aplicativo de mensagens criptografadas de ponta a ponta ou em uma chamada de vídeo.

No exemplo abaixo, César envia sua impressão digital de chave pública para Julia usando um aplicativo criptografado de ponta a ponta diferente em seu smartphone.

Para revisar:

  • Um ataque homem-do-meio é quando alguém intercepta sua mensagem para outra pessoa. O invasor pode alterar a mensagem e passá-la adiante ou optar por simplesmente escutar.
  • A criptografia de chave pública permite que você resolva os ataques homem-do-meio fornecendo maneiras de verificar as identidades do destinatário e do remetente. Isso é feito por meio da "verificação de impressão digital".
  • Além de ser usada para criptografar uma mensagem para seu amigo, a chave pública dele também vem com uma "impressão digital de chave pública". Você pode usar a impressão digital para verificar a identidade de seu amigo.
  • A chave privada é usada para criptografar mensagens, bem como para assinar digitalmente mensagens como sendo de sua autoria (mais sobre isso abaixo).

Assinaturas

Sabemos que, se você criptografar uma mensagem com uma determinada chave pública, ela só poderá ser descriptografada com a chave privada correspondente. O oposto também é verdadeiro: se você criptografar uma mensagem com uma determinada chave privada, ela só poderá ser descriptografada pela chave pública correspondente.

Por que isso seria útil? Suponha que você tenha escrito uma mensagem que dissesse: "Prometo pagar US$ 100 a Aazul" e, em seguida, a transformasse em uma mensagem secreta usando sua chave privada. Qualquer pessoa poderia descriptografar essa mensagem. Mas somente uma pessoa poderia tê-la escrito: a pessoa que possui sua chave privada. E se você fez um bom trabalho mantendo sua chave privada segura, isso significa que você, e somente você, poderia tê-la escrito. Ao criptografar a mensagem com sua chave privada, você garante que ela só pode ter vindo de você.

Em outras palavras, você fez com essa mensagem digital a mesma coisa que fazemos quando assinamos uma mensagem no mundo real, e é por isso que esse processo é conhecido como "assinatura" de uma mensagem.

A assinatura também é um dos vários métodos que podem tornar as mensagens à prova de adulteração. Se alguém tentasse alterar sua mensagem de "Prometo pagar US$ 100 a Aazul" para "Prometo pagar US$ 100 a Ming", não seria possível assiná-la novamente usando sua chave privada. Uma mensagem assinada garante que ela se originou da fonte correta e não foi alterada em trânsito.

Em revisão: Uso da criptografia de chave pública

Vamos revisar. A criptografia de chave pública permite criptografar e enviar mensagens com segurança para qualquer pessoa cuja chave pública você conheça.

Se outras pessoas conhecerem sua chave pública:

  • Eles podem enviar mensagens secretas que somente você pode decodificar usando sua chave privada correspondente.
  • Você pode assinar suas mensagens com sua chave privada para que os destinatários saibam que as mensagens só podem ter vindo de você.
  • Atualmente, os aplicativos de mensagens lidam com suas chaves públicas e privadas e têm um mecanismo mais fácil de usar para verificar essas chaves, facilitando o uso da criptografia de chave pública por qualquer pessoa, mesmo sem perceber que a está usando.

E se você souber a chave pública de outra pessoa:

  • Você pode decodificar uma mensagem assinada por ela e saber que ela realmente veio dela.

A criptografia de chave pública se torna mais útil quando mais pessoas conhecem sua chave pública. Você pode compartilhar sua chave pública com qualquer pessoa que queira se comunicar com você, não importa quem a veja.

A chave pública vem acompanhada de um arquivo chamado chave privada. Você pode pensar na chave privada como uma chave real que deve ser protegida e mantida em segurança. Sua chave privada é usada para criptografar e descriptografar mensagens.

Se a chave privada for excluída acidentalmente do dispositivo, não será possível descriptografar as mensagens criptografadas. Se alguém copiar sua chave privada (seja por acesso físico ao seu computador, malware no seu dispositivo ou se você acidentalmente compartilhar sua chave privada), outras pessoas poderão ler suas mensagens criptografadas. Eles podem fingir ser você e assinar mensagens alegando que foram escritas por você.

Não é inédito que governos roubem chaves privadas de computadores de pessoas importantes (levando os computadores embora ou instalando malware neles usando acesso físico ou ataques de phishing). Isso anula a proteção que a criptografia de chave privada oferece.

É como dizer que você tem uma fechadura que não pode ser arrombada na porta, mas alguém pode roubar sua chave, copiá-la e colocá-la de volta no seu bolso. Assim, eles poderão entrar em sua casa sem burlar a fechadura.

Isso remete ao seu plano de segurança: determine quais são seus riscos e trate-os adequadamente. Se você acha que alguém se daria muito trabalho para tentar obter sua chave privada, talvez não queira usar uma solução no navegador para criptografia de ponta a ponta. Em vez disso, você pode optar por armazenar sua chave privada em seu próprio computador ou telefone, e não no computador de outra pessoa (como na nuvem ou em um servidor).

Criptografia de Chave Pública na Prática

Examinamos a criptografia simétrica e a criptografia de chave pública como explicações separadas, mas a criptografia de chave pública também usa a criptografia simétrica. A criptografia de chave pública criptografa uma chave simétrica, que é usada para descriptografar a mensagem real.

O programa PGP (Pretty Good Privacy ) raramente é usado, mas continua sendo um exemplo de protocolo que usa criptografia simétrica e criptografia de chave pública (assimétrica). O uso de ferramentas de criptografia de ponta a ponta, como o PGP, o deixará muito ciente das práticas de criptografia de chave pública, pois é necessário executar várias etapas manualmente. A maior parte do que o PGP faz está oculta para o usuário nas ferramentas de comunicação modernas, mas como o PGP exige muitas etapas manuais, ainda é útil explicar como funciona a criptografia de ponta a ponta.

O Que são Exatamente as Chaves e Como são Vinculadas?

A criptografia de chave pública baseia-se na premissa de que há duas chaves: uma chave para criptografar e uma chave para descriptografar. Você pode enviar uma chave pública por um canal inseguro, como a Internet. Você pode postar essa chave pública em qualquer lugar, em locais muito públicos, sem comprometer a segurança de suas mensagens criptografadas.

A chave pública vem acompanhada de um arquivo chamado chave privada. Você pode pensar na chave privada como uma chave real que deve ser protegida e mantida em segurança. Sua chave privada é usada para criptografar e descriptografar mensagens.

Vamos dar uma olhada como isso funciona num algoritmo de criptografia de chave pública comumente usado, chamado RSA (Rivest-Shamir-Adleman). O RSA é frequentemente usado para gerar pares de chaves para e-mails criptografados por PGP.

A chave pública e a chave privada são geradas e vinculadas. Ambas dependem dos mesmos números primos secretos. A chave privada representa dois números primos secretos.

Metaforicamente, a chave pública é o número do produto: ela é composta pelos mesmos dois números primos muito grandes usados para criar a chave privada. É muito difícil descobrir quais dois números primos grandes criaram a chave pública.

Esse problema é conhecido como "fatoração de primos", e algumas implementações de criptografia de chave pública aproveitam essa dificuldade para que os computadores resolvam quais são os números primos componentes. A criptografia moderna nos permite usar números primos escolhidos aleatoriamente, ridiculamente gigantescos, que são difíceis de adivinhar tanto para humanos quanto para computadores.

O ponto forte aqui é que as pessoas podem compartilhar suas chaves públicas por canais inseguros para permitir que criptografem umas às outras. No processo, elas nunca revelam qual é sua chave privada (números primos secretos) porque, em primeiro lugar, nunca precisam enviar sua chave privada para descriptografar mensagens.

Para que a criptografia de chave pública funcione, o remetente e o destinatário precisam das chaves públicas um do outro.

Outra maneira de pensar nisso é que a chave pública e a chave privada são geradas juntas, como um símbolo yin-yang. Elas estão entrelaçadas.

A chave pública pode ser pesquisada e compartilhada. Você pode distribuí-la para quem quiser. Pode publicá-la em suas mídias sociais (se não se importar que ela revele a existência do seu endereço de e-mail). Pode colocá-la em seu sitio pessoal.

A chave privada precisa ser mantida em segurança e em local fechado. Você só tem uma. Não convém perdê-la, compartilhá-la ou fazer cópias dela que possam circular, pois isso dificulta a manutenção da privacidade de suas mensagens privadas.

A Moderna Criptografia de Chave Pública na Prática: A Catraca Dupla do Signal

 

Com o tempo, os protocolos de mensagens evoluíram para oferecer propriedades adicionais para melhorar a segurança e a usabilidade. Isso mudou a forma como todos nós nos envolvemos com a criptografia ao longo dos anos, passando de uma experiência transparente, mas desajeitada, para algo que acontece em segundo plano sem que percebamos. Um exemplo disso é o "Algoritmo de catraca dupla" do Signal. Para entender melhor como isso funciona, devemos começar revisando algumas especificidades importantes de protocolos anteriores.

Pretty Good Privacy (PGP)

Conforme explicado acima, o PGP é um aplicativo único de criptografia assimétrica e criptografia simétrica e é normalmente usado para criptografar e-mails em um contexto de mensagens. Com o PGP, a criptografia assimétrica é usada para criptografar uma chave simétrica, que é então usada para criptografar uma mensagem. O PGP permite a comunicação assíncrona, mas o comprometimento de uma chave única revelaria o conteúdo de todas as mensagens, passadas e futuras. Portanto, se alguém obtivesse acesso à sua chave, teria acesso a todas as mensagens que você já enviou (ou enviará).

O PGP não é tão popular como costumava ser, mas alguns aplicativos de mensagens usam um tipo semelhante de criptografia. Em geral, esses aplicativos ainda têm os problemas de recuperação de invasão e sigilo de arquivamento de invasão que a versão de e-mail tem.

Off the Record (OTR)

O OTR já foi um complemento popular dos primeiros clientes de bate-papo de mensagens, como o Pidgin, e era usado para comunicação em serviços como o Google Hangouts. Para que o OTR funcione, ambas as partes devem estar on-line para configurar uma sessão, o que limita seu uso.

Com o OTR, cada mensagem de ida e volta é uma "sessão". Isso significa que, se uma única chave for vazada, somente as mensagens dessa sessão serão comprometidas, e não as mensagens anteriores ou posteriores. Se várias mensagens forem enviadas de um usuário em sequência, um vazamento de chave revelaria todas elas, mas nada antes ou depois. A troca de chaves é anexada às mensagens, portanto, novas chaves estão sendo constantemente derivadas.

Do ponto de vista da segurança, isso é ótimo porque, se um invasor de alguma forma acessar essa chave, ele só terá acesso a uma única mensagem. Mas a usabilidade do OTR não é muito boa. Como ambas as partes precisam estar on-line, não é bom para mensagens assíncronas, mesmo após a configuração, porque a nova chave só é trocada depois que ambas as partes enviam mensagens. Isso significa que o material da chave deve ser mantido até que a outra parte responda. Além disso, o rastreamento de mensagens fora de ordem - o recurso dos clientes de mensagens que mantém as mensagens em ordem linear com base no horário em que são enviadas e recebidas - torna-se complicado. A ordem das mensagens não é importante apenas para a legibilidade da conversa, mas também é crucial para que a criptografia realmente funcione. Se uma mensagem for enviada fora de ordem, o aplicativo do destinatário pode não saber qual chave usar para descriptografar a mensagem.

Protocolo de Mensagens Instantâneas do Círculo Silencioso (SCIMP)

O SCIMP era um protocolo provisório que foi pioneiro no uso de uma "catraca dupla". Uma catraca dupla é quando cada remetente tem sua própria cadeia pessoal de chaves, cada uma derivada da anterior. Isso significa que o material da chave pode ser descartado com segurança depois que uma mensagem é enviada.

Imagine uma catraca. Cada vez que você gira a catraca, ela cria uma nova chave para cada mensagem. Se um invasor tiver acesso a essa chave de alguma forma, ele não poderá mais ler nenhuma mensagem anterior porque, depois que a mensagem é enviada, a catraca gira novamente para criar uma nova chave. Mas ele poderia usar essa chave para fazer uma cópia da catraca, o que lhe permitiria ler todas as mensagens futuras. As duas pessoas em uma conversa têm uma catraca pessoal que gira a cada mensagem. Isso foi projetado para evitar que um invasor volte atrás em uma conversa para ler as mensagens anteriores, mesmo que uma pessoa tenha enviado várias mensagens seguidas.

O SCIMP oferece "sigilo de encaminhamento", o que significa que o comprometimento de uma chave não revelaria mensagens anteriores (o nome é confuso, mas isso impede que as mensagens mais antigas sejam lidas, mesmo que uma chave seja comprometida no futuro). Mas o SCIMP não oferece nenhum "sigilo futuro" ou "recuperação de invasão" (usado para impedir que as mensagens enviadas após o comprometimento de uma chave sejam lidas). Além disso, esperar mensagens fora de ordem significa manter o material da chave por algum tempo.

Algoritmo de catraca dupla do Signal

A Signal usa uma combinação de OTR e SCIMP para dar suporte a mensagens assíncronas. Em seu blog, a Signal explica a filosofia do projeto da seguinte forma: "Queríamos uma catraca que combinasse o melhor dos dois mundos: o sigilo futuro ideal que uma catraca de iteração de hash como a SCIMP proporciona, bem como as boas propriedades de sigilo futuro que uma catraca DH como a OTR proporciona, com o mínimo possível dos aspectos negativos de ambas."

No Signal, cada pessoa tem uma catraca pessoal no estilo SCIMP que gira quando envia uma nova mensagem (mas a outra pessoa ainda não respondeu). Mas cada vez que as mensagens são trocadas, uma nova sessão é criada, como vimos no OTR.

Ao integrar as duas tecnologias, um invasor precisaria descriptografar quase todas as mensagens individualmente. Tecnicamente, se o usuário A tiver um longo fluxo de mensagens sem que a outra pessoa B responda, e a chave for vazada, o invasor poderá ver todas as novas mensagens enviadas por A até que B responda e a sessão seja avançada.

O algoritmo de catraca dupla do Signal usa a ideia das cadeias de chaves SCIMP - que protegem cada mensagem individual, mesmo que um usuário esteja enviando "mensagens de texto duplas" - e as transforma em mini-cadeias penduradas em cada etapa de uma catraca OTR. Isso garante que a conversa receba uma nova chave sempre que um novo usuário responder. Além disso, reduz as idas e vindas necessárias com a introdução de uma terceira cadeia de "chave raiz".

Uma das grandes inovações do Signal foi a possibilidade de iniciar conversas de forma assíncrona usando uma troca de chaves off-line. Como a configuração da chave de criptografia da próxima mensagem requer apenas duas etapas e não três, uma dessas etapas pode ser preparada com antecedência e salva no servidor do Signal. As chaves secretas relevantes não serão criadas até que alguém use esse material para realizar um cálculo e derivar suas informações de chave compartilhada, portanto, é seguro fazer a pré-publicação. O Signal chama isso de "pré-chaves". Para obter uma versão menos simplificada, consulte aqui ou aqui para obter a versão pós-quântica.

Metadados: O que a criptografia de chave pública não pode fazer

A criptografia de chave pública tem como objetivo garantir que o conteúdo de uma mensagem seja secreto, genuíno e não seja adulterado. Mas essa não é a única preocupação de privacidade que você pode ter. Como já observamos, as informações sobre suas mensagens - os metadados - podem ser tão reveladoras quanto o conteúdo delas.

Se você trocar mensagens criptografadas com um dissidente conhecido em seu país, poderá correr perigo simplesmente por se comunicar com ele, mesmo que essas mensagens não sejam decodificadas. Em alguns países, você pode ser preso por se recusar a decodificar mensagens criptografadas. Cada ferramenta de mensagens criptografadas coleta uma quantidade diferente de metadados. Por exemplo, o WhatsApp também é criptografado de ponta a ponta, mas coleta mais metadados do que o Signal.

Agora que você aprendeu sobre criptografia de chave pública, experimente usar uma ferramenta de criptografia de ponta a ponta como o Signal.