Internet Engineering Task Force                H. Zandbelt, B.Hulsebosch
Internet Draft                                      Telematica Instituut
draft-zandbelt-idsec-00.txt                                 January 2002


                IDsec: Virtual Identity on the Internet


Status of this Memo

   This document is an Internet-Draft and is in full conformance with
   all provisions of Section 10 of RFC2026.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF), its areas, and its working groups. Note that other
   groups may also distribute working documents as Internet-Drafts.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time. It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress".

   The list of current Internet-Drafts can be accessed at
   http://www.ietf.org/ietf/1id-abstracts.txt

   To view the list Internet-Draft Shadow Directories, see
   http://www.ietf.org/shadow.html.

Abstract

   IDsec is a mechanism that provides an identity for users on the
   Internet. Identity in IDsec means that a user is known by a certain
   profile that contains precisely those attributes that the user wants
   to reveal to the requester of his profile. Access to profile
   attributes is managed by the user himself. Certificates and
   public/private key mechanisms ensure that information is exchanged in
   a secure way only between parties that trust each other.

Table of Contents

   1.  Introduction....................................................2
   2.  Overview........................................................2
   3.  Definitions.....................................................3
   4.  Profiles........................................................4
   5.  Access Control Lists............................................5
   6.  Trusted Certificates............................................6
   7.  Session Certificate.............................................6
   8.  Profile Manager.................................................7



H.Zandbelt, B.Hulsebosch                                        [Page 1]


Internet Draft                    IDsec                     January 2002


   9.  Profile Owner..................................................10
   10. Profile Requester..............................................11
   11. Relationship between Profile Owner and Profile Manager.........12
   12. Relationship between Profile Requester and Profile Manager.....13
   13. Relationship between Profile Owner and Profile Requester.......14
   14. Content Distribution Network Provider..........................14
   15. Certificate Management.........................................15
   16. Profile Updates................................................15
   17. Usage Scenario's...............................................16
   18. Conclusion.....................................................16
   19. Security Considerations........................................16
   20. References.....................................................16
   21. Author's Addresses.............................................17
   22. Acknowledgments................................................18
   Appendix A: Interaction Diagrams...................................18
   Appendix B: Profile DTD............................................19
   Appendix C: Example Profile Attributes.............................19

1.  Introduction

   Today many services exist on the Internet that require some form of
   user identification or user information, e.g. for personalisation or
   e-commerce purposes. These services rely on customer information to
   improve their quality by using previously acquired knowledge about
   users stored in user profiles. However each of these services
   implements its own mechanism for that purpose, wich leads to user
   information redundancy, fragmentation and possible inconsistency.
   Moreover the current situation forces users to maintain multiple
   profiles at multiple service providers. This overload of personal,
   possibly privacy-sensitive, information floating around the Internet
   leads to great issues of trust.

   In this memo we present a generic mechanism for establishing Virtual
   Identities on the Internet, that standardises protocols and
   interfaces for exchanging identity information between users and
   service providers in a secure manner. It enables users to reuse
   profile information across Internet services and service providers to
   delegate (part of) their customer information maintenance.

2.  Overview

   Profiles are stored with so-called Profile Managers somewhere on the
   Internet. Profile Managers are parties that have a trusted
   relationship with the Profile Owners whose Profiles they have stored
   in their databases.

   A Profile Manager runs a server application that allows his clients
   to modify their Profile over a secure connection. In addition to



H.Zandbelt, B.Hulsebosch                                        [Page 2]


Internet Draft                    IDsec                     January 2002


   modification of attributes and their values, Profile Owners can
   assemble Access Control Lists that specify which attributes are
   accessible to which Profile Requesters. Access Control Lists are
   based on certificate [10] information.

   Upon starting an Internet action that requires the use of IDsec, a
   Profile Owner will login with the Profile Manager. This "session
   login" will result in the creation of a "session certificate" that is
   sent to the Owner. The session certificate represents the Owner in
   the current Internet session and it contains a reference to the
   location of his Profile.

   The Profile Owner sends the session certificate to the IDsec enabled
   Profile Requester. The Requester in his turn, sends it together with
   his own root certificate to the location specified in the session
   certificate. The Profile Manager uses the session certificate to
   identify the Owner and to assemble a Profile Requester specific
   Profile based on the Requester credentials and the Access Control
   List that the Owner specified.

   The Profile Requester now has a customer Profile that he can use to
   personalize content, to do accounting and/or billing (eventually in
   combination with a third party) and any other business that he would
   normally do with locally stored customer data.

   Notice that IDsec supports "anonymous browsing" and single sign-on;
   it does not neccesarily reveal the name and address of the Profile
   Owner or any other attribute that uniquely identifies the Profile
   Owner. IDsec transmits exactly those attributes that an Owner trusts
   to be sent to the Pequester.

