Subject: [Insipid] Mirja Kühlewind's No Objection on draft-ietf-insipid-logme-marking-12: (with COMMENT)

From: Mirja Kühlewind <[email-masked]>
Date: Mon, 13 Aug 2018 09:24:06 -0700

Mirja Kühlewind has entered the following ballot position for
draft-ietf-insipid-logme-marking-12: No Objection

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-insipid-logme-marking/

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

A couple of quick comments/questions:

1) How do you know that both endpoints are "log me" enabled? I guess because of
the requirement that all messages of a dialog must have the marker, you cannot
just add it and see if the other end is able to apply it to its responses...?

2) Sec 3.2: "firstly because it is configured to
   do so, or secondly because it has detected that a dialog is being
   "log me" marked, causing it to maintain state to ensure that all
   requests and responses in the dialog are similarly "log me" marked."
I was first quite confused by this sentence because I though the second case
meant that intermediates needs to ensure that all messages are marked
correctly. However, I guess the second case is when the other ends is
configured to do marking, one needs to reply with the marking as well. I think
I was mainly confused by the word "detects". Maybe it's worth to further
clarify this sentence...?

3) Section 4.6 feels a little misplace but I not sure where it belong otherwise
(maybe section 3 or 5?). Or maybe move section 4.5 in an own section later in
the doc...?

4) Also Section 4.6: "It MUST NOT forward the "log me" marker"
Does it mean an intermediate MUST remove the marker if an error is detected? Is
that safe given the proxy scenarios? If at all I would recommend to use MAY
here, I guess...

5) Sec 8.1.:
"An end user or network administrator MUST give permission for a
   terminal to perform "log me" marking in the context of regression
   testing or troubleshooting a problem. "
and
"The configuration of a SIP intermediary to perform
   "log me" marking on behalf of a terminal MUST be authorized by the
   network administrator."
I'm actually not sure what these normative sentences mean for an
implementation. Is this maybe rather "An implementation MUST provide a
configuration to active logging and logging MUST be disabled by default."?

6) Section 8.2:
"If SIP requests and responses are exchanged with an external network
   with which there is no agreement to pass "log me" marking, then the
   "log me" marking is removed."
Should this be normative, maybe:
"If SIP requests and responses are exchanged with an external network
   with which there is no agreement to pass "log me" marking, then the
   "log me" marking SHOULD be removed at the network border."
Or MUST?

7) Also a related question: Should a network perform ingress filtering/removal
of "log me" markers?

8) Nit:
Sec 2: I guess the following sentence was coped and pasted from RFC8123 and
should be removed for this doc: "Rather than describing interoperability
   requirements, they are used to describe requirements to be satisfied
   by the "log me" marking solution."

---

From: "Arun Arunachalam (carunach)" <[email-masked]>
Date: Tue, 14 Aug 2018 14:51:51 +0000

Hi Mirja,

Thanks for taking the time to review and sharing feedback!

Please see inline.

On Aug 13, 2018, at 12:24 PM, Mirja Kühlewind <[email-masked]<mailto:[email-masked]>> wrote:

1) How do you know that both endpoints are "log me" enabled? I guess because of
the requirement that all messages of a dialog must have the marker, you cannot
just add it and see if the other end is able to apply it to its responses…?

It is not possible for the originating endpoint to determine whether the terminating endpoint or intermediary supports “log me” prior to setting up a dialog.

If the originating endpoint sent an INVITE with logme marker and received a provisional or final response with logme marker then it can infer that one or more of the intermediaries in the call signaling path (or) the terminating endpoint supports "log me".

clarify this sentence…?

We can rephrase as:

   A user agent or intermediary adds a "log me" marker in an unmarked
   request or response in two cases: firstly because it is configured to
   add the marking to a dialog-creating request, or secondly because it has
   received a dialog-creating request that is being "log me" marked, causing it to
   maintain state to ensure that all requests and responses in the dialog are
   similarly "log me" marked.

the doc…?

We added "4.6 Error Handling” under Section 4 since this section talks about endpoint and intermediary behavior. Error handling needs to be implemented in SIP entities, and we could reword the beginning of 4.6. to: "The two error types that SIP entities must handle are defined in Section 5, a missing marker error and an error of "log me" marking that begins mid-dialog."

Or if needed, we could move it as first part of Section 5 and rename this section as "5. Error Handling” and make “5.1 Error cases” as a sub-section.

Please let us know your preference.

here, I guess…

If the proxy is logme aware then it is expected to remove logme marker in error scenarios. It is safe to remove. The objective is to stop the propagation of incorrect marking as soon as possible.

5) Sec 8.1.:
configuration to active logging and logging MUST be disabled by default.”?

