Dave Crocker wrote:
DC> uh oh.  when discussion starts including dictionary definitions, it is
DC> often worth stepping back and making sure that the right issue is being
DC> discussed.

My apology. I was merely trying to be precise. Sorry for the detour.

DC> .... And that observation was only intended to be
DC> relevant as an indicator that we (the community) probably do not have
DC> sufficient commonality to our use of the terms...

I see.  And tend to agree.  Furthermore, for me and perhaps a
number of other non-natives the issues are sometimes fairly
difficult since we often don't know the everyday meanings of
many words.  That is, at least I sometimes know a word from a
very specific technical (linguistic) context and have no idea
about its everday meaning and connotations.  "Identifier" may
be one such word.

PN> Well, in my thinking a specific identifier is only able
PN> to denote a specific entity.  That is, the relationship
PN> between an identifier and the corresponding identity should
PN> be a function, i.e., there must not be any identifiers
PN> that denote more than one entities.  Typically the
PN> relationship is (or should be) bijective.

DC> Apologies, but I am still not understanding well enough, I think. ...
DC>
DC> Some mappings between strings and objects are by arbitrary assignment.
DC> Some have a "semantic" process so that the string actually can be
DC> analyzed. ...

I completely agree.  My thinking about identifiers (as names
that identify) is that an identifier is a different from a mere
name in the sense that an identifier does have such a "semantic"
process associated with it.

For example, consider IP addresses.  They can be considered to
be identifiers for topological locations.  In that sense, the
IP address can be analyzed and understood to act as a pointer
to a certain topological location.

Let me take another example, public cryptographic keys.
A public key can be "analysed" and understood as a pointer
to (the sole holder of) the corresponding private key.

Thus, we can say that IP addresses are identifiers for locations
and public keys are identifiers for (the holders of) private keys.

PN>  In other words, an identifier implies sameness and stability of
PN>  the identified entity, while a name does not have those connotations
PN>  to the same extent.

DC> I guess I need some examples to understand this.

Let me take this the other way around.  It seems to be a
fairly common practise in computer science to create an
identifier space, and then to make the assumption that
the set of potentially identifiable entities is isomorphic
with the set of identifiers.  That is, you first create a
set of identifiers, and then define that the world consist of
a subset of the set of entities that can be named with those
identifiers.

This seems to be the case with IP addresses.  Even though
we have NAT today, we still seem to think that the set of
topological locations in the Internet is the set of locations
that can be given a unique globally routable IP address.

The same more or less applies to public keys.  If we use the
set of public keys as the set of identifiers, then the set of
identifiable entities consists of things that are able to hold and
process corresponding private keys.

PN>  Well, as I wrote above, I think that a name can be re-bound
PN>  while an identifier should not be re-bindable.

DC> In the Internet context. what would be an example of an identifier that
DC> cannot be re-bound?

As I wrote, identifiers *should* not be re-bindable, not that
it is impossible to re-bind them.  The desired property can
be achieved by at least two ways:
 - through some administrative procedure that ensures uniqueness
 - by using the "reverse process", as described above, i.e. by
   defining identity from identifiers and not vice versa.

Take the public keys example above.  If you define that the
identity of an entity is intrinsically bound to the private
key, then if you move the private key to another device, the
"entity" and its identity move at the same time, too.

DC> (And let me alert you to my belief that all of them
DC> can be.  ... In other words, all this stuff depends
DC> on precise -- and often arbitrary -- definitions and policy.)

We seem to agree :-)

---------------
[Moving from the definition of identifiers and identity to mobility.]
---------------

DC> I'm finding myself viewing multi-homing as a simple (ie, degenerate)
DC> case of mobility.

Well, I tend to view multi-homing as a dual of mobility.
If you are mobile, your topological presense spans several
locations over time.  If you are multi-homed, your topological
presense spans several locations over space.

PN>  As you write, the difference between client-side mobilty and P2P
PN>  mobility lies in rendezvous.  On the other hand, we also have to
PN>  remember that more and more servers are becoming mobile, in some way
PN>  or another (re-hosting, network re-numbering, etc).  Hence, I would
PN>  not consider these two types of mobility that different.

