Re: [Endymail] Hashes of key as addresses

Michael Kjörling <michael@kjorling.se> Fri, 29 August 2014 09:11 UTC

Return-Path: <michael@kjorling.se>
X-Original-To: endymail@ietfa.amsl.com
Delivered-To: endymail@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id CF2FE1A06E7 for <endymail@ietfa.amsl.com>; Fri, 29 Aug 2014 02:11:49 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.719
X-Spam-Level:
X-Spam-Status: No, score=-0.719 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HELO_EQ_SE=0.35, J_CHICKENPOX_14=0.6, J_CHICKENPOX_41=0.6, MIME_8BIT_HEADER=0.3, RP_MATCHES_RCVD=-0.668, 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 UrEz_OXZGrnh for <endymail@ietfa.amsl.com>; Fri, 29 Aug 2014 02:11:46 -0700 (PDT)
Received: from nekare.kjorling.se (nekare.kjorling.se [89.221.249.175]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id C13921A06DF for <endymail@ietf.org>; Fri, 29 Aug 2014 02:11:45 -0700 (PDT)
Received: by nekare.kjorling.se (Postfix, from userid 1001) id 012B6114075; Fri, 29 Aug 2014 09:11:42 +0000 (UTC)
X-Spam-Details: BAYES_00=-1.9, SPF_FAIL=0.001 (nekare.kjorling.se)
Received: from yeono.kjorling.se (h-9-65.a328.priv.bahnhof.se [46.59.9.65]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "yeono", Issuer "yeono" (not verified)) by nekare.kjorling.se (Postfix) with ESMTPS id E79F2114073 for <endymail@ietf.org>; Fri, 29 Aug 2014 09:11:34 +0000 (UTC)
Received: from yeono.kjorling.se (localhost [127.0.0.1]) (using TLSv1.2 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (Client did not present a certificate) by yeono (Postfix) with ESMTPS id 765A2140031 for <endymail@ietf.org>; Fri, 29 Aug 2014 11:11:34 +0200 (CEST)
Date: Fri, 29 Aug 2014 09:11:33 +0000
From: Michael =?utf-8?B?S2rDtnJsaW5n?= <michael@kjorling.se>
To: endymail@ietf.org
Message-ID: <20140829091133.GA25723@yeono.kjorling.se>
References: <CAMm+LwimhUi5uZAgm9erYtMJ9-o6+x__344TwKH4-Pa_-mckfg@mail.gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <CAMm+LwimhUi5uZAgm9erYtMJ9-o6+x__344TwKH4-Pa_-mckfg@mail.gmail.com>
Archived-At: http://mailarchive.ietf.org/arch/msg/endymail/mSmLHfs0kzZNE9LaYdBDjHtN8ok
Subject: Re: [Endymail] Hashes of key as addresses
X-BeenThere: endymail@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: <endymail.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/endymail>, <mailto:endymail-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/endymail/>
List-Post: <mailto:endymail@ietf.org>
List-Help: <mailto:endymail-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/endymail>, <mailto:endymail-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 29 Aug 2014 09:11:51 -0000

On 28 Aug 2014 19:23 -0400, from phill@hallambaker.com (Phillip Hallam-Baker):
> Using hashes of keys as addresses is very powerful. There are
> basically three types of address in such schemes:
> 
> 1) traditional human readable
> 
> 2) hash of key
> 
> 3) Traditional human readable + hash of key.
> 
> 
> So in PPE we use all three in different situations:
> 
> 1) ACAIEA-FONPAC-5AC6LFA-K4ACHC-EAJWAHN-VPAM4A-COYPAO-VAA
> 
> 2) alice@example.com
> 
> 3) ACAIEA-FONPAC-5AC6LFA-K4ACHC-EAJWAHN-VPAM4A-COYPAO-VAA?alice@example.com
> 
> 
> We can apply the same approach with value to other situations. Lets
> say Alice owns example.com. We can create a strong domain name in the
> same way:
> 
> ACAIEA-FONPAC-5AC6LFA-K4ACHC-EAJWAHN-VPAM4A-COYPAO-VAA?example.com

Does this scheme not imply that everyone who wants to validate an
address, or know to where to pass a message given an address, needs to
either (a) query some form of central repository where all address
(hash)es are registered, or (b) have a local cache of all valid
address (hash)es?

Whether architectured in a distributed or centralized fashion, would
such a registry not become problematic? Lookups would be comparatively
costly (since even though it would be possible to split the storage,
you'd still be looking at what basically amounts to a sequential
search through some, likely relatively large, amount of data), if this
catches on it would soon grow very large, and imagine what spammers
would do if they could get their hands on a copy of that database.
Someone who is in control of such a database would have the potential
for massive (though not necessarily total) insight into who is
communicating with whom.

We know that breaches happen, even with the best of intentions (even
the NSA can't keep their data safe from breaches, as evidenced), so it
would appear that an architecture that creates such a valuable target
should be discouraged.

Initial mapping from a human-friendly (no matter what format) to a
hash (no matter what format) address would also seem to present the
problem of ensuring that you are mapping the correct human-friendly
address. You could, given an appropriate design, after that point be
certain that you are communicating with the _same_ person that you
started out communicating with, but could you be certain that you are
communicating with the _intended_ person (as opposed to someone else
by mistake, and as opposed to a MITMer)? If the human-friendly address
is enough to uniquely identify the recipient, then why would we need a
hash-based address scheme at all? If it isn't, then how is Joe R.
User, who wants to send a message securely to Alice Journalist,
expected to pick between "Alice Journalist, ACAIEA FONPAC 5AC6LFA
K4ACHC EAJWAHN VPAM4A COYPAO VAA" and "Alice Journalist, GJEIWO FMCPTE
9NM2GME X0AZZE XMDLWLF LLCP2K UHXHYM LHE", let alone between the first
and "Alice Journalist, ACAIEA F0NPAC 5AC6LFA K4ACHC EAJWAHN VPAM4A
COYPAO VAA"?

Compare SMTP where the originating SMTP server can do preliminary
validation (on the order of ensuring that the address is well-formed,
the domain exists and has a MX or address record) while the receiving
SMTP server does final address validation (local-part/hostname pair
exists and points to a valid mailbox) in an interactive dialog between
the servers, allowing reasonably good error reporting back to the
originating sender without any one entity having a complete address
registry. Since DNS is also highly distributed, no one entity even has
a complete list of all valid domain or fully qualified host names.

-- 
Michael Kjörling • https://michael.kjorling.semichael@kjorling.se
OpenPGP B501AC6429EF4514 https://michael.kjorling.se/public-keys/pgp
                 “People who think they know everything really annoy
                 those of us who know we don’t.” (Bjarne Stroustrup)