We can rephrase as:

  “Log me” marking MUST be disabled by default both at the endpoints and intermediaries and MUST be enabled only by authorized users.
   For example, an end user or network administrator must give permission for a terminal that supports “log me” marking in order to initiate marking.
   Similarly, a network administrator must enable a configuration at the SIP intermediary to perform "log me" marking on behalf of a terminal that doesn’t
   support “log me” marking. The permission MUST be limited to only specific calls of interest that are originated in a given time duration.

6) Section 8.2:

The last sentence in section 3.4.2 says “However, since a "log me" marker may cause a SIP entity to log
the SIP header and body of a request or response, if no agreement exists between peer networks then the
 "log me" marker MUST be removed at a network boundary.”

So we can add a few words in 8.2 to say:
"If SIP requests and responses are exchanged with an external network with which there is no agreement to
pass "log me" marking, then the "log me" marking is removed as mandated in section 3.4.2."

Yes, this scenario is discussed in Section 4.5.2.5.

8) Nit:
Sec 2: I guess the following sentence was coped and pasted from RFC8123 and
should be removed for this doc: "Rather than describing interoperability
  requirements, they are used to describe requirements to be satisfied
  by the "log me" marking solution.”

Yes, we will remove it.

Thanks!
Peter & Arun

---

From: Mirja Kühlewind <[email-masked]>
Date: Tue, 14 Aug 2018 18:47:24 +0200

Hi Arun, hi Peter,

please see below.

On 14.08.2018 16:51, Arun Arunachalam (carunach) wrote:
> It is not possible for the originating endpoint to determine whether 
> the terminating endpoint or intermediary supports “log me” prior to 
> setting up a dialog.
> If the originating endpoint sent an INVITE with logme marker and 
> received a provisional or final response with logme marker then it can 
> infer that one or more of the intermediaries in the call signaling 
> path (or) the terminating endpoint supports "log me".

Okay, this does makes sense to me, however, it is a bit contradicting to 
the normative requirement in Section 3.2:
"If a request or response is "log me" marked, then all re-transmissions 
of the request or response MUST be similarly "log me" marked. "

Maybe you can clarify this and maybe also spell out more explicitly in 
the document what you just explained above.

>    request or response in two cases:firstly because it is configured to

Thanks! Much better for me!

> We added "4.6 Error Handling” under Section 4 since this section talks 
> about endpoint and intermediary behavior. Error handling needs to be 
> implemented in SIP entities, and we could reword the beginning of 4.6. 
> to: "The two error types that SIP entities must handle are defined in 
> Section 5, a missing marker error and an error of "log me" marking 
> that begins mid-dialog."
>
> Or if needed, we could move it as first part of Section 5 and rename 
> this section as "5. Error Handling” and make “5.1 Error cases” as a 
> sub-section.
I'd prefer this solution. But it's just an editorial comment, so I leave 
it to you.

> If the proxy is logme aware then it is expected to remove logme marker 
> in error scenarios. It is safe to remove. The objective is to stop the 
> propagation of incorrect marking as soon as possible.

I have the feeling that this could be more explicitly spelled out in the 
doc and maybe also providing further guidance when it is actually safe 
to remove a marking would be really good.

>   “Log me” marking MUST be disabled by default both at the endpoints 
> and intermediaries and MUST be enabled only by authorized users.
>    For example, an end user or network administrator must give 
> permission for a terminal that supports “log me” marking in order to 
> initiate marking.
>    Similarly, a network administrator must enable a configuration at 
> the SIP intermediary to perform "log me" marking on behalf of a 
> terminal that doesn’t
>    support “log me” marking. The permission MUST be limited to only 
> specific calls of interest that are originated in a given time duration.
Yes, thanks!

> with which there is no agreement to

Thanks, adding the reference really helps!
> Yes, this scenario is discussed in Section 4.5.2.5.

Yes, the scenarios is fine but providing guidance that ingress filtering 
should be done, should probably be also discussed in the security 
considerations section.

Mirja

---

From: "Arun Arunachalam (carunach)" <[email-masked]>
Date: Tue, 14 Aug 2018 22:13:42 +0000

Thanks Mirja.

We would like to get a couple of clarifications. Please see inline.

On Aug 14, 2018, at 12:47 PM, Mirja Kühlewind <[email-masked]<mailto:[email-masked]>> wrote:

Hi Arun, hi Peter,

please see below.

Please see inline.

Okay, this does makes sense to me, however, it is a bit contradicting to the normative requirement in Section 3.2:
"If a request or response is "log me" marked, then all re-transmissions of the request or response MUST be similarly "log me" marked. “

