Re: [openpgp] New fingerprint: to v5 or not to v5

Peter Gutmann <> Wed, 07 October 2015 14:03 UTC

Return-Path: <>
Received: from localhost ( []) by (Postfix) with ESMTP id A4F861A90AD for <>; Wed, 7 Oct 2015 07:03:08 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -1.91
X-Spam-Status: No, score=-1.91 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, T_RP_MATCHES_RCVD=-0.01] autolearn=ham
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id wN7LLFMbin_7 for <>; Wed, 7 Oct 2015 07:03:06 -0700 (PDT)
Received: from ( []) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 7BA101A9109 for <>; Wed, 7 Oct 2015 07:02:40 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;;; q=dns/txt; s=mail; t=1444226561; x=1475762561; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=yxzAMIJBXrElxDhOFiNfm6h7aFefMnX9aCcguYgYoR0=; b=1a3LAOPw1T8oZHdOnlK1aH9XM7v+mdLnLVZ7UnBdPsNsSyHCQT2VGoO6 p/RstwPMUS3m/OihgIHhZfdj5g9TG6tUq1qBkcSSV90jDYOkbNOj43LXp s7Pmb6xADLMul/7YnP/NoEPYbDzbHpzd5e4XB5UQButZrp3EkmBtPp8yF LlvcBvRtnkeocgSMErIXlhI0v7qlZ8CQofPOyhIZpC3HiiEOL5Btr61ia nZ9/0RPIDenp6LxaKfW+rxOoN8phHNbIaCu4Dv7hS+Yih5Qkw3d73WoC3 uPn64jO//tnLgBYfjEF9MIuPjSXnJUyiQukvdUbjaaXzeJMXMxk2fyXXl A==;
X-IronPort-AV: E=Sophos;i="5.17,649,1437393600"; d="scan'208";a="47105360"
X-Ironport-Source: - Outgoing - Outgoing
Received: from ([]) by with ESMTP/TLS/AES128-SHA; 08 Oct 2015 03:02:19 +1300
Received: from ([]) by ([]) with mapi id 14.03.0174.001; Thu, 8 Oct 2015 03:02:18 +1300
From: Peter Gutmann <>
To: Werner Koch <>
Thread-Topic: [openpgp] New fingerprint: to v5 or not to v5
Thread-Index: AQHRAA0oGRFnZAPwNU68Rcs3/4z3Np5gESqI
Date: Wed, 7 Oct 2015 14:02:17 +0000
Message-ID: <>
References: <> <> <> <> <> <> <> <> <>, <>
In-Reply-To: <>
Accept-Language: en-NZ, en-GB, en-US
Content-Language: en-NZ
x-originating-ip: []
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
Archived-At: <>
Cc: Watson Ladd <>, Phillip Hallam-Baker <>, Daniel Kahn Gillmor <>, IETF OpenPGP <>
Subject: Re: [openpgp] New fingerprint: to v5 or not to v5
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Ongoing discussion of OpenPGP issues." <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Wed, 07 Oct 2015 14:03:08 -0000

Werner Koch <> writes:

>That explicit ID sounds pretty much like a issuer+serialno or one of the
>other X.509 methods to identify a key.  It is not a fingerprint as we know it
>and it can't be used as a secure identification of the key.

It works quite well as a unique identifier for a key.  The problem here is
that PGP makes the same mistake that's made in things like credit cards and
SSNs, where you've got a magic value that's supposed to be both a unique
identifier (public) and an authentication/authorisation value (private).

X.509 handles this by having two distinct things, a unique identifier
(subjectKeyIdentifier) to identify a key, and a fingerprint (hash of the cert)
to verify its integrity or whatever it is you want to do with it.

PGP in contrast confuses the two, so you have a supposedly unique identifier
that hashes in a mutable value (the time) but then doesn't hash in other
important information like the user ID associated with the key.  So it doesn't
work very well either as an identifier or as an integrity-check value.

The fix would be to have two distinct values, a unique identifier (64 or 128
bits of whatever) to uniquely identify a key, and then a fingerprint that
covers the key, subkey(s), user ID(s), attributes, and whatnot, to check that
you've got what you were expecting to get.

>Lost key?  

The key is present somewhere on the keyring but the date has changed, so you
can't locate it by key ID any more because the date hashed into the other bits
and pieces changes the key ID.