Rede de confiança

Em criptografia, uma rede de confiança é um conceito utilizado em PGP, GnuPG, e outros sistemas compatíveis com OpenPGP para estabelecer a autenticidade da ligação entre uma chave pública e o seu proprietário. O seu modelo de confiança descentralizado é uma alternativa ao modelo de confiança centralizado de uma infraestrutura de chave pública (PKI), que depende exclusivamente de uma autoridade de certificação (ou uma hierarquia de tais autoridades). Como ocorre com redes de computadores, existem muitas redes de confiança independentes, e qualquer usuário (através do seu certificado de identidade) pode ser uma parte, e uma ligação, entre várias redes.

Diagrama esquemático de uma rede de confiança

O conceito de rede de confiança foi apresentado pela primeira vez pelo criador do PGP, Phil Zimmermann, em 1992, no manual da versão 2.0 do PGP:

Conforme o tempo passa, vão se acumulando chaves de outras pessoas que pode querer designar como introdutores confiáveis. Cada um dos demais escolherá os seus próprios introdutores confiáveis. E todos gradualmente acumularão e distribuirão com suas chaves uma coleção de assinaturas de certificados de outras pessoas, com a espectativa de que qualquer um recebendo-as confiarão em pelo menos uma ou duas das assinaturas. Isso causará o surgimento de uma rede de confiança descentralizada tolerante a falhas para todas as chaves públicas.

A operação de uma rede de confiança editar

Todas as implementações compatíveis com OpenPGP incluem um esquema de habilitação de certificados para ajudar com isso; o seu funcionamento tem sido chamado de uma rede de confiança. Os certificados de identidade OpenPGP (que incluem uma ou mais chaves públicas, juntamente com as informações do proprietário) podem ser assinados digitalmente por outros usuários que, por esse ato, endossam a associação de tal chave pública com a pessoa ou entidade listada no certificado. Isto é comumente feito nas festas de assinatura de chaves.

As implementações compatíveis com o OpenPGP também incluem um esquema de contagem de votos que pode ser usado para determinar em qual associação entre proprietário e chave pública um usuário confiará enquanto estiver usando o PGP. Por exemplo, se três endossantes parcialmente confiáveis atestaram um certificado (e, portanto, a ligação entre chave pública e proprietário incluída), ou se um endossante totalmente confiável o fez, a associação entre proprietário e chave pública nesse certificado será considerada correta. Os parâmetros são ajustáveis pelo usuário (por exemplo, sem qualquer parcial, ou ainda com seis parciais) e podem ser completamente ignorados, se desejado.

O esquema é flexível, diferentemente da maioria dos projetos de infraestrutura de chave pública, e deixa as decisões de confiança nas mãos de usuários individuais. Ele não é perfeito, e requer cautela e supervisão inteligente dos usuários. Essencialmente, todos os designs de PKI são menos flexíveis e exigem que os usuários sigam o endosso de confiança dos certificados gerados pela PKI, assinados pela autoridade de certificação (CA).

Explicação simplificada editar

Uma pessoa tem duas chaves: uma pública, que é compartilhada abertamente, e uma privada, que é retida pelo proprietário. A chave privada do proprietário descriptografará qualquer informação criptografada com sua chave pública. Na rede de confiança, cada usuário tem um anel com um grupo de chaves públicas das pessoas.

Os usuários criptografam suas informações com a chave pública do destinatário, e somente a chave privada do destinatário pode decodificá-la. Então, cada usuário assina digitalmente as informações com sua chave privada, de modo que, quando o destinatário verificá-las em relação à chave pública do usuário, poderá confirmar que é do usuário em questão. Isso garantirá que as informações vieram do usuário específico e não foram adulteradas, e apenas o destinatário pretendido poderá ler as informações (porque apenas eles conhecem suas chaves privadas).

Comparação com uma PKI típica editar

