Calendaring and Scheduling                                      D. Royer
Internet-Draft                                           INET-Consulting
Expires: March 31, 2004                                  October 1, 2003


           How to create dynamic UPNs for invited ATTENDEEs.
                   draft-royer-calsch-dynamic-upn-02

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.

   The list of Internet-Draft Shadow Directories can be accessed at
   http://www.ietf.org/shadow.html.

   This Internet-Draft will expire on March 31, 2004.

Copyright Notice

   Copyright (C) The Internet Society (2003). All Rights Reserved.

Abstract

   This is an extension to the [iCAL] protocol and can be used within
   [iTIP] objects. A CU may wish to invite a UPN to an event where the
   UPN does not have a account on the CU's CS. This memo describes two
   methods to dynamically create UPNs in order for those UPNs to gain
   access to the "Organizers" CS.

   This memo also includes a description of how to include an [OTP]
   challenge in an object directed to a CU. The CUA must compute the
   password in order to respond to the object. This challenge and its
   response can be sent in the clear as the values are computed using a
   secret that would not be known to anyone snooping the line.





Royer                    Expires March 31, 2004                 [Page 1]

Internet-Draft           iCalendar-dynamic-UPN              October 2003


Table of Contents

   1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  3
   2.  INVITATION Component . . . . . . . . . . . . . . . . . . . . .  4
   3.  Using the UPN  . . . . . . . . . . . . . . . . . . . . . . . .  5
   4.  OTPKEY Property  . . . . . . . . . . . . . . . . . . . . . . .  5
   5.  INVITE Parameter . . . . . . . . . . . . . . . . . . . . . . .  6
   6.  EXAMPLES . . . . . . . . . . . . . . . . . . . . . . . . . . .  7
   6.1 INVITING URL only  . . . . . . . . . . . . . . . . . . . . . .  7
   6.2 INVITING CAP . . . . . . . . . . . . . . . . . . . . . . . . .  8
       Author's Address . . . . . . . . . . . . . . . . . . . . . . .  9
   A.  Bibliography . . . . . . . . . . . . . . . . . . . . . . . . .  9
       Intellectual Property and Copyright Statements . . . . . . . . 11






































Royer                    Expires March 31, 2004                 [Page 2]

Internet-Draft           iCalendar-dynamic-UPN              October 2003


1. Introduction

   This memo specifies a variation of the one time password (OTP)
   described in [OTP] and a method used to direct an "Attendee" to a web
   page to sign up in order to get a UPN and account to a CS.

   The OTP method requires that the initial "INVITATION" component be
   sent over a secure transmission method. It can be an SSL/TLS
   connection such as [CAP] or encrypted [S/MIME] email or other method.
   The "Attendee" is sent a key that is an md5, md4, or sha1 hash as
   defined in [OTP]. This resulting key is the user's secret key that
   gives them access to the CS that is named in the "TARGET" property in
   the "INVITATION" component.

   The "Attendee"s UPN is then the value of the "ATTENDEE" property for
   that attendee as supplied in the "INVITATION" component. The UPN can
   be a mailto URL, CAP URL, or any UPN string recognized by the CS. And
   their password is computed as described in [OTP].

   In this memo the term 'CS' means calendar store and may or might not
   mean a [CAP] only CS.

   The CS can then send them [iCAL] objects that contain an OTP
   challenge. The password the "Attendee" uses is computed using the
   user's secret key, the challenge, and the methods described in [OTP].
   To gain access to the CS the attendee provides the UPN and computed
   password to the CS.

   The CS can refresh the key as often as desired with the only
   restriction is that the "INVITATION" component be sent encrypted to
   the "Attendee".

   The CS may if it wishes delete or modify the access rights of dynamic
   UPNs when the "Attendee" has no more invitations to reply to, when
   there are not any current or future objects for which the "Attendee"
   is attending, remove them according to site policy, or it may keep
   those UPNs indefinitely.

   The web page method includes a URL for the "Attendee" to visit in
   order to get a UPN account on the system. The "INVITATION" "text/
   calendar" component MUST BE sent as part of a [MIME] multipart/
   alternate object that contains at least a text/plain and text/
   calendar MIME objects where text or optional HTML describe how to
   connect and get an account for those CUAs that do not conform to this
   specification.

   A CUA requests that a supporting CS send the invitations by including
   the new "INVITE" parameter on the "ATTENDEE" property to "Attendees"



