updates.
[website.git] / docs / protocol / draft-riikonen-silc-multimedia-session-00.txt
1
2
3
4
5
6
7 Network Working Group                                        P. Riikonen
8 Internet-Draft
9 draft-riikonen-silc-multimedia-session-00.txt            15 January 2007
10 Expires: 15 July 2007
11
12
13                    Multimedia Sessions in SILC protocol
14               <draft-riikonen-silc-multimedia-session-00.txt>
15
16 Status of this Draft
17
18    By submitting this Internet-Draft, each author represents that any
19    applicable patent or other IPR claims of which he or she is aware
20    have been or will be disclosed, and any of which he or she becomes
21    aware will be disclosed, in accordance with Section 6 of BCP 79.
22
23    Internet-Drafts are working documents of the Internet Engineering
24    Task Force (IETF), its areas, and its working groups. Note that
25    other groups may also distribute working documents as Internet-
26    Drafts. Internet-Drafts are draft documents valid for a maximum of
27    six months and may be updated, replaced, or obsoleted by other
28    documents at any time. It is inappropriate to use Internet-Drafts as
29    reference material or to cite them other than as "work in progress".
30
31    The list of current Internet-Drafts can be accessed at
32    http://www.ietf.org/1id-abstracts.html
33    The list of Internet-Draft Shadow Directories can be accessed at
34    http://www.ietf.org/shadow.html.
35
36
37 Abstract
38
39    This document defines the use of multimedia protocols and the set up
40    of multimedia sessions in the Secure Internet Live Conferencing (SILC)
41    protocol [SILC1].
42
43
44 Table of Contents
45
46    1 Introduction ..................................................  2
47      1.1 Requirements Terminology ..................................  2
48    2 Recommended Protocol ..........................................  2
49    3 Session Description Protocol (SDP) ............................  2
50      3.1 SDP field usage in SILC ...................................  3
51      3.2 SDP Examples ..............................................  5
52    4 Session Initiation Protocol (SIP) .............................  6
53    5 Other Protocols ...............................................  6
54    6 Security Considerations .......................................  7
55
56
57
58 Riikonen                                                        [Page 1]
59 \f
60 Internet-Draft                                           15 January 2007
61
62
63    7 References ....................................................  7
64    8 Author's Address ..............................................  7
65    9 Full Copyright Statement ......................................  7
66
67
68 1 Introduction
69
70    This document defines the use of multimedia protocols and the set up
71    of multimedia sessions in the Secure Internet Live Conferencing (SILC)
72    protocol [SILC1].  The SILC protocol supports multimedia messages
73    with the Message Payload [SILC2] and SILC_MESSAGE_FLAG_DATA which
74    has the ability to define what type of content is delievered within
75    the payload.  The Message Payload is used to encapsulate the multimedia
76    session set up procedure and the actual multimedia session data.  We
77    define the recommended multimedia session protocol for SILC and also
78    consider some other protocols in the scope of SILC.
79
80
81 1.1 Requirements Terminology
82
83    The keywords MUST, MUST NOT, REQUIRED, SHOULD, SHOULD NOT, RECOMMENDED,
84    MAY, and OPTIONAL, when they appear in this document, are to be
85    interpreted as described in [RFC2119].
86
87
88 2 Recommended Protocol
89
90    Since SILC protocol can encapsulate practically any protocol for setting
91    up a multimedia session we have selected the Session Description Protocol
92    (SDP) as RECOMMENDED protocol.  It was chosen for its maturity, simplicity
93    and versatility.  If multimedia features are implemented in SILC
94    application it is recommended that at least support for SDP is added.
95
96
97 3 Session Description Protocol (SDP)
98
99    The SDP [SDP] protocol defines a general purpose multimedia session
100    description protocol.  SDP is one of the simplest protocols to negotiate
101    multimedia sessions and is suited perfectly for SILC protocol.  Since SDP
102    does not itself define how it is used to set up the session, we define it
103    here for SILC.  The definition is based on the [RFC3264] and [RFC4145].
104
105    In SILC the SDP messages are sent as data messages (MIME message).  They
106    can be destined directly to a client for direct conferencing, or to a
107    channel for group conferencing.  It is also possible to send the message
108    directly to client to invite them to group conferencing before they have
109    joined the channel.  The MIME type used is application/sdp.
110
111
112
113
114 Riikonen                                                        [Page 2]
115 \f
116 Internet-Draft                                           15 January 2007
117
118
119    To set up a multimedia session a client sends SILC message with
120    SILC_MESSAGE_FLAG_DATA and SILC_MESSAGE_FLAG_REQUEST flags set and with
121    MIME SDP message in the message payload.  If the receiver wants to
122    participate in the multimedia session it sends MIME SDP message back with
123    SILC_MESSAGE_FLAG_DATA and SILC_MESSAGE_FLAG_REPLY flags set to the
124    sender.  If reply is not received after an application defined period of
125    time the message may be retransmitted or the session set up may be
126    terminated.
127
128    After reply has been received the multimedia session is started according
129    to the SDP and all multimedia data is sent using SILC data messages.  When
130    performing peer-to-peer connection the SDP defines which party initiates
131    the connection.  After initiation the SILC Key Exchange protocol MUST be
132    performed.  The resulted key material will be used to protect the multimedia
133    session.  Multimedia data transmission may start after the key exchange
134    has been performed.  When performing group conferencing all parties
135    independently connect to the SILC server specified in the SDP.  In other
136    cases when performing the multimedia session inside the SILC network, any
137    party may start transmitting the multimedia data after the SDPs have been
138    exchanged.
139
140    To terminate the session, or to reject incoming request, an MD5 digest
141    MUST be computed from the original SDP data, and the digest is sent back
142    with the SILC_MESSAGE_FLAG_DATA and SILC_MESSAGE_FLAG_STOP flags set.
143    The receiver of such message should verify the MD5 digest and terminate
144    the session if it matches any active session.  The session may also be
145    terminated by closing network connection.  In group sessions simply by
146    leaving the channel terminates the session.  The original sender of the
147    SDP message may send the terminating message to notify all clients on the
148    channel to terminate the session.  If the original sender on channel
149    receives the terminating message it takes no action on it.
150
151 3.1 SDP field usage in SILC
152
153    The Encryption Keys (k=) field describes encryption key to protect the
154    multimedia session.  As SILC protocol transport and the multimedia session
155    is secured by default this field SHOULD NOT be used.
156
157
158    The Origin (o=) field describes from where the session originates.  The
159    <username> sub-field is the sender's SILC nickname.  Examples:
160
161         o=foobar 2890844521 2890842804 IN IP4 10.2.1.7
162
163
164    The Connection Data (c=) field describes the connection information for
165    the multimedia session.  When performing peer-to-peer multimedia session
166    the <network type> is 'IN', indicating Internet connection.  When
167
168
169
170 Riikonen                                                        [Page 3]
171 \f
172 Internet-Draft                                           15 January 2007
173
174
175    performing multimedia session inside SILC network it is 'SILC'.  When
176    the 'SILC' network type is used the <address type> and <connection address>
177    sub-fields are omitted.  Examples:
178
179         c=SILC
180         c=IN IP4 10.2.1.7
181
182
183    The Media Announcements (m=) field describes the media information for the
184    multimedia session.  If the network type in c= field is 'SILC' the <port>
185    sub-field MUST be set to 9 (discard).  The <transport> for RTP over UDP
186    is 'RTP/AVP', for RTP over TCP it is 'TCP/RTP/AVP', and for non-RTP protocol
187    over UDP it is 'udp' and over TCP it is 'tcp'.  The <fmt> sub-field
188    includes the RTP media payload number when using RTP.  When using non-RTP
189    protocol it includes MIME subtype.  Examples:
190
191         c=SILC
192         m=audio 9 TCP/RTP/AVP 3
193         a=rtpmap:3 GSM/8000
194
195         c=SILC
196         m=audio 9 tcp mpeg
197
198
199    The Attributes (a=) field can be used to set various session and media
200    specific attributes.  For SILC we define attribute "silc".
201
202         a=silc:<session type> <parameters>
203
204    The <session type> is either "direct" or "group".  When it is "direct"
205    and the c= field defines a connection point the connection will be
206    peer-to-peer connection to the remote client.  If it is "group" and the
207    the c= field defines a connection point the connection will be to a remote
208    SILC server for group conferencing.  If c= field includes "SILC" network
209    type, then "direct" is for direct session with a client in SILC network
210    and "group" is for group conferencing in SILC network.  If the "silc"
211    attribute is omitted the session type is expected to be "direct".  The
212    following parameters are defined for attribute "silc".
213
214         channel        The name of the channel for group conferencing.
215                            Can be used only with "group" session type.
216                            More than one channel parameters may be defined.
217
218
219    The [RFC4145] specifies a "setup" attribute that defines which party of the
220    session will initiate the connection when performing peer-to-peer session.
221    Its use in SILC is as specified in [RFC4145] and MUST be present in SDP
222    when the c= field includes an actual connection point and when the "silc"
223
224
225
226 Riikonen                                                        [Page 4]
227 \f
228 Internet-Draft                                           15 January 2007
229
230
231    attribute session type is "direct", or if the attribute is not present at
232    all.  When performing group conferencing each party always need to create
233    the connection to the server and the "setup" attribute need not be present
234    in SDP.
235
236 3.2 SDP Examples
237
238         v=0
239         o=foobar 2890844521 2890842804 IN IP4 10.2.1.100
240         s=peer-to-peer example
241         t=0 0
242         m=audio 5000 TCP/RTP/AVP 3
243         c=IN IP4 10.2.1.100
244         a=rtpmap:3 GSM/8000
245         a=silc:direct
246         a=setup:active
247
248    This example sets up a peer-to-peer session to remote client at
249    10.2.1.100 at port 5000.
250
251         v=0
252         o=foobar 2890844521 2890842804 IN IP4 10.2.1.32
253         s=Group conferencing example
254         c=IN IP4 10.2.1.7
255         t=0 0
256         a=silc:group channel=foobar
257         m=audio 706 TCP/RTP/AVP 3
258         a=rtpmap:3 GSM/8000
259
260    This example sets up a session to a remote SILC server 10.2.1.7 at port
261    706.  Once connected the channel "foobar" will be joined for group
262    conferencing.
263
264         v=0
265         o=foobar 2890844521 2890842804 IN IP4 10.2.1.32
266         s=SILC network chat example
267         c=SILC
268         t=0 0
269         m=audio 9 TCP/RTP/AVP 3
270         a=rtpmap:3 GSM/8000
271
272    This example sets up a session inside SILC network with the remote user
273    "foobar".
274
275         v=0
276         o=foobar 2890844521 2890842804 IN IP4 10.2.1.32
277         s=SILC network group conferencing example
278         t=0 0
279
280
281
282 Riikonen                                                        [Page 5]
283 \f
284 Internet-Draft                                           15 January 2007
285
286
287         m=audio 9 TCP/RTP/AVP 3
288         c=SILC
289         a=rtpmap:3 GSM/8000
290         a=silc:group channel=group-chat
291
292    This example sets up a group conferencing session inside SILC network on
293    channel "group-chat".
294
295
296 4 Session Initiation Protocol (SIP)
297
298    The SIP [SIP] protocol is a general purpose protocol for setting up,
299    modifying and terminating different kinds of sessions, including
300    multimedia sessions.  The SIP protocol use the SDP to describe the
301    multimedia session.
302
303    In SILC the SIP messages are sent as data messages (MIME message).  They
304    can be destined directly to a client for direct conferencing, or to a
305    channel for group conferencing.  It is also possible to send the message
306    directly to client to invite them to group conferencing before they have
307    joined the channel.  The MIME type used is application/sip.  The
308    SILC_MESSAGE_FLAG_DATA flag must be set in each message and the message
309    payload includes a MIME SIP message.  The actual SIP session set up and
310    termination is described in the SIP protocol specification, and SILC
311    protocol merely provides a secure transport for the session.  After the
312    session is set up all multimedia data is sent using SILC data messages.
313    The MIME type for the multimedia data messages is defined during the SIP
314    session set up.
315
316    The rules for SDP fields described in previous section also applies for
317    SDP with SIP in the context of SILC.
318
319    Proxy and redirection servers usually would not be used in the context of
320    SILC, unless the sessions are redirected to outside SILC network.  This
321    may compromise the security of the session.
322
323    The S/MIME need not be used when using SIP in SILC protocol.  The SILC
324    protocol transport and the created multimedia session is secured by
325    default.
326
327
328 5 Other Protocols
329
330    There are other open and proprietary protocols for setting up multimedia
331    sessions.  One important is H.323 using the H.225 to set up the session.
332    This document should later define the use of H.323 with SILC.
333    Practically any protocol to set up multimedia sessions may be used with
334    SILC by using SILC as a secure transport to set up the session, and to use
335
336
337
338 Riikonen                                                        [Page 6]
339 \f
340 Internet-Draft                                           15 January 2007
341
342
343    SILC data messages (MIME messages) to secure and deliver the actual
344    multimedia data once the session has been established.
345
346
347 6 Security Considerations
348
349    Security is central to the design of this protocol, and these security
350    considerations permeate the specification.  Common security considerations
351    such as keeping private keys truly private and using adequate lengths for
352    symmetric and asymmetric keys must be followed in order to maintain the
353    security of this protocol.
354
355
356 7 References
357
358    [SILC1]      Riikonen, P., "Secure Internet Live Conferencing (SILC),
359                 Protocol Specification", Internet Draft, June 2003.
360
361    [SILC2]      Riikonen, P., "SILC Packet Protocol", Internet Draft,
362                 June 2003.
363
364    [RFC3264]    Rosenberg, J., et. al., "An Offer/Answer Model with the
365                 Session Description Protocol (SDP)", RFC 3264, June 2002.
366
367    [RFC4145]    Yon, D., et. al., "TCP-Based Media Transport in the
368                 Session Description Protocol (SDP)", RFC 4145, September
369                 2005.
370
371    [SIP]        Rosenberg, J., et. al., "SIP: Session Initiation Protocol",
372                 RFC 3261, June 2002.
373
374
375
376 8 Author's Address
377
378    Pekka Riikonen
379    Helsinki
380    Finland
381
382    EMail: priikone@iki.fi
383
384
385 9 Full Copyright Statement
386
387    Copyright (C) The Internet Society (2007).
388
389    This document is subject to the rights, licenses and restrictions
390    contained in BCP 78, and except as set forth therein, the authors
391
392
393
394 Riikonen                                                        [Page 7]
395 \f
396 Internet-Draft                                           15 January 2007
397
398
399    retain all their rights.
400
401    This document and the information contained herein are provided on an
402    "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
403    OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
404    ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
405    INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
406    INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
407    WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450 Riikonen                                                        [Page 8]
451 \f