Ok Google, publique suas chaves DKIM privadas





A Internet foi um lugar perigoso mesmo em seus melhores anos. Às vezes, os arquitetos da Internet encontraram maneiras de atenuar as ameaças, às vezes eles falharam. No entanto, a situação se repete constantemente quando uma grande empresa de Internet encontra uma solução que realmente piora a situação para quase todos. Hoje quero falar sobre um desses casos e também como uma grande empresa como o Google poderia encontrar uma maneira de consertá-lo.



Esta postagem cobre Domain Keys Identified Mail (DKIM), um pequeno protocolo anti-spam inofensivo que de alguma forma se transformou em um monstro. Meu pedido é simples, pode ser resumido da seguinte forma:



Caro Google: Por favor, implemente a rotação e publicação periódica de suas chaves privadas DKIM. Isso tornará toda a Internet muito mais segura, pois os criminosos perderão um forte incentivo para roubar e vazar e-mails. A correção não custará quase nada e tirará uma ferramenta poderosa das mãos dos ladrões.



Esta é a versão resumida. Informações mais detalhadas são apresentadas a seguir.



O que é este DKIM e como ele protege meu e-mail?



O e-mail foi criado na época em que a Internet ainda se chamava ARPANET . Eram dias muito mais calmos, quando as medidas modernas de segurança e, para ser honesto, a própria noção de que a Internet precisaria de segurança continuava sendo um futuro distante da ficção científica.



Os primeiros protocolos de e-mail (como o SMTP) funcionavam com base em um sistema de confiança. Os emails podem ter chegado ao seu servidor de email diretamente do servidor de email do remetente ou transmitidos por intermediários. Seja como for, se a carta afirma que veio de sua amiga Alice, então você acredita que realmente é de Alice. Por que alguém iria mentir sobre isso?



A ampla adoção do e-mail mostrou que essa atitude falhou gravemente. Em apenas alguns anos, os internautas aprenderam que existem muitas pessoas dispostas a mentir sobre quem são. A maioria deles eram spammers por e-mail que ficaram maravilhados com o fato de o SMTP permitir que eles se passassem por qualquer remetente - sua amiga Alice, seu chefe, o escritório de impostos, o amigável príncipe nigeriano. Sem um mecanismo confiável para evitar que esse tipo de spam seja enviado, o e-mail provou ser terrivelmente vulnerável à falsificação.



Para o crédito dos provedores de e-mail, eles perceberam rapidamente que o e-mail sem autenticação do remetente é inerentemente inutilizável. Para filtrar e-mails adequadamente, eles precisavampelo menos verifique de qual servidor o e-mail veio. Esta propriedade possui um nome técnico e é chamada de autorização de origem .



A solução para o problema de autorização da fonte, como quase o resto das correções básicas do protocolo da Internet, parecia um reparo com fita adesiva. Os provedores de serviço de correio foram solicitados a conectar uma nova extensão criptográfica (opcional) chamada Correio Identificado por Chaves de Domínio , ou DKIM. O DKIM coloca assinaturas digitais em cada e-mail enviado pelo servidor de e-mail . Quando o servidor de e-mail do destinatário recebe uma carta assinada por DKIM afirmando que, por exemplo, veio do Google, primeiro ele usa o Sistema de Nome de Domínio(DNS) encontra a chave pública do Google. O destinatário agora pode verificar a assinatura para garantir que a mensagem é autêntica e não modificada, uma vez que a assinatura está associada ao conteúdo e à maioria dos cabeçalhos. Esse conhecimento pode ser usado como entrada para a filtragem de spam. (Essas garantias são fornecidas por um protocolo semelhante chamado ARC.)



Obviamente, essa solução não é ideal. Como o DKIM é opcional, intermediários mal-intencionados podem retirar assinaturas DKIM de uma carta para convencer os destinatários de que ela nunca foi assinada por DKIM. Um protocolo semelhante, chamado DMARC , usa DNS para permitir que remetentes de e-mail comuniquem suas preferências, o que forçaverifique as assinaturas de seus e-mails. Usar esses dois protocolos juntos deve essencialmente eliminar o spoofing da Internet.





Um exemplo de assinatura DKIM para um dos e-mails automatizados que recebi hoje.



Qual é o problema com DKIM / ARC / DMARC e o que é “desafio”?