We are trying to better understand this comment specifically how it contradicts. The purpose of the above sentence was to address a scenario in which a SIP message with “log me” marker is sent over UDP and it gets re-transmitted. This sentence was added to make sure that the re-transmitted message also had the “log me” marker. Please explain.

Maybe you can clarify this and maybe also spell out more explicitly in the document what you just explained above.

We can rephrase as:

Or if needed, we could move it as first part of Section 5 and rename this section as "5. Error Handling” and make “5.1 Error cases” as a sub-section.
I'd prefer this solution. But it's just an editorial comment, so I leave it to you.

We plan to move it to Section 5.

I have the feeling that this could be more explicitly spelled out in the doc and maybe also providing further guidance when it is actually safe to remove a marking would be really good.

The situations when “log me” marking can be safely removed is discussed in Section 8.2 "Log Me" Marker Removal” and in Section 8.3 “Denial of Service Attacks". Please let us know whether these sections address your comment (or) whether we are missing something specific.

5) Sec 8.1.:

We can rephrase as:

6) Section 8.2:

Yes, the scenarios is fine but providing guidance that ingress filtering should be done, should probably be also discussed in the security considerations section.

We think the following text in Section 8.2 covers both egress and ingress filtering:

"If SIP requests and responses are exchanged with an external network with which there is no agreement to pass "log me" marking, then the "log me" marking is removed as mandated in section 3.4.2.”

If we need to explicitly mention ingress filtering, we can update the text as:

"If SIP requests and responses are exchanged with an external network with which there is no agreement to pass "log me" marking, then egress/ingress filtering is applied to remove "log me” marking as mandated in section 3.4.2."

Thanks!
Peter & Arun

Mirja

8) Nit:

Yes, we will remove it.

Thanks!
Peter & Arun

---

From: Ben Campbell <[email-masked]>
Date: Tue, 14 Aug 2018 19:41:36 -0500

> On Aug 14, 2018, at 5:13 PM, Arun Arunachalam (carunach) <carunach=[email-masked]> wrote:
> 
>>>> 

Hi Arun,

I apologize that I missed this in previous reviews--but such a normative statement as in section 3.2 is unnecessary and redundant. That’s just the way SIP works. A retransmission is a retransmission of the _same_ request for purposes of UDP reliability.

This is in contrast with sending new messages associated with the dialog.

Thanks!

Ben.

---

From: "Mirja Kuehlewind (IETF)" <[email-masked]>
Date: Wed, 15 Aug 2018 09:31:44 +0200

Hi Arun,

please see below.

> Am 15.08.2018 um 00:13 schrieb Arun Arunachalam (carunach) <carunach=[email-masked]>:
> 
> Thanks Mirja.
> 
>> On Aug 14, 2018, at 12:47 PM, Mirja Kühlewind <[email-masked]> wrote:
>> 
>> Hi Arun, hi Peter,
>> 
>> please see below.
>> 
>>>> On Aug 13, 2018, at 12:24 PM, Mirja Kühlewind <[email-masked]> wrote:
>>>> 

Sorry I was actually copied the wrong statement:

"Once the "log me" marking is started for a dialog, all subsequent
   requests and responses in this dialog are "log me" marked and marking
   is stopped when this dialog and its related dialogs end.“

This is not normative, so there is no conflict, but it’s a bit confusing given you don’t know if the other end supports logme or not. If you could clarify, that it is okay to probe with a logme message in the first request and then see if the other end replies, would be really helpful I think. Also if you send a logme message and the other end does not send one back, should other messages for me originating host in the same dialog be marked or not? That is not fully clear and it is seems that most of the normative statements in the draft only apply to the case where both hosts (or some intermediate on both sides) are already known to support logme. Maybe double-check!

> The situations when “log me” marking can be safely removed is discussed in Section 8.2 "Log Me" Marker Removal” and in Section 8.3 “Denial of Service Attacks". Please let us know whether these sect…
These sections only discuss the case of inter-domain traffic. My question was should an intermediate that understands logme also remove markings in error cases (markings show up mitdterm or something)? Maybe you can say something more in section 5 or 4.6.

> "If SIP requests and responses are exchanged with an external network with which there is no agreement to pass "log me" marking, then egress/ingress filtering is applied to remove "log me” marking as mandated in section 3.4.2.“

I somehow happen to read this only as egress filtering. But you are right, it doesn’t say that. However, it probably doesn’t hurt to be explicit here.

Thanks!
Mirja

---

From: "Dawes, Peter, Vodafone Group" <[email-masked]>
Date: Wed, 15 Aug 2018 14:57:44 +0000

Hi Mirja,
Please find some further proposals trying to resolve your comments in-line below. Thanks again for your review.

Regards,
Peter

