AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / computer / Perguntas / 1459617
Accepted
Michael Altfield
Michael Altfield
Asked: 2019-07-15 02:33:05 +0800 CST2019-07-15 02:33:05 +0800 CST 2019-07-15 02:33:05 +0800 CST

Como corrigir o GnuPG após importar uma chave envenenada (sem apenas excluí-la)

  • 772

Meu cliente GnuPG atualizou automaticamente as chaves em seu chaveiro de um servidor de chaves e importou uma chave envenenada. Como posso consertar meu chaveiro sem simplesmente deletar a chave pública envenenada?

No mês passado, vários certificados pgp de alto nível foram atacados por meio de um ataque de inundação de certificados ( CVE-2019-13050 ), enviando spam para sua chave pública com dezenas de milhares (ou centenas de milhares) de assinaturas e enviando suas chaves públicas envenenadas para servidores de chaves.

Se, por exemplo, você tinha " Tor Browser Developers (chave de assinatura) " em seu chaveiro e tentou --refresh-keysacessar de um servidor de chaves após 30/06/2019 (quando a chave foi inundada com 121.000 assinaturas falsas), então seu gpg (e consequentemente, seu e-mail se, por exemplo, você estiver usando o thunderbird com enigmail) travará e ficará inutilizável .

A maior parte da cobertura deste problema diz que a solução é simplesmente excluir a chave - mas como posso limpar a chave pública localmente sem ter que baixar uma nova cópia (que introduz vetores desnecessários para adulteração)?

thunderbird security
  • 2 2 respostas
  • 1611 Views

