Presence service basics

[email protected] (John D. Ramsdell)
Newsgroups gmane.ietf.impp
Message-ID <[email protected]>
I feel overwhelmed again.  Rather than responding to the many messages
in my inbox, let me observe that I think there are hidden assumptions
people are making that are causing confusion on this topic.  Let me
try to expose the assumptions that I think I may be making, and
thereby clarify my position.

In this note, let me adopt the convention that a word in all caps is
to be interpreted as defined in RFC 2778.  Thus the word PRINCIPAL
means a "human, program, or collection of humans and/or programs that
chooses to appear to the PRESENCE SERVICE as a single actor, distinct
from all other PRINCIPALS".

To discuss the issues around authentication, we must adopt some basic
terms from computer security.  In particular, I will use the term
subject to refer to a person or a service that invokes operations on
objects.  

Subjects may be known by many identifiers.  In computer security
circles, the term principal is often used for a subject's identifier,
but to avoid confusion, let me call one of these identifiers a subject
name.

Subjects possess private keys.  One of the reasons I must define some
terms is because RFC 2778 does not have a term for the things that
possess private keys.  In particular, both PRINCIPALS and PRESENCE
SERVICES may possess private keys.

RFC 2778 presents a model for presence service in which there are
three kinds of operations and two kinds of objects.  Objects are
either PRESENTITIES or WATCHERS.  A subject may apply the subscribe
operation to a PRESENTITIY.  Since we are not addressing subscription
authentication now, I'll ignore this operation.  A subject may apply a
notification operation to a WATCHER.  Finally, a subject may apply an
update operation to a PRESENTITY.  This is used to change the PRESENCE
INFORMATION in a PRESENTITY.  RFC 2778 does not name this operation,
but the diagram in Fig 6 shows a human updating a PRESENTITY via a
PRESENCE USER AGENT.

Certificates provide subjects with names.  When used with digital
signatures, subjects can prove they are authorized to use the name.
As long as a subject protects its private key, no other subject can
demonstrate that they may use this name.

X.509 Certificates provide a subject with something called a
Distinguished Name (DN).  In the example from message

   http://www.imppwg.org/ml-archive/IMPP-WG/200208/msg00007.html

the Goose Dog's DN is

   C=US, ST=MA, L=Bedford, O=The MITRE Corporation,
   CN=Kato the Goose Dog/[email protected]

X.509 Version 3 Certificates provide a subject with alternative names.
Goose Dog's alternative names are:

   X509v3 Subject Alternative Name: 
       URI:im://[email protected], URI:pres://[email protected]

Let me describe how many organizations assure that private keys are
matched with the appropriate subject when the subject is a person.

The person requests a certificate, and when the certificate is made by
the certificate authority, visits the people that distribute
certificates.  The person shows a picture ID, and receives a floppy
that contains the certificate, the private key, and probably the
certificate authority's root certificate.  The person installs the
private key in a protected area on a machine they can physically
protect, and then places the floppy under lock and key.  The private
key should never leave the machine.  The certificate will be
distributed, and is often made available to all with an LDAP server.

A reason I have explained this processes in such detail is to address
the issue of who signs PRESENCE INFORMATION.  If a person signs it,
then it must be done via a PRESENCE USER AGENT on a machine over which
the person has physical control, so that the private key is available.
It is unreasonable to assume this machine will be constantly available
to distribute PRESENCE INFORMATION, so PRESENCE INFORMATION signed by
a person cannot be modified when the person turns of their machine.

The only alternative is to have a service sign PRESENCE INFORMATION.
A service can sign PRESENCE INFORMATION when it changes, or when it is
requested.  I hardly makes much difference to the service.  In both
cases, it must possess the private key.

If a service has the ability to modify PRESENCE INFORMATION, than it
must be able to sign it.  For example, if a user goes off line without
updating their PRESENCE INFORMATION, one would hope that the service
would detect and modify the PRESENCE INFORMATION to reflect the user's
change in status.  In summary, it is trivial to timestamp notification
requests except in the case in which people sign PRESENCE INFORMATION.
Surely it is wrong to forbid services from providing this information
just because some PRESENCE INFORMATION is signed by people.

Let me change the topic to Subject Alternative Names.  Let me describe
how certificates with Subject Alternative Names are often distributed.
The certificate obtained with a physical visit I described above is
called one's identity certificate.  It usually has no Subject
Alternative Names other than an Email address.  As shown in the Goose
Dog's certificate, the Email address may also be placed in the Common
Name (CN) field of the subject's DN.  This is an ugly hack to make up
for the fact that Version 1 certificates do not contain Subject
Alternative Names.

Jon Peterson, this part is for you.  To obtain an application specific
certificate, encrypted Email can be used with the identity
certificate.  For instant messaging, one would send an encrypted
request for a new certificate that duplicates most fields in the
original certificate, but adds the person's INSTANT INBOX and
PRESENTITY identifiers as Subject Alternative Names.  Application
specific certificates are easily created and distributed once identity
certificates have been distributed.

In a previous note, I said the following about a presentity set
identifier:

    The identifier names the set of presentities that are identified
    by PRES URI's that share the same domain name part.  I think this
    name is more in line with RFC 2778.  A person or service that
    possesses an X.509 V3 Certificate with a PRES URI in its
    subjectAltName can sign for the named presentity.  A person or
    service that possesses an X.509 V3 Certificate with a presentity
    set identifier in its subjectAltName can sign for any presentity
    that is named by an element of the set.

The final point I would like to make is that the _only_ thing a
presentity set identifier does is allow a subject to have an infinite
number of subject names.  It gives a subject the authority to use any
PRESENTITY identifier that shares its domain name.  There is nothing
more to it.

John



  [reminder: [email protected] for non-technical discussions, please]
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.