Como medida anti-spam, DKIM, ARC e DMARC não têm nenhum problema em particular. A parte complicada é que a assinatura DKIM tem um efeito colateral inesperado que se estende além da tarefa original de filtragem de spam. Resumindo: o



DKIM fornece uma garantia vitalícia da autenticidade dos e-mails, que qualquer pessoa pode usar para verificar criptograficamente a autenticação de e-mails roubados mesmo anos depois de terem sido enviados.



Este novo recurso de não revogação não foi originalmente planejado como um destino DKIM. Os designers não planejaram, ninguém discutiu se seria uma boa ideia e muitos foram pegos de surpresa. Pior ainda, esse recurso inesperado teve consequências muito sérias: nos torna mais vulneráveis ​​à extorsão e chantagem.



Para entender qual é o problema, vale a pena considerar os objetivos do DKIM.



O principal objetivo do DKIM era evitar a falsificação de cartas por spammers durante a transmissão . Isto significa que os servidores destinatário deve realmente ser capaz de verificar se o e-mail foi enviado a partir do servidor de e-mail fonte afirmou, mesmo se o e-mail passa por muitos servidores não confiáveis ao longo do caminho.



No entanto, após a conclusão da transferência de correio, o destino DKIM está concluído. Ou seja, a garantia de autenticidade só deve ser mantida por um curto período de tempo. Como os e-mails geralmente levam apenas alguns minutos para serem recebidos (em casos raros, horas), a garantia de autenticidade não deveduram anos, e essas assinaturas não devem ser expostas aos usuários. No entanto, é assim que acontece.



Até recentemente, ninguém pensava nisso. Na verdade, as primeiras configurações DKIM pareciam uma piada de mau gosto: os provedores de serviço de e-mail escolheram as chaves de assinatura DKIM que eram muito fáceis de hackear para um invasor motivado. Em 2012, o pesquisador de segurança Zachary Harris descobriu que o Google e muitas outras empresas estavam usando RSA de 512 bits para assinar o DKIM. Ele mostrou que essas chaves em equipamentos de nuvem alugados podem ser quebradas em questão de horas e usadas para falsificar cartas de Larry e Sergey.



Não é difícil prever como o Google e outros provedores de e-mail irão reagir a esse constrangimento de "Larry e Sergey". Sem pensar cuidadosamente sobre as implicações, eles rapidamente fortaleceram as chaves, aumentando-as para RSA de 1024 bits ou 2048 bits. Isso evitou a adulteração, mas inadvertidamente transformou o protocolo antispam inócuo em um selo de autenticidade criptográfica vitalício que pode ser usado para validar qualquer despejo de e-mail, independentemente de como ele foi parar nas mãos do verificador.



Você está louco, ninguém usa DKIM para autenticar e-mails.



No entanto, o carimbo de autenticação DKIM tem sido amplamente utilizado pela imprensa, principalmente no contexto de hacking de e-mails de políticos. É real, importante e significativo.



O exemplo mais famoso, que causou séria polêmica ao mesmo tempo: em 2016, o Wikileaks publicou um conjunto de cartas roubadas da conta do Google de John Podest . Como a fonte dessas cartas era obscura , o WikiLeaks enfrentou a difícil tarefa de verificar a autenticidade dessas mensagens. DKIM se tornou uma solução elegante: cada carta postada nas páginas do Wikileaks indica publicamente o status de confirmação das assinaturas DKIM anexadas . O site também oferece uma página de recursos útil para jornalistas, explicando como o DKIM prova a realidade das cartas.



No entanto, a história do DKIM não terminou com as cartas de Podestà. Em 2017, a ProPublica usou o DKIM para verificar a autenticidade de cartas supostamente enviadas a críticas pelo advogado pessoal do presidente Trump, Mark Kasovitz. Em 2018, a Associated Press o usou novamente para autenticar e-mails que vazaram vinculando um advogado russo a Donald Trump Jr. E isso aconteceu novamente este ano, quando os destinatários da suposta "laptop Hunter Biden" entregou um 2015 carta de Rob Graham para verificação DKIM para superar o ceticismo dos jornalistas sobre suas fontes.



