Calendaring and Scheduling D. Royer Internet-Draft INET-Consulting Expires: February 16, 2004 August 18, 2003 How to create dynamic UPNs for invited ATTENDEEs. draft-royer-calsch-dynamic-upn-00 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 February 16, 2004. Copyright Notice Copyright (C) The Internet Society (2003). All Rights Reserved. Abstract This is an extension to the [CAP] and [iMIP] protocols. A CU may wish to invite a UPN to an event where the UPN does not have a account on the CU's CS or the S/MIME key to send encrypted [iMIP] messages. This memo describes two methods to dynamically create UPNs in order for those UPNs to gain access to the "Organizers" CS and to add authentication to [iMIP]. This memo also includes a description of how to include an [OTP] challenge in an object directed to a CUA. 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. This adds a level of security to iMIP communications. Royer Expires February 16, 2004 [Page 1] Internet-Draft CAP-UPN August 2003 Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 2. UPN-INVITATION Component . . . . . . . . . . . . . . . . . . . 4 3. UPN-INVITATION ABNF . . . . . . . . . . . . . . . . . . . . . 4 4. Using the UPN . . . . . . . . . . . . . . . . . . . . . . . . 4 5. CHALLENGE Property . . . . . . . . . . . . . . . . . . . . . . 5 6. OTPKEY Property . . . . . . . . . . . . . . . . . . . . . . . 5 7. PW Property . . . . . . . . . . . . . . . . . . . . . . . . . 5 8. INVITE Parameter . . . . . . . . . . . . . . . . . . . . . . . 6 9. Modification to CAP ABNF . . . . . . . . . . . . . . . . . . . 6 10. EXAMPLES . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 10.1 INVITING URL only . . . . . . . . . . . . . . . . . . . . . . 6 10.2 INVITING CAP or iMIP . . . . . . . . . . . . . . . . . . . . . 7 10.3 iMIP exchange . . . . . . . . . . . . . . . . . . . . . . . . 8 Author's Address . . . . . . . . . . . . . . . . . . . . . . . 8 Intellectual Property and Copyright Statements . . . . . . . . 9 Royer Expires February 16, 2004 [Page 2] Internet-Draft CAP-UPN August 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 "UPN-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 "UPN-INVITATION" component or to be used in [iMIP] communications. The "Attendee"s UPN is then the value of the "ATTENDEE" property for that attendee as supplied in the "UPN-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. This memo adds a new [CAP] property of "CHALLENGE" that is used to supply the OTP challenge and "OTPKEY" to set the original key. And a new "PW" property to be used over [iMIP] to respond to the objects. The CS can refresh the key as often as desired with the only restriction is that the "UPN-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. Royer Expires February 16, 2004 [Page 3] Internet-Draft CAP-UPN August 2003 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. 2. UPN-INVITATION Component The "UPN-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. The following is an invitation by the "Organizer" to an "Attendee" requesting they sign-up so they can process CAP objects on "TARGET" or [iMIP] objects from "ORGANIZER". It includes both an "URL" and "OTPKEY" properties so the CUA may use the web, [iMIP], or CAP to initialize the account. BEGIN:UPN-INVITATION TARGET:CAP:cal.example.com OTPKEY:md5-cdb5bf5ef5427e1512c29bfd8dff2dc0 URL:https://cal.example.com/otp?key=cdb5bf5ef5427e1512c29bfd8dff2dc0 ORGANIZER:doug@example.com ATTENDEE:guest@remote.example.com END:UPN-INVITATION 3. UPN-INVITATION ABNF TBD 4. Using the UPN There is no reply to a "UPN-INVITATION" other than to connect using the supplied "UPN" property value or use any "OTPKEY" property value to calculate the password to sign onto the CS, send an [iMIP] message with a computed "PW" property value, or visit the supplied URL. If a "UPN-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 "UPN-INVITATION" component contained an "OTPKEY" 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 Royer Expires February 16, 2004 [Page 4] Internet-Draft CAP-UPN August 2003 computed [OTP] password to access the CS. Successfully [BEEP] authentication confirms the account for both the CUA and the CS. If the "Attendee" wished to validate the account using [iMIP] then the new "PW" property value would be set to the calculated [OTP] password value computed from the "CHALLENGE" property value in an object sent from the "ORGANIZER". The "Attendee"s CUA would have to wait for the first object that came from the "ORGANIZER" and reply to the object adding the new "PW" property. 5. CHALLENGE Property Any component that contains an "CHALLENGE" property is informing the CUA that the CUA must use dynamic passwords in order to reply to the object. The value of the "CHALLENGE" property is an OTP challenge as defined in [OTP]. Example usage of this property: CHALLENGE:otp-md5 487 dog2 If the CUA is using [CAP] the password is supplied as part of the [BEEP] authentication process. If the CUA is using [iMIP] then the password is placed into the "PW" property value. 6. OTPKEY Property The "OTPKEY" property is used to supply the "Attendee" with an original or updated key to be used in computing the [OTP] responce. Examples of this property are: OTPKEY:md4-cf6864ea860e56ba5a3a015f23ebccbd OTPKEY:md5-45548dc24cb481be7ebb31653d18acc8 OTPKEY:sha1-f8cb62bfa2f962a06588c8129f81547fba434d13 7. PW Property The "PW" property is used in all objects that are a responce to an object that contained the "CHALLENGE" property. The "PW" property value is the hexadecimal computed password as defined in [OTP]. An example of this property is: Royer Expires February 16, 2004 [Page 5] Internet-Draft CAP-UPN August 2003 PW:0x3503785b369cda8b 8. INVITE Parameter 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. The "INVITE" parameter is only sent to a CS from a CUA. An example usage is: ATTENDEE;INVITE=true;guest@remote.example.com 9. Modification to CAP ABNF TBD 10. EXAMPLES This section contains various examples 10.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 to have an account on 'cal.example.com' and the "Attendee" can only sign up by URL: 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 ... Please go to: https://cal.example.com/otp?key=cdb5bf5ef5427e1512c29bfd8dff2dc0 and follow the instructions in order to be invited. Royer Expires February 16, 2004 [Page 6] Internet-Draft CAP-UPN August 2003 --boundary42 Content-Type: text/html .... HTML version of same message goes here ... --boundary42 Content-Type: text/calendar BEGIN:INVITATION TARGET:CAP:cal.example.com URL:https://cal.example.com/otp?key=cdb5bf5ef5427e1512c29bfd8dff2dc0 ORGANIZER:doug@example.com ATTENDEE: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. 10.2 INVITING CAP or iMIP The following example is an "INVITATION" component that is inviting the "Attendee" by CAP or iMIP. No URL is provided so the first connection or [iMIP] object that uses the correct "PW" property value 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 ... Please go to: https://cal.example.com/otp?key=cdb5bf5ef5427e1512c29bfd8dff2dc0 and follow the instructions in order to be invited. --boundary42 Content-Type: text/html Royer Expires February 16, 2004 [Page 7] Internet-Draft CAP-UPN August 2003 .... HTML version of same message goes here ... --boundary42 Content-Type: text/calendar BEGIN:INVITATION TARGET:CAP:cal.example.com ORGANIZER:doug@example.com ATTENDEE:guest@remote.example.com OTPKEY:md5-cdb5bf5ef5427e1512c29bfd8dff2dc0 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. 10.3 iMIP exchange 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 Royer Expires February 16, 2004 [Page 8] Internet-Draft CAP-UPN August 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 February 16, 2004 [Page 9] Internet-Draft CAP-UPN August 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 February 16, 2004 [Page 10]