3.  Definitions

   Attribute

      A name-value pair in a Profile.

   Profile

      A set of attributes that represents a Profile Owner on the
      Internet.

   Profile Owner (or Owner)

      A role for a party on the Internet that wants Profile Requesters
      to associate him with a certain Profile.

   Profile Requester (or Requester)



H.Zandbelt, B.Hulsebosch                                        [Page 3]


Internet Draft                    IDsec                     January 2002


      A role for a party on the Internet that wants to associate another
      party with a Profile.

   Profile Manager (or Manager)

      A role for a party on the Internet that stores a Profile for a
      Profile Owner and makes it accessible for Profile Requesters.

4.  Profiles

   A Profile is a data record that contains information about a certain
   Profile Owner. It represents an Owner and as such it can be helpful
   in many circumstances on the Internet. In the IDsec system, the
   information that is typically found in legacy user profiles like
   name-address type of information, may be extended with information
   that has a more dynamic, session-oriented nature. Examples are
   presence related information and terminal related settings.

   A basic Profile contains vCard-like [11] information such as:

      Name
      Address
      Telephone Number
      E-mail address

   In addition to that it may contain billing-related information such
   as:

      Creditcard data
      Bank-account data

   This is expected to be valuable in the e-commerce type of web-
   services. Furthermore a Profile could contain user preferences such
   as:

      Home environment specific data
      Application specific data
      Service Provider specific data

   The IDsec Profile consists of a set of name-value tuples called
   attributes.  The attribute namespace is a directory like hierarchy
   thus supporting namespaces. A typical attribute example is:

      "private.address.zipcode"

   or

      "billing.creditcard.expirydate".



H.Zandbelt, B.Hulsebosch                                        [Page 4]


Internet Draft                    IDsec                     January 2002


   A Profile can be stored in a Manager specific way but it is presented
   and transferred to Requesters in a simple XML format with the DTD
   found in Appendix B - Profile DTD. A typical Profile example is:

      <profile>
         <context name="private"><context name="address">
            <attribute name="zipcode">
               <value>
                  7500 AN
               </value>
            </attribute>
         </context></context>
         <context name="billing"><context name="creditcard">
            <attribute name="expirydate">
               <value>
                  01/01/2004
               </value>
            </attribute>
         </context></context>
      </profile>

   All attributes that can be found in a Profile must be standardized
   and must therefore be described in standards documentation. However
   the defined set is expected to be extended on a regular basis. The
   standard must also specify the type of the value and how it should be
   interpreted. This document does not attempt to standardize
   attributes; only example attributes names and their value types have
   been defined so far. (see Appendix C - Example Profile Attributes).

5.  Access Control Lists

   In addition to an attribute value, the Profile Manager also offers
   the possibility of defining and storing an Access Control List (ACL)
   for each attribute. An ACL specifies exactly which Requesters have
   read-access to the attribute value. ACL values are based on
   information found in a certificate [10] (called Requester
   certificate) that a Requester has to present to get access to a
   specific attribute. An Access Control List consists of one or more
   Access Control Elements (ACE). Each ACE consists of 4 elements:

   o  Distinguished Name

      This field contains a regular expression that needs to be matched
      against the Distinguished Name field that is presented in the
      Requester certificate.

   o  Organization




H.Zandbelt, B.Hulsebosch                                        [Page 5]


Internet Draft                    IDsec                     January 2002


      This field contains a regular expression that needs to be matched
      against the Organization field that is presented in the Requester
      certificate.

   o  Organizational Unit

      This field contains a regular expression that needs to be matched
      against the Organizational Unit field that is presented in the
      Requester certificate.

   o  Issuer

      This field contains a reference to the root certificate of the
      Certificate Authority that issued the Requester certificate. This
      issuer's root certificate is also stored with the Profile Manager
      so it can be used to validate the signature on the Requester
      certificate. (see Trusted Certificates)

   In order to be able to read the attribute value that the ACL is
   associated with, the Requester must present a certificate that
   matches one of the ACEs in the ACL on all four fields. A special
   value ACL exists that denotes a so-called "public" attribute, ie. an
   attribute that is readable by any Requester.

