Groupe de travail Réseau

R. Sparks, dynamicsoft

Request for Comments : 3420

novembre 2002

Catégorie : En cours de normalisation

Traduction Claude Brière de L'Isle



Type de support Internet message/sipfrag


Statut de ce mémoire

Le présent document spécifie un protocole Internet en cours de normalisation pour la communauté de l’Internet, et appelle à des discussions et des suggestions pour son amélioration. Prière de se reporter à l’édition actuelle du STD 1 "Normes des protocoles officiels de l’Internet" pour connaître l’état de normalisation et le statut de ce protocole. La distribution du présent mémoire n’est soumise à aucune restriction.


Notice de copyright

Copyright (C) The Internet Society (2002). Tous droits réservés.


Résumé

Le présent document enregistre le type de support message/sipfrag d'extension de messagerie Internet multi objets (MIME, Multipurpose Internet Mail Extensions). Ce type est similaire au message/sip, mais permet de représenter certains sous-ensembles de messages bien formés du protocole d'initialisation de session (SIP, Session Initiation Protocol) au lieu de devoir recourir à un message SIP complet. En plus des utilisation de sécurité de bout en bout, le message/sipfrag est utilisé avec la méthode REFER pour convoyer des informations sur le statut d'une demande référencée.



Table des Matières

1. Introduction 1

2. Définition : message/sipfrag 2

3. Exemples 2

3.1 Parties message/sipfrag valides 2

3.2 Parties de message/sipfrag invalides 3

4. Discussion 3

5. Considérations relatives à l'IANA 4

6. Considérations pour la sécurité 4

Références normatives 4

Références non normatives 5

Adresse de l'auteur 5

Déclaration complète de droits de reproduction 5



1. Introduction


Le type de support MIME message/sip défini dans la [RFC3261] porte un message SIP bien formé entier. Le paragraphe 23.4 de la [RFC3261] décrit l'utilisation de message/sip de concert avec S/MIME pour améliorer la sécurité de bout en bout. Les concepts de ce paragraphe peuvent être étendus pour permettre aux entités SIP de faire des assertions sur un sous-ensemble d'un message SIP (par exemple, comme décrit dans la [RFC4474]). Le type message/sipfrag défini dans le présent document est utilisé pour représenter ce sous-ensemble.


Un sous-ensemble d'un message SIP est aussi utilisé par la méthode REFER définie dans la [RFC3892] pour porter le statut des demandes référencées. Permettre que seule une portion d'un message SIP soit portée permet que des informations qui pourraient compromettre la vie privée et la confidentialité soient protégées en les retirant.


Le présent document NE FOURNIT PAS de mécanisme permettant de segmenter un message SIP en plusieurs parties pour un transport séparé et un réassemblage ultérieur. Le type message/partial défini dans la [RFC2046] offre une solution à ce problème.


Les mots clés "DOIT", "NE DOIT PAS", "EXIGE", "DEVRA", "NE DEVRA PAS", "DEVRAIT", "NE DEVRAIT PAS", "RECOMMANDE", "PEUT", et "FACULTATIF" dans le présent document sont à interpréter comme décrit dans la [RFC2119].


2. Définition : message/sipfrag


Une partie message/sipfrag valide est celle qui peut être obtenue en partant d'un message SIP valide et en supprimant un des éléments suivants :

o la ligne de début entière

o un ou plusieurs champs d'en-tête entiers

o le corps du message


La règle de format Backus-Naur augmenté (ABNF, Augmented Backus-Naur Form) [RFC2234] suivante décrit une partie message/sipfrag en utilisant les éléments de grammaire SIP définis dans la [RFC3261]. L'expansion de tout élément est soumise aux restrictions sur les messages SIP valides qui y sont définis.


sipfrag = [ ligne-de-début ] *en-tête de message

[ CRLF [ corps-de-message ] ]


Si la partie message/sipfrag contient un corps, il DOIT aussi contenir les champs d'en-tête appropriés qui décrivent ce corps (comme Longueur-de-contenu) comme exigé par le paragraphe 7.4 de la [RFC3261] et la ligne nulle séparant l'en-tête du corps.


3. Exemples

3.1 Parties message/sipfrag valides


Ce paragraphe utilise une barre verticale et une espace à la gauche de chaque exemple pour illustrer l'étendue de l'exemple. Chaque ligne de l'élément message/sipfrag commence au premier caractère après la paire "| ".


Les deux premiers exemples montrent qu'une partie message/sipfrag peut consister seulement en une ligne de début.


| INVITE sip:alice@atlanta.com SIP/2.0

ou

| SIP/2.0 603 Refusé


Les deux exemple suivants montrent que des sous-ensembles d'un message complet peuvent être représentés.


| REGISTER sip:atlanta.com SIP/2.0

| To: sip:alice@atlanta.com

| Contact: <sip:alicepc@atlanta.com>;q=0.9,