DC> In the long term, no.  but it's worth considering a simpler solution,
DC> for the simpler case, if a) we think there will be significant benefit,
DC> and b) deferring the more difficult part does not make it harder or less
DC> likely to be solved.

So far so good. We seem to agree....

DC> The mobile-client/stable-server example requires no new rendezvous
DC> mechanism and I think it covers a very, very large portion of current
DC> mobility needs.

... But now comes the problem point.  While I agree with what you
say, I am concerned about the implications.  That is, if we limit
out view to stable servers, we loose the possibility of deminishing
the importanse of stable addresses.  That is, the current Internet
practise requires stable addresses, and the mobile-client/stable-server
approach also requires stable addresses, for the server.  The
requirement of stable addresses, in turn, is the reason why people
are crying for provider independent addresses, and for much of the
recent brawl at the IPv6 mailing list.

DC> And I think that the rendezvous function needed for
DC> mutual mobility can be solved independently.

While I tend to agree, I'd also like to see that whatever solution
we adopt, it would also allow servers to change their IP addresses
while they have active connections.  In other words, IMHO we may
well leave the problem of simultaneous movements for later, but
we should create a rendezvous function that allows slow movements
of servers.  DynDNS may be sufficient for that.

PN>  No problem here.  On the other hand, if we had proper and secure
PN>  identifiers, packet forwarding would not be an architectural
PN>  problem, either.
DC>
DC> we probably disagree.  packet forwarding requires creating additional
DC> infrastructure, as we have been seeing for the considerable number of
DC> years of effort for the mobile ip work.  That's another reason for
DC> carving off forwarding to be separate from higher-level
DC> (non-infrastructure) mobility support.  At that point, forwarding
DC> becomes an optimization, rather than a necessity.

Actually I think that we agree.  I forgot that some people
may consider packet forwarding as a fundamental mobility mechanism;
for me it has been a mere optimization for at least four or five yers
now.  Hence, as an optimization, I don't necessarily consider it
as an architectural problem.  However, without proper security
support, even as an optimization it may become an architectural
problem.

---------------
[Moving from mobility to security.]
---------------

DC> I didn't mean that security wasn't important.  I mean that separating
DC> the security mechanism from the name administration (and, therefore, the
DC> "meaning" of the name) is usually better.

Well, I am not quite sure what you mean with name administration.

At least since 1996 or so I have been fairly convinced that most
probably only public keys (or other similar "things") are good
primary identifiers for entities in the network.  That is, it is
better first to assign a public key pair to an entity, and then
worry about "naming" the entity with some name that has any semantic
meaning to the applications.

DC> Clearly, the ability to hijack a name can be a very serious danger.

Under fairly benign assumptions, it is fairly hard to hijack
public keys.  (But not impossible, of course.)  Other names
are then assigned by the application, and only meaningful in
the application context.  The application is also responsible
for establishing the secure relationship between the application
specific names and the entity identifiers, i.e., public keys.
This is the approach used in SDSI, SPKI, and related work.

PN>  Well, I am mostly concerned secure identifiability.  Is that
PN>  clear enough, or should I pursue the issue more?

DC> a bit more, please.  remember that we are trying to understand why
DC> end-point identifiers are required, or at least what they are required
DC> for.  i'm not seeing how security is a serious issue for that goal.

In our 2002 Cambridge paper, we use the following classes
of "weak authentication" methods:

  - challenge response (e.g. Return Routability)
  - anonymous encryption (e.g. unauthenticated D-H)
  - leap of faith (e.g. SSH)

With secure, long lasting identifiers we are able to achieve
leap of faith.  That is, we can recognize a party the next time
we encounter it.  Without secure, long lasting identifiers we
can't do more but simultaneous challenge response and anonymous
authentication.

These two different security models have different implications
to the cost of attacks, and to the overall level of trust that
can be achieved.

DC> Alas, the IETF has an essentially unbroken track record of failing to
DC> gain large-scale use for any security technology created in the IETF.

I have started to think that one reason behind this may be
lack of economic understanding.

--Pekka Nikander





Reply via email to