6.  Trusted Certificates

   The Profile Manager must offer the possibility of uploading and
   storing root certificates of Certificate Authorities that are trusted
   by the Profile Owner. Each Owner can upload his own trusted
   certificates that have to be used to validate the Requester
   certificates. In addition to the "personal" trusted certificates, a
   Profile Manager may predefine a set of root certificates that he
   considers to be trusted. This would prevent him from storing for
   example, Verisign root certificates, several times for multiple
   Profile Owners. Notice that this does not neccesarily mean that an
   Owner automatically trusts these certificates; he can choose not to
   use these predefined certificates in his ACLs.

7.  Session Certificate

   This certificate identifies the Profile Owner's Internet session in
   the context of a Profile Manager. The certificate itself does not
   reveal any information about the Owner; it serves as a pointer to a
   Profile. The information in the Session Certificate consists of the
   following components:

   o  Session Identifier




H.Zandbelt, B.Hulsebosch                                        [Page 6]


Internet Draft                    IDsec                     January 2002


      The session identifier serves as a pointer to the session,
      meaningful only in the environment of the Profile Manager where
      the certificate was created. Although it uniquely identifies a
      session, and therefore points to a specific Owner, the identifier
      itself must be constructed in such a way that it does not reveal
      information about the session or the Owner of the session.

   o  Profile Manager Location

      This is a reference to the Profile Retrieve Service (see Profile
      Retrieve Service). This service can be used to retrieve the
      Profile of the Owner associated with the session certificate
      (after authentication and authorization of the Requester).

   o  Profile Manager Signature

      The Session Certificate is signed by the Profile Manager so the
      integrity of the data in the certificate can be verified by the
      Profile Manager when it is presented by a Requester for Profile
      retrieval. In case of a trusted relationship between Profile
      Requester and Profile Manager (see Relationship between Profile
      Requester and Profile Manager), the Requester can also check the
      integrity of the certificate.

   o  Public Key

      The public key in the Session Certificate is generated by the
      Profile Owner together with a private key that is stored on his
      local system. Whenever information needs to be passed in a secure
      manner from Profile Requester to Profile Owner, the public key can
      be used by the Requester to encrypt the data. The Owner can use
      the corresponding private key to decrypt the data.

   o  Expiration Date

      The Session Certificate contains an expiration date so that the
      certificate cannot be reused after the specified date. This
      enables a Manager to manage the amount of (unused) session data in
      an efficient way.

8.  Profile Manager

   The Profile information is stored by a so-called Profile Manager that
   is trusted by the Profile Owner. Notice that it is possible for a
   Profile Owner to act as his own Profile Manager (see Profile
   Management Service). A Profile Manager enables a Profile Owner to
   manage his Profile and he offers access to Profile information to
   interested third parties such as Internet Service Providers and



H.Zandbelt, B.Hulsebosch                                        [Page 7]


Internet Draft                    IDsec                     January 2002


   Content Distribution Network Providers. Three services must be
   offered by the Profile Manager:

   o  Profile Management Service

      This is a service that a Profile Owner can access to manipulate
      his Profile data. In the case of a Profile Manager operating for
      multiple Owners, it is likely that all data is stored in a back-
      end database server. The Profile Management Service is accessed by
      means of a client application that an Owner can use to manipulate
      Profile attributes, their values, their ACLs and the stored
      certificates.

      Strictly spoken the client application and the communication
      between Profile Manager and Profile Owner can be Manager specific
      and needs not to be standardized by this document. One could even
      operate a so-called Local Profile Manager, implemented as a
      service running on the Owner machine, where communication is done
      through function calls to libraries.

      However, all external communication must be done over a secure
      encrypted channel. Upon establishing this channel, both parties
      must be able to verify each other by means of commonly agreed
      authentication mechanisms. The Owner credentials are possibly, but
      not necessarily, stored as ordinary (non-externally accessible)
      Profile attributes. A typical solution would be a HTTPS [4]
      connectivity where a Profile Manager server certificate must be
      presented to the Owner when the connection is initiated (see
      Profile Owner - Profile Management Application).

   o  Session Login Service

      A Profile Manager runs a Session Login service that provides
      Session Certificates to Profile Owners. When an Owner successfully
      logs into this service with Manager specific credentials, a so-
      called session is established. In addition to credentials, the
      Owner must also present the public key of a dynamically created
      public/private keypair. As a result of the login phase a Session
      Certificate is returned to the Owner (see Session Certificate).

      Similar to the Profile Management Service, the Session Login
      service can be implemented in a Manager specific way. However a
      typical solution would again be a service over an HTTPS connection
      in which the Profile Manager authenticates himself with a server
      certificate (see Profile Owner - Session Login Application).

   o  Profile Retrieve Service




