Calendaring and Scheduling D. Royer Internet-Draft INET-Consulting Expires: March 1, 2004 September 1, 2003 How to create dynamic UPNs for invited ATTENDEEs. draft-royer-calsch-dynamic-upn-01 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 1, 2004. Copyright Notice Copyright (C) The Internet Society (2003). All Rights Reserved. Abstract This is an extension to the [CAP] 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 1, 2004 [Page 1] Internet-Draft CAP-UPN September 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 . . . . . . . . 10 Royer Expires March 1, 2004 [Page 2] Internet-Draft CAP-UPN September 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]. 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" not known to the CUA. If that "ATTENDEE" property value is already known to the CS it has no effect. Royer Expires March 1, 2004 [Page 3] Internet-Draft CAP-UPN September 2003 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 [CAP] ; 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" requesting they sign-up so they can process CAP 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. Royer Expires March 1, 2004 [Page 4] Internet-Draft CAP-UPN September 2003 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. Value Type: TEXT Property Parameters: Non-standard property parameters can be specified on this property. Royer Expires March 1, 2004 [Page 5] Internet-Draft CAP-UPN September 2003 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" [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: inviteparam = "INVITE" "=" boolean Example: The following is an example of this parameter: Royer Expires March 1, 2004 [Page 6] Internet-Draft CAP-UPN September 2003 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 over a secure connection such as [https]. 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 ... --boundary42 Content-Type: text/calendar BEGIN:INVITATION TARGET:CAP:cal.example.com Royer Expires March 1, 2004 [Page 7] Internet-Draft CAP-UPN September 2003 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 END:INVITATION --boundary42-- Following a successful first sign on then "Attendee" will have a UPN Royer Expires March 1, 2004 [Page 8] Internet-Draft CAP-UPN September 2003 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 1, 2004 [Page 9] Internet-Draft CAP-UPN September 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 1, 2004 [Page 10] Internet-Draft CAP-UPN September 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 1, 2004 [Page 11]