Skip to main content

Dynamic Host Configuration Protocol (DHCP) IPv4 and IPv6 Option for a Location Uniform Resource Identifier (URI)
draft-ietf-geopriv-dhcp-lbyr-uri-option-19

Discuss


Yes

(Richard Barnes)
(Robert Sparks)

No Objection

(Adrian Farrel)
(Gonzalo Camarillo)
(Ron Bonica)
(Sean Turner)
(Wesley Eddy)

No Record

Deb Cooley
Erik Kline
Francesca Palombini
Gunter Van de Velde
Jim Guichard
John Scudder
Mahesh Jethanandani
Murray Kucherawy
Orie Steele
Paul Wouters
Roman Danyliw
Warren Kumari
Zaheduzzaman Sarker
Éric Vyncke

Summary: Needs a YES. Needs 10 more YES or NO OBJECTION positions to pass.

Deb Cooley
No Record
Erik Kline
No Record
Francesca Palombini
No Record
Gunter Van de Velde
No Record
Jim Guichard
No Record
John Scudder
No Record
Mahesh Jethanandani
No Record
Murray Kucherawy
No Record
Orie Steele
No Record
Paul Wouters
No Record
Roman Danyliw
No Record
Warren Kumari
No Record
Zaheduzzaman Sarker
No Record
Éric Vyncke
No Record
Barry Leiba Former IESG member
Discuss
Discuss [Treat as non-blocking comment] (2013-02-27) Unknown
Updated for -19:

POINT 1:

I've expressed a basic problem I have with getting these URIs via insecure DHCP, and I'll refine that comment here, based on discussion that's so far been had.

Recognizing that in many cases getting URIs this way is an improvement over getting the location information itself, I'll note that that's not always true: the actual LI is a one-time thing, while the location URI can be dereferenced multiple times during its valid period, potentially allowing a snooper to track a moving user over time.

The general point is that a location URI has to be protected from snooping, protected from unauthorized use if it's snooped, or both.  Given that this can't do the former over DHCP, it needs to address the latter issue.  If one gets a URI that can only be used by an authorized entity, we're in much better shape.

That probably means a change to the Introduction to explain the situation, and something in the Security Considerations that addresses use of secure URIs (https or sips, rather than http or sip) and authentication on dereferencing.  I wouldn't want MUSTs here, but strong recommendations to secure this stuff.  I'm looking for something that makes the exposure clear and advises the use of acceptable mechanisms to protect the information, most likely as SHOULD.  Then if you think exposing your subscribers' location information is acceptable, that's between you and your subscribers.

In my conversation with James about this, James mentioned RFC 5606.  I'll note that, while 5606 is not addressing the same thing (5606 is primarily about dealing with "retransmissions", and its advice is only in that context), it actually does support the sorts of things I'm saying (see Section 2, paragraph 5, and Section 3.3.2).

POINT 2:

-- Section 5.3 --

Thanks for fixing the IANA Considerations section; this all now seems quite clear.  I have one question about the new registry:

Why did the working group select IETF Review for the registration policy? Did the working group discuss this? IETF Review requires an IETF-stream RFC (Standards Track, BCP, Informational, or Experimental), and is a fairly high bar. Why does the working group think that Expert Review is not appropriate for this registry?

(Note that I am *not* expecting you to just change this in response to my question.  I want to make sure we have the discussion.)
Martin Stiemerling Former IESG member
Discuss
Discuss [Treat as non-blocking comment] (2013-02-04 for -17) Unknown
I have no general objections to this draft, but multiple points to be discussed. However, most of my DISCUSS worthy issues are already covered by parts of Barry's, Stephen's, and Sean's DISCUSS. 

There is only a single point left:

Section 2.5, paragraph 11:

>    o Clients MUST overwrite any existing, previously sent values of
>      Location URI Option and/or Valid-For Option when receiving the
>      next instance of either Option.

  If a host has multiple interfaces that are used concurrently and the host receives the location URI from multiple DHCP server, how is this handled? This information is handed over to some application that probably doesn't care too much about multiple network locations. However, this is something that should be at least mentioned and discussed.