| <sip:alicemobile@atlanta.com>;q=0.1


| SIP/2.0 400 Mauvaise demande

| Warning: 399 atlanta.com Ton champ d'en-tête Event était mal formé


Une partie message/sipfrag n'a pas à contenir de ligne de début. Cet exemple montre une partie qui pourrait être signée pour faire des assertions sur un message particulier. (Voir [RFC4474].)


| From: Alice <sip:alice@atlanta.com>

| To: Bob <sip:bob@biloxi.com>

| Contact: <sip:alice@pc33.atlanta.com>

| Date: Thu, 21 Feb 2002 13:02:03 GMT

| Call-ID: a84b4c76e66710

| Cseq: 314159 INVITE


Les deux exemples suivants montrent des parties message/sipfrag qui contiennent des corps.


| SIP/2.0 200 OK

| Content-Type: application/sdp

| Content-Length: 247

|

| v=0

| o=alice 2890844526 2890844526 IN IP4 host.anywhere.com

| s=

| c=IN IP4 host.anywhere.com

| t=0 0

| m=audio 49170 RTP/AVP 0

| a=rtpmap:0 PCMU/8000

| m=video 51372 RTP/AVP 31

| a=rtpmap:31 H261/90000

| m=video 53000 RTP/AVP 32

| a=rtpmap:32 MPV/90000


| Content-Type: text/plain

| Content-Length: 11

|

| Coucou !


3.2 Parties de message/sipfrag invalides


Ce paragraphe utilise le caractère "X" suivi d'une espace à gauche de chaque exemple pour illustrer l'étendue de l'exemple. Chaque ligne de l'élément message/sipfrag invalide commence au premier caractère après la paire "X ".


La ligne de début, si elle est présente, doit être complète et valide selon la [RFC3261].


X INVITE


X INVITE sip:alice@atlanta.com SIP/1.09


X SIP/2.0


X 404 Pas trouvé


Tous les champs d'en-tête doivent être valides selon [RFC3261].


X INVITE sip:alice@atlanta.com SIP/2.0

X Via: SIP/2.0/UDP ;branch=z9hG4bK29342a

X To: <>;tag=39234


X To: sip:alice@atlanta.com

X From: sip:bob@biloxi.com;tag=1992312

X Call-ID: c'est invalide


X INVITE sip:alice@atlanta.com SIP/2.0

X From: <sip:bob@biloxi.com>;tag=z9hG4bK2912;tag=z9hG4bK99234


Si un corps est présent dans la partie message/sipfrag, il DOIT aussi contenir les en-têtes requis par le paragraphe 7.4 de la [RFC3261] et la ligne nulle séparant l'en-tête du corps.


X MESSAGE sip:alice@atlanta.com SIP/2.0

X Coucou !


4. Discussion


La Section 23 de la [RFC3261], et les mémoires [RFC3892] et [RFC4474] donnent la motivation et des exemples détaillés de transport de tout ou partie d'un message SIP dans une partie MIME. En bref, utiliser cette représentation avec S/MIME permet de protéger et de faire des assertions sur des portions d'un en-tête de message SIP. Cela permet aussi aux applications de décrire l'échange de message impliqué dans une transaction SIP en utilisant des portions des messages eux-mêmes.


La méthode SIP REFER [RFC3892], par exemple, utilise cela pour rapporter le résultat d'une demande SIP à un tiers autorisé. Cependant, comme le précise ce document, il est rarement souhaitable d'inclure le message de réponse SIP entier dans ce rapport comme une partie MIIME message/sip. Le faire a des implications négatives significatives sur la sécurité. D'un autre côté, le type message/sipfrag permet à un envoyeur de choisir les informations qui sont exposées. De plus, il permet d'éluder les informations exigées dans un message SIP complet qui ne sont pas pertinentes pour une description de ce message, réduisant ainsi la taille du message. Par exemple, cela permet à un élément SIP qui répond à un REFER de dire "J'ai un 400 Mauvaise Demande avec ce champ d'en-tête Warning" sans avoir à inclure les champs d'en-tête Via, To, From, Call-ID, CSeq et Content-Length obligatoires dans un message SIP complet.


Le mécanisme de protection de message exposé à la Section 23 de la [RFC3261] suppose qu'un message SIP entier est protégé. Cependant, il y a plusieurs champs d'en-tête dans un message SIP complet qui changent nécessairement durant le transport. La [RFC3261] discute de la façon dont il faut inspecter et ignorer ces changements. Cette idée est précisée dans la [RFC4474] pour permettre la protection d'un sous-ensemble du message entier, évitant le travail supplémentaire et les erreurs potentielles que cela implique en ignorant les parties du message qui peuvent légitimement changer dans le transit. Ce document décrit aussi la construction des assertions cryptographiques sur des sous-ensembles pertinents d'un en-tête de message SIP avant que l'en-tête complet (y compris les informations spécifiques du transport bond par bond) ne soit disponible.