H.Zandbelt, B.Hulsebosch                                        [Page 8]


Internet Draft                    IDsec                     January 2002


      This is a service that a Profile Requester can access to retrieve
      a Profile Owner's Profile. The Requester presents a Session
      Certificate sent by the Owner together with his own Requester
      certificate to the Profile Retrieve Service in the Profile
      request. The Profile Retrieve Service verifies the Session
      Certificate and uses the session identifier to find the Owner that
      is associated with the session. The Profile Manager verifies the
      Profile Requester certificate by means of the trusted certificates
      that the Owner stored with his Profile (see Trusted Certificates).
      Upon successful verification, a Requester specific Profile is
      assembled by interpreting the Access Control Lists for each
      attribute.  An XML formatted subset of attributes (see Profiles)
      is sent in the Profile response to the Requester.

      The communication channel must be made secure by using
      public/private key encryption techniques. Several communications
      channels may be defined that ultimately return an encrypted
      Profile. The type of channel will be reflected in the Profile
      Manager location reference that is transferred in the Session
      Certificate. Two communication channels have been defined so far:

      1) HTTP

         A URL [7] of the form "http://<host>/<path>" indicates that the
         request for a Profile is sent over plain HTTP [3] and that the
         Profile is returned as a encrypted data in a plain HTTP
         response. The HTTP request data consists of the Profile
         Requester certificate, which is checked against the Access
         Control Lists of the Profile attributes.

         Notice that this scheme implies that any data that is sent
         along with the request (possible indications about subsets of
         Profiles, or Requester specific extensions) is unencrypted. A
         default request will contain only public data in which case
         this is not a security problem. The HTTP response data,
         consisting of the XML formatted Profile (see Profiles) must be
         encrypted with the public key that is found in the Profile
         Requester certificate.

      2) HTTPS

         A URL [7] of the form "https://<host>/<path>" indicates that
         the request and the response for a Profile is sent over a HTTPS
         [4] connection. The HTTPS connection is setup with the Profile
         Requester certificate as a client certificate and the Profile
         Manager certificate as the server certificate.

         Notice that the exchanged certificates cannot be checked by the



H.Zandbelt, B.Hulsebosch                                        [Page 9]


Internet Draft                    IDsec                     January 2002


         Profile Manager nor by the Profile Requester because in general
         they don't have a trusted relationship (see Relationship
         between Profile Requester and Profile Manager). However we
         choose for defining an HTTPS communication mechanism since it
         is a convenient means of secure communication, which meets our
         demand for encryption. Future extensions of the request format,
         (for example primitives to ask for a subset of a Profile, or
         Requester specific data) will perhaps require encryption of the
         request, which in that case is already covered by HTTPS.

9.  Profile Owner

   At the client side three seperate functionalities can be
   distinguished:

   o  Profile Management Application

      Profile maintenance is done by logging into the Profile Management
      Service (see Profile Manager - Profile Management Service). A
      client application is used to edit Profile attributes, their
      values, their ACLs and the stored certificates. Both sides must
      authenticate each other and a secure communication channel must be
      established.

      All components (application, service, authentication and channel)
      may be Manager specific.

      Typically a Profile Owner will gain access to the Profile
      Management Service with a username/password combination and the
      Profile can be manipulated through a set of HTML [6] pages in a
      browser over an HTTPS connection. A Profile Manager server
      certificate will be presented to the Owner who must be able to
      verify it.

   o  Session Login Application

      Upon entering an IDsec enabled Internet site, the Profile Owner
      will be asked for a Session Certificate (see Session Certificate).
      To receive a Session Certificate, an Owner must log into the
      Session Login Service (see Session Login Service) with his Manager
      specific credentials, likely to be the same as he uses for the
      Profile Management Service (see Profile Management). In addition
      to that, he needs to generate a public/private keypair and include
      the public key in the Session Login request. As a result of that
      action, a Session Certificate will be returned, containing the
      public key sent in the request and signed by the Profile Manager
      (see Session Certificate).




H.Zandbelt, B.Hulsebosch                                       [Page 10]


