Sigilo de encaminhamento - Forward secrecy

Na criptografia , o sigilo de encaminhamento ( FS ), também conhecido como sigilo de encaminhamento perfeito ( PFS ), é um recurso de protocolos de acordo de chave específicos que oferece garantias de que as chaves de sessão não serão comprometidas, mesmo se os segredos de longo prazo usados ​​na troca de chaves de sessão forem comprometido. Para HTTPS , o segredo de longo prazo é normalmente a chave privada do servidor. O sigilo de encaminhamento protege sessões anteriores contra futuros comprometimentos de chaves ou senhas. Ao gerar uma chave de sessão exclusiva para cada sessão iniciada por um usuário, o comprometimento de uma única chave de sessão não afetará nenhum dado além dos trocados na sessão específica protegida por essa chave específica. Isso por si só não é suficiente para encaminhar o sigilo, o que também requer que um comprometimento do segredo de longo prazo não afete a segurança das chaves de sessões anteriores.

O sigilo de encaminhamento protege os dados na camada de transporte de uma rede que usa protocolos SSL / TLS comuns , incluindo OpenSSL, quando suas chaves secretas de longo prazo são comprometidas, como no bug de segurança Heartbleed. Se o sigilo for usado, as comunicações criptografadas e as sessões gravadas no passado não podem ser recuperadas e descriptografadas caso as chaves secretas ou senhas de longo prazo sejam comprometidas no futuro, mesmo que o adversário tenha interferido ativamente, por exemplo, por meio de um man-in-the- ataque do meio.

O valor do sigilo direto é que ele protege a comunicação anterior. Isso reduz a motivação dos invasores para comprometer as chaves. Por exemplo, se um invasor aprender uma chave de longo prazo, mas o comprometimento for detectado e a chave de longo prazo for revogada e atualizada, relativamente pouca informação vazará em um sistema seguro de encaminhamento.

O valor do sigilo futuro depende das capacidades assumidas de um adversário. O sigilo direto tem valor se um adversário for considerado capaz de obter chaves secretas de um dispositivo (acesso de leitura), mas for detectado ou incapaz de modificar a maneira como as chaves de sessão são geradas no dispositivo (comprometimento total). Em alguns casos, um adversário que pode ler chaves de longo prazo de um dispositivo também pode ser capaz de modificar o funcionamento do gerador de chave de sessão, como no gerador de bits aleatórios determinísticos de curva elíptica dupla de backdoor . Se um adversário puder tornar o gerador de número aleatório previsível, o tráfego anterior será protegido, mas todo o tráfego futuro ficará comprometido.

O valor do sigilo direto é limitado não apenas pela suposição de que um adversário atacará um servidor apenas roubando chaves e não modificando o gerador de número aleatório usado pelo servidor, mas também é limitado pela suposição de que o adversário só coletará tráfego passivamente no link de comunicação e não estar ativo usando um ataque Man-in-the-Middle (MITM). O sigilo de encaminhamento normalmente usa uma troca de chave Diffie-Hellman efêmera para evitar a leitura do tráfego anterior. A troca de chave Diffie-Hellman efêmera geralmente é assinada pelo servidor usando uma chave de assinatura estática. Se um adversário puder roubar (ou obter por meio de uma ordem judicial) essa chave de assinatura estática (de longo prazo), o adversário pode se disfarçar de servidor para o cliente e de cliente para o servidor e implementar um man-in-the-middle clássico ataque.

História

O termo "sigilo direto perfeito" foi cunhado por CG Günther em 1990 e posteriormente discutido por Whitfield Diffie , Paul van Oorschot e Michael James Wiener em 1992, onde foi usado para descrever uma propriedade do protocolo Station-to-Station.

O sigilo direto também foi usado para descrever a propriedade análoga de protocolos de contrato de chave autenticados por senha, em que o segredo de longo prazo é uma senha (compartilhada) .

Em 2000, o IEEE ratificou pela primeira vez o IEEE 1363 , que estabelece as propriedades de sigilo direto de uma e duas partes relacionadas de vários esquemas de contrato de chave padrão.

Definição

Um sistema de criptografia tem a propriedade de sigilo de encaminhamento se a inspeção de texto simples (descriptografado) da troca de dados que ocorre durante a fase de acordo de chave de início da sessão não revelar a chave que foi usada para criptografar o restante da sessão.

Exemplo

A seguir está um exemplo hipotético de um protocolo simples de mensagens instantâneas que emprega sigilo direto:

  1. Alice e Bob geram, cada um, um par de chaves públicas e privadas assimétricas de longo prazo e , em seguida, verificam as impressões digitais da chave pública pessoalmente ou por meio de um canal já autenticado. A verificação estabelece com confiança que o proprietário reivindicado de uma chave pública é o proprietário real.
  2. Alice e Bob usam um algoritmo de troca de chave, como Diffie – Hellman , para concordar com segurança em uma chave de sessão efêmera . Eles usam as chaves da etapa 1 apenas para autenticar um ao outro durante esse processo.
  3. Alice envia uma mensagem a Bob, criptografando-a com uma cifra simétrica usando a chave de sessão negociada na etapa 2.
  4. Bob descriptografa a mensagem de Alice usando a chave negociada na etapa 2.
  5. O processo se repete para cada nova mensagem enviada, começando na etapa 2 (e trocando as funções de Alice e Bob como remetente / receptor conforme apropriado). A etapa 1 nunca é repetida.