Royer                    Expires March 31, 2004                 [Page 3]

Internet-Draft           iCalendar-dynamic-UPN              October 2003


   not known to the CUA. If that "ATTENDEE" property value is already
   known to the CS it has no effect.

   [CAP] Implementation that support this protocol extensions must
   supply the "INVITATION" value in the "COMPONENT" property value in
   their "GET-CAPABILITY" reply.

2. INVITATION Component

   Component Name: INVITATION

   Purpose: To invite a new UPN to have access on a CS. The "INVITATION"
   component allows an "Organizer" to invite UPNs to use a CS. It can
   include an OTP key and a web page to be visited that will initialize
   the users CUA.

   Formal Definition: A "INVITATION" component is defined by the
   following notation:


   invitecomp       = "BEGIN" ":" "INVITATION" CRLF
                      inviteprops
                      "END" ":" "INVITATION" CRLF

                    ; TARGET used only if access to a CS is supplied.
                    ;
   inviteprops        target              ; As defined in [CAP]

                    ; As defined here, [iCAL], and [CAP]

                    ; In addition the "ATTENDEE" and "ORGANIZER" values
                    ; may be multivalued in order to allow for more than
                    ; one kind of CAL-ADDRESS. At least one
                    ; CAL-ADDRESS must be supplied.
                    ;
                      organizer attendee

                    ; Each may be included once.
                    ;
                      *otpkey *url

                    ; Optional and may occur more than once.
                    ;
                      *other-props       ; As definded in [CAP].
                      *x-comp            ; As defined in [CAP].


   The following is an invitation by the "Organizer" to an "Attendee"



Royer                    Expires March 31, 2004                 [Page 4]

Internet-Draft           iCalendar-dynamic-UPN              October 2003


   requesting they sign-up so they can process [iCAL] objects on
   "TARGET". It includes both an "URL" and "OTPKEY" properties so the
   CUA may use the web, [iTIP], or CAP to initialize the account.


   BEGIN:VCALENDAR
   VERSION:2.0
   PRODID:-//some prodid
   BEGIN:INVITATION
   TARGET:CAP:cal.example.com
   OTPKEY:md5-cdb5bf5ef5427e1512c29bfd8dff2dc0
   URL:https://cal.example.com/otp?key=cdb5bf5ef5427e1512c29bfd8dff2dc0
   ORGANIZER:doug@example.com
   ATTENDEE:cap:guest@remote.example.com
    ,mailto:username@site.example.com
   END:INVITATION
   END:VCALENDAR



3. Using the UPN

   There is no reply to a "INVITATION" other than to connect using the
   supplied "UPN" property value or use any supplied "OTPKEY" property
   value to calculate the password to sign onto the CS, or send an
   [iMIP] message signed as defined in [iMIP] using an "ATTENDEE"
   property value that matches the original "ATTENDEE" value sent to the
   "Attendee".

   If a "INVITATION" component contained a "URL" property and the
   "Attendee" elected to use the URL to sign up, then the "Attendee"
   would after successful registration on the web page have been
   provided a UPN and password that would be valid to use.

   If a "INVITATION" component contained an "OTPKEY" property and value
   and the "Attendee" elected to sign up using CAP, then the "Attendee"
   would connect to a CS matching the "TARGET" property value and login
   using the "ATTENDEE" property value supplied as the "Attendee"s UPN
   and the computed [OTP] password to access the CS. A successful [BEEP]
   authentication confirms the account for both the CUA and the CS.

4. OTPKEY Property

   Property Name: OTPKEY

   Purpose: The "OTPKEY" property is used to supply the "Attendee" with
   an original or updated key to be used in computing the [OTP]
   response. This value MUST NOT be sent in the clear.



Royer                    Expires March 31, 2004                 [Page 5]

Internet-Draft           iCalendar-dynamic-UPN              October 2003


   Value Type: TEXT

   Property Parameters: Non-standard property parameters can be
   specified on this property.

   Formal Definition: The property is defined by the following notation:


   otpkey           = "OTPKEY" other-params ":" otpvalue

   otpvalue         ; As defined in [OTP].


   Example: The following are examples of this property:


   OTPKEY:md4-cf6864ea860e56ba5a3a015f23ebccbd
   OTPKEY:md5-45548dc24cb481be7ebb31653d18acc8
   OTPKEY:sha1-f8cb62bfa2f962a06588c8129f81547fba434d13