> -----Original Message-----
> From: Mirja Kuehlewind (IETF) <[email-masked]>
> Sent: 15 August 2018 08:32
> To: Arun Arunachalam (carunach) <carunach=[email-masked]>
> Cc: Arun Arunachalam (carunach) <[email-masked]>; insipid-
> [email-masked]; Dawes, Peter, Vodafone Group
> <[email-masked]>; Gonzalo Salgueiro (gsalguei)
> <[email-masked]>; [email-masked]; The IESG <[email-masked]>; draft-
> [email-masked]
> Subject: Re: Mirja Kühlewind's No Objection on draft-ietf-insipid-logme-
> marking-12: (with COMMENT)
>
> Hi Arun,
>
> please see below.
>
> >>>> 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
> >>>> 1) How do you know that both endpoints are "log me" enabled? I
> >>>> guess because of the requirement that all messages of a dialog must
> >>>> have the marker, you cannot just add it and see if the other end is able
> to apply it to its responses…?
> >>>
> >>>
> >>> It is not possible for the originating endpoint to determine whether the
> terminating endpoint or intermediary supports “log me” prior to setting up a
> dialog.
> >>>
> received a provisional or final response with logme marker then it can infer
> that one or more of the intermediaries in the call signaling path (or) the
> terminating endpoint supports "log me".
> >>
> >> "If a request or response is "log me" marked, then all
> >> re-transmissions of the request or response MUST be similarly "log
> >> me" marked. “
> >
> >
> > We are trying to better understand this comment specifically how it
> contradicts. The purpose of the above sentence was to address a scenario in
> which a SIP message with “log me” marker is sent over UDP and it gets re-
> transmitted. This sentence was added to make sure that the re-transmitted
> message also had the “log me” marker. Please explain.
>
>
> This is not normative, so there is no conflict, but it’s a bit confusing given you
> don’t know if the other end supports logme or not. If you could clarify, that it
> is okay to probe with a logme message in the first request and then see if the
> other end replies, would be really helpful I think. Also if you send a logme
> message and the other end does not send one back, should other messages
> for me originating host in the same dialog be marked or not? That is not fully
> clear and it is seems that most of the normative statements in the draft only
> apply to the case where both hosts (or some intermediate on both sides) are
> already known to support logme. Maybe double-check!
>

The main aim of 3.2 is to set the boundaries of the protocol impact and outline the maximum ideal case, rather than to be normative procedural specification. Also, end-to-end support is not assumed by the mechanism so how about the following revision:

3.2.  Starting and Stopping Logging
In the ideal case, marking starts with a dialog-initiating request (described in Section 12.1 of [RFC3261]), continues for the lifetime of the dialog and ends when the dialog ends, applies to each request and response in that dialog, and applies end-to-end including user devices. The proportion of the signalling path that is marked can be reduced by non-support of the “log me” marking mechanism or removal of the “log me” marker by one or more endpoints or intermediaries(see Section 3.4.2, Section 3.4.3, and Section 4.5.2), and marking errors can terminate marking before the dialog ends (see Section 5). The “log me” marking mechanism will still work even if parts of the signalling path do not support it but troubleshooting and testing is most effective if marking is carried uninterrupted end-to-end.

Your question "Also if you send a logme message and the other end does not send one back, should other messages for me originating host in the same dialog be marked or not? " is a valid one, but marking needs user or administrator permission to be used and must be explicitly configured by a network administrator. Also, it lasts for only a single SIP dialog. Therefore if, for example, only a single terminal supports it then we would expect such a terminal to not be configured to use it, or if it is then it will have no effect on the terminal or the network other than cause the terminal to log its own messages for one dialog. So we don’t think the draft needs to provide any detection or handling of such cases.

> >>>> I was first quite confused by this sentence because I though the
> >>>> second case meant that intermediates needs to ensure that all
> >>>> messages are marked correctly. However, I guess the second case is
> >>>> when the other ends is configured to do marking, one needs to reply
> >>>> with the marking as well. I think I was mainly confused by the word
> >>>> "detects". Maybe it's worth to further clarify this sentence…?
> >>>
> >>> We can rephrase as:
> >>>
> >>>> 3) Section 4.6 feels a little misplace but I not sure where it
> >>>> belong otherwise (maybe section 3 or 5?). Or maybe move section 4.5
> >>>> in an own section later in the doc…?
> >>>
> >>>
> implemented in SIP entities, and we could reword the beginning of 4.6. to:
> "The two error types that SIP entities must handle are defined in Section 5, a
> missing marker error and an error of "log me" marking that begins mid-
> dialog."
> >>>
> >>> Or if needed, we could move it as first part of Section 5 and rename this
> section as "5. Error Handling” and make “5.1 Error cases” as a sub-section.
> >>>> Does it mean an intermediate MUST remove the marker if an error is
> >>>> detected? Is that safe given the proxy scenarios? If at all I would
> >>>> recommend to use MAY here, I guess…
> >>>
> >> I have the feeling that this could be more explicitly spelled out in the doc
> and maybe also providing further guidance when it is actually safe to remove
> a marking would be really good.
> >
> >
> > The situations when “log me” marking can be safely removed is discussed
> in Section 8.2 "Log Me" Marker Removal” and in Section 8.3 “Denial of Service
> Attacks". Please let us know whether these sections address your comment
> (or) whether we are missing something specific.
> >
> These sections only discuss the case of inter-domain traffic. My question was
> should an intermediate that understands logme also remove markings in
> error cases (markings show up mitdterm or something)? Maybe you can say
> something more in section 5 or 4.6.
>

