Re: [stir] Comments on draft-ietf-stir-passport-divert

"Peterson, Jon" <jon.peterson@team.neustar> Wed, 17 April 2019 23:19 UTC

Return-Path: <prvs=30107acb82=jon.peterson@team.neustar>
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 8E0F012004C; Wed, 17 Apr 2019 16:19:54 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.338
X-Spam-Level:
X-Spam-Status: No, score=-1.338 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, KHOP_DYNAMIC=1.363, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=no autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=team.neustar
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 f1HFnzf57Vfj; Wed, 17 Apr 2019 16:19:53 -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 E01561200FC; Wed, 17 Apr 2019 16:19:52 -0700 (PDT)
Received: from pps.filterd (m0078668.ppops.net [127.0.0.1]) by mx0b-0018ba01.pphosted.com (8.16.0.27/8.16.0.27) with SMTP id x3HN4FoY031979; Wed, 17 Apr 2019 19:19:48 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=team.neustar; h=from : to : subject : date : message-id : references : in-reply-to : content-type : content-id : content-transfer-encoding : mime-version; s=selector1; bh=PRwX9KvNvjWjpezRcpvWtGtmO9f9hWFOSH+8RSUoRms=; b=oKAG2jppVUQUnK+erD5xfgs1xkPDOtO7fTTYuOxLCOjiaNadufJRuak/OTiIGwCsVvgf e6bU2SUoipCgkTvWafo6Fst7qNCj91d8xOV8ZovuU4mFUrhYEyOdyWrdqwqqa+wiz+A3 XKln+HgvWk1pLornR8OABDxx2XLMamDAJ9dzDdxmHysrHVWaQAooCrQDqWWuL52rkl5N Rsv/ZHRG8AxAYE8ZKc/SHK+uJGBepqysxLyAMLo6jnd7iMl9fNgYKNt6c574gB+3niRc TDAZk20BKL6sDelM32cmcBi6Kf2e+XiNXyqNbwc/L/gyCY2fcYTeys2JzHAMBr+zYmZh bg==
Received: from stntexhc10.cis.neustar.com ([156.154.17.216]) by mx0b-0018ba01.pphosted.com with ESMTP id 2ruajnamjg-1 (version=TLSv1 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NOT); Wed, 17 Apr 2019 19:19:48 -0400
Received: from STNTEXMB101.cis.neustar.com ([fe80::a831:d3b4:fb4e:e45b]) by stntexhc10.cis.neustar.com ([10.31.58.69]) with mapi id 14.03.0439.000; Wed, 17 Apr 2019 19:19:47 -0400
From: "Peterson, Jon" <jon.peterson@team.neustar>
To: Ben Campbell <ben@nostrum.com>, "stir@ietf.org" <stir@ietf.org>, "draft-ietf-stir-passport-divert@ietf.org" <draft-ietf-stir-passport-divert@ietf.org>
Thread-Topic: Comments on draft-ietf-stir-passport-divert
Thread-Index: AQHU7jUNEBUmNdYE9kOEtQjeT39aGKZA2WIA
Date: Wed, 17 Apr 2019 23:19:46 +0000
Message-ID: <784362B3-7E75-4C43-A618-371AF935D7C7@team.neustar>
References: <CB96AAE5-2220-4ECB-A45D-C5E1CD3A9071@nostrum.com>
In-Reply-To: <CB96AAE5-2220-4ECB-A45D-C5E1CD3A9071@nostrum.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
user-agent: Microsoft-MacOutlook/10.10.8.190312
x-originating-ip: [10.96.12.236]
Content-Type: text/plain; charset="utf-8"
Content-ID: <B91CB838131391469EB0BF6FE5B67437@neustar.biz>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:, , definitions=2019-04-17_11:, , signatures=0
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 malwarescore=0 suspectscore=0 phishscore=0 bulkscore=0 spamscore=0 clxscore=1011 lowpriorityscore=0 mlxscore=0 impostorscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1810050000 definitions=main-1904170145
Archived-At: <https://mailarchive.ietf.org/arch/msg/stir/VE8Oy7wp59BgrAO2beYaV5hTdRQ>
Subject: Re: [stir] Comments on draft-ietf-stir-passport-divert
X-BeenThere: stir@ietf.org
X-Mailman-Version: 2.1.29
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: Wed, 17 Apr 2019 23:19:55 -0000


Thanks for the comments, Ben. A few notes below.    
    
    *** Substantive Comments ***
    
    §4.2:
    
    - What happens if a “div” passport chains back to a PASSporT object with an unknown “ppt” value? Is the answer the same if the offending ppt occurs at the innermost PASSporT vs in the middle of the chain? (That is, is there any possibility of traversing a ppt of unknown type when verifying the chain?)