5. INVITE Parameter

   Parameter Name: INVITE

   Purpose: The "INVITE" boolean parameter is added by a supporting CUA
   to the "ATTENDEE" property and sent to a supporting CS to ask the CS
   to invite an "Attendee" unknown to the CUA or CS. The "INVITE"
   parameter is only sent to a CS from a CUA.

   Value Type: BOOLEAN

   Conformance: This parameter can be specified in the "ATTENDEE"
   properties in a component that has the "METHOD" value set to
   "REQUEST" or when the storing an object in the "BOOKED" (as defined
   in [CAP]) state. This can only be done to CSs that have set the
   "INVITATION" value in their "COMPONENT" property value in their
   "GET-CAPABILITY" reply.

   Description: A CUA may add the "INVITE" parameter to the "ATTENDEE"
   property. If the "INVITE" parameter is set to "TRUE", then the CUA is
   informing the CS that the CUA does not know if the UPN has an account
   on the CS. If the CS does not have any such UPN as a valid account
   the CS must send an "INVITATION" to the UPN.

   Formal Definition: The property is defined by the following notation:




Royer                    Expires March 31, 2004                 [Page 6]

Internet-Draft           iCalendar-dynamic-UPN              October 2003


   inviteparam    = "INVITE" "=" boolean

      Example: The following is an example of this parameter:


   An example usage is:


   ATTENDEE;INVITE=true;guest@remote.example.com



6. EXAMPLES

   This section contains various examples

6.1 INVITING URL only

   When inviting an "Attendee" using an URL, the URL must be sent over a
   secure connection such as S/MIME, 'https', or [CAP]. The following
   example is an "INVITATION" component that is inviting the "Attendee"
   to have a [CAP] account on 'cal.example.com' and the "Attendee" can
   only sign up by URL in this example:

   Content-Type: multipart/alternative; boundary=boundary42

   --boundary42

   Content-Type: text/plain; charset=us-ascii

   ...plain text version of message goes here....

   An organizer of an event: doug@example.com
   wishes to invite you to participate in a meeting that
   will be ...

   If you wish to participate please go to the following
   URL and sign up for site access:

   	https://cal.example.com/otp?key=cdb5bf5ef5427e1512c29bfd8dff2dc0

   and follow the instructions in order to be invited.

   --boundary42
   Content-Type: text/html

   .... HTML version of same message goes here ...




Royer                    Expires March 31, 2004                 [Page 7]

Internet-Draft           iCalendar-dynamic-UPN              October 2003


   --boundary42
   Content-Type: text/calendar

   BEGIN:INVITATION
   TARGET:CAP:cal.example.com
   URL:https://cal.example.com/otp?key=cdb5bf5ef5427e1512c29bfd8dff2dc0
   ORGANIZER:cap:doug@example.com,mailto:doug@example.com
   ATTENDEE:cap:guest@remote.example.com
   END:INVITATION
   --boundary42--


   Following a successful web registration then "Attendee" will have a
   UPN of "guest@remote.example.com" and will use the password as
   instructed on the web page.

6.2 INVITING CAP

   The following example is an "INVITATION" component that is inviting
   the "Attendee" by CAP. No URL is provided so the first connection or
   [iTIP] object that uses the correct computed [OTP] password validates
   the account.

   Content-Type: multipart/alternative; boundary=boundary42

   --boundary42

   Content-Type: text/plain; charset=us-ascii

   ...plain text version of message goes here....

   An organizer of an event: doug@example.com
   wishes to invite you to participate in a meeting that
   will be ...

   --boundary42
   Content-Type: text/html

   .... HTML version of same message goes here ...

   --boundary42
   Content-Type: text/calendar

   BEGIN:INVITATION
   TARGET:CAP:cal.example.com
   ORGANIZER:cap:doug@example.com,mailto:doug@example.com
   ATTENDEE:cap:guest@remote.example.com
   OTPKEY:md5-cdb5bf5ef5427e1512c29bfd8dff2dc0



Royer                    Expires March 31, 2004                 [Page 8]