Alguém pode dizer que a verificação DKIM não é importante e que você pode acreditar ou não em cartas vazadas apenas com base em seu conteúdo. No entanto, o fato de várias organizações de notícias terem optado por confiar no DKIM demonstra claramente o quão errada é essa suposição. Organizações de notícias, incluindo Wikileaks, admite implicitamente que as origens controversas de receber e-mails levar a dúvidas, provavelmente tão forte que faz uma publicação convincente em uma organização nacional de notícias impossível. O DKIM pode solucionar esse problema e eliminar essa interferência.



A Associated Press até postou uma ferramenta de verificação DKIM .



Resumindo, o protocolo antispam, originalmente projetado para fornecer identificação de curto prazo de cartas que se movem entre servidores de e-mail, mudou de propósito (sem a menor discussão ou consentimento dos usuários de e-mail comercial), tornando-se uma ferramenta que fornece autenticação criptograficamente inegável de cada uma de suas cartas recebidas ou enviadas. Este é um excelente recurso para jornalistas, hackers e chantagistas.



Mas ele não dá nenhuma vantagem para você .



O que você pode fazer a respeito?



O DKIM nunca foi projetado para autenticação de e-mail de longo prazo. As garantias de segurança que ele fornece são importantes, mas devem durar apenas algumas horas (possivelmente dias) a partir do momento em que a carta é transmitida pelo servidor de correio. O próprio fato de o DKIM ainda poder ser usado para provar a autenticidade de um e-mail roubado, escrito em 2015 , é essencialmente um fracasso: o resultado do uso indevido e da configuração incorreta por provedores de e-mail que tiveram que pensar com a cabeça.



Felizmente, existe uma solução simples.



O DKIM permite que os fornecedores "alternem" ou substituam periodicamente as chaves usadas para assinar e-mails enviados. A frequência desta rotação é ligeiramente limitada pelo cacheInfraestrutura DNS, mas essas restrições não são muito rígidas. Mesmo um grande fornecedor como o Google pode alterar facilmente as chaves de assinatura pelo menos a cada poucas semanas, sem interferir no fluxo de mensagens. Mudar as chaves dessa maneira é uma boa prática de qualquer maneira e faz parte da solução.



Obviamente, apenas trocar pares de chaves DKIM por si só não resolverá nada: os astutos da Internet estão constantemente arquivando chaves DKIM públicas. Na verdade, isso é exatamente o que foi confirmado em 2020 em uma carta para uma caixa de correio do Google de 2015: a chave que o Google usou para assinar e-mails DKIM naquele período distante (de 2012 a 2016, a mesma chave foi usada - sério, Google, que bagunça!) não é mais usado, mas foi armazenado em cache em muitos lugares na Internet.



A solução para esse problema requer apenas um pequeno elemento adicional: o Google deve publicar um subconjunto dos pares de chaves com uma chave privada após a rotação e retirada. A empresa deve publicar essa chave secreta em um local público de fácil acesso para que qualquer pessoa possa usá-la para falsificar e-mails antigos suspeitos de qualquer usuário do Google. A disponibilidade pública da chave de assinatura do Google tornaria qualquer vazamento de e-mail criptograficamente discutível. Uma vez que qualquer pessoa de fora pode falsificar assinaturas DKIM, elas se tornam praticamente inúteis como prova de autenticidade.



(Aqueles com seus próprios servidores de e-mail podem fazer isso automaticamente com este ótimo script .)



O Google poderia dar início a esse processo agora, lançando suas antigas chaves privadas de 2016. Uma vez que seu sigilo hoje literalmente não serve a nenhum propósito de segurança além da confirmação de vazamentos de e-mail por terceiros, não há razão para manter esses valores em segredo. Apenas coloque-os para fora.



(Um leitor paranóico também pode considerar a possibilidade de que invasores motivados já tenham roubado chaves privadas DKIM antigas do Google.... No final das contas, as chaves de assinatura DKIM não são as "joias reais" do ecossistema do Google, então o Google dificilmente se esforça para mantê-las seguras. Nesse caso, manter as chaves em segredo pelo Google simplesmente cria uma situação em que certos atores podem falsificar cartas com impunidade.)



Mas a autenticação DKIM é uma coisa ótima! Não queremos ser capazes de verificar e-mails vazados de políticos?



