Re: including the entire fingerprint of the issuer in an OpenPGP certification

"Daniel A. Nagy" <nagydani@epointsystem.org> Tue, 18 January 2011 10:01 UTC

Received: from hoffman.proper.com (localhost [127.0.0.1]) by hoffman.proper.com (8.14.4/8.14.3) with ESMTP id p0IA18r7028576 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Tue, 18 Jan 2011 03:01:08 -0700 (MST) (envelope-from owner-ietf-openpgp@mail.imc.org)
Received: (from majordom@localhost) by hoffman.proper.com (8.14.4/8.13.5/Submit) id p0IA183l028575; Tue, 18 Jan 2011 03:01:08 -0700 (MST) (envelope-from owner-ietf-openpgp@mail.imc.org)
X-Authentication-Warning: hoffman.proper.com: majordom set sender to owner-ietf-openpgp@mail.imc.org using -f
Received: from mail-bw0-f43.google.com (mail-bw0-f43.google.com [209.85.214.43]) by hoffman.proper.com (8.14.4/8.14.3) with ESMTP id p0IA15OW028568 for <ietf-openpgp@imc.org>; Tue, 18 Jan 2011 03:01:06 -0700 (MST) (envelope-from nagydani@epointsystem.org)
Received: by bwz14 with SMTP id 14so3163955bwz.16 for <ietf-openpgp@imc.org>; Tue, 18 Jan 2011 02:01:04 -0800 (PST)
Received: by 10.204.45.150 with SMTP id e22mr3019021bkf.125.1295344864413; Tue, 18 Jan 2011 02:01:04 -0800 (PST)
Received: from [192.168.55.151] ([213.163.35.18]) by mx.google.com with ESMTPS id b6sm2522506bkb.22.2011.01.18.02.01.02 (version=TLSv1/SSLv3 cipher=RC4-MD5); Tue, 18 Jan 2011 02:01:03 -0800 (PST)
Message-ID: <4D3564E4.1010203@epointsystem.org>
Date: Tue, 18 Jan 2011 11:01:08 +0100
From: "Daniel A. Nagy" <nagydani@epointsystem.org>
Organization: ePoint Systems Ltd.
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.13) Gecko/20101208 Thunderbird/3.1.7
MIME-Version: 1.0
To: IETF OpenPGP Working Group <ietf-openpgp@imc.org>
CC: Daniel Kahn Gillmor <dkg@fifthhorseman.net>, notmuch <notmuch@notmuchmail.org>
Subject: Re: including the entire fingerprint of the issuer in an OpenPGP certification
References: <4D34F133.3000807@fifthhorseman.net>
In-Reply-To: <4D34F133.3000807@fifthhorseman.net>
X-Enigmail-Version: 1.1.2
Content-Type: multipart/signed; micalg="pgp-sha1"; protocol="application/pgp-signature"; boundary="------------enig29B4C3D13C4C40618B3DA1EA"
Sender: owner-ietf-openpgp@mail.imc.org
Precedence: bulk
List-Archive: <http://www.imc.org/ietf-openpgp/mail-archive/>
List-Unsubscribe: <mailto:ietf-openpgp-request@imc.org?body=unsubscribe>
List-ID: <ietf-openpgp.imc.org>

On 01/18/2011 02:47 AM, Daniel Kahn Gillmor wrote:
> i believe collisions of the low 64 bits of SHA1 are within reach today,
> i'd love to be corrected if this is not the case

I'd suggest using the entire fingerprint as a reference and leaving the
creation date out of the fingerprint calculation for v5 for the
following reasons:

Yes, generating two keys with identical long key ID's is feasible (and
not even particularly expensive on 64-bit machines with dozens of
gigabytes of RAM), but generating a new key with the same 64-bit key ID
as an existing key is on the very far end of the realm of feasibility.
Given the dubious gains from success, I would rule out this attack as
impractical.

Another problem with fingerprints and key IDs is that they are generated
over the key and the creation date, meaning that the same key can have
different key ID's. Since the signature subpacket with the reference is
not part of the hashed data, one can change both the key ID and the
reference and keep the signature valid. Again, I don't know what the
practical value of such an attack might be, but just like in the first
case, it creates an odd situation potentially undermining the trust in
the security of the system. When arguing in front of a non-expert judge,
such quirks erode the claims of rock-solid evidence very badly.

The key ID itself (especially the long one) is not a bad idea, however.
It is a nice compromise in the middle of Zooko's triangle (almost
memorable, almost globally unique and almost secure). In order to make
it more useful, I'd suggest using 20-digit decimal identifiers (like
credit card numbers) instead of 16-digit hexadecimal ones.

Regards,

-- 
Daniel