Internet-Draft           iCalendar-dynamic-UPN              October 2003


   END:INVITATION
   --boundary42--


   Following a successful first sign on then "Attendee" will have a UPN
   of "guest@remote.example.com" and will use the password computed from
   the "OTPKEY" value and the SASL challenge.


Author's Address

   Doug Royer
   INET-Consulting.com
   1795 W. Broadway #266
   Idaho Falls, Idaho  83402
   US

   Phone: 208-520-4044
   Fax:   866-594-8574
   EMail: Doug@Royer.com
   URI:   http://Royer.com/People/Doug

Appendix A. Bibliography


   [BEEP]    Rose, M., "The Block Extensible Exchange Protocol Core",
             RFC 3080, March 2001
             ftp://ftp.isi.edu/in-notes/rfc3080.txt

   [BEEPTCP] Rose, M., "Mapping the BEEP Core onto TCP", RFC 3081, March 2001
             ftp://ftp.isi.edu/in-notes/rfc3081.txt

   [iCAL]    Dawson, F. and Stenerson, D., "Internet Calendaring and
             Scheduling Core Object Specification (iCalendar)", RFC 2445,
             November 1998 ftp://ftp.isi.edu/in-notes/rfc2445.txt

   [iTIP]    Silverberg, S., Mansour, S., Dawson, F. and Hopson, R.,
             "iCalendar Transport-Independent Interoperability Protocol
             (iTIP) Events, BusyTime, To-dos and Journal Entries",
             RFC 2446, November 1998 ftp://ftp.isi.edu/in-notes/rfc2446.txt

   [iMIP]    Dawson, F., Mansour, S. and Silverberg, "iCalendar
             Message-Based Interoperability Protocol (iMIP)", RFC 2447,
             November 1998 ftp://ftp.isi.edu/in-notes/rfc2447.txt

   [CAP]     Royer, D., Babics, G., Hill, P. Mansour, S. "Calendar
             Access Protocol (CAP)", work in progress,
             draft-ietf-calsch-cap-12.txt.



Royer                    Expires March 31, 2004                 [Page 9]

Internet-Draft           iCalendar-dynamic-UPN              October 2003


   [OTP]     Haller, N. and C. Metz, "A One-Time Password System,"
             RFC 1938, May 1996.

















































Royer                    Expires March 31, 2004                [Page 10]

Internet-Draft           iCalendar-dynamic-UPN              October 2003


Intellectual Property Statement

   The IETF takes no position regarding the validity or scope of any
   intellectual property or other rights that might be claimed to
   pertain to the implementation or use of the technology described in
   this document or the extent to which any license under such rights
   might or might not be available; neither does it represent that it
   has made any effort to identify any such rights. Information on the
   IETF's procedures with respect to rights in standards-track and
   standards-related documentation can be found in BCP-11. Copies of
   claims of rights made available for publication and any assurances of
   licenses to be made available, or the result of an attempt made to
   obtain a general license or permission for the use of such
   proprietary rights by implementors or users of this specification can
   be obtained from the IETF Secretariat.

   The IETF invites any interested party to bring to its attention any
   copyrights, patents or patent applications, or other proprietary
   rights which may cover technology that may be required to practice
   this standard. Please address the information to the IETF Executive
   Director.


Full Copyright Statement

   Copyright (C) The Internet Society (2003). All Rights Reserved.

   This document and translations of it may be copied and furnished to
   others, and derivative works that comment on or otherwise explain it
   or assist in its implementation may be prepared, copied, published
   and distributed, in whole or in part, without restriction of any
   kind, provided that the above copyright notice and this paragraph are
   included on all such copies and derivative works. However, this
   document itself may not be modified in any way, such as by removing
   the copyright notice or references to the Internet Society or other
   Internet organizations, except as needed for the purpose of
   developing Internet standards in which case the procedures for
   copyrights defined in the Internet Standards process must be
   followed, or as required to translate it into languages other than
   English.

   The limited permissions granted above are perpetual and will not be
   revoked by the Internet Society or its successors or assignees.

   This document and the information contained herein is provided on an
   "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
   TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
   BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION



Royer                    Expires March 31, 2004                [Page 11]

Internet-Draft           iCalendar-dynamic-UPN              October 2003


   HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
   MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.


Acknowledgment

   Funding for the RFC Editor function is currently provided by the
   Internet Society.











































Royer                    Expires March 31, 2004                [Page 12]