Pete Resnick Former IESG member
Discuss
Discuss [Treat as non-blocking comment] (2013-02-28) Unknown
Section 2.3 really needs a lot of work. [There are a couple of editorial points embedded in here that are not things I need to DISCUSS; I've set those off in square brackets.]

OLD
   o Implementation of the Location URI Option is REQUIRED on the DHCP
     server and client.

I know you don't mean that as written. As written, it says that all DHCP servers and clients are now required to implement this option. If you really meant this, you'd need an "Updates: 2131", and I'm quite sure that's not right. I suspect you might mean something like: "The DHCP Location URI Option MUST NOT be used unless both the server and the client support it." But I don't think that's necessary. My recommendation is to simply strike this sentence.

OLD
   o Clients SHOULD be expected to have to request the Location URI 
     Option from servers. Although local policy can have servers 
     perform an unsolicited push of a Location URI Option to a client.

Aside from the second sentence being ungrammatical, this is overall not clear. Do you mean:

NEW
   o Clients normally send explicit requests for the Location URI
     Option. Servers SHOULD NOT send unsolicited Location URI
     Option responses to a client. 

? I'm not even sure if that SHOULD NOT is correct. What are you trying to get across in this bullet?

OLD
   Applications on a client can use the Location URI (value) until the 
   Valid-For value reaches zero. If there is no Valid-For Option value,
   then the counter did not ever start (a null value), and applications
   on a client continue to use the Location URI value until given a new
   Location URI Option  (with or without a Valid-For value) which 
   overwrites any previous Location URI and Valid-For Option values.

[The first sentence is goofy, though I know what you mean: The "Valid-For value" is never going to "reach zero"; what you mean is: 

NEW
   Applications on a client can use the returned Location URI for the
   number of seconds specified in Valid-For from the time it was
   received by the client.
 ]
  
But the second sentence is completely unwieldy and not clear. (Zero is not a "null value".) Simplify:

NEW
   If the Valid-For value is zero, it indicates that there is no time
   limit on the use of the returned Location URI. It may be used until
   the server returns a new Location URI.

OLD
   o Receipt of the Location URI Option containing all zeros in the 
     Valid-For field MUST NOT cause any error in handling the Location 
     URI.

I don't know what that is supposed to mean. Why do you think you need to call out that I MUST NOT cause an error in *any* event?

OLD
   o When the Valid-For timer reaches zero, the client MUST purge any 
     location URI received via DHCP from its memory.

Aside from the "timer reaches zero" thing, I have to say: Baloney. I will *not* be purging any memory because you tell me to in this document, thank you very much. You can tell me not to use the thing, but you can't tell me how I have to do memory garbage collection. Please delete this.

OLD
   If the Valid-For timer is set to expire before the lease refresh, 
   the client will not have the ability to hand out its location until 
   the lease refresh, inadvertently allowing a gap of coverage. If the 
   Valid-For timer is set to expire after the lease refresh, some 
   wayward application on the client can divulge that location URI 
   after it is no longer valid, meaning the location could be stale or 
   just plain wrong.

[In the first sentence, change "hand out" to "use". Possible also change "the client" to "client applications". ]

The second sentence seems completely bogus to me: If the Valid-For time is longer than the lease time, it's the server's responsibility to hand me back the same URI when my lease expires. That URI *is* valid for the Valid-For time, and can never be stale or wrong. Therefore:

OLD
   o Servers SHOULD set the Valid-For timer to that of the lease 
     refresh, or bad things can happen.

NEW
   o Servers SHOULD set Valid-For to greater than or equal to the lease
     refresh, or bad things can happen.
     
Section 4.2: "MUST have one of the following URI schemes"? Are you saying I need to write an update to this document if I want to use a different URI scheme for location information? Similarly:

Section 5.3: "IETF Review"

This all seems very heavy handed. Are we really in fear of people adding to this registry willy-nilly? Would not "Expert Review" or "Specification Required" not perfectly well suffice? Could we therefore not change 4.2 to say, "MUST be values registered in the Valid Location URI Schemes registry (defined in section 5.3)"?
Ralph Droms Former IESG member
Discuss
Discuss [Treat as non-blocking comment] (2013-02-06 for -18) Unknown
1. (From Ted Lemon's review)  In section 2.5:

  o The Valid-For Option MUST NOT be sent from a server, and received
    by a client, without an accompanying Location URI Option.

This places special processing requirements on the DHCP server—it
would be as if an RFC said "for A records within the ORG. zone, the
DNS server MUST NOT return IP addresses within the 128.45 class B
network, which belongs to a commercial entity."

Just take this text out.

2. (Also from Ted) I would replace this text:

  The Valid-For Option offers no meaningful information to a client
  without an accompanying Location URI Option, and might be
  misunderstood or misapplied, therefore

  o The Valid-For Option MUST NOT be sent from a server, and received
    by a client, without an accompanying Location URI Option.

  o A client receiving a Valid-For Option without a Location URI
    Option MUST ignore the Valid-For Option.

  o The Valid-For Option MUST only be considered in relation to the
    Location URI Option. It has no other purpose in DHCP then in
    relation to the Location URI (i.e., there is no other Option in
    DHCP to which it has meaning).

  o The Valid-For Option MUST NOT cause any error in handling the
    Location URI, i.e., if not understood, it MUST be ignored.

  o Servers MUST assume that clients will overwrite any existing,
    previously sent values of Location URI Option and/or Valid-For
    Option.

  o Clients MUST overwrite any existing, previously sent values of
    Location URI Option and/or Valid-For Option when receiving the
    next instance of either Option.

With this:

   The Valid-For Option offers no meaningful information to a client
   without an accompanying LocationURI Option.  Clients receiving a
   Valid-for option without an accompanying Location URI option SHOULD
   silently ignore this option.  Valid-For options relate specifically
   to Location URI options within the same DHCP message, and do not
   apply to Location URI options received in other DHCP messages.

3. I'm writing this after Brian posted his review and we've started a
conversation about separating the LocationURI and Valid-For options.
There may have been some miscommunication about whether the Valid-For
option could be included in the LocationURI option.  I'll make the
suggestion that the Valid-For life be added as an initial 32-bit
fixed-size field at the beginning of the LocationURI option, with the
special value 0 meaning "no expiration time".

4. (Also from Ted) In section 3:

  It is RECOMMENDED to avoid building URIs, with any parameters,
  larger than what a single DHCP response can be.  However, if a
  message is larger than 255 bytes, concatenation is allowed, per 
  RFC 3396 [RFC3396].

You should pick one position or the other.   Either:

   DHCP servers MUST NOT send URIs longer than 255 bytes.

or:

   The LocationURI option is a concatenation-requiring option as
   described in "Encoding Long Options in DHCPv4" [RFC3396], section
   4.   DHCP clients implementing this specification must also
   implement RFC3396. 

5. The first few paragraphs of section 3 are DHCPv4-centric (and the
message names aren't given accurately).  This text should be edited
to discuss both DHCPv4 and DHCPv6 explicitly.  

6. The second paragraph of section 3 could be read to imply that a
server might put a Location URI option in a separate (additional)
message to a client.  That's not how DHCP works.  All the options have
to fit in a single response (DHCPOFFER, DHCPACK for DHCPv4, Advertise
or Reply for DHCPv6).  The fourth paragraph is potentially confusing
as well, without specifying if the Location URI option is a
concatenating option.  Does "subsequent LocationURI Options" refer to
option within one DHCP message or in distinct DHCP messages?

7. (From Ted Lemon's review) I'm not sure that the way you've
specified IANA considerations will work.   Normally we put text in the
option definition that's replaced by the RFC editor once the option
code has been assigned, like this: 

+----------------+---------+--------------------+
| OPT_LURI4      | len     |      payload       |
+----------------+---------+--------------------+

option-code: OPT_LURI4 (TBD)

This gives the RFC editor a place to put the option code inline.
Rather than just following this recommendation, I would look at some
existing examples.  For example, compare section 3 here:
http://tools.ietf.org/html/draft-ietf-dhc-dhcpv6-relay-supplied-options-09
to section 3 here: http://tools.ietf.org/html/rfc6422 and feel free to
plagiarize the IANA considerations section from the draft (not the
RFC!).

Then in the IANA considerations section, you need to say:

The IANA is requested to assign option codes for OPT_LURI4 and
OPT_LURIVALID4 from the BOOTP Vendor Extensions and DHCP Options
registry at
http://www.iana.org/assignments/bootp-dhcp-parameters/bootp-dhcp-parameters.xml.
(You also need to say what to put in the Length and Meaning fields;
for LURI, I think it's N, and for LURIVALID it's probably 4.)

The IANA is requested to assign option codes for OPT_LURI6 and
OPT_LURIVALID6 from the DHCP Option Codes registry at
http://www.iana.org/assignments/dhcpv6-parameters/dhcpv6-parameters.xml.
(You don't need length and meaning fields for these—we eliminated that
in the DHCPv6 option registry.)
Stephen Farrell Former IESG member
Discuss
Discuss [Treat as non-blocking comment] (2013-02-25) Unknown
-19 doesn't seem to make changes related to this

1) I suspect there's an unfounded assumption built in to this
draft (and plenty of other IETF work) that runs counter to
good privacy practices and current reality. 

The maybe unfounded assumption: Applications running on a
host can be considered to be acting in the interests of the
end-user or administrator of that host.  

If the above description of today's reality is true, (and I
think it is), then there is a missing privacy consideration
here which is that Targets or DHCP clients MUST provide the
end-user or administrator a way to override the actions that
applications might otherwise make related to the use of these
URLs. (In fact, I suspect this will be done anyway, but it'd
still be good to impose that requirement here regardless.)

2) RFC 6753 distinguishes between an authorization by
possession model and a model where (real:-) authorization can
be done via access control done during the HTTP exchange to
re-reference the URL. I would argue that only the latter
model ought be supported here since anyone can send a DHCP
request and see the associated response and (some) wireless
networks can span large areas so a bad actor can learn more
in seeing such a response. That also raises the question as
to what HTTP authentication and access controls a client
using these URIs MUST support. (I see that 3.1 says that the
"possession model" aka supposedly secret URI values, is the
default, but no justification is given for that.)

3) The intro (3rd last para) seems to suggest that home
routers be configured to set these options in responses but
says nothing about privacy. Personally, I think any such
router configuration would for privacy reasons be REQUIRED to
be off by default and only turned on if the user wishes.  I
can see that other opionions would be reasonable and have no
doubt that others will have other opinions. Did the WG
discuss that, if so, got a pointer to the archive?  If not,
maybe either drop the example or add some WG consensus text
about privacy for that case. 

