Re: [openpgp] Followup on fingerprints

Phillip Hallam-Baker <phill@hallambaker.com> Thu, 06 August 2015 16:38 UTC

Return-Path: <hallam@gmail.com>
X-Original-To: openpgp@ietfa.amsl.com
Delivered-To: openpgp@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 3C4FB1B30FA for <openpgp@ietfa.amsl.com>; Thu, 6 Aug 2015 09:38:31 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.277
X-Spam-Level:
X-Spam-Status: No, score=-1.277 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FM_FORGED_GMAIL=0.622, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, SPF_PASS=-0.001] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 1jrvqfJG29Fr for <openpgp@ietfa.amsl.com>; Thu, 6 Aug 2015 09:38:29 -0700 (PDT)
Received: from mail-la0-x22c.google.com (mail-la0-x22c.google.com [IPv6:2a00:1450:4010:c03::22c]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 375BF1B30FF for <openpgp@ietf.org>; Thu, 6 Aug 2015 09:38:24 -0700 (PDT)
Received: by labjt7 with SMTP id jt7so34960256lab.0 for <openpgp@ietf.org>; Thu, 06 Aug 2015 09:38:22 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date:message-id:subject :from:to:cc:content-type; bh=vDwZkbSKM6/UXudIxJEVh/XoJj2tGeGq2SUY9F6gFqA=; b=0R7hn7uWc5m+7F4EFHp+nCujwgWWYsoUhCm852c2FJ9/lSzxls22X5DhfxlmCJDHlx l57FzXPkybTBF0zUMEvqfWixsdYSH60924jkePNoMgRHQjil0E6ZSkh2YJp/DCRbX7T5 8UHy92e9ASo+oXBrvgdXQY/sY+bzkOH5Y1Iqae9NHabGeRoDCDj30r3jmW6/dRfJSx0M vNSzaL8/YuSNbr7Px8hFakv7CKx3aJ8qohx5fadGpVU89296fkQiD+2nBKw2dR0W+z9+ BMasNRQhYrv6cL4Xoy4OODIZxgE1tIvuz9V63ZbAeahruOK5cYB2pdJ47tMWmt3B7hyZ UJYg==
MIME-Version: 1.0
X-Received: by 10.152.36.41 with SMTP id n9mr3164022laj.79.1438879102477; Thu, 06 Aug 2015 09:38:22 -0700 (PDT)
Sender: hallam@gmail.com
Received: by 10.112.203.163 with HTTP; Thu, 6 Aug 2015 09:38:22 -0700 (PDT)
In-Reply-To: <87d1z0763m.fsf@littlepip.fritz.box>
References: <87twsn2wcz.fsf@vigenere.g10code.de> <CAMm+LwgRJX-SvydmpUAJMmN3yysi4zzGSpO2yY4JAMhD-9xLgQ@mail.gmail.com> <87zj2ecmv8.fsf@alice.fifthhorseman.net> <CAMm+LwgKmcTes=V7uS3MjCQixWCo-i7PY=VE7eCHSqt3Ho3OSg@mail.gmail.com> <87a8udd4u6.fsf@alice.fifthhorseman.net> <sjm61503182.fsf@securerf.ihtfp.org> <CAMm+LwgEVySpfL-iN2uzX-4tu7R+isDkHE9D8uAeLTxxd4VxqQ@mail.gmail.com> <sjmwpxc1kbv.fsf@securerf.ihtfp.org> <CAAS2fgR6LYck+km5Ze6S9z65ZgsR61d8md2CqojDaceZ0OrZrw@mail.gmail.com> <9c2c8c5df67c83925d7e3c21fe943483.squirrel@mail2.ihtfp.org> <20150803173231.GG3067@straylight.m.ringlet.net> <2439a89a6c4eb70044e144406a732482.squirrel@mail2.ihtfp.org> <87io8v7uqt.fsf@littlepip.fritz.box> <87h9of7p0e.fsf@littlepip.fritz.box> <87wpxbtuwk.fsf@vigenere.g10code.de> <CAAu18hez49oVhTwRLqv=3rifbg5q5+EqsSvBO0c-ezq+M_Qmyw@mail.gmail.com> <87614u4u7q.fsf@alice.fifthhorseman.net> <55C3836D.2040104@iang.org> <87d1z0763m.fsf@littlepip.fritz.box>
Date: Thu, 06 Aug 2015 12:38:22 -0400
X-Google-Sender-Auth: fvAJDvX0uBD-G-MkljN4w-wT8eE
Message-ID: <CAMm+LwiCUGcSMDYGgaAL9XCNy+co=1L8g2JxaDLjT+oR0RBrWg@mail.gmail.com>
From: Phillip Hallam-Baker <phill@hallambaker.com>
To: Vincent Breitmoser <look@my.amazin.horse>
Content-Type: multipart/alternative; boundary="089e0158b608c73066051ca72555"
Archived-At: <http://mailarchive.ietf.org/arch/msg/openpgp/nmITprFSo8s2XMLY5iiI9Rh72bU>
Cc: IETF OpenPGP <openpgp@ietf.org>, ianG <iang@iang.org>
Subject: Re: [openpgp] Followup on fingerprints
X-BeenThere: openpgp@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Ongoing discussion of OpenPGP issues." <openpgp.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/openpgp>, <mailto:openpgp-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/openpgp/>
List-Post: <mailto:openpgp@ietf.org>
List-Help: <mailto:openpgp-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/openpgp>, <mailto:openpgp-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 06 Aug 2015 16:38:31 -0000

On Thu, Aug 6, 2015 at 12:07 PM, Vincent Breitmoser <look@my.amazin.horse>
wrote:

>
> On 6 Aug 2015, ianG wrote:
>
> > I'll bite: A person with two keys can sign a document that holds
> > him, then announce that it wasn't signed by him.
>
> Even though two keys exists with the same fingerprint, a signature made
> by one will only check out with that one, so creating ambiguous
> signatures is not that simple unless the attacker can also freely choose
> which one of the two keys will be used for verification.  Also keep in
> mind that certificates are made over public key material, not only
> fingerprints.
>
> > As proof, he can anonymously publish his other key...
>
> Yes, well.  He could also publish this key if it wasn't a collided one,
> or simply state that it was compromised.  Which leads us to the same old
> discussion about the usefulness of non-repudiation in practice.
>

Yes, I think we all understand the attack scope etc. pretty well at this
point. The question is what to do about it and I think we actually have a
practical consensus there as well.

Remember that I am a systems guy looking to build stuff on top of stuff
that is built on top of stuff. So for me the problem with a fingerprint
that might or might not be vulnerable to attack is that I have to evaluate
the security properties every time it is used and give reasons.

The use of MD5 in HTTP-DIGEST authentication is perfectly secure even with
the known flaws in MD5 etc. because the design intentionally uses a nested
construction to guard against extension attacks and the low entropy of
passwords means MD5 is never going to be the weakest link. But even so I
gave up explaining to people why that was so about ten years ago because it
just wasn't worth having the same argument again and again and again. Even
pointing out that the scheme was designed that way only to get round the
public key patents and there are much much better ways to do things does
not end the argument.


There are really two questions that the group needs to consider:

1) How many significant bits are necessary when printing a fingerprint on a
business card?

2) How many internal bits should be preserved?

The answer to 1 seems to be that 100 bits is the very lowest security level
that is acceptable and 150 bits should be more than sufficient for OpenPGP
uses.  The work factor for impersonation of a key holder being 2^100 and
2^150 respectively.

The answer to 2 is 'as many as you have available'. So even if there are
only 150 bits printed on the business card, programs should store either
the complete key parameters or the full digest output internally.

The security considerations should mention the birthday attack so that
reviewers know it has been considered and that the scope is limited to
allowing an attacker to create a pair of colliding keys for their own use.
The circumstances in which this could be exploited are very narrow and
would depend on the attacker being able to cause two different systems to
react differently to the same fingerprint.


For example, imagine a debit system in which the account is identified by a
fingerprint. Mallet creates a malicious keypair and ensures that the bank
of Ethel has one and the bank of Gax has the other. Mallet then creates a
money transfer order from his account at Ethel to his account at Gax which
he signs with the Gax key. As soon as Gax has cleared the funds, Mallet
transfers them out again (a few milliseconds later). When Gax tries to
perform settlement against Ethel at the end of the day, Ethel rejects the
transfer order because the signature doesn't verify.