[stir] Thoughts on draft-ietf-stir-passport-rcd-04

Eric Burger <eburger@standardstrack.com> Sun, 21 July 2019 21:17 UTC

Return-Path: <eburger@standardstrack.com>
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 5671812016F for <stir@ietfa.amsl.com>; Sun, 21 Jul 2019 14:17:56 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.89
X-Spam-Level:
X-Spam-Status: No, score=-1.89 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, T_SPF_PERMERROR=0.01] autolearn=ham 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 cmgm1Mgbj5jS for <stir@ietfa.amsl.com>; Sun, 21 Jul 2019 14:17:54 -0700 (PDT)
Received: from biz221.inmotionhosting.com (biz221.inmotionhosting.com [198.46.93.79]) (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 43891120098 for <stir@ietf.org>; Sun, 21 Jul 2019 14:17:54 -0700 (PDT)
Received: from [31.133.149.60] (port=50243 helo=dhcp-953c.meeting.ietf.org) by biz221.inmotionhosting.com with esmtpsa (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.92) (envelope-from <eburger@standardstrack.com>) id 1hpJDM-000Hnk-Jt for stir@ietf.org; Sun, 21 Jul 2019 14:17:54 -0700
From: Eric Burger <eburger@standardstrack.com>
Content-Type: multipart/signed; boundary="Apple-Mail=_289B9AA7-9F94-4F55-9100-F45F55F6EB41"; protocol="application/pgp-signature"; micalg="pgp-sha256"
Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.11\))
Message-Id: <2B86E91D-EE12-44D6-A4BD-5CB843ECB33F@standardstrack.com>
Date: Sun, 21 Jul 2019 17:17:50 -0400
To: stir@ietf.org
X-Mailer: Apple Mail (2.3445.104.11)
X-OutGoing-Spam-Status: No, score=-0.5
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname - biz221.inmotionhosting.com
X-AntiAbuse: Original Domain - ietf.org
X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
X-AntiAbuse: Sender Address Domain - standardstrack.com
X-Get-Message-Sender-Via: biz221.inmotionhosting.com: authenticated_id: eburger+standardstrack.com/only user confirmed/virtual account not confirmed
X-Authenticated-Sender: biz221.inmotionhosting.com: eburger@standardstrack.com
X-Source:
X-Source-Args:
X-Source-Dir:
Archived-At: <https://mailarchive.ietf.org/arch/msg/stir/H-ufIBjbsZCuB8revDk3sw58fKU>
Subject: [stir] Thoughts on draft-ietf-stir-passport-rcd-04
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: Sun, 21 Jul 2019 21:18:00 -0000

General:
The draft talks about “personal communications.” Is there anything ‘personal’ about the mechanism? Is there anything in the mechanism informed by the communications being personal? I was under the belief the main use case for this mechanism was enterprise communications. Am I mistaken?

General security issue:
Why would a terminating provider do a dip driven by the originator?
Why would we let a random caller ask a UAS to fetch a random URI? Issues here include:
 - Tracking
 - Malware
 - Detecting user presence (e.g., ignored a call that fetched the ‘logo’, versus blocked, versus …)

Section 3.2: icn
See general security issue above

Section 3.3: inf
See general security issue above, only multiplied because now we are interpreting generic HTML

Sections 3.4 / 3.5: jcd / icl
If I get both a jcd and a jcl, MUST I reject the call? If not, forever why not?
jcl has the general security issue.
Why not just have jcd as the mechanism?

Section 4.1: rcdi SHOULD vs MUST
Eric’s SHOULD construction is usually SHOULD X UNLESS Y, which by De Morgan’s theorem is better stated If Y MUST X.
Why is rcdi stated as “If the application requires integrity .. the rcd claim SHOULD …” as opposed to “If the application requires integrity .. the rcd claim MUST …” In plain English, the current wording says “If the application requires integrity, it really does not.”

Also, I think that requiring rcdi would help caching content, as one would not need to fetch anything to note the sender says the content is identical to the last time you saw it with the same rcdi.

Section 4.1: algorithms
Why do we list three hash algorithms to pick from? Unless there is a very compelling reason, please pick one. Having three mandatory to implements is begging for interoperability failure. If not interoperability failure, by increasing lines of code and code complexity, this is guaranteeing less secure code.

Section 4.1.1:
True curiosity on my part: since we’re using JWT, which preserves octet format of the source, why do we need to marshal anything? What does that buy us?

Section 6:
Since a jCard can have the logo, what is the value of a different icn claim? Why not just say the claim is a jCard?

Section 7:
Given the current state of third-party CNAM databases is a well-known source of evil, I’m wondering why we are not learning from the past and asking to recreate it now? I’m not doing a dig at one of the author’s affiliations: they are one of the (few? only?) CNAM database operators that is not on the take. However, there are a ton of much less expensive operators with less clear morals. In the world of Shockey’s Law, why would we go there again? Given the “present company excepted” nature of the comment, perhaps emphasizing the mechanism (does! yay!) have ways of rooting out bad actors will explain to the lay reader (or regulator) why third-party rcd is not evil squared.

While we’re there, we might note that the reason we say “*add* an Identity header” is this mechanism has the potential to be a MITM attack (by design). One could expect certain jurisdictions to ban wholesale replacement of the Identity header. However, that is beyond the scope of the IETF. On the other hand, it is why a third-party should not expect to replace the original Identity header if present or masquerade as putting on an original Identity header.

This really comes out in…

Section 10.1:
I would make clear there is no implicit trust in the veracity of the claims in an rcd. Unless the verification service has some reason to trust the claims, the claims are purely for entertainment purposes only.

Some reasons to trust the claims include, but are not limited to:
 - Business relationships between the rcd attester and verifier
 - Regulatory enforcement (e.g., the CSP is in a jurisdiction where lying has severe penalties)
 - Everything in the 3rd-party rcd attestation happens to line up with 1st-party signed attestations (e.g., name)


There are also a few typos. I’ll be happy to hand whomever wants them at the STIR WG meeting.