Re: [stir] Review of: draft-ietf-stir-passport-05

Dave Crocker <dhc@dcrocker.net> Sat, 30 July 2016 13:04 UTC

Return-Path: <dhc@dcrocker.net>
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 D1BD512D137 for <stir@ietfa.amsl.com>; Sat, 30 Jul 2016 06:04:09 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.107
X-Spam-Level:
X-Spam-Status: No, score=-1.107 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RDNS_NONE=0.793] autolearn=no autolearn_force=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 2odb2SuWUdDW for <stir@ietfa.amsl.com>; Sat, 30 Jul 2016 06:04:09 -0700 (PDT)
Received: from simon.songbird.com (unknown [72.52.113.5]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 4DC7512B029 for <stir@ietf.org>; Sat, 30 Jul 2016 06:04:09 -0700 (PDT)
Received: from [192.168.1.168] (76-218-8-128.lightspeed.sntcca.sbcglobal.net [76.218.8.128]) (authenticated bits=0) by simon.songbird.com (8.14.4/8.14.4/Debian-4.1ubuntu1) with ESMTP id u6UD4omh003232 (version=TLSv1/SSLv3 cipher=DHE-RSA-CAMELLIA256-SHA bits=256 verify=NOT); Sat, 30 Jul 2016 06:04:51 -0700
To: Christer Holmberg <christer.holmberg@ericsson.com>, "Peterson, Jon" <jon.peterson@neustar.biz>
References: <07e0eb16-6758-cdf1-c571-1f1ed768e741@dcrocker.net> <D3C152B2.1A69BA%jon.peterson@neustar.biz> <b096b541-c8af-9617-c9d7-5a1beb5230e8@dcrocker.net> <D3C16040.1A6A09%jon.peterson@neustar.biz> <d66d91f0-9ea2-6295-e749-e48ea37b4892@dcrocker.net> <D3C19686.1A6A4E%jon.peterson@neustar.biz> <dd60178b-fa24-5099-166c-f8a0093cb668@dcrocker.net> <7594FB04B1934943A5C02806D1A2204B476FE6CB@ESESSMB209.ericsson.se>
From: Dave Crocker <dhc@dcrocker.net>
Organization: Brandenburg InternetWorking
Message-ID: <7f35b810-0eca-5140-060e-4aef03449c21@dcrocker.net>
Date: Sat, 30 Jul 2016 06:03:56 -0700
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.2.0
MIME-Version: 1.0
In-Reply-To: <7594FB04B1934943A5C02806D1A2204B476FE6CB@ESESSMB209.ericsson.se>
Content-Type: text/plain; charset="windows-1252"; format="flowed"
Content-Transfer-Encoding: 7bit
Archived-At: <https://mailarchive.ietf.org/arch/msg/stir/I9fW0ZCG_Qf3yy2s1FiBJ9h7CDA>
Cc: IETF STIR Mail List <stir@ietf.org>
Subject: Re: [stir] Review of: draft-ietf-stir-passport-05
X-BeenThere: stir@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
Reply-To: dcrocker@bbiw.net
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: <https://mailarchive.ietf.org/arch/browse/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: Sat, 30 Jul 2016 13:04:10 -0000

Christer,

Thanks for the background...

On 7/30/2016 4:30 AM, Christer Holmberg wrote:
> I am the one who originally suggested the usage of JWT. I don't
> understand the claim that JWT is "outside the context of SIP". JWT is a
> generic/standardized mechanism how to calculate and encode a signature,

Actually, it isn't.

It's own opening text [RFC 7519] says it is "a compact, URL-safe means 
of representing claims to be transferred between two parties" but more 
importantly for this issue, it goes on to say:

    "encoded as a JSON object that is used as the payload of a JSON
    Web Signature (JWS) structure or as the plaintext of a JSON Web
    Encryption (JWE) structure"

That is, it provides value-added functions... to a JSON object 
(structure).  However SIP doesn't have a JSON object to sign.  So the 
working group has had to invent a JSON-based abstraction of SIP header 
information and then sign it.

Now it has to invent an encoding for the resulting signature.  It would 
have to do that for a SIP call, no matter the signature's computational 
abstraction, but because that abstraction is actually an independent 
format, it wound up distracting the wg from doing a complete job -- so 
far, after 3 years -- of defining all the details for a complete 
authentication mechanism.

 From what I can tell of the email record for the wg, the unfortunate 
part of the discussion about choices here was to count JSON/JWT as 
something other than an abstraction.

Signing an object requires defining the data over which the signature 
will be made, and how that data will be fed into the signing algorithm. 
Necessarily, that defines an abstraction of the data.  (Canonicalization 
seems to be a common component of that abstraction, for example.)

There might be nothing different or better (or, probably, worse) about 
JWT in those terms; I haven't tried to evaluate it in those terms.  The 
problem is that its existence as a distinct format has caused the 
working group to worry about that new and independent object as distinct 
from the SIP data being signed, rather than as a computational result 
that then needs to be stored into the SIP header.  So all of the 
discussion about what to do with the JWT object is additional wg 
overhead and, IMO, a complete distraction for the primary task of the 
working group.  (My guess is that there is also added overall system 
complexity, but I won't press that concern, at this point.)

Arguments that it's a general mechanism for use in other aspects of this 
space are always appealing. However they are, so far, without merit in 
the working group context: There are no specifications for any of those 
other uses.

And the wg still hasn't resolved the very basic and very essential step 
of putting the signature into the SIP header.



>      If we would NOT use JWT we would
> probably have to define more STIR-specific procedures regarding the
> calculating/encoding of the signature ourselves. It's better to use a
> standardized mechanism in my opinion.

Well, yeah, I thought/think that too, which was why I originally 
suggested adapting DKIM. (DANE might be another relevant choice.)  DKIM 
offers an extremely high point of departure for SIP header signing.  The 
continued lack of complete specification details about use with SIP 
demonstrates that JWT doesn't.


> I am also the one who raised the encoding issue in Berlin. But that was
> not related to the usage of JWT as such, but to the fact that we don't
> carry the encoded JWT object in one piece in the SIP message. We "split"
> the object into two pieces, and carry one piece as the Identity header
> field value, and the other piece as the canon header field parameter
> value.

Right.  And the point I'm raising is not about the details of that 
choice but the fact that it still hasn't been made at this very late 
stage.

Besides merely being a missing, essential bit of system specification, 
it suggests that the wg is still not completely clear about the concrete 
use of this capability.


d/
-- 

   Dave Crocker
   Brandenburg InternetWorking
   bbiw.net