2 respostas

  • Voted
  1. Best Answer
    Michael Altfield
    2019-07-15T10:43:48+08:002019-07-15T10:43:48+08:00

    Passei algum tempo procurando como consertar isso e publiquei um artigo sobre isso em meu site . Abaixo está um resumo da solução para esta questão.

    1. Identificando a chave envenenada

    Primeiro, podemos listar o tamanho das chaves públicas em nosso chaveiro (em bytes) usando o seguinte comando (conforme relatado no rastreador de problemas do GnuPG):

    user@disp1754:~$ gpg --export | gpg --list-packets | awk -F= -v oldoff=-1 -v keyid=unset '
    /^# off=/{ off = $2 + 0 }
    /^:public key/{ if (oldoff>-1) { print (off - oldoff) " " keyid }; oldoff = off; keyid = "unset"; }
    /keyid:/ {if (keyid == "unset") { keyid = $1; } }
    END { print (off - oldoff) " " keyid ; };' | sort -n
    7284    keyid: 1DCBDC01B44427C7
    119748  keyid: 4E2C6E8793298290
    124557  keyid: 403C2657CD994F73
    16934647    keyid: F20691179038E5C6
    user@disp1754:~$ 
    

    Se o comando acima demorar mais do que alguns segundos para ser executado, você terá um problema. Aguarde 20 minutos ou mais e você verá teclas problemáticas na parte inferior. Qualquer coisa com 8 dígitos (>10 MB) é uma bandeira vermelha.

    ⓘ Nota: No exemplo acima, vemos que a chave pública com id = F20691179038E5C6tem um tamanho de 16934647bytes = 16M. Esta é a nossa chave envenenada.

    Os comandos a seguir neste artigo usam este keyid ( F20691179038E5C6) para manipular o chaveiro. Você deve substituir esta string nos comandos abaixo pelo correspondente keyidencontrado no comando acima em sua máquina.  

    2. Exportando a chave envenenada

    Agora que identificamos a chave envenenada, vamos exportá-la para mantê-la segura antes de excluí-la.

    user@disp1754:~$ time gpg -a --export 'F20691179038E5C6' > pubkey.asc
    
    real    3m30.950s
    user    3m24.430s
    sys 0m0.322s
    user@disp1754:~$ du -sh pubkey.asc 
    22M pubkey.asc
    user@disp1754:~$ 
    

    Após alguns minutos, o comando terminará e você deverá ter um arquivo nomeado pubkey.asccom o conteúdo da chave pública envenenada. Observe que este arquivo blindado ASCII contendo exatamente uma chave pública é 22M!

    3. Excluindo a chave envenenada

    Agora que temos um backup seguro da chave envenenada em disco, vamos excluí-la de nosso chaveiro.

    user@disp1754:~$ time gpg --delete-key 'F20691179038E5C6'
    gpg (GnuPG) 2.1.18; Copyright (C) 2017 Free Software Foundation, Inc.
    This is free software: you are free to change and redistribute it.
    There is NO WARRANTY, to the extent permitted by law.
    
    pub  ed25519/F20691179038E5C6 2019-01-19 Daniel Kahn Gillmor <[email protected]>
    
    Delete this key from the keyring? (y/N) y
    
    real    12m15.265s
    user    11m54.242s
    sys 0m0.715s
    user@disp1754:~$ 
    

    4. Reimportando a chave limpa

    Para reimportar uma cópia limpa da chave pública, usaremos o gpgargumento --import-filterspara descartar todas as assinaturas ( drop-sig) feitas na data em que o certificado foi inundado com assinaturas.

    Dado um arquivo de chave pública (como o backup que acabamos de exportar acima), podemos listar uma contagem do número de assinaturas que o certificado recebeu para cada dia com o seguinte comando:

    user@disp1754:~$ time gpg --list-packets pubkey.asc | grep -i 'sig created ' | sort -n | uniq -c
         11     hashed subpkt 2 len 4 (sig created 2019-01-19)
          2     hashed subpkt 2 len 4 (sig created 2019-01-20)
          4     hashed subpkt 2 len 4 (sig created 2019-01-21)
          2     hashed subpkt 2 len 4 (sig created 2019-01-28)
      14400     hashed subpkt 2 len 4 (sig created 2019-06-17)
      40200     hashed subpkt 2 len 4 (sig created 2019-06-18)
    
    real    0m23.061s
    user    0m17.803s
    sys 0m0.150s
    user@disp1754:~$ 
    

    A saída acima mostra que

    1. 14.400 assinaturas foram feitas para a chave em 2019-06-17 e
    2. 40.200 assinaturas foram feitas para a chave em 2019-06-18

    Podemos importar a chave omitindo essas assinaturas de spam nesses dois dias da seguinte maneira (certifique-se de substituir as datas pelos dias correspondentes impressos no comando acima em sua máquina):

    user@disp1754:~$ time gpg --import-filter drop-sig="sig_created_d=2019-06-17 || sig_created_d=2019-06-18" --import pubkey.asc
    gpg: key F20691179038E5C6: 54614 signatures not checked due to missing keys
    gpg: key F20691179038E5C6: public key "Daniel Kahn Gillmor <[email protected]>" imported
    gpg: Total number processed: 1
    gpg:               imported: 1
    gpg: no ultimately trusted keys found
    
    real    3m12.091s
    user    3m6.991s
    sys 0m0.284s
    user@disp1754:~$ 
    

    E agora as coisas devem ser muito mais sãs:

    user@disp1754:~$ time gpg --export | gpg --list-packets | awk -F= -v oldoff=-1 -v keyid=unset '
    > /^# off=/{ off = $2 + 0 }
    > /^:public key/{ if (oldoff>-1) { print (off - oldoff) " " keyid }; oldoff = off; keyid = "unset"; }
    > /keyid:/ {if (keyid == "unset") { keyid = $1; } }
    > END { print (off - oldoff) " " keyid ; };' | sort -n
    7284    keyid: 1DCBDC01B44427C7
    8930    keyid: F20691179038E5C6
    119748  keyid: 4E2C6E8793298290
    124557  keyid: 403C2657CD994F73
    
    real    0m0.063s
    user    0m0.059s
    sys 0m0.016s
    user@disp1754:~$ gpg -a --export '403C2657CD994F73' > pubkey2.asc
    user@disp1754:~$ du -sh pubkey2.asc 
    168K    pubkey2.asc
    user@disp1754:~$ 
    

    5. Atualizando sua configuração GnuPG

    Como Robert J. Hansen (cuja chave pgp recebeu spam com 149.100 assinaturas em 19/06/2019) apontou em sua excelente essência abrangente sobre esse problema, você pode impedir que seu cliente gpg se quebre:

    1. Removendo todas as linhas que começam com `keyserver` em seu arquivo `gpg.conf` e
    2. Atualizando `dirmngr.conf` para que tenha apenas 1 `keyserver` = `keyserver hkps://keys.openpgp.org`

    Esse keys.openpgp.orgservidor de chaves é um novo servidor experimental (curiosamente, foi lançado apenas algumas semanas antes do upload desses certificados envenenados) que é mais resistente a esses ataques. Observe que os certificados que ele atende carecem totalmente de assinaturas de terceiros e também retira os pacotes UID da chave, a menos que um usuário opte explicitamente por entrar .

    6. Atualizando sua configuração MUA

    Você também pode precisar atualizar seu MUA. Por exemplo, enigmail em thunderbird também pode ser configurado para atualizar as chaves em seu chaveiro.

    Para evitar que o enigmail atualize suas chaves de um servidor de chaves, vá para as preferências do thunderbird -> Avançado -> Editor de configuração... -> Aceito o risco!

    E definir extensions.enigmail.keyRefreshOnparafalse

    Termo aditivo

    Observe que o formato de chaveiro de caixa de chaves se recusará a importar chaves posicionadas, pois tem um tamanho máximo de chave de 5 MiB e que os usuários com instalações antigas devem considerar migrar seu chaveiro para o formato de caixa de chaves.

    Isso pode ser feito facilmente em sistemas baseados em Debian usando o comando migration-pubring-from-classic-gpg

    • 4
  2. user1686
    2019-07-15T05:31:47+08:002019-07-15T05:31:47+08:00

    mas como posso limpar a chave pública localmente sem ter que baixar uma nova cópia (que introduz vetores desnecessários para adulteração)?

    Método não testado:

    1. Corra gpg --edit-key <keyid> clean save.

    Outro método:

    1. Exporte a chave (ou todas as chaves) para um arquivo usando --export-options export-clean(o que ignorará todas as assinaturas que não podem ser verificadas em relação a chaves confiáveis ​​em seu chaveiro).
    2. Exclua a chave.
    3. Importe a chave do arquivo que você criou anteriormente.

    Ainda outro método:

    1. Anote a impressão digital da chave (a de comprimento total, não apenas a "ID da chave" de 16 dígitos).
    2. Exclua a chave.
    3. Faça o download de uma nova cópia com base na impressão digital (desta vez --keyserver-options self-sigs-only, se você optar por usar um servidor de chaves).
    • 2