<Jon>If you can't validate the innermost PASSporT in a chain, validation of that chain fails for you. I can put in specific text about the innermost if that is helpful; all of ones in the middle of the chain, though, should be of ppt "div", though, so I'm not sure there really is any possibility of traversing a PASSporT of unknown type in the middle of the chain.</Jon>
    
    - "The verification service SHOULD also verify
    that all other "div" PASSporTs in the chain share the same "orig"
    value.”
    
    What is the benefit of doing this? What would be the consequences of not doing it? What would be reasonable behavior if the verifier discovered a non-matching orig? (And depending on the answers: Why not MUST?)

<Jon>Yeah, it seems kind of belt-and-suspenders to do make verification services do it, which is why I'm fence-sitting a little. It's kind of hard to imagine what the non-matching orig-in-the-middle case would be, or how it could be exploitable for some sort of attack. If there were a non-matching orig, but the dests chained properly otherwise, it's unclear what vulnerability that could expose. I guess I'd be comfortable moving it to a MUST, just for the sake of being paranoid - in ordinary operations, it should always be true.</Jon>
    
    - "It
    is furthermore RECOMMENDED that the verification service check
    that the "iat" field of the innermost PASSporT is also within the
    date freshness interval; otherwise the verification service could
    allow attackers to replay an old, stale PASSporT embedded in a
    fresh "div”.”
    
    Why is this not a MUST? Do you envision situations where it would be reasonable not to comply?

<Jon>This would be a case where a call got bounced around just a ton by redirection, into call parking or something. The date freshness interval is a matter of local policy in 8224, it is just RECOMMENDED that it be sixty seconds. I'm just keeping this at around the same normative level.</Jon>
    
    - "PASSporT. Note
    that (per Section 4.1) a chain may terminate at more than one
    innermost PASSporT, in cases where a single "div" is used to
    retarget from multiple based PASSporTs.”
    
    What happens if some of the terminating PASSporTs fail verification but others succeed?

<Jon>In the baseline STIR philosophy, if an INVITE arrives with 5 Identity headers, and 4 of them fail, that's fine, you can use the 5th. The authorization decisions here are, again, a matter of local policy, but if you have at least one PASSporT that has a valid signature from a cert that you trust, you can pass that validation info to the application. This is really intended to cover cases where, say, there are multiple trust anchors in play, and maybe you trust certs issued by one of them but not the others; or cases where someone along the way has a borked implementation but the other ones are okay, things like that. The implication for multiple chains is that you trust chains that work and ignore ones that don’t.</Jon>
    
    §6:
    
     Is “opt" intended for general purpose use? If so, I suggest splitting it out into a separate draft. “Div" seems like a strange place to hide it.

<Jon>It's only here because "div-o" defines it and uses it.</Jon>
    
    Is there a hard 3 letter limit for passport parameter names? “opt” seems rather non-mnemonic due to the collision with the plain English word.

<Jon>Heh, no, we're just following the convention in the JWT Claim Registry, though as a convention, if you look it up in IANA, it is honored more in the breach than the observance... If this really causes any heartburn I can change it.</Jon>
    
    §11: Are there scenarios wheret the original destination in a diverted call could be privacy sensitive?
    
<Jon>It is probably worth having some Privacy Considerations sort of text about that. The short answer is that it is a trade-off in mechanisms like this (History-Info is the same way) that you can expose something like the service logic involved in routing the call to the terminating side. Whether we should really consider that a "privacy" risk is a bit hard to say, because it is in ordinary operations information about the routing policy of the called party being exposed to the called party - and if it isn't, for some reason, and calls are being forwarded involuntarily to the ultimate called party, it seems like the ultimate called party might be entitled to know about it. But it's probably worth talking about.</Jon>

<Jon>Nits below are appreciated, one clarification.</Jon>
    
    *** Editorial Comments and Nits ***
    
    - There are some minor complaints from IDNits that should be addressed prior to pubreq.
    
    - Please expand the following acronyms:
    
    PASSporT (in title, abstract and body)
    JWT
    STIR
    
    §1:
    - "practically speaking some operational environments do alter the
    To header field”
    That may be a bit of an understatement. Perhaps “some” should be “many”?
    
    - "and they both can capture minor syntactical changes in
    URIs that do not reflect a change to the actual target of a call.”
    
    I’m not sure what “capture” means in this contexrt. Are we talking about otherwise unnecessary H-I entries due to semantically equivalent but syntactically different URIs?

<Jon>Yes. I gather I should be a little more clear.</Jon>
    
    §2: Is there a reason not to use the updated boilerplate from RFC8174?
    
    §4.2: It seems early in the evolution of STIR to call base verification services “traditional” :-)