Re: [stir] Review of: draft-ietf-stir-rfc4474bis-10

"Peterson, Jon" <jon.peterson@neustar.biz> Sat, 13 August 2016 07:40 UTC

Return-Path: <prvs=1033b8ea68=jon.peterson@neustar.biz>
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 9141212D093 for <stir@ietfa.amsl.com>; Sat, 13 Aug 2016 00:40:39 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -102.701
X-Spam-Level:
X-Spam-Status: No, score=-102.701 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001, USER_IN_WHITELIST=-100] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=neustar.biz
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 gZ4crFMluoOV for <stir@ietfa.amsl.com>; Sat, 13 Aug 2016 00:40:33 -0700 (PDT)
Received: from mx0b-0018ba01.pphosted.com (mx0b-0018ba01.pphosted.com [67.231.157.90]) (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 D8CB512D096 for <stir@ietf.org>; Sat, 13 Aug 2016 00:40:32 -0700 (PDT)
Received: from pps.filterd (m0049401.ppops.net [127.0.0.1]) by m0049401.ppops.net-0018ba01. (8.16.0.17/8.16.0.17) with SMTP id u7D7Y0FI004228; Sat, 13 Aug 2016 03:40:29 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=neustar.biz; h=from : to : subject : date : message-id : references : in-reply-to : content-type : mime-version; s=neustar.biz; bh=RxiRVXQTKKHWjl0hLSf9eHHN5HyMmD399GecrEHCSNQ=; b=feroMyyYe+bFnkcM5lpm94S/7pLV7Y26pa0U5jdNg1O8qloCgpXHJnzsFLiMK8li2LQb Q9lvvfD8YYdOe/puBs7cYjf8pEjOJWqfQ0LHAc1nqM33CKCOWOWun96JkcHWd6JX41lp VsNtzJ2fBdR5YbO/XDnOdAJGIyfe8tfnuGVuUkDuSBjLPRWHDgYHfIok046zHGvqKXrj +2/pcbShHYj0O94Zpc4m2jUkjPNzLZOsAiDqPp+IbSj8urokVOD0SqG3ap7oCj0eQCv9 SdJXMYiHmIXWccwF2QH3/5gN+azcMsHv7lIYA51a/gN0AjdDWR8ggQIGqPygFDJWxhZZ Cw==
Received: from stntexhc12.cis.neustar.com ([156.154.17.216]) by m0049401.ppops.net-0018ba01. with ESMTP id 24qm989c42-1 (version=TLSv1 cipher=AES128-SHA bits=128 verify=NOT); Sat, 13 Aug 2016 03:40:28 -0400
Received: from STNTEXMB10.cis.neustar.com ([169.254.5.94]) by stntexhc12.cis.neustar.com ([::1]) with mapi id 14.03.0279.002; Sat, 13 Aug 2016 03:40:25 -0400
From: "Peterson, Jon" <jon.peterson@neustar.biz>
To: "stir@ietf.org" <stir@ietf.org>, "dcrocker@bbiw.net" <dcrocker@bbiw.net>
Thread-Topic: [stir] Review of: draft-ietf-stir-rfc4474bis-10
Thread-Index: AQHR8fCmKQLsUYw9dka3+jdXHWkJhKBGVbYA
Date: Sat, 13 Aug 2016 07:40:24 +0000
Message-ID: <D3D41210.1A72E4%jon.peterson@neustar.biz>
References: <c3a85ffc-8340-ac54-4d8e-21a16fefd032@dcrocker.net>
In-Reply-To: <c3a85ffc-8340-ac54-4d8e-21a16fefd032@dcrocker.net>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator:
user-agent: Microsoft-MacOutlook/14.6.3.160329
x-originating-ip: [10.96.12.59]
Content-Type: multipart/mixed; boundary="_002_D3D412101A72E4jonpetersonneustarbiz_"
MIME-Version: 1.0
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:, , definitions=2016-08-13_05:, , signatures=0
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 suspectscore=0 malwarescore=0 phishscore=0 adultscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1604210000 definitions=main-1608130090
Archived-At: <https://mailarchive.ietf.org/arch/msg/stir/dkWdY3AEm2HIP9x6117oJO9ji9s>
Subject: Re: [stir] Review of: draft-ietf-stir-rfc4474bis-10
X-BeenThere: stir@ietf.org
X-Mailman-Version: 2.1.17
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: <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, 13 Aug 2016 07:40:39 -0000

I finally had a chance to go through these comments, and I did want to
provide a few responses on Dave's review of rfc4474bis here.

>Taken on its own and also when taken with its companion documents, the
>specifications are confusing and incomplete.  It is quite far from being
>ready for publication.

Having looked through Dave's specific concerns, I don't think he makes his
case for this criticism.

>Terminology is used inconsistently. It often is introduced with no
>background or citation.  Many uses of 'header' are probably supposed to
>be 'header field'.  My sense is that quite a bit of terminology is used
>equally loosely.

I think the use of terminology in the specification has proper background
and citations. Certainly Dave is correct that the text is pretty lax with
"header" vs. "header field" vs. "header field value," no denying that. If
people think this is a big deal, I will fix it. But the suggestion that
because this is true, terminology is loosely used to a point where it
would hamper implementation, that I think his comments don't really
substantiate.

>There is no integrative architectural description, so the reader has
>difficulty understanding what all of the pieces are or how they fit
>together.  In fact is appears that the document itself gets confused on
>this matter.

I'm not sure what an "integrative architectural description" would entail,
but there are a number of sections that provide overviews of operations
and related examples of how the architectural piece come together. I don't
think anything in the review comments genuinely substantiates that the
document itself is confused about its own architecture.

>Algorithms are all offered only as prose and often in a form mitigating
>comprehension, such as tending towards negation or disjunction, which
>humans process less well than affirmatives and conjunctions. From what I
>can tell, the algorithms often are incomplete, but serious analysis is
>difficult.

Algorithms are offered in steps with normative language, if that's what
you mean by "prose form". RFCs are typically composed of prose. The review
does reveal some very striking views about specmanship and algorithms in
particular which are foreign to my experience in the IETF.

>The documents appear to rely on a reader's having quite a bit of prior
>knowledge and are certainly not usable by an implementer who is not
>already deeply embedded in the community that produced these
>specifications.  My impression is that being embedded won't suffice
>either, both from my assessment of the documents' deficiencies and given
>back-channel comments I have heard about the expectation of the work to
>be done after these specifications are published.

We do expect basic SIP literacy, and a willingness to follow references
and read external specifications and sections that are cited. Readers that
are unwilling to do this will probably find a lot of things confusing in
there.

>Overall, the writing impedes comprehension and the document needs a very
>diligent pass by a technical editor.  I suspect this will uncover quite
>a number of semantic deficiencies in the text.

You did catch some good typos, and I caught a few more following your
notes through the text. I'm not sure that yielded the semantic
difficulties you speculate about here though.

>There is a possible tendency to support more alternative behavior than
>appropriate. Successful interoperability usually benefits from fewer
>choices, not more.  Common, mandatory canonicalization is an example.

Common, mandatory canonicalization of telephone numbers is unfortunately
only slightly more reliable than common, mandatory normalization of
internationalized domain names. At least it's just numbers. The algorithm
we have is good enough to cover the common operational case, and where it
fails, hopefully "canon" will help to close the gap.

>Credentials: the specification neither defines nor references a standard
>for the specification of credentials, here.  That means that the
>technical details -- as distinct from the operational policies -- of
>credentials are out of scope, although they are fundamental to proper
>operation of this serve.  This is a showstopper, in terms of
>specification completeness for the service.

Well, it does reference a standard for the specification of credentials:
stir-certs. I agree it would be a showstopper if we didn't have the
stir-certs work.

>How is the recipient to know what credential 'standard' is used?  How
>does this ensure interoperability between two participants who have not
>interacted before?

There is in practice only one at the moment. I'm content to worry about
interop problems when we have another one.

>At base, these specifications appear intended to roughly chart out a
>system structure, leaving most of the difficult work for later and
>elsewhere.  By way of example, there are few if any cross-organization
>key management services on the Internet that demonstrate the utility
>needed here.  I am pretty sure that Web certs don't qualify.  We know
>that DKIM's operation does, of course.  However DKIM strictly uses
>domain names as identifiers and they conveniently align with their
>administrative authorities, whereas telephone numbers do not...

I'd say that, by design, rfc4474bis is pretty tightly confined to
specifying the SIP over-the-wire protocol behavior. It takes a lot of spec
just to do that. 

And your praise of DKIM as a model is once again noted. I would respond
again that we are unlikely to abandon our years of work on this mechanism
and switch to DKIM at this point, no matter how many comments you place in
our path.

>      [[[ The mailing list just had an extensive regurgitation of
>critical commentary about ENUM.  What appears to be getting missed is
>that whatever mechanism is going to be used for finding and validating
>keys is going to have no operational history of reliability, safety or
>efficacy. ]]]

HTTP has none of those qualities, apparently.

>There is remarkably little of the original RFC 4474 substance still in
>this document.  Calling it a bis is a bit like tearing all of a building
>except its fireplace or its front door and calling that a remodeling.
>The previous document does not have an installed base, so I strongly
>suggest removing all references to it.  It will allow some of the text
>to be notably simpler and clearer.

I think enough of the concepts and protocol mechanisms of the original are
retained to warrant keeping this as a bis.

>The document is heavy with forward references.  These force the reader
>to stop what they are in the middle of, try to hold that place, and look
>forward to understand what they've just been interrupted from reading.
>As a literary style, forward references create useful tension.  In
>specifications they just interrupt the flow.  The document should be
>reorganization so that integrative text comes /after/ the text
>describing the pieces being integrated.  And opening overview, design
>summary, or the like can give a non-normative description of the
>architecture and the service, so the reader has a basic sense of the big
>picture, before diving into the detail of those to-be-integrated pieces.


Dave does make a number of organizational suggestions about the spec. The
spec has an overview, a design summary, before it gets down to specifying
things. The virtue of the "integrative" approach he describes is however
unclear to me. I think whether you define the auth service behavior first
or define the header syntax first, one of those sections is going to end
up pointing to the other. There wasn't much in his reorg suggestions that
seemed to me like a substantial improvement.

Overall, there are a handful of changes (beyond the typos, which again are
appreciated) I'd make based on the substance of Dave's review. Some of the
suggestions to rename sections seem harmless to me. Like some other people
who come to mind, he would like to see some more precise specification and
examples of how you break off the signature from JWT. He pointed out that
we really don't have any motivation for including multiple Identity
headers in there, and we probably do need an indication of what future
work might use that feature.

In terms of topics for discussion that might warrant the attention of the
working group, he did suggest we need to be sure we think the scope of the
signature is correct, and that we have enough confidence that
intermediaries won't break it, and that when it is broken, the verifier
behavior makes sense. I think we've focused a lot of attention on those
questions, but I'm happy to talk more about that if people think there's
room for improvement.

Also, he suggests that we might need a better pointer than RFC3986 Section
6.2.2 for URI normalization procedures. If anyone (including Dave!) knows
of one, I'd be happy to cite it instead.

Otherwise, I think we've got this covered. Anyone who's interested in
further details can see the attached.

Jon Peterson
Neustar, Inc.