4) Why does this not provide an option for the DHCP client to
control the LS' behaviour? Can you point me at or summarise
the WG discussion of that? I'm a bit surprised about that not
being done, since I'd have thought it'd be good for both
privacy sensitive folks and their opposites (if you know what
I mean). While we ought not provide options for fun, this one
would seem quite reasonable and would seem to provide support
for those who do and don't care about privacy at the same
DHCP relay/server. (I note 3.1 says this is out of scope, but
I don't see why.)

5) Does repeated use of the same value for a URI constitute
identity information? Arguably it does, given that use of
such URIs will be correlated with identity information. The
"MUST NOT reveal" in section 3 5th para if interpreted
strictly seems very onerous. It may be better to have a
positive MUST statement about peudo-randomness and
unpredicatability. 

6) How does the MUST NOT from discuss point 5 match the idea
that the location URI "indicate the residence's civic
address"? That seems plainly contradictory to me. Could be
this is just terminology, but I'd like to check.

7) I don't get how the valid URI schemes is in scope here but
the authorization model and other aspects of the
de-referencing UA are not. The DHCP client and server do not
have to do anything with the scheme, which is only relevant
to the de-referencing UA, but that UA also has to support (or
not) TLS or proxy authentication or OAUTH or whatever might
be needed for handling any real authorization.