Ao contrário de uma rede de confiança, uma PKI X. 509 típica permite que cada certificado seja assinado por uma única parte: uma autoridade de certificação (CA). O certificado da autoridade de certificação pode ele próprio ser assinado por uma autoridade de certificação diferente, e assim por diante até um certificado de raiz 'auto-assinado'. Certificados de raiz devem estar disponíveis para aqueles que usam um certificado de uma autoridade de certificação de nível inferior e, portanto, normalmente são amplamente distribuídos. Eles são distribuídos, por exemplo, com aplicativos como navegadores e clientes de e-mail. Desta forma, páginas da web, mensagens de e-mail, etc, protegidas por SSL/TLS podem ser autenticadas, sem exigir que os usuários de instalem manualmente certificados de raiz. Aplicações, normalmente incluem mais de uma centena de certificados de raiz a partir de dezenas de PKIs, portanto demonstrando, por padrão, confiança em toda a hierarquia de certificados que leva de volta para eles.

Redes de confiança privilegiam a descentralização de âncoras de confiança para evitar que um ponto único de falha compromenta a hierarquia de autoridades de certificação.[1] Um projecto notável que utiliza a rede de confiança contra PKI para fornecer um framework para autenticação em outras áreas da Internet são utilitários Monkeysphere.[2]

Problemas editar

A rede de confiança de OpenPGP essencialmente não é afetada por coisas tais como falhas de empresa, e tem continuado a funcionar sem grandes mudanças. No entanto, ocorre um problema relacionado: os utilizadores que perdem o controle de uma chave privada, sejam eles indivíduos ou organizações, não podem mais descriptografar as mensagens enviadas para eles produzidas usando a chave pública correspondente encontrada em um certificado OpenPGP. Os primeiros certificados PGP não incluiam datas de expiração, e tais certificados tinham duração infinita. Os usuários tinham que preparar um certificado de cancelamento assinado contra o tempo quando a chave privada correspondente foi perdida ou comprometida. Um criptógrafo muito proeminente ainda recebe mensagens criptografadas com uma chave pública para a qual ele perdeu o controle da chave privada há muito tempo.[3] Eles não podem fazer muito com tais mensagens, além de descartá-las depois de notificar o remetente de que elas eram ilegíveis e solicitar o reenvio com uma chave pública para a qual eles ainda tenham a chave privada correspondente. Os certificados PGP e os compatíveis com OpenPGP mais recentes incluem datas de expiração que impedem automaticamente tais problemas (eventualmente), quando utilizadas de forma sensata. Este problema também pode ser facilmente evitado através da utilização de "revogadores designados", que foram introduzidos no início da década de 1990. O proprietário de uma chave pode designar um terceiro que terá a permissão de revogar a chave do proprietário (no caso de o proprietário da chave perder a sua própria chave privada e, assim, perder a possibilidade de revogar a sua própria chave pública).

Uma dificuldade não-técnica, mas social, com uma rede de confiança como a que é embutida em sistemas do tipo PGP/OpenPGP é que toda rede de confiança sem um controlador central (por exemplo, uma Autoridade de Certificação) depende de outros usuários para a confiança. Aqueles com certificados novos (por exemplo, produzidos no processo de geração de um novo par de chaves) provavelmente não serão prontamente considerados confiáveis pelos sistemas de outros usuários, isto é, por aqueles com quem ainda não se encontraram pessoalmente, até encontrarem endossos suficientes para o novo certificado. Isto é porque muitos outros usuários da rede de confiança terão o sistema de veto de seus certificados definido para exigir um ou mais endossos totalmente confiáveis de um certificado desconhecido (ou talvez vários endossos parciais) antes de utilizar a chave pública de tal certificado para preparar as mensagens, acreditar nas assinaturas, etc.

Apesar do amplo uso de sistemas compatíveis com OpenPGP e da fácil disponibilidade de vários servidores de chave on-line, é possível, na prática, ser incapaz de encontrar alguém (ou várias pessoas) prontamente para endossar um novo certificado (por exemplo, comparando a identificação física às informações do proprietário da chave e então assinando digitalmente o novo certificado). Usuários em áreas remotas ou não desenvolvidas, por exemplo, podem ter uma escassez de outros usuários. E, se o certificado de outra pessoa também for novo (e sem recomendações de outras pessoas, ou com poucas), sua assinatura em qualquer novo certificado poderá oferecer apenas um benefício marginal para se tornar confiável pelos sistemas de outras partes e, portanto, capaz de trocar mensagens com segurança com eles. As festas de assinaturas de chaves são um mecanismo relativamente popular para resolver esse problema de encontrar outros usuários que possam instalar o certificado de alguém nas redes de confiança existentes, endossando-o. Também existem sites para facilitar a localização de outros usuários do OpenPGP para organizar assinaturas de chaves. O Gossamer Spider Web of Trust também facilita a verificação de chaves, vinculando usuários OpenPGP por meio de uma rede de confiança de estilo hierárquico, em que os usuários finais podem se beneficiar da confiança coincidente ou determinada de alguém que é endossado como apresentador ou confiando explicitamente na chave de nível superior do GSWoT minimamente como introdutor de nível 2 (a chave de nível superior endossa os apresentador de nível 1).

A possibilidade de encontrar cadeias de certificados é muitas vezes justificada pelo " fenômeno do mundo pequeno ": dados dois indivíduos, muitas vezes é possível encontrar uma cadeia curta de pessoas entre eles, de modo que cada pessoa na cadeia conheça os links anteriores e seguintes. No entanto, essa cadeia não é necessariamente útil: a pessoa que criptografa um e-mail ou verifica uma assinatura não apenas precisa encontrar uma cadeia de assinaturas de sua chave privada até a de seus correspondentes, mas também confiar em que cada pessoa da cadeia seja honesta e competente sobre a assinatura de chaves (ou seja, eles precisam julgar se é provável que essas pessoas seguirão honestamente as diretrizes sobre a verificação da identidade das pessoas antes de assinar as chaves). Essa é uma restrição muito mais forte.

Outro obstáculo é a necessidade de encontrar-se fisicamente com alguém (por exemplo, em uma festa de assinatura de chaves) para verificar sua identidade e propriedade de uma chave pública e endereço de email, o que pode envolver despesas de viagem e restrições de agendamento que afetam ambas as partes. Um usuário de software pode precisar verificar centenas de componentes de software produzidos por milhares de desenvolvedores localizados em todo o mundo. Como a população geral de usuários de software não pode se reunir pessoalmente com todos os desenvolvedores de software para estabelecer confiança direta, eles devem confiar na propagação indireta da confiança, que é comparativamente mais lenta.Predefinição:Carece de fontesdata=janeiro de 2020

A obtenção da chave PGP/GPG de um autor (ou desenvolvedor, editor, etc.) de um servidor de chave pública também apresenta riscos, pois o servidor de chave é uma terceira parte intermediária, vulnerável ele próprio a abusos ou ataques. Para evitar esse risco, um autor pode optar por publicar sua chave pública em seu próprio servidor de chaves (ou seja, um servidor da Web acessível por um nome de domínio de sua propriedade e localizado com segurança em seu escritório ou residência particular) e exigir o uso de conexões criptografadas com HKPS para a transmissão de sua chave pública. Para detalhes, consulte Soluções de apoio à rede de confiança abaixo.

Conjunto forte editar

O conjunto forte refere-se à maior coleção de chaves PGP fortemente conectadas .[4] Isso forma a base da rede de confiança global. Quaisquer duas chaves no conjunto forte têm um caminho entre elas; embora possam existir, e existam, ilhas de conjuntos de chaves que somente se assinam umas às outras em um grupo desconectado, só é preciso que um membro desse grupo troque assinaturas com o conjunto forte para que esse grupo também se torne parte do conjunto forte.[5] O conjunto forte tinha um tamanho de cerca de 55000 chaves no início do ano de 2015.[6]