5. Considérations relatives à l'IANA


Le type de support message/sipfrag est défini par les informations suivantes :


Nom du type de support : message

Nom du sous-type de support : sipfrag

Paramètres requis : aucun

Paramètres facultatifs : version

Version : Le numéro de version SIP du message inclus (par exemple, "2.0"). S'il n'est pas présent, la version par défaut est "2.0".

Schéma de codage : Les messages SIP consistent en un en-tête de 8 bits facultativement suivi par un objet de données MIME.À ce titre, les messages SIP doivent être traités comme binaires. Dans des circonstances normales, les messages SIP sont transportés sur des transports à capacité binaire, aucun codage particulier n'est nécessaire.

Considérations pour la sécurité : voir ci-dessous.


6. Considérations pour la sécurité


Une partie MIME message/sipfrag peut contenir des informations sensibles ou des informations utilisées pour affecter des décisions de traitement chez le receveur. Que l'on expose ces informations ou qu'on les modifie durant le transport peut causer des dommages. Son niveau de protection peut être amélioré en utilisant les mécanismes S/MIME décrits à la section 23 de la [RFC3261], avec les limitations décrites à la section 26 de ce document, ainsi que les mécanismes décrits dans la [RFC4474].


Les applications qui utilisent message/sipfrag pour représenter un sous-ensemble des champs d'en-tête provenant d'un message SIP doivent considérer les implications de la capture de la partie message/sipfrag et de sa répétition. Il convient d'y inclure des informations suffisantes pour atténuer le risque. Toute extension SIP qui utilise message/sipfrag DOIT décrire les menaces de répétition et de copié collé particulières à cet utilisation. Par exemple, [RFC4474] expose comment un sous-ensemble de message SIP peut être utilisé pour attester l'identité de l'entité qui fait une demande SIP. Le texte précise quelles informations doivent être contenues dans le sous-ensemble pour lier l'assertion à la demande.


Références normatives


[RFC2046] N. Freed et N. Borenstein, "Extensions de messagerie Internet multi-objets (MIME) Partie 2 : Types de support", novembre 1996. (D. S., MàJ par 2646, 3798, 5147, 6657.)


[RFC2119] S. Bradner, "Mots clés à utiliser dans les RFC pour indiquer les niveaux d'exigence", BCP 14, mars 1997.


[RFC2234] D. Crocker et P. Overell, "BNF augmenté pour les spécifications de syntaxe : ABNF", novembre 1997. (Obsolète, voir RFC5234)


[RFC3261] J. Rosenberg et autres, "SIP : Protocole d'initialisation de session", juin 2002. (Mise à jour par RFC3265, RFC3853, RFC4320, RFC4916, RFC5393, RFC6665)


Références non normatives


[RFC3892] R. Sparks, "Mécanisme Referred-by du protocole d'initialisation de session (SIP)", septembre 2004.


[RFC4474] J. Peterson et C. Jennings, "Améliorations de la gestion d'identité authentifiée dans le protocole d'initialisation de session (SIP)", août 2006. (P.S.)


Adresse de l'auteur


Robert J. Sparks

dynamicsoft

5100 Tennyson Parkway

Suite 1200

Plano, TX 75024

mél : rsparks@dynamicsoft.com


Déclaration complète de droits de reproduction


Copyright (C) The Internet Society (2002). Tous droits réservés.


Ce document et les traductions de celui-ci peuvent être copiés et diffusés, et les travaux dérivés qui commentent ou expliquent autrement ou aident à sa mise en œuvre peuvent être préparés, copiés, publiés et distribués, partiellement ou en totalité, sans restriction d'aucune sorte, à condition que l'avis de droits de reproduction ci-dessus et ce paragraphe soit inclus sur toutes ces copies et œuvres dérivées. Toutefois, ce document lui-même ne peut être modifié en aucune façon, par exemple en supprimant le droit d'auteur ou les références à l'Internet Society ou d'autres organisations Internet, sauf si c'est nécessaire à l'élaboration des normes Internet, auquel cas les procédures pour les droits de reproduction définis dans les processus des normes pour l’Internet doivent être suivies, ou si nécessaire pour le traduire dans des langues autres que l'anglais.


Les permissions limitées accordées ci-dessus sont perpétuelles et ne seront pas révoquées par la Société Internet ou ses successeurs ou ayants droit.


Ce document et les renseignements qu'il contient sont fournis "TELS QUELS" et L'INTERNET SOCIETY et L'INTERNET ENGINEERING TASK FORCE déclinent toute garantie, expresse ou implicite, y compris mais sans s'y limiter, toute garantie que l'utilisation de l'information ici présente n'enfreindra aucun droit ou aucune garantie implicite de commercialisation ou d'adaptation a un objet particulier.


Remerciement

Le financement de la fonction d’édition des RFC est actuellement fourni par la Internet Society.