Why has this happened? Shouldn't the old key just get replaced with the updated one?
In OpenPGP (almeno per le chiavi della versione 4), la data di scadenza non è memorizzata nel pacchetto chiave stesso, ma nelle firme di associazione (autofirma) sulle chiavi. Le modifiche alla data di scadenza (e altri attributi) vengono eseguite distribuendo una versione mai aggiornata della firma vincolante, che poi sostituisce quella precedente.
Poiché i server principali eseguono solo una verifica parziale delle firme (se presenti), mantengono tutte le versioni e fanno eseguire i client OpenPGP (e scelgono la più recente firma di bind valida e quindi la data di scadenza). Inoltre, offre un tipo di cronologia della chiave.
Questo argomento è stato anche discusso alcuni anni fa sulla mailing list di GnuPG , anche collegamento di un esempio che mostra le firme di associazione duplicate che si sono verificate a causa della modifica della data di scadenza:
sub 1024D/2D16624C 2003-05-13
sig sbind FFFD5DA0 2003-05-13 __________ __________ []
sig sbind FFFD5DA0 2003-05-14 __________ 2007-05-13 []
sig sbind FFFD5DA0 2011-03-06 __________ 2013-05-13 []
I client OpenPGP come GnuPG di solito eliminano (o nascondono) le versioni precedenti dopo aver verificato le firme di binding.
Can I be sure that my published key will expire on the new correct date that I set?
Sì, i client OpenPGP seguiranno la firma automatica più recente e considereranno i precedenti sostituiti.