8) The reliance on DHCP auth (3118) here seems to me to be
entirely bogus. In what circumstances do you expect 3118 to
be used? I think just deleting that reference to an almost
universally unused RFC would give a more accurate picture of
DHCP security. And I'm also unsure what threat is being
countered by 3118 in this context - I'm not sure having a
fake URI provided to the DHCP client is much of a threat.
Ted Lemon Former IESG member
Discuss
Discuss [Treat as non-blocking comment] (2013-03-30) Unknown
Section 2.3 of this document significantly modifies the DHCP protocol, to the extent that if the language in this section remains, it would be necessary to say that this document updates RFC3315 and RFC2131.   Updating RFC3315 and RFC2131 is not part of the geopriv charter; if indeed the author intends to update these RFCs, this document would need to be moved to the DHC working group and would need to become a DHC working group document, and would need to pass last call in that working group (DHC working group /is/ chartered to extend the DHCP protocol).

Normally option specifications do not update RFC3315, RFC2131 or RFC2132 because they are purely additive.   The reason that the text in section 2.3 is a problem is that it doesn't document a new option—it documents new _behavior_ for DHCP servers and clients.   It is this that is out of scope for geopriv work.

To illustrate, consider the following text:

  o Implementation of the Location URI Option is REQUIRED on the DHCP	
     server and client.

