[Top] [All Lists]

Re: [openpgp] New fingerprint: which hash algo

2015-10-23 15:43:51
On 23/10/2015 21:16 pm, Daniel Kahn Gillmor wrote:
On Fri 2015-10-23 14:00:56 -0400, Phillip Hallam-Baker wrote:
Due to the way OpenPGP works, it is not possible to have a recommended
algorithm for fingerprints. Every client has to be able to process any
recommended algorithm, so recommended means 'mandatory to accept'. But
there should definitely be two algorithms to choose from.

In earlier discussions, i think people have made pretty convincing
arguments that "two algorithms to choose from" is not a useful
arrangement for OpenPGP fingerprints.

Yes, giving users "choice" in cryptographic algorithms is a bad idea in general.

In particular, fingerprints are used in verification contexts where the
user has a bit of paper and sees something on the screen and is asked a
question "do these things match?"

If there are two algorithms to choose from, there are potentially two
fingerprints to choose from, and this process becomes more complicated.
the tool now has to either (a) first, ask the user which form of
fingerprint is on the bit of paper before displaying the fingerprint
(making fingerprint comparison a multi-roundtrip operation), or
(b) present both and hope the user knows to ignore one or the other
(similarly to how web browser certificate dialogs look, and we know how
well that works).

Either of these outcomes make this particular use case -- which already
has bad usability -- worse.

Arguably, we shouldn't encourage this use case at all, and should
replace it with something like "type in the expected fingerprint and
we'll tell you if it matches".  If we make that decision, the argument
for multiple fingerprint algorithms might be OK.  But while i use this
workflow myself, i think most users would find it too burdensome.
Reading high-entropy hexadecimal (or base64 or whatever) is bad enough.
typing it in is even worse.

IFF it is decided that there are two incompatible fingerprint schemes then they should be made unconfusable.

One way to do this is to use PHB's leading byte or nibble indicator.

Another way to do this would be to split the lengths such that one set of lengths is valid in one MD, and another is valid in another MD. SO e.g., anything 8, 12, 16, 20 bytes long is SHA2 and 10,14,18,22 are reserved for SHA3, etc.

(Just for explanatory purposes. PHB also has his 5-byte method which I quite like.)


ps; just to re-iterate my view on multiple algorithms, I've yet to see a compelling argument, being one that is actually founded rather than circulated or based on claims of caution.

openpgp mailing list