created.
[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 2425 [RFC2425] and RFC 2426
173      [RFC2426].  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 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      These public key/certificate types are equivalent to the types
314      specified for SSH protocol [SSH-TRANS] and are expected to be
315      officially assigned by IANA.  The silc-rsa and silc-dss are not
316      currently specified in SSH, however they are considered to be
317      IANA assigned later anyway.
318
319      The encoding of the public key/certificate data in the attribute
320      is done in the manner defined in their respective definitions.
321
322      Note that these public keys are intended for signing.  Some
323      certificates may have a key usage restrictions and same key cannot
324      be used for both encryption and signing.  Therefore, the name
325      of the certificate type indicates that they are intended for 
326      signing.
327
328
329 x    ATTRIBUTE_SERVER_PUBLIC_KEY
330
331      This attribute includes a third party server or authority public
332      key or CA certificate and MUST be present if the attribute
333      ATTRIBUTE_SERVER_DIGITAL_SIGNATURE is also present.  The format
334      for this attribute is identical to the ATTRIBUTE_USER_PUBLIC_KEY 
335      attribute.
336
337
338 x    ATTRIBUTE_USER_DIGITAL_SIGNATURE
339
340      This attribute value includes digital signature of all Attribute
341      Payloads except this attribute.  This signature can be provided by
342      the user.  This attribute SHOULD be last attribute provided in the 
343      reply so that it is easier for the receiver to compute the signature 
344      data to be verified.  The format and encoding of this attribute
345      depends on the public key or certificate used to produce the
346      signature.  See the ATTRIBUTE_USER_PUBLIC_KEY for all public keys
347      and certificates that can be used to produce a signature.
348
349      Length       Type       Value
350      variable     data       Digital signature data
351
352      The encodings are as follows per public key/certificate type:
353
354      ssh-rsa and ssh-dss                   Defined in [SSH-TRANS]
355      silc-rsa and silc-dss                 Defined in [SILC1]
356      pgp-sign-rsa and pgp-sign-dss         Defined in [RFC2440]
357      x509v3-sign-rsa and x509v3-sign-dss   Defined in [PKCS7]
358
359      The procedure producing the signature and encoding it are done
360      in the manner defined in their respective definitions, see the
361      provided references.
362
363
364 x    ATTRIBUTE_SERVER_DIGITAL_SIGNATURE
365
366      This attribute value includes digital signature of all Attribute
367      Payloads except this attribute, but including the attribute
368      ATTRIBUTE_USER_DIGITAL_SIGNATURE.  This signature can be provided
369      by a third party server or an authority which has verified the
370      information provided by the user.  How it verifies this information
371      is out of scope of this document, however it may base its
372      information to a previous registeration information and current
373      online status of the user in a service.  This attribute SHOULD be 
374      last when provided, so that it is easier for the receiver to
375      compute the signature data to be verified.  The format for this
376      attribute is identical to the ATTRIBUTE_USER_DIGITAL_SIGNATURE
377      attribute.
378 .in 3
379
380
381 .ti 0
382 4 Security Considerations
383
384
385
386 .ti 0
387 5 References 
388
389
390
391 .ti 0
392 6 Author's Address
393
394 Pekka Riikonen
395 Snellmanninkatu 34 A 15
396 70100 Kuopio
397 Finland
398
399 EMail: priikone@iki.fi
400
401 This Internet-Draft expires XXX