Internet Draft                    IDsec                     January 2002


      Similar to the Profile Management Service, the Session Login
      service can be implemented in a Manager specific manner.

      Typically an Owner will log into the Session Login Service with a
      username/password combination over an HTTPS connection where a
      server certificate will identify the Profile Manager.

   o  Session Certificate Handler

      At the client side, functionality is needed to extend Internet
      service requests with Profile related information and to be able
      to interpret any Profile related responses from IDsec enabled
      Internet sites. A typical way to offer this functionality is by
      means of a service specific plugin or a generic Internet proxy.
      The handler will intercept Session Certificate requests from IDsec
      enabled sites and it will present the certificate that is
      retrieved by the Session Login Application. After doing so, a
      specific Internet request header will be included with every
      following request that serves as a pointer to the Session
      Certificate, so that the certificate itself does not need to be
      passed with every request.

      When the Profile Requester wishes to verify the Owner of the
      Session Certificate, he must send challenge data (see Profile
      Requester - Encryption Handler) that will be answered by the
      handler, using the private key generated in the Session Login
      phase. For details the reader is referred to Appendix A -
      Interaction Diagrams.

10. Profile Requester

   Any party on the Internet, for example an Internet Service Provider,
   that is interested in the Profile of a user that is accessing his
   Internet site, can use IDsec software to get access to the Profile
   attributes; by doing so, he is called a Profile Requester in the
   IDsec terminology. To that purpose the Profile Requester may use
   IDsec software suited for use in the specific server environment that
   he operates. The IDsec library must offer the following
   functionality:

   o  Session Certificate Request Component

      The Profile Requester uses this component to intercept any non-
      IDsec-aware requests that the Owner sends and to ask for a Session
      Certificate. If a Session Certificate cannot be presented by the
      Owner (possibly because he is a non-IDsec-aware user), normal
      operation is resumed, otherwise the Profile Request Component will
      be used to get access to the Profile data of the Owner associated



H.Zandbelt, B.Hulsebosch                                       [Page 11]


Internet Draft                    IDsec                     January 2002


      with the Session Certificate.

   o  Profile Request Component

      This software component is a client application of the Profile
      Retrieve Service. It extracts the Profile Manager location
      reference from the Session Certificate and sends a request for a
      Profile to that location. The Profile request must contain both
      the Session Certificate and the Profile Requester certificate (see
      Profile Retrieve Service).

   o  Encryption Handler

      A Profile Requester cannot be sure of the identity of the Owner
      based only on the sending of the  Session Certificate. That
      certificate may have been snooped and (re)used by a malicious
      user. Therefore he may want to verify that the sender of the
      Session Certificate is the rightful owner by using the Encryption
      Handler. It will send challenge data encrypted with the public key
      in the Session Certificate. Upon a successful response (see
      Profile Owner - Session Certificate Handler), the Requester can be
      sure that the session certificate was sent by the party that owns
      the corresponding private key, thus the owner of the certificate.

      In general a Profile Requester must encrypt any privacy sensitive
      data that is sent to the Owner with the Session Certificate public
      key. For large amounts of data or streaming data, a secure data
      channel may be established using the Session Certificate public
      key. A TLS [5] connection is a convenient example.

   Notice that the trusted relationship between Owner and Requester (see
   Relationship between Profile Owner and Profile Requester) also
   implies that the Requester must not send unencrypted content that
   reveals any access-restricted Profile information about the Owner.
   For example: a Web Service Provider cannot do content adaptation of
   HTML pages for Owner Bob saying "Hello Bob", if the attribute
   containing the name "Bob" is not a public attribute.

11. Relationship between Profile Owner and Profile Manager

   A trusted relationship must exist between an Profile Owner and his
   Profile Manager.

   o  A Profile Owner must trust the Profile Manager

      The Owner stores his privacy-sensitive data at the Manager. He
      trusts the Manager to protect his privacy sensitive data and to
      enforce the Access Control policies on the Requesters.



H.Zandbelt, B.Hulsebosch                                       [Page 12]


Internet Draft                    IDsec                     January 2002


   o  A Profile Manager must trust a Profile Owner

      The Manager has a customer-provider relationship with the Owner.
      Before accepting an Owner as a customer, the Profile Manager will
      ensure that the Owner is a trustworthy partner with respect to
      billing and abuse of the system. A Service Level Agreement may
      exist between Owner and Manager so that when either the Manager
      does not meet the quality of service, or the Owner breaks the
      rules, the contract will be ended.

