Re: [stir] current draft charter - ENUM and databases

Henning Schulzrinne <hgs@cs.columbia.edu> Tue, 18 June 2013 02:49 UTC

Return-Path: <hgs@cs.columbia.edu>
X-Original-To: stir@ietfa.amsl.com
Delivered-To: stir@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 34A3D21E804E for <stir@ietfa.amsl.com>; Mon, 17 Jun 2013 19:49:44 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -5.899
X-Spam-Level:
X-Spam-Status: No, score=-5.899 tagged_above=-999 required=5 tests=[AWL=-0.500, BAYES_00=-2.599, J_CHICKENPOX_33=0.6, J_CHICKENPOX_52=0.6, RCVD_IN_DNSWL_MED=-4]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 93hlon9xJOCp for <stir@ietfa.amsl.com>; Mon, 17 Jun 2013 19:49:38 -0700 (PDT)
Received: from rambutan.cc.columbia.edu (rambutan.cc.columbia.edu [128.59.29.5]) by ietfa.amsl.com (Postfix) with ESMTP id 9B14011E80D3 for <stir@ietf.org>; Mon, 17 Jun 2013 19:49:38 -0700 (PDT)
Received: from [10.0.1.2] (c-98-204-176-168.hsd1.va.comcast.net [98.204.176.168]) (user=hgs10 mech=PLAIN bits=0) by rambutan.cc.columbia.edu (8.14.4/8.14.3) with ESMTP id r5I2nZ3s023987 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=NOT); Mon, 17 Jun 2013 22:49:37 -0400 (EDT)
Mime-Version: 1.0 (Apple Message framework v1283)
Content-Type: text/plain; charset="us-ascii"
From: Henning Schulzrinne <hgs@cs.columbia.edu>
In-Reply-To: <62BC978C-4C84-42CB-B1ED-C71209956B33@oracle.com>
Date: Mon, 17 Jun 2013 22:49:34 -0400
Content-Transfer-Encoding: quoted-printable
Message-Id: <417599D2-43FB-4B15-9B31-2C36E34AB2A8@cs.columbia.edu>
References: <CDDE44D8.D939%york@isoc.org> <4758E6F6-EDA5-4A11-9E94-42C97C03118E@cs.columbia.edu> <7D713C14-5B28-4BDB-8987-352CA00112EE@oracle.com> <4C2FC962-375E-4886-A15A-100E0031FE2D@cs.columbia.edu> <62BC978C-4C84-42CB-B1ED-C71209956B33@oracle.com>
To: Hadriel Kaplan <hadriel.kaplan@oracle.com>
X-Mailer: Apple Mail (2.1283)
X-No-Spam-Score: Local
X-Scanned-By: MIMEDefang 2.68 on 128.59.29.5
Cc: stir@ietf.org
Subject: Re: [stir] current draft charter - ENUM and databases
X-BeenThere: stir@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: Secure Telephone Identity Revisited <stir.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/stir>, <mailto:stir-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/stir>
List-Post: <mailto:stir@ietf.org>
List-Help: <mailto:stir-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/stir>, <mailto:stir-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 18 Jun 2013 02:49:44 -0000

On Jun 17, 2013, at 2:18 AM, Hadriel Kaplan wrote:

> 
> On Jun 16, 2013, at 5:39 PM, Henning Schulzrinne <hgs@cs.columbia.edu> wrote:
> 
>>> I mean ultimately some of us might want to actually implement the signing and verification into our systems.  If it uses public-key signatures, then we need a standardized protocol by which our systems can query for a certificate signed by some authority we trust for a given E.164 number.  If DNS tells us "go look over at FOO": then what standardized protocol does FOO use that we need to implement?
>> 
>> Wouldn't plain HTTPS do the trick, as in 4474?
> 
> Of course that's one possibility - my only point was we can't just make the solution be "have DNS refer to another database"; we have to specify what that referred-to database protocol would be so we can use it.  And if we're going to do that, then just stick that URL in the Identity-Info header and avoid DNS.  One of the advantages of the DNS proposal was the DNS would *be* the database access protocol, and we wouldn't need a URL in the Identity-Info header - we wouldn't even need the header at all.

