MAC-then-encrypt no protocolo SIGMA para troca de chave autenticada

Dec 21 2020

O protocolo SIGMA proposto em 2003 e usado em TLS 1.3 e IKE significa "SIGn-and-MAc" e pode opcionalmente proteger a identidade usando criptografia.

A variante SIGMA-I ilustrada abaixo indica que ela usa uma abordagem MAC-then-encrypt:

Aqui $\{\dots \}_{K} $ denota a criptografia das informações entre os colchetes sob uma função de criptografia simétrica usando a chave $K$.

Existe um motivo específico para usar MAC-then-encrypt em vez de encrypt-then-MAC para protocolos de troca de chaves? Não consegui encontrar uma resposta melhor do que parece arbitrária ao olhar para uma comparação entre MAC-then-encrypt e encrypt-then-MAC .

Edit: RFC 7366 vinculado a esta resposta relacionada dá algumas dicas de que criptografar então MAC deve ser a comunicação preferencial (D) TLS (nada é dito sobre handshaking). Em particular, ele afirma:

TLS e DTLS usam uma construção de criptografia MAC que era considerada segura na época em que o protocolo Secure Socket Layer (SSL) original foi especificado em meados da década de 1990, mas que não é mais considerado seguro.

Curiosamente, H Krawczyk (o autor do SIGMA) escreveu em 2001 A ordem de criptografia e autenticação para proteger as comunicações (ou: Quão seguro é o SSL?) - antes do SIGMA.

Respostas

4 HugoKrawczyk Jan 09 2021 at 06:20

Arnaud pediu-me para esclarecer esta questão.

É verdade que se deve usar um modo de criptografia autenticado ou criptografar-então-MAC, e o jornal diz isso explicitamente. Na verdade, o texto explicativo no artigo seguindo a figura mostrada acima (Seção 5.2 dohttps://webee.technion.ac.il/~hugo/sigma-pdf.pdf) aborda esse problema. Diz:

Ressaltamos que a função de criptografia (conforme aplicada na terceira mensagem) deve ser resistente a ataques ativos e, portanto, deve combinar alguma forma de proteção de integridade. As transformações de integridade de sigilo combinadas, como aquelas de [16], podem ser usadas, ou um modo convencional de criptografia (por exemplo, CBC) pode ser usado com uma função MAC calculada no topo do texto cifrado [3, 26].

Ou seja, a criptografia denotada $\{...\}_{K_e}$precisa usar um esquema de criptografia autenticado. (A necessidade de criptografia autenticada também é repetida no Apêndice B, que mostra um protocolo mais completo na forma de SIGMA-R).

O fato de haver um MAC (na identidade) sob a criptografia é apenas porque o MAC é (uma parte essencial) do protocolo SIGMA e não está totalmente relacionado à criptografia (em particular, necessário mesmo se você não se importar com a proteção de identidades ) Portanto, embora pareça "MAC-then encrypt", ele não tem relação com esse modo de criptografia.

Nota: O motivo pelo qual o texto diz que a criptografia autenticada é necessária apenas para a terceira mensagem é que, como dito no início do mesmo parágrafo, o SIGMA-I protege a identidade do iniciador de atacantes ativos e a identidade do respondente de passivos atacantes. Portanto, criptografar a identidade do respondente só precisa de segurança contra ataques passivos para os quais a criptografia não autenticada é suficiente. Esta é realmente uma observação acadêmica, pois na prática seria usado o mesmo esquema de criptografia para ambos os fluxos, ou seja, criptografia autenticada para ambos.

1 hakoja Dec 28 2020 at 20:19

Isso é uma espécie de especulação, mas eu diria que isso se deve à forma modular em que o Sigma foi projetado. Ou seja, quando Hugo Krawczyk projetou o Sigma, a principal propriedade de segurança que ele procurava era a segurança AKE, que consiste basicamente em duas coisas:

  1. Indistinguibilidade da chave de sessão: o adversário não deve ser capaz de distinguir chaves de sessão reais de chaves aleatórias; e

  2. Autenticação de entidade explícita (EA): a propriedade de que, uma vez que um participante do protocolo conclui a execução do protocolo, é garantido que ele estava de fato se comunicando com a parte esperada e que essa parte realmente calculou a mesma chave de sessão.

A propriedade do EA é basicamente uma etapa de confirmação chave que garante vitalidade e autenticação. Isso é obtido calculando um MAC sobre alguns dos dados do protocolo, usando uma chave$K_m$ derivado do mesmo segredo mestre usado para derivar a chave de sessão.

O ponto é que você pode obter segurança AKE (ou seja, propriedade 1 e 2) sem qualquer criptografia! De fato, quando Krawczyk prova que o Sigma satisfaz a segurança AKE (não me lembro qual papel era esse; tentarei encontrá-lo mais tarde), ele simplesmente presume que a etapa de criptografia não está lá de jeito nenhum! (Ele também faz isso em seu artigo OPTLS, que é o precursor do TLSv1.3).

Como eu disse, a meta de segurança padrão para a maioria dos protocolos de troca de chaves tem, desde os artigos originais de Bellare e Rogaway , basicamente tudo sobre segurança AKE. No entanto, quando Krawczyk projetou o Sigma, ele também quis adicionar outro recurso não padrão, a proteção de identidade . Mas dado que ele já havia mostrado que o protocolo Sigma sem criptografia alcançava a segurança AKE, era uma simples questão de adicionar criptografia em cima disso para também obter proteção de identidade. Assim: MAC-then-Encrypt.

Mas observe que esses dois usos de MAC e criptografia são bastante ortogonais e servem a propósitos diferentes: o MAC interno deve fornecer segurança do EA, enquanto a criptografia externa deve fornecer proteção de identidade.

Além disso, nota que Sigma tipicamente se use encriptar-depois-MAC. Em particular, na instanciação do Sigma em IKEv2 , a criptografia externa é acompanhada por um MAC adicional fora da criptografia no modo EtM padrão. No IKEv2, a chave MAC interna é chamada SK_p*, a chave de criptografia externa é chamada SK_e*e a chave MAC externa é chamada SK_a*( *é iou rdependendo se esta mensagem é criada pelo iniciador ou pelo respondente). Além disso, em instanciações mais recentes de IKEv2, a criptografia externa é substituída por algoritmos de criptografia autenticados dedicados. Neste caso, as SK_a*chaves não são usadas (e toda a questão EtM torna-se discutível). Na instanciação TLSv1.3 do Sigma, apenas a criptografia autenticada é usada. Mas, novamente, observe que dentro da criptografia (seja AE ou EtM), há um MAC interno cujo objetivo é fornecer segurança EA.