12. Relationship between Profile Requester and Profile Manager

   A trusted relationship between a Profile Requester and a Profile
   Manager may exist.

   o  A Profile Manager may not trust a Profile Requester

      The Profile Requester certificate for the Profile request is used
      in the communication with the Manager without being trusted by the
      Manager itself. The certificate, or to be more precisely, the
      public key is only used to encrypt the Profile data that has to be
      returned in a secure manner. This ensures that only the rightful
      owner of the Requester certificate and thus the Owner of the
      corresponding private key, is able to read the Profile.

      The Owner himself determines to which level the Profile Requester
      is trusted and thus which Profile information he is allowed to
      access. He does so by specifying Access Control Lists and storing
      trusted certificates. The Profile Retrieve Service verifies
      certificates on behalf of the Owner because the Owner trusts him
      to do so (see Relationship between Profile Owner and Profile
      Manager).

   o  A Profile Requester may not trust a Profile Manager

      1) Non-Trusted

         The non-trusted case works similar to current e-commerce web-
         sites; information that is entered (ie. provided by the Profile
         Manager), needs to be verified (if needed at all) in some
         other, possibly non-electronic way. Requester specific
         credentials or a creditcard number are typical Profile
         attributes that need verification in this scenario. (see
         Relationship between Profile Owner and Profile Requester)

      2) Trusted

         In the trusted case, a Profile Requester asks for a Profile



H.Zandbelt, B.Hulsebosch                                       [Page 13]


Internet Draft                    IDsec                     January 2002


         Manager certificate at the beginning of establishing a
         communication channel. The certificate is verified by the
         Requester (see Profile Manager - Profile Retrieve Service -
         HTTPS). In this scenario, information provided for a specific
         Owner needs not to be verified. The Manager guarantees the
         correctness of information and the identity of the Owner.

      The trusted model may seem to be attractive at first glance, but
      we have to keep in mind that a large number of Profile Managers
      may exist (up to private ones). Moreover this scenario is only
      interesting when there is no prior established relationship
      between Owner and Requester, but there is one already between
      Manager and Requester.

      The bottom line in both cases is that the information returned by
      the Profile Manager can be used to authenticate the Owner that is
      associated with the Session Certificate.

13. Relationship between Profile Owner and Profile Requester

   A trusted relationship between an Profile Owner and a Profile
   Requester may exist.

   o  A Profile Owner may trust a Profile Requester

      An Owner specifies Access Control Lists that specify to exactly
      which attributes a Requester may access (see Access Control Lists)
      in addition to the so-called "public" attributes. In the case of
      non-public attributes, the Owner trusts the Profile Requester with
      the information: he assumes that his private information is
      securely kept within the Requester domain.

   o  A Profile Requester may trust a Profile Owner

      The Requester trusts an Owner based on, possibly Requester
      specific, information found in the Profile and only after
      verifying the Owner of the Session Certificate (see Profile
      Requester - Encryption Handler).

14. Content Distribution Network Provider

   An Internet Service Provider may wish to delegate the tasks of
   content hosting and content adaptation to a Content Distribution
   Network Provider (CDN Provider). A CDN Provider can perform these
   tasks for several Service Providers in an optimized way. In order to
   be able to adapt content on behalf of a Service Provider, the CDN
   Provider needs to get access to the Profile data that the origin
   Service Provider is allowed to access. He needs Service Provider



H.Zandbelt, B.Hulsebosch                                       [Page 14]


Internet Draft                    IDsec                     January 2002


   specific credentials to do so.

   We foresee a solution in which a CDN Provider can use a certificate
   that is signed by the Service Provider to access the Profile data.
   The Profile Manager checks the signature on the certificate against
   Access Control Lists that the Owner has specified for his Profile
   attributes. In that way a CDN Provider is able to act as a Profile
   Requester on behalf of a Service Provider.

15. Certificate Management

   In the IDsec environment, all certificate management is done by
   "traditional" certificate authorities. Profile Requesters need to get
   a certificate signed by a certificate authority. The only exception
   to this are certificates that a CDN Provider may use on behalf of a
   Service Provider (see Content Distribution Network Provider). These
   certificates have to be signed by Service Providers.

   Notice that there is no need for Session Certificate management, as
   all session certificates have a limited usage period. They will
   expire automatically so no certificate revoke lists are needed. The
   Profile Manager can deal with comprimised sessions or malicious users
   by using session- and user-management only.