We can further clarify Section 4.6 (which will be moved to within Section 5) as below. This section specifies error handling by both UAs and intermediaries.

4.6.  Error Handling

   Two error types are defined in Section 5, a missing marker error and
   an error of "log me" marking that begins mid-dialog.  Section 6 gives
   exceptions which have a missing marker or marking that begins mid-
   dialog but are not errors.

   If a missing marker error is detected by a “log me” aware UA, SIP intermediary,
   it SHOULD consider this as an error condition.  It MUST NOT
   mark subsequent requests and responses and MUST stop logging messages
   in the same dialog.  Any previously logged messages SHOULD be
   retained and not deleted.

   If a "log me" marking that begins mid-dialog error is detected by a
    “log me” aware UA, SIP intermediary, it SHOULD consider this as an error
   condition.  A UA MUST ignore the “log me” marker, SIP intermediaries MUST
   remove the "log me" marker from the Session-ID
   header prior to forwarding the message to the next hop and the received message
   MUST NOT be logged.  It MUST NOT mark subsequent requests and responses and
   MUST NOT log subsequent messages in the same dialog.

> >>>> implementation. Is this maybe rather "An implementation MUST
> >>>> provide a configuration to active logging and logging MUST be disabled
> by default.”?
> >>>
> >>> We can rephrase as:
> >>>
> permission for a terminal that supports “log me” marking in order to initiate
> marking.
> >>>    Similarly, a network administrator must enable a configuration at the
> SIP intermediary to perform "log me" marking on behalf of a terminal that
> doesn’t
> >>> The last sentence in section 3.4.2 says “However, since a "log me"
> >>> marker may cause a SIP entity to log the SIP header and body of a
> >>> request or response, if no agreement exists between peer networks
> then the  "log me" marker MUST be removed at a network boundary.”
> >>>
> >>> "If SIP requests and responses are exchanged with an external
> >>> network with which there is no agreement to pass "log me" marking,
> then the "log me" marking is removed as mandated in section 3.4.2."
> >>
> >>>> 7) Also a related question: Should a network perform ingress
> >>>> filtering/removal of "log me" markers?
> >>>
> with which there is no agreement to pass "log me" marking, then the "log
> me" marking is removed as mandated in section 3.4.2.”
> >
> > with which there is no agreement to pass "log me" marking, then
> > egress/ingress filtering is applied to remove "log me” marking as
> > mandated in section 3.4.2.“
>
>
> I somehow happen to read this only as egress filtering. But you are right, it
> doesn’t say that. However, it probably doesn’t hurt to be explicit here.
>

We can add a paragraph at the end of 8.2 to cover deliberate removal of "log me" marking in order to prevent logging as follows.

8.2.  "Log Me" Marker Removal

   The log me marker is not sensitive information, although it will
   sometimes be inserted because a particular device is experiencing
   problems.

   The presence of a log me marker will cause some SIP entities to log
   signaling messages.  Therefore, this marker MUST be removed at the
   earliest opportunity if it has been incorrectly inserted, such as
   appearing mid-dialog in a dialog that was not being logged or outside
   the configured start and stop of logging.

   If SIP requests and responses are exchanged with an external network
   with which there is no agreement to pass "log me" marking, then the
   "log me" marking is removed, for both ingress and egress, as mandated
   in Section 3.4.2.

  If SIP requests and responses are sent or received by a network
   that wishes to prevent logging, then the "log me" marking is removed,
   for both ingress and egress, as described in Section 4.5.2.4.

> Thanks!
> Mirja
>
>
> >
> > Thanks!
> > Peter & Arun
> >
> >
> >
> >
> >
> >>
> >> Mirja
> >>
> >>
> >>>
> >>>>
> >>>> 8) Nit:
> >>>> Sec 2: I guess the following sentence was coped and pasted from
> >>>> RFC8123 and should be removed for this doc: "Rather than describing
> interoperability

