Por que o gpg --list-keys às vezes imprime subchaves, às vezes não?

6

Esta questão ocorreu nos comentários de " Como faço para exibir os sinalizadores de uso para minhas chaves de criptografia de uma maneira menos hackeada ? ", e parece valer a pena ser respondida em um formulário Q & A, já que a resposta não é realmente óbvia.

Para ver a chave 449FA3AB do Torvald, eu uso gpg2 --list-keys 449FA3AB , que gera

$ gpg2 --list-keys 449FA3AB
pub   1024D/449FA3AB 1999-10-05 [expired: 2001-10-04]
uid       [ expired] Linus Torvalds <[email protected]>

Geralmente, esse comando também lista subchaves, mas nenhuma subchave é impressa para a chave de Torvald. No entanto, ao solicitar saída em lote, há um incluído.

$ gpg2 --with-colons --list-keys 449FA3AB
tru::1:1414619239:1414879758:3:1:5
pub:e:1024:17:956EB7BF449FA3AB:939086351:1002158351::-:::sca:
uid:e::::939086351::81A3799583B9B1B391E4C428112F302FF2ADF462::Linus Torvalds <[email protected]>:
sub:e:2048:16:71CE8207BFF491C5:939086545:1002158545:::::e:

Parece que essa chave de Torvalds tem algum recurso especial que oculta a subchave. O que aconteceu aqui?

    
por Jens Erat 04.11.2014 / 10:59

1 resposta

9

Chaves expiradas

Este não é um recurso especial, mas a chave primária de Torvalds expirou há algum tempo e, em consequência, também a subchave. A resposta está oculta na seção --list-options do GnuPG das páginas man, já que por padrão as subchaves expiradas estão ocultas. De man gpg2 :

show-unusable-subkeys
        Show revoked and expired subkeys in key listings. Defaults to no.

Ao especificar esse argumento, a subchave será exibida:

$ gpg2 --list-options show-unusable-subkeys --list-keys 449FA3AB
pub   1024D/449FA3AB 1999-10-05 [expired: 2001-10-04]
uid       [ expired] Linus Torvalds <[email protected]>
sub   2048g/BFF491C5 1999-10-05 [expired: 2001-10-04]

Viajando de volta no tempo

Você também pode verificar isso usando o útil programa faketime para definir o tempo do sistema de volta alguns anos para o GnuPG. Ao viajar no tempo para uma data em que a chave Torvalds era válida, a subchave será exibida novamente:

$ faketime 2001-01-01 gpg2 --list-keys 449FA3AB
pub   1024D/449FA3AB 1999-10-05 [expires: 2001-10-04]
uid       [ unknown] Linus Torvalds <[email protected]>
sub   2048g/BFF491C5 1999-10-05 [expires: 2001-10-04]
    
por 04.11.2014 / 10:59

Tags