O sigilo de encaminhamento (obtido pela geração de novas chaves de sessão para cada mensagem) garante que as comunicações anteriores não possam ser descriptografadas se uma das chaves geradas em uma iteração da etapa 2 for comprometida, uma vez que tal chave é usada apenas para criptografar uma única mensagem. O sigilo de encaminhamento também garante que as comunicações anteriores não possam ser descriptografadas se as chaves privadas de longo prazo da etapa 1 forem comprometidas. No entanto, se disfarçar como Alice ou Bob seria possível no futuro se isso ocorresse, possivelmente comprometendo todas as mensagens futuras.

Ataques

O sigilo de encaminhamento é projetado para evitar que o comprometimento de uma chave secreta de longo prazo afete a confidencialidade de conversas anteriores. No entanto, o sigilo de encaminhamento não pode defender contra uma criptoanálise bem-sucedida das cifras subjacentes que estão sendo usadas, uma vez que uma criptoanálise consiste em encontrar uma maneira de descriptografar uma mensagem criptografada sem a chave, e o sigilo de encaminhamento protege apenas as chaves, não as próprias cifras. Um invasor paciente pode capturar uma conversa cuja confidencialidade é protegida pelo uso de criptografia de chave pública e esperar até que a cifra subjacente seja quebrada (por exemplo, grandes computadores quânticos podem ser criados, o que permite que o problema de logaritmo discreto seja calculado rapidamente). Isso permitiria a recuperação de textos simples antigos, mesmo em um sistema que empregasse sigilo direto.

Fraco sigilo direto perfeito

Wpfs (Wpfs) é a propriedade mais fraca em que, quando as chaves de longo prazo dos agentes são comprometidas, o sigilo das chaves de sessão estabelecidas anteriormente é garantido, mas apenas para sessões nas quais o adversário não interferiu ativamente. Esta nova noção, ea distinção entre este e frente sigilo foi introduzido por Hugo Krawczyk em 2005. Esta definição mais fraca exige implicitamente que completa (perfeito) frente sigilo mantém o sigilo das chaves de sessão previamente estabelecidas, mesmo em sessões onde o adversário fez interferir ativamente, ou tentou agir como um homem intermediário.

Protocolos

O sigilo de encaminhamento está presente em várias implementações de protocolo importantes, como SSH e como um recurso opcional no IPsec (RFC 2412). Off-the-Record Messaging , um protocolo de criptografia e biblioteca para muitos clientes de mensagens instantâneas, fornece sigilo de encaminhamento, bem como criptografia negável .

Em Transport Layer Security (TLS), estão disponíveis conjuntos de criptografia baseados em troca de chave Diffie-Hellman (DHE- RSA , DHE- DSA ) e troca de chave Diffie-Hellman de curva elíptica (ECDHE- RSA , ECDHE- ECDSA ). Em teoria, o TLS pode escolher cifras apropriadas desde SSLv3, mas na prática cotidiana muitas implementações se recusaram a oferecer sigilo de encaminhamento ou apenas fornecê-lo com um grau de criptografia muito baixo. O TLS 1.3 deixa o efêmero Diffie – Hellman (variantes de campo finito e curva elíptica) como o único mecanismo de troca de chave restante, a fim de garantir o sigilo futuro.

O OpenSSL oferece suporte ao sigilo direto usando a curva elíptica Diffie – Hellman desde a versão 1.0, com uma sobrecarga computacional de aproximadamente 15% para o handshake inicial.

O Protocolo de Sinal usa o algoritmo Double Ratchet para fornecer sigilo direto, esquema de criptografia Puncturable , introduzido por Green e Miers em 2015, faz uso de criptografia baseada em identidade hierárquica e criptografia baseada em atributos para fornecer sigilo de encaminhamento sem exigir pré-chaves ao contrário do Signal Protocolo que é vulnerável a ataques de exaustão de pré-chave .

Por outro lado, entre os protocolos populares atualmente em uso, o WPA não oferece suporte a sigilo de encaminhamento.

Usar

O sigilo de encaminhamento é visto como um importante recurso de segurança por vários grandes provedores de informações da Internet. Desde o final de 2011, o Google forneceu sigilo direto com TLS por padrão aos usuários de seu serviço Gmail , serviço Google Docs e serviços de busca criptografada. Desde novembro de 2013, o Twitter forneceu sigilo direto com TLS para seus usuários. Todos os wikis hospedados pela Wikimedia Foundation fornecem sigilo direto aos usuários desde julho de 2014 e exigem o uso de sigilo direto desde agosto de 2018.

O Facebook relatou como parte de uma investigação sobre criptografia de e-mail que, em maio de 2014, 74% dos hosts que suportam STARTTLS também fornecem sigilo de encaminhamento. O TLS 1.3, publicado em agosto de 2018, abandonou o suporte para cifras sem sigilo de encaminhamento. Em fevereiro de 2019, 96,6% dos servidores da web pesquisados ​​oferecem suporte a alguma forma de sigilo de encaminhamento e 52,1% usarão o sigilo de encaminhamento com a maioria dos navegadores.

Na WWDC 2016, a Apple anunciou que todos os aplicativos iOS precisariam usar o App Transport Security (ATS), um recurso que impõe o uso de transmissão HTTPS. Especificamente, o ATS requer o uso de uma cifra de criptografia que fornece sigilo de encaminhamento. O ATS se tornou obrigatório para aplicativos em 1º de janeiro de 2017.

O aplicativo de mensagens Signal emprega sigilo direto em seu protocolo, diferenciando-o notavelmente dos protocolos de mensagens baseados em PGP .

Veja também

Referências

links externos