Distância mais curta média editar

 
Explicação de confiança baseada em MSD

Na análise estatística da rede de confiança PGP/GnuPG/OpenPGP a distância mais curta média (MSD) é uma medida do quão "confiável" uma dada chave PGP é dentro do conjunto fortemente conectado de chaves PGP que compõem a rede de confiança.

A MSD tornou-se uma métrica comum para a análise de conjuntos de chaves PGP. Muitas vezes se vê o cálculo da MSD para um determinado subconjunto de chaves e sua comparação com a MSD global que, geralmente, refere-se às teclas de classificação dentro de uma das maiores chave de análises da Web global de confiança.

Soluções de apoio à rede de confiança editar

Encontrar-se fisicamente com o desenvolvedor original ou autor, é sempre a melhor maneira de obter e distribuir e verificar e confiar em chaves PGP/GPG com o mais alto nível de confiança, e continuará sendo o melhor nível da melhor maneira confiável. Publicar a chave GPG/PGP completa ou a impressão digital completa da chave em/com um livro (físico/baseado em material de papel) amplamente conhecido, do autor/desenvolvedor original, é a 2º melhor forma de partilha de chaves confiáveis com e para os usuários. Antes de se reunir com um desenvolvedor ou autor, os usuários devem investigar por conta própria sobre o desenvolvedor ou autor em uma biblioteca e na internet, e, ficar cientes da foto, trabalho, impressão digital da chave pública, endereço de e-mail, etc, do desenvolvedor ou autor.

No entanto, não é prático para milhões de usuários que desejam se comunicar ou trocar mensagens de forma segura se encontrarem fisicamente com cada um dos destinatários e usuários, e também não é prático para milhões de usuários de software que precisam se encontrar com centenas de desenvolvedores de software ou autores, cujo software ou chave pública PGP/GPG de assinatura de arquivos eles desejam verificar, confiar e, finalmente, usar em seus computadores. Portanto, uma ou mais entidades ou grupos do tipo autoridade terceira confiável (TTPA) precisam estar disponíveis para os usuários e ser utilizáveis por eles, e a entidade/grupo precisa ser capaz de fornecer serviços de verificação de confiança ou dedelegação de confiança para milhões de usuários ao redor do mundo, a qualquer hora.

Na prática, para verificar a autenticidade de quaisquer conteúdos ou dados ou e-mails ou arquivos transferidos ou recebidos, um usuário precisa verificar o código/arquivo (ASC, SIG) de assinatura PGP/GPG do conteúdo/dados/e-mail ou arquivo principal baixado. Assim, os usuários precisam usar a chave pública confiável e verificada do desenvolvedor original ou do autor original, ou os usuários precisam usar uma chave pública para assinatura de arquivos confiável, na qual o proprietário original da chave pública confia. E para realmente confiar em uma determinada chave PGP/GPG, os usuários precisam se encontrar com um autor ou desenvolvedor original muito específico, ou os usuários precisam se encontrar fisicamente com o distribuidor original da chave-pública de assinatura de arquivos, ou os usuários precisam encontrar um outro usuário confiável alternativo, que esteja na cadeia de confiança de WOT (isto é, outro usuário ou outro desenvolvedor ou outro autor, em quem aquele autor ou desenvolvedor original específico confie) e então se encontrar fisicamente com essa pessoa, para verificar a sua real identidade com a sua chave PGP/GPG (e também fornecer a sua própria identidade e chave para o outro usuário, de modo que ambas as partes possam assinar/certificar e confiar na chave PGP/GPG do outro). Independentemente de um software ser popular ou não, seus usuários geralmente estão localizados em diferentes locais ao redor do mundo. É fisicamente impossível para um autor ou desenvolvedor original ou distribuidor de arquivo fornecer a chave pública ou confiança ou serviços de verificação de identidade para milhões de usuários. Nem é prático que milhões de usuários de software se encontrem fisicamente com todo e cada software desenvolvedor/autor/distribuidor de cada software ou biblioteca software ou pedaço de código que (utilizarão ou) precisarão utilizar em seus computadores. Mesmo com várias pessoas confiáveis (pelo original autor) na cadeia de confiança da WOT, ainda não é possível fisicamente ou na prática que cada desenvolvedor ou o autor se encontre com todos os outros usuários, e também não é possível que todos os utilizadores se encontrem com centenas de desenvolvedores de software que vão utilizar com os quais trabalharão. Somente quando este modelo de cadeia de WOT baseado em hierarquia descentralizada se popularizar e for utilizado pela maioria dos usuários próximos, é que o encontro físico e o procedimento de certificação e assinatura de chaves públicas se tornará mais fácil.