---

From: "Arun Arunachalam (carunach)" <[email-masked]>
Date: Wed, 15 Aug 2018 20:02:31 +0000

Thanks Ben.

We will remove this statement.

Arun

> On Aug 14, 2018, at 8:41 PM, Ben Campbell <[email-masked]> wrote:
> 
> 
>

---

From: "Mirja Kuehlewind (IETF)" <[email-masked]>
Date: Thu, 16 Aug 2018 10:44:41 +0200

Hi Peter,

see below.

> Am 15.08.2018 um 16:57 schrieb Dawes, Peter, Vodafone Group <[email-masked]>:
> 
> Hi Mirja,

Yes, thanks. That’s clear now.
> Your question "Also if you send a logme message and the other end does not send one back, should other messages for me originating host in the same dialog be marked or not? " is a valid one, but ma…

For me the document somehow read like an endpoint should detect that the other end (as well as no intermediate that could proxy) supports marking and stop marking. You are right that that does really have any effect on the scheme. However, clarifying that such a detection does not need to be implemented, could help. On the other hand, I would actually need to re-read to figure out why I was assuming that. Maybe it’s already better with the new text above.

>   MUST NOT log subsequent messages in the same dialog.

Thanks.

However, now that you said above that an UA does not need to detect that no one else is supporting marking (and subsequently marking anyway if configure to do so), I’m wondering why intermediates are required to remove the mark in this case…? Is that because UA marking without any additional support on the other end is seen as an error? If so that goes back to my initial question: How do you know that both endpoints are "log me" enabled? I guess in this case the answer is you have to have „out-of-band“ knowledge by configuration and should not try to just test and see if the other end echos the marking back…?

>> network
>> network

That would be good.

Mirja

---

From: "Dawes, Peter, Vodafone Group" <[email-masked]>
Date: Thu, 16 Aug 2018 09:40:30 +0000

Hi Mirja,
Please see in-line below a response on missing marker handling based on the motivating scenario in the requirements RFC 8213.

-Peter