In this split model, you could do a partial match, e.g., by country code and then use DDDS/ENUM-style translation to get the URL, e.g., starting with +1-202-555-1234

+1 translates to 

https://oldmoon.com/12025551234

NAPTR 10 100 "u" "E2U+https" "!^.*$!https:\1@oldmoon.com!"

(I'm not a DDDS expert, so this is likely wrong, but hopefully illustrates the idea.)

> 
> 
>> * Very small number of entities (1-10ish per country code) sign "public key X is entitled to use TN [range] A". The cert is conveyed in some proprietary fashion to the number holder, similar to how today's web CA's deliver certs to their customers. A single entity can have any number of public keys, if they want to obscure their number holdings or for operational reasons. Working group to-do: Define appropriate X.509 content for numbers.
> 
> The "magic" part of that which I was referring to was how a CA would know what entities are entitled to what TNs, and for which various country-codes.  For example, let's assume Thawte is a trusted CA for E.164's for +1 NANP... when some mom&pop "carrier" gets a number ported into them, how does the process work to get Thawte to agree that mom&pop now owns the ported number, and that the previous CA (if it's different) revokes it for its previous carrier?  When mom&pop get a number block, how does Thawte verify that?

I mentioned earlier the three models (single national regulator-sponsored CA, CA with delegation and proof-of-possession CA). You seem to refer to the third option, in which case we're back to the webPKI model of trusting a finite number of CAs, possibly with DANE-style assistance. I wouldn't rule out this option if others fail, but it may not be necessary or optimal in this case, given the properties of phone numbers. (Given the namespace issues, you'd then likely go back to having a single logical database to keep track of the CA for each number, run by a single trusted entity, which doesn't seem to buy you much decentralization.)

>> 
> 
> I'm not so sure.  If we actually use the literal URL to get the cert, then all the HTTPS servers have to be accessible to any querying device of any carrier in the World.  That doesn't scale if "access control" is involved and charging for it.  If we expect some service bureaus act as middlemen for this retrieval instead, to alleviate the headache of billing and access control between all carriers in the world, then we have to create some standard way for the devices in the carriers to talk to the middlemen and give them the URL for each call and get the cert or have the signature verified; and that's assuming that their particular middleman has a relationship with all databases in the World to access the URL, or else they too have to use a protocol to give the URL to another middleman, etc.

That's what CDNs are made for... The originating entity has an inherent interest in having the call go through. If my carrier charges a lot for access to my cert, and receiving carriers decide not to validate my number, I'm very likely to find an alternative (or complain to my national regulator or congressman; look up "rural call completion" if you don't think that call delivery doesn't get congressional attention.)


> The advantages of using the DNS as the repository for the cert data, instead of giving an HTTP URL in a header to get a cert from, are:
> 1) There's no header needed for carrying a URL.

Assuming we can all agree on a single, global DNS tree. That seems like a big "if" at the moment. I suspect we all agree at this point that we don't want to rule this out, so DNS seems like a good option to pursue as ONE option. Relying on this happening as the ONLY option seems risky, however. The operational coordination for certs and distributed retrieval databases seems lower - the number assignment entity simply has to somehow convey certs to a relative handful (dozens to low-thousands) of entities it already conveys data to today. ftp or mailing a USB stick will do in a pinch, if need be. No need to operate anything real-time.

I'm trying to lower the bar for deployment, with as little coordinated machinery as possible.


> 2) There's no need to worry about revocation, because the instant a number changes ownership, the DNS entry of its cert changes.
> 3) There're far fewer potential CAs to have to trust - ideally only one per country-code, the same one that's authoritative for its country-code branch of the DNS tree; and we'd be using DNSSEC so its cert is in the DNS, and it's the signer of its entries.  In fact you might be able to just have the raw public key in the DNS instead of the whole cert, because the rest of the DNSSEC-provided info is redundant with the stuff in a cert for this use-case.
> 4) It's generally faster, and with tighter client control for retransmit/timeout because it's UDP.

With caching, the data is likely very local either way.

> 5) For bigger carriers, they can have local DNS servers with copies of the frequently accessed data (e.g., local nation E.164s) that their verification systems can query.

Same for any other retrieval protocol, I suspect.

> 
> -hadriel
> 
>