This updates the DHCP protocol by requiring that DHCP servers and clients implement this option; ordinarily implementation of new options is optional, and when done, is done by simply adding some new configuration boilerplate to the server configuration, and maybe a post-processing script on the client.

   o Clients SHOULD be expected to have to request the Location URI
     Option from servers. Although local policy can have servers
     perform an unsolicited push of a Location URI Option to a client.

This updates the DHCP protocol to supersede the statement in RFC3315 that DHCP servers MUST NOT send unsolicited options.   It skates the ragged edge of updating RFC2131 as well; RFC2131 does not forbid sending unsolicited options, but it doesn't require it either.

   o Servers SHOULD set the Valid-For timer to that of the lease
     refresh, or bad things can happen.

I talk about this below in the comments as well, but my DISCUSS-level objection to this is that since lease times are a negotiation, not a hard configuration on the server, in order to satisfy the SHOULD above, the server has to have special code for this option that derives the Valid-for time from the lease time.   This is another protocol change to DHCP, and hence out of scope for this document.   You haven't actually stated it as a requirement, so I suppose you could argue that it's the implementor's problem, but I think that would be splitting hairs—I think you really have updated RFC3315 and RFC2131 with this language.
Richard Barnes Former IESG member
Yes
Yes () Unknown

                            
Robert Sparks Former IESG member
Yes
Yes (for -17) Unknown

                            
Adrian Farrel Former IESG member
No Objection
No Objection (for -17) Unknown

                            
Benoît Claise Former IESG member
No Objection
No Objection (2013-02-04 for -17) Unknown
This document is scrutinized by Barry, Sean, Martin, and Stephen. I has enough attention, and I trust those ADs will do the right thing.
Brian Haberman Former IESG member
(was Discuss) No Objection
No Objection (2013-02-25) Unknown
Thanks for addressing my DISCUSS points...
Gonzalo Camarillo Former IESG member
No Objection
No Objection (for -18) Unknown

                            
Ron Bonica Former IESG member
No Objection
No Objection (for -17) Unknown

                            
Sean Turner Former IESG member
(was Discuss) No Objection
No Objection (2013-02-05 for -18) Unknown

                            
Stewart Bryant Former IESG member
No Objection
No Objection (2013-01-29 for -17) Unknown
There a couple of places where you use the work "deference" when I think you mean "dereference"
Wesley Eddy Former IESG member
No Objection
No Objection (for -18) Unknown