Algumas soluções são: o autor/desenvolvedor original precisa primeiro definir um nível de confiança para assinar/certificar suas próprias chaves de assinatura de arquivos. Então, as chaves públicas atualizadas e chaves públicas de assinatura de arquivos também devem ser publicadas e distribuídas (ou ser acessíveis) para os usuários, por meios on-line seguros e criptografados, para que qualquer usuário de qualquer lugar no mundo, possa obter a chave pública correta, confiável e não modificada. Para se certificar de que todos os usuários estão recebendo chaves públicas e código/arquivo assinado corretos e confiáveis, o desenvolvedor/autor ou distribuidor original deve publicar suas chaves públicas atualizadas no seu próprio servidor de chave e forçar o uso de conexão criptografada com HKPS, ou publicar suas chaves públicas atualizadas e completas (e código/arquivo assinado) em sua própria página criptografada com HTTPS, sob seu próprio servidor web, a partir do domínio principal do seu próprio site, (não a partir de qualquer sub-domínio, que esteja localizado em servidores externos, nem a partir de qualquer espelho, nem a partir de qualquer servidor de website de fórum/wiki etc externo/compartilhado servidores de website, nem a partir de qualquer servidor de nuvem ou de serviços de hospedagem externo/compartilhado ou público), e deve estar localizado e mantido de forma segura dentro de suas próprias instalações: na própria casa, ou próprio home-office, ou o próprio escritório. Dessa forma, aqueles pequenos pedaços de chaves/códigos originais, viajarão intactos através da internet e permanecerão inalterados durante o transporte (por causa da conexão criptografada) e chegarão ao destino sem terem sido bisbilhotados ou modificados, para o lado do usuário, e podem ser tratados como chaves públicas confiáveis devido à verificação baseada em TTPA de canal único ou múltiplo. Quando uma chave pública é obtida (a partir do servidor web do próprio desenvolvedor original) através de mais de uma TTPA (autoridade de terceira parte confiável), protegido, verificado e por uma conexão criptografada, então, ela é mais confiável.

Quando as chaves públicas ou códigos assinados originais são apresentados no servidor web ou servidor de chaves do próprio desenvolvedor ou autor, através de uma conexão criptografada ou página web criptografada, então quaisquer outros arquivos, dados ou conteúdo podem ser transferidos através de qualquer tipo de conexão não criptografada, tais como: HTTP/FTP etc a partir de qualquer sub-domínio do servidor ou de qualquer espelho (mirror) ou a partir de quaisquer servidores de hospedagem/nuvem compartilhados, porque itens/dados/arquivos baixados através de conexões não-criptografadas podem ser autenticados posteriormente, utilizando-se das chaves públicas ou códigos assinados originais, que foram obtidos do servidor do próprio autor/desenvolvedor através de conexões/canais seguros, criptografados, e confiáveis (isto é, verificados).

