22d439ca552ab0ea13ffaf8710d689c1a9f7225f
[crypto.git] / doc / draft-riikonen-presence-attrs-00.nroff
1 .pl 10.0i
2 .po 0
3 .ll 7.2i
4 .lt 7.2i
5 .nr LL 7.2i
6 .nr LT 7.2i
7 .ds LF Riikonen
8 .ds RF FORMFEED[Page %]
9 .ds CF
10 .ds LH Internet Draft
11 .ds RH XXX
12 .ds CH
13 .na
14 .hy 0
15 .in 0
16 .nf
17 Network Working Group                                        P. Riikonen
18 Internet-Draft
19 draft-riikonen-presence-attrs-00.txt                         XXX
20 Expires: XXX
21
22 .in 3
23
24 .ce 3
25 User Online Presence and Information Attributes
26 <draft-riikonen-presence-attrs-00.txt>
27
28 .ti 0
29 Status of this Memo
30
31 This document is an Internet-Draft and is in full conformance with   
32 all provisions of Section 10 of RFC 2026.  Internet-Drafts are   
33 working documents of the Internet Engineering Task Force (IETF), its   
34 areas, and its working groups.  Note that other groups may also   
35 distribute working documents as Internet-Drafts.   
36
37 Internet-Drafts are draft documents valid for a maximum of six months   
38 and may be updated, replaced, or obsoleted by other documents at any   
39 time.  It is inappropriate to use Internet-Drafts as reference   
40 material or to cite them other than as "work in progress."   
41
42 The list of current Internet-Drafts can be accessed at   
43 http://www.ietf.org/ietf/1id-abstracts.txt   
44
45 The list of Internet-Draft Shadow Directories can be accessed at   
46 http://www.ietf.org/shadow.html   
47
48 The distribution of this memo is unlimited.  
49
50
51 .ti 0
52 Abstract
53
54 ZZZ
55
56
57
58
59
60
61
62 .ti 0
63 Table of Contents
64
65 .nf
66 1 Introduction ..................................................  x
67   1.1 Requirements Terminology ..................................  x
68
69 4 Security Considerations .......................................  x
70 5 References ....................................................  x
71 6 Author's Address ..............................................  x
72
73
74 .ti 0
75 1. Introduction
76
77
78 .ti 0
79 X.X Attribute Payload
80
81
82 .in 5
83 .nf
84                      1                   2                   3
85  0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
86 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
87 |   Attribute   |   Attr Flags  |        Attribute Length       |
88 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
89 |                                                               |
90 ~                        Attribute Data                         ~
91 |                                                               |
92 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
93 .in 3
94
95 .ce
96 Figure 1:  Attribute Payload
97
98
99 .in 6
100 o Attribute (1 byte) - Indicates the attribute included in this
101   Attribute Payload.
102
103 o Attribute Flags (1 byte) - Indicates the flags associated
104   with this attribute.  The following flags are defined:
105
106     0x01        ATTRIBUTE_FLAG_INVALID
107
108       The attribute value in Attribute Data is invalid, or
109       unknown.  This may be set to indicate that a requested
110       attribute is not available, its value is unknown, or
111       sender does not understand it.
112
113     0x02        ATTRIBUTE_FLAG_VALID
114
115       The attribute value is included in the Attribute Data.
116
117   When sending this payload to request attributes this value
118   MUST be set to zero (0) value.  When sending a reply to the
119   request this field MUST NOT include a zero (0) value.
120
121 o Attribute Length (2 bytes) - Indicates the length of the
122   Attribute Data field, not including any other field.
123
124 o Attribute Data (variable length) - The Attribute Data.
125   The contents of this field is attribute specific, defined
126   subsequently.
127
128
129 .ti 0
130 X.X Attributes
131
132 The following values can appear in the Attribute field in the
133 Attribute Payload to indicate the content of the attribute.  All
134 integer values are stored in the MSB first order.  Strings are
135 always UTF-8 [RFC2279] encoded, and include 2 bytes length field
136 indicating the length of the string.  Hence, when string value
137 appears in this documentation it is encoded as:
138
139 .in 6
140 Length       Type       Value
141 2 bytes      integer    Length of String field
142 variable     UTF-8      String
143 .in 3
144
145 If string is not present then the length field includes zero (0)
146 value.
147
148 The format of the attribute data is represented as length, type and
149 value.  Example:
150
151 .in 6
152 Length       Type       Value
153 2 bytes      integer    Some integer value
154 variable     string     Some string
155 1 byte       boolean    Boolean value
156 .in 3
157
158 When sending multiple Attribute Payloads it is possible to include
159 multiple same attributes in the packet.
160
161
162 .in 6
163 0    ATTRIBUTE_NONE
164
165      This attribute is reserved and it is never sent.
166
167
168 1    ATTRIBUTE_USER_INFO
169
170      This attribute includes general information about the user, their
171      name and contact information.  The content of this attribute is
172      a VCard version 3.0 as defined in RFC 2426 [RFC2426] and RFC 2425
173      [RFC2425].  Note that some of the information that VCard provides
174      can be also provided in the means of providing other attributes.
175      The rationale for this is that the VCard does not provide all the
176      information, or with the required precision that may be desired in
177      some applications.  It is therefore RECOMMENDED that this attribute
178      would be used to provide only basic and constant user information,
179      such as name and contact information, but not online status 
180      information.
181
182      Length       Type       Value
183      variable     VCard      Basic user information
184
185
186 2    ATTRIBUTE_SERVICE
187
188      This attribute indicates a service in the Internet that the user
189      is currently using or has logged in.  The value of this attribute
190      is as follows:
191
192      Length       Type       Value
193      4 bytes      integer    Service Port (IANA specified)
194      variable     string     Service Address
195      1 byte       boolean    Online status.  If this is set to
196                              0x01 (true) it means the user is online
197                              in the service.  Set to 0x00 (false) when
198                              out of reach.
199
200
201 x    ATTRIBUTE_STATUS_MOOD
202
203
204
205 x    ATTRIBUTE_STATUS_FREETEXT
206
207      This attribute includes the user's online status free text.  It
208      can provide personal status as a text message.  The contents of
209      this attribute is a UTF-8 encoded free text string.
210
211      Length       Type       Value
212      variable     string     Free text status string
213
214
215 x    ATTRIBUTE_STATUS_MESSAGE
216
217      This attribute includes the user's online status message.  It
218      could provide for example a multi media message showing the status
219      of the user.  The contents of this attribute is a MIME object,
220      which can be used to provide for example video, audio, image or
221      other similar status message.  It could also provide a reference
222      to the message, for example an URL address.
223
224      Length       Type       Value
225      variable     MIME       Status message as MIME object
226
227
228 x    ATTRIBUTE_STATUS_COMMUNICATION
229
230
231
232
233 x    ATTRIBUTE_PREFERRED_LANGUAGE
234
235
236 x    ATTRIBUTE_PREFERRED_CONTACT
237
238
239 x    ATTRIBUTE_TIMEZONE
240
241      This attribute can be used to provide the current local time for
242      the user.  The contents of this attribute is a UTF-8 encoded
243      string and the format of the string is UTC time zone defined
244      in the ISO 8601.
245
246      Length       Type       Value
247      variable     string     UTC date, format as in ISO 8601
248
249      Note that ATTRIBUTE_USER_INFO may also provide this information.
250      However it is RECOMMENDED that this attribute is used when
251      current time zone information is provided.
252
253
254 x    ATTRIBUTE_GEOLOCATION
255
256      This attribute can be used to provide measured global location of
257      the user.  How this information is gathered is out of scope of
258      this document.  The attribute can provide latitude and longitude
259      lateral positions, but also a vertical position.  A parameter
260      describing the accuracy of the information can also be provided.
261
262
263
264      Note that ATTRIBUTE_USER_INFO may also provide this information,
265      however it does not have the vertical position, or the accuracy
266      parameter.  It is RECOMMENDED that this attribute is used when
267      providing current global position information.
268
269
270 x    ATTRIBUTE_DEVICE_INFO
271
272
273 x    ATTRIBUTE_EXTENSION
274
275      This attribute indicates that the attribute value is vendor,
276      application or service specific attribute extension.  This field
277      MUST include a MIME object, which is the extension value.  This
278      document does not specify any explicit MIME objects for this
279      attribute.
280
281      Length       Type       Value
282      variable     MIME       Attribute extension as MIME object
283
284
285 x    ATTRIBUTE_USER_PUBLIC_KEY
286
287      This attribute includes the user's public key or certificate.
288      As the public key and certificate format depends on which sort
289      of algorithm or certificate encoding user is using we need to
290      define a mechanism to differentiate the public key types from
291      each other.  This document specifies the most common public keys
292      and certificates.  This attribute can be used to deliver the
293      user's public key, and it MUST be present if also the
294      ATTRIBUTE_USER_DIGITAL_SIGNATURE is present.  Note that the
295      recipient of this attribute SHOULD verify the public key from
296      a third party, for example from Certification Authority.
297
298      Length       Type       Value
299      variable     string     Public key/certificate type
300      variable     data       Public key/certificate data
301
302      The following public key/certificate types are defined:
303
304      ssh-rsa           SSH RSA public key [SSH-TRANS]
305      ssh-dss           SSH DSS public key [SSH-TRANS]
306      silc-rsa          SILC RSA public key [SILC1]
307      silc-dss          SILC DSS public key [SILC1]
308      pgp-sign-rsa      OpenPGP RSA certificate [RFC2440]
309      pgp-sign-dss      OpenPGP DSS certificate [RFC2440]
310      x509v3-sign-rsa   X.509 Version 3 RSA certificate [RFC2459]
311      x509v3-sign-dss   X.509 Version 3 DSS certificate [RFC2459]
312
313      Most of these public key/certificate types are equivalent to
314      the types specified for SSH protocol [SSH-TRANS] and are expected
315      to be officially assigned by IANA.
316
317      The encoding of the public key/certificate data in the attribute
318      is done in the manner defined in their respective definitions.
319
320      Note that these public keys are intended for signing.  Some
321      certificates may have a key usage restrictions and same key cannot
322      be used for both encryption and signing.  Therefore, the name
323      of the certificate type indicates if they are intended for 
324      signing only.
325
326
327 x    ATTRIBUTE_SERVER_PUBLIC_KEY
328
329      This attribute includes a third party server or authority public
330      key or CA certificate and MUST be present if the attribute
331      ATTRIBUTE_SERVER_DIGITAL_SIGNATURE is also present.  The format
332      for this attribute is identical to the ATTRIBUTE_USER_PUBLIC_KEY 
333      attribute.
334
335
336 x    ATTRIBUTE_USER_DIGITAL_SIGNATURE
337
338      This attribute value includes digital signature of all Attribute
339      Payloads except this attribute.  This signature can be provided by
340      the user.  This attribute SHOULD be last attribute provided in the 
341      reply so that it is easier for the receiver to compute the signature 
342      data to be verified.  The format and encoding of this attribute
343      depends on the public key or certificate used to produce the
344      signature.  See the ATTRIBUTE_USER_PUBLIC_KEY for all public keys
345      and certificates that can be used to produce a signature.
346
347      Length       Type       Value
348      variable     data       Digital signature data
349
350      The encodings are as follows per public key/certificate type:
351
352      ssh-rsa and ssh-dss                   Defined in [SSH-TRANS]
353      silc-rsa and silc-dss                 Defined in [SILC1]
354      pgp-sign-rsa and pgp-sign-dss         Defined in [RFC2440]
355      x509v3-sign-rsa and x509v3-sign-dss   Defined in [PKCS7]
356
357      The procedure producing the signature and encoding it are done
358      in the manner defined in their respective definitions, see the
359      provided references.
360
361
362 x    ATTRIBUTE_SERVER_DIGITAL_SIGNATURE
363
364      This attribute value includes digital signature of all Attribute
365      Payloads except this attribute, but including the attribute
366      ATTRIBUTE_USER_DIGITAL_SIGNATURE.  This signature can be provided
367      by a third party server or an authority which has verified the
368      information provided by the user.  How it verifies this information
369      is out of scope of this document, however it may base its
370      information to a previous registeration information and current
371      online status of the user in a service.  This attribute SHOULD be 
372      last when provided, so that it is easier for the receiver to
373      compute the signature data to be verified.  The format for this
374      attribute is identical to the ATTRIBUTE_USER_DIGITAL_SIGNATURE
375      attribute.
376 .in 3
377
378
379 .ti 0
380 4 Security Considerations
381
382
383
384 .ti 0
385 5 References 
386
387 [RFC2119]    Bradner, S., "Key Words for use in RFCs to Indicate
388              Requirement Levels", BCP 14, RFC 2119, March 1997.
389
390 [RFC2279]    Yergeau, F., "UTF-8, a transformation format of ISO
391              10646", RFC 2279, January 1998.
392
393 [RFC2425]    Howes, T., et al, "A MIME Content-Type for Directory
394              Information", RFC 2425, September 1998.
395
396 [RFC2426]    Dawson, F., et al, "vCard MIME Directory Profile",
397              RFC 2426, September 1998.
398
399 [SILC1]      Riikonen, P., "Secure Internet Live Conferencing (SILC),
400              Protocol Specification", Internet Draft, April 2001.
401
402 [RFC2440]    Callas, J., et al, "OpenPGP Message Format", RFC 2440,
403              November 1998.
404
405 [RFC2459]    Housley, R., et al, "Internet X.509 Public Key 
406              Infrastructure, Certificate and CRL Profile", RFC 2459,
407              January 1999.
408
409 [SSH-TRANS]  Ylonen, T., et al, "SSH Transport Layer Protocol", 
410              Internet Draft.
411
412 [PKCS7]      Kalinski, B., "PKCS #7: Cryptographic Message Syntax,
413              Version 1.5", RFC 2315, March 1998.
414
415
416 .ti 0
417 6 Author's Address
418
419 Pekka Riikonen
420 Snellmanninkatu 34 A 15
421 70100 Kuopio
422 Finland
423
424 EMail: priikone@iki.fi
425
426 This Internet-Draft expires XXX