Implementações modernas de DKIM causam problemas porque encorajam um tipo específico de delito: o roubo de cartas privadas para uso em campanhas públicas de chantagem e extorsão. Nos últimos anos, descobriu-se que esse recurso tem sido usado principalmente de uma forma que muitas pessoas acham aceitável, seja porque atende às preferências de seus seguidores ou porque os políticos "pegos" merecem.



Mas coisas ruins acontecem com pessoas boas também. Se você criar um mecanismo que estimule o crime, mais cedo ou mais tarde um crime será cometido contra você.



Provedores de e-mail como o Google tomaram a decisão (muitas vezes sem perguntar a seus clientes) que qualquer pessoa que pegar a senha de e-mail de um cliente ou fazer phishing de um funcionário da empresa pode fornecer uma prova criptograficamente inegável que pode ser mostrada a qualquer pessoa para provar a autenticidade dos resultados. crimes. Talvez tal prova seja desnecessária para as tarefas do criminoso. Mas definitivamente tem valor. Eliminar essa possibilidade é uma bênção em sua forma mais pura.



O fato de eu ter que discutir sobre isso me deixa muito triste.



Timestamps, criptografia aprimorada e outras objeções formais



Cada vez que menciono a ideia de publicar chaves secretas antigas, recebo um monte de objeções formais de pessoas com comentários muito bons . Mas eles pensam em um modelo de ameaça mais sério do que o que normalmente enfrentamos.



A objeção mais comum é que a publicação de chaves privadas só funcionará se e-mails assinados forem recebidos após a publicação das chaves privadas. Por essa lógica, que é correta, qualquer correspondência roubada e publicada antes da publicação da chave DKIM privada é inegável. Por exemplo, se alguém invadir sua conta e imediatamente começar a publicar os e-mails que você recebe em tempo real, a verificação criptográfica ainda é possível.



Alguém até sugeriu a possibilidade de um ataque inteligente no qual os destinatários (ou hackers que têm acesso constante à sua conta de e-mail) usam um serviço público de carimbo de data / hora, como o blockchain, para "carimbar" com segurança qualquer e-mail que recebam com o tempo de recebimento. Isso permite que esses destinatários provem que assinaram a carta antes de publicar a chave DKIM secreta - cheque e cheque-mate.



Este é um ótimo hack teórico inteligente, mas é essencialmente irrelevante para nosso tópico no sentido de que aborda um modelo de ameaça mais forte. O problema mais crítico com o DKIM hoje é que as assinaturas do DKIM residem dentro da sua caixa de correio arquivada. Isso significa que um hacker que invadiu minha conta do Gmail hoje será capaz de demonstrar assinaturas DKIM em e-mails que enviei / recebi.anos atrás . Publicar DKIMs privados antigos corrigirá instantaneamente esse problema. A solução para o problema teórico de um "hacker em tempo real" pode esperar sua vez.



Outra objeção que às vezes ouço é que a autenticação criptográfica é um recurso útil . E sob certas condições, concordo com isso. O problema com o DKIM é que nenhum cliente foi questionado se deseja esse recurso por padrão em sua conta de correio comercial . Se as pessoas desejam confirmar criptograficamente suas cartas, um conjunto conveniente de ferramentas pode ser usado para esse propósito .



Além disso, há a questão de saber se será possível resolver o problema do desafio DKIM com a ajuda de uma nova criptografia. Como criptógrafo, estou muito entusiasmado com isso. Na verdade, meus co-autores Mike Specter, Sanu Park e eu escrevemos recentemente um artigo sobre como uma solução de longo prazo para o problema DKIM pode funcionar. (Mike escreveu um ótimo post sobre isso .) Não vou afirmar que nossa solução seja necessariamente a melhor, mas espero que inspire alguém a fazer mais pesquisas.



No entanto, às vezes, o mais simples é a melhor solução. E agora, o Google, como o maior provedor de e-mail comercial, pode causar um grande impacto (e proteger seus clientes de vazamentos futuros) ao realizar um ato muito simples. E é um mistério para mim por que a empresa ainda não fez isso.






Publicidade



Um servidor virtual da VDSina com proteção contra ataques DDoS permitirá que você hospede qualquer projeto - tudo funcionará perfeitamente e com alto tempo de atividade! Você mesmo pode escolher os parâmetros do servidor usando um configurador conveniente.






All Articles