> Sent: 16 August 2018 09:45
> To: Dawes, Peter, Vodafone Group <[email-masked]>
> Cc: Arun Arunachalam (carunach) <carunach=[email-masked]>;
> Arun Arunachalam (carunach) <[email-masked]>; insipid-
> [email-masked]; Gonzalo Salgueiro (gsalguei) <[email-masked]>;
> [email-masked]; The IESG <[email-masked]>; draft-ietf-insipid-logme-
> [email-masked]
> >> <[email-masked]>; [email-masked]; The IESG <[email-masked]>;
> >> draft- [email-masked]
> >>>>>> On Aug 13, 2018, at 12:24 PM, Mirja Kühlewind
> >>>>>> <[email-masked]>
> >> wrote:
> >>>>>>
> >>>>>> all email addresses included in the To and CC lines. (Feel free
> >>>>>> to cut this introductory paragraph, however.)
> >>>>>>
> >>>>>>
> >>>>>> Please refer to
> >>>>>> -----------------------------------------------------------------
> >>>>>> --
> >>>>>> ---
> >>>>>> COMMENT:
> >>>>>> -----------------------------------------------------------------
> >>>>>> --
> >>>>>> ---
> >>>>>>
> >>>>>> guess because of the requirement that all messages of a dialog
> >>>>>> must have the marker, you cannot just add it and see if the other
> >>>>>> end is able
> >> terminating endpoint or intermediary supports “log me” prior to
> >> setting up a dialog.
> >>>>>
> >> received a provisional or final response with logme marker then it
> >> can infer that one or more of the intermediaries in the call
> >> signaling path (or) the terminating endpoint supports "log me".
> >>>>
> >> contradicts. The purpose of the above sentence was to address a
> >> scenario in which a SIP message with “log me” marker is sent over UDP
> >> and it gets re- transmitted. This sentence was added to make sure
> >> that the re-transmitted message also had the “log me” marker. Please
> explain.
> >>
> >>
> >> This is not normative, so there is no conflict, but it’s a bit
> >> confusing given you don’t know if the other end supports logme or
> >> not. If you could clarify, that it is okay to probe with a logme
> >> message in the first request and then see if the other end replies,
> >> would be really helpful I think. Also if you send a logme message and
> >> the other end does not send one back, should other messages for me
> >> originating host in the same dialog be marked or not? That is not
> >> fully clear and it is seems that most of the normative statements in
> >> the draft only apply to the case where both hosts (or some intermediate
> on both sides) are already known to support logme. Maybe double-check!
> >>
> >
> > The main aim of 3.2 is to set the boundaries of the protocol impact and
> outline the maximum ideal case, rather than to be normative procedural
> specification. Also, end-to-end support is not assumed by the mechanism so
> how about the following revision:
> >
> > In the ideal case, marking starts with a dialog-initiating request (described
> in Section 12.1 of [RFC3261]), continues for the lifetime of the dialog and
> ends when the dialog ends, applies to each request and response in that
> dialog, and applies end-to-end including user devices. The proportion of the
> signalling path that is marked can be reduced by non-support of the “log me”
> marking mechanism or removal of the “log me” marker by one or more
> endpoints or intermediaries(see Section 3.4.2, Section 3.4.3, and Section
> 4.5.2), and marking errors can terminate marking before the dialog ends (see
> Section 5). The “log me” marking mechanism will still work even if parts of
> the signalling path do not support it but troubleshooting and testing is most
> effective if marking is carried uninterrupted end-to-end.
>
> > Your question "Also if you send a logme message and the other end does
> not send one back, should other messages for me originating host in the
> same dialog be marked or not? " is a valid one, but marking needs user or
> administrator permission to be used and must be explicitly configured by a
> network administrator. Also, it lasts for only a single SIP dialog. Therefore if,
> for example, only a single terminal supports it then we would expect such a
> terminal to not be configured to use it, or if it is then it will have no effect on
> the terminal or the network other than cause the terminal to log its own
> messages for one dialog. So we don’t think the draft needs to provide any
> detection or handling of such cases.
>
> For me the document somehow read like an endpoint should detect that the
> other end (as well as no intermediate that could proxy) supports marking
> and stop marking. You are right that that does really have any effect on the
> scheme. However, clarifying that such a detection does not need to be
> implemented, could help. On the other hand, I would actually need to re-
> read to figure out why I was assuming that. Maybe it’s already better with
> the new text above.
>
>
> >
> >>>
> >>>
> >>>>
> >>>> Maybe you can clarify this and maybe also spell out more explicitly
> >>>> in the
> >> document what you just explained above.
> >>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>>
> >>>>>> 2) Sec 3.2: "firstly because it is configured to  do so, or
> >>>>>> secondly because it has detected that a dialog is being  "log me"
> >>>>>> marked, causing it to maintain state to ensure that all  requests
> >>>>>> and responses in the dialog are similarly "log me" marked."
> >>>>>> messages are marked correctly. However, I guess the second case
> >>>>>> is when the other ends is configured to do marking, one needs to
> >>>>>> reply with the marking as well. I think I was mainly confused by
> >>>>>> the word "detects". Maybe it's worth to further clarify this
> sentence…?
> >>>>>
> >>>>> We can rephrase as:
> >>>>>
> >>>>>   add the marking to a dialog-creating request, or secondly
> >>>>> because it
> >> has
> >>>>>   received a dialog-creating request that is being "log me"
> >>>>> marked,
> >> causing it to
> >>>>>   maintain state to ensure that all requests and responses in the
> >>>>> dialog
> >> are
> >>>>>> belong otherwise (maybe section 3 or 5?). Or maybe move section
> >>>>>> 4.5 in an own section later in the doc…?
> >>>>>
> >>>>>
> >> "The two error types that SIP entities must handle are defined in
> >> that begins mid- dialog."
> >>>>>
> >>>> I'd prefer this solution. But it's just an editorial comment, so I
> >>>> leave it to
> >> you.
> >>>
> >>>
> >>>>>> Does it mean an intermediate MUST remove the marker if an error
> >>>>>> is detected? Is that safe given the proxy scenarios? If at all I
> >>>>>> would recommend to use MAY here, I guess…
> >>>>>
> >> in error scenarios. It is safe to remove. The objective is to stop
> >> the propagation of incorrect marking as soon as possible.
> >>>>
> >> and maybe also providing further guidance when it is actually safe to
> >> remove a marking would be really good.
> >>>
> >>>
> >> in Section 8.2 "Log Me" Marker Removal” and in Section 8.3 “Denial of
> >> Service Attacks". Please let us know whether these sections address
> >> your comment
> >> These sections only discuss the case of inter-domain traffic. My
> >> question was should an intermediate that understands logme also
> >> remove markings in error cases (markings show up mitdterm or
> >> something)? Maybe you can say something more in section 5 or 4.6.
> >>
> >
> > We can further clarify Section 4.6 (which will be moved to within Section 5)
> as below. This section specifies error handling by both UAs and
> intermediaries.
> >
> > 4.6.  Error Handling
> >
> However, now that you said above that an UA does not need to detect that
> no one else is supporting marking (and subsequently marking anyway if
> configure to do so), I’m wondering why intermediates are required to
> remove the mark in this case…? Is that because UA marking without any
> additional support on the other end is seen as an error? If so that goes back
> to my initial question: How do you know that both endpoints are "log me"
> enabled? I guess in this case the answer is you have to have „out-of-band“
> knowledge by configuration and should not try to just test and see if the
> other end echos the marking back…?
>

