Subject: [stir] Ben Campbell's Yes on draft-ietf-stir-rfc4474bis-15: (with COMMENT)

From: "Ben Campbell" <[email-masked]>
Date: Wed, 02 Nov 2016 16:38:29 -0700

Ben Campbell has entered the following ballot position for
draft-ietf-stir-rfc4474bis-15: Yes

When responding, please keep the subject line intact and reply to all
email addresses included in the To and CC lines. (Feel free to cut this
introductory paragraph, however.)

Please refer to https://www.ietf.org/iesg/statement/discuss-criteria.html
for more information about IESG DISCUSS and COMMENT positions.

The document, along with other ballot positions, can be found here:
https://datatracker.ietf.org/doc/draft-ietf-stir-rfc4474bis/

----------------------------------------------------------------------
COMMENT:
----------------------------------------------------------------------

Thanks for this work. I'm balloting  yes, but have a few minor comments
and questions:

Substantive:

- 6.2, step 4:  This says that if the full form of passport is included,
and the Date header and iat do not match, use iat if it is fresh. I'm
curious why not just use iat in the first place? What should one do if
Date is fresh, but iat is not?

-6.2.2: This section recommends specific result code reason phrases for a
couple of circumstances. I assume the idea is that one should use a
"helpful" reason phrase, and these are examples of phrases helpful for
the circumstances. But it reads as if you mean to standardize those
specific reason phrases.  If the intent is really to offer examples,
please clarify. I'd hate to see us back in the days of commonly seeing
SIP code break due to unexpected reason phrases.

- 7.2: The first sentence says verifiers must have a way to acquire and
_retain_ certificates. Why must they have a way to retain them? The last
paragraph in the section says they might wish to have a way to retain
certs, but doesn't seem to require it.

-- Is there any concern that the requirement to be able to dereference
effectively arbitrary URLs in "info" parameters could become a DOS attack
vector? E.g. info parameters that point to HTTP URIs that never respond,
respond very slowly, or return huge and/or corrupt certs?

-13.1 and 13.2: Is there a reason not to retarget the references in the
IANA entries for the Identity header field and for the error codes from
4474 to [RFCThis]?

Editorial:

- 4.1.1, example: I assume the backslashes indicate line folding for
documentation purposes only. It might be worth mentioning that.

- 6.1, step 4, last paragraph: Is the reference to section 9 mean that
section of _this_ document, or that section of stir-passport?

- 7.1, 2nd paragraph: It seems odd to use 2119 MUSTs in examples of
policies that authenticator services might have.

-8.1, third paragraph: s/exampple/example

---

From: Alexey Melnikov <[email-masked]>
Date: Thu, 3 Nov 2016 08:42:29 +0000

Hi Ben,
A couple of comments on your comments.

> On 2 Nov 2016, at 23:38, Ben Campbell <[email-masked]> wrote:
> 
> curious why not just use iat in the first place?

Good point.

> What should one do if

Then it might be a cut & paste attack.

> SIP code break due to unexpected reason phrases.

This essentially a better version of my comment.

---

From: "Peterson, Jon" <[email-masked]>
Date: Thu, 3 Nov 2016 14:16:38 +0000

>Then it might be a cut & paste attack.

That is the most material threat. But to the question of "why not use
what's in the JWT claims in the first place?" this is largely a
philosophical question about whether we want to use JWT as a check that
the SIP header field values are properly attested, or whether we want to
use SIP as a delivery vehicle for JWT and have its values be authoritative
instead of SIP's values. I guess I thought about this largely in terms of
how I want SIP user agents to behave: like, when it came to the
originating identity, did I want the SIP From header field value to kind
of cede its place to the value in the "orig" claim of JWT? I guess what I
want is for SIP user agents to render to users the value of the From
header field, and to use "orig" as a

>This essentially a better version of my comment.

Well, agreed on that last point. We can soften the language here. What we
wanted to do is to differentiate conditions that are signaled by the same
reason code, and to use new reason codes sparingly. The rough guideline I
use is that programmatic behavior has to trigger off the codes only, but
human behavior can rely on the reason phrases. We're not asking an
automaton to react to "Stale Date" or "Use Supported PASSporT Format," say.

Jon Peterson
Neustar, Inc.

---

From: "Ben Campbell" <[email-masked]>
Date: Thu, 03 Nov 2016 09:29:37 -0500

> header field, and to use "orig" as a

I'm okay with a general preference for Date, but does the issue of a 
stale iat but fresh date change that?

>
>>
>>> -6.2.2: This section recommends specific result code reason phrases 
>>> for
>>> a

Softening the language would make me happier. I note that elsewhere in 
this draft (and also in 4474), there are similar statements that use 
"For example,..."

---

From: Alexey Melnikov <[email-masked]>
Date: Thu, 03 Nov 2016 14:37:22 +0000

> this draft (and also in 4474), there are similar statements that use 

I would like this as well.