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:
7500 AN
01/01/2004
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:///" 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:///" 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 .
[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
= Profile Requester
= Session Certificate
= Profile Requester specific identifier
= Profile Requester specific unique session identifier
= 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=;;CertificateRequest;
Set-Cookie==; path=/; domain=
send SC ---------------------> retrieve the Profile
IDsecSessionCookie=;;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=;;CertificateRequest;
Set-Cookie==; path=/; domain=
resend ---------------------> request indicates non-IDsec client
Cookie:=
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
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]