relate perguntas

  • Método anti-phishing para Thunderbird usando filtros?

  • Removendo bloqueio infantil

  • Classifique e-mails de maneira otimizada em subpastas usando filtros Thunderbird

  • Falha na soma de verificação – Fedora 29 ou gire o KDE Plasma

  • Por que o Thunderbird não exclui completamente os e-mails?

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    O visualizador de fotos do Windows não pode ser executado porque não há memória suficiente?

    • 5 respostas
  • Marko Smith

    Como faço para ativar o WindowsXP agora que o suporte acabou?

    • 6 respostas
  • Marko Smith

    Área de trabalho remota congelando intermitentemente

    • 7 respostas
  • Marko Smith

    Serviço do Windows 10 chamado AarSvc_70f961. O que é e como posso desativá-lo?

    • 2 respostas
  • Marko Smith

    O que significa ter uma máscara de sub-rede /32?

    • 6 respostas
  • Marko Smith

    Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows?

    • 1 respostas
  • Marko Smith

    O VirtualBox falha ao iniciar com VERR_NEM_VM_CREATE_FAILED

    • 8 respostas
  • Marko Smith

    Os aplicativos não aparecem nas configurações de privacidade da câmera e do microfone no MacBook

    • 5 respostas
  • Marko Smith

    ssl.SSLCertVerificationError: falha na verificação do certificado [SSL: CERTIFICATE_VERIFY_FAILED]: não foi possível obter o certificado do emissor local (_ssl.c:1056)

    • 4 respostas
  • Marko Smith

    Como posso saber em qual unidade o Windows está instalado?

    • 6 respostas
  • Martin Hope
    Albin Como faço para ativar o WindowsXP agora que o suporte acabou? 2019-11-18 03:50:17 +0800 CST
  • Martin Hope
    fixer1234 O "HTTPS Everywhere" ainda é relevante? 2019-10-27 18:06:25 +0800 CST
  • Martin Hope
    Kagaratsch O Windows 10 exclui muitos arquivos minúsculos muito lentamente. Algo pode ser feito para agilizar? 2019-09-23 06:05:43 +0800 CST
  • Martin Hope
    andre_ss6 Área de trabalho remota congelando intermitentemente 2019-09-11 12:56:40 +0800 CST
  • Martin Hope
    Riley Carney Por que colocar um ponto após o URL remove as informações de login? 2019-08-06 10:59:24 +0800 CST
  • Martin Hope
    zdimension Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows? 2019-08-04 06:39:57 +0800 CST
  • Martin Hope
    Inter Sys Como Ctrl+C e Ctrl+V funcionam? 2019-05-15 02:51:21 +0800 CST
  • Martin Hope
    jonsca Todos os meus complementos do Firefox foram desativados repentinamente, como posso reativá-los? 2019-05-04 17:58:52 +0800 CST
  • Martin Hope
    MCK É possível criar um código QR usando texto? 2019-04-02 06:32:14 +0800 CST
  • Martin Hope
    SoniEx2 Altere o nome da ramificação padrão do git init 2019-04-01 06:16:56 +0800 CST

Hot tag

windows-10 linux windows microsoft-excel networking ubuntu worksheet-function bash command-line hard-drive

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve