
Artifacts for the USENIX publication.
Artefatos da publicação USENIX | Artigo completo aqui

OpenPGP e S/MIME são os dois principais padrões para criptografar e assinar digitalmente e-mails. As assinaturas digitais devem garantir a autenticidade e a integridade das mensagens. Neste trabalho, mostramos ataques práticos de falsificação contra diversas implementações de verificação de assinaturas de e-mail OpenPGP e S/MIME em cinco classes de ataque: (1) Analisamos casos extremos no formato de contêiner do S/MIME. (2) Exploramos a sinalização in-band na API do GnuPG, a implementação de OpenPGP mais utilizada. (3) Aplicamos ataques de encapsulamento MIME que abusam do tratamento de mensagens parcialmente assinadas pelos clientes de e-mail. (4) Analisamos fragilidades na vinculação de mensagens assinadas à identidade do remetente. (5) Testamos sistematicamente clientes de e-mail quanto a ataques de redressing de UI.
Nossos ataques permitem a falsificação de assinaturas digitais para mensagens arbitrárias em 14 dos 20 clientes de e-mail compatíveis com OpenPGP testados e 15 dos 22 clientes de e-mail com suporte a assinaturas S/MIME. Embora os ataques não tenham como alvo as primitivas criptográficas subjacentes das assinaturas digitais, eles levantam preocupações sobre a segurança real dos aplicativos de e-mail OpenPGP e S/MIME. Por fim, propomos estratégias de mitigação para combater esses ataques.
Ataques CMS. A Cryptographic Message Syntax (CMS) é um padrão versátil para mensagens assinadas e criptografadas dentro da infraestrutura de chave pública X.509. Encontramos falhas no tratamento de e-mails com estruturas de dados contraditórias ou incomuns.
Ataques à API GPG. O GnuPG é a implementação de OpenPGP mais utilizada, mas oferece apenas uma interface de linha de comando muito restrita para validar assinaturas. Essa interface era vulnerável a ataques de injeção.
Ataques MIME. O corpo de um e-mail é conceitualmente uma árvore MIME, mas normalmente a árvore tem apenas uma folha assinada. Construímos árvores MIME não padronizadas que induzem os clientes a exibir um texto não assinado enquanto verificam uma assinatura não relacionada em outra parte.
Ataques de ID. O objetivo desta classe de ataque é exibir uma assinatura válida da identidade (ID) de um parceiro de comunicação confiável localizado no cabeçalho do e-mail, embora o e-mail forjado seja, na verdade, assinado pelo atacante.
Ataques de UI. Os clientes de e-mail indicam uma assinatura válida exibindo alguns indicadores de segurança na interface do usuário (UI), por exemplo, uma carta com um selo. No entanto, vários clientes permitem a imitação de elementos importantes da UI por meio de HTML, CSS e outros conteúdos incorporados.