"log me" aware UAs and intermediaries remove marking in error cases to protect their network from malicious marking and marking errors, but not all missing markers are errors. In the scenario below from RFC 8123, it might be that Operator A supports "log me" marking and wants to perform end-to-end testing between its networks in different countries. So a marked INVITE sent from Operator A in COUNTRY W would expect "log me" marking to be echoed by Operator A UAs in COUNTRY X. In this case a missing marker in responses means something is wrong (missing marker error) and "log me" marking stops. However, if Operator A is experiencing failures when setting up calls with Operator B in COUNTRY Y who does not support "log me" marking, Operator A would not expect marking to be echoed by UAs belonging to Operator B. In this case Operator A uses the procedure in 4.5.2.5 where a SIP intermediary acts on behalf of the terminating network in order to support logging in its own network. In this case a missing marker from Operator B is a non-error case as described in 6.1.

From RFC 8123

Example Network Arrangement

   The figure below gives an example of a signaling path through
   multiple networks.

      +------------------+          +------------------+
      | COUNTRY W        |          | COUNTRY X        |
      | Operator A       |          | Operator A       |
      |                  |          |                  |
      | SIP Phones       |          | SIP Phones       |
      |                  |        //|                  |
      +------------------+       // +------------------+
             |                  //
             |                 //
          ,'```',             //    +------------------+
      .`',.'      `..'``',<==//     | COUNTRY X        |
      ,'  Operator A         `',    | Operator A       |
      ;    Backbone Network    ..'--|                  |
      ',            ,.,    .'`      | PSTN phones      |
      '.,.`'.,,,.`   `''`           |                  |
             ||                     +------------------+
             ||
             \/
      +------------------+
      |                  |
      |  Transit Network |
      |                  |
      |                  |\\
      +------------------+ \\
              |             \\
              |              \\
      +------------------+    \\    +------------------+
      | COUNTRY Z        |     \\   | COUNTRY Y        |
      | Operator C       |      \\=>| Operator B       |
      |                  |          |                  |
      | SIP Phones       |          | SIP Phones       |
      |                  |          |                  |
      +------------------+          +------------------+

        Figure 1: Example Signaling Path through Multiple Networks

> >>>>>> "The configuration of a SIP intermediary to perform  "log me"
> >>>>>> marking on behalf of a terminal MUST be authorized by the
> >>>>>> network administrator."
> >> SIP intermediary to perform "log me" marking on behalf of a terminal
> >> that doesn’t
> >>>>>> the  "log me" marking is removed."
> >>>>>> the  "log me" marking SHOULD be removed at the network border."
> >>>>>> Or MUST?
> >>>>>
> >>> We think the following text in Section 8.2 covers both egress and
> >>> ingress
> >> filtering:
> >>>
> >> "log me" marking is removed as mandated in section 3.4.2.”
> >>>
> >>> then egress/ingress filtering is applied to remove "log me” marking
> >>> as mandated in section 3.4.2.“
> >>
> >>
> >> I somehow happen to read this only as egress filtering. But you are
> >> right, it doesn’t say that. However, it probably doesn’t hurt to be explicit
> here.
> >>
> >
> > We can add a paragraph at the end of 8.2 to cover deliberate removal of
> "log me" marking in order to prevent logging as follows.
> >
> >>>>>>  requirements, they are used to describe requirements to be
> >>>>>> satisfied  by the "log me" marking solution.”
> >>>>>
> >>>>> Yes, we will remove it.
> >>>>>
> >>>>> Thanks!
> >>>>> Peter & Arun
> >>>>>
> >>>>>>
> >>>>>>
> >>>>>
> >>>>
> >>>
> >

---

From: Benjamin Kaduk <[email-masked]>
Date: Thu, 16 Aug 2018 08:27:16 -0500

Sorry to jump in with something only semi-related...

On Wed, Aug 15, 2018 at 02:57:44PM +0000, Dawes, Peter, Vodafone Group wrote:
> > >> On Aug 14, 2018, at 12:47 PM, Mirja Kühlewind <[email-masked]>
> > >>

I expect this is just my communications security background speaking, but
I'm used to seeing "this is an error condition" get a response of "tear
down the entire connection/dialog/whatever".  That doesn't seem to be the
case, here, though -- is the appropriate response to the error condition
just the behavior described in the document of ceasing to use "log me"
markers and stopping logging?  It may be more clear to explicitly say
"error condition in the "log me" functionality" to avoid the misreading
that it is a broader error condition of the entire dialog.

-Benjamin