O uso de uma conexão criptografada para a transferência de chaves ou código/arquivos de assinatura/assinados, permite que os usuários de software deleguem a sua confiança com uma PKI TTPA (autoridade terceira confiável), como as autoridades de certificação, para ajudar a fornecer conexão confiável entre o servidor web do desenvolvedor/autor original, e os computadores de milhões de usuários pelo mundo, a qualquer momento.

Quando o nome de domínio e nome de servidor do autor/desenvolvedor original é assinado pelo DNSSEC, e quando o certificado público SSL/TLS usado é declarado/mostrado no registro de recurso TLSA/DANE DNSSec DNS (e quando os certificados SSL/TLS na rede de confiança são fixados e utilizados através da técnica de HPKP pelos servidores web), uma página ou dado de um servidor web também pode ser verificado através de outro PKI TTPA: o DNSSEC e mantenedor de espaço de nomes de DNS da ICANN, além de uma autoridade de certificação pública. O DNSSEC é uma outra forma de rede de confiança PGP/GPG, mas para servidores de nome; ele cria primeiramente uma rede de confiança para os servidores de nome (em vez de pessoas/pessoa) e, então, as chaves e impressões digitais PGP/GPG dos indivíduos também podem ser adicionados aos registros de DNS de um servidor DNSSEC. Assim quaisquer usuários que queiram se comunicar de forma segura (ou qualquer usuário de software), pode efetivamente obter/receber seus dados/chave/código/página da web etc verificado (isto é, autenticado), através de dois (isto é, duplo/dual) PKI TTPAs/canais confiáveis ao mesmo tempo: ICANN (DNSSEC) e CA (certificado SSL/TLS). Assim, pode-se confiar na chave PGP/GPG, no dado de código (ou arquivo) assinado, quando tais soluções e técnicas são usadas: HKPS, HKPS+DNSSEC+DANE, HTTPS, HTTPS+HPKP ou HTTPS+HPKP+DNSSEC+DANE.

Se um grande número de grupos de usuário criar seus novos registros DNSSEC baseados em DLV, e se os usuários utilizarem essa nova DLV (juntamente com a ICANN-DNSSEC) chave-raiz no seu próprio resolvedor/servidor de DNS local baseado em DNSSEC e os proprietários de domínio também usá-la para assinatura adicional de seus próprios nomes de domínio, então pode haver um novo terceiro TTPA. Em tal caso, quaisquer chaves PGP/GPG/dados de código assinado ou páginas web ou dados web podem ser verificadas por três canais. O próprio DLV do ISC pode ser usado como um terceiro TTPA por ainda ser ativo e amplamente utilizado, de forma que a disponibilidade de outro novo DLV vai se tornar uma quarta TTPA.

Ver também editar

  • Comunidade virtual
  • O CAcert assina as chaves do OpenPGP, se você é verificado através de uma rede de confiança, eles também emitem certificados X.509 gratuitos.
  • Thawte parou de assinar chaves OpenPGP há muitos anos e agora emite apenas certificados X.509.
  • Rede de computadores amigo a amigo (F2F).

Referências editar

  1. Nightingale. «Fraudulent *.google.com Certificate»  |nome3= sem |sobrenome3= em Authors list (ajuda)
  2. «The Monkeysphere Project» 
  3. Ferguson, Niels & Schneier, Bruce (2003). Practical Cryptography. Wiley. [S.l.: s.n.] 333 páginas. ISBN 978-0471223573. Bruce lost a PGP key almost a decade ago; he still gets email encrypted with the corresponding certificate. 
  4. Penning. «on the apache.org web of trust»  |nome3= sem |sobrenome3= em Authors list (ajuda)
  5. Streib. «Explanation of this Keyring Analysis»  |nome3= sem |sobrenome3= em Authors list (ajuda)
  6. Penning. «analysis of the strong set in the PGP web of trust»  |nome3= sem |sobrenome3= em Authors list (ajuda)

Leitura complementar editar

Ligações externas editar