[These are comments that were sent to the authors at the end
of the IETF Last Call. A new rev soon to appear will reflect
these comments and since they were extensive, it was deemed useful
for the WG to see them]
I reviewed draft-ietf-ipngwg-addconf-privacy-03.txt carefully
and I have a number of small and larger comments. I found the
draft to be strong (parts of it very strong) but I thought it
could use a new thorough review.
There is a pressing need for this spec so I strongly support
its publication when these comments have been addressed.
In addition to this draft getting published as a standard,
I'd like to urge that work be done on the API for use of the
privacy extensions.
Allison
------------------
Typo
----
Sec 3.5
applications are used by end users. Thus the default value given of
one week (ANON_PREFERRED_LIFETIME) may not be appropriate in all
environments. Implementations should provide end users with the
ability to override both of these default values.
s/ANON_PREFERRED_LIFETIME/ANON_VALID_LIFETIME
Detailed comments
-----------------
Sec 1
By design, the interface
identifier is globally unique when generated in this fashion. The
interface identifier is in turn appended to a prefix to form a
128-bit IPv6 address.
Since RFC2462 doesn't allow counting on the EUI-64 interface id being
unique even on the link (MUST do DAD on the generated link-local
address) this bit of intro is too strong. A more accurate wording would
be: "There is an expectation that the interface identifier
generated in this way will be globally unique, and that this might
be a valuable property for future approaches to hierarchical routing,
as explained in [ADDRARCH]." Or more simply:
s/is globally unique/is likely to be globally unique/
described may also apply to interfaces with other types of globally
unique and persistent identifiers.
This is good, but should say "globally unique and/or persistent"
This document discusses concerns associated with the embedding of
non-changing interface identifiers within IPv6 addresses and
describes extensions to stateless address autoconfiguration that can
help mitigate those concerns in environments where such concerns are
significant.
Nit: the last phrase sounds like a diminution of likelihood of
such concerns existing. An alternative phrasing that implies
a bit more concern for privacy: "help mitigate those concerns for
individual users and in environments where such concerns are significant"
Sec 2.1
serves as a similar identifier. Although the DNS name associated with
an address is more work to obtain (it may require a DNS query) the
information is often readily available. In such cases, changing the
address on a machine over time would do little to address the concern
raised in this document, as the DNS name would become the correlating
identifier.
Instead of the "would do little..." final sentence, which suggests
that anonymous addresses are defeated by inverse DNS, this paragraph
should send with a sentence like "In such cases, nodes using
anonymous addresses might also use some form of anonymous DNS names
(see Section 4)".
Sec 2.2
Sec 2.2's first paragraph begs for a comparison with the Intel
PIII serial number. It seems to me that it would be best to be
up-front about the problems being comparable.
Sec 2.2 (cont)
Many network services require that the client authenticate itself to
the server before gaining access to a resource. The authentication
step binds the activity (e.g., TCP connection) to a specific entity
(e.g., an end user). In such cases, a server already has the ability
to track usage by an individual, independent of the address they
happen to use. Indeed, such tracking is an important part of
accounting.
This paragraph undercuts the whole purpose of the draft and ought
to be rewritten. Sec 2.2 in fact sends an undercutting message:
becasue identification and tracking goes on, therefore
don't worry about your IP addresses being trackable. A better
message from the section (and one more appropriate to the draft)
would be: don't undermine higher level technologies for improving
the privacy of applications by leaving every packet trackable at
low level.
Examples of attempts to improve privacy at higher level that could
be undercut by trackable packets:
1. varying one's registrations at a web-based service
2. rejecting persistent cookies and only allowing session cookies
It is possible to avoid persistent higher level identifiers. People
create changing or multiple identities per site or for different sites.
Even sites where registration is an email address can be given
varied inputs by using multiple free email accounts. Credit card
registration is the subject of a US mandate to go to one-time credit
card numbers. However, all of these kinds of anonymizing are
undermined by having a trackable IP address.
Sec 2.3
In such environments, one may need multiple addresses: a "public" (i.e.,
non-secret) server address, registered in the DNS, that is used to
accept incoming connection requests from other machines, and
(possibly) an "anonymous" address used to shield the identity of the
Nit: sentence already has "may," so why add further distance with
the "(possibly)"?
To make it difficult to make educated guesses as to whether two
different interface identifiers belong to the same node, the
algorithm for generating alternate identifiers must include input
that has an unpredictable component from the perspective of the
outside entities that are collecting information. Picking identifiers
from a pseudo-random sequence suffices, so long as the specific
sequence cannot be determined by an outsider examining just the
identifiers that appear in addresses or are otherwise readily
available (e.g., a node's link-layer address).
It's bad news if the node's link-layer address is "readily
available" to arbitrary remote peers - the last parenthesis
doesn't make sense in this draft about not embedding link-layer
addresses in packet addresses....
Sec 3.1
The algorithm also assumes that for a given anonymous address, one
can determine the corresponding public address.
Who does "one" refer to? I think this sentence must intend to
say "The algorithm also assumes that there is an internal data
structure available to address autoconfiguration matching a given anonymous
address to its corresponding public address", but it can be read
as saying there's an algorithmic conversion from the anonymous
back to the public.
Finally, this document assumes that when a node initiates outgoing
communication, anonymous addresses can be given preference over other
public addresses.
Delete "other".
This can mean that all outgoing connections use
anonymous addresses by default, or that applications individually
indicate whether they prefer to use anonymous or public addresses.
Replace "outgoing connections" with "connections
initiated by the node". Mention somewhere that applications
indicating their preference for an anonymous address is one
example of API work that is needed in conjunction with this
spec.
Sec 3.2
a randomized interface identifier may need to be
generated at random.
Repetitive.
s/at random/without previous state/
Sec 3.5
This can be achieved automatically by
generating a new randomized interface identifier at least once every
(ANON_PREFERRED_LIFETIME - REGEN_ADVANCE) time units. As described
above, generating a new anonymous address REGEN_ADVANCE time units
before an anonymous address becomes deprecated produces addresses
with a preferred lifetime no larger than ANON_PREFERRED_LIFETIME.
I think this should have the same mechanism of desynchronizing the nodes
that RFC2461 has, because nodes that start up after a power failure
could have their new randomized interface timers synch up and cause
a daily DAD flood.
Sec 4
The IPv6 addressing architecture goes to great lengths to ensure that
interface identifiers are globally unique.
s/great lengths/some lengths/
s/are globally unique/may be globally unique/
The sentence is too strong, compared with the address architecture
RFC (even the new i-d). And as before, saying the EUI-64's are
surely globally unique is contradicted by Addrconf requiring DAD
on them.
During the IPng
discussions of the GSE proposal [GSE], it was felt that keeping
interface identifiers globally unique in practice might prove useful
to future transport protocols. Usage of the algorithms in this
document would eliminate that future flexibility.
I disagree that the anonymous addresses would eliminate a GSE-like
future scheme, any more than using any addresses where the u/l bit is
unset is doing so already. There are other ways that a GSE-like
future scheme might be work, for instance, using global interface ids
as input to a cryptographic registry that would return an anonymized
interface id to use in the address. Wording suggestion:
s/eliminate that future flexibility/possibly complicate that future
flexibility/
DNS name (if non-changing) serves as a constant identifier. If the
extension described in this document becomes widely deployed, servers
will likely need to change their behavior to not require every
address be in the DNS. Another alternative is to register anonymous
addresses in DNS using random names (for example a string version of
the address itself).
Sweeping changes to server behavior are unlikely/hard to drive.
The prospect of anonymized DNS names (as mentioned next) is better.
Perhaps change the last two sentences to be both more realistic and more
constructive:
The wide deployment of the extension described in this document could
challenge the practice of inverse-DNS-based "authentication," which
is has little validity, though it is widely implemented. In order
to meet server challenges, nodes could register anonymous addresses
in DNS using random names (for example a string version of the
random address itself).
Sec 6
Use of the extensions defined in this document is likely to make
debugging and other operational troubleshooting activities more
difficult.
Not certain - when the troubleshooting regards nodes that are
in LAN segments controlled by an administrator, it should be
possible to register and identify nodes by their layer 2 addresses
(RMON can give access to that sort of trace). If the troubleshooting
regards distant nodes, it's already the case that the addresses
won't give much help (e.g. in DDos).
--------------------------------------------------------------------
IETF IPng Working Group Mailing List
IPng Home Page: http://playground.sun.com/ipng
FTP archive: ftp://playground.sun.com/pub/ipng
Direct all administrative requests to [EMAIL PROTECTED]
--------------------------------------------------------------------