16. Profile Updates

   As stated before, Profile data may have a dynamic nature (see
   Profiles). Examples of such data are presence related information and
   terminal related settings (audio on/off). This brings up the issue of
   Profile update propagation: how to notify interested parties when a
   Profile changes? We define a subscription mechanism to deal with
   Profile updates. A Profile Requester may subscribe to Profile
   attribute updates by indicating this in the Profile request that he
   sends to the Profile Manager. The request must contain a URI [8] that
   points to a handler that is able to process Profile updates that a
   Manager sends. The Manager manages the subscriber list. We define two
   levels of granularity:

   o  Full

      A full subscriber receives a complete Profile with the latest
      attribute values upon every update of a Profile. This level is
      convenient for less frequent updates; it can easily be implemented
      by reusing the code that handles a normal Profile response.

   o  Partial

      A partial subscriber indicates in which Profile attributes he is



H.Zandbelt, B.Hulsebosch                                       [Page 15]


Internet Draft                    IDsec                     January 2002


      interested. He will receive an update when such an attribute
      changes and the update contains the single new attribute value
      only. This level is convenient for frequently updated attributes.

   The exact layout of the update interfaces is to be defined.

17. Usage Scenario's

   One can think of many scenario's on the Internet where the use of
   secure Profiles as offered by IDsec can bring added value. We would
   like to describe two of them here which we consider to be among the
   more important ones:

   o  Content personalisation while browsing anonymously

      Because IDsec supports a fine granularity of access control to
      Profile attributes, it is possible to restrict access to
      name/address information while offering access to information that
      does not uniquely identify a person. This enables Profile
      Requesters such as Web Service Providers to do content
      personalisation based on, for example, hobbies or favourite color
      whithout forcing the user to reveal his actual identity.

   o  Third party billing

      Accounting, payment and billing can be done in a secure manner by
      relaying it to a trusted third party indicated in the Profile.
      Creditcard data won't be passed to Service Providers but merely to
      a billing party trusted by the Service Provider that also has
      access to the creditcard data in the Profile.

18. Conclusion

   IDsec forms a simple application level solution for establishing
   Virtual Identities on the Internet; it is flexible and extensible. We
   constructed a solution with standard off-the-self components and
   protocols such as HTTP, HTTPS and certificates. IDsec offers support
   for anonymous browsing, single-signon and Profile extensibility. The
   specification does not fix transport protocols or security
   interfaces; it is setup in a modular fashion so improvements can be
   plugged in.

19. Security Considerations

   Security is central to the design of this system, and thus security
   considerations permeate the specification.

20. References



H.Zandbelt, B.Hulsebosch                                       [Page 16]


Internet Draft                    IDsec                     January 2002


   [1]   Bradner, S, "Key words for use in RFCs to Indicate Requirement
         Levels", RFC 2119, BCP 14, March 1997.

   [2]   Bradner, S, "The Internet Standards Process - Revision 3", RFC
         2026, March 1997.

   [3]   Gettys, R, Mogul, J, Frystyk, J, Masinter, H, Leach, L,
         Berners-Lee, P and T Berners-Lee, "Hypertext Transfer Protocol
         - HTTP/1.1", RFC 2616, June 1999.

   [4]   E. Rescorla, "The Secure HyperText Transfer Protocol",
         RFC 2660, August 1999.

   [5]   Dierks, T. and C. Allen, "The TLS Protocol", RFC 2246,
         January 1999.

   [6]   Raggett, D., "HTML 3.2 Reference Specification", W3C
         Recommendation, January 1997.
         Available at <http://www.w3.org/TR/REC-html32>.

   [7]   Berners-Lee, T., Masinter L., and M. McCahill,
         "Uniform Resource Locators (URL)", RFC 1738, December 1994.

   [8]   Berners-Lee, T, Fielding, R, Irvine, U C and L Masinter,
         "Uniform Resource Identifiers (URI): Generic Syntax", RFC
         2396, August 1998.

   [9]   Housley, R., Ford, W., Polk, W. and D. Solo, "Internet X.509
         Public Key Infrastructure, Certificate and CRL Profile", RFC
         2459, January 1999.

   [10]  Adams, C. and S. Farrell, "Internet X.509 Public Key
         Infrastructure, Certificate Management Protocols", RFC
         2510, March 1999.

   [11]  Internet Mail Consortium, "vCard - The Electronic
         Business Card Version 2.1",
         http://www.imc.org/pdi/vcard-21.txt, September 18, 1996.

