O princípio da "Web of Trust" ou como funciona o PGP

O princípio da "Web of Trust" ou como funciona o PGP

Seus mensageiros, sites de protocolo HTTPS, autorização em serviços de Internet, armazenamento seguro de arquivos e, às vezes, até mesmo despertadores - todas essas coisas usam PGP. Mas o que é isso, afinal? A Wikipedia dá a seguinte definição:

Privacidade muito boa (PGP) é um programa de criptografia que fornece privacidade criptográfica e autenticação para comunicação de dados. O PGP é usado para assinar, criptografar e descriptografar textos, e-mails, arquivos, diretórios e partições de disco inteiras e para aumentar a segurança das comunicações por e-mail. Phil Zimmermann desenvolveu o PGP em 1991. PGP e softwares similares seguem o padrão OpenPGP (RFC 4880), um padrão aberto para criptografar e descriptografar dados. Versões modernas do PGP são interoperáveis com GnuPG e outros sistemas compatíveis com OpenPGP.

Está claro em palavras, mas vamos ver como funciona.

Conceito

Vamos imaginar que temos o usuário A e o usuário B. Eles precisam começar a se comunicar, mas de uma forma que ninguém possa descobrir o conteúdo de sua correspondência. É aí que entra a criptografia.

Os sistemas modernos usam Rjindael (atualmente AES), DES, RC4 e alguns outros algoritmos. Não vou entrar em detalhes sobre o trabalho deles. Tudo o que você precisa saber sobre eles é que se você der a eles dados de entrada e uma chave, você obtém uma matriz de bytes criptografada, que pode ser revertida com a mesma chave. Como um cadeado, eles abrem e fecham, mas sem uma chave, é quase impossível fazer isso (não há maneiras eficazes de quebrar esses algoritmos). Esses algoritmos de criptografia são chamados de algoritmos de criptografia simétrica.

E essa é a resposta, não é? Deixe o usuário A dar sua chave ao usuário B. Então você pode criptografar sua correspondência de ambos os lados, e ninguém saberá o que eles escrevem um para o outro.

Claro, se ambos os usuários se conhecerem na vida real, um pode dar ao outro um pen drive com a chave nele. Mas na Internet é impossível fazer isso, os usuários estão longe de dois, e um serviço pode atender milhões de usuários diferentes por dia. Além disso, nem sempre é possível dar sua chave de criptografia pessoal a todos com quem você se corresponde pessoalmente durante uma reunião.

Assinatura Eletrônica

Como passar sua chave privada do mesmo AES é como comprometer sua segurança, surge a pergunta: como o usuário A pode passar sua chave com segurança para o usuário B?

A solução é assinar chaves e e-mails com outra chave! Mas somente essa segunda chave será de um algoritmo de criptografia assimétrica. A essência é a mesma que na simétrica, mas agora, não há uma única chave da fechadura - há duas. Uma é "pública", os dados só podem ser criptografados com ela, e a segunda é "privada", que é capaz de descriptografar os dados processados pela chave pública de seu par.

Esse processo permite que você publique livremente sua chave pública sem comprometer sua segurança.

Esta é a base do princípio de funcionamento das "Assinaturas Eletrônicas". Elas são necessárias para que o usuário B dos dados tenha certeza de que os dados foram criptografados com a chave que pertence ao usuário A, e vice-versa.

A assinatura é criada a partir do hash dos dados originais e anexada ao pacote enviado. O destinatário descriptografa a assinatura com a chave pública, compara-a com o hash dos dados recebidos e, se eles corresponderem, o remetente é um usuário genuíno e não um fraudador.

Rede de Confiança

OK, descobrimos como realizar um handshake (handshake é o processo de formação de um canal de comunicação seguro).

Agora, imagine que entre os usuários A e B, existe outro usuário, C.

"C" é um invasor que precisa saber sobre os detalhes da comunicação de A e B. Ele cria dois pares de chaves para assinar e mais duas chaves para criptografar os dados. Para o usuário A, ele se apresenta como usuário B, e para o usuário B como usuário A. A realidade é que, nas realidades da Internet, não se pode ter 100% de certeza de que a assinatura eletrônica e a chave resultantes são genuínas.

Então, se tal cenário for realmente possível, nossos A e B não estarão seguros?

Há salvação! Agora, chegamos ao tópico principal - a "Teia da Confiança".

Esta rede consiste no fato de que todos os usuários conhecem as chaves públicas das assinaturas eletrônicas uns dos outros, e cada membro da rede pode ser questionado: "Esta chave, que me foi enviada pelo usuário B, pertence a ele e não a algum intruso?"

Neste caso, uma rede de confiança pode ser muito eficiente mesmo com um pequeno número de participantes, porque se um conhece o outro, o terceiro, ao perguntar ao primeiro, saberá a chave pública do segundo. Como as raízes de um carvalho, a Web of Trust é interligada, permitindo que os usuários compartilhem dados. Agora, nosso usuário C não pode mais se passar por outros usuários. Somente se ele tentar, o usuário A, perguntando a qualquer um dos membros da rede, perceberá que alguém está entre ele e o usuário B e interceptando mensagens.

Generalização

Agora, vamos combinar todos esses conceitos em um esquema simples.

O usuário A e o usuário B estão na mesma rede confiável e desejam iniciar uma comunicação segura. "A" pede a vários membros da rede a chave pública de 'B'. Usando essa chave, ele envia uma solicitação de handshake ao usuário B. "B", por sua vez, aprende a chave pública do usuário A, gera uma chave simétrica para comunicação posterior e, usando a chave pública do usuário A, envia a chave simétrica de volta.

Todas as mensagens neste esquema também são assinadas com assinaturas eletrônicas.

Com essa comunicação, nenhuma interferência externa é possível, e nossos usuários podem finalmente começar a se corresponder.

Não faz sentido usar esse esquema manualmente - ele já está incorporado em todos os protocolos de comunicação possíveis da Internet pelos seus navegadores e aplicativos.

Conclusão

Nenhum sistema é perfeito. Ataques MITM (Man in the middle, no nosso caso - uma maneira de falsificar certificados verificando chaves falsas com assinaturas confiáveis pelo navegador do usuário vítima) ainda estão sendo realizados hoje.

Mas se você vir aquele "cadeado verde" perto da barra de endereço do seu navegador, seus dados estão nas mãos seguras do algoritmo PGP.

Conteúdo Relacionado

O Rails 8 sempre foi um divisor de águas...
Os aplicativos da Web são uma pedra fundamental da...
Os desenvolvedores Java enfrentam uma variedade de erros relacionados...
Com várias décadas de experiência, adoro criar aplicativos corporativos...
A escalabilidade é um fator crítico quando se trata...
Ao trabalhar em um projeto de código aberto no...
A Inteligência Artificial (IA) tem se tornado cada vez...
A maioria das organizações enfrenta desafios ao se adaptar...
Quando nós, desenvolvedores, encontramos alguns bugs em nossos logs,...
A cibersegurança é um tópico cada vez mais importante...
A experiência do desenvolvedor (DX) é um tópico cada...
Ao relatar estatísticas resumidas para resultados de testes de...
Explorando as Engrenagens do Kernel Semântico Falei um pouco...
A arquitetura de software evoluiu drasticamente nas últimas décadas,...
Como você previne alucinações de grandes modelos de linguagem...
O conceito de "jardim digital" tem ganhado cada vez...
Torna al blog

Lascia un commento

Si prega di notare che, prima di essere pubblicati, i commenti devono essere approvati.