Explicando HTTPS com Pombos Correio.

João Paulo Varandas
inPaaS
Published in
5 min readJan 12, 2018

Artigos sobre criptografia são em geral complicados de entender, sempre cheios de demonstrações matemáticas. A não ser que você esteja de fato desenvolvendo um algoritmo de criptografia, essa complexidade não é necessária para entender o que acontece do lado de fora.

Pombos correio não serão suficiente para explicar toda essa matemática, mas se você quer entender brevemente o protocolo, faça um café e aproveite o artigo!

Aplausos ao Andrea Zanin, criador do artigo original em inglês: https://medium.freecodecamp.org/https-explained-with-carrier-pigeons-7029d2193351

Alice, Bob e … pombos?

Enquanto você navega na internet (lendo esse artigo, comprando no Submarino, mandando selfies pro Instagram) se resume a enviar e receber mensagens para um servidor.

Apesar de parecer um pouco abstrato, vamos imaginar que essas mensagens foram entregues por pombos correio. Pode parecer um pouco aleatório, mas acredite, HTTPS funciona do mesmo jeito, embora seja muito mais rápido.

Além disso, ao invés de falarmos de servidores, clientes e hackers, vamos falar de Alice, Bob e Chico. Talvez você reconheça esses nomes se já viu outros artigos sobre criptografia.

Uma conversa inocente

Se Alice quer enviar uma mensagem à Bob, ela prende a mensagem na perna do pombo correio e envia a Bob. Bob recebe a mensagem, lê e acaba por aí.

Mas e se Chico interceptasse o pombo da Alice durante o vôo e mudasse a mensagem? — Bob não teria como saber que a mensagem enviada por Alice foi modificada no trajeto.

É assim que o protocolo HTTP funciona. Assustador não é? — Eu não usaria HTTP para enviar a minha senha do banco e nem você deveria.

Um código secreto

Mas Alice e Bob são muito astutos, eles concordaram em escrever a mensagem usando um código secreto. Eles vão deslocar as letras em 3 posições do alfabeto. Por exemplo M → P, E → H, A → D. A mensagem em texto puro "mensagem secreta" seria enviada como "phqvdjhp vhfuhwd".

Agora se Chico interceptar o pombo, ele não vai poder entender a mensagem nem conseguirá alterá-la para algo que faça sentido, pois ele não conhece o código. Mas Bob, que conhece a regra, vai aplicar a criptografia reversa e desvendar a mensagem. A mensagem cifrada “phqvdjhp vhfuhwd” se tornará novamente "mensagem secreta".

Sucessso!

Isso é chamado de criptografia de chave simétrica, pois com a chave, você pode criptografar e descriptografar as mensagens.

O código acima é conhecido como Cifra de César. Atualmente, os códigos usados são muito mais complexos, mas a ideia principal é a mesma!

E como as chaves são escolhidas?

A criptografia de chave simétrica é muito segura se somente o remetente e o destinatário conhecem a chave usada. Na cifra de César, a chave é a quantidade de posições que precisam ser deslocadas. No exemplo acima usamos 3 posições, mas poderíamos usar 4 ou 12.

O problema é que se Alice e Bob nunca se encontraram antes e começarem a mandar mensagens dessa forma, eles jamais conseguiriam estabelecer uma chave segura. Se eles enviarem a chave junto com a mensagem, Chico poderia interceptar a mensagem e descobri-la. Isso permitiria que Chico pudesse ler e alterar as mensagens mesmo depois que eles começassem e usar a cifra.

Esse é um exemplo do ataque conhecido como "Man-in-the-Middle" e a única forma de evitar isso é mudar todo a regra da criptografia.

Pombos carregando caixas

Então Alice e Bob criaram um novo sistema. Quando Alice quer enviar uma mensagem a Bob, ela segue os passos abaixo:

  • Alice envia um pombo para Bob sem nenhuma mensagem.
  • Bob envia o pombo de volta com uma caixa e um cadeado aberto, mas fica com a chave.
  • Alice coloca a mensagem na caixa, fecha o cadeado e envia para Bob.
  • Bob recebe a caixa, abre com a chave e lê a mensagem.

Ora, dessa forma, Chico não consegue alterar a mensagem se interceptar o pombo, pois ele não tem a chave. O mesmo processo acontece quando Bob quer enviar uma mensagem a Alice.

Em tecnologia, o nome disso é Criptografia de chave assimétrica. Ela é chamada de assimétrica pois mesmo que você possa criptografar a mensagem(fechar o cadeado) você não pode decifrá-la(abrir o cadeado). O cadeado é conhecido como chave pública(Public Key) e a chave para abrir o cadeado é a chave privada(Private Key).

Como confiar na caixa?

Se você prestar atenção, notará que ainda existe um problema. Se Bob recebe uma caixa aberta, como ele pode saber que a caixa veio de fato da Alice e que Chico não interceptou o Pombo e trocou a caixa por uma que ele tenha a chave?

Então Alice decide que ela vai assinar a caixa, dessa forma Bob verificará a assinatura e saberá que Alice enviou a caixa.

Mas, como Bob vai reconhecer a assinatura da Alice se eles nunca se falaram? Boa pergunta, então eles decidiram que ao invés de Alice assinar a caixa, Tales vai assiná-la.

Mas quem é Tales? — Tales é um cara famoso, muito conhecido e altamente confiável. Tales enviou sua assinatura a todo mundo e todos confiam que ele só assinará caixas de pessoas legítimas.

Tales só vai assinar a caixa de Alice se ele tiver certeza que quem está pedindo a assinatura é a Alice. Então Chico não pode pegar uma caixa da Alice assinada pelo Tales, pois Bob saberá se a mensagem é autêntica pois Tales somente assina as caixas depois de verificar a identidade dos envolvidos.

Tales, em termos técnicos é conhecido como Autoridade Certificadora (Certification Authority) e o browser que você está usando para ler esse artigo vem com uma série de assinaturas dessas autoridades e recebe atualizações temporárias com revogações ou novas assinaturas.

Então quando você acessa uma página segura pela primeira vez, você confia no conteúdo, pois você confia em Tales e Tales diz que essa caixa é legítima.

Mas caixas são pesadas

Alice e Bob agora tem um sistema de comunicação confiável, mas eles percebem que os pombos são mais lentos quando carregam as caixas do que simplesmente mensagens.

Então eles decidem que vão utilizar a caixa (Criptografia Assimétrica) somente para decidir a regra para cifrar a mensagem usando a cifra de César(Criptografia Simétrica). E assim poderão voltar a enviar mensagens leves através dos pombos.

Dessa forma, eles usam o melhor dos cenários. A confiança de uma criptografia assimétrica e a eficiência da criptografia simétrica.

No mundo real, não temos pombos, entretanto, criptografar mensagens usando chaves assimétricas é mais lento do que o método simétrico, portanto ela é usada somente na troca das chaves.

Agora você já sabe como funciona o HTTPS e seu café deve estar pronto. Tome seu café, você merece!

Você já conhece a inPaaS? — Visite nosso site e entre em contato conosco para saber mais sobre a tecnologia e como podemos ajudá-lo com soluções seguras e práticas para processos do seu dia-a-dia.

--

--

João Paulo Varandas
inPaaS
Editor for

Software Architect, Rookie Writer and Co-Founder of inPaaS