21. Author's Addresses

   Hans Zandbelt
   Telematica Instituut
   Drienerlolaan 5
   7500 AN Enschede
   Netherlands

   Phone: +31 53 4850 445



H.Zandbelt, B.Hulsebosch                                       [Page 17]


Internet Draft                    IDsec                     January 2002


   EMail: hans.zandbelt@telin.nl

   Bob Hulsebosch
   Telematica Instituut
   Drienerlolaan 5
   7500 AN Enschede
   Netherlands

   Phone: +31 53 4850 498
   EMail: bob.hulsebosch@telin.nl

22. Acknowledgments

   Thanks to Martin Wibbels, Henk Eertink and Stanislav Pokraev of
   Telematica Instituut for their contributions. Also thanks to the
   people on the DotGNU Auth mailing list for their suggestions.

Appendix A: Interaction Diagrams

Legenda:   ---->  = HTTP request
           <----  = HTTP response
           <PR>   = Profile Requester
           <SC>   = Session Certificate
           <PRID> = Profile Requester specific identifier
           <SID>  = Profile Requester specific unique session identifier
           <DOM>  = the DNS domain of the Profile Requester

A.1  Profile Owner - Profile Requester Interaction

  Profile Owner       HTTP                     Profile Requester

request to PR  ---------------------> receive non-IDsec enabled request
               (no special header)

request for SC <--------------------- request for Session Certificate
               Redirect Temporarily (StatusCode 302)
               IDsecSessionCookie=<PRID>;<SID>;CertificateRequest;<DOM>
               Set-Cookie=<PRID>=<SID>; path=/; domain=<DOM>

send SC        ---------------------> retrieve the Profile
               IDsecSessionCookie=<PRID>;<SID>;CertificateResponse
               request data filled with stringified SessionCertificate

adapted data   <--------------------- interpret Profile and adapt
               (no special header)

A.2  Profile Owner (non-IDsec-enabled) - Profile Requester Interaction




H.Zandbelt, B.Hulsebosch                                       [Page 18]


Internet Draft                    IDsec                     January 2002


  Profile Owner      HTTP                     Profile Requester

request to PR  ---------------------> receive non-IDsec enabled request
               (no special header)

set cookie     <--------------------- request for Session Certificate
               Redirect Temporarily (StatusCode 302)
               IDsecSessionCookie=<PRID>;<SID>;CertificateRequest;<DOM>
               Set-Cookie=<PRID>=<SID>; path=/; domain=<DOM>

resend         ---------------------> request indicates non-IDsec client
               Cookie:<PRID>=<SID>

data           <--------------------- unadapted response
               (no special header)

A.3  Profile Requester - Profile Manager Interaction

  Profile Requester   HTTP                   Profile Manager

request Profile -----------------> verify certificates, assemble Profile
                request URL found in Session Certificate
                request data filled with the stringified PR Certificate
                Session certificate

receive Profile <----------------- return XML formatted Profile data
                response data is XML formatted Profile data

Appendix B: Profile DTD

   <!element profile(context*)>
   <!element context((context|attribute)*)>
   <!attlist context
       name CDATA #required
   >
   <!element attribute(value)>
   <!attlist attribute
   <   name CDATA #required
   <
   <!element value(#PCDATA)>

Appendix C: Example Profile Attributes

   An attribute consists of a name and a value. The name is a scoped
   name so name-spacing is supported. The separator character for
   namespaces is ".". The following attributes serve as an illistration
   only.




H.Zandbelt, B.Hulsebosch                                       [Page 19]


Internet Draft                    IDsec                     January 2002


      Attribute Name                          Attribute Value Type

      private.name.first                      string[255]
      private.name.last                       string[255]
      private.name.initials                   string[255]
      private.address.street.name             string[255]
      private.address.street.number           string[255]
      private.address.zipcode                 string[255]
      private.telephone                       string[255]

      work.company.name                       string[255]
      work.address.street.name                string[255]
      work.address.street.number              string[255]
      work.address.pobox                      string[255]
      work.address.zipcode                    string[255]
      work.telephone

      billing.creditcard.[n].number           string[255]
                          (n is a number starting from 0)
      billing.creditcard.[n].expirydate       string[255]
                          (n is a number starting from 0)

      other.hobbies                           string[255]
                                   (comma-separated list)
      other.language                          string[255]


























H.Zandbelt, B.Hulsebosch                                       [Page 20]