Offre de service dans les réseaux de nouvelle...

248
THÈSE Présentée à L’UNIVERSITÉ BORDEAUX I ÉCOLE DOCTORALE DE MATHÉMATIQUES ET D’INFORMATIQUE Par Mohamed Aymen Chalouf POUR OBTENIR LE GRADE DE DOCTEUR SPÉCIALITÉ : INFORMATIQUE Soutenue le : 3 Décembre 2009 Devant la commission d’examen composée de : Anne Wei Professeur, Laboratoire LATTIS Présidente du jury José Neuman De Souza Professeur, Université Fédérale de Ceará Rapporteur Guy Pujolle Professeur, Université Paris 6 Rapporteur Toufik Ahmed Professeur, Université Bordeaux 1 Examinateur Christophe Dousson Ingénieur de Recherche, Orange Labs Examinateur Francine Krief Professeur, Université Bordeaux 1 Directrice de Thèse N° d’ordre: 3905 Offre de service dans les réseaux de nouvelle génération : Négociation sécurisée d’un niveau de service de bout en bout couvrant la qualité de service et la sécurité

Transcript of Offre de service dans les réseaux de nouvelle...

THÈSE Présentée à

L’UNIVERSITÉ BORDEAUX I

ÉCOLE DOCTORALE DE MATHÉMATIQUES ET D’INFORMATIQUE

Par Mohamed Aymen Chalouf

POUR OBTENIR LE GRADE DE

DOCTEUR

SPÉCIALITÉ : INFORMATIQUE

Soutenue le : 3 Décembre 2009

Devant la commission d’examen composée de :

Anne Wei Professeur, Laboratoire LATTIS Présidente du jury

José Neuman De Souza Professeur, Université Fédérale de Ceará Rapporteur

Guy Pujolle Professeur, Université Paris 6 Rapporteur

Toufik Ahmed Professeur, Université Bordeaux 1 Examinateur

Christophe Dousson Ingénieur de Recherche, Orange Labs Examinateur

Francine Krief Professeur, Université Bordeaux 1 Directrice de Thèse

N° d’ordre: 3905

Offre de service dans les réseaux de nouvelle génération : Négociation sécurisée d’un niveau de service de bout en

bout couvrant la qualité de service et la sécurité

iv

Abstract

Based on the IP technology, the next generation networks (NGN) must overcome the main

drawbacks of this technology consisting in the lack of quality of service (QoS), security and mobility

management. To ensure a service offer in an NGN, a protocol for negotiating a service level can be

used. However, most of the existing negotiation protocols allow the establishment of a service level

which includes only QoS. As for security and mobility, they were often not covered by these

negotiations, and therefore managed independently. However, securing a service can cause

degradation of the QoS, and the mobility of a user can change the service needs in terms of QoS

and security. Thus, we need to simultaneously manage QoS and security while taking into account

user’s mobility. In this context, we rely on a QoS signaling protocol, called SLNP, in order to

propose a mechanism that allows fixed and mobile users to negotiate a service level covering both

QoS and security, in a dynamic, automatic and secure manner. Our contribution is achieved in three

steps. Initially, we extend the service level negotiated with SLNP to security in order to enable the

negotiation of both security and QoS while taking into account the impact of security on QoS.

Then, this negotiation, using web services, is automated by basing it on a user profile. This allows

adjusting the service level according to changes which can occur on the user context. Thus, the

service offer is more dynamic and can be adapted to changes of access network resulting from the

mobility of the user. Finally, we propose to secure the negotiation flows in order to prevent the

different attacks that can target the exchanged messages during a negotiation process.

Keywords: Next generation networks, service level negotiation, quality of service, security,

mobility, web services.

v

Résumé Fondés sur la technologie IP, les réseaux de nouvelle génération (NGN) doivent surmonter les

principaux défauts inhérents à cette technologie, à savoir l’absence de la qualité de service (QoS), la

sécurité et la gestion de la mobilité. Afin de garantir une offre de service dans un réseau NGN, un

protocole de négociation de niveau de service peut être utilisé. Cependant, la majorité des

protocoles de négociation existants permettent l’établissement d’un niveau de service qui ne couvre

que la QoS. Quant à la sécurité et la mobilité, elles ont été souvent exclues de ces négociations, et

donc gérées d’une manière indépendante. Cependant, la sécurisation d’un service peut causer la

dégradation de la QoS, et la mobilité de l’utilisateur peut modifier ses besoins. D’où, l’intérêt de

gérer simultanément la QoS et la sécurité tout en prenant en considération la mobilité des

utilisateurs. Dans ce contexte, nous nous basons sur un protocole permettant la signalisation de la

QoS, appelé SLNP, afin de proposer un mécanisme qui permet à des clients fixes et mobiles de

négocier, d’une manière dynamique, automatique et sécurisée, un niveau de service couvrant à la

fois la QoS et la sécurité. Notre contribution est composée de trois parties. Dans un premier temps,

nous étendons le niveau de service négocié avec SLNP à la sécurité afin de permettre la négociation

conjointe de la sécurité et de la QoS tout en tenant compte de l’impact de la sécurité sur la QoS. Par

la suite, cette négociation, qui utilise les services web, est automatisée en la basant sur un profil

utilisateur qui permet d’adapter le niveau de service au contexte de l’utilisateur. Ainsi, l’offre de

service est plus dynamique et peut s’adapter aux changements de réseau d’accès suite à la mobilité

de l’utilisateur. Enfin, nous proposons de sécuriser le flux de négociation afin de pallier aux

différents types d’attaques qui peuvent viser les messages de négociation échangés.

Mot clés: Les réseaux de nouvelle génération, la négociation de niveau de service, la qualité de

service, la sécurité, la mobilité, les services web.

vii

Table des matières

Abstract ......................................................................................................................................... iv

Résumé ........................................................................................................................................... v

Table des matières ....................................................................................................................... vii

Liste des figures .......................................................................................................................... xiii

Liste des tableaux ....................................................................................................................... xvi

Remerciements .........................................................................................................................xviii

Liste des Publications ................................................................................................................ xix

Chapitre 1 Introduction ......................................................................................................... 1

1.1 Contexte et motivations ........................................................................................................... 1

1.2 Contributions ............................................................................................................................. 2

1.3 Organisation de la thèse ........................................................................................................... 3

Chapitre 2 Les principaux besoins des réseaux NGN ....................................................... 6

2.1 Introduction ............................................................................................................................... 6

2.2 Evolution des réseaux .............................................................................................................. 6

2.2.1 Des réseaux dédiés ............................................................................................................... 6

2.2.2 L’Internet ............................................................................................................................... 7

2.2.3 La convergence des réseaux ................................................................................................ 7

2.2.4 Résumé ................................................................................................................................... 8

2.3 Les réseaux de nouvelle génération ........................................................................................ 8

2.3.1 Définition et principes fondamentaux .............................................................................. 8

2.3.2 Architectures des réseaux NGN ........................................................................................ 8

2.3.3 Caractéristiques des réseaux NGN .................................................................................. 10

2.3.3.1 Des terminaux de plus en plus sophistiqués ........................................................... 10

2.3.3.2 Des réseaux d’accès supportant des débits de plus en plus élevés ...................... 10

2.3.3.3 Des services de types variés ....................................................................................... 11

2.3.4 Résumé ................................................................................................................................. 11

2.4 La qualité de service (QoS : Quality of Service) ................................................................. 11

2.4.1 Définition et mécanismes élémentaires de la QoS ........................................................ 12

2.4.2 La QoS dans les réseaux IP .............................................................................................. 13

2.4.2.1 Le service garanti (IntServ : Integrated Services) ................................................... 13

2.4.2.2 La différenciation de services (DiffServ : Differentiated Services) ...................... 15

2.4.2.3 MPLS (MultiProtocol Label Switching) ................................................................... 18

2.4.3 La QoS dans les réseaux d’accès ...................................................................................... 20

2.4.3.1 Mécanismes de QoS dans les réseaux Wi-Fi ........................................................... 20

viii

2.4.3.2 Mécanismes de QoS dans les réseaux WiMax......................................................... 21

2.4.3.3 Mécanismes de QoS dans les réseaux Satellite ........................................................ 21

2.4.4 La QoS dans les réseaux NGN ........................................................................................ 22

2.4.5 Résumé ................................................................................................................................. 24

2.5 La sécurité ................................................................................................................................ 24

2.5.1 Attaques, services et opérations cryptographiques ....................................................... 25

2.5.1.1 Attaques de sécurité..................................................................................................... 25

2.5.1.2 Services de sécurité ...................................................................................................... 26

2.5.1.3 Notions de cryptographie ........................................................................................... 27

2.5.2 La sécurité dans les réseaux IP ......................................................................................... 30

2.5.2.1 Le protocole IPSec ...................................................................................................... 30

2.5.2.2 Le protocole TLS ......................................................................................................... 33

2.5.2.3 Le protocole DTLS ..................................................................................................... 37

2.5.3 La sécurité dans les réseaux d’accès ................................................................................. 38

2.5.3.1 La sécurité dans les réseaux mobiles ......................................................................... 38

2.5.3.2 La sécurité dans les réseaux Wi-Fi ............................................................................ 39

2.5.4 La sécurité dans les réseaux NGN ................................................................................... 42

2.5.5 Résumé ................................................................................................................................. 42

2.6 La mobilité ............................................................................................................................... 43

2.6.1 Mobilité au niveau « Réseau » ........................................................................................... 43

2.6.1.1 Fonctionnement de MIP ............................................................................................ 44

2.6.1.2 Le protocole MIPv6 .................................................................................................... 45

2.6.2 Mobilité au niveau « Transport » ...................................................................................... 45

2.6.2.1 Le protocole I-TCP (Indirect TCP) .......................................................................... 46

2.6.2.2 Le protocole M-TCP (Mobile TCP) ......................................................................... 46

2.6.2.3 Le protocole M-UDP (Mobile UDP) ....................................................................... 46

2.6.3 Mobilité au niveau « Application » ................................................................................... 46

2.6.4 Mobilité au niveau « Liaison de données » ..................................................................... 47

2.6.4.1 Architecture du MIH .................................................................................................. 47

2.6.4.2 Les services MIH ......................................................................................................... 48

2.6.5 Résumé ................................................................................................................................. 49

2.7 Conclusion ............................................................................................................................... 50

Chapitre 3 La garantie de l’offre de service dans les réseaux NGN .............................. 51

3.1 Introduction ............................................................................................................................. 51

3.2 Niveau de service .................................................................................................................... 52

3.2.1 Définition ............................................................................................................................. 52

3.2.2 Les paramètres du niveau de service ............................................................................... 53

3.2.3 Résumé ................................................................................................................................. 55

3.3 Négociation de niveau de service ......................................................................................... 55

3.3.1 Projets de recherche traitant de la négociation .............................................................. 55

3.3.1.1 Le projet TEQUILA ................................................................................................... 55

3.3.1.2 Le projet AQUILA ...................................................................................................... 55

ix

3.3.1.3 Le projet EURESCOM .............................................................................................. 56

3.3.1.4 Le projet MESCAL ..................................................................................................... 56

3.3.1.5 Le projets CADENUS ................................................................................................ 57

3.3.2 Protocoles de négociation ................................................................................................. 58

3.3.2.1 Le protocole RNAP .................................................................................................... 58

3.3.2.2 Le protocole COPS-SLS ............................................................................................. 58

3.3.2.3 Le protocole PPP IPCP .............................................................................................. 59

3.3.2.4 Le protocole SrNP....................................................................................................... 59

3.3.2.5 Le protocole DSNP..................................................................................................... 60

3.3.2.6 Le protocole QoS-NSLP ............................................................................................ 62

3.3.2.7 Le protocole QoS-GSLP ............................................................................................ 62

3.3.2.8 Le protocole QoS-SIP ................................................................................................ 62

3.3.3 Discussion ........................................................................................................................... 63

3.4 Le protocole SLNP ................................................................................................................. 64

3.4.1 Les services web ................................................................................................................. 65

3.4.1.1 Architecture des services web .................................................................................... 65

3.4.1.2 Les standards des services web .................................................................................. 66

3.4.1.3 Les plateformes de développement des services web ............................................ 68

3.4.2 Principales caractéristiques du protocole SLNP............................................................ 69

3.4.2.1 Satisfaction des besoins de négociation ................................................................... 69

3.4.2.2 Utilisation des services web........................................................................................ 69

3.4.2.3 Une signalisation hors-bande ..................................................................................... 69

3.4.2.4 Indépendance vis-à-vis des modèles de QoS .......................................................... 70

3.4.2.5 Transparence et extensibilité du SLS ........................................................................ 70

3.4.3 Paramètres de QoS négociés avec SLNP ....................................................................... 70

3.4.3.1 Les paramètres obligatoires ........................................................................................ 71

3.4.3.2 Les paramètres optionnels .......................................................................................... 73

3.4.4 Messages de négociation SLNP ....................................................................................... 75

3.4.4.1 Le message Negotiate.................................................................................................. 75

3.4.4.2 Le message Revision ................................................................................................... 76

3.4.4.3 Le message Modify ...................................................................................................... 76

3.4.4.4 Le message Notify ....................................................................................................... 76

3.4.4.5 Le message Release ...................................................................................................... 77

3.4.4.6 Le message Response .................................................................................................. 77

3.4.5 Architecture du protocole SLNP ..................................................................................... 78

3.4.5.1 Terminologie ................................................................................................................ 78

3.4.5.2 Modèle de fonctionnement ........................................................................................ 78

3.4.5.3 Composition d’une entité SLNP ............................................................................... 79

3.4.5.4 Scénario de négociation de QoS avec SLNP........................................................... 81

3.4.6 Résumé ................................................................................................................................. 83

3.5 Conclusion ............................................................................................................................... 84

Chapitre 4 Négociation conjointe de la sécurité et de la QoS via SLNP ...................... 85

x

4.1 Introduction ............................................................................................................................. 85

4.2 Motivations .............................................................................................................................. 86

4.3 Travaux associant la QoS et la sécurité ............................................................................... 88

4.3.1 Négociation de sécurité IPSec tenant compte de la QoS ............................................ 89

4.3.1.1 Négociation de sécurité avec IPSec .......................................................................... 89

4.3.1.2 Intégration de la QoS dans la négociation IPSec.................................................... 90

4.3.2 Association de la sécurité à la QoS dans la gestion par politique ............................... 91

4.3.3 Résumé ................................................................................................................................. 92

4.4 Intégration de la sécurité dans la négociation SLNP ......................................................... 93

4.4.1 Définition des paramètres de sécurité négociés via SLNP .......................................... 93

4.4.1.1 Portée de la sécurité ..................................................................................................... 93

4.4.1.2 Protocole de sécurité ................................................................................................... 94

4.4.1.3 Paramètres de sécurité IPSec ..................................................................................... 94

4.4.1.4 Paramètres de sécurité TLS-DTLS ........................................................................... 97

4.4.2 Définition d’un SLS de QoS et de sécurité .................................................................... 98

4.4.3 Scénarios d’utilisation de SLNP pour offrir la QoS et la sécurité ............................ 100

4.4.3.1 Exemple d’une négociation intra-domaine ............................................................ 100

4.4.3.2 Exemples de négociations inter-domaines ............................................................ 102

4.4.4 Nouveau fonctionnement du protocole SLNP ........................................................... 107

4.4.4.1 Modification de l’application cliente de négociation ............................................ 107

4.4.4.2 Modification du service web de négociation ......................................................... 110

4.4.5 Tests et évaluations des performances .......................................................................... 114

4.4.5.1 Plateforme de tests .................................................................................................... 114

4.4.5.2 Tests du fonctionnement.......................................................................................... 114

4.4.5.3 Evaluation du temps de négociation ...................................................................... 115

4.4.5.4 Evaluation de la taille des messages ........................................................................ 118

4.4.6 Résumé ............................................................................................................................... 118

4.5 Etude de l’impact de la sécurité sur la QoS ...................................................................... 119

4.5.1 Travaux portant sur l’impact de la sécurité sur la QoS .............................................. 120

4.5.1.1 Impact du protocole IPSec sur la QoS................................................................... 120

4.5.1.2 Surcoût des services de sécurité .............................................................................. 121

4.5.1.3 Impact des traitements de sécurité .......................................................................... 122

4.5.2 Tests réalisés ...................................................................................................................... 124

4.5.2.1 Plateforme de tests .................................................................................................... 124

4.5.2.2 Résultats des tests ...................................................................................................... 125

4.5.3 Résumé ............................................................................................................................... 128

4.6 Conclusion ............................................................................................................................. 128

Chapitre 5 Adaptation du protocole SLNP aux réseaux NGN .................................. 130

5.1 Introduction ........................................................................................................................... 130

5.2 Gestion de la QoS et de la sécurité dans une architecture pour les services IPTV .... 131

5.2.1 Architecture pour la fourniture des services IPTV ..................................................... 131

5.2.1.1 Les services IPTV ...................................................................................................... 131

xi

5.2.1.2 L’architecture IPTV................................................................................................... 132

5.2.2 Offre de la QoS et de la sécurité .................................................................................... 134

5.2.2.1 Négociation du niveau de service dans le cœur du réseau .................................. 135

5.2.2.2 Consommation du service dans le réseau d’accès ................................................ 138

5.2.3 Résumé ............................................................................................................................... 142

5.3 Négociation de niveau de service dans les environnements NGN............................... 142

5.3.1 Contexte et motivations .................................................................................................. 142

5.3.2 Profil utilisateur................................................................................................................. 144

5.3.2.1 Profil « CC/PP » pour l’adaptation des flux .......................................................... 144

5.3.2.2 Profil « UED » pour l’adaptation des flux ............................................................. 145

5.3.2.3 Profil pour la négociation de QoS .......................................................................... 145

5.3.3 Définition d’un profil utilisateur pour la négociation SLNP ..................................... 146

5.3.3.1 Préférences de l’utilisateur ........................................................................................ 146

5.3.3.2 Caractéristiques de l’application .............................................................................. 148

5.3.3.3 Caractéristiques du terminal ..................................................................................... 148

5.3.3.4 Caractéristiques des réseaux d’accès ....................................................................... 149

5.3.4 Négociation SLNP basée sur le profil utilisateur ........................................................ 149

5.3.4.1 Couche de négociation .............................................................................................. 150

5.3.4.2 Le point de décision et de mise en correspondance (MNDP) ........................... 151

5.3.4.3 L’entité de négociation (SE) ..................................................................................... 152

5.3.4.4 Le générateur de SLS (SG) ....................................................................................... 153

5.3.5 Fonctionnement de la négociation fondée sur le profil ............................................. 154

5.3.5.1 Les responsables de domaines ................................................................................. 154

5.3.5.2 Le client initial ............................................................................................................ 155

5.3.6 Tests et évaluations de performances ........................................................................... 159

5.3.6.1 Plateforme de tests .................................................................................................... 159

5.3.6.2 Tests du fonctionnement.......................................................................................... 162

5.3.6.3 Evaluation du temps de négociation ...................................................................... 162

5.3.6.4 Evaluation de la taille des messages ........................................................................ 164

5.3.7 Utilisation du protocole SLNP dans un environnement NGN ................................ 164

5.3.8 Résumé ............................................................................................................................... 167

5.4 Conclusion ............................................................................................................................. 167

Chapitre 6 Sécurité de la négociation assurée par le protocole SLNP ....................... 169

6.1 Introduction ........................................................................................................................... 169

6.2 Motivations ............................................................................................................................ 170

6.3 Mécanismes de sécurisation du protocole SLNP ............................................................ 171

6.4 Sécurité du protocole SLNP au niveau « Application » (WSS) ...................................... 173

6.4.1 Implémentation de la spécification WSS ...................................................................... 173

6.4.1.1 Principe de fonctionnement de WSS4J .................................................................. 174

6.4.1.2 Configuration de la sécurité WSS au niveau des entités SLNP .......................... 175

6.4.2 Tests et résultats ............................................................................................................... 178

6.4.2.1 Plateforme de tests .................................................................................................... 178

xii

6.4.2.2 Tests de fonctionnement .......................................................................................... 178

6.4.2.3 Tests d’évaluation des performances en fonction du niveau de sécurité .......... 179

6.4.2.4 Tests d’évaluation des performances en fonction de l’algorithme utilisé ......... 183

6.4.3 Résumé ............................................................................................................................... 183

6.5 Sécurité du protocole SLNP aux niveaux « Transport » (SSL) et « Réseau » (IPSec) 184

6.5.1 Implémentation du protocole SSL/TLS ...................................................................... 184

6.5.2 Implémentation du protocole IPSec ............................................................................. 185

6.5.3 Tests et résultats ............................................................................................................... 186

6.5.3.1 Plateforme de tests .................................................................................................... 186

6.5.3.2 Tests de fonctionnements ........................................................................................ 187

6.5.3.3 Tests d’évaluation des performances en fonction du type de sécurité .............. 188

6.5.4 Fonctionnement de la négociation sécurisée ............................................................... 191

6.6 Conclusion ............................................................................................................................. 193

Chapitre 7 Conclusion et Perspectives ............................................................................ 194

7.1 Principales contributions ..................................................................................................... 194

7.2 Perspectives et nouveaux défis ........................................................................................... 196

Références ................................................................................................................................. 198

Annexes ..................................................................................................................................... 206

Annexe 1 : Outils utilisés dans la mesure de l’impact de la sécurité sur la QoS ....................... 206

Annexe 2 : Les standards de sécurisation des services web au niveau applicatif ...................... 207

Annexe 3 : Exemple d’un message SLNP sécurisé avec WSS ..................................................... 222

Liste des abréviations .............................................................................................................. 226

xiii

Liste des figures

Figure 2-1 : Architecture générique des réseaux NGN ............................................................................... 9

Figure 2-2 : Plan de contrôle d’un routeur IntServ .................................................................................... 14

Figure 2-3 : Architecture DiffServ ................................................................................................................ 16

Figure 2-4 : Le conditionnement du trafic DiffServ .................................................................................. 17

Figure 2-5 : Fonctionnement MPLS ............................................................................................................. 19

Figure 2-6 : Architecture de QoS dans les réseaux NGN ......................................................................... 23

Figure 2-7 : Fonctionnement du protocole IPSec ...................................................................................... 32

Figure 2-8 : Couches protocolaires de TLS ................................................................................................. 33

Figure 2-9 : Flux de messages échangés lors d’une poignée de main TLS ............................................. 36

Figure 2-10 : Principe du protocole MIP ..................................................................................................... 44

Figure 2-11 : Architecture du standard IEEE 802.21 [IEE 08] ............................................................... 48

Figure 3-1 : Négociation de SLS avec COPS-SLS [NGU 04] .................................................................. 59

Figure 3-2 : Exemple de négociation avec SrNP [TEQ 03] ..................................................................... 60

Figure 3-3 : Exemple de négociation avec DSNP ...................................................................................... 61

Figure 3-4 : Architecture QoS-SIP ............................................................................................................... 63

Figure 3-5 : Architecture des services web .................................................................................................. 65

Figure 3-6 : Pile protocolaire des services web [BOO 04] ........................................................................ 66

Figure 3-7 : Structure d’un message SOAP ................................................................................................. 67

Figure 3-8 : Structure d’un document WSDL [CHR 01] .......................................................................... 67

Figure 3-9 : Une négociation de type hors-bande ...................................................................................... 70

Figure 3-10 : Structure du SLS de QoS ........................................................................................................ 71

Figure 3-11 : Structure de l’élément ‘flowId’ ............................................................................................... 72

Figure 3-12 : Structure de l’élément ‘scope’ ................................................................................................ 72

Figure 3-13 : Structure de l’élément ‘serviceSchedule’............................................................................... 72

Figure 3-14 : Structure de l’élément ‘performanceGuarantee’ ................................................................. 73

Figure 3-15 : Structure de l'élément ‘trafficConformity’ ........................................................................... 74

Figure 3-16 : Structure de l’élément ‘negotiationParameters’ ................................................................... 74

Figure 3-17 : Structure de l’élément ‘reliability’ .......................................................................................... 75

Figure 3-18 : Structure des messages Negotiate, Revision, Release, Modify, Notify............................ 76

Figure 3-19 : Structure du message Response............................................................................................. 77

Figure 3-20 : Fonctionnement général au niveau d’une SE ...................................................................... 79

Figure 3-21 : Schéma de la description WSDL du service web de négociation .................................... 80

Figure 3-22 : Représentation simplifiée d’un message SLNP ................................................................... 82

Figure 3-23 : Exemple de négociation avec SLNP .................................................................................... 83

Figure 4-1 : Exemple de négociations indépendantes de QoS et de sécurité ........................................ 87

Figure 4-2 : Exemple de négociation de paramètres de sécurité avec IPSec ......................................... 89

Figure 4-3 : Exemple d’une négociation de sécurité IPSec en associant la QoS ................................... 90

Figure 4-4 : Structure de l’élément ‘securityScope’ .................................................................................... 93

xiv

Figure 4-5 : Structure de l’élément ‘securityProtocol’ ................................................................................ 94

Figure 4-6 : Structure de l’élément ‘ipsec’ .................................................................................................... 94

Figure 4-7 : Structure de l’élément ‘saLifetime’ .......................................................................................... 95

Figure 4-8 : Structure de l’élément ‘noReplay’ ............................................................................................ 97

Figure 4-9 : Structure de l’élément ‘tls-dtls’ ................................................................................................. 97

Figure 4-10 : Structure d’un SLS de QoS et de sécurité ............................................................................ 98

Figure 4-11 : Structure supposée de l’élément ‘saLifetime’ ...................................................................... 99

Figure 4-12 : Structure réelle de l’élément ‘securityProtocol’ ................................................................... 99

Figure 4-13 : Scénario 1 - négociation intra-domaine ..............................................................................101

Figure 4-14 : SLS négocié dans le scénario 1 ............................................................................................101

Figure 4-15 : MSC du scénario 1 .................................................................................................................102

Figure 4-16 : Scénarios 2 et 3 - négociations inter-domaines .................................................................102

Figure 4-17 : SLS négocié dans le scénario 2 ............................................................................................103

Figure 4-18 : MSC du scénario 2 .................................................................................................................104

Figure 4-19 : SLS négocié dans le scénario 3 ............................................................................................105

Figure 4-20 : MSC du scénario 3 .................................................................................................................106

Figure 4-21 : Algorithme de l’établissement d’un SLS (QoS) .................................................................108

Figure 4-22 : Traitements nécessaires à la création du message Negotiate ..........................................109

Figure 4-23 : Algorithme de l’établissement d’un SLS (QoS + Sécurité) .............................................110

Figure 4-24 : Algorithme de l’opération de négociation ..........................................................................111

Figure 4-25 : Traitements nécessaires à la modification du SLS ............................................................112

Figure 4-26 : Plateforme de tests du fonctionnement du protocole SLNP .........................................114

Figure 4-27 : Un message Negotiate visualisé à l’aide de SOAP Monitor ..........................................115

Figure 4-28 : Temps de négociation en fonction du type de négociation (100 essais) .......................117

Figure 4-29 : Taille moyenne du message Negotiate ...............................................................................118

Figure 4-30 : Comparaison du délai de bout en bout entre IPv4 et IPSec [VAN 05] ........................120

Figure 4-31 : Plateforme de tests de l'impact de la sécurité sur la QoS ................................................124

Figure 4-32 : Impact de la sécurité sur la QoS pour un trafic UDP ......................................................127

Figure 4-33 : Impact de la sécurité sur la QoS pour un trafic TCP .......................................................128

Figure 5-1 : Architecture IPTV [DJA 08] ..................................................................................................132

Figure 5-2 : Gestion de l’offre de service IPTV .......................................................................................134

Figure 5-3 : Structure de l’élément ‘securityProtocol’ adaptée au cas de l’IPTV.................................136

Figure 5-4 : La négociation SLNP au sein d’un groupe multicast IPTV ..............................................137

Figure 5-5 : Composition des caractéristiques de l’utilisateur ................................................................139

Figure 5-6 : Composition des caractéristiques du réseau ........................................................................139

Figure 5-7 : Composition des capacités du terminal ................................................................................140

Figure 5-8 : Messages RTSP échangés entre l’AG et le Client ...............................................................141

Figure 5-9 : Négociation SLNP dans les réseaux NGN ..........................................................................143

Figure 5-10 : Composition du profil utilisateur pour la négociation .....................................................146

Figure 5-11 : Vue d’ensemble de la couche de négociation ....................................................................151

Figure 5-12 : Interactions de la composante MNDP ..............................................................................152

Figure 5-13 : Interactions de la composante SE .......................................................................................153

Figure 5-14 : Interactions de la composante SG ......................................................................................153

xv

Figure 5-15 : Fonctionnement de la négociation dans le NGN .............................................................154

Figure 5-16 : Traitements au niveau du client initial ................................................................................155

Figure 5-17 : Algorithme des traitements de la composante MNDP ...................................................159

Figure 5-18 : Plateforme de tests du fonctionnement dans le NGN ....................................................160

Figure 5-19 : Interface graphique pour récupérer les préférences de l’utilisateur ...............................161

Figure 5-20 : Préférences d’un utilisateur privilégiant la sécurité ...........................................................161

Figure 5-21 : Evaluation du temps de négociation (100 essais) .............................................................163

Figure 5-22 : Taille moyenne du message Negotiate ...............................................................................164

Figure 5-23 : Exemple de négociation dans un environnement NGN .................................................166

Figure 6-1 : Les standards de sécurisation des services web ..................................................................172

Figure 6-2 : Exemple d’un fichier de déploiement WSDD ....................................................................174

Figure 6-3 : Exemple de descripteur de déploiement d’une partie cliente ...........................................176

Figure 6-4 : Exemple de fichier de propriétés (crypto-encrypt.properties) ..........................................176

Figure 6-5 : Exemple de descripteur de déploiement d’une partie serveur ..........................................177

Figure 6-6 : Modèle de communication pour les tests de fonctionnement .........................................179

Figure 6-7 : Evaluation du temps de négociation (100 essais) ...............................................................181

Figure 6-8 : Evaluation de la taille des messages ......................................................................................182

Figure 6-9 : Fichier de configuration du serveur Tomcat (server.xml) .................................................185

Figure 6-10 : Extrait du fichier de configuration IPSec (racoon.conf) .................................................186

Figure 6-11 : Plateforme de tests ................................................................................................................187

Figure 6-12 : Visualisation des échanges sécurisés avec IPSec (TCPdump) ........................................188

Figure 6-13 : Exemple d’association de sécurité IPSec ...........................................................................188

Figure 6-14 : Temps de négociation en fonction du type de sécurité ...................................................189

Figure 6-15 : Taille des messages en fonction du type de sécurité ........................................................190

Figure 6-16 : Nouvelle structure de la couche de négociation ...............................................................192

Figure A-1 : Structure d’une signature XML ............................................................................................208

Figure A-2 : Exemple de signature XML ..................................................................................................210

Figure A-3 : Structure d’un chiffrement XML ..........................................................................................211

Figure A-4 : Exemeple de chiffrement d’une partie d’un document XML..........................................212

Figure A-5 : Exemple de chiffrement d’une clé de chiffrement XML .................................................213

Figure A-6 : Emplacement de l’entête WSS dans un message SOAP ...................................................213

Figure A-7 : Exemple de signature d’un message SOAP avec WSS .....................................................215

Figure A-8 : Exemple de chiffrement d’un message SOAP avec WSS ................................................217

xvi

Liste des tableaux

Tableau 3-1 : Modèle graphique du schéma XML ..................................................................................... 71

Tableau 3-2 : Calcul des valeurs offertes des différents attributs de QoS .............................................. 82

Tableau 4-1 : Valeurs possibles des éléments de sécurité ......................................................................... 95

Tableau 4-2 : Probabilité de succès et nombre moyen de passes de négociation ...............................116

Tableau 4-3 : Temps moyen de négociation en fonction du type de négociation ..............................117

Tableau 4-4 : Qualification de la consommation des ressources ...........................................................121

Tableau 4-5 : Impact d’IPSec sur la bande passante (trafic UDP) [DUF 07] ......................................122

Tableau 4-6 : Performances en termes de traitements cryptographiques [KON 03] .........................123

Tableau 4-7 : Politiques de sécurité ............................................................................................................126

Tableau 5-1 : Protocoles et algorithmes de sécurité utilisés pour un flux IPTV .................................136

Tableau 5-2 : Paramètres du profil utilisateur pour la négociation ........................................................147

Tableau 5-3 : Paramètres de QoS pour une application de type VoIP .................................................157

Tableau 5-4 : Paramètres de QoS pour une application de type VoD ..................................................157

Tableau 5-5 : Tableau de mapping pour les services d’intégrité et de confidentialité ........................158

Tableau 5-6 : Temps moyen de négociation .............................................................................................163

Tableau 5-7 : Paramètres du profil utilisateur à la position 1 .................................................................165

Tableau 5-8 : Paramètres du SLS correspondant au profil .....................................................................165

Tableau 6-1 : Les différents scénarios de sécurité WSS ..........................................................................179

Tableau 6-2 : Impact de la sécurité WSS sur les performances du protocole SLNP ..........................181

Tableau 6-3 : Impact sur les performances suivant l’algorithme de chiffrement ................................183

Tableau 6-4 : Impact des différents types de sécurité sur les performances de SLNP ......................189

Tableau A-1 : Quelques types d’erreur définis par WSS .........................................................................218

xvii

À mes grands parents, Hamadi, que dieu te prête longue vie,

Khmaies, Habiba et Zohra, que dieu vous accepte dans son

paradis éternel.

À mes chers parents, Lanouar et Chédia, sans vous, rien

n’aurait pu être possible, que dieu vous protège et vous prête une

longue vie pleine de santé et de prospérité.

À mon frère unique, Ilyes, que dieu nous garde unis pour que

nos parents soient toujours fiers de nous.

À ma chère fiancée, Rahma, merci de m’avoir soutenu tout au

long de cette aventure, que dieu te protège.

À tous les membres de ma famille et à tous mes amis.

xviii

Remerciements

Je voudrais tout d’abord exprimer ma profonde gratitude envers ma directrice de thèse, le

professeur Francine Krief, qui m’a proposé cette thèse et m’a accompagné tout au long de ces trois

années. Son aide, ses encouragements, sa disponibilité et son soutien sans faille ont été

déterminants pour la réalisation de cette thèse.

J’adresse également mes plus sincères remerciements aux professeurs José Neuman De Souza,

Guy Pujolle, Toufik Ahmed, Christophe Dousson et Anne Wei qui m’ont fait l’honneur d’évaluer

les travaux de cette thèse et de participer au jury de soutenance.

Je tiens à remercier aussi tous les membres de l’équipe COMET et tous le personnel

administratif du LaBRI.

Cette liste n’étant pas exhaustive, je remercie tous ceux qui, de près ou de loin, ont contribué à

la réalisation de ce travail, par leur aide, leur encouragement ou par leur simple présence.

xix

Liste des Publications

Journaux et chapitres de livre

• Mohamed Aymen Chalouf, « Communications Security in embedded systems », in the book « Communicating Embedded Systems for Networks », Edited by: Francine Krief, Wiley-ISTE, April 2010.

• Mohamed Aymen Chalouf, I. Djama, T. Ahmed, F. Krief, “An IPTV Architecture with End-to-

End Garantees on QoS and Security”, to appear in the International Journal of Autonomous and Adaptive Communications Systems (IJAACS).

• Mohamed Aymen Chalouf and Francine Krief, “A Secured Service Level Negotiation In Ubiquitous

Environments”, in the International Journal of Communication Networks and Information Security, IJCNIS, Vol. 1, No. 2, August 2009.

• Mohamed Aymen Chalouf, « La sécurité des communications dans les systèmes embarqués », Dans le livre « Les systèmes embarqués communicants : mobilité, sécurité, autonomie », Auteur : Francine Krief, Traité IC2, série réseaux et télécoms, Hermès, Septembre 2008.

Conférences internationales avec actes et comité de lecture

• Mohamed Aymen Chalouf, F. Krief, “Service Level Negotiation in Ubiquitous Environments”, The 14th IEEE Symposium on Computers and Communications, Proc. ISCC 2009, Sousse, Tunisia, July 2009.

• Mohamed Aymen Chalouf, F. Krief, “La négociation de niveau de service dans un environnement

ubiquitaire”, 9ème Conférence Internationale sur les NOuvelles TEchnologies de la REpartition, Actes NOTERE 2009, Montréal, Canada, Juin-Juillet 2009.

• Mohamed Aymen Chalouf, F. Krief, “SSLNP: Secure Service Level Negotiation Protocol”, The 2nd

IEEE Global Information Infrastructure Symposium, Proc. GIIS 2007, Hammamet, Tunisia, June 2009.

• Mohamed Aymen Chalouf, I. Djama, T. Ahmed, F. Krief, “On Tightly Managing End-to-End

QoS and Security for IPTV Service Delivery”, The 5th ACM International Wireless Communications and Mobile Computing Conference, Proc. IWCMC 2009, Leipzig, Germany, June 2009.

• Mohamed Aymen Chalouf, X. Delord, F. Krief, “Introduction of Security in the Service Level

Negotiated with SLNP Protocol”, The 2nd IFIP International Conference on New Technologies, Mobility and Security, Proc. NTMS 2008, Tangier, Morocco, November 2008.

• Mohamed Aymen Chalouf, N. Mbarek, X. Delord, F. Krief, “Peer-to-Peer Service Level

Negotiation: towards QoS and Security Guarantee”, The International Conference on TElecommunications and MUltimedia, Workshop: Adaptive Multimedia and IPTV Streaming over peer-to-peer NETworks (AMIS-NET 2008), Proc. TEMU 2008, Ierapetra, Crete, Greece, July 2008.

xx

• N. Mbarek, F. Krief, Mohamed Aymen Chalouf, “Enabling Service Level Negotiation in a Self Management Framework”, The IEEE International Conference on Signal Processing and Communication, Proc. ICSPC 2007, Dubai UAE, November 2007.

• N. Mbarek, F. Krief, Mohamed Aymen Chalouf, “A Negotiation Protocol Using Web Services in a

Self-Management Framework”, The IEEE Global Information Infrastructure Symposium, Proc. GIIS 2007, Marrakech Morocco, July 2007.

Conférences nationales avec actes et comité de lecture

• Mohamed Aymen Chalouf, X. Delord, F. Krief, “Définition d’un SLS de Sécucrité et de QoS pour la Négociation de Niveau de Service”, 8ème Colloque Francophone de Gestion de REseaux et de Services, Actes GRES 2007, Page(s) : 121 – 128, Hammamet, Tunisie, Novembre 2007.

• Mohamed Aymen Chalouf, N. Mbarek, F. Krief, “Utilisation des Services Web dans la Négociation

de Niveau de Service”, 8èmes Journées Doctorales en Informatique et Réseau, Actes JDIR 2007, Page(s): 131 - 137, Janvier 2007, Marne-la-Vallée, France. Note : Conférence sponsorisée par IEEE France.

1

Chapitre 1

Introduction

1.1 Contexte et motivations

Actuellement, les architectures de communication sont basées principalement sur le modèle TCP/IP.

Ce modèle est caractérisé par sa structure modulaire mettant en œuvre plusieurs couches distinctes t

Jusqu’à il y a quelques années, les différents moyens de télécommunications, à savoir le réseau de

données Internet, le réseau téléphonique et le réseau de diffusion TV, étaient caractérisés par ce qu’on

appelle la spécialisation. En effet, chaque réseau permettait l’accès à un service particulier à travers une

infrastructure particulière, ce qui obligeait les utilisateurs à s’abonner aux trois réseaux et à utiliser un

terminal spécifique pour accéder aux services offerts par chacun de ces trois réseaux. Depuis quelques

années, les acteurs des télécommunications ont pris conscience de la nécessité de faire évoluer les

différentes infrastructures de communications vers une seule infrastructure permettant de réaliser une

convergence totale des différents réseaux et de tous les services offerts par ces réseaux. Cette nouvelle

infrastructure, fondée sur ce qu’on appelle l’architecture des réseaux de nouvelle génération (NGN : Next

Generation Networks), permettra aux fournisseurs de services de réduire les coûts de développement en

réutilisant des composants communs aux services. Elle permettra, également, aux fournisseurs réseaux de

réduire les coûts d’exploitation en offrant plusieurs services avec une seule infrastructure. L’architecture

des réseaux NGN sera basée sur la technologie IP parce que c’est un protocole simple et puissant qui

offre une connectivité de bout en bout indépendamment de la nature des réseaux sous-jacents. De plus,

c’est un protocole qui se caractérise par sa neutralité vis-à-vis des applications puisqu’il ne suppose rien

des services qu’il transporte. Toutefois, la réalisation effective d’une architecture NGN passe par la

résolution des différents problèmes résultant de l’adoption de la technologie IP. En effet, il faut surmonter

l’un des principaux défauts de l’IP, à savoir son incapacité à offrir une qualité de service (QoS : Quality of

Service) de bout en bout. Il faut, également, pallier aux différentes failles de sécurité en protégeant les

données transmises sur les réseaux NGN ainsi que les systèmes communicants. De plus, il faut résoudre

les problèmes qui se rapportent à la mobilité des utilisateurs en permettant de réaliser le handover

(horizontal entre plusieurs domaines et vertical entre plusieurs technologies) tout en préservant la

continuité de service.

Dans un environnement NGN, les fournisseurs de services doivent fournir à leurs clients des

garanties en matière de QoS et de sécurité tout en assurant la mobilité de ces clients. Cependant, les

besoins d’un client sont de plus en plus dynamiques, et peuvent varier en fonction de plusieurs paramètres

2

liés à son environnement de connexion. Ainsi, l’offre de service de bout en bout est caractérisée par une

grande « dynamicité », et peut donc nécessiter une reconfiguration rapide et fréquente, ce qui demande une

gestion dynamique pouvant être fondée sur un protocole de signalisation. Dans ce contexte, la notion de

niveau de service a été introduite afin de permettre de réaliser un engagement entre un client et son

fournisseur de services ou entre deux fournisseurs de services. Pour permettre la négociation de ce niveau

de service, plusieurs protocoles de signalisation ont été spécifiés. Toutefois, le niveau de service négocié

grâce à ces protocoles ne couvre que l’aspect QoS de l’offre de service. Ceci est dû aux besoins imminents

en matière de QoS qui ne cessent d’augmenter avec le développement des nouveaux services tels que les

services multimédia et les services temps réel. La sécurité des services offerts par les réseaux NGN a été

identifiée, dés l’apparition de ces réseaux, comme l’un des besoins les plus importants, mais elle a été

négligée dans l’offre de service. Aujourd’hui, avec tous les risques et les attaques qui peuvent menacer le

transport des services sur les réseaux NGN, la sécurité doit être prise en considération dans l’offre de

service de bout en bout. Par ailleurs, l’architecture des réseaux NGN est caractérisée par la multitude et la

diversité des réseaux d’accès qui peuvent coexister dans un même lieu, et par des utilisateurs de plus en

plus mobiles pouvant se connecter grâce à différents types de terminaux. Ainsi, dans cet environnement

très dynamique, l’offre de service, qui peut être garantie avec un protocole de négociation, doit s’adapter

au contexte de l’utilisateur (terminal utilisé, réseau d’accès, préférences de l’utilisateur, etc.) en assurant une

négociation automatique et plus dynamique.

Ces différents constats peuvent être résumés dans l’importance de la négociation de niveau de service

dans les réseaux NGN, ainsi que le besoin grandissant de garantir simultanément la qualité de service et la

sécurité pour des utilisateurs de plus en plus mobiles. Partant de ces constats, nos travaux portent sur la

définition d’une architecture qui permet à des clients fixes ou mobiles de négocier, d’une manière

dynamique, automatique, fiable et optimisée, un niveau de service couvrant à la fois leurs besoins en

termes de QoS et de sécurité, tout en assurant la gestion de leur éventuelle mobilité.

1.2 Contributions

Dans le cadre de cette thèse, nous nous sommes intéressés, dans un premier temps, à l’offre de

service garantissant à la fois la QoS et la sécurité. Pour cela, nous avons considéré un protocole de

négociation de niveau de service de bout en bout couvrant la QoS, afin d’introduire des aspects de sécurité

dans le niveau de service qu’il permet de négocier. Notre choix s’est porté sur le protocole SLNP (Service

Level Negotiation Protocol), parce que c’est un protocole qui utilise les services web afin de fournir

l’interopérabilité aux différents acteurs d’une négociation (client, fournisseur de services et fournisseurs

réseaux). L’introduction des paramètres de sécurité dans le niveau de service négocié en utilisant SLNP a

demandé des changements dans le fonctionnement du processus de négociation. Ces changements sont,

essentiellement, dus à la nécessité de prendre en compte l’impact des mécanismes de sécurité sur les

paramètres de la QoS. Ainsi, il nous a fallu réaliser des tests permettant d’estimer cet impact, dans le but

de pouvoir le considérer lors d’une négociation conjointe de la sécurité et de la QoS.

La négociation permise par le protocole SLNP ne facilite pas la participation des clients à la

négociation du niveau de service dont ils ont besoin. En effet, un client doit avoir une certaine expertise

pour pouvoir négocier le niveau de service par lui-même. De plus, les changements fréquents des besoins

des clients ainsi que leur mobilité, nécessitent des interventions de plus en plus fréquentes de ces clients.

3

Ce qui représente un handicap, non seulement, à la participation des clients à la négociation, mais aussi à

l’adaptation rapide de l’offre de service aux changements des besoins et à la mobilité de ces clients. Afin

de surmonter tous ces problèmes, nous proposons, dans un second temps, de définir un nouveau

fonctionnement du processus de négociation afin d’adapter le protocole SLNP aux environnements très

dynamiques caractérisant les réseaux NGN. Ainsi, nous proposons de fonder la négociation sur un profil

utilisateur afin de permettre aux clients de négocier le niveau de service nécessaire d’une manière simple,

automatique et optimisée. Nous spécifions, également, comment le protocole SLNP peut coopérer avec le

standard MIH (Media Independant Handover) afin d’assurer la mobilité des utilisateurs et de pouvoir

considérer l’impact de cette mobilité sur le niveau de service.

Par ailleurs, nous avons considéré une architecture d’un service NGN particulier, à savoir

l’architecture IPTV. Cette architecture est divisée en deux segments (réseau de cœur et réseau d’accès) afin

de pouvoir délivrer le flux IPTV aux différents utilisateurs mobiles connectés grâce à un réseau d’accès

sans fil. Afin de garantir la sécurité et la QoS de bout en bout pour les différents clients de cette

architecture, nous proposons de gérer ces deux aspects différemment sur chacun de deux segments

composant l’architecture IPTV. Etant donné que le transport de l’IPTV au niveau du réseau de cœur

s’effectue en mode multicast, nous proposons d’adapter le protocole SLNP afin de pouvoir garantir un

niveau de service pour un groupe multicast. Au niveau du réseau d’accès les flux IPTV sont adaptés aux

terminaux des clients, et donc transmis en unicast. Cette adaptation est fondée sur un outil du standard

MPEG-21, appelé UED (User Environment Description). L’UED, tel qu’il a été défini par la norme

MPEG-21, ne permet de décrire que les paramètres du profil qui sont reliés à la QoS. Ainsi, nous

proposons d’étendre la description UED aux différents paramètres reliés à la sécurité, afin de permettre de

réaliser des adaptations tout en garantissant la QoS et la sécurité.

En utilisant les services web, la négociation du protocole SLNP est fondée sur l’échange de messages

SOAP (Simple Object Access Protocol). Cependant, dans le cadre d’une négociation inter-domaines,

plusieurs acteurs sont impliqués dans une négociation de niveau de service, et les messages SOAP

échangés entre ces acteurs peuvent être attaqués par un tiers malveillant. A titre d’exemple, ces attaques

peuvent viser à désactiver le niveau de sécurité requis par le client afin de pouvoir espionner sa

communication. Elles peuvent, également, viser à modifier ou résilier le niveau de service négocié par un

client, dans le but de libérer des ressources. Pour pallier à ce genre d’attaque, nous proposons, dans un

dernier temps, d’étudier la sécurité du flux de la négociation SLNP. Ce qui permet aux différents acteurs

d’une négociation de niveau de service de se mettre d’accord sur l’offre de ce service d’une manière fiable

et sécurisée.

1.3 Organisation de la thèse

Afin de détailler d’avantage les concepts, les problématiques et les solutions introduits ci-dessus, cette

thèse est organisée comme suit :

• Chapitre 2 « Les principaux besoins des réseaux NGN » : Dans ce premier chapitre, nous

rappelons le contexte de l’évolution des architectures de télécommunications traditionnelles vers les

réseaux de nouvelle génération. Ensuite, nous décrivons les principales caractéristiques de

l’architecture des réseaux NGN, afin d’identifier les principaux besoins de ces réseaux, à savoir la

4

gestion de la QoS, de la sécurité et de la mobilité. Puis, nous présentons un état de l’art sur les

mécanismes définis durant ces dernières années afin d’assurer la QoS, la sécurité et la mobilité. Ceci

nous permet d’identifier les différents défis à relever pour permettre une gestion optimale de ces

différents aspects (QoS, sécurité et mobilité) dans les environnements NGN.

• Chapitre 3 « La garantie de l’offre de service dans les réseaux NGN » : Dans ce chapitre, nous

commençons par rappeler la définition de la notion de niveau de service avant de détailler les

principaux paramètres qui peuvent le caractériser. Ensuite, nous présentons quelques projets qui se

rapportent à la négociation de niveau de service, ainsi qu’un ensemble de protocoles de négociation.

Puis, nous nous intéressons au protocole SLNP qui assure la négociation d’une QoS de bout en bout

en utilisant les services web permettant de fournir une interopérabilité entre les différents acteurs

d’une négociation. Nous décrivons ainsi les paramètres de QoS inclus dans le niveau de service

négocié, avant de détailler l’architecture de ce protocole ainsi que son modèle de fonctionnement.

• Chapitre 4 « Négociation conjointe de la sécurité et de la QoS via SLNP » : Dans ce chapitre,

nous décrivons notre première contribution qui consiste à associer la sécurité à la QoS dans la

négociation assurée par le protocole SLNP. Pour cela, nous commençons par souligner la nécessité de

cette association, avant de présenter quelques travaux qui ont tenté de considérer la QoS lors de la

négociation de la sécurité ou vice versa. Ensuite, nous définissons les paramètres de sécurité pouvant

être négociés avec SLNP qui seront, par la suite, introduit dans le niveau de service négocié. Puis,

nous définissons le nouveau fonctionnement de cette négociation qui permet de tenir compte de

l’impact de la sécurité sur la QoS, lorsque cette sécurité est associée à la QoS dans le niveau de service

négocié. Par la suite, les détails du nouveau fonctionnement du protocole SLNP seront donnés et les

résultats des tests de performances de ce nouveau fonctionnement seront présentés. La prise en

compte de l’impact de la sécurité sur la QoS lors d’une négociation SLNP nécessite que les acteurs de

la négociation disposent d’une estimation de cet impact. Ainsi, une étude est réalisée. Nous présentons

les travaux qui ont permis de souligner l’importance de l’impact de la sécurité sur la QoS, et

d’identifier les facteurs liés à cet impact. Puis, nous détaillons nos propres travaux qui ont permis de

trouver de réelles estimations de cet impact.

• Chapitre 5 « Adaptation du protocole SLNP aux réseaux NGN » : Ce chapitre est divisé en deux

grandes parties. Dans la première partie, nous utilisons le protocole SLNP afin de garantir une offre

de service (QoS et sécurité) pour un service NGN bien particulier, à savoir l’IPTV. Nous

commençons par présenter l’architecture IPTV. Ensuite, nous définissons le modèle de

fonctionnement d’une négociation SLNP au sein d’un groupe multicast, ceci permet de garantir la

QoS et la sécurité pour les flux IPTV au niveau du réseau de cœur. Puis, nous décrivons les différents

paramètres reliés à la sécurité que nous avons introduits dans l’UED, afin de permettre de garantir la

sécurité des flux IPTV adaptés aux différents clients mobiles. Dans la deuxième partie de ce chapitre

nous décrivons notre contribution qui consiste à adapter le protocole SLNP aux environnements

NGN. Nous commençons par rappeler les différents défis à relever. Ensuite, nous introduisons

quelques travaux portant sur les profils utilisateurs qui nous ont aidés dans la définition du profil

utilisateur sur lequel se fondera la négociation SLNP. Le nouveau fonctionnement de la négociation

SLNP est ensuite défini. Nous détaillons le processus qui permet de déterminer le niveau de service

requis par le client à partir des paramètres du profil. Nous décrivons, également, l’utilisation du

5

standard MIH afin d’assurer la mobilité des clients et de pouvoir considérer l’impact de cette mobilité

dans le niveau de service négocié. Puis, nous présentons la nouvelle composition que doivent avoir les

acteurs de négociation, ainsi que le fonctionnement de la négociation adapté à l’ubiquité des

environnements NGN. Nous présentons, par la suite, les nouveaux tests de performances effectués,

avant de donner un exemple de négociation montrant l’utilité de l’utilisation du profil utilisateur et de

la coopération avec le protocole MIH dans la négociation.

• Chapitre 6 « Sécurité de la négociation assurée par le protocole SLNP » : Dans ce chapitre,

nous décrivons notre dernière contribution, à savoir l’étude et la mise en œuvre de la sécurisation de la

négociation assurée par le protocole SLNP. Nous commençons, tout d’abord, par présenter les types

d’attaques spécifiques aux protocoles de signalisation qui ont motivé notre démarche de sécurisation

du protocole SLNP. Puis, nous identifions les protocoles de sécurité qui permettent de faire face aux

attaques de sécurité pouvant viser une négociation SLNP. Après cela, nous décrivons les différentes

étapes qui nous ont permis d’implémenter les protocoles de sécurité que nous avons sélectionnés pour

sécuriser SLNP. Enfin, les différents types de sécurité mis en place sont testés afin de pouvoir évaluer

leurs impacts respectifs sur les performances du processus de négociation et choisir la solution la

mieux adaptée. Enfin, nous décrivons les modifications apportées au protocole SLNP dans le but

d’optimiser de la configuration de la sécurité de ce protocole.

• Chapitre 7 « Conclusion et Perspectives » : Nous présentons dans ce chapitre une conclusion

générale pour les travaux décrits dans ce mémoire et nous proposons quelques perspectives pour de

futurs travaux de recherche s’inscrivant dans la continuité de cette thèse.

6

Chapitre 2

Les principaux besoins des

réseaux NGN

2.1 Introduction

Actuellement, l’ensemble des architectures de communication est en train d’évoluer vers une

infrastructure globale fondée sur IP : les réseaux de nouvelle génération (NGN : Next Generation

Networks). Le modèle IP est caractérisé par une structure modulaire composée de plusieurs couches

distinctes qui communiquent à travers des interfaces bien définies. L’évolution vers les réseaux NGN

s’explique par la capacité du modèle IP d’offrir un mode d’acheminement des données indépendant, d’une

part, du type de technologies réseaux sous-jacentes (Ethernet, Fibre optique, Wi-Fi, WiMax, Satellite,

3G/2G, etc.) et, d’autre part, du type de données véhiculées (audio, vidéo, données). L’objectif est ainsi de

réaliser, à travers les réseaux NGN, le support de multiples services (téléphonie, télévision, services

Internet) au sein d’une unique infrastructure tirant parti de l’hétérogénéité des technologies d’accès.

Cette architecture a donc pour objectif de permettre à des utilisateurs utilisant différents terminaux

d’accéder à plusieurs types de services via des réseaux d’accès variés. Dans ce contexte, l’un des défis

majeurs est de gérer les besoins des différents utilisateurs en termes de qualité de service (QoS : Quality of

Service), de sécurité des services fournis, mais aussi de mobilité des utilisateurs.

Dans ce chapitre, nous rappelons le contexte de l’évolution des architectures de télécommunications

traditionnelles vers les réseaux de nouvelle génération, avant d’évoquer les principales caractéristiques de

ces nouveaux réseaux. La deuxième partie de ce chapitre est consacrée à la présentation des notions de

QoS, de sécurité et de mobilité qu’on se doit de gérer dans un tel contexte, tout en détaillant les différents

mécanismes qui permettent de fournir des garanties en matière de QoS, de sécurité et de mobilité.

2.2 Evolution des réseaux

2.2.1 Des réseaux dédiés

Jusqu’au milieu des années 80, les services de télécommunications traditionnels possèdent chacun

leur réseau dédié optimisé pour le transport d’un type d’information pour lequel il a été conçu, et

7

l’interconnexion entre ces réseaux a été très limitée ou inexistante. Ainsi, le monde des réseaux était

constitué de trois sous-réseaux distincts et indépendants, à savoir les réseaux de diffusion, les réseaux de

télécommunications et les réseaux de données. En effet, la voix est transportée sur les réseaux

téléphoniques commutés (RTC) qui répondent alors parfaitement aux impératifs de QoS, de fiabilité et

d’interactivité en se basant sur un plan de contrôle rigide. La télévision est diffusée par satellite ou par voie

hertzienne qui apparaît comme le mode de transmission le plus adapté vue leur nature diffusive

intrinsèque caractérisée par une communication unidirectionnelle qui permet la scalabilité en supportant

un grand nombre d’utilisateurs. Enfin, les réseaux de données, basés sur X.25, représentent un

intermédiaire entre la fiabilité du réseau de télécommunications et la mise à l’échelle du réseau de diffusion

tout en permettant une certaine interactivité.

Cette vision des réseaux de communication se révèle progressivement étroite puisqu’elle entraîne des

situations de « monopole naturel » caractérisées par la mise en œuvre systématique de solutions

propriétaires et d’infrastructures qu’il est difficile de faire évoluer ou d’interconnecter. Par conséquent,

l’infrastructure dédiée au transfert de données va proposer une nouvelle vision des architectures de

communication ; il s’agit de l’architecture Internet qui se fonde sur le modèle TCP/IP.

2.2.2 L’Internet

Au cours des années 90, l’explosion du volume du trafic véhiculé sur Internet et l’accroissement de

son hétérogénéité en termes de services (données, voix, vidéo), ont favorisé l’adoption de l’architecture

d’Internet.

Basé sur le modèle TCP/IP et la commutation de paquets, le développement de protocoles et de

services sur Internet est largement simplifié puisque ce modèle est ouvert, indépendant d’une architecture

particulière et propose une hiérarchie protocolaire qui permet à chaque couche de s’abstraire des

difficultés soulevées et résolues par la couche inférieure. En effet, le protocole IP, offre une connectivité

en mode paquet indépendante du réseau sous-jacent permettant d’interconnecter tout type de réseau.

Avec les protocoles de niveau « Transport » (UDP et TCP), les applications disposent alors d’une interface

standard pour transmettre sur un réseau IP. Graduellement, des protocoles de niveau applicatif (FTP,

SMTP, HTTP) ont été standardisés ; ce qui a permis le développement des services « classiques »

d’Internet (mail, Web, FTP). Finalement, l’augmentation en puissance des terminaux utilisateurs,

conjointement avec l’accroissement des débits et portées des réseaux d’accès, a permis d’envisager non

seulement la réplication, sur Internet, des services RTC ou télévisuels mais aussi le développement de

nouveaux services large bande multimédia.

2.2.3 La convergence des réseaux

Durant ces dernières années, les trois réseaux ont connu des évolutions conséquentes. Le réseau de

télécommunications est devenu numérique, sans fil et mobile grâce à l’émergence des réseaux mobiles de

2ème et 3ème générations qui ont augmenté le débit de transmission, et par la même, le nombre de services.

Le même constat peut être fait pour le réseau de diffusion qui migre actuellement vers la télévision et la

radio numérique. Ainsi, les frontières entre les trois réseaux tendent à disparaître et les services se

généralisent sur tous les réseaux. Par exemple, l’Internet et la TV sont disponibles sur les réseaux de

télécommunications, les communications téléphoniques peuvent être effectuées sur Internet, etc.

8

Cette nouvelle mouvance a fait émerger la notion de convergence des réseaux qui a pour objectif de

définir un cadre global pour le regroupement des trois types de réseaux sous une seule architecture.

2.2.4 Résumé

Actuellement, il n’existe ni une définition précise de la convergence des réseaux, ni une architecture

définitive pour réaliser cette convergence. Cependant, il y a un consensus qui se précise sur la technologie

IP pour permettre une interconnexion et une interopérabilité entre les réseaux traditionnels. Ce consensus

se concrétise par deux points principaux. Le premier est le concept du Tout-IP, ou ALL-IP, qui englobe le

développement de nouveaux services basés sur le protocole IP et la migration des services traditionnels

sur les réseaux IP (VoIP, IPTV, etc.). Le deuxième point est la définition des réseaux de nouvelle

génération (NGN) qui exploitent le protocole IP dans leur couche « Transport ».

Les nouveaux défis techniques des réseaux de nouvelle génération sont alors la convergence des

services (voix, vidéo et données), la convergence des réseaux autour du mode paquet, l’offre de service

sans couture d’un réseau à un autre (handovers horizontal et vertical), l’ubiquité, le support de terminaux

multimédias, le déploiement de services disponibles de bout en bout accessibles depuis n’importe quel

réseau d’accès, etc.

2.3 Les réseaux de nouvelle génération

2.3.1 Définition et principes fondamentaux

Les réseaux NGN représentent la prochaine génération de réseaux censée réaliser la convergence

totale des services en une seule architecture. Cependant, il n’existe pas encore une définition unique de la

notion de NGN. L’ITU-T a publié deux recommandations concernant les réseaux NGN. La première

recommandation, Y.2001 [ITU 04a], définit les principales caractéristiques d’un réseau NGN, tandis que la

deuxième, Y.2011 [ITU 04b], propose une architecture fonctionnelle. Le comité technique TISPAN de

l’ETSI (European Telecommunications Standards Institute) a aussi défini une architecture fonctionnelle

pour les réseaux NGN largement inspirée de celle proposée par l’ITU-T. Les définitions des organismes

de normalisation tels que l’ETSI et l’ITU-T restent assez vagues et dressent une liste générale des

principales caractéristiques des réseaux NGN qui se veulent multi-réseaux, multiservices, multi-protocoles

et multi-terminaux. Ces caractéristiques communes sont : la convergence ou intégration des réseaux, le «

tout IP », le découplage des fonctions applicatives du réseau de transport sous-jacent, la distribution de

l’intelligence dans le réseau, l’ubiquité.

2.3.2 Architectures des réseaux NGN

Afin de répondre aux différentes exigences citées précédemment et d’intégrer ainsi les infrastructures

de télécommunication existantes avec celles à venir au sein d’une seule et unique infrastructure commune,

flexible et évolutive, des impératifs ont été clairement identifiés par les organismes œuvrant pour les

réseaux NGN (3GPP, ITU-T, ETSI, ATIS, etc.) :

• Un cœur de réseau unique et mutualisé pour tous les types de réseaux d’accès et de services,

9

• Une architecture de cœur de réseau en 2 couches : « Transport » / « Services »,

• Une évolution du transfert des données vers le mode paquet,

• Des interfaces ouvertes et standardisées entre chaque couche afin de réaliser l’indépendance des

services vis-à-vis du réseau,

• Un découplage entre la fourniture de service et la fourniture de réseau.

• Le support de technologies d’accès multiples,

• Le support de la convergence des réseaux voix/données et fixe/mobile,

• Le support de terminaux multiples (modulaires, multi-mode, multimédia et adaptatifs).

Ainsi, la principale caractéristique d’un réseau de nouvelle génération est son fondement sur IP qui

offre un mode de transfert homogène de bout en bout indépendant, d’une part, des réseaux sous-jacents

et, d’autre part, du type de données applicatives véhiculées. Après l’évolution du cœur de réseau vers le

« tout-IP », la notion la plus importante reste la décomposition en plans fonctionnels séparés par des

interfaces ouvertes qui assure à la fois le passage à l’échelle et la flexibilité d’une telle architecture en

offrant une facilité d’interconnexion et d’intégration de nouveaux services.

La Figure 2-1 offre une représentation communément admise de l’architecture des réseaux NGN.

Figure 2-1 : Architecture générique des réseaux NGN

Le plan de « Transport » regroupe l’ensemble des ressources mises en place pour assurer le transfert

de données. Ainsi, il gère l’acheminement du trafic vers sa destination en fournissant une connectivité IP

aux différents composants d’un réseau NGN tout en garantissant une QoS de bout en bout. Ce plan

dépend directement de la technologie du réseau de transport utilisé pour acheminer les paquets.

10

Le plan de « Service » fournit les fonctionnalités de base pour l’exécution des services avec ou sans

session. En effet, il regroupe les plateformes d’exécution de service et de diffusion de contenu tout en

masquant la diversité technologique aux clients et aux fournisseurs de services.

Après ces plans horizontaux, on peut différencier les réseaux d’accès des réseaux de transit. En effet,

les premiers ont pour but de concentrer le trafic des différents utilisateurs vers des équipements centraux.

Alors que, les deuxièmes ont pour vocation d’acheminer des volumes de trafic importants entre quelques

entités limitées. Dans la Figure 2-1, nous pouvons noter la diversité des technologies permettant à

l’utilisateur d’accéder aux services ; ce qui peut former ce qu’on appelle parfois le plan d’accès. Il est

important de noter que l’interaction entre les réseaux de nouvelle génération est les réseaux traditionnels

est prise en charge par différentes passerelles d’interconnexion afin d’assurer une compatibilité avec les

technologies déployées actuellement.

2.3.3 Caractéristiques des réseaux NGN

Un réseau NGN doit pouvoir supporter n’importe quel réseau d’accès, filaire ou sans fil, et n’importe

quel équipement terminal, fixe ou mobile. Par ailleurs, dans un tel environnement, la définition d’un

service est indépendante des technologies des réseaux sous-jacents ainsi que des différents terminaux

utilisés afin d’accéder à ces services.

2.3.3.1 Des terminaux de plus en plus sophistiqués

Un terminal peut être défini comme est un équipement situé en extrémité d’un réseau de

télécommunication, permettant à un utilisateur de communiquer sur ce réseau en assurant l’interface avec

cet utilisateur. Aujourd’hui, les terminaux sont de plus en plus nombreux et sophistiqués tels que les

téléphones (fixe, GSM, Wi-Fi, etc.) les PDA, les ordinateurs (fixe et portable) ; et supportent des

applications de types très variés comme le texte, la parole, l’image et la vidéo. En s’équipant de divers

types d’interfaces de connexion (Ethernet, Wi-Fi, WiMax, Bluetooth, etc.), ces terminaux permettent

d’utiliser différents types de réseaux d’accès pour qu’un utilisateur puisse se connecter aux réseaux NGN.

2.3.3.2 Des réseaux d’accès supportant des débits de plus en plus élevés

Les réseaux d’accès multiplient les technologies d’accès (fixe, mobile, sans fil, etc.), évoluant

constamment pour supporter de plus hauts débits (technologies ADSL, 802.11b, a, g) indispensables au

support de services large bande et offrant des services adaptés à IP. En effet, le RTC, initialement conçu

pour le service de téléphonie (voix), a permis une ouverture à des services haut débit de type voix et

données grâce aux technologies xDSL (ADSL, HDSL, VDSL, etc.). Les réseaux ADSL ou câblés ont

constitué, par ailleurs, un des premiers exemples opérationnels de la convergence des services

Voix/Vidéo/Donnée. D’un autre coté, les réseaux d’accès sans fil ont connu des évolutions importantes

leur permettant d’offrir des débits de plus en plus élevés tout en gérant la mobilité des utilisateurs. Par

ailleurs, les réseaux mobiles 2G (GSM) et 2.5G (GPRS) ont largement contribué à habituer l’utilisateur à

un usage mobile du service voix. La migration vers les technologies 3G (UMTS : Universal Mobile

Telecommunication System), qui fournit des débits plus élevés en utilisant de nouvelles bandes de

fréquence, a impliqué l’implémentation d’un cœur de réseau unifié pour les services voix et données. Ainsi,

cette technologie (UMTS) représente le premier système global entièrement normalisé avec une

architecture de réseau et de services NGN. Par ailleurs, il existe d’autres technologies d’accès telles que le

11

WiMax (Worldwide Interoperability for Microwave Access) et le LTE (Long Term Evolution) qui

émergent.

2.3.3.3 Des services de types variés

L’évolution vers les réseaux NGN, fondés sur des technologies de transmission haut débit avec des

garanties en matière de QoS, a permis de supporter des types variés de services tels que la voix, la vidéo et

les données.

La variété des services envisageables dans les réseaux de nouvelle génération est due aux multiples

possibilités qu’ils offrent en termes de média, de mode de communication, de mobilité, de réseaux d’accès

et de terminaux. Ces services incluent les services IP traditionnels comme le mail et le web, mais aussi des

services émergents comme : la voix sur IP (VoIP : Voice over IP), la diffusion de la télé sur IP (IPTV), et

les applications fondées sur la présence tels que la messagerie instantanée (Instant Messaging) et les

services de localisation (Location-Based Services).

2.3.4 Résumé

L’apparition des réseaux de nouvelle génération a été principalement motivée par l’évolution des

réseaux d’accès et des équipements terminaux, mais surtout par le besoin des clients de pouvoir accéder

aux plateformes des différents services quel que soit le type de terminal et la technologie du réseau d’accès.

L’architecture NGN décrite ci-dessus est loin d’être achevée. Héritée en grande partie d’Internet,

cette architecture va se heurter aux mêmes problèmes, notamment ceux de la QoS et de la sécurité. En

effet, les services supportés par les réseaux NGN ne pourront se déployer sans fournir aux clients des

garanties en matière de QoS et de sécurité. Pour ce faire, les fournisseurs de services doivent pouvoir

disposer d’outils permettant de gérer ces services (facturation, authentification, profil des utilisateurs,

garantie de la qualité de service et de sécurité de bout en bout, etc.).

Avant d’introduire les mécanismes proposés dans le but de permettre aux fournisseurs de services

d’offrir des garanties en matière de QoS et de sécurité à leurs clients, nous allons, dans ce qui suit, décrire

les différents mécanismes qui permettent de gérer la QoS et la sécurité des communications ainsi que la

mobilité des utilisateurs.

2.4 La qualité de service (QoS : Quality of Service)

Dans une architecture NGN, le transport des services de nouveaux types (multimédia,

conversationnels, temps réel, etc.) est basé sur le protocole IP (Internet Protocol). Cependant, IP souffre

d’un inconvénient qui réside dans le routage de toutes les données d’une manière équivalente. En effet, le

protocole IP fournit un acheminement au mieux (Best-Effort) qui n’offre aucun contrôle, ni garantie, sur

les conditions de transport de bout en bout des paquets IP. Grâce à sa simplicité, ce service a rencontré un

grand succès dans le passé pour le transport des données asynchrones. Cependant, ce succès est de plus en

plus contesté, actuellement, par la multiplication des flux synchrones, ou temps réel, qui exigent une

certaine QoS pour leur transport. Etant donné que ces nouveaux services, essentiellement les services

multimédia et les services temps réel, répondent à des exigences très strictes en termes de délai de

12

transport et de bande passante, il devient primordial de gérer l’offre de QoS dans les réseaux fondés sur

IP tels que les réseaux NGN.

La qualité de service (QoS) est un concept incontournable dans le monde des télécommunications,

qui a pour but de donner la possibilité à un utilisateur de disposer d’une qualité de transmission supérieure

à celle d’un utilisateur quelconque. Bien que complexe, le concept de la QoS n’a rien de révolutionnaire

puisqu’il se fonde sur des technologies préexistantes qu’il vise à rationaliser et souvent à simplifier afin

d’en faciliter la mise en œuvre.

Le nouveau cadre de travail introduit par les réseaux NGN est caractérisé par une segmentation des

tâches entre différents opérateurs et fournisseurs (services et réseaux) à travers différentes couches

verticales (terminal utilisateur, réseau d’accès et réseau de transit) et horizontales

(« Transport » / « Service »). Cette segmentation permet d’envisager des solutions de QoS de bout en bout

résultant de l’agrégation des solutions déjà proposées par la communauté scientifique pour l’Internet.

C’est pourquoi, avant de décrire une vision de l’offre de QoS dans la cadre de l’architecture NGN, nous

allons dans un premier temps rappeler les principales architectures de QoS développées par l’IETF.

2.4.1 Définition et mécanismes élémentaires de la QoS

La définition de la qualité de service, notée QoS en abrégé, n’est pas unique et chaque communauté a

sa propre définition pour ce terme. Dans la norme ITU-T (International Telecommunications Union -

Telecommunication), la qualité de service est perçue comme un ensemble de critères de qualité requis

pour le fonctionnement d’un ou plusieurs objets. Dans la terminologie ATM (Asynchronous Transfer

Mode), la QoS est définie à travers un ensemble de paramètres de performances et de qualité caractérisant

une connexion virtuelle. Enfin, l’IETF fait référence à la qualité de service pour désigner les paramètres

caractérisant les exigences et les contraintes des applications et celles de l’ensemble du réseau.

La mise en œuvre d’une solution globale de QoS nécessite l’introduction de mécanismes élémentaires

que nous introduisons brièvement dans ce qui suit. En se référant à la recommandation Y.1291 [ITU 04c]

définie par l’ITU-T, ces blocs élémentaires peuvent être regroupés en différents plans

(Données/Contrôle/Administration).

Le plan de données comprend tous les mécanismes au niveau élément de réseau interagissant avec les

données. Ces différentes fonctionnalités sont : la classification, le conditionnement, le marquage,

l’ordonnancement, la gestion de files d’attente et le contrôle de congestion.

Le plan de contrôle comprend l’ensemble des mécanismes qui vont permettre de configurer les

ressources le long du parcours des données. Ces différentes fonctionnalités sont : le routage basé sur des

informations de QoS, le contrôle d’admission basé sur l’état des ressources disponibles, le contrôle

d’admission basé sur une politique de contrôle et la signalisation de QoS qui regroupe la découverte, la

négociation, la réservation et l’allocation de ressources.

Enfin le plan de gestion contient l’ensemble des mécanismes concernant les aspects de gestion et

d’administration du trafic. Ceci comprend la métrologie qui permet le contrôle et la supervision de la QoS

dans le réseau, la gestion de contrat, la mise en correspondance des paramètres de QoS d’un service en

paramètres réseau et la politique de QoS.

13

2.4.2 La QoS dans les réseaux IP

Les paramètres qui caractérisent les performances d’un réseau IP sont multiples. Parmi ces

paramètres, nous trouvons un ensemble de paramètres qui permet d’évaluer la QoS de bout en bout. Le

groupe « IP Performance Metrics » de l’IETF et le groupe d’étude 13 de l’ITU-T (recommandation

Y.1541) ont défini des métriques de qualité de service ainsi que des méthodes pour mesurer ces métriques.

Les principales métriques caractérisant la qualité de service d’un service IP sont :

• Le délai de transmission (la latence) : Il représente le temps nécessaire pour qu’un paquet traverse le réseau

de bout en bout, de l’émetteur jusqu’au récepteur.

• La gigue (Variation du délai) : Il s’agit de la variation des délais d’acheminement de bout en bout entre

deux paquets consécutifs.

• La bande passante : Elle représente le débit de bout en bout disponible sur le réseau.

• Le taux de perte : Il correspond au rapport du nombre de paquets perdus sur le nombre de paquets émis

durant la transmission.

Afin de pouvoir évaluer la QoS perçue par l’utilisateur à travers une application de voix ou de vidéo,

des paramètres complémentaires ont été définis. Ces paramètres prennent en compte le caractère subjectif

de la perception de l’utilisateur. Ainsi la qualité de service d’une communication vocale ou d’un streaming

vidéo peut être mesurée grâce à ce qu’on appelle le MOS (Mean Opinion Score). La valeur de ce critère de

mesure varie entre 1 (inacceptable) et 5 (excellent) et elle est obtenue à partir d’un ensemble de tests

subjectifs [ITU 96].

Parmi les architectures qui permettent de prendre en compte la qualité de service dans les réseaux IP,

nous décrivons, dans ce qui suit, trois architectures. La première architecture (IntServ) a pour objectif de

fournir une architecture de QoS homogène de bout en bout. Ceci implique que l’ensemble des routeurs

d’Internet supporte les mêmes mécanismes de QoS qui sont configurés à l’aide d’une signalisation de QoS

unique, explicite et hors-bande. La deuxième architecture (DiffServ) voit Internet comme une

concaténation de domaines administrativement et technologiquement différents. Pour surmonter cette

hétérogénéité de QoS, une signalisation à 2 étages va être introduite afin d’offrir une interface homogène

de négociation de QoS de bout en bout (signalisation inter-domaines) tout en permettant à chaque

domaine de gérer sa QoS de manière souveraine au sein de son réseau (signalisation intra-domaine). Enfin

la dernière architecture (MPLS) repose également sur une architecture de QoS hétérogène mais s’appuie

sur un ensemble de mécanismes et de protocoles afin d’améliorer le fonctionnement d’un réseau en

exploitant plus efficacement les ressources disponibles.

2.4.2.1 Le service garanti (IntServ : Integrated Services)

Le modèle IntServ [BRA 94] a marqué historiquement la volonté de l’IETF de définir une

architecture capable de prendre en charge la QoS temps réel et le contrôle du partage de la bande passante

sur les liens du réseau. C’est une architecture de QoS qui permet la réservation de ressources dans le

réseau pour un flux spécifique.

Un flux IntServ correspond à une séquence de messages possédant les mêmes adresses IP source(s)

et destination(s) et les mêmes besoins de QoS. Pour décrire les besoins d’un flux en termes de QoS,

14

IntServ se base sur la description du trafic TSpec [SHE 97a] qui représente une structure de données

utilisée pour demander des services au réseau. Cette structure de données inclut plusieurs informations : p

(débit crête, octets/seconde), b (taille maximale du burst, octets), r (débit moyen, octets/seconde), m

(unité minimum contrôlée, octets), M (taille maximum d’un paquet, octets).

Le modèle Int Serv définit deux types principaux de services, en plus du service Best-Effort :

• Le service de charge contrôlée (CLS: Controlled Load Service) [WRO 97]: Ce service fournit

approximativement la même QoS pour un flux indépendamment de l’état du réseau : état normal ou

état de surcharge. La différence entre ce service et le service Best-Effort est décelable uniquement

quand le réseau est surchargé.

• Le service garanti (GS : Guaranteed Service) [SHE 97b]: Ce service assure une bande passante stricte, un

délai de transmission de bout en bout borné et une perte de paquet nulle pour un flux.

Pour son déploiement, IntServ a défini trois types d’éléments réseaux (NE, Network Element) : le

NE QoS-capable qui implémente un ou plusieurs services IntServ, le NE QoS-aware qui offre un service

QoS équivalent à celui offert par IntServ et enfin le NE Non-QoS qui n’offre aucun service QoS.

Afin d’assurer une QoS spécifique à chaque flux, les NEs QoS-capable (routeurs IntServ) mettent en

œuvre un certain nombre de fonctions pour la gestion des paquets, par exemple, un ordonnanceur, un

classificateur et un gestionnaire de files d’attente. De plus, le NE QoS-capable doit contenir un plan de

contrôle pour la réservation de ressources, le contrôle d’admission et le contrôle d’accès (Figure 2-2). Ces

fonctionnalités se basent principalement sur le protocole de réservation de ressources RSVP (ReSerVation

Protocol) [BRA 97a]-[MAN 97]-[BRA 97b] recommandé par l’IETF.

Figure 2-2 : Plan de contrôle d’un routeur IntServ

Le protocole de signalisation RSVP permet la réservation dynamique de ressources sur le réseau en

mettant en place une connexion logique, appelée session. Cette dernière est identifiée par trois paramètres

: l’adresse de destination, l’identifiant du protocole (IP) et le port de destination (optionnel). Dans RSVP,

l’initialisation et le maintien de la réservation des ressources sont contrôlés par le récepteur et la

réservation est unidirectionnelle, de l’émetteur vers le récepteur. Autrement dit, la réservation, déclenchée

par l’application réceptrice, configure l’ensemble des routeurs traversés le long du chemin des données en

fonction de la nature du trafic spécifié. Les paramètres de contrôle du trafic (QoS) et les politiques de

15

contrôle véhiculés par RSVP sont définis en dehors de ce dernier. Ces paramètres sont documentés dans

des spécifications propres à IntServ.

Cette architecture offre la gestion de la QoS de bout en bout la plus fine qui soit puisqu’elle supporte

des degrés de service non prédéfinis et contrôlés qui correspondent exactement aux besoins d’un flux

applicatif. Par ailleurs, elle réduit au maximum l’hétérogénéité des protocoles de signalisation à supporter

en offrant un cadre de référence homogène d’un domaine à un autre. La gestion de la QoS est ainsi

entièrement distribuée dans l’ensemble du réseau. Par ailleurs, son contrôle d’admission, qui reposait

uniquement sur la disponibilité ou non de ressource, a été complété par un contrôle d’accès aux ressources

basé sur des règles de contrôle [BOY 00].

Malgré sa robustesse, l’architecture IntServ n’a pas rencontré le succès escompté pour assurer la QoS

au niveau IP. L’inconvénient majeur de RSVP reste le problème de passage à l’échelle. En effet ce

mécanisme se révèle totalement inadéquat en cœur de réseau où la concentration de flux est telle que la

charge due à la signalisation induite et le nombre d’états dans le plan de contrôle et de données à gérer au

sein des routeurs explosent [PAN 02]. Les autres reproches concernent sa complexité de mise en oeuvre

et l’overhead introduit sur le réseau en utilisant un protocole de réservation de ressources.

Des solutions alternatives se basant sur les mêmes principes fondamentaux (architecture de QoS

homogène, un protocole de signalisation unique, déclenchement de la réservation de ressource par

l’utilisateur) ont déjà été proposées notamment à travers YESSIR (YEt another Sender Session Internet

Reservation) [PAN 98] ou Boomerang [FEH 99] mais ces solutions, bien que mieux adaptées, supportent

difficilement le passage à l’échelle.

De ce fait, un autre paradigme a été proposé par opposition à ce modèle d’architecture à service

intégré pour résoudre le problème de passage à l’échelle ; il s’agit de l’architecture DiffServ [BLA 98] qui

introduit la notion de l’agrégation de flux.

2.4.2.2 La différenciation de services (DiffServ : Differentiated Services)

Afin de surmonter le problème de passage à l’échelle posé par la gestion d’une QoS par flux dans les

routeurs du cœur de réseau, l’IETF a introduit un autre modèle de QoS plus simple à déployer, appelé

DiffServ [BLA 98]. Au lieu d’offrir une QoS pour chaque flux comme le propose IntServ, DiffServ offre

des services par agrégats en repoussant aux extrémités du réseau le traitement par flux. Ainsi, à la frontière

d’un réseau, les micro-flux applicatifs sont agrégés en quelques macro-flux associés chacun à une classe de

service. Les routeurs de cœur ne traitent alors plus que des agrégats limités en nombre ce qui permet de

réduire considérablement le nombre d’états maintenus sur le réseau de transit et les réseaux d’opérateurs.

L’architecture DiffServ s’appuie sur le découpage actuel d’Internet en domaines autonomes, c’est-à-

dire un regroupement de nœuds qui répondent à une seule et même autorité administrative. La Figure 2-3

illustre une architecture DiffServ qui définit des domaines, des régions et des routeurs. Le domaine

DiffServ (DS Domain) représente une zone administrative (domaine autonome), avec plusieurs routeurs

partageant la même définition de services et de PHB (Per Hop Behavior). Un ensemble de domaines

DiffServ constitue une région DiffServ (DS Region). Au sein d’un domaine DiffServ, on distingue les

routeurs de bordure (DS boundary nodes) incluant des routeurs d’entrée et de sortie qui peuvent être

reliés directement à un réseau utilisateur ou à un autre domaine et les routeurs de cœur (DS interior

nodes).

16

Figure 2-3 : Architecture DiffServ

Au sein d’un domaine DiffServ, les routeurs de cœur traitent les paquets en fonction de la classe de

ce paquet. En effet, DiffServ distingue différentes classes de trafic en se basant sur le champ DSCP

(DiffServ Code Point) défini sur 6 bits et présent au niveau de l’entête des paquets IP [NIC 98]. Ceci

constitue une sorte de signalisation dans la bande (in-band). Les paquets appartenant à la même classe

identifiée par le DSCP sont traités suivant un comportement approprié, appelé PHB.

Un PHB est une description du comportement de transmission d’un nœud DiffServ, face à une

classe particulière de trafic. La mise en œuvre d’un PHB au niveau des nœuds DiffServ se fait grâce à des

mécanismes de gestion et d’ordonnancement de files d’attentes.

L’architecture DiffServ définit deux types principaux de PHB :

• Expedited Forwarding (EF) [JAC 99] : le PHB EF correspond à la plus forte priorité et assure le

transfert de flux à fortes contraintes temporelles en garantissant une bande passante avec un taux de

perte, un délai et une gigue très faibles. Pour ce service, il est important de bien connaître le débit

minimum sortant d’un nœud DiffServ. Ce débit doit être supérieur au débit entrant. Le DSCP

correspondant à ce service est : 101110.

• Assured Forwarding (AF) [HEI 99]: le PHB AF garantit l’acheminement de certains paquets en cas de

congestion. Il permet la définition de plusieurs classes de trafic en utilisant plusieurs PHB. Il est

possible de définir N classes (AF) indépendantes avec M niveaux de priorités différents (drop

precedence) pour chacune d’elles. Actuellement, quatre classes de traitement (N=4 : AF1, AF2, AF3

et AF4) sont définies et chacune d’elles comprend trois niveaux de priorité (M=3). Les classes AF

sont configurées pour consommer davantage de ressources lorsqu’elles sont disponibles. En cas de

surcharge, le nœud DiffServ supprime les paquets dans les classes AF en fonction de leur niveau de

priorité. La mise en œuvre du PHB AF doit minimiser la surcharge permanente de chaque classe tout

en autorisant les pics de trafic.

En dehors du PHB, un routeur de cœur implémente un classificateur de type « Behavior Aggregate»

qui sélectionne les paquets uniquement en fonction de la valeur du champ DSCP. Ce marquage, sur lequel

s’appuient les routeurs, de cœur est effectué par les routeurs de bordure.

Les routeurs de bordure adoptent généralement des mécanismes plus sophistiqués qu’en cœur de

domaine. Ils mettent en œuvre deux principaux mécanismes : la classification et le conditionnement du

trafic.

17

La classification vise à associer des classes d’application ou d’utilisateur à telle ou telle classe de

service DiffServ ou à des mécanismes de régulation spécifiques. Ainsi, cette classification peut s’effectuer

suivant deux techniques :

• BA (Behavior Aggregate) : La classification est établie en fonction de la valeur DSCP.

• MF (Multi-Field) : La classification peut prendre en considération d’autres champs comme l’adresse

source ou destination, le numéro de port, etc.

Le conditionnement du trafic effectué par les routeurs de bordure est illustré par la Figure 2-4 qui

permet de distinguer les différents composants contenus dans ce type de routeur :

• Le métreur (Meter) : Il mesure le trafic afin de s’assurer qu’il est conforme au profil contracté avec

l’utilisateur. Les mesures sont communiquées aux autres composants pour appliquer la politique de

contrôle appropriée.

• Le marqueur (Marker) : Il modifie la valeur du champ DSCP.

• Le lisseur (Shaper) : Il se charge de lisser le trafic en retardant l’envoi de certains paquets pour les rendre

conforme à leur profil. Pour cela, il stocke les paquets dans un buffer de taille limitée.

• Le suppresseur (Dropper) : (il supprime le trafic non conforme) Il supprime les paquets dans le cas où le

débit défini dans le profil est dépassé.

Figure 2-4 : Le conditionnement du trafic DiffServ

DiffServ propose de gérer un certain nombre de niveaux de QoS prédéfinis par le responsable du

domaine. Le traitement différencié au sein d’un domaine DiffServ, fondé sur le champ DSCP, se fait grâce

à l’agrégation de trafics aux exigences similaires en bordure de ce domaine. En plus du passage à l’échelle

que permet l’architecture DiffServ, elle peut être considérée comme l’architecture la plus adaptée aux

réseaux IP d’aujourd’hui, contrairement à l’architecture de QoS homogène proposé par IntServ.

Cependant, elle présente des lacunes au niveau du plan de contrôle. En effet, chaque domaine sous

l’autorité d’un opérateur de réseau offre des services (DiffServ) et tout client (opérateur ou particulier) qui

veut en bénéficier doit négocier un accord avec l’opérateur concrétisé par un contrat appelé SLA (Service

Level Agreement) (cf. section 3.2.1).

Au début, la négociation des SLA s’effectuait manuellement (fax, email, courrier, etc.), ce qui fait

d’elle une procédure lourde et relativement statique (mise à jour une fois par mois).

De plus, l’allocation des ressources n’étant pas automatisée, la reconfiguration des ressources au sein

d’un domaine DiffServ pour supporter de nouveaux services est une procédure relativement longue (des

heures, voire des jours). Cette configuration manuelle implique, au niveau des routeurs périphériques, une

politique statique associant des classes d’application et des utilisateurs à des classes de services ce qui n’est

18

pas suffisant pour répondre aux changements dynamiques qui s’opèrent au sein d’un réseau. Afin d’y

remédier et d’offrir une QoS de bout en bout, une solution hybride IntServ/DiffServ [BER 00] a été

proposée afin de combiner une gestion par flux selon le modèle IntServ dans les réseaux périphériques

(réseau d’entreprise ou LAN) et une gestion par agrégat selon le modèle DiffServ dans les réseaux de

transit. Cependant elle impose le support de RSVP par les applications, ce qui n’est toujours pas le cas

actuellement et ne résout pas le problème d’allocation dynamique des ressources dans les domaines

DiffServ.

Afin de répondre à ces lacunes, de nombreuses solutions ont été proposées par l’IETF et des projets

de recherche tels que Cadenus, Aquila, Tequila et Internet2-Qbone (cf. section 3.3.1). Le point commun

de l’ensemble de ces propositions est qu’elles se rejoignent sur le concept d’une architecture de gestion des

ressources à deux étages [TER 99] reposant sur une signalisation intra-domaine pour l’allocation des

ressources au sein d’un même domaine et une signalisation inter-domaines pour les ressources partagées

entre les domaines. Chaque opérateur est ainsi à même de gérer l’allocation des ressources dans son

domaine, comme il l’entend.

2.4.2.3 MPLS (MultiProtocol Label Switching)

Contrairement aux deux architectures précédentes, IntServ et DiffServ, MPLS ne constitue pas une

architecture de QoS proprement dite, mais plutôt une architecture qui appartient à l’ingénierie de trafic.

C’est une architecture qui déploie des mécanismes ainsi que des protocoles dans un réseau afin d’améliorer

son fonctionnement en exploitant plus efficacement les ressources disponibles. Ceci conduit

indirectement à améliorer la qualité de service d’un réseau.

L’architecture MPLS (MultiProtocol Label Switching) [ROS 01] a été définie par l’IETF pour unifier

le monde de la commutation de circuits et le monde de la commutation de paquets en utilisant une

commutation de labels. Ceci signifie que dans un réseau MPLS, le routage des paquets se base sur des

labels qui sont inclus dans leurs entêtes.

Le fonctionnement MPLS se base essentiellement sur les trois notions suivantes :

• La FEC (Forwarding Equivalence Class) : Une FEC regroupe un certain nombre de paquets possédant

des caractéristiques communes qui déterminent leur cheminement dans le réseau. La constitution des

FEC par MPLS peut se baser sur des critères comme la destination, la source, la QoS, l’application,

etc. L’assignation d’un paquet à une FEC est effectuée une seule fois à l’entrée du réseau.

• Le label MPLS : Appelé MPLS Shim, ce label constitue un entête de paquet dont le format dépend

essentiellement du réseau sur lequel MPLS est mis en œuvre. Le label MPLS contient un champ label

de 20 bits qui permet d’identifier une FEC sur un routeur particulier. En fait, une FEC peut être

identifiée par différents labels sur différents routeurs.

• Le LSP (Label Switch Path) : Il représente le chemin d’une FEC dans un réseau MPLS. Ce chemin est

constitué de succession de labels attribués par chaque routeur pour une FEC.

L’architecture MPLS définit deux types de routeurs : LSR (Label Switch Router) et LER (Label Edge

Router). Le LSR, se trouvant à l’intérieur d’un réseau MPLS, est capable de commuter les paquets suivant

leur label, tandis que le LER, localisé à l’extrémité du réseau, se charge de l’assignation des labels aux

paquets entrants et de la suppression de ces labels sur les paquets sortants.

19

Chaque routeur doit gérer deux tables : une table de routage et une table de labels. La table de

routage est construite en utilisant les protocoles de routage IP standards (RIP, OSPF, BGP, etc.). En ce

qui concerne la table de labels, sur laquelle repose la commutation, l’IETF propose deux solutions, soit

l’utilisation d’un protocole de distribution de labels spécifique, LDP (Label Distribution Protocol) [AND

01], soit l’extension des protocoles existants pour assurer la distribution de labels, par exemple RSVP

[AWD 01].

Le principe de fonctionnement d’un réseau MPLS peut être résumé comme suit (Figure 2-5) :

lorsqu’un paquet entre dans un réseau MPLS, un routeur LER l’affecte à une FEC selon la politique

déployée dans le réseau en lui assignant le label de cette FEC. Le LER transmet le paquet au prochain

routeur suivant sa table de labels. Les LSR font suivre le paquet suivant son label en lui affectant à chaque

fois le label local qui identifie la FEC auquel il appartient. Ceci se répète, jusqu’au routeur LER de sortie

qui supprime le label sur le paquet.

Figure 2-5 : Fonctionnement MPLS

MPLS est un protocole très répandu dans les réseaux IP qui repose uniquement sur la commutation

par paquets. Cependant, il existe une généralisation de ce protocole appelée GMPLS (Generalized MPLS)

[MAN 04]. L’objectif de GMPLS est d’étendre le fonctionnement de MPLS afin de supporter plusieurs

types de commutation, ce qui permet de transmettre non plus uniquement des paquets mais aussi des

circuits comme la voix.

GMPLS, qui s’inscrit dans l’évolution vers les réseaux de nouvelle génération, permet d’avoir une

structure de contrôle unique sur les trois premières couches du réseau. Le nombre d’interfaces entre ces

couches va donc pouvoir être réduit, d’où la baisse importante des coûts opérationnels du réseau mais

aussi la croissance de l’efficacité de transport des paquets.

Synthèse : Les trois architectures et mécanismes de QoS que nous avons détaillés ci-dessus ; à savoir

IntServ, DiffServ et MPLS/GMPLS, ont permis de comprendre comment la QoS peut être gérée dans les

réseaux IP. Ces modèles vont largement inspirer les organismes de normalisation des réseaux de nouvelle

génération ainsi que les travaux de recherche dans la définition d’une architecture de QoS NGN. En effet,

ce qui caractérise l’architecture NGN, c’est essentiellement la segmentation du réseau global qui peut être

divisé en un réseau d’accès et un réseau de cœur qui peut être vu comme une concaténation de domaines

administratifs dans lesquels la QoS est gérée par niveau. Nous notons qu’un réseau d’accès peut avoir ses

propres mécanismes de gestion de QoS qui ne dépendent que de la technologie implémentée par ce

20

réseau. Par conséquent, nous rappelons dans la section suivante quelques mécanismes de QoS propres à

certains types de réseaux d’accès.

2.4.3 La QoS dans les réseaux d’accès

Dans cette partie, nous allons nous intéresser aux mécanismes de QoS implémentés par différentes

technologies d’accès comme le Wi-Fi (IEEE 802.11), le WiMax (IEEE 802.16) ou encore la technologie

Satellite de type DVB-S2/RCS.

2.4.3.1 Mécanismes de QoS dans les réseaux Wi-Fi

Le réseau WLAN 802.11 (Wi-Fi) permet la transmission de données en utilisant des liens sans fil. Ce

réseau définit deux modes d’utilisation : le mode infrastructure et le mode ad-hoc. Le mode infrastructure

inclut une station de base qui assure la liaison entre le réseau Wi-Fi et le réseau filaire. Ainsi, tous les

terminaux sans fil des utilisateurs du réseau Wi-Fi doivent être associés à cette station de base. Quant au

mode ad-hoc, il est caractérisé par une communication directe entre les terminaux sans fil.

Lorsqu’un terminal sans fil d’un réseau 802.11 veut transmettre des données, il doit pouvoir accéder

au canal de communication. Ce dernier est divisé en intervalles temporels appelés supertrames. Une

supertrame est divisée en deux périodes : une période d’accès sans contention (CFP : Contention Free

Period) à laquelle les terminaux sans fil accèdent en utilisant le mécanisme d’accès centralisé (PCF : Point

Coordination Function), et une période d’accès avec contention (CP : Contention Period) à laquelle les

terminaux sans fil accèdent en utilisant le mécanisme d’accès distribué (DCF : Distributed Coordination

Function). Le mécanisme PCF est fondé sur un point de coordination (généralement le point d’accès) qui

gère l’accès au canal en interrogeant à tour de rôle les terminaux sans fil afin de leur offrir l’opportunité de

transmettre. Quant au mécanisme DCF, il se base sur CSMA/CA (Carrier Sense Multiple

Access/Collision Avoidance) pour que les terminaux sans fil puissent gérer eux-mêmes l’accès distribué et

équitable au canal.

Les méthodes d’accès proposées par le 802.11 (PCF et DCF) présentent un certain nombre de

limitations. Par exemple, dans le cadre d’un accès centralisé PCF, lorsque le canal est occupé par une

communication d’un terminal sans fil, le point de coordination n’a plus le contrôle du canal ; ce qui peut

engendrer des délais imprévisibles. De plus, dans le cadre d’un accès décentralisé DCF, il est difficile

d’obtenir des garanties en termes de délai, de gigue et de bande passante, parce qu’il n’y a aucune notion

de priorité à cause d’un partage équitable de la bande passante entre les terminaux sans fil du réseau.

Afin de pouvoir fournir des garanties en termes de QoS, des mécanismes de QoS ont été introduits

grâce au standard IEEE 802.11e. Il s’agit des deux nouvelles fonctions : EDCF (Enhanced Distributed

Coordination Function) et HCF (Hybrid Coordination Function).

Le mode d’accès EDCA (Enhanced Distributed Channel Access) se base sur la fonction EDCF afin

de proposer un service de différentiation définissant quatre catégories d’accès au niveau MAC. Au sein

d’un même terminal sans fil, chaque catégorie d’accès peut être considérée comme une entité de

transmission indépendante avec ses propres paramètres de transmission, comme le délai backoff

représentant l’inactivité du canal. Chaque catégorie d’accès est implémentée sous forme d’une file

d’émission. Ainsi, les données à transmettre doivent être étiquetées avec la priorité adéquate afin d’être

redirigées vers la file d’attente avec la QoS correspondante.

21

Le mode d’accès HCCA (HCF Controlled Channel Access) se fonde sur la fonction HCF afin de

gérer l’accès des terminaux sans fil au canal. Les terminaux sans fil sont toujours interrogés à tour de rôle

par le point d’accès qui devient un coordinateur hybride (HC : Hybrid Coordinator). L’accès d’un terminal

sans fil au canal de transmission ne dépend que du paramètre TXOP qu’il possède. La notion de TXOP,

introduite dans le standard 802.11e, représente l’opportunité de transmission d’un terminal sans fil, et

détermine une date de début de la transmission ainsi qu’une durée pendant laquelle le terminal peut

transmettre.

2.4.3.2 Mécanismes de QoS dans les réseaux WiMax

Le standard de transmission radio 802.16 (WiMax) a été proposé dans le cadre des nouvelles

technologies réseau sans fil offrant de hauts débits. L’architecture d’un réseau WiMax implique deux types

d’équipements : le terminal utilisateur et la station de base qui possède des fonctionnalités de gestion et de

contrôle du réseau.

La transmission de données de la station de base vers les terminaux mobiles se fonde sur le

mécanisme de multiplexage temporel (TDD : Time Division Duplex), tandis que la transmission dans le

sens inverse est basée sur le mécanisme d’accès multiple à division dans le temps (TDMA : Time Division

Multiple Access). Afin d’accéder au canal de transmission, les terminaux doivent demander l’autorisation

auprès de la station de base qui s’occupe de l’allocation des ressources en utilisant un des trois mécanismes

suivants : allocation de bande non sollicitée (unsolicited bandwidth grants), allocation de bande par

système d’interrogation des terminaux, appelée allocation sans contention (polling) ou encore allocation

avec contention (contention procedure).

Afin de répondre aux besoins des applications gourmandes en termes de QoS, la couche MAC du

802.16 propose des services de QoS différentiés. Chacun de ces services est associé à un type d’application

et propose d’utiliser une méthode d’accès :

• Le service UGS (Unsolicited Grant Service) : Ce service supporte les flots temps réel qui génèrent

périodiquement des paquets de données de taille fixe tel que la voix sur IP. L’accès au canal ne

nécessite pas de requête de bande passante de la part du terminal, car cette ressource est négociée lors

de l’initialisation du terminal et lui est allouée statiquement pendant toute la durée d’activation.

• Le service RTPS (Real Time Polling Service) : Ce service offre des requêtes d’opportunités temps réel

périodiques permettant aux terminaux de spécifier la taille de leurs données. L’accès au canal se fait

grâce à l’attribution des opportunités de transmission périodiques par la station de base.

• Le service NRTPS (Non Real Time Polling Service) : Les flots NRTPS reçoivent le même service que les

flots RTPS et utilisent la même méthode d’accès (polling).

• Le service BE (Best-Effort) : Le service BE ou le service minimal concerne les flux qui ne nécessitent pas

un niveau de QoS particulier. L’accès au canal se fait grâce à la transmission de requêtes de bande

passante par le terminal (mode contention).

2.4.3.3 Mécanismes de QoS dans les réseaux Satellite

Bien que les réseaux satellite aient longtemps été dédiés aux services de diffusion, ils sont devenus

aujourd’hui une technologie complémentaire aux infrastructures terrestres. Ceci est dû à l’ajout d’une voie

22

retour (terminal utilisateur vers satellite) en 1999 grâce au standard DVB-RCS (Digital Video Broadcast –

Return Channel over Satellite). Couplée avec la voie aller (satellite vers terminal utilisateur) s’appuyant sur

la norme DVB-S2 (DVB – Satellite Second Generation), les réseaux satellite ont permis d’offrir des

services IP multimédia large bande dans les zones géographiques non couvertes ou à couverture difficile.

Un réseau d’accès Internet par satellite implique essentiellement les entités suivantes : un terminal

satellite qui se comporte comme un routeur d’accès à la voie retour pour le trafic utilisateur, et une

passerelle qui centralise l’ensemble du trafic dans le réseau satellite et établit l’interconnexion avec les

réseaux terrestres. Cette passerelle comporte souvent une deuxième fonction, à savoir celle de l’entité

NCC (Network Control Center) qui consiste à gérer les ressources du réseau satellite.

Dans un système satellite, la méthode d’accès et la gestion de la QoS sont différentes entre la voie

aller et la voie retour. Sur la voie aller, la passerelle centralise l’ensemble des données et la signalisation,

occupant ainsi toute la largeur de bande offerte sur la voie aller. Sur la voie retour, le point d’entrée est

distribué entre plusieurs terminaux Satellite dont l’accès aux ressources est contrôlé par l’algorithme

DAMA (Demand Assignment Multiple Access). En effet, sur cette voie retour, la norme DVB-RCS

propose un mécanisme de résolution des contentions d’accès entre les différents terminaux Satellite

voulant accéder simultanément au lien retour du satellite. Il s’agit d’utiliser la méthode MF-TDMA (Multi

Frequency Time Division Multiple Access) qui se base sur une division fréquentielle où chaque porteuse

est divisée en « supertrames », puis en unités temporelles de durée fixe appelés « timeslots ». Ce sont ces

timeslots qui sont utilisés par les terminaux Satellite afin de transmettre leurs donnés.

Afin de permettre une allocation dynamique de la bande passante, des techniques d’allocation à la

demande (BoD : Bandwidth on Demand) sont introduites dans le standard DVB-RCS. En effet, le

protocole DAMA permet aux terminaux satellite de demander la « capacité d’émission » auprès du NCC.

Ceci est basée sur un modèle client/serveur où un client DAMA, installé au niveau d’un terminal satellite,

transmet des requêtes de capacité vers le serveur DAMA, se trouvant au sein du NCC, afin de réserver des

timeslots pendant lesquels le terminal satellite pourra émettre sur la voie retour. Le standard DVB-RCS

définit également des classes de trafic au niveau MAC qui peuvent être implémentées au sein du terminal

satellite par des files d’émission MAC distinctes. Ces classes sont au nombre de quatre : la classe RT (Real

Time) dédiée aux applications temps réel, la classe VR-RT (Variable Rate) correspondant au trafic sensible

au débit variable, la classe VR-JT dédiée au trafic tolérant à la gigue et la classe JT (Jitter Tolerant) pour le

reste du trafic.

Synthèse : Après avoir rappelé les mécanismes de QoS mis en place dans les réseaux IP et dans certain

types de réseau d’accès, nous allons nous focaliser sur les mécanismes permettant d’offrir des garanties en

matière de QoS dans un environnement de réseaux de nouvelle génération.

2.4.4 La QoS dans les réseaux NGN

Afin de surmonter l’hétérogénéité des technologies de chaque domaine et afin d’offrir des services

globaux avec une QoS homogène de bout en bout, le modèle de QoS dans les réseaux NGN doit intégrer:

• Une décomposition horizontale spatiale en différents niveaux hiérarchiques de description des

services regroupés en deux plans principaux « Service » et « Transport »

23

• Une décomposition spatiale verticale en plusieurs zones : Terminal Utilisateur, Réseau Utilisateur,

Réseau d’accès et Réseau de cœur

Dans les réseaux NGN, on note également que plusieurs modèles de réservation de QoS sont

disponibles en fonction des capacités du terminal utilisateur et des équipements supportés par les

opérateurs de service et de réseau :

• Un modèle où le fournisseur de service prend en charge la réservation de ressource auprès des

opérateurs réseau

• Un modèle où l’utilisateur, après l’autorisation préalable du fournisseur de service, réserve lui-même

ses ressources auprès de l’opérateur de réseau à travers un protocole de réservation de ressource de

bout en bout (e.g. signalisation NSIS (Next Step In Signaling) de l’IETF)

• Un modèle où l’opérateur de réseau prend en charge la propagation d’opérateur en opérateur de la

signalisation des besoins applicatifs d’une session.

La Figure 2-6 expose une vue d’ensemble simplifiée de l’ensemble des architectures de QoS

proposées par l’ITU, l’ETSI, 3GPP [IST 04].

Figure 2-6 : Architecture de QoS dans les réseaux NGN

Le point commun de ces architectures est de décomposer le plan de « Transport » en deux couches

de gestion des ressources : la couche NTI (Network Technology Independant) gérée par le SN (SLS

Negotiator) afin de pouvoir offrir au client et au fournisseur de services des interfaces génériques

masquant l’hétérogénéité des réseaux et des politiques de QoS sous-jacentes, et la couche NTD (Network

Technology Dependant) gérée par le NC (Network Controller) qui permet une gestion des ressources par

l’opérateur de réseau optimisée pour le type de réseau concerné.

24

Le contrôle dans les réseaux NGN, initialement présenté sous forme d’une couche, est divisé en deux

parties : l’une appartenant aux opérateurs de réseau (au niveau de la couche de « Transport ») et l’autre aux

fournisseurs de services (rattaché à la couche de Service).

Le SCF (Service Control Function) constitue une couche intermédiaire permettant aux fournisseurs

de services de piloter la couche de « Transport » via une interface de négociation de « services supports »

génériques offertes par les SN.

Quant au modèle de déclenchement et de propagation de la signalisation des besoins applicatifs

exprimés en termes de QoS génériques dans l’ensemble des domaines traversés lors d’une communication

multi-domaines, cela ne rentre pas dans la portée des travaux normalisation des organismes travaillant sur

les réseaux NGN, et nous allons voir dans la section 3.3 comment cela constitue un domaine de recherche

ainsi que les différentes solutions proposées.

Généralement, les réseaux d’accès et les réseaux de transit ne mettent pas en œuvre les mêmes

protocoles de contrôle des ressources. En effet, les réseaux de transit sont généralement surdimensionnés,

leurs principales préoccupations en terme de QoS sont, d’une part, l’interfaçage entre les réseaux d’accès

et les fournisseurs de services et, d’autre part, les problématiques de signalisation multi-domaines

(négociation dynamique de SLA entre opérateurs de cœur).

2.4.5 Résumé

La qualité de service est devenue une notion incontournable dans les réseaux de nouvelle génération.

Ceci est dû non seulement aux exigences des services très gourmands en matière de QoS (IPTV, VoD,

ToIP, etc.), mais aussi à la variété des besoins des différents services en termes de QoS. La gestion de la

QoS dans les réseaux NGN s’inspire grandement des mécanismes définis pour la gestion de la QoS dans

les réseaux IP. La nature de l’architecture des réseaux NGN et le changement fréquent des besoins de

QoS dans un tel environnement nécessitent une gestion dynamique de ces aspects qui n’est possible

qu’avec l’utilisation de protocoles de signalisation. Cette signalisation ainsi que les protocoles qui

permettent de l’assurer seront détaillés dans la section 3.3.2. Mais avant cela nous allons, dans ce qui suit,

introduire une autre notion qui n’est pas d’une moindre importance dans les réseaux NGN : la sécurité.

2.5 La sécurité

Les réseaux NGN utilisent essentiellement IP pour le transport des différents services qu’ils

fournissent. Etant donné qu’IP n’offre aucune sécurité par défaut, les services transportés par les réseaux

NGN peuvent avoir besoin de garanties en matière de sécurité. Cette sécurité devient même indispensable

du fait que les utilisateurs se connectent de plus en plus via des réseaux sans fil fondés sur des média

ouverts. Afin de pallier aux failles de sécurité et de résister aux attaques malveillantes, le transport des

données doit être sécurisé de bout en bout. Aujourd’hui, un grand nombre de protocoles de sécurisation

des services (SSL/TLS, DTLS, IPSec, RADIUS, etc.) est disponible, et la sécurité peut être implémentée à

divers niveaux de la pile protocolaire des services.

Dans cette partie, nous introduisons les menaces de sécurité des communications avant de décrire les

services de sécurité qui permettent de protéger les services transportés sur les réseaux IP. Ensuite, nous

présentons quelques notions de cryptographie. Ces notions sont nécessaires pour comprendre les

25

protocoles et les mécanismes de sécurité que nous détaillons dans la section réservée à la sécurité dans les

réseaux IP. Puis, nous décrivons des mécanismes de sécurité proposés pour protéger certains types de

réseau d’accès. Dans la dernière section de cette partie, nous décrivons comment la sécurité peut être

fournie aux services offerts par les réseaux de nouvelle génération.

2.5.1 Attaques, services et opérations cryptographiques

Nous pouvons distinguer deux sortes d’attaques qui peuvent menacer la sécurité des

communications : les attaques passives et les attaques actives [STA 06].

2.5.1.1 Attaques de sécurité

2.5.1.1.1 Les attaques passives

Le but de ce genre d’attaque est d’obtenir des informations qui ont été transmises sur le réseau. Ces

attaques sont au nombre de deux :

• La capture de contenu des messages : C’est une attaque portée à la confidentialité des communications. Il

peut s’agir d’une tierce partie non autorisée qui accède aux données échangées sur le réseau.

• L’analyse de trafic : C’est une attaque plus subtile que la première. Supposons que le contenu des

messages échangés soit protégé contre « la capture de contenu des messages » en mettant en place, par

exemple, un processus de chiffrement. En observant les entêtes des messages échangés ainsi que leur

longueur et leur fréquence, une tierce partie peut déterminer l’identité des systèmes communicants et

deviner la nature de la communication.

Les attaques passives sont très difficiles à détecter parce qu’elles ne causent aucune altération des

données échangées sur le réseau.

2.5.1.1.2 Les attaques actives

Les attaques actives impliquent des modifications dans le flot des données ou la création d’un faux

flot. Ce type d’attaque peut regrouper quatre catégories :

• La mascarade : C’est une attaque qui se produit lorsqu’une entité prétend être une autre entité. Une

mascarade inclut toujours l’une des autres formes d’attaques actives.

• Le rejeu : Cette attaque consiste à capturer des données et à les retransmettre ultérieurement dans le

but de produire un effet non autorisé. Par exemple, un message permettant la mise à jour d’une entrée

dans une base de données peut être rejoué afin de revenir à un état antérieur différent de l’état actuel.

• La modification de messages : Il s’agit d’une attaque qui menace l’intégrité. Elle implique l’altération de

certaines parties d’un message légitime, ou le retard ou la réorganisation des messages, dans le but de

produire un effet non autorisé. Par exemple, le message « autoriser ALICE à lire le fichier confidentiel

comptes » peut être modifié en « autoriser BOB à lire le fichier confidentiel comptes ».

• Le déni de service : C’est une attaque qui menace la disponibilité du réseau. Elle vise à prévenir ou

empêcher l’utilisation normale de fonctionnalités de communication. Cela peut consister, par exemple,

à mettre hors-service le réseau en le surchargeant de messages.

26

Contrairement aux attaques passives, il est très difficile de se prémunir parfaitement des attaques

actives. Ainsi, l’objectif est de détecter ces attaques et de corriger, par la suite, tout dérangement ou retard

qu’elles peuvent causer.

Les termes : disponibilité, confidentialité, intégrité et authenticité que nous avons utilisés dans les

définitions des attaques ne sont autres que des services de sécurité. Ces services de sécurité seront définis

dans la section suivante.

2.5.1.2 Services de sécurité

Dans le contexte des communications, un service de sécurité est un service fourni grâce à un

protocole de communication entre systèmes ouverts. Il assure la sécurité adéquate des systèmes

communicants et des données échangées entre ces systèmes. Ces services peuvent être classés en six

catégories [STA 06].

2.5.1.2.1 Authentification

Ce service permet d’assurer l’authenticité d’une communication. Deux services d’authentification ont

été définis :

• Authentification du vis-à-vis : Ce service assure que les deux entités d’une association sont authentiques.

Cela revient à certifier que chaque entité est ce qu’elle dit être.

• Authentification de l’origine des données : Ce service assure que le message reçu a bien pour origine la

source dont il prétend être issu. Cela ne fournit aucune protection contre la duplication ou la

modification des messages.

2.5.1.2.2 Contrôle d’accès

Cela consiste à limiter et contrôler l’accès à des systèmes ou des applications via des interfaces de

communication. Pour cela, chaque entité doit être authentifiée afin de pouvoir adapter les droits d’accès à

chaque cas.

2.5.1.2.3 Confidentialité des données

C’est la protection des données transmises contre les attaques passives. Plusieurs niveaux de

protection sont identifiés. Le service le plus général protège toutes les données transmises entre deux

entités. Des formes restreintes de ce service peuvent également être définies, incluant la protection d’un

message entier ou même de champs spécifiques à l’intérieur d’un message. L’autre aspect de la

confidentialité est la protection du flot contre l’analyse de trafic. Cela requiert qu’un attaquant ne puisse

observer les sources et destinations, les fréquences, longueurs ou autres caractéristiques du trafic existant

sur un équipement de communication.

2.5.1.2.4 Intégrité des données

C’est la protection des données transmises contre les attaques actives. Il s’agit de détecter ce genre

d’attaques plutôt que de les prévenir. Un service d’intégrité orienté connexion permet d’assurer que les

messages échangés sont reçus aussitôt qu’envoyés sans duplication, insertion, modification, réorganisation,

répétition ou destruction. Un service d’intégrité non orienté connexion fournit une protection contre la

modification des données.

27

2.5.1.2.5 Non-répudiation

Cela permet d’empêcher n’importe quelle extrémité d’une communication (expéditeur ou receveur)

de nier avoir transmis un message. Ainsi, lorsqu’un expéditeur E envoie un message à un receveur R, ce

dernier peut prouver que le message a bien été envoyé par l’expéditeur E. De la même manière, lorsque le

receveur R reçoit un message, l’expéditeur de ce message E peut prouver que le message a bien été reçu

par le receveur R.

2.5.1.2.6 Disponibilité

La disponibilité est la possibilité d’accéder à un système et de pouvoir utiliser ses ressources par une

entité autorisée. La perte ou la réduction de cette disponibilité est une forme d’attaque. Certaines de ces

attaques entrainent des contre-mesures automatiques, telles que l’authentification et le chiffrement, alors

que d’autres nécessitent une intervention humaine pour se rétablir de la perte de disponibilité.

Les services de sécurité sont implémentés par des mécanismes et des protocoles de sécurité. Les

protocoles de sécurisation des échanges les plus utilisés seront présentés dans la section 2.5.2. Mais avant

cela, nous rappelons, dans ce qui suit (cf. section 2.5.1.3), quelques notions cryptographiques.

2.5.1.3 Notions de cryptographie

La mise en œuvre de la sécurité des communications nécessite en général l’utilisation de différents

algorithmes cryptographiques. Pour comprendre comment les différents services de sécurité sont mis en

place, nous introduisons, dans cette section, quelques notions de cryptographie [STA 06] telles que les

algorithmes de cryptage, les codes d’authentification et les fonctions de hachage.

2.5.1.3.1 Confidentialité des messages

La confidentialité des messages est assurée grâce aux algorithmes de chiffrement. Ces algorithmes

peuvent être divisés en deux classes : le chiffrement symétrique et le chiffrement à clé publique. Bien que

le chiffrement à clé publique ait été développé après le chiffrement symétrique, ce dernier reste le plus

largement répandu des deux types parce qu’il est plus robuste.

• Chiffrement symétrique

Le chiffrement symétrique est un procédé qui peut être divisé en deux phases : chiffrement et

déchiffrement. La première phase a lieu sur le système de l’expéditeur. Elle consiste à générer le texte

chiffré à partir du texte en clair en utilisant un algorithme de chiffrement et une clé secrète. Le texte

chiffré, transmis sur le canal de communication, arrive au receveur qui procède au déchiffrement. Le

déchiffrement consiste à retrouver le message originel (texte en clair) à partir du texte chiffré en utilisant

un algorithme de déchiffrement et une clé secrète.

Notons que l’algorithme de déchiffrement est essentiellement l’algorithme de chiffrement exécuté à

l’envers et que la clé utilisée par l’expéditeur dans le chiffrement est la même que celle employée par le

récepteur dans le déchiffrement, d’où la désignation du système sous le terme de symétrique. Cette clé doit

être absolument maintenue secrète et connue uniquement par l’expéditeur et le récepteur. Au contraire,

l’algorithme n’a pas besoin d’être gardé secret. Ainsi, les fabricants peuvent développer des

implémentations peu coûteuses d’algorithmes de chiffrement sous formes de circuits intégrés. Ces circuits

peuvent être incorporés dans des systèmes embarqués.

28

Il existe deux façons de traiter le texte en clair : par blocs ou par flot. Un chiffrement par bloc divise

le texte en clair en blocs de taille fixe et applique les opérations de transformation (substitution et

transposition) à chaque bloc afin de produire un bloc chiffré de la même taille. Un chiffrement par flot

traite le texte en clair sans interruption afin de produire le texte chiffré en une seule fois.

Les algorithmes de chiffrement symétrique les plus utilisés sont des chiffrements par blocs. Parmi ces

algorithmes, nous pouvons citer : DES (Data Encryption Standard), 3DES (Triple DES) et AES

(Advanced Encryption Standard).

− Data Encryption Standard : C’est l’algorithme de chiffrement le plus largement employé. Il traite des

blocs de 64 bits en utilisant une clé de taille 56 bits. L’algorithme DES est un algorithme qui présente

une grande résistance à une cryptanalyse, mais avec une clé de longueur 56 bits, la EFF (Electronic

Frontier Foundation) à annoncé en Juillet 1998 la vulnérabilité du chiffrement DES a une attaque par

force brute (recherche de clé) en utilisant une machine conçue à ce but.

− Triple DES : L’algorithme 3DES emploie trois clés et trois exécutions de l’algorithme DES. Pour le

chiffrement des données, la fonction suit une séquence : chiffrement [clé 1] --- déchiffrement [clé 2] --

- chiffrement [clé 3]. Ainsi, pour le déchiffrement, le traitement suit la séquence inverse :

déchiffrement [clé 1] --- chiffrement [clé 2] --- déchiffrement [clé 3]. La force de l’algorithme 3DES

est évidente. D’abord, parce que l’algorithme sous-jacent est DES. Ensuite, avec l’emploi d’une clé de

longueur 168 bits, les attaques par force brute sont impossibles. Les inconvénients de cet algorithme

sont sa lenteur par rapport à DES et la taille des blocs qui, comme avec DES, est égale à 64 bits.

− Advanced Encryption Standard : AES a été proposé pour remplacer 3DES. Il utilise des blocs de taille

128 bits et une clé de longueur : 128, 192 ou 256 bits.

Le bon fonctionnement du chiffrement symétrique nécessite l’utilisation d’une même clé par les deux

extrémités d’un échange de données et la protection de cette clé. Par conséquent, un système

cryptographique est fort lorsqu’il est capable de livrer une clé aux deux extrémités d’une communication,

sans permettre aux autres de la voir. La distribution des clés peut se faire de plusieurs manières :

− Une partie choisit sa clé et la livre physiquement à l’autre partie,

− Un tiers choisit la clé et la livre physiquement aux deux parties,

− Si les deux parties ont déjà une clé, alors cette clé peut être utilisée pour transmettre la nouvelle clé

d’une extrémité à l’autre,

− Si les deux parties ont chacune une connexion chiffré avec un tiers, alors ce dernier pourrait livrer la

nouvelle clé aux deux parties via les liaisons chiffrées.

• Chiffrement à clé publique

Contrairement au chiffrement symétrique, le chiffrement à clé publique est fondé sur des fonctions

mathématiques et l’utilisation de deux clés séparées. En effet, le chiffrement à clé publique repose sur une

paire de clés : une clé pour le chiffrement et une autre clé différente mais liée pour le déchiffrement. Le

principe de la cryptographie à clé publique est le suivant ; chaque extrémité d’une communication produit

une paire de clés. Une de ces deux clés est rendue publique alors que l’autre est tenue privée (elle est la

seule entité à la connaître). Si une entité A veut envoyer un message privé à une entité B alors elle chiffre

29

le message en utilisant un algorithme de chiffrement et la clé publique de B. A la réception, l’entité B peut

déchiffrer le message en utilisant un algorithme de déchiffrement et sa clé privée et elle est la seule entité à

pouvoir le faire.

Parmi les algorithmes à clés publiques les plus utilisés, nous trouvons : RSA et Diffie-Hellman.

− RSA (Rivest Shamir Adleman) : C’est un algorithme asymétrique de chiffrement à clé publique par blocs

dans lequel le texte en clair et le texte chiffré sont des entiers entre 0 et n-1 pour n quelconque. Cet

algorithme est fondé sur l’utilisation d’une paire de clés composée d’une clé publique et d’une clé

privée pour chiffrer et déchiffrer les données confidentielles. La clé publique correspond à une clé qui

est accessible par n’importe quelle personne souhaitant chiffrer des informations, la clé privée est,

quant à elle, réservée à la personne ayant créé la paire de clés.

− Diffie-Hellman : C’est un algorithme d’échange de clés. Il permet aux deux extrémités d’une

communication d’échanger une clé secrète en toute sécurité. Cette clé peut être utilisée pour le

chiffrement ultérieur des données.

− Certificats numériques : Pour qu’un algorithme de chiffrement à clé publique, comme RSA, soit

largement répandu, il faut que n’importe quel participant puisse envoyer sa clé publique à un autre

participant. De ce fait, n’importe qui peut falsifier une annonce publique, et lire ainsi des messages

destinés à une autre entité. Par exemple, un utilisateur pourrait feindre être l’utilisateur A et publier

une clé publique. Avant que l’utilisateur A ne découvre la contrefaçon, le faussaire peut lire tous les

messages chiffrés destinés à l’utilisateur A. La solution à ce problème est le certificat à clé publique.

Cela consiste en une clé publique plus un identifiant utilisateur du propriétaire de la clé, avec le bloc

entier signé par un tiers de confiance. Ce tiers de confiance peut être une autorité de certification en

qui les utilisateurs ont confiance.

− Distribution des clés secrètes avec des clés publiques : L’échange de clés Diffie-Hellman peut être utilisé dans le

partage d’une clé secrète par deux utilisateurs. Cependant, cela ne fournit aucune authentification des

deux partenaires en communication. La solution est d’utiliser les certificats à clé publique. Si A veut

communiquer avec B, alors il prépare un message qu’il chiffre en employant le chiffrement symétrique

avec une clé secrète jetable. Ensuite, la clé secrète finale est chiffrée en utilisant le chiffrement à clé

publique avec la clé publique de B. Une fois chiffrée, cette clé est attachée au message et le tout est

envoyé à B. Seule B est capable de déchiffrer la clé secrète finale. Si la clé publique de B est obtenue à

l’aide du certificat à clé publique, alors A est assuré de la validité de cette clé.

2.5.1.3.2 Authentification des messages

Comme la confidentialité, l’authentification des messages est une fonction de sécurité des

communications très importante. Ce service consiste à vérifier que le contenu des messages n’a pas été

changé et que la source est authentique. L’authentification peut être réalisé avec ou sans chiffrement.

• Authentification des messages avec chiffrement symétrique

En utilisant le chiffrement symétrique, si le message contient un code de détection d’erreur et un

numéro d’ordre, alors le récepteur est assuré qu’aucune altération n’a été faite et que le séquençage est

correct. Ceci est du au fait que seul l’expéditeur véritable est capable de chiffrer un message avec succès

pour le récepteur.

30

• Authentification des messages sans chiffrement

L’authentification des messages sans chiffrement consiste à rajouter une étiquette d’authentification

au message à émettre. Pour l’authentification des messages, nous pouvons utiliser un code MAC (Message

Authentication Code) ou une fonction de hachage à sens unique.

− Code d’authentification de message : Produit en utilisant une clé secrète, ce code est ajouté au message

d’origine. Cette technique suppose que les deux extrémités de la communication partagent une clé

secrète commune. L’expéditeur calcule le code MAC qu’il ajoute au message à transmettre. Le

récepteur exécute le même calcul sur le message reçu. Si le code MAC reçu dans le message

correspond à celui calculé par le récepteur, alors celui-ci est assuré que le message n’a pas été altéré. Si

le message contient un numéro d’ordre alors le destinataire est assuré que l’ordre est correct car un

attaquant ne peut pas changer le numéro d’ordre. Il existe plusieurs algorithmes qui permettent le

calcul des codes MAC, et notamment l’algorithme DEA.

− Fonction de hachage à sens unique : Une fonction de hachage prend en entrée un message de taille variable

et produit en sortie un résumé de taille fixe qui sera ajouté au message à transmettre. Pour assurer

l’authenticité du message, on peut utiliser une des trois méthodes suivantes : chiffrer le résumé du

message en utilisant le chiffrement symétrique, chiffrer le résumé du message en employant le

chiffrement à clé publique (signature numérique), ou calculer le résumé a partir du message plus une

valeur secrète connue des deux parties et non envoyé avec le message. Il existe plusieurs algorithmes

de hachage qui permettent le calcul de résumé du message tels que SHA-1 et MD5.

Le chiffrement à clé publique peut servir à l’authentification des messages en utilisant ce qu’on

appelle la signature numérique. Cela consiste à chiffrer le résumé d’un message en utilisant la clé privée de

l’expéditeur. Le récepteur du message peut déchiffrer le résumé en utilisant la clé publique de l’expéditeur

et vérifier que le message est bien envoyé par ce dernier.

2.5.2 La sécurité dans les réseaux IP

Après avoir classé les différents types d’attaques qui peuvent être portées aux données échangées lors

d’une communication, nous avons défini les services de sécurité qui permettent de pallier à ces attaques.

Lorsque l’échange de données implique des réseaux IP, les services de sécurité peuvent être offerts en

employant des protocoles de sécurité. En effet, plusieurs protocoles permettent de pallier aux

vulnérabilités de sécurité des communications. Les plus connus sont IPSec, SSL/TLS et DTLS. Ces

protocoles permettent d’ajouter de la sécurité de différentes manières parce qu’ils opèrent à différents

niveaux de la pile protocolaire. Le protocole IPsec permet de sécuriser les transferts de données au niveau

réseau, tandis que les protocoles SSL/TLS et DTLS opèrent au niveau de la couche « Transport » pour

protéger des services basés respectivement sur TCP et UDP. Nous réservons cette section à la description

de ces protocoles de sécurité.

2.5.2.1 Le protocole IPSec

Le protocole IPSec (IP Security Protocol) [KEN 05a] permet de protéger le trafic au niveau IP (IPv4

ou IPv6). Les services de sécurité qu’offre ce protocole sont l’intégrité, l’authentification de l’origine des

données, la protection contre le rejeu et la confidentialité. IPSec peut être implémenté sur un terminal ou

31

une passerelle de sécurité (SG : Security Gateway). Ainsi, il permet de sécuriser une communication entre

deux terminaux, deux passerelles de sécurité ou un terminal et une passerelle de sécurité. Pour fournir des

services de sécurité, IPSec utilise deux mécanismes : AH (Authentification Header) et ESP (Encapsulating

Security Payload). Le mécanisme AH [KEN 05b] offre l’intégrité et l’authentification de l’origine des

données, avec en option la protection contre le rejeu. Quant à ESP [KEN 05c], il propose le même

ensemble de services, et offre également la confidentialité. Ces deux mécanismes peuvent être appliqués

seuls ou combinés pour fournir les services de sécurité désirés. Chaque mécanisme supporte deux modes

d’utilisation : le mode transport dans lequel on protège uniquement les données transportées et le mode

tunnel qui protège en plus les entêtes IP.

2.5.2.1.1 Association de sécurité

Le concept d’association de sécurité (SA : Security Association) est fondamental à IPsec. En effet,

une SA est une « connexion » simplexe qui offre des services de sécurité au trafic associé. Chaque

mécanisme d’IPSec (AH ou ESP) se sert d’une SA pour fournir des services de sécurité. Si les deux

protections AH et ESP sont appliquées à un trafic, alors deux SA doivent être créées et coordonnées pour

effectuer la protection. Une SA est unidirectionnelle. Ainsi, pour protéger une communication

bidirectionnelle entre deux systèmes, deux SA doivent être établies.

2.5.2.1.2 Bases de données

Pour effectuer le traitement IPSec, une implémentation fait appel à trois bases de données : la base de

données de politiques de sécurité (SPD : Security Policy Database), la base de données des associations de

sécurité (SAD : Security Association Database), et la base de données d’autorisation des pairs (PAD : Peer

Authorization Database). La première indique les politiques qui déterminent le traitement à appliquer au

trafic (entrant et sortant). En effet, en se fondant sur des champs de l’entête IP appelés « sélecteurs », la

SPD permet d’associer le trafic IP à l’une des trois actions : DISCARD, BYPASS ou PROTECT. Le

premier choix se rapporte au trafic qui n’est pas autorisé à traverser la frontière IPsec. Le deuxième choix

est relatif au trafic autorisé à traverser cette frontière sans protection. La troisième action concerne le trafic

qui nécessite une protection IPSec. Pour ce trafic, la SPD doit indiquer le mécanisme de sécurité à utiliser

(AH ou ESP), le mode (transport ou tunnel), les options de services de sécurité, et les algorithmes

cryptographiques à employer. La deuxième base, la SAD, est composée d’un certain nombre d’entrées où

chacune définit les paramètres d’une SA. Elle est consultée pour savoir comment traiter chaque paquet

reçu ou à émettre. La troisième base, à savoir la PAD, fournit un lien entre la SPD et un protocole de

gestion de SA tel que le protocole IKE (Internet Key Exchange). Chaque entrée de cette base correspond

à un pair avec lequel l’entité communiquera et indique le protocole d’authentification employé (IKEv1,

IKEv2 ou KINK), la méthode utilisée (certificats ou secrets pré-partagés) et les données d’authentification

(secret pré-partagé).

2.5.2.1.3 Fonctionnement

La gestion des SA et des clefs cryptographiques peut être manuelle ou automatisée. La gestion

manuelle consiste à configurer manuellement chaque système afin de sécuriser les communications avec

d’autres systèmes. La gestion automatisée, via un protocole automatisé et standardisé, permet l’utilisation

des dispositifs de protection contre le rejeu, disponibles pour AH et ESP, et s’adapte à la création des SA à

la demande. Le protocole de gestion automatisé choisi par défaut avec IPSec est IKEv2 [KAU 05].

32

Le traitement du trafic IP, réalisé par une implémentation IPSec, dépend de la nature du tarfic

(sortant ou entrant), mais aussi des politiques de sécurité indiquées par la SPD.

Figure 2-7 : Fonctionnement du protocole IPSec

• Trafic sortant : Si le paquet sortant correspond à une SA déjà créée, alors ce paquet est traité comme

indiqué dans cette SA. Dans le cas où aucune SA ne correspond à ce paquet, une recherche dans la

SPD est effectuée (Figure 2-7). Si le résultat de cette recherche indique un traitement de type

DISCARD ou BYPASS, alors le paquet est traité en conséquence. Cependant, si le traitement indiqué

par la SPD est PROTECT alors le mécanisme principal de gestion des SA et des clefs (par exemple,

IKEv2) est appelé pour créer une SA.

• Trafic entrant : Pour le trafic adressé à cette entité, s’il n’est pas protégé avec IPSec, alors une recherche

dans la SPD est effectuée afin de déterminer si l’action est BYPASS ou DISCARD. S’il s’agit d’un

trafic protégé avec IPSec, alors il faut trouver la SA correspondante dans la SAD. Ensuite, le

traitement IPSec spécifié par cette SA est appliqué avant de vérifier que le paquet correspond bien à

cette SA. Pour le trafic non adressé à cette entité, la SPD est consultée afin de déterminer si l'action

est DISCARD ou BYPASS. S’il y a une correspondance, alors le paquet est traité comme l’indique

l’entrée. Dans le cas contraire, il est jeté.

2.5.2.1.4 Les mécanismes d’IPSec

• AH [KEN 05b] : utilisé en mode transport ou tunnel, il permet de fournir l’intégrité, l’authentification

de l’origine des données et la protection contre le rejeu. Pour assurer la protection, l’entête AH se

compose de champs tels que l’index des paramètres de sécurité (SPI : Security Parameters Index) qui

permet d’associer le paquet IP à une SA, le numéro d’ordre (SN : Sequence Number) ou numéro

d’ordre prolongé (ESN : Extended Sequence Number) qui assure la protection contre le rejeu et la

valeur de contrôle d’intégrité (ICV : Integrity Check Value).

• ESP [KEN 05c] : utilisé en mode transport ou tunnel, peut être employé pour fournir la

confidentialité, l’authentification de l’origine des données, l’intégrité et la protection contre le rejeu.

Pour protéger les données, l’entête ESP est composée d’un certain nombre de champs comme le SPI,

le numéro d’ordre, le champ optionnel ICV ou encore les données utiles (Payload Data) dont la

structure dépend du choix de l’algorithme et du mode de cryptage.

33

2.5.2.1.5 Algorithmes cryptographyques

Pour assurer l’interopérabilité entre les différentes réalisations IPSec, ces dernières doivent

implémenter un ou plusieurs algorithmes de sécurité en commun [SCH 05a]. Concernant le mécanisme

AH, une implémentation doit supporter les algorithmes HMAC-SHA1-96 et peut implémenter AES-

XCBC-MAC-96 et HMAC-MD5-96. Pour le mécanisme ESP, si des algorithmes de cryptage et d’intégrité

séparés sont utilisés, alors pour l’intégrité une entité IPSec doit supporter les algorithmes NULL et

HMAC-SHA1-96 et peut implémenter AES-XCBC-MAC-96 et HMAC-MD5-96, et pour le cryptage, elle

doit supporter l’utilisation des algorithmes NULL et TripleDES-CBC et peut permettre celle de AES-

CBC, AES-CTR et DES-CBC. Pour ESP en mode combiné, il n’y a aucun algorithme suggéré ou exigé

actuellement. Cependant l’algorithme AES-CCM peut être d’un grand intérêt dans un futur proche.

Le protocole IPSec permet de protéger le trafic au niveau IP, tout en étant transparent vis à vis des

utilisateurs et des applications. De plus, il peut fonctionner sur n’importe quel protocole de transport

(TCP ou UDP). Quant à TLS, il intervient au niveau de la couche « Transport » d’une manière

transparente, mais il est toujours associé au protocole TCP.

2.5.2.2 Le protocole TLS

Le protocole TLS (Transport Layer Security) version 1.1 [DIE 06] est basé sur le protocole SSL

(Secure Sockets Layer) version 3.0 publié par Netscape. L’objectif du protocole TLS est de fournir des

services de sécurité (confidentialité et intégrité) aux données échangées entre deux applications

communicantes. Un avantage du protocole TLS est qu’il est transparent vis-à-vis des applications.

2.5.2.2.1 Architecture du protocole TLS

Afin de sécuriser une communication de bout en bout, TLS se sert d’un protocole de transport fiable,

à savoir TCP. Le protocole TLS se compose de deux couches (Figure 2-8) : une couche inférieure formée

du protocole d’enregistrement TLS et une couche supérieure composée de trois protocoles (protocole de

poignée de main, protocole d’alerte et protocole de changement de spécification de chiffrement). Le

protocole d’enregistrement TLS permet de fournir des services de sécurité aux différents protocoles de la

couche supérieure, à savoir les trois autres protocoles de TLS et le protocole d’application. TLS peut être

utilisé avec plusieurs protocoles d’application tels que HTTP, LDAP, IMAP, POP3, etc. Mais, il est

souvent associé au protocole HTTP afin de sécuriser des interactions de type client/serveur.

Figure 2-8 : Couches protocolaires de TLS

Afin d’être efficace, le protocole TLS vise à réduire le nombre de négociations des paramètres

cryptographiques en se fondant sur deux concepts [DIE 06]:

34

• Connexion : C’est une relation entre deux extrémités d’une communication. Elle constitue

l’environnement de fonctionnement du protocole d’enregistrement TLS. Une connexion a toujours

quatre états : état actuel en lecture, état actuel en écriture, état transitoire en lecture et état transitoire

en écriture. On associe à chaque état un certain nombre de paramètres cryptographiques tels que la

méthode de compression ou encore l’algorithme de chiffrement. Les états actuels peuvent être

remplacés par les états transitoires en faisant appel au protocole de changement de spécification de

chiffrement. Chaque connexion est associée à une session.

• Session : C’est une association entre un client et un serveur. Elle est créée grâce au protocole de

poignée de main. En effet, ce dernier permet de négocier et mettre en place les paramètres

cryptographiques d’une session. Ces paramètres seront utilisés par la suite dans la sécurisation des

échanges. Plusieurs connexions peuvent être instanciées à partir d’une même session. Cela permet à

TLS d’éviter une coûteuse négociation de nouveaux paramètres de sécurité pour chaque connexion.

2.5.2.2.2 Les protocoles de TLS

Dans cette section, nous décrivons les deux couches protocolaires composant le protocole TLS.

Ainsi, la couche d’enregistrement (TLS Record Layer) permet de fournir des services de sécurité. Au

dessus, les protocoles de poignée de main (TLS Handshaking Protocols) sont employés pour permettre à

des pairs de négocier les paramètres de sécurité (algorithmes et clés), instancier une connexion,

s’authentifier et reporter les erreurs.

• Protocole d’enregistrement TLS [DIE 06] : Reposant sur TCP, la couche d’enregistrement permet de

fournir la confidentialité et l’intégrité aux protocoles du niveau supérieur. La confidentialité des

données transportées est offerte grâce à l’utilisation de la cryptographie symétrique pour le

chiffrement de ces données (DES, RC4, etc.). Les clés pour ce chiffrement sont produites pour

chaque connexion et sont basées sur un secret négocié grâce au protocole de poignée de main. Le

protocole d’enregistrement TLS peut également être employé sans chiffrement. Quand à l’intégrité,

elle est assurée pour le transport de messages à l’aide d’un code MAC. Les fonctions de hachage

(SHA, MD5, etc.) sont utilisées pour le calcul du code MAC. Le protocole d’enregistrement TLS peut

être employé sans calcul du code MAC. Le traitement des donnés au niveau de cette couche

comprend plusieurs étapes. Quand la couche d’enregistrement reçoit les données des couches plus

hautes, elle les fragmente en bloc de taille 2^14 octets. Ces blocs sont compressés (option) en utilisant

l’algorithme de compression. Ensuite, les données sont protégées en procédant au calcul du code

MAC (0, 16 ou 20 octets) et au chiffrement des données. Pour cela, un chiffrement par flot (RC4) ou

encore un chiffrement par bloc (RC2, DES, ou AES) peut être employé. Notons que le code MAC

comprend un numéro de séquence qui permettra de détecter la suppression, l’ajout ou la répétition de

messages. Dans l’autre sens, les données reçues sont déchiffrées, vérifiées, décompressées,

rassemblées, puis transmises aux protocoles de niveau plus haut.

• Protocole de changement de spécification [DIE 06] : Le rôle de ce protocole est de signaler des transitions

dans les stratégies de chiffrement. Il se compose d'un message constitué d’un simple octet de valeur 1.

Il est utilisé par les deux extrémités d’une connexion (client et serveur) pour informer le récepteur que

les messages suivants seront protégés sous la spécification de chiffrement (CipherSpec) et les clés

nouvellement négociées. Lors de la réception de ce message, la mise à jour de l’état actuel, en utilisant

35

l’état transitoire, est assurée par la couche d’enregistrement qui copie l'état transitoire (lecture) dans

l'état actuel (lecture). Du coté expéditeur, juste après l’envoi de ce message, la couche d’enregistrement

copie l'état transitoire (écriture) dans l’état actuel (écriture).

• Protocole d’alerte [DIE 06] : La gestion d'erreur dans TLS est très simple. Quand une erreur est détectée

(unexpected_message, decryption_failed, etc), la partie qui détecte cette erreur envoie un message à

l'autre partie. Ces messages informent sur le niveau de l’alerte (warning ou fatal) et donnent une

description de celle-ci. Les messages avec un niveau « fatal » causent l'arrêt immédiat de la connexion.

Dans ce cas, d'autres connexions correspondant à la session peuvent continuer, mais l’identificateur

de session est invalidé, empêchant la session échouée d'être utilisée pour établir de nouvelles

connexions.

• Protocole de poignée de main [DIE 06] : Le protocole de poignée de main est employé par les deux

extrémités d’une communication afin de se mettre d’accord sur la version du protocole, choisir les

algorithmes cryptographiques, s’authentifier (optionnel), et utiliser des techniques de chiffrement à clé

publique afin de produire des secrets partagés. Les paramètres d’une session négociés via ce protocole

seront utilisés dans la création des paramètres d’une connexion qui seront à leur tour employés par le

protocole d’enregistrement dans la protection des communications. Afin de réaliser ces tâches, le

protocole de poignée de main fait appel à un certain nombre de messages tels que les messages

« Hello » ou encore les messages d’échange de clés (Figure 2-9). Comme les messages d’alerte et les

messages de changement de spécification de chiffrement, ces messages sont chiffrés et compressés

comme l’indique l’état actuel de la connexion. Le fonctionnement du protocole de poignée de main

peut être divisé en quatre phases :

- Phase 1 (établissement des dispositifs de sécurité) : Le client envoie un message ClientHello auquel le

serveur répond avec un message ServerHello. Cet échange permet de se mettre d’accord sur : la version du

protocole, l’identificateur de session, la suite de chiffrement, et la méthode de compression. De plus, deux

valeurs aléatoires sont produites et échangées qui serviront dans le calcul du secret maître.

- Phase 2 (authentification de serveur et échange de clés) : S’il doit être authentifié, le serveur envoie son

certificat (Certificate). Ensuite, il peut envoyer un message d'échange de clé (ServerKeyExchange). Une

fois le serveur authentifié, il peut demander au client son certificat (CertificateRequest). Puis, il envoie un

message ServerHelloDone, indiquant la fin de la phase « Hello Messages ».

- Phase 3 (authentification de client et échange de clés) : Le client envoie son certificat (Certificate) au serveur

si ce dernier le lui a demandé. Ensuite, le client envoie son message d'échange de clé

(ClientKeyExchange). Si le client a envoyé un certificat avec des capacités de signature, un message de

vérification de certificat signé numériquement (CertificateVerify) est envoyé pour vérifier explicitement le

certificat.

- Phase 4 (Fin) : Le client envoi un message de changement de spécification de chiffrement

(ChangeCipherSpec). Ensuite, il copie la spécification de chiffrement transitoire dans la spécification de

chiffrement actuelle, avant d’envoyer un message Finished avec les nouveaux algorithmes, clé, et secrets.

Le serveur répond en envoyant son propre message de changement de spécification de chiffrement

(ChangeCipherSpec), transfère la spécification transitoire dans la spécification actuelle, et envoie son

message Finished sous la nouvelle spécification de chiffrement.

36

Figure 2-9 : Flux de messages échangés lors d’une poignée de main TLS

Une fois la poignée de main terminée, le client et le serveur peuvent échanger des données de la

couche application. Les messages échangés entre applications sont traités par la couche d’enregistrement

en utilisant l’état actuel de la connexion.

2.5.2.2.3 Opérations cryptographiques

Afin de protéger les communications, le protocole d’enregistrement nécessite la spécification d'une

suite d’algorithmes, un secret maître, et des valeurs aléatoires (client et serveur). L’authentification, le

chiffrement, et les algorithmes de calcul du code MAC sont déterminés par la suite cryptographique

choisie par le serveur et indiquée dans son message « Hello ». L'algorithme de compression est négocié

dans les messages « Hello », et les valeurs aléatoires sont échangées également dans les messages « Hello ».

Ainsi, il ne reste que le calcul du secret maître.

• Calcul du secret maître : L’algorithme utilisé dans le calcul du secret maître à partir du secret pré-maître et

des valeurs aléatoires est le même, quelque soit la méthode utilisée dans l’échange de clés (RSA ou

Diffie-Hellman). Quand RSA est utilisé pour l’authentification du serveur et l’échange de clés, le

secret pré-maître est produit par le client, chiffré avec la clé publique du serveur, et envoyé au serveur.

Le serveur utilise sa clé privée pour déchiffrer le secret pré-maître. Les deux parties convertissent alors

le secret pré-maître en un secret maître. Quand Diffie-Hellman est utilisé dans l’échange de clés, la clé

négociée est employée comme secret pré-maître, et est convertie en secret maître.

37

• HMAC et la fonction pseudo-aléatoire : Le traitement du protocole TLS nécessite un algorithme pour le

calcul du code MAC. Dans cette opération, on utilise la construction HMAC qui peut être utilisée

avec différents algorithmes de hachage : MD5 et SHA1 (HMAC-MD5 et HMAC-SHA). La fonction

pseudo-aléatoire (PRF : Pseudo Random Function) est utilisée dans la génération des clés à partir du

secret maitre et des valeurs aléatoires.

• Exemple d’une suite de chiffrement : Une application conforme au protocole TLS doit implémenter un

certain nombre de suites cryptographiques. Ceci permet une interopérabilité entre les deux extrémités

d’une communication. RSA_RC4_128_MD5 est une suite de chiffrement qui indique l’utilisation du

protocole TLS avec l’algorithme RSA dans l’opération à clé publique, l’algorithme RC4 avec une clé

de 128 bits dans le chiffrement symétrique et MD5 comme algorithme de hashage permettant la

vérification des enregistrements TLS.

Le protocole TLS est l’un des protocoles les plus utilisés dans la sécurisation des communications.

C’est un protocole transparent par rapport aux applications, qui est surtout utilisé dans la sécurisation des

services comme le web et l’email (IMAP, POP). Cependant, TLS repose sur une couche de « Transport »

fiable comme TCP. Il ne peut donc pas être utilisé pour sécuriser les trafics de type datagramme. Ces

dernières années, un grand nombre de services utilisant le protocole de transport UDP a été développé.

Parmi ces services, nous trouvons des services qui se basent sur le modèle client/serveur (streaming

audio/vidéo, ToIP, jeux en ligne, etc.) qu’on préfère sécuriser au niveau de la couche « Transport ». Ainsi,

afin de permettre la protection des services basés sur UDP au niveau de la couche « Transport » du

modèle TCP/IP, une adaptation de TLS pour le trafic UDP a été spécifiée ; il s’agit du protocole DTLS.

2.5.2.3 Le protocole DTLS

Le protocole DTLS (Datagram Transport Layer Security) [RES 06] se base sur le protocole TLS afin

d’offrir les mêmes garanties de sécurité aux communications de type client/serveur fondées sur UDP. La

philosophie de la conception de DTLS est de construire « TLS sur UDP ». Le protocole TLS ne peut pas

être utilisé dans la sécurisation d’un trafic UDP car les datagrammes peuvent être perdus ou désordonnés

et TLS ne possède aucun mécanisme interne qui lui permet de résoudre ce problème de non fiabilité.

Ainsi, l’objectif de DTLS est de préserver la fiabilité sur laquelle se fonde la sécurité TLS afin de

surmonter les problèmes découlant de la non-fiabilité d’UDP, tout en opérant un minimum de

changement sur TLS.

Les problèmes créés par la non-fiabilité sont les suivants :

• En cas de chiffrement, les enregistrements (paquets) ne sont pas automatiquement décryptés. Si

l’enregistrement N n’est pas reçu, l’enregistrement N+1 ne peut pas être décrypté car le contexte

cryptographique est chainé entre les enregistrements,

• La poignée de main de TLS, qui permet de se mettre d’accord sur les paramètres de sécurité, suppose

que les messages de cette phase sont échangés de manière fiable.

Le protocole DTLS a un fonctionnement très semblable à celui de TLS. En effet, DTLS réutilise

presque tous les éléments et les mécanismes du protocole TLS, mais il prévoit un certain nombre de

changements lui permettant de fonctionner correctement avec le transport basé sur les datagrammes. Le

premier changement porte sur l’ajout explicite d’un numéro de séquence aux enregistrements DTLS afin

38

de permettre au récepteur de vérifier correctement le code MAC. Ensuite, un autre champ nommé

« epoch number » a été ajouté. Ce nombre, qui est incrémenté à chaque changement de suite de

chiffrement, est utilisé pour permettre d’utiliser la bonne suite de chiffrement avec le bon enregistrement

DTLS. Ainsi, il permet de distinguer les enregistrements ayant le même numéro de séquence mais relatif à

des suites de chiffrement différentes. Ensuite, étant donné que la poignée de main ne supporte pas la perte

ou le désordre des paquets, DTLS utilise un temporisateur de retransmission pour résoudre le problème

de perte de paquet, et attribue un numéro de séquence spécifique à chaque message de la poignée de main

afin de pouvoir traiter les messages reçus dans le bon ordre. Puis, vis-à-vis de la très grande taille des

messages de poignée de main (jusqu’à 2^24 – 1 octets), les récepteurs de ces messages doivent être

capables de réassembler les fragments et d’obtenir le message original qui a été fragmenté en plusieurs

datagrammes UDP (taille maximale est de 1500 octets). Enfin DTLS offre un service optimal de détection

de rejeu de manière optionnelle car la duplication des paquets n’est pas toujours malicieuse (erreur de

routage). Ainsi, le champ numéro de séquence, ajouté au format d’un enregistrement DTLS, permet de se

protéger contre le rejeu. Cette protection se fait grâce à un mécanisme de fenêtre de rejeu (taille minimale

de 32 et taille préférée de 64) qui est maintenue afin de vérifier le numéro de séquence. Ainsi, les

enregistrements qui sont trop vieux pour correspondre à cette fenêtre ou ceux qui sont déjà reçus

(duplication) sont tout simplement rejetés.

2.5.3 La sécurité dans les réseaux d’accès

Etant donné que les réseaux d’accès peuvent implémenter des technologies différentes, la sécurité

d’un réseau d’accès peut être offerte grâce à des mécanismes spécifiques à la technologie implémentée.

Aujourd’hui, il existe plusieurs standards et mécanismes permettant de sécuriser les réseaux d’accès.

Cependant, la problématique de sécurité a été abordée de manières différentes suivant le type du réseau

d’accès [BOU 05]. En effet, pour les réseaux mobiles de deuxième et troisième génération, le principal

service de sécurité considéré était l’authentification. Quand aux réseaux Wi-Fi, tous les services de sécurité

ont été considérés et plusieurs standards de sécurisation ont été développés. Concernant le WiMax qui

constitue une technologie émergeante avec un déploiement qui n’est pas aussi large que celui des réseaux

Wi-Fi, la problématique de sécurité n’a pas encore été étudiée en détail.

Dans cette section, nous rappelons, dans un premier temps, les mécanismes de sécurité mis en œuvre

par les réseaux mobiles de deuxième et troisième génération. Dans un second temps, nous décrivons les

différents standards de sécurité élaborés dans le but de sécuriser les réseaux d’accès sans fil (Wi-Fi).

2.5.3.1 La sécurité dans les réseaux mobiles

2.5.3.1.1 La sécurité du GSM

La sécurité du GSM [QUI 04] vise à protéger l’anonymat (anonymity) et la vie privée (privacy) des

utilisateurs durant les communications. Elle a également pour objectif d’assurer que les services soient

facturés aux clients qui en ont bénéficiés.

Ainsi, le principal service de sécurité dans les réseaux GSM est de pouvoir identifier et authentifier les

utilisateurs. Pour cela, les réseaux GSM utilisent un système d’authentification basé sur une méthode de

défi/réponse. D’abord, la station de base envoie un défi de 128 bits au téléphone de l’utilisateur. Ensuite,

39

la carte SIM du téléphone utilise l’algorithme d’authentification A3 et sa clé d’authentification individuelle

afin de générer une réponse signée qu’elle retourne à la station de base. Enfin, cette dernière peut vérifier

si la valeur retournée par le téléphone correspond ou non à la valeur attendue. S’il y a correspondance

alors le téléphone est authentifié et peut bénéficier des services dont il a droit.

2.5.3.1.2 La sécurité de l’UMTS

Etant donné que les problèmes de sécurité rencontrés dans l’UMTS sont très semblables à ceux

considérés par le GSM, la sécurité de l’UMTS [BOM 02] a été fondée sur celle du GSM. Ainsi, la sécurité

de l’UMTS permet de maximiser la compatibilité entre ces deux types de réseaux mobiles. Mais, l’UMTS

fournit d’autres services de sécurité pour les réseaux d’accès mobiles de troisième génération. La sécurité

d’un réseau d’accès de type UMTS implique essentiellement la fourniture d’un accès sécurisé aux services

UMTS pour les utilisateurs et la protection de ce réseau contre les attaques qui peuvent le menacer.

Contrairement au GSM, qui nécessite l’authentification des utilisateurs auprès de la station de base,

l’UMTS fait appel à une authentification mutuelle qui implique que l’utilisateur mobile et la station de base

doivent s’authentifier mutuellement afin de se protéger contre les attaques par fausses stations de base.

Cette authentification mutuelle utilise la méthode de défi/réponse pour l’authentification de l’utilisateur et

un mécanisme de jeton de sécurité pour l’authentification du réseau. De plus, l’UMTS offre un nouveau

mécanisme pour la protection de l’intégrité des messages de signalisation échangés entre l’utilisateur

mobile et le contrôleur du réseau RNC (Radio Network Controller). Ces messages de signalisation

permettent à l’utilisateur et au réseau de négocier et de se mettre d’accord sur les algorithmes d’intégrité et

de chiffrement qui permettent de protéger les communications des utilisateurs mobiles.

2.5.3.2 La sécurité dans les réseaux Wi-Fi

Un réseau d’accès sans fil est composé d’un point d’accès et d’un ensemble de terminaux sans fil qui

y sont connectés. Les données transmises sur un réseau sans fil circulent en clair et dans toutes les

directions. Ainsi, un utilisateur malveillant peut récupérer les informations d’accès et se connecter au

réseau pour écouter n’importe quel trafic circulant dans ce réseau. Pour surmonter ce genre de problème,

plusieurs mécanismes de sécurité des réseaux sans fil ont été définis. Dans cette section, nous décrivons

les trois mécanismes proposés pour la mise en œuvre de la sécurité dans les réseaux d’accès de type Wi-Fi.

2.5.3.2.1 Le WEP (Wired Equivalent Privacy)

Le protocole WEP [CUR 06] a été créé afin de satisfaire les besoins des réseaux Wi-Fi en matière de

contrôle d’accès, d’authentification, d’intégrité et de confidentialité.

Le contrôle d’accès, permettant d’interdire l’accès aux utilisateurs non autorisés, est réalisé grâce à

deux fonctions : l’authentification qui permet de vérifier les identités des utilisateurs et l’autorisation qui

permet d’accorder les autorisations d’accès. Dans les réseaux Wi-Fi, le contrôle d’accès est réalisé grâce à :

l’identifiant du réseau (SSID : Service Set ID) qui doit être connu par tout utilisateur voulant accéder à un

réseau Wi-Fi, ou encore la liste de contrôle d’accès (ACL : Access Control List) qui permet à un point

d’accès de n’autoriser l’accès qu’aux terminaux ayant une adresse MAC dans son ACL.

L’authentification offerte par le WEP peut être réalisée suivant l’un des deux modes offerts : le mode

« Open System Authentication » ou le mode « Shared Key Authentication ». Le mode « Open System

40

Authentication » est le mode par défaut qui ne comporte aucune réelle authentification, puisque n’importe

quel terminal se connectant au réseau Wi-Fi est authentifié. Quant au mode « Shared Key

Authentication », il offre un meilleur niveau de sécurité en se fondant sur un partage de clé secrète entre le

point d’accès et le terminal sans fil. Ce partage est, lui-même, basé sur une méthode de défi/réponse.

L’intégrité des données est réalisée grâce au calcul d’une valeur de checksum ICV (Integrity Check

Value) de 32 bits. La valeur ICV est un CRC (Cyclic Redundancy Check) calculé sur l’ensemble du bloc de

données et ajouté à ce bloc afin d’être chiffré avec ces données.

La confidentialité des données transmises sur les réseaux Wi-Fi est réalisée grâce à un chiffrement

fondé sur l’algorithme de chiffrement symétrique par flux RC4 utilisant une clé secrète de 40 ou 104 bits

combinée à un vecteur d’initialisation de 24 bits.

Même si le protocole WEP a été défini afin de pallier aux failles de sécurité des réseaux Wi-Fi, ce

protocole présente des faiblesses qui ont fait de lui un protocole non fiable pour gérer la confidentialité,

l’authentification est l’intégrité des données.

La faiblesse la plus importante est liée à l’algorithme RC4. En effet, la clé utilisée, qui avait une taille

de 40 bits et a évolué vers 104 bits avec le standard WEP 2, ne peut toujours pas résister aux attaques par

dictionnaire. De plus, la gestion des clés n’est pas automatique, mais statique avec une seule clé secrète

partagée par tous les terminaux du réseau et le point d’accès. Une autre faiblesse du WEP provient de

l’utilisation du CRC pour le contrôle d’intégrité. En effet, un message protégé avec un CRC peut être

modifié par un tiers malveillant sans être détecté par le CRC. Le CRC est prévu pour faire de la détection

d’erreur et non pas pour le contrôle d’intégrité qui doit plutôt reposer sur des fonctions de hachage

permettant de détecter la moindre modification de données. A tout cela s’ajoute la faiblesse de

l’authentification fondée sur le mécanisme de défi/réponse permettant de vérifier si un terminal connaît

bien la clé WEP. En effet, le point d’accès envoie en clair un message à un terminal qui le chiffre avec sa

clé secrète WEP et le renvoie au point d’accès. Ensuite, ce dernier vérifie si le message chiffré correspond

bien au message attendu. Ainsi, ce mécanisme permet de récolter des pairs de messages clairs et chiffrés

qui facilitent la déduction de la clé secrète.

Il existe, à présent, des solutions offrant une meilleure protection; il s’agit des technologies WPA et

WPA2.

2.5.3.2.2 Le WPA (Wi-Fi Protected Access)

Le protocole WPA [CUR 06] a été défini afin de sécuriser le Wi-Fi et garder un maximum de

compatibilité avec les équipements sans fil existants. Il permet d’assurer le contrôle d’accès,

l’authentification, l’intégrité et la confidentialité.

Le protocole WPA utilise le standard d’authentification IEEE 802.1x [IEE 04a] afin de contrôler

l’accès aux réseaux sans fil. En effet, le 802.1x permet d’interdire l’accès au réseau pour les utilisateurs non

authentifiés. L’architecture de cette norme (802.1x) implique trois entités : l’utilisateur à authentifier

(supplicant), le point d’accès au réseau (authenticator) et un serveur d’authentification (généralement un

serveur RADIUS [RIN 00]). Tant qu’il n’est pas authentifié, l’utilisateur ne peut pas accéder au réseau :

seuls les échanges liés au processus d’authentification sont relayés vers le serveur d’authentification par le

point d’accès. Ainsi, le point d’accès agit comme un simple relais passif durant la phase d’authentification,

41

mais il laisse passer le trafic des communications une fois la procédure d’authentification réalisée avec

succès. Il est important de noter que le standard IEEE 802.1x réalise les authentifications en utilisant le

protocole EAP (Extensible Authentication Protocol) [BLU 98]. Ce dernier définit quatre classes de

messages : requête, réponse, succès et échec. L’ordre dans lequel ces messages sont échangés ne dépend

que de la méthode d’authentification choisie : EAP-TLS, EAP-TTLS (Tunneled TLS), EAP-PEAP

(Protected EAP) et LEAP (Lightweight EAP). Notons également qu’il existe une autre méthode

d’authentification qui a été créée pour les réseaux sans fil des particuliers qui ne disposent pas forcément

d’un serveur RADIUS. Cette méthode s’appelle WPA-PSK (Pre-Shared Key) et a le même principe que le

WEP sauf qu’elle utilise une clé de 256 bits.

Pour assurer la confidentialité et l’intégrité des données échangées sur un réseau Wi-Fi, le WPA

utilise le protocole TKIP (Temporal Key Integrity Protocol). Ce protocole assure le chiffrement des

données en utilisant l’algorithme de chiffrement RC4 avec une clé de 128 bits. Il protège également

l’intégrité des données en ajoutant à chaque SDU (Service Data Unit) MAC une signature de 64 bits,

appelée MIC (Message Integrity Code).

La deuxième génération de la sécurité du Wi-Fi réalisée avec WPA permet d’améliorer la sécurité de

ce type de réseau. Cependant, le niveau de sécurité n’est pas suffisamment robuste parce que WPA se base

toujours sur l’algorithme RC4. Cette sécurité va énormément évoluer avec la définition de la troisième

génération de la sécurité du Wi-Fi, à savoir le WPA2.

2.5.3.2.3 Le WPA2 (ou IEEE 802.11i)

Le standard IEEE 802.11i [IEE 04b] se base sur la séparation entre l’authentification de l’utilisateur

et le chiffrement/contrôle d’intégrité des messages. De plus, cette norme définit deux architectures pour

les réseaux sans fil. D’abord, l’architecture temporaire TSN (Transition Security Network) qui supporte les

architectures antérieures, en particulier le WEP et le WPA. Cette architecture a été définie afin de

permettre aux équipements RSN et pré-RSN de coexister, permettant ainsi aux utilisateurs de mettre à

jour leurs équipements. Ensuite, la nouvelle architecture pour les réseaux sans fil, appelée RSN (Robust

Security Network), utilise : le protocole 802.1x pour l’authentification, des mécanismes de distribution de

clés, et de nouveaux protocoles pour l’intégrité et le chiffrement. A titre d’exemple, en plus de TKIP,

WPA2 définit l’utilisation du protocole CCMP (Counter-mode/Cipher block chaining Message

authentication code Protocol) qui utilise l’algorithme de chiffrement AES en mode CCM et une signature

MIC basée sur CBC-MAC.

Dans le cadre de l’architecture RSN, le protocole WPA2 introduit la notion d’association robuste

entre deux éléments d’un réseau RSN. Cette association, appelée RSNA (RSN Association), définit un

contexte de communication sécurisé qui doit s’effectuer en quatre phases :

• Phase de négociation pendant laquelle les entités se mettent d’accord sur les mécanismes de sécurité

qu’elles vont utiliser ;

• Phase d’authentification au cours de laquelle une authentification est réalisée en utilisant le protocole

IEEE 802.11i ;

• Phase de dérivation et de distribution de clés nécessaire à la protection des messages;

42

• Phase de protection de l’intégrité et de la confidentialité en procédant au chiffrement et au calcul du

MIC.

Il est clair que le protocole WEP ne garantit pas une sécurité suffisante pour les réseaux Wi-Fi.

Cependant, le WPA représente une solution de sécurité plus robuste. Cette solution est utilisée,

essentiellement, lorsque les équipements ne supportent pas CCMP (c’est-à-dire le chiffrement AES

supporté par les équipements RSN). Mais, la meilleure solution pour sécuriser les réseaux Wi-Fi reste

l’utilisation du standard IEEE 802.11i avec le protocole CCMP pour offrir l’intégrité et la confidentialité.

2.5.4 La sécurité dans les réseaux NGN

Dans le contexte des architectures NGN, le besoin de fournir des services de sécurité est toujours

d’une grande importance. L’architecture des réseaux de nouvelle génération est caractérisée par un

découpage spatial où on peut distinguer essentiellement deux parties : le réseau de cœur fondé sur IP et les

réseaux d’accès implémentant différentes technologies fondées souvent sur des média ouverts. De ce fait,

le transport des services sur les réseaux de nouvelle génération peut nécessiter la protection contre les

différentes menaces en offrant des services de sécurité comme l’authentification, l’intégrité, la

confidentialité, etc.

Etant donné que le réseau de cœur est fondé sur IP, les mécanismes de sécurité classiques comme

IPSec, TLS ou DTLS ont toujours leur place dans les architectures NGN. Par ailleurs, les réseaux d’accès

peuvent offrir des services de sécurité en mettant en place leurs propres mécanismes de sécurité. Ainsi,

dans un environnement NGN, la sécurité du transport d’un service de bout en bout peut être assurée :

grâce à la mise en place d’une sécurité de bout en bout en utilisant un seul mécanisme comme IPSec ou

TLS/DTLS, ou encore en utilisant différents mécanismes de sécurité configurés en série le long du

chemin de transport de données ; par exemple IPSec dans le cœur du réseau et WPA2 au niveau du réseau

d’accès. Notons que la sécurité peut être assurée de bout en bout grâce à IPSec ou TLS/DTLS malgré

l’utilisation d’un autre mécanisme de sécurité au niveau du réseau d’accès comme, par exemple, le

protocole WEP, WPA ou WPA2. Dans ce dernier cas de figure, on parle d’un empilement de mécanismes

de sécurité au niveau du réseau d’accès ; par exemple IPSec sur WPA2.

2.5.5 Résumé

La sécurité des services offerts dans un environnement NGN peut être assurée en utilisant plusieurs

protocoles et mécanismes. Cette sécurité peut être offerte au niveau d’une couche du modèle TCP/IP

(« Application », « Transport », « Réseau », ou même « Liaison de données ») ou même au niveau de

plusieurs couches à la fois (par exemple TLS sur IPSec). Les protocoles les plus utilisés dans la

sécurisation des services sont IPSec et TLS/DTLS parce qu’il s’agit de protocoles robustes et fiables qui

sont transparents vis-à-vis du type du service sécurisé. Malgré la grande similarité entre les services de

sécurité offerts par IPSec et TLS/DTLS, IPsec peut être considéré comme une solution universelle. En

effet, IPSec peut fonctionner avec n’importe quelle application telles que le web, le mail, le transfert de

fichier, la téléphonie sur IP et d’autres applications client/serveur. Il offre, également, plus de sécurité ;

d’une part, il permet de sécuriser plus d’informations que TLS ou DTLS, d’autre part, il utilise des

techniques tels que les tunnels qui permettent de garder complètement secrètes des informations telles que

l’identité de l’expéditeur et du récepteur. Notons, également, qu’il existe d’autres mécanismes permettant

43

de protéger les communications au niveau applicatif. Il s’agit de mécanismes spécifiques aux applications

qui sont intégrés dans l’implémentation de ces applications.

Garantir un certain niveau de sécurité pour les services offerts par les réseaux NGN constitue l’une

des principales préoccupations des fournisseurs de services. En plus de la QoS et de la sécurité, la garantie

de la mobilité des consommateurs de services fait partie des priorités des architectures NGN.

2.6 La mobilité

Comme nous l’avons mentionné dans la première partie de ce chapitre, le développement des réseaux

sans fil et la diversité des réseaux d’accès qui sont actuellement déployés un peu partout, a habitué les

différents utilisateurs à la mobilité. L’objectif de la mobilité est de permettre à un utilisateur d’être

connecté de n’importe où, avec n’importe quel type de terminal. Par définition, un utilisateur mobile est

un utilisateur qui est en déplacement, d’où la possibilité de changer de réseau d’accès.

La mobilité des utilisateurs peut être assurée à différents niveaux de la pile protocolaire TCP/IP. Elle

peut être fournie au niveau de : la couche application, la couche « Transport », la couche « Réseau » ou

encore la couche « Liaison de données ». En effet, plusieurs organismes se sont intéressés à la mobilité ; ce

qui a permis de définir plusieurs standards et protocoles. Parmi ces standards, nous trouvons le protocole

MIP (Mobile IP ou IP mobility) qui représente l’un des protocoles les plus connus dans la gestion de la

mobilité des utilisateurs. De plus, nous avons le standard IEEE 802.21 qui propose de gérer la mobilité au

niveau des couches basses en accélérant la procédure de changement de réseau. Il existe, également,

d’autres architectures permettant la gestion de la mobilité à d’autres niveaux comme le niveau application

(une solution basée sur SIP) ou le niveau « Transport » (Mobile TCP, Mobile UDP, etc.).

Dans cette partie, nous rappelons, tout d’abord, l’architecture du protocole MIP. Ensuite, nous

décrivons quelques architectures qui proposent de gérer la mobilité au niveau « Transport » et

« Application ». Enfin, nous présentons le nouveau standard IEEE 802.21 qui permet d’accélérer

efficacement les changements de réseaux en opérant au niveau des couches basses (essentiellement la

couche 2 du modèle OSI).

2.6.1 Mobilité au niveau « Réseau »

La mobilité des utilisateurs peut poser quelques problèmes qui empêchent d’assurer la continuité de

service. En effet, un terminal qui est connecté à un réseau, doit avoir une adresse IP qui ne dépend que de

ce réseau. Ainsi, en changeant de réseau d’accès l’adresse IP de ce terminal doit changer et cette connexion

est donc forcément coupée. Afin de résoudre ce problème un groupe de travail de l’IETF a été chargé de

proposer une solution pour gérer la mobilité dans les environnements fondés sur IP. La solution proposée

par ce groupe de travail est le protocole IP Mobile (MIP : Mobile IP) qui permet aux terminaux mobiles

de changer de point d’accès à l’Internet sans changer d’adresse IP. Ainsi la gestion de la mobilité au niveau

« Réseau » est basée sur le maintien d’une adresse IP permanente.

Le protocole IP Mobile a été créé afin de répondre à des besoins bien précis :

• Un mobile doit être capable de communiquer avec d’autres équipements après avoir changé son point

d’attachement sur l’Internet ;

44

• Un mobile doit être capable de communiquer grâce uniquement à son adresse IP principale,

indépendamment de sa localisation sur l’Internet ;

• Un mobile doit pouvoir communiquer avec un autre équipement, sans que celui-ci implémente le

protocole Mobile IP.

2.6.1.1 Fonctionnement de MIP

L’objectif du protocole MIP est de rendre joignable à tout moment un nœud mobile. Ce nœud

mobile peut changer de point d’attachement sur Internet. Ainsi, pour maintenir les communications en

cours, l’idée est de donner la possibilité à un nœud mobile d’utiliser deux adresses IP : une adresse

principale qui permet d’identifier le mobile de manière unique, quelque soit le réseau auquel il est

connecté, et une adresse mobile qui change à chaque point de connexion.

Le fonctionnement du protocole IP Mobile implique les acteurs suivants [PER 02] :

• Le terminal mobile (MN : Mobile Node), celui-ci peut changer de point d’attachement ;

• Le correspondant qui dialogue avec le terminal mobile, il peut être fixe ou mobile ;

• Un routeur situé dans le réseau du mobile appelé agent mère (HA : Home Agent);

• Un routeur situé dans le réseau visité par le mobile, appelé agent relais (FA : Foreign Agent), il est

utilisé uniquement dans le cas de la mobilité IPv4.

Le fonctionnement du protocole IP Mobile est le suivant (Figure 2-10); l’agent mère et l’agent relais

émettent périodiquement des messages d’avertissement (Advertisement) sur l’adresse de diffusion du

réseau où ils se trouvent. Ce mécanisme de découverte d’adresse est fondé sur le standard « Router

Advertisement » spécifié dans [DEE 91]. Lorsque le mobile reçoit le message d’avertissement, il va

l’analyser afin d’identifier le réseau auquel il appartient : son réseau d’origine ou un réseau visité. Dans le

premier cas, le mobile peut se comporter comme un terminal fixe. Dans l’autre cas, le mobile est sur un

réseau visité et doit obtenir une adresse temporaire. Cette adresse sera, soit l’adresse de l’agent relais

obtenue à partir de son message d’avertissement, soit une adresse attribuée au mobile lui-même grâce, par

exemple, à l’utilisation du protocole DHCP (Dynamic Host Configuration Protocol) [DRO 97]. Ensuite,

le mobile procède à l’enregistrement de cette nouvelle adresse auprès de l’agent mère.

Figure 2-10 : Principe du protocole MIP

45

Quand le terminal mobile envoie sa requête vers le correspondant, le champ adresse IP source de

l’entête du paquet IP transmis ne contient pas l’adresse IP courante de ce terminal, mais plutôt l’adresse de

son agent mère. Ainsi, les paquets de la réponse qui doivent arriver au mobile sont envoyés à destination

de l’agent mère. Celui-ci va encapsuler ces paquets dans d’autres paquets qui auront pour destination

l’adresse temporaire du mobile. Si l’adresse temporaire est celle de l’agent relais, celui-ci sera chargé de

délivrer les paquets au mobile. Cette solution a l’avantage d’éviter d’allouer une nouvelle adresse IP pour le

mobile grâce au rôle de l’intermédiaire que joue l’agent relais. Dans le cas où l’adresse temporaire est celle

du mobile lui-même, les paquets sont directement adressés à ce dernier. Cette solution à l’inconvénient de

nécessiter la réservation d’un pool d’adresses pour la gestion des mobiles dans un réseau. Dans les deux

solutions proposées par le protocole MIP, l’agent mère a besoin d’encapsuler les paquets interceptés afin

de les rediriger vers le nouveau réseau visité par le mobile. On parle de la création d’un tunnel entre l’agent

mère et l’agent relais ou le mobile.

2.6.1.2 Le protocole MIPv6

Contrairement au protocole Mobile IPv4, le protocole Mobile IPv6 fait parti intégrante du protocole

IPv6. L’infrastructure ainsi que le fonctionnement du protocole MIPv6 sont très semblables à ceux de

MIPv4. Il existe, cependant, de nombreuses différences entre MIPv4 et MIPv6. Dans ce qui suit, nous ne

citons que les différences les plus importantes.

Le fonctionnement de MIPv4 présente le problème suivant. Un correspondant envoie toujours un

paquet à destination du nœud mobile vers l’agent mère de ce nœud, et ce dernier le renvoie vers l’agent

relais. La spécification du protocole MIPv6 permet de pallier à ce problème en se passant de l’agent relais.

Ainsi, MIPv6 se caractérise par l’absence d’agent relais. En effet, les paquets IPv6 sont envoyés

directement vers le nœud mobile qui possède toujours une adresse locale attribuée d’une manière unique

et temporaire. Cette adresse permet au nœud mobile de demeurer joignable à tout instant, et peut être

attribuée grâce au protocole DHCPv6 [DRO 03] ou en utilisant un mécanisme d’auto-configuration

d’adresses.

La deuxième caractéristique qui différencie MIPv6 de MIPv4 est l’optimisation du routage qui fait

parti intégrante de MIPv6, alors qu’elle ne forme qu’une extension dans MIPv4. Cette optimisation est

réalisée grâce à un système de correspondance d’adresses qui permet à un nœud mobile de s’enregistrer

auprès de ses correspondants. En effet, le correspondant reçoit de l’agent mère un message de mise à jour

de correspondance qui contient l’adresse mobile du nœud mobile. Celle-ci est alors stockée au niveau du

correspondant, qui crée ensuite un tunnel directement entre lui et le nœud mobile, évitant ainsi de passer

par l’agent mère. Au contraire d’IPv4, où les paquets doivent être encapsulés, Mobile IPv6 utilise l’entête

de routage du paquet IPv6, qui est une variation du routage source d’IPv4 (source routing), ce qui n’est

pas possible dans le cas d’IPv4 pour des raisons de sécurité et de performance.

2.6.2 Mobilité au niveau « Transport »

Après avoir décrit le fonctionnement du protocole MIP qui permet d’offrir la mobilité au niveau IP

d’une manière transparente par rapport aux couches hautes, nous présentons dans cette partie quelques

architectures permettant également d’assurer la mobilité d’une manière transparente en opérant à un autre

niveau : la couche « Transport ».

46

2.6.2.1 Le protocole I-TCP (Indirect TCP)

Il s’agit d’un protocole qui propose une solution de mobilité pour les terminaux mobiles. Ce

protocole nécessite la présence d’une passerelle sur le chemin de transport des données entre le

correspondant et le terminal mobile. L’architecture de communication permettant la mobilité en utilisant

le protocole I-TCP [BAK 95] se base sur la division du chemin de transport en deux parties : la partie

entre le correspondant et la passerelle où une connexion TCP est établie et la partie entre la passerelle et le

terminal mobile au niveau de laquelle une connexion I-TCP est créée. Ces deux connexions en série

permettent d’assurer la communication entre le terminal mobile et son correspondant. La partie TCP reste

inchangée pendant toute la durée de la communication et n’a pas besoin d’être consciente de la mobilité

du terminal mobile. Dans la partie I-TCP, lorsque le terminal mobile se déplace d’un sous-réseau à un

autre, une nouvelle connexion entre ce terminal et la passerelle est établie et l’ancienne connexion I-TCP

est ensuite remplacée par la nouvelle. La couche de « Transport » du terminal mobile doit être modifiée

afin de supporter I-TCP, mais les applications bénéficient toujours de la transparence au niveau des deux

extrémités de la communication.

2.6.2.2 Le protocole M-TCP (Mobile TCP)

C’est une version améliorée du protocole I-TCP. Le protocole M-TCP [HAA 97] est implémenté au

niveau du terminal mobile et fonctionne comme un protocole de la couche liaison permettant de

connecter ce terminal à la passerelle via un réseau sans fil. La passerelle permet de maintenir une

connexion TCP permanente avec le correspondant et redirige tous les paquets venant de ce correspondant

vers le terminal mobile. Cette redirection n’est aperçu ni par le correspondant ni par le terminal mobile.

L’amélioration réalisée avec M-TCP (par rapport à I-TCP) réside dans la diminution de la complexité du

fonctionnement au niveau de la partie sans fil de la connexion. Tout comme I-TCP, le protocole M-TCP

garantit une certaine transparence vis-à-vis des applications.

2.6.2.3 Le protocole M-UDP (Mobile UDP)

Il s’agit d’une implémentation du protocole UDP modifié dans le but de supporter la mobilité des

utilisateurs. M-UDP [BRO 96] permet de gérer la mobilité d’une manière très semblable à celle adoptée

par I-TCP et M-TCP. En effet, cette implémentation (M-UDP) se base sur le même modèle en faisant

appel à une passerelle qui permet d’assurer une connexion entre le terminal mobile et son correspondant.

Cette passerelle permet d’assurer une connexion ininterrompue entre les deux extrémités de la

communication dans un environnement mobile.

2.6.3 Mobilité au niveau « Application »

Actuellement, il existe de nombreuses études qui ont porté sur le support de la mobilité au niveau

applicatif. L’une des principales approches pour la gestion de la mobilité à ce niveau consiste à utiliser le

protocole SIP.

L’architecture permettant la gestion de la mobilité au niveau applicatif en utilisant le protocole SIP

[SCH 00] décrit comment SIP peut assurer la gestion de la mobilité des terminaux. Elle indique également

les situations pour lesquelles l’utilisation du protocole MIP est préférée pour la gestion de la mobilité des

utilisateurs. Cette architecture, décrite dans [WED 99], propose d’assurer la mobilité au niveau applicatif

pour les communications de type temps réel en utilisant l’agent mère pour effectuer la recherche de

47

l’emplacement du mobile ou pour permettre à SIP de rediriger les invitations (messages INIVITE) à

l’adresse mère du terminal mobile.

Par ailleurs, dans [DUT 04], les auteurs ont introduit au niveau applicatif des techniques pour

accélérer la procédure de changement de réseau pour des services multimédia temps réel (basés sur

RTP/UDP) dans un environnement de signalisation SIP. Ces techniques sont basées sur les composantes

du standard SIP à savoir les agents et les proxys SIP qui, généralement, participent à créer et à supprimer

les sessions multimédia entre les terminaux mobiles.

2.6.4 Mobilité au niveau « Liaison de données »

Dans cette partie, nous détaillons l’architecture et le fonctionnement du standard IEEE 802.21, parce

qu’il s’agit d’une solution permettant d’effectuer des changements de réseaux entre de différents types de

technologies d’accès tout en garantissant la continuité du service.

L’organisme de standardisation IEEE (IEEE Computer Society) a commencé à travailler sur la

norme IEEE 802.21 appelée également MIH (Media Independant Handover) afin de définir un standard

qui permette de répondre aux besoins actuels de mobilité. En effet, l’objectif de ce groupe de travail est de

définir un standard qui permet de fournir à la couche de liaison une intelligence générique

indépendamment des caractéristiques du terminal mobile ou des réseaux d’accès. Ceci permettra

d’optimiser et d’accélérer le handover entre les réseaux hétérogènes IEEE 802 et les réseaux de troisième

génération qui sont en pleine expansion et de faciliter le handover entre ces réseaux et les réseaux

cellulaires. Il existe, également, des travaux autour du MIH [SAL 07] qui proposent d’introduire une

composante satellitaire dans l’architecture du MIH afin de permettre l’intégration des réseaux d’accès par

satellite dans les réseaux entre lesquels ce standard permet de réaliser des handovers.

La norme IEEE 802.21 [IEE 08] spécifie le handover pour les utilisateurs mobiles et stationnaires.

Pour les utilisateurs mobiles, les handovers peuvent se produire quand les états de lien sans fil changent en

raison du mouvement des utilisateurs. Pour les utilisateurs stationnaires, les handovers deviennent

imminents lorsque l’environnement des réseaux disponibles change, rendant un réseau plus attrayant

qu’un autre.

Le changement de réseau (handover vertical ou horizontal) est initié par le terminal, tandis que la

décision relative à ce changement implique, également, les infrastructures réseau qui disposent

d’importantes informations sur les réseaux disponibles.

2.6.4.1 Architecture du MIH

Le réseau global peut inclure des cellules de tailles différentes, comme celles de type IEEE 802.15,

IEEE 802.11, IEEE 802.16, 3GPP, et 3GPP2, avec chevauchement de couverture. La norme IEEE

802.21 permet aux terminaux mobiles de choisir le réseau le mieux adapté et de s’y connecter. Le

processus de changement de réseau peut être lancé, suite à des rapports de mesures fournis par les

couches inférieures du terminal, tels que la qualité du signal, les différences de temps de synchronisation,

et les taux d’erreur de transmission, etc.

La norme 802.21 [IEE 08] définit un cadre de travail qui permet la continuité de service lors des

transitions d’un nœud mobile entre technologies hétérogènes de la couche « liaison ». Ce cadre se fonde

48

sur la présence d’une pile protocolaire pour la gestion de la mobilité dans les terminaux et les éléments de

réseau qui supportent les handovers (Figure 2-11). Cette pile protocolaire définit un ensemble de

fonctions assurées grâce à une entité logique appelée le MIHF (MIH Function) [IEE 08]. La Figure 2-11

montre le placement du MIHF dans la pile protocolaire d’un terminal mobile possédant de multiples

interfaces. Le MIHF fournit trois types de services (voir section 2.6.4.2) qui permettent aux utilisateurs : la

découverte et le choix de réseau d’accès, le maintien de la continuité de service, la conservation de la durée

de vie de la batterie.

• Découverte et choix du réseau d’accès : le choix du réseau est le processus par lequel un nœud mobile choisit

un réseau d’accès pour établir la connectivité. Ce choix peut se baser sur divers critères tels que la QoS

exigée, le coût, les préférences de l’utilisateur, ou les politiques de l’opérateur réseau. Cette norme

définit les informations qui permettent la découverte des réseaux (type, identificateur, disponibilité,

qualité, sécurité, etc.) et spécifie les moyens permettant aux utilisateurs d’obtenir ces informations afin

de permettre un choix efficace du réseau d’accès.

• Continuité de service : La continuité de service est définie comme la continuation du service pendant et

après le changement de réseau sans avoir besoin de l’intervention de l’utilisateur pour rétablir le

service. La norme permet de maintenir la continuité de service lors du changement de réseau d’accès.

Ceci est possible en réduisant les aspects tels que la perte de données et la durée de la perte de

connectivité pendant le changement de réseau. Par exemple, lors d’un changement de réseau pendant

un appel téléphonique, les procédures de handover doivent pouvoir être exécutées de manière à ce

que n’importe quelle interruption perceptible pour la conversation, soit réduite au maximum.

• Gestion d’énergie : Cette norme permet de réduire au maximum la puissance consommée par les

terminaux mobiles dans la découverte des réseaux sans fil (802.11, 802.16 et réseaux 3GPP) en évitant

l’activation de multiples radios et/ou le balayage excessif des radios.

Figure 2-11 : Architecture du standard IEEE 802.21 [IEE 08]

2.6.4.2 Les services MIH

La norme définit une entité logique appelée le MIHF (MIH Function) [IEE 08] qui permet à travers

les trois services qu’elle fournit (événement, commande et information) de faciliter les handovers entre les

réseaux hétérogènes et d’apporter l’intelligence nécessaire à l’entité qui doit sélectionner le réseau d’accès.

49

2.6.4.2.1 Le service d’évènement (MIES)

Ce service permet de détecter des changements dans les propriétés des couches inférieures (physique

et liaison), et de déclencher les évènements appropriés. Ceci permet de déterminer s’il y a besoin

d’effectuer un handover. Les évènements sont lancés à partir des interfaces et peuvent être classés en deux

types : les « MIH Event » qui sont envoyés par le MIHF à destination des couches supérieures, et les

« Link Event » qui se propagent des couches inférieures (PHY, MAC) vers le MIHF.

2.6.4.2.2 Le service de commande (MICS)

Ce service de commandes met à disposition de l’utilisateur un ensemble de commandes qui lui

permettent de commander le comportement et les propriétés du lien qui sont appropriées au handover et

de commuter entre les liens en cas de besoin. Ces commandes servent à véhiculer des décisions et sont

divisées en deux types. Les « MIH Commands » transmises par l’utilisateur en direction du MIHF qui les

exécute dès la réception. Et les « Link Commands » qui vont du MIHF vers les couches inférieures.

2.6.4.2.3 Le service d’information (MIIS)

L’utilisateur mobile doit avoir une vue d’ensemble afin de faciliter le choix du réseau et la gestion de

la mobilité dans un milieu où coexistent une multitude de technologies d’accès. Le service d’information

MIIS définit un ensemble d’éléments d’information et leurs structures afin de faciliter la description des

réseaux. Il fournit, également, des mécanismes, de type requête/réponse, qui permettent à un terminal

mobile de découvrir et de collecter des informations sur les caractéristiques et les services offerts par le

réseau d’accès utilisé et les réseaux voisins. Ces informations permettent une prise de décision plus efficace

du handover à travers les réseaux hétérogènes.

Ainsi, le MIHF permet à travers les trois services fournis (événement, commande et information) de

faciliter les handovers entre les réseaux hétérogènes et d’apporter l’intelligence nécessaire à l’entité qui doit

sélectionner le réseau d’accès.

Lors de la sélection du réseau d’accès, le MN et le réseau ont besoin d’échanger des informations sur

les réseaux existants afin de sélectionner le meilleur réseau. Ceci peut entraîner la sélection d’un réseau

différent du réseau actuel, qui peut nécessiter un handover entre des technologies différentes. Une fois le

nouveau réseau choisi et le handover initié, les protocoles de gestion de la mobilité tels que le protocole IP

Mobile (MIP : Mobile IP) peuvent être utilisés afin de s’occuper des aspects du routage des paquets tels

que la mise à jour de l’adresse et la livraison des paquets vers le nouveau réseau. Cependant, le protocole

802.21 définit des évènements déclencheurs de la couche liaison tels que « Link Going Down » et « Link

Up » qui peuvent être utilisés pour indiquer le départ et l’arrivée des terminaux mobiles sur les réseaux

d’accès. Ainsi, ces indications peuvent remplacer les protocoles de signalisation de la couche « Réseau »

(Mobile IP, SIP, etc.) qui peuvent être utilisés dans le même but, et permettent donc d’accélérer le

processus du handover.

2.6.5 Résumé

Comme nous l’avons mentionné dans la section 2.2.2, l’un des défis techniques des réseaux de

nouvelle génération est d’assurer la mobilité des utilisateurs qui doivent être capables de changer à tout

moment de réseau d’accès. C’est ainsi que la mobilité occupe une place importante dans la majorité des

50

projets de recherche actuels traitant des réseaux de nouvelle génération. Cette mobilité peut être assurée à

différentes couches du modèle TCP/IP et en utilisant plusieurs protocoles et standards parmi ceux qui ont

été proposés. Cependant, le choix du protocole ou standard à utiliser pour la gestion de la mobilité des

utilisateurs dépend essentiellement du type de la technologie d’accès implémentée et de la nature du

service consommé. En revanche, le standard MIH peut constituer une solution bien adaptée aux

environnements NGN, car il permet d’effectuer des handovers entre réseaux utilisant des technologies de

types très variées tout en assurant la continuité des services transportés.

2.7 Conclusion

Dans ce chapitre, nous avons commencé par présenter l’architecture générale des réseaux de nouvelle

génération. Les différentes caractéristiques (nouveaux services, différentes technologies d’accès, terminaux

mobiles, etc.) de ces réseaux permettent d’identifier les besoins à satisfaire pour les services fournis dans

de tels environnements. Parmi ces besoins, les plus importants sont la qualité de service, la sécurité et la

mobilité. Ainsi, nous avons défini la notion de la qualité de service et les mécanismes et modèles qui

permettent d’assurer cette qualité. Ensuite, les problèmes de sécurité ainsi que les services qui permettent

d’y remédier ont été rappelés, avant de décrire les protocoles les plus utilisés dans la sécurisation des

communications. Enfin, concernant la mobilité des utilisateurs, nous avons détaillé l’architecture de deux

protocoles qui permettent de gérer cette mobilité. Cependant, la segmentation de l’architecture NGN en

plusieurs domaines où chaque domaine est sous l’autorité d’un opérateur réseau, nécessite la négociation

d’un accord entre les différents domaines impliqués dans le transport d’un service. Cet accord peut porter

sur différents aspects tels que la qualité de service ou encore la sécurité et permet d’assurer un niveau de

service. Dans le chapitre suivant, nous allons définir la notion de niveau de service, et décrire comment se

passe la négociation de niveau de service.

51

Chapitre 3

La garantie de l’offre de service

dans les réseaux NGN

3.1 Introduction

Comme nous l’avons souligné précédemment, de nombreuses solutions ont été proposées par l’IETF

ou encore dans le cadre de plusieurs projets de recherche (Cadenus, Tequila et Internet2-Qbone, etc.) dans

le but de répondre aux besoins de QoS dans les réseaux NGN.

Actuellement, les réseaux de nouvelle génération doivent fournir aux différents utilisateurs, connectés

via divers réseaux d’accès, des services dont les besoins évoluent vers plus de QoS, de sécurité et de

mobilité. En effet, ces réseaux offrent de plus en plus de services tels que les services temps réel et les

services multimédias qui nécessitent une reconfiguration rapide et fréquente du réseau, ce qui demande

une gestion dynamique fondée sur une signalisation pouvant être implicite ou explicite. Dans le premier

cas, l’utilisateur peut injecter directement son trafic dans le réseau, alors que dans le second cas, un

protocole de signalisation doit être utilisé afin d’assurer une négociation de service dynamique permettant

une allocation des ressources en adéquation avec les besoins du trafic auprès des responsables des réseaux.

Plusieurs protocoles ont ainsi été proposés afin de négocier dynamiquement le niveau de service.

Parmi ces protocoles, nous pouvons citer SrNP [TEQ 01], COPS-SLS [NGU 04] et DSNP [CHE 02a].

Ces protocoles reposent essentiellement sur deux principes : la définition de paramètres à négocier, et la

définition d’un mécanisme (ou fonctionnement) de négociation.

Dans la suite de ce chapitre, nous commençons par rappeler la définition de la notion de niveau de

service avant de détailler les principaux paramètres qui peuvent le caractériser. Ensuite, nous présentons

quelques projets qui se rapportent à la négociation de niveau de service. Puis, nous décrivons un ensemble

de protocoles de négociation de niveau de service tout en expliquant les particularités de chacun de ces

protocoles. Enfin, nous nous intéressons, plus particulièrement, au protocole de négociation, appelé

SLNP, qui utilise les services web afin de fournir une certaine interopérabilité aux différents acteurs d’une

négociation. Nous décrivons l’architecture de ce protocole ainsi que son mode de fonctionnement, avant

de présenter un exemple d’une telle négociation.

52

3.2 Niveau de service

3.2.1 Définition

L’architecture des réseaux de nouvelle génération s’appuie sur le découpage vertical actuel en

plusieurs domaines, où chaque domaine regroupe un ensemble de nœuds qui répondent à une seule et

même autorité administrative, qu’on peut désigner sous le terme « responsable de domaine » ou encore

« gestionnaire de domaine (DM : Domain Manager) ». Selon l’offre de service, ce responsable de domaine

peut être un fournisseur de services (SP : Service Provider) ou encore un fournisseur de réseau (NP :

Network Provider).

Chaque domaine, sous l’autorité d’un fournisseur de réseau, offre des services à ses clients qui

peuvent être, eux-mêmes, des fournisseurs de services ou de simples particuliers. Un client qui veut

bénéficier de ces services doit négocier avec le responsable de domaine un accord concrétisé par un

contrat différencié, rédigé en langage "business", appelé SLA (Service Level Agreement). Ce contrat définit

le service fourni, les paramètres associés à ce service, les niveaux de service acceptables et les niveaux de

service inacceptables, les engagements du fournisseur et du client et les mesures à prendre dans des

circonstances spécifiques [DOB 96]. La définition du SLA par l’IETF est la suivante [BLA 98] : “ Un SLA

est un contrat de service, entre un client et un fournisseur de service, qui spécifie le service que le client

devrait recevoir”. Un SLA contient à la fois des paramètres et des conditions techniques et non

techniques. Les paramètres techniques constituent la partie négociable du contrat liant le fournisseur et le

client, et sont regroupés dans une spécification appelée SLS (Service Level Specification) [GRO 02] qui :

“est un ensemble de paramètres et leurs valeurs correspondantes permettant de définir le service offert à

un trafic par un domaine”. Autrement dit, un SLS permet de décrire les caractéristiques d’un trafic

correspondant à un flux donné et la nature du service offert par l’ensemble du réseau à ce flux. Il peut être

de différents types ; on peut, en effet, avoir un SLS pour les services de sécurité, un SLS pour les services

de mobilité, ou encore un SLS pour les garanties de QoS.

Le contrat de service (SLA) entre un client et un fournisseur de services contient des éléments

contractuels qui permettent de spécifier le niveau de service demandé ainsi que les mesures à prendre afin

de contrôler l’efficacité du service fourni. Ce contrat couvre des aspects comme la disponibilité, les

performances, les mesures spécifiques à prendre en cas de défaillance ou de disfonctionnement de service

et le type de facturation à mettre en œuvre. Nous pouvons distinguer trois types de SLA [MAR 01] :

• SLA client : c’est un contrat de service entre un client final et son fournisseur de services. Les

éléments techniques de ce SLA, tels que les paramètres de QoS, permettent de définir la QoS telle que

demandée par le client, c’est-à-dire la qualité de service de bout en bout ;

• SLA horizontal : c’est un contrat de service entre deux fournisseurs offrant chacun un service de même

niveau (par exemple deux domaines IP). Le fournisseur qui demande un service, agit souvent pour le

compte de ses clients. Ainsi, dans le cas d’un contrat sur la QoS par exemple, il s’agit d’un contrat sur

une QoS d’un agrégat d’un ensemble de flux ;

• SLA vertical : c’est un contrat de service entre deux fournisseurs de services dont l’offre se situe à un

niveau différent (par exemple MPLS et WDM). Dans ce cas, également, le contrat de service concerne

un agrégat d’un ensemble de flux.

53

3.2.2 Les paramètres du niveau de service

Bien que le groupe de travail DiffServ de l’IETF ait défini le SLS comme un ensemble de paramètres

techniques, il n’a pas précisé ces paramètres. En effet, un niveau de service peut porter sur la qualité de

service, la sécurité ou encore la mobilité. Ainsi, les paramètres de SLS n’ont pas été standardisés, et l’IETF

a laissé le soin de définir ces paramètres aux fournisseurs de services. Cependant, de nombreux travaux

ont été effectués jusqu’à présent dans différents projets de recherche comme Tequila [TEQ 03], COPS-

SLS [NGU 04], Eurescom [EUR 01], Internet2-Qbone [BEN 00] ou IPSig [BEN 03]. En se fondant sur

ces travaux, nous pouvons lister les paramètres types d’un SLS [GOD 03]-[CHE 02a] :

• L’identifiant du SLS (SLS ID) : Chaque SLS peut contenir un identifiant unique qui permet de le

reconnaître et de le distinguer des autres SLS. Bien que ce paramètre puisse être considéré comme

optionnel, il offre une grande souplesse lorsqu’il est introduit dans un SLS. En effet, cet identificateur

permet à un client de renégocier un attribut d'un SLS déjà établi. Quand il figure parmi les paramètres

d’un SLS, le SLS ID est attribué par le fournisseur de services.

• La portée (Scope) : La portée d’un SLS fait référence à la topologie ou la zone géographique dans

laquelle le service doit être offert. En effet, il permet de préciser les bords géographiques entre

lesquels le niveau de service (exemple : qualité de service ou encore sécurité) sera garanti au flux

circulant entre un point d’entrée (Ingress) et un point de sortie (Egress). Ainsi, cette portée se

présente, généralement, sous la forme d’un couple de routeurs (Ingress, Egress) désignant le trafic

associé au SLS. Si les points d’entrée et de sortie de la portée du SLS négocié appartiennent à un

même domaine, on parle, alors, d’une négociation intra-domaine. Dans le cas contraire, on parle d’une

négociation inter-domaines. Bien que la portée permette au réseau de prendre la bonne décision en

fonction de sa capacité à satisfaire un niveau de service, il n’est pas nécessaire que l’abonné à un SLA

connaisse la portée de son trafic.

• L’identification de flux (Flow ID) : Un flux peut être défini comme un flot distinguable de paquets de

données exigeant le même niveau de service (exemple : la même qualité de service et/ou les même

services de sécurité). La spécification de flux ou l’identification de trafic permet d’identifier les flux qui

sont concernés par le SLS en cours de négociation. En effet, un flux est identifié en spécifiant les

valeurs d’un ou plusieurs paramètres tels que les adresses IP source et destination, les numéros de port

source et destination, le protocole de transport, un code DSCP (si applicable), un label MPLS, etc. En

se basant sur ces informations, le routeur d’entrée (ingress) peut classifier les paquets et les marquer

afin que les paquets appartenant à ce flux puissent profiter du niveau de service négocié dans le SLS.

• Le profil de trafic (Traffic Profile) : la spécification du profil du trafic fournit une description du volume du

trafic des flux associés à un SLS. Les flux de trafic pourraient être caractérisés grâce à différents

attributs tel que le débit crête, le débit moyen et la taille minimale d’un paquet. En se fondant sur ces

paramètres spécifiés, les nœuds d’entrée (ingress) du réseau vérifient la conformité du trafic pour tous

les paquets qui appartiennent au flux spécifié. Seuls les paquets qui sont conformes à la spécification

du trafic (trafic « in-profile ») bénéficient des garanties du service négocié. Les paquets qui ne sont pas

conformes aux paramètres du trafic négociés (trafic « out-of-profile ») peuvent être supprimés

(dropped), lissés (shaped) ou marqués (marked). Ce test de conformité peut être réalisé en utilisant un

54

algorithme de conformité tel que l’algorithme « Token Bucket ». Le traitement spécifique des paquets

non conformes peut également être négocié en tant qu’une partie du SLS (traitement d’excès).

• La garantie de performance (Performance Guarantee) : la spécification de la garantie de performance permet

de décrire les garanties en matière de qualité de service que les flux identifiés par la spécification de

flux et conformes aux spécifications du trafic peuvent avoir au niveau de la zone géographique décrite

par la portée. Ces garanties de service (QoS) sont exprimées à l’aide de paramètres tels que le délai, la

gigue, la perte de paquets et le débit. Ces paramètres peuvent être spécifiés quantitativement ou

qualitativement. Un paramètre est dit quantitatif lorsqu’une valeur numérique définitive peut lui être

attribuée. Un paramètre qualitatif est un paramètre dont la valeur est établie en comparaison avec

d’autres valeurs et ne peut pas être quantifiée.

• Le temps de service (Service Schedule) : la spécification du temps de service ou période d’activité permet de

marquer le début et la fin de la période pendant laquelle le service négocié (qualité de service ou

sécurité) sera garantie. Ce paramètre indique quand le service sera disponible (24 heures × 7 jours,

seulement pendant les week-ends, de 8h à 16h les jours de semaine, etc.).

• Les services de sécurité (Security Services) : la spécification des services de sécurité permet d’identifier les

garanties en matière de sécurité que les flux identifiés par la spécification de flux peuvent avoir au

niveau de la zone géographique décrite par la portée. Ces services sont principalement la

confidentialité, l’authenticité (intégrité et authentification) et la protection contre le rejeu. Le niveau de

sécurité de chacun de ces services peut être spécifié quantitativement ou qualitativement.

Les paramètres que contient un SLS ne dépendent que de la nature du niveau de service exigé par

l’utilisateur. En effet, un utilisateur peut demander, par exemple, un SLA avec des contraintes de sécurité,

de qualité de service ou encore de qualité de service et de sécurité à la fois. De plus la signification d’un

paramètre dépend da la nature du SLS. Par exemple, lorsqu’il s’agit d’un SLS de QoS, la portée spécifie la

zone géographique sur laquelle les garanties en matière de QoS doivent être assurées pour le flux désigné.

Par ailleurs, dans le cas d’un SLS de sécurité, la portée spécifie la zone géographique sur laquelle les

services de sécurité décrits par le SLS doivent être fournis pour le flux identifié. Ainsi, nous pouvons

distinguer différentes classes de paramètres : les paramètres présents dans n’importe quel type de SLS

(l’identificateur du SLS, la portée, l’identification de flux, le temps de service, etc.), des paramètres relatifs

à la QoS (le trafic, la garantie de performances, etc.), des paramètres qui définissent le niveau de sécurité

(protocole de sécurité, services de sécurité, etc.) ou encore des paramètres de mobilité (degré de mobilité

vitesse, sens de déplacement, etc.).

Outre les paramètres techniques présentés ci-dessus qui définissent un SLS, un SLA peut également

inclure plusieurs paramètres non techniques comme le prix ou l’identifiant du client pour pouvoir

l’authentifier [DAR 04].

• Le prix : Le prix est un paramètre important qu’un client a besoin de négocier. Il est important de

noter que, comme beaucoup d’autres produits, le prix d’un service réseau peut fluctuer au fil du temps

et peut dépendre des conditions du réseau. Par exemple, sous des conditions de scénario de

congestion, le fournisseur de services peut demander un prix très important pour les services premium

afin de faire baisser la demande, alors que sous des charges légères, le même service pourrait être

offert à un prix très réduit afin de faire augmenter la demande et, par la suite, l’utilisation du réseau.

55

• Les capacités de réseaux et de terminaux : Le SLA pourrait contenir une liste des terminaux (téléphones

portables, PDA, ordinateurs portables, ordinateurs, etc.) avec lequel un client est susceptible de se

connecter au réseau. Cela peut permettre au réseau d’estimer le niveau des ressources que ce client

devra probablement négocier. Ceci pourrait permettre au réseau de mieux juger la recevabilité des

SLA des autres clients. De même, le SLA peut indiquer la liste des technologies d’accès (GPRS,

UMTS, Wi-Fi, câble Ethernet, etc.) à la disposition d’un client afin d’avoir une idée sur les ressources

que le client devra probablement réserver.

3.2.3 Résumé

Comme nous l’avons mentionné auparavant, ces paramètres ont été spécifiés dans le cadre de

nombreux projets de recherche. Dans ce qui suit, nous présentons quelques travaux qui ont porté sur la

négociation de niveau de service de bout en bout.

3.3 Négociation de niveau de service

3.3.1 Projets de recherche traitant de la négociation

Dans cette partie, nous décrivons les plus importants projets de recherche qui se sont intéressés à

l’offre de service dans les réseaux fondés sur IP. Les principaux apports de ces projets résident dans la

définition d’architectures qui permettent de garantir un niveau de service en mettant en œuvre des

mécanismes de négociation dynamique. Le but principal des ces mécanismes est de permettre

l’établissement d’un accord ou d’un consensus sur un niveau de service qui doit être compris par les

différentes composantes des architectures proposées.

3.3.1.1 Le projet TEQUILA

Le projet européen TEQUILA (Traffic Engineering for QUality of service in the Internet at LArge)

[TEQ 04] avait pour objectif principal la spécification et le développement d’une architecture globale et

des techniques associées afin de permettre de fournir une qualité de service de bout en bout dans les

réseaux IP fondés sur le modèle de qualité de service DiffServ. Ce projet traitait de l’offre de service ainsi

que des aspects de la gestion des ressources. Le projet TEQUILA s’est concentré sur la définition des

services nécessitant une connectivité IP et sur les aspects liés à ces services tels que l’approvisionnement

en matière de qualité de service. Le projet TEQUILA a pris l’initiative de proposer à l’IETF un modèle

pour la sémantique et les paramètres d’un SLS [TEQ 03].

Les paramètres de SLS définis par TEQUILA pour tous les types de services, couvrent : la portée

géographique, l’identification de flux, la description de trafic, le traitement d’excès, le temps de service et

les paramètres de performance.

3.3.1.2 Le projet AQUILA

Le projet de recherche européen AQUILA (Adaptive Resource Control for QoS Using an IPbased

Layered Architecture) avait pour but de définir, évaluer et mettre en œuvre une architecture améliorée

pour la qualité de service dans l’Internet. Il existe un ensemble de points communs entre les approches

56

AQUILA [SAL 00] et TEQUILA. La principale différence réside, par contre, dans l’introduction de la

notion des SLS prédéfinis (fondés sur une définition générique) par le consortium AQUILA. Du point de

vue des applications, un SLS supporte un large éventail d’applications ayant des comportements de

communication similaires et donc les mêmes besoins en matière de qualité de service, tels que le delai, le

débit, le taux de perte, etc. Quatre types de SLS prédéfinis ont été spécifiés par AQUILA : « Premium

CBR », « Premium VBR », « Premium Multimedia » et « Premium Mission Critical ».

3.3.1.3 Le projet EURESCOM

Le projet de recherche européen EURESCOM P1008 [EUR 01] avait pour objectif de définir une

architecture qui permet la gestion des interconnexions et des services dans des réseaux basés sur IP, tout

en respectant la qualité de service. Ce projet s’est focalisé sur les services de bout en bout pour lesquels la

qualité de service doit être spécifiée. Il spécifie le contenu de composantes d'un modèle de SLS qui sont :

l’identification, la période de validité, la topologie, la portée, l'identification de flux, le profil de trafic, la

qualité de service, le traitement d’excès, la fiabilité, la comptabilité (accounting), la surveillance

(monitoring). Le projet EURESCOM étend le modèle du SLS proposé par TEQUILA en ajoutant de

nouveaux blocs tels que la topologie, la surveillance, la comptabilité et l’identification.

Ce modèle de SLS est utilisé, non seulement, pour le provisionnement, mais aussi pour la facturation

et la partie assurance. Le bloc de monitoring décrit les paramètres de QoS

qui doivent être surveillés et signalés (reported). Il indique quels sont ces paramètres (parmi la liste des

quatre paramètres de performance) à surveiller et à signaler et avec quelle fréquence cela doit se faire.

3.3.1.4 Le projet MESCAL

Le projet européen MESCAL (Management of End-to-end Quality of Service Across the Internet at

Large) [MES 05] avait pour objectif de définir une architecture pour l’offre de services avec des garanties

de qualité de service. L’architecture proposée par ce projet [MES 03] se compose de cinq groupes

fonctionnels. Parmi ces groupes, nous trouvons le groupe « SLS Management » qui s’est occupé de la

négociation de niveau de service. Cette négociation s’appuie sur le modèle Diffserv tout en adoptant une

solution en cascade (non centralisée) pour une négociation inter-domaines qui se base sur une extension

de BGP, à savoir iBGP.

Cette négociation se fonde sur l’utilisation de SLS prédéfinis. Ainsi, trois types de SLS prédéfinis ont

été proposés dans le cadre de ce projet [MES 04]:

• Les p-SLS entre fournisseurs de services, qui sont les moins dynamiques puisqu’ils portent sur des

agrégats de flux et sont négociés en amont de l’offre de service,

• Les c-SLS entre clients et fournisseurs de services qui sont négociés à la demande et sont ainsi plus

dynamiques,

• Les m-SLS qui correspondent à des SLS multicast.

Le modèle de QoS qui a été retenu par MESCAL est le modèle DiffServ. Ainsi, après l’établissement

des contrats de services, les SLS seront associés à des classes de services (QC : QoS Class) grâce au

champ DSCP (DiffServ Code Point). Notons que le protocole de négociation adopté par MESCAL est le

protocole SrNP du projet TEQUILA [TEQ 01]. Ce protocole s’appuie sur une architecture client/serveur

57

pour la négociation de SLS entre ces deux entités. Ainsi, deux blocs ont été définis, à savoir le SLS Order

Handling et SLS Ordering [MES 04], qui correspondent respectivement au serveur et au client. Par

ailleurs, le modèle de SLS adopté est celui présenté par TEQUILA dans le draft [GOD 03] et comporte

ainsi les mêmes paramètres que ceux définis dans ce dernier.

3.3.1.5 Le projets CADENUS

Le projet européen CADENUS (Creation And Deployment of End-User Services in Premium IP

Networks) [CAD 03] portait sur la proposition d’une architecture ouverte qui permet la création, la

configuration et l’approvisionnement de services d’une manière dynamique, tout en fournissant des

garanties de qualité de service.

Cette architecture comporte des composants de médiation qui sont au nombre de quatre : le

médiateur d’accès (AM : Acces Mediator), le médiateur de services (SM : Service Mediator), le médiateur

de ressources (RM : Resource Mediator) et le contrôleur de réseau (NC : Network Controller).

Le médiateur d’accès gère l’accès des utilisateurs aux services. Il présente à l’utilisateur l’ensemble des

services disponibles et leurs descriptions, et lui permet de sélectionner, paramétrer et acquérir des services

auprès du médiateur de services. Le médiateur de service négocie avec le médiateur de réseau un SLS. Une

fois accepté, le SLS est utilisé dans la configuration du réseau par le biais du contrôleur du réseau.

Le projet CADENUS avait défini deux types de contrats :

• Les contrats « Off Line » : qui sont utilisés lors de la souscription aux services. Ces contrats sont divisés

en deux catégories : les retail-SLA (r-SLA) entre clients et fournisseurs et les wholesale-SLA (w-SLA)

entre fournisseurs.

• Les contrats « On Line » : qui sont utilisés lors de la demande de services avec des garanties de qualité de

service. Ces contrat forment ce qu’on appelle les instant-SLA (i-SLA) dont les SLS correspondants (i-

SLS) sont négociés entre le médiateur de service et le médiateur de ressources ou encore deux

médiateurs de ressources de deux fournisseurs différents.

Les i-SLS comportent les données nécessaires qui permettent d’établir un niveau de service avec des

garanties de QoS indépendamment des caractéristiques du réseau, c’est-à-dire sans se limiter à un modèle

de QoS spécifique. Les attributs des i-SLS sont inspirés de ceux définis dans le cadre du projet TEQUILA

[TEQ 01]. Dans le cadre d’une négociation inter-domaines, un i-SLS est décomposé en autant de i-SLS

que de domaines mis en jeu lors de cette négociation.

Synthèse : Les SLS définis dans le cadre de ces travaux, décrivent principalement les garanties de

qualité de service que le réseau doit fournir pour un flux ou un ensemble de flux donné. C’est sur ce SLS

de QoS que porte la négociation dans la plupart (si ce n’est pas la totalité) des protocoles de négociation

de niveau de service qui ont été proposés jusqu’à présent. En effet, nous notons que les travaux ayant

considéré des aspects autres que la QoS dans le niveau de service sont très rares. Nous pouvons citer les

projets ARCADE [ARC 07]-[YIL 03] et IPSIG [BEN 03] qui ont fait l’exception en tentant de proposer

des paramètres liés à d’autres aspects comme la sécurité ou la QoS. Dans ce qui suit, nous présentons

quelques protocoles de négociation de niveau de service.

58

3.3.2 Protocoles de négociation

Les projets présentés dans la section précédente traitent essentiellement de l’offre de service qui ne

peut être garantie que suite à l’établissement d’un accord en utilisant un protocole de négociation de

niveau de service. C’est ainsi que dans le cadre de ces projets des protocoles de négociation ont été utilisés

ou même spécifiés. Dans ce qui suit, nous décrivons un certain nombre de ces protocoles en détaillant

quelques uns afin de comprendre leurs fonctionnements, les besoins qu’ils doivent satisfaire et comment

ils y parviennent.

3.3.2.1 Le protocole RNAP

Le protocole RNAP (Resource Negotiation and Pricing Protocol) [WAN 99] a été l’un des premiers

protocoles à avoir été défini et utilisé pour faciliter la négociation dynamique de niveau de service dans les

NGI (Next Generation IP networks). Ce protocole peut être considéré comme une extension du

protocole de réservation de ressources RSVP (Resource Reservation Protocol). Une des plus importantes

caractéristiques qui distingue le protocole RNAP des autres protocoles est que, en plus de la négociation

des paramètres du SLS, ce protocole permet la négociation des prix du contrat de service. RSVP peut

fonctionner dans des environnements de négociation centralisés mais aussi distribués. De plus, il est

caractérisé par l’approche à état souple de négociation (soft state) qu’il utilise ; ce qui nécessite du client

l’initiation périodique du processus de signalisation afin d’actualiser les services déjà négociés.

3.3.2.2 Le protocole COPS-SLS

Le protocole COPS (Common Open Policy Service) [DUR 00] a été proposé par l’IETF à travers le

groupe de travail RAP (Resource Allocation Protocol) afin de permettre la gestion du réseau. Cette gestion

se base sur des politiques et implique essentiellement deux entités [YAV 00]:

• PEP (Policy Enforcement Point) : c’est l’entité où les politiques vont être appliquées,

• PDP (Policy Decision Point) : c’est l’entité qui décide de l’affectation des règles de politiques auprès du

PEP.

La nature de l’architecture de la gestion par politique ainsi que la flexibilité du protocole COPS

[NGU 03] ont été à l’origine de l’adaptation de ce protocole à la négociation de SLS. Ainsi, une extension

de COPS, à savoir COPS-SLS [NGU 04], a été définie afin de permettre une négociation de SLS hors-

bande entre un client et un fournisseur de services ou entre deux fournisseurs de services. Cette

négociation se base sur l’architecture de gestion par politique (SLS-PEP, SLS-PDP), comme le montre la

Figure 3-1.

La procédure de négociation est réalisée en deux phases : la configuration basée sur le

« provisionning » et la négociation fondée sur l’« outsourcing ». La phase de configuration permet au

fournisseur de services d’informer le client sur la manière de demander un niveau de service. En effet,

pendant cette phase le SLS-PDP configure le SLS-PEP en lui fournissant les paramètres nécessaires pour

la négociation. Ensuite, la phase de négociation permet au client de commencer la négociation. En fait,

pendant cette phase le SLS-PEP envoie le SLS qu’il veut négocier au SLS-PDP.

Une négociation COPS-SLS peut être effectuée suivant l’un des deux modes spécifiés par ce

protocole : prédéfini ou non prédéfini. Dans le cas d’une négociation avec le mode « Prédéfini », c’est le

59

SLS-PDP qui, pendant la phase de configuration, fournit au SLS-PEP les paramètres de SLS acceptés ou

un intervalle auquel les paramètres doivent appartenir. Cependant, lorsque le mode de la négociation est

« Non Prédéfini », alors aucune contrainte n’est exigée sur les valeurs des paramètres du SLS négocié entre

le SLS-PEP et le SLS-PDP.

Figure 3-1 : Négociation de SLS avec COPS-SLS [NGU 04]

Une fois un accord obtenu entre les deux parties, le contrat est établi et les flux des utilisateurs

concernés par cet accord peuvent bénéficier du niveau de service négocié.

3.3.2.3 Le protocole PPP IPCP

Le protocole PPP (Point to Point Protocol) utilise un ensemble de protocoles de contrôle réseau

pour l’établissement et la configuration de différents protocoles de la couche réseau. Le protocole IPCP

(Internet Protocol Control Protocol) est un protocole de contrôle réseau qui s’occupe de la configuration

des modules IP dans les deux extrémités d’un lien PPP [MCG 92]. L’option SLS IPCP [DEC 00]

représente une extension du protocole IPCP proposée pour assurer la négociation des SLS entre un client

et un fournisseur de services. Ceci permet d’obtenir des garanties de service sur un lien PPP dans un

réseau utilisant Diffserv comme modèle de QoS. Pour assurer la négociation du SLS avec IPCP, quatre

types de messages ont été définis Configure-Request, Configure-Ack, Configure-Nack et Configure-

Reject. Ces messages sont traités comme des messages IPCP ordinaires. Parmi les paramètres que permet

de négocier l’option SLS IPCP, nous citons l’identification de service, la valeur du DSCP, la conformité du

trafic, les caractéristiques du trafic, la portée, la disponibilité du service et le traitement d’excès. Ces

paramètres sont transportés sous le format TLV (Type, Longueur, Valeur).

3.3.2.4 Le protocole SrNP

Le protocole SrNP (Service Negotiation Protocol) [TEQ 01] est un protocole qui a été développé par

le consortium TEQUILA [TEQ 04]. Ce projet avait défini une architecture de négociation de services

60

décrivant deux procédures d’offre de services : la souscription et l’invocation. C’est en effet dans le cadre

de la souscription aux services que le protocole SrNP (Service Negotiation Protocol) a été défini pour la

négociation des SLS. La négociation assurée par SrNP peut être réalisée entre un client et un fournisseur

ou entre deux fournisseurs de services. Ce protocole se caractérise par sa transparence par rapport au SLS

négocié ; il n’est spécifique ni à un format de SLS particulier, ni à un contexte de SLS. Il est suffisamment

général pour être appliqué pour la négociation de n’importe quel document (SLS) qui se présente sous la

forme d’un ensemble de paires attribut-valeur. Ainsi, les composantes du SLS négocié avec SrNP sont

souvent en accord avec le modèle défini par TEQUILA, mais ce dernier peut être étendu à d’autres

paramètres. L’objectif du processus de négociation est de s’entendre sur les valeurs des attributs inclus

dans le document négocié, plutôt que sur les attributs eux-mêmes.

Une négociation SrNP est un échange entre un client SrNP et un serveur SrNP qui permet d’établir

un accord, de modifier ou résilier un accord déjà établi [TEQ 03]. Ceci est réalisé grâce à un certain

nombre de messages qui ont été définis ; les messages propres aux clients (SessionInit, Proposal,

LastProposal et AcceptToHold), les messages propres aux serveurs (Revision, LastRevision,

AgreedProposal et ProposalOnHold) et les messages communs (Accept et Reject). Un exemple de

négociation montrant un échange de messages SrNP est représenté par la Figure 3-2.

Figure 3-2 : Exemple de négociation avec SrNP [TEQ 03]

En fonction de la pile protocolaire utilisée, les messages SrNP peuvent être transportés grâce à : un

codage ASCII, un codage suivant les règles de base (BER : Basic Encoding Rules), c’est-à-dire un codage

en Type, Longueur, Valeur (TLV : Type Length Value), ou un codage XML (eb-XML MS). Il est,

également, possible d’encapsuler les messages SrNP dans des protocoles largement déployés comme

RSVP (en définissant de nouveaux TLV) et COPS (en spécifiant un nouveau type de client « client-type »).

3.3.2.5 Le protocole DSNP

DSNP (Dynamic Service Negotiation Protocol) [CHE 02a] est un protocole développé par l’équipe

ITSUMO (Internet Technologies Supporting Universal Mobile Operation) de TTI (Telcordia

Technologies Inc.) et TARI (Toshiba America Research, Inc.). Contrairement à COPS-SLS, SrNP et

RNAP qui ne sont que des extensions d’autres protocoles réseau existants, DSNP a été développé

exclusivement pour la négociation dynamique de niveau de service entre un client et un fournisseur de

61

services (intra-domaine) ou entre deux fournisseurs de services (inter-domaines). Par conséquent, il s’agit

d’un protocole léger qui est mieux adapté aux dispositifs sans fil tels que les PDA et les téléphones

mobiles [CHE 02b].

Le protocole DSNP repose sur une architecture client/serveur, et utilise les messages suivant lors de

la procédure de négociation : SLS_List_Request/Response, SLS_Nego_Request/Response et

SLS_Stat_Request/Response. Parmi les paramètres que permet de négocier ce protocole, nous citons le

Scope, la Spécification du flux, la Description du trafic, la Garantie de performance et le Temps de service.

DSNP se caractérise par son indépendance vis-à-vis de l’architecture du réseau et du mode de

réservation de ressources. De plus, son architecture permet d’offrir un meilleur support pour les clients

mobiles. En effet, chaque fois qu’un client mobile négocie un niveau de service, le fournisseur de service

diffuse le profil de QoS de ce client non seulement au routeur de bord qui dessert le réseau sans fil dans

lequel l’abonné se trouve actuellement, mais aussi à ceux qui desservent les réseaux sans fil à côté de

l’emplacement actuel du client mobile. Par conséquent, lorsque ce client se déplace vers l’un des réseaux

voisins, il continue de bénéficier du niveau de service négocié sans aucune signalisation additionnelle. Un

exemple de négociation DSNP où le client mobile MS (Mobile Station) se déplace vers un nouveau réseau

est présenté dans la Figure 3-3.

Figure 3-3 : Exemple de négociation avec DSNP

Ce modèle de fonctionnement défini par DSNP, présente le QGS (QoS Global Server) comme un

PDP et le QLN (QoS Local Node) comme un PEP. Ainsi, la négociation a lieu entre le MS (Mobile

Station) et le QGS qui va configurer les QLN.

62

3.3.2.6 Le protocole QoS-NSLP

QoS-NSLP (QoS NSIS Signaling Layer Protocol) est un protocole pour la signalisation de

réservation de QoS dans l’Internet [BOS 05]. Il a été proposé par le groupe de travail NSIS [HAN 05] de

l’IETF. C’est une extension de RSVP [BRA 97a] dont le fonctionnement est très similaire à celui de

RNAP. Il utilise, également, une approche de négociation de service « soft state ». QoS-NSLP ne suppose

pas l’existence d’un système centralisé de gestion de ressources dans chaque domaine, afin de mener à bien

le processus de négociation. Ce protocole correspond mieux, ainsi, aux implémentations distribuées.

3.3.2.7 Le protocole QoS-GSLP

QoS-GSLP (QoS Generic Signaling Layer Protocol) [ANC 05] est un protocole proposé par l’ANC

(Ambient Networks Consortium) qui fait partie de la suite des protocoles GANS (Generic Ambient

Networking Signaling). Il est utilisé pour le contrôle et la négociation bilatérale des besoins de qualité de

service dans des environnements mobiles sans fil et fonctionne au dessus de la suite des protocoles NSIS

de l’IETF. Il se base sur une signalisation hors-bande (signalisation découplée), et utilise les informations

sur les schémas de mobilité et de trafic afin d’établir des SLS bien à l’avance de façon à réduire le temps de

mise en place des SLS. Ceci est particulièrement avantageux pour les clients mobiles et les environnements

dynamiques.

3.3.2.8 Le protocole QoS-SIP

Notons qu’il existe plusieurs propositions qui ont été faites afin d’attacher la signalisation SIP

(Session Initiation Protocol) aux mécanismes de gestion de QoS [SAL 02]-[CAM 02]. Une de ces

propositions, appelée Q-SIP (QoS-SIP) [SAL 02], propose de s’appuyer sur SIP pour déclencher la

réservation dynamique de ressources. Cette solution nécessite l’extension du protocole SIP [SAL 03] afin

de véhiculer les informations relatives à la QoS de bout en bout.

L’architecture de Q-SIP, implique deux clients SIP, deux proxys SIP et le réseau sous-jacent capable

de supporter la QoS (Figure 3-4). Les clients SIP utilisent la signalisation SIP standard, tandis que la

signalisation entre les proxys SIP doit être étendue afin de comprendre les paramètres de QoS. Ainsi, les

clients sont des clients SIP standard, alors que les proxys SIP sont modifiés pour supporter la QoS. Ces

proxys, appelés proxys QSIP (QoS Enabled SIP), contrôlent à la fois l’établissement de la session

multimédia et la réservation de ressources QoS auprès du réseau sous-jacent à l’aide d’une signalisation de

QoS telle que RSVP, NSIS, COPS, etc.

Le principe de fonctionnement de l’architecture Q-SIP est décrit dans la Figure 3-4. Quand le client

SIP souhaite démarrer une session SIP, il initie la procédure d’établissement en envoyant un message

INVITE à son proxy QSIP. Ce dernier en extrait quelques informations (média, codecs, ports, etc.) qui

permettent de savoir si la session à établir doit comprendre ou non des garanties de QoS. Cependant,

aucune réservation de QoS ne peut être faite car, de point de vue de la signalisation SIP, la négociation des

paramètres de la communication multimédia n’est pas terminée. Au cas où un certain niveau de QoS doit

être garanti, le proxy QSIP insère un nouvel entête SIP (QoS-Info), contenant des informations sur la

QoS à garantir, dans le message INVITE et le transmet au proxy QSIP distant. Lorsque ce dernier reçoit

ce message INVITE, contenant les extensions de QoS, il effectue les traitements relatifs à la demande de

garanties de QoS (enregistrement du niveau de QoS nécessaire, etc.) et transmet le message INVITE (sans

entête QoS-Info) au client SIP appelé. Le client appelé répond à la requête INVITE en envoyant un

63

message OK à son proxy QSIP qui dispose de toutes les informations nécessaires au lancement de la

procédure de réservation des ressources pour la communication dans le sens appelé-vers-appelant.

Ensuite, le proxy QSIP du client appelé transmet la réponse (OK) au proxy QSIP du client appelant après

avoir ajouté les informations de QoS nécessaires. Ces informations sont ajoutées même dans le cas

d’échec de la réservation de ressources, ce qui permet de laisser au proxy QSIP du client appelant la

possibilité d’effectuer la réservation de la QoS pour la communication dans le sens appelant-vers-appelé.

Quand le proxy QSIP du coté appelant reçoit le message OK, il extrait les informations de QoS, lance la

procédure de réservation de ressources et transmet le message OK au client SIP appelant. Ensuite, la

session SIP peut être établie avec ou sans support de QoS suivant les résultats des procédures de

réservation de ressources lancées au niveau des deux proxys QSIP. Quand la session se termine, toutes les

ressources réservées pour la communication doivent être libérées. Ceci se fait suite à la demande des

proxys SIP lorsqu’ils reçoivent le message BYE émis par un des clients dans la direction de l’autre client.

Figure 3-4 : Architecture QoS-SIP

3.3.3 Discussion

L’étude des protocoles de négociation nous permet d’établir une liste des caractéristiques qu’un

protocole doit satisfaire pour optimiser sa négociation. Parmi ces caractéristiques, nous pouvons citer

[SAR 06] :

• Satisfaction des besoins de négociation : le protocole doit permettre à un client de demander à son

fournisseur de services un niveau de service et à ce fournisseur d’accepter ou de rejeter la demande du

client. Il doit également permettre la modification et la résiliation d’un niveau de service déjà établi.

64

• Compatibilité avec les architectures de QoS : puisque le transport d’un service peut impliquer plusieurs

réseaux appartenant à des fournisseurs différents, le protocole de négociation de niveau de service de

bout en bout doit être compatible avec la totalité des architectures de QoS standardisées.

• Réduction des overheads protocolaires : un protocole de négociation doit minimiser les flux de signalisation.

En effet, il doit optimiser le nombre de messages envoyés lors d’une négociation, mais aussi éviter les

renégociations parfois inutiles. En effet, un client mobile qui se déplace vers un nouveau réseau ayant

suffisamment de ressources, ne doit pas renégocier le SLS déjà établi pour son service. La signalisation

consomme plusieurs ressources comme la bande passante et l’énergie, cette dernière étant considérée

comme une ressource très précieuse pour les dispositifs mobiles.

• Transparence vis-à-vis des paramètres du SLS : le but principal d’un protocole de négociation est de

négocier un SLS. Même si un consensus est établi sur les paramètres qui doivent être négociés dans un

SLS, l’IETF n’a pas encore normalisé le format d’un tel SLS. Ainsi, il est très important qu’un

protocole de négociation ne prédéfinit pas le format de SLS qu’il se propose de négocier afin de laisser

la possibilité aux utilisateurs (clients et fournisseurs) de choisir les paramètres qu’ils veulent négocier

(QoS, sécurité et/ou mobilité, etc.).

• Extension de protocoles existants : un protocole de négociation de niveau de service devrait, de préférence,

utiliser des protocoles de signalisation déjà existants. Ceci peut être justifié par le fait que plusieurs

protocoles de routage et de gestion réseau sont déjà intégrés et utilisés dans les réseaux d’aujourd’hui.

Ainsi, l’ajout d’un nouveau protocole pour la négociation de niveau de service peut compliquer

l’administration des réseaux.

D’après les caractéristiques des protocoles de négociation dynamique de niveau de service décrits

dans la section 3.3.2, ces derniers peuvent être classés en deux catégories. Tout d’abord, les protocoles qui

forment des extensions à d’autres protocoles de signalisation tels que les protocoles QoS-NSLP [BOS 05]

et COPS-SLS [NGU 04]. Ensuite, les protocoles qui ont été spécifiés pour la négociation de niveau de

service comme le protocole QoS-GSLP [ANC 05] ou encore le protocole DSNP [CHE 02b]. C’est à cette

catégorie qu’appartient le protocole SLNP qui utilise la technologie des services web. En effet, le

protocole SLNP a été spécifié afin de permettre la négociation dynamique de niveau de service dans des

environnements autonomes. Dans ce qui suit, nous détaillons les principales caractéristiques, l’architecture

et le fonctionnement de ce protocole avant de présenter un exemple de négociation qu’il permet de

réaliser.

3.4 Le protocole SLNP

La gestion de la QoS dans les réseaux IP, qui a fait l’objet de nombreux travaux de recherche, se

situait au cœur des préoccupations du projet SWAN (Self aWare mAnageNt) [SWA 06]. Ce projet, avait

pour but d’étudier et de proposer des solutions pour la gestion autonome (Self Management) des réseaux

IP offrant des garanties de niveau de service. La gestion autonome est un nouveau concept où les

éléments autonomes des réseaux sont capables de s’autogérer, sans intervention humaine, et de s’adapter

ainsi aux changements qui peuvent affecter leurs environnements. Dans le cadre de ce projet, le protocole

SLNP (Service Level Negotiation Protocol) [MBA 06b] a été spécifié afin de permettre une négociation

dynamique de QoS que nécessitent les services transportés sur les réseaux NGN.

65

Cette partie sera réservée à la description du protocole de négociation SLNP. Mais avant cela, nous

rappelons brièvement l’architecture des services web ainsi que les standards sur lesquels se base cette

technologie. En effet, le fonctionnement du protocole SLNP est fondé sur l’utilisation de la technologie

des services web. Par conséquent, le rappel de cette technologie est très utile afin de nous permettre de

mieux comprendre le principe de fonctionnement du protocole de négociation (SLNP) ainsi que la

composante que doit comprendre une entité pouvant participer à une négociation de QoS via SLNP.

3.4.1 Les services web

Les services web ont été conçus pour standardiser les échanges sur Internet. En effet, ils permettent à

une application de trouver automatiquement sur l’Internet le service dont elle a besoin et d’échanger des

données avec ce dernier. La principale caractéristique des services web est l’interopérabilité. Cette

interopérabilité permet aux applications écrites dans divers langages de programmation (Java, C++, Visual

Basic,…) et tournant sur diverses plateformes (UNIX, Windows,…) d’utiliser les services web pour

échanger des données via Internet. Dans cette section, nous allons présenter l’architecture des services

web ainsi que les standards sur lesquels se basent ces technologies afin de garantir une interopérabilité

entre les entités de négociation.

3.4.1.1 Architecture des services web

Figure 3-5 : Architecture des services web

L’architecture des services web implique essentiellement trois entités : le fournisseur de service web,

le demandeur et un annuaire (Figure 3-5). Le fournisseur crée un service, puis publie l’adresse qui permet

d’y accéder (URI : Uniform Resource Identifier) dans un annuaire de services web, tel que l’annuaire

UDDI. Ce dernier rend disponible l’interface du service ainsi que ses informations d’accès, pour n’importe

quel demandeur. Ainsi, ce dernier accède à l’annuaire UDDI (Universal Description Discovery and

Integration) pour effectuer une recherche afin de trouver le service désiré en précisant ses caractéristiques.

Enfin, il se connecte au fournisseur du service désiré afin d’acquérir la description et le format d’appel qui

vont lui permettre, ensuite, d’invoquer correctement ce service web.

66

3.4.1.2 Les standards des services web

Les Services Web se basent sur un ensemble de standards formant une pile protocolaire (Figure 3-6) :

XML (eXtensible Markup Language) [BRA 08], SOAP (Simple Object Access Protocol) [BOX 07],

WSDL (Web Service Description Langage) [CHR 01] et UDDI (Universal Description Discovery and

Integration) [BEL 02]. Dans cette pile, le protocole HTTP (Hyper Text Transfer Protocol) se trouve au

niveau de la couche de transfert des messages. Au dessus de cette couche, le protocole SOAP est utilisé

dans la structuration des messages à transmettre. Ensuite, le langage WSDL permet de décrire les services

web. Enfin, un processus de découverte des services web, tel que UDDI, peut figurer dans cette pile. Ces

protocoles et standards sont basés sur le langage XML.

Figure 3-6 : Pile protocolaire des services web [BOO 04]

3.4.1.2.1 eXtensible Markup Language (XML)

XML permet de définir un langage à travers un vocabulaire et une grammaire associée. Les langages

basés sur XML peuvent être utilisés pour décrire toutes sortes de données et de textes tels que les

messages SOAP et les descriptions WSDL. Un fichier XML est un document texte qui a une structure

hiérarchique en éléments. En effet, un élément peut contenir du texte ou d’autres éléments et toutes les

données d’un document XML sont contenues dans un élément racine. Un document XML est dit bien

formé, quand il est conforme à un certain nombre de règles. S’il est bien formé et conforme à la

grammaire associée, le document XML est alors qualifié de valide. La grammaire d’un langage basé sur

XML peut être définie, soit en format DTD (Document Type Definition), soit en format XSD (XML

Schema Definition) [THO 01]-[BIR 01]. Dans la suite, nous utilisons le format XSD afin de définir de

façon structurée le type de contenu, la syntaxe et la sémantique des messages SOAP échangés (cf. section

3.4.3) ainsi que le SLS [CHA 07] négocié (cf. section 3.4.4).

3.4.1.2.2 Simple Object Access Protocol (SOAP)

Le protocole SOAP définit un ensemble de règles pour structurer des messages qui peuvent être

utilisés dans de simples transmissions unidirectionnelles, mais il est aussi particulièrement utile pour

exécuter des dialogues de type requête/réponse.

Un message SOAP est un document XML dont l’élément racine <Envelope> contient un élément

optionnel <Header> et un élément obligatoire <Body> qui contient les données échangées (Figure 3-7).

67

SOAP peut également utiliser l’élément <Fault> afin de signaler des erreurs. Ainsi, nous distinguons trois

types de messages SOAP : Call, Response et Fault. Un message de type Call, permet d’invoquer une

méthode (opération) d’un service web en lui passant les paramètres nécessaires à cet appel. Le résultat de

cette invocation est récupéré grâce à un message de type Response. Quand un problème survient lors d’un

appel, un message de type Fault peut être utilisé afin de caractériser l’erreur.

Figure 3-7 : Structure d’un message SOAP

SOAP n’est pas lié à un mécanisme sous-jacent de transfert de messages mais il est souvent associé à

HTTP. Il n’est pas, non plus, lié à un système d’exploitation, ni à un langage de programmation, donc les

clients et les serveurs des dialogues SOAP peuvent s’exécuter sur n’importe quelle plateforme et peuvent

être écrits dans n’importe quel langage.

3.4.1.2.3 Web Service Description Language (WSDL)

Le langage WSDL permet de décrire un service web et la manière d’y accéder, en incluant des détails

tels que le protocole à utiliser, l’URI, les opérations pouvant être effectuées, les formats des messages

SOAP entrants ou sortants qui sont requis pour dialoguer avec le service ainsi que les exceptions pouvant

être renvoyées.

<definitions>

<types> !--abstract data types </types>

<message> !--message structure </message>

<portType>!--Web Service Interface </portType>

<binding> !--how the service is accessed</binding>

<service> !--who provides the service </service>

</definitions>

Figure 3-8 : Structure d’un document WSDL [CHR 01]

Une description WSDL d’un service web est un document XML (Figure 3-8) dont l’élément racine

<definitions> contient cinq éléments :

• <types> : contient les définitions des types de données utilisées dans les messages envoyés et reçus

par le service web et ceci en utilisant le modèle XML Schema.

68

• <message> : décrit le nom et le type d’un champ à transmettre et qui correspond à un paramètre

d’entrée ou de sortie d’une opération du service.

• <portType> : définit de manière abstraite le service web comme un ensemble d’opérations où chaque

opération est composée d’un message d’entrée, d’un message de sortie et d’un message d’erreur

éventuel. Suivant les messages qui composent une opération, WSDL permet de définir quatre types

d’opérations : Request-Response (réception d’un message et renvoi d’un message), Solicit-Response

(émission d’un message et réception d’un message), One-Way (réception d’un message) et

Notification (émission d’un message).

• <binding> : permet de faire une liaison précise entre les descriptions, effectuées dans les éléments

<message> et <portType>, et le type de protocole utilisé pour véhiculer les données.

• <service> : permet de préciser les informations complémentaires nécessaires pour invoquer le service,

en particulier l’URI qui permet d’y accéder.

Ainsi la description WSDL permet de spécifier le protocole à utiliser ainsi que les opérations à

invoquer. Ceci n’est pas suffisant pour découvrir un service web qui possède une fonctionnalité dont une

application a besoin. Pour savoir où trouver les services web, un mécanisme de découverte, tel que

l’annuaire UDDI, peut être utilisé.

3.4.1.2.4 Universal Description Discovery and Integration (UDDI)

C’est un annuaire d’informations sur les services web qui permet aux fournisseurs d’enregistrer leurs

services et aux applications de rechercher et de localiser sur le réseau les services correspondant à leurs

besoins, de façon normalisée. Les annuaires UDDI sont accessibles grâce au protocole SOAP et

contiennent des informations détaillées, sous un format XML, concernant les services publiés et leurs

emplacements. En effet, un annuaire UDDI est similaire à un répertoire téléphonique où chaque entrée se

compose de trois parties principales : le fournisseur du service, les services web offerts et les liens vers

leurs implémentations. La première partie est l’information la plus générale qui décrit le fournisseur du

service. Elle inclut des noms, des adresses, des contacts et d’autres détails administratifs. La deuxième

partie est la liste des services web disponibles. Ces services peuvent être groupés par domaines

d’application, par régions géographiques, etc. La dernière partie d’une entrée UDDI est un lien vers une

implémentation qui associe l’entrée de service web à l’URI exacte identifiant son emplacement. Elle

spécifie, également, le protocole à utiliser pour accéder au service.

3.4.1.3 Les plateformes de développement des services web

Les services web doivent être déployés sur des serveurs d’applications et doivent implémenter le

protocole SOAP. Ainsi, nous trouvons plusieurs plateformes qui permettent de développer et déployer

des services web telles que : Axis et le serveur Tomcat de Jakarta (deux projets open source d’Apache

Software Foundation), la bibliothèque pour les développeurs de Services Web en Java (JWSDP) de Sun

Microsystems et les serveurs HTTP IIS de Microsoft (avec le framework .NET).

Synthèse : Dans cette section, nous avons rappelé l’architecture des services web et les standards sur

lesquels ils sont basés. Ceci permettra, par la suite, de comprendre le fonctionnement du protocole de

négociation SLNP dans cet environnement. En effet, la négociation SLNP s’effectue en échangeant des

69

messages de négociation qui ne sont autres que des messages SOAP dont la structure est définie en

utilisant des schémas XML. Le SLS sur lequel porte la négociation SLNP forme une partie de ces

messages. Ainsi, la structure de ce SLS est également spécifiée en utilisant un schéma XML. Par ailleurs,

des services web spécifiques pour la négociation sont définis et leur composition est ainsi décrite en

utilisant le langage WSDL.

3.4.2 Principales caractéristiques du protocole SLNP

3.4.2.1 Satisfaction des besoins de négociation

Afin de répondre aux besoins évolutifs des services en matière de QoS, le protocole SLNP permet

aux entités concernées par une offre de service d’établir, modifier ou résilier un SLS. En effet, en utilisant

ce protocole :

• Un client peut initier une procédure de négociation avec un fournisseur de services en définissant le

niveau de service demandé à travers les valeurs des attributs du SLS négocié.

• Un fournisseur de services peut accepter ou rejeter le niveau de service demandé par le client ou

encore proposer une alternative à ce niveau de service.

• Les entités impliquées dans une négociation (le client, le fournisseur de services et les fournisseurs de

réseaux) ont la possibilité de modifier un niveau de service qu’ils ont déjà établi.

• Un client peut résilier un niveau de service déjà établi.

3.4.2.2 Utilisation des services web

La gestion des services dans les réseaux IP peut impliquer des systèmes de gestion utilisant des

technologies différentes dont l’intégration est de plus en plus difficile et coûteuse. Dans cet

environnement hétérogène, le protocole SLNP propose d’utiliser les services web pour remédier au

problème d’intégration des différentes technologies et homogénéiser ainsi les responsables de domaines

qui peuvent être fondés sur des implémentations et des plates-formes différentes. En effet, en permettant

les interactions entre des systèmes hétérogènes, les services web représentent la solution qui permet de

fournir une interopérabilité entre les différents responsables de domaines, pouvant fonctionner sur

différentes plateformes, impliqués dans une offre de service. L’adoption de cette technologie est

également due au fait qu’elle se base sur des protocoles ouverts au format texte qui facilite la

compréhension du fonctionnement des échanges (cf. section 3.4.1.2).

3.4.2.3 Une signalisation hors-bande

Une conséquence directe de l’emploi des services web dans la négociation est le critère « hors-bande »

de cette négociation. En effet, les services web fonctionnent au niveau applicatif de la pile TCP/IP, et

doivent ainsi être implémentés uniquement au niveau des entités de négociation. Par conséquent, les

messages échangés dans le cadre d’une négociation ne suivent pas forcément le même chemin que les

données (Figure 3-9), mais doivent traverser les entités participant à la négociation et qui implémentent

donc le protocole de négociation SLNP. Ainsi, on peut distinguer deux couches indépendantes : la couche

de circulation du flux de négociation et celle de circulation des flux de données.

70

Figure 3-9 : Une négociation de type hors-bande

3.4.2.4 Indépendance vis-à-vis des modèles de QoS

Le protocole SLNP se veut indépendant du modèle de QoS adopté par les différents domaines

participant au transport du service. Cette indépendance à été réalisée en définissant une négociation dans

un environnement réparti où les offres locales de chaque domaine sont exprimées dans les messages

échangés d’une manière comprise par toutes les entités de négociation. En effet, l’offre locale de chacun

des domaines est exprimée d’une manière indépendante de l’architecture de QoS sous-jacente (cf. section

2.4.2). Ainsi, nous avons une négociation de QoS non centralisée où la décision prise concernant un

niveau de QoS est le résultat des offres locales de chaque domaine.

3.4.2.5 Transparence et extensibilité du SLS

L’utilisation des services web dans l’implémentation de SLNP passe par la définition d’un schéma

XML spécifiant la structure d’un SLS. Cette structure a été définie d’une manière générique afin de

permettre aux entités de négociation de comprendre et de supporter plusieurs paramètres de QoS (cf.

section 3.4.3). Cependant, ce SLS reste ouvert et facilement extensible à de nouveaux paramètres autre

que ceux en rapport avec la QoS, et ce grâce à la transparence du schéma XML qui définit ces paramètres,

vis-à-vis du fonctionnement du protocole.

Synthèse : Après avoir cité les principales caractéristiques du protocole SLNP, nous allons, dans ce qui

suit, décrire les paramètres de QoS qui peuvent faire l’objet d’une négociation entre les responsables des

différents domaines impliqués dans une offre de service. Ensuite, nous présentons les différents types de

messages utilisés par ces responsables de domaines afin de se mettre d’accord sur un niveau de QoS. Puis,

nous détaillons le principe général du fonctionnement de la négociation SLNP ainsi que la composition

d’une entité de négociation. Enfin, un exemple illustrant la négociation de QoS avec SLNP est donné.

3.4.3 Paramètres de QoS négociés avec SLNP

Dans cette section, nous présentons les différents attributs qui peuvent être négociés avec le

protocole SLNP. Ces attributs sont inspirés de ceux définis lors de la spécification des protocoles de

négociation décrits dans la section 3.3.2, et sont ainsi fortement liés à la qualité de service. Ce SLS de QoS

a été défini en utilisant un schéma XML auquel n’importe quel SLS négocié avec SLNP doit se conformer

afin de garantir sa compréhension par les différentes entités impliquées dans cette négociation. Dans ce

qui suit, le schéma XML du SLS est détaillé en utilisant une représentation graphique. La légende qui

permet de lire ces représentations est fournie dans le Tableau 3-1.

71

Graphique Schéma XML

Elément XML

Tous [séquence]

Choix

M : occurrence minimale N : occurrence maximale

Tableau 3-1 : Modèle graphique du schéma XML

Le SLS présent dans tous les messages SLNP a été défini d’une manière générique. Ainsi, il possède

une structure hiérarchique qui lui permet de couvrir les paramètres de qualité de service sur lesquels peut

porter une négociation (Figure 3-10). Parmi ces paramètres certains sont optionnels, alors que d’autres

sont obligatoires.

Figure 3-10 : Structure du SLS de QoS

3.4.3.1 Les paramètres obligatoires

3.4.3.1.1 Identificateur du SLS (slsId)

L’élément slsId est un entier proposé souvent par l’entité qui initie la négociation afin d’identifier un

SLS d’une manière unique. Pour assurer cette unicité, cet entier est composé de deux parties. Une

première partie qui est liée à l’adresse IP de l’entité qui initie la négociation et une seconde partie qui

assure son unicité par rapport aux autres SLS négociés par cette entité. Ceci permet d’identifier un SLS

d’une manière unique même au niveau des entités impliquées dans différents processus de négociation.

3.4.3.1.2 Identificateur du trafic (flowId)

L’identificateur de flux est représenté par l’élément flowId dont le schéma XML est donné dans la

Figure 3-11. Cet élément permet d’identifier le flux IP pour lequel la qualité de service sera garantie. Il

peut s’agir d’un micro flux ou d’un agrégat de micro flux, dans les deux cas, c’est un ensemble de

72

datagrammes IP qui ont en commun au moins une des caractéristiques suivantes : une adresse IP source

et/ou une adresse IP destination (sourceIPAddress et destinationIPAddress) qui peut être une adresse IP

v4 ou v6), un ensemble d’adresses ou un préfixe ; un numéro de port source et/ou destination (sourcePort

et destinationPort) ; un identificateur du protocole associé au flux IP (protocolId) ; ou un identificateur

d’un agrégat de flux dans un domaine qui utilise DiffServ comme modèle de QoS (DSCP).

Figure 3-11 : Structure de l’élément ‘flowId’

3.4.3.1.3 Portée (scope)

La portée ou l’élément Scope permet de préciser les frontières entre lesquelles le niveau de service

sera garanti. Il caractérise le flux circulant entre un point d’entrée (ingress) et un point de sortie (egress)

(Figure 3-12). Ces deux points sont exprimés sous forme d’une adresse IP (IPv4Address ou IPv6Address).

Figure 3-12 : Structure de l’élément ‘scope’

3.4.3.1.4 Temps de service (serviceSchedule)

Le temps de service, représenté par l’élément serviceSchedule (Figure 3-13), informe sur la période au

cours de laquelle un niveau de service doit être valable.

Figure 3-13 : Structure de l’élément ‘serviceSchedule’

73

Il peut être immédiat, périodique ou différé. Dans le cas où il est immédiat (immediateSS), le temps

de fin de service (endTime) peut être omis et donc le service sera résilié suite à la demande du client. Il

peut être périodique (periodicSS) et il est alors spécifié par la périodicité (periodicity), le temps de début

(startTime) et le temps de fin (endTime). Enfin, il peut être différé (defferedSS) et servir à faire une

réservation à l’avance des ressources. Dans ce cas, le temps de début doit être précisé alors que celui de la

fin peut être omis. Le temps de début ou de fin est composé de l’heure, du jour, du mois et de l’année.

3.4.3.1.5 Garantie de performance (performanceGuarantee)

Ce paramètre contient les attributs les plus utilisés pour spécifier la QoS d’un flux IP. Ils sont au

nombre de quatre : le délai, la gigue, le taux de perte, et la bande passante. Ces éléments peuvent être

quantitatifs avec des valeurs numériques ou qualitatives, auquel cas des adjectifs variant entre excellent et

mauvais (high, medium et low) sont utilisés. Ainsi, l’élément performanceGuarantee (Figure 3-14)

contient l’élément qualitativePG (cas d’une garantie de performance qualitative) ou l’élément

quantitativePG (cas d’une garantie de performance quantitative). Chacun de ces deux éléments est

composé des quatre éléments spécifiant le niveau de la QoS, à savoir : delay, jitter, packetLossRatio et

throughput. Comme nous l’avons déjà précisé, la décision vis-à-vis d’une demande d’un niveau de QoS de

bout en bout est prise par l’ensemble des entités de négociation mises en jeu (approche distribuée). Pour

cela, nous avons besoin de sauvegarder le résultat de l’ensemble des offres au fur et à mesure que le

processus de négociation avance. Ainsi, chacun des quatre éléments caractérisant la QoS se compose de

deux valeurs : une valeur demandée et une valeur offerte ; la valeur offerte (offered) indique l’offre

intermédiaire résultant des offres des entités précédentes alors que la valeur demandée (requested)

représente la valeur de bout en bout demandée par la première entité de négociation. Pour le paramètre

délai, par exemple, l’offre intermédiaire est spécifiée dans l’élément ‘delayOffred’ et n’est autre que le

cumul des délais qui peuvent être garantis par chaque entité de négociation alors que l’offre de bout en

bout est donnée par l’élément ‘delayRequested’.

Figure 3-14 : Structure de l’élément ‘performanceGuarantee’

3.4.3.2 Les paramètres optionnels

3.4.3.2.1 Profil et conformité du trafic (traficConformity)

74

Ce paramètre représenté par l’élément trafficConformity permet de distinguer le trafic conforme « in-

profile » du trafic non-conforme « out-of-profile » suivant un ensemble d’indicateurs. Le test de

conformité peut être réalisé par le biais d’un algorithme de conformité tel que le Token Bucket, Three

Color Marker, Leaky Bucket, srTCM ou autre. Ainsi, l’élément trafficConformity (Figure 3-15) permet de

choisir un des algorithmes disponibles. Actuellement, SLNP ne spécifie que l’algorithme Token Bucket,

mais l’extensibilité du SLS qu’il définit permet de comprendre d’autres algorithmes. L’élément

tokenBucket se compose des éléments suivants : tokenBucketRate (débit des jetons en j/s),

tokenBucketSize (taille de la file d’attente en octets), peakDataRate (débit crête du trafic en bit/s),

minimumPolicedUnit (taille du plus petit paquet IP accepté en octets) et maximumPacketSize (taille du

plus grand paquet IP accepté en octets).

Figure 3-15 : Structure de l'élément ‘trafficConformity’

3.4.3.2.2 Traitement d’excès (excessTreatement)

Dans le cas où un trafic présente des paquets non conformes aux attributs spécifiés dans le paramètre

de profil et conformité du trafic, ces paquets sont considérés hors-profil et sont soumis au traitement

d’excès spécifié dans ce paramètre. Ce traitement peut consister en l’élimination des paquets hors profil, le

retardement de ces paquets afin de les transmettre au bon moment ou encore la dégradation du niveau de

service de ces paquets. Ainsi, l’élément excessTreatement peut avoir une des trois valeurs correspondant

aux trois types de traitement spécifiés (drop, shape ou mark).

3.4.3.2.3 Paramètres de négociation (negotiationParameters)

Les paramètres de négociation regroupent deux éléments (Figure 3-16) :

Figure 3-16 : Structure de l’élément ‘negotiationParameters’

• Le mode de négociation (negotiationMode) : il peut être non prédéfini ou prédéfini, auquel cas la

négociation porte sur un ensemble de SLS fixés par le fournisseur.

• L’intervalle de renégociation (negotiationInterval) : il sert à indiquer le temps au bout duquel un SLS

négocié peut être renégocié. Il est composé à son tour de deux éléments : nbHeures et

75

nbMinutes indiquant, respectivement, le nombre d’heures et le nombre de minutes avant qu’un SLS

ne soit renégocié.

3.4.3.2.4 Fiabilité (reliability)

La fiabilité permet d’avoir une garantie sur la limitation dans le temps de l’effet d’une panne dans le

réseau sur l’offre de qualité de service. L’élément reliability (Figure 3-17) peut donc se composer de

l’élément meanDownTime et/ou l’élément meanTimeToRepair. L’élément meanDownTime contient le

temps moyen de panne par an en minutes, tandis que l’élément meanTimeToRepair contient le temps

moyen pour le rétablissement d’un niveau de service en secondes.

Figure 3-17 : Structure de l’élément ‘reliability’

L’approche distribuée qu’adopte le protocole SLNP afin d’accomplir un processus de négociation,

fait que les éléments excessTreatement, negotiationInterval, meanDownTime et meanTimeToRepair sont

divisés en deux parties : une pour les valeurs demandées initialement (requested) alors que l’autre sert à

sauvegarder le cumul des offres locales de chaque domaine, tout comme c’est le cas pour les paramètres

de garantie de performance (delay, jitter, packetLossRatio et throughput).

Synthèse : Tous ces éléments (slsId, flowId, scope, serviceSchedule, performanceGuarantee, etc.)

forment donc le SLS de qualité de service pouvant être négocié avec SLNP. Cependant, ce SLS reste

facilement extensible à d’autres paramètres comme les paramètres de sécurité ou encore de mobilité qu’il

suffit d’introduire dans le schéma XML du SLS afin qu’ils deviennent compréhensibles par toutes les

entités qui participent à une négociation SLNP. Cette négociation est fondée sur l’échange de messages

SOAP qui portent les messages de négociation. Dans la section suivante, nous décrivons les messages qui

ont été spécifiés par SLNP [MBA 06a].

3.4.4 Messages de négociation SLNP

Dans le but de satisfaire les besoins de négociation, à savoir l’établissement, la modification et la

résiliation d’un SLS, six messages ont été définis en utilisant les schémas XML.

3.4.4.1 Le message Negotiate

Le message Negotiate est généré par l’entité qui doit initier une négociation (entité initiale). Il est,

ensuite, émis par cette entité en direction de la dernière entité (entité finale) en passant par toutes les

entités impliquées dans la négociation (entités intermédiaires). Ce message est composé essentiellement de

trois éléments (Figure 3-18) : negotiationId, endNegotiation et sls.

• negotiationId : c’est un élément qu’on retrouve dans tous les types de messages. Il sert à faire le lien

entre une requête et les réponses relatives à cette requête et à identifier cet ensemble de messages

(requête et réponses) d’une manière unique. L’unicité de cet identifiant peut être assurée par la même

76

méthode utilisée dans la génération de l’identificateur d’un SLS, à savoir le slsId. Généralement, le

negotiationId est différent du slsId. En effet, une SI peut initier plus d’une négociation en même

temps avec un même SLS. Dès qu’une négociation aboutit, elle annule les autres négociations. La

différence entre ces négociations est le chemin empreinté, et on peut avoir une entité intermédiaire au

niveau de laquelle se croisent deux ou plusieurs de ces négociations. A ce moment là, le negotiationId

est le seul élément qui permet de faire la différence entre ces différentes procédures de négociation.

• end Negotiation : c’est un booléen qu’on retrouve dans tous les messages SLNP sauf dans le message

Response. Quand il est égal à ‘true’, il empêche le vis-à-vis de proposer une alternative et l’oblige à

répondre à la requête (Negotiate, Modify, Notify ou Release) avec un message Response afin de finir

la négociation. D’où, l’interêt de ce champ dans la gestion du temps de la négociation.

• sls : La structure de l’élément sls suit le schéma XML défini dans la section 3.4.3. Le rôle de ce champ

change d’un message à un autre. Par exemple, dans le cas d’un Negotiate, il permet à l’entité initiale de

spécifier les garanties de QoS dont elle a besoin en précisant les attributs et leurs valeurs.

Figure 3-18 : Structure des messages Negotiate, Revision, Release, Modify, Notify

3.4.4.2 Le message Revision

Emis par l’entité finale en direction de l’entité initiale, ce message sert à proposer une alternative au

SLS demandé. Il est composé essentiellement de trois éléments (Figure 3-18) : negotiationId,

endNegotiation et sls. Dans ce message, l’élément sls contient une proposition d’alternatives aux attributs

et valeurs reçues dans la requête (Negotiate ou Modify).

3.4.4.3 Le message Modify

Le message Modify est transmis par l’entité initiale en direction de l’entité finale. Il se compose de

trois éléments (Figure 3-18) : negotiationId, endNegotiation et sls. L’élément sls contient un slsId qui

désigne le SLS que l’entité initiale veut modifier ainsi que les valeurs du nouveau SLS. Le message Modify

sert à demander la modification d’un SLS suite à un changement des besoins de l’entité initiale ou après

réception d’un message Notify de la part d’une autre entité de négociation (intermédiaire ou finale).

3.4.4.4 Le message Notify

Le message Notify peut être émis par n’importe quelle entité intermédiaire ainsi que par l’entité finale.

Il est envoyé directement vers l’entité initiale pour lui demander d’améliorer ou de dégrader l’ancien niveau

de service suite à des problèmes dans le réseau tel que la congestion. Ce message, qui sert à notifier l’entité

initiale des nouvelles disponibilités, se compose de trois éléments : negotiationId, endNegotiation et sls

(Figure 3-18). Le slsId de l’élément sls désigne le SLS concernée par la notification, alors que le champ

endNegotiation est toujours égal à ‘true’, afin d’exiger une réponse de l’entité initiale. Cette dernière peut

répondre positivement à la notification reçue et elle peut donc procéder à la modification du SLS.

77

3.4.4.5 Le message Release

Emis par l’entité initiale en direction de l’entité finale. Ce message est transmis de proche en proche

sur le chemin de la négociation. Le message Release sert à résilier un SLS, et se compose des mêmes

éléments (Figure 3-18) : negotiationId, endNegotiation et sls. L’élément endNegotiation prend toujours la

valeur ‘true’ afin d’obliger le vis-à-vis à répondre immédiatement. Le slsId de l’élément sls de ce message

désigne le SLS auquel l’entité initiale veut mettre fin.

3.4.4.6 Le message Response

Le message Response est différent des autres messages. En effet, il est composé de quatre

champs (Figure 3-19) : negotiationId, resp, reason et sls. Il peut être :

• Emis par l’entité finale en direction de l’entité initiale afin de répondre à une requête Negotiate et

passe donc à travers toutes les entités intermédiaires. Le champ resp désigne la nature de la réponse :

acceptation (Ack) ou rejet (Nack). Dans le cas d’une acceptation, toutes les entités impliquées dans la

négociation doivent enregistrer le SLS. Alors que dans le cas d’une réponse négative, le champ reason

peut être utilisé afin d’indiquer la raison pour laquelle le SLS demandé ne peut pas être accepté.

• Emis par l’entité finale en direction de l’entité initiale pour répondre à une requête Modify. Cette

réponse peut être positive ou négative. Dans le cas d’une réponse positive, toutes les entités doivent

mettre à jour l’enregistrement du SLS.

• Emis par l’entité finale en direction de l’entité initiale afin de répondre à une requête Release. Dans le

cas d’une réponse positive, toutes les entités impliquées dans la négociation doivent supprimer le SLS

concerné.

• Emis de l’entité initiale en direction de l’entité finale afin de répondre à une requête Revision. Cette

réponse peut être positive ou négative et le message Revision peut être précédé par un Negotiate ou

un Modify. Dans le cas d’une réponse positive, toutes les entités impliquées dans la négociation

s’occupent de l’enregistrement ou de la mise à jour du SLS si le contexte est respectivement celui d’un

Negotiate ou d’un Modify.

• Emis par l’entité initiale en direction d’une entité intermédiaire ou finale afin de répondre à son

message Notify. Dans ce cas, le message Response est émis directement vers l’entité concernée. Dans

le cas d’une réponse positive, l’entité initiale peut procéder à la modification du SLS concerné.

Figure 3-19 : Structure du message Response

78

3.4.5 Architecture du protocole SLNP

Dans cette section, nous commençons par définir la terminologie utilisée pour désigner les

différentes entités mises en jeu lors de la négociation d’un SLS avec SLNP. Ensuite, nous décrivons le

fonctionnement de ce protocole, avant de détailler les différentes composantes d’une entité de

négociation. Enfin, un exemple illustrant la négociation de la qualité de service, sera donné.

3.4.5.1 Terminologie

• SE (SLNP Entity) : entité SLNP qui n’est autre qu’une entité réseau supportant le protocole SLNP.

Une SE peut être considérée comme une SI, SF ou SR suivant le rôle qu’elle joue dans un scénario de

négociation.

• SI (SLNP Initiator): entité initiale qui initie une procédure de négociation. Cette procédure de

négociation peut concerner l’établissement d’un nouvel SLS, la modification ou la résiliation d’un SLS

déjà établi.

• SR (SLNP Responder): entité finale qui répond aux différentes requêtes de la SI.

• SF (SLNP Forwarder): entité intermédiaire qui se situe entre la SI et la SR sur le chemin de la

circulation des flux de négociation.

3.4.5.2 Modèle de fonctionnement

Durant une procédure de négociation de SLS, les messages SLNP sont échangés entre la SI et la SR

tout en traversant les éventuelles SF impliquées dans cette négociation. Ces messages sont véhiculés dans

les deux sens : SI vers SR et SR vers SI. Ils sont généralement générés dans les extrémités de la négociation

(SI et SR), mais ils sont traités et modifiés, si nécessaire, au niveau des SF. Le fonctionnement de SLNP

nécessite un mécanisme de routage qui permet à chaque SE de trouver l’adresse de la SE, suivante sur le

chemin de la négociation à partir du domaine de destination des flux, et ce afin de lui transmettre les

messages. Comme l’indique la Figure 3-20, le traitement des messages par une SE est influencé par une

interaction avec la RMF (Resource Management Function) qui représente, d’une façon simplifiée, les

fonctionnalités du composant LAM (Low-level Autonomic Manager) de l’architecture de gestion

autonome définie dans [MBA 06a]. En effet, cette interaction permet de voir s’il y a assez de ressources

disponibles et si la demande a les autorisations nécessaires afin de prendre une décision qui peut être une

réponse (acceptation, rejet ou alternative) ou une transmission de la requête, modifiée si nécessaire, à la SE

suivante. Ceci permet à l’entité qui traite le message d’ajouter son offre locale dans le SLS en modifiant les

parties offertes « offered » de certains paramètres (délai, gigue, bande passante, taux de perte, traitement

d’excès etc.). Ensuite, si les SE arrivent à un accord, elles procèdent alors à l’enregistrement du SLS

négocié et le SLS est ainsi établi. Dans ce cas, la QoS de bout en bout doit être garantie grâce au respect

des offres locales qu’ont fait les différents responsables de domaines (entités de négociation). Ceci se fait

en procédant à la réservation des ressources dans tous les domaines. La réservation des ressources ne

dépend que du modèle de QoS déployé (DiffServ, IntServ, etc.). Un SLS déjà établi peut être modifié suite

à la demande de la SI. Quand cette demande est acceptée par toutes les SE concernées, le SLS est mis à

jour. La résiliation d’un SLS établi ne se fait que suite à la demande de la SI. Cette demande entraîne la

suppression du SLS en question au niveau de toutes les SE concernées. Ce modèle de fonctionnement

général sera détaillé par la suite, une fois les différents messages SLNP présentés.

79

Figure 3-20 : Fonctionnement général au niveau d’une SE

3.4.5.3 Composition d’une entité SLNP

Dans la négociation de niveau de service avec le protocole SLNP, les différentes entités utilisent la

technologie des services Web afin d’être interopérables. Cependant, cette technologie est fondée sur

l’invocation des opérations composant un service web. Une entité initiale doit ainsi contenir une

application cliente qui lui permet d’établir, modifier ou résilier un SLS en invoquant le service web de

l’entité suivante avec le message approprié (Negotiate, Modify ou Release). Elle doit, également, contenir

un service web qui lui permettra de recevoir et répondre aux notifications (Notify) qui peuvent parvenir

des autres entités de négociation afin de l’informer sur d’éventuels changements de disponibilités de

ressources ou le non respect d’un contrat déjà établi. Une entité de négociation intermédiaire ou finale doit

contenir une application cliente qui sert à générer les messages de notification et à invoquer directement le

service web de l’entité initiale. Elle doit également contenir un service web de négociation qui lui permet

de recevoir les différentes requêtes (Negotiate, Modify et Release), de les traiter et de renvoyer une

réponse (Response) ou une alternative (Revision) à l’entité appelante. Le message retourné (Response ou

Revision) peut être produit par l’entité elle-même ou être la retransmission du message retourné par

l’entité suivante sur le chemin de négociation.

En outre, une entité de négociation peut être impliquée dans plusieurs processus de négociation et

jouer des rôles différents. En effet, cette entité peut jouer le rôle d’une SI dans un premier processus et

initier une négociation d’un SLS. Elle peut également jouer le rôle d’une SF ou d’une SR sollicitée par une

autre SE dans un autre processus de négociation avec SLNP. Ainsi, afin d’assurer le bon fonctionnement

du protocole SLNP, une entité de négociation doit être composée d’une application cliente permettant

d’initier tout type de processus de négociation et d’un service web contenant les différentes opérations

permettant de traiter les différentes requêtes de négociation. Dans ce qui suit, nous présentons le service

web de négociation ainsi que l’application cliente de négociation.

3.4.5.3.1 Le service web de négociation

Le service web de négociation, représenté dans la Figure 3-21, est défini comme un ensemble

d’opérations regroupées dans un seul PortType parce qu’elles utilisent toutes le protocole SOAP/HTTP.

Généralement, chacune de ces opérations permet au service web de recevoir une requête bien précise,

d’effectuer un certain nombre de traitements afin de pouvoir répondre convenablement à cette requête.

Afin de répondre aux besoins de la négociation introduits dans la section 3.4.2.1, cinq opérations

différentes ont été distinguées, dont quatre utilisant le mode d’interaction request-response et une de

nature one-way [CHA 07].

80

Figure 3-21 : Schéma de la description WSDL du service web de négociation

• negotiationOperation : cette opération peut être invoquée chez un service web d’une SR ou d’une SF

lors d’une négociation d’un SLS. Elle est de type request-response, avec un message d’entrée de type

Negotiate et un message de sortie pouvant être de type Revision ou Response. Le message de retour

est créé par l’entité elle-même dans le cas d’une SR. Dans le cas d’une SF, ce message n’est autre que

le résultat de l’appel à la negotiationOperation du service web de la SF adjacente suivante sur le

chemin de la négociation.

• modificationOperation : cette opération peut être invoquée chez un service web d’une SR ou d’une SF

lors de la modification d’un SLS. Elle est de type request-response, avec un message d’entrée de type

Modify et un message de sortie pouvant être de type Revision ou Response. Lorsque le SLS à modifier

est reconnu, le message de retour est crée par l’entité elle-même dans le cas d’une SR, et constitue le

résultat de l’appel à l’opération modificationOperation du service web de l’entité adjacente dans le cas

d’une SF. Quand le SLS à modifier n’est pas reconnu par une entité qui reçoit la requête de

modification, un message d’erreur peut être retourné à la SI.

• notificationOperation : cette opération ne peut être invoquée que chez un service web d’une SI et elle

sert à traiter les notifications qui peuvent venir de la SR ainsi que des SF. Elle est de type request-

response, avec un message d’entrée de type Notify et un message de sortie de type Response car un

message de type Notify contient toujours un élément booléen ‘endNegotiation’ égal à ‘true’. Le

message de sortie Response est crée par l’entité SI elle-même afin de répondre directement à l’entité à

l’origine du message d’entrée Notify.

• releaseOperation : cette opération peut être invoquée chez un service web d’une SR ou d’une SF lors

de la résiliation d’un SLS. Elle est de type request-response, avec un message d’entrée de type Release

81

et un message de sortie de type Response. Le message Response peut être créé par l’entité elle-même

(cas d’une SR), ou encore être le résultat de l’appel à la releaseOperation du service web de la SE

adjacente (cas d’une SF). Si le SLS à résilier n’est pas reconnu par une SE, alors un message d’erreur

est envoyé.

• responseOperation : cette opération peut être invoquée chez un service web d’une SR ou d’une SF

lors de l’établissement ou la modification d’un SLS. En effet, elle est appelée quand la SI répond à une

alternative proposée par la SR via un message Revision. C’est la seule opération qui est de type one-

way, avec un message d’entrée de type Response. Dans le cas d’une SF, elle ne fait que transférer le

message Response reçu à la SE suivante sur le chemin de la négociation.

Notons que le format des messages véhiculés lors d’une négociation (Document-Litteral) ainsi que le

protocole utilisé (SOAP/HTTP) sont spécifiés dans le Binding, et que le service web de négociation est

constitué d’un seul port qui sert à définir l’URI du point d’accès au service en associant le binding à une

adresse réelle.

3.4.5.3.2 L’application cliente de négociation

L’application cliente de négociation avec SLNP est implémentée au niveau de chaque SE. Une SE

peut jouer le rôle d’une SI et initier l’établissement, la modification ou la résiliation d’un SLS. Elle peut,

également, jouer le rôle d’une SF ou d’une SR, et initier une notification. Ainsi, l’application cliente

implémentée par une SE doit lui permettre de procéder à [CHA 07]:

• L’établissement d’un SLS : l’application cliente d’une entité initiale peut négocier l’établissement d’un

SLS en prenant en arguments les caractéristiques du SLS à négocier, telles que l’identification du flux,

les paramètres de la garantie de performance, etc. ;

• La modification d’un SLS : l’application cliente d’une entité initiale peut, également, négocier la

modification d’un SLS déjà établi au cas où elle voit ses besoins changer ou lorsqu’elle reçoit une

notification d’une autre entité impliquée dans l’établissement du SLS en cours de validité et y répond

positivement ;

• La résiliation d’un SLS : quand le service prend fin ou lorsque le demandeur de service n’est plus

satisfait du niveau de service offert, l’application cliente de l’entité initiale peut procéder à la résiliation

du SLS déjà établi.

• La notification par rapport à un SLS : lorsqu’une entité intermédiaire ou finale ne peut plus respecter

ses engagements par rapport à une offre de service ou lorsqu’elle devient capable de fournir une

meilleure offre alors elle peut en informer l’entité initiale en lui envoyant directement un message de

type Notify.

3.4.5.4 Scénario de négociation de QoS avec SLNP

Dans cette section, nous présentons un scénario de négociation afin de mieux comprendre la

procédure de négociation avec le protocole SLNP en fournissant le MSC (Message Sequence Chart) [ITU

95] correspondant à ce scénario.

Afin d’être assez générique, nous adoptons la notation suivante : Ai désigne un attribut (ou

paramètre) de QoS qui fait l’objet de la négociation ; Vireq désigne la valeur de bout en bout relative à Ai ;

82

Vioff au niveau d’une entité de négociation reflète le cumul des offres locales des entités de négociation

précédentes relativement à l’attribut Ai. Le calcul des Vioff ne dépend que la nature du paramètre Ai

correspondant. Le détail de ce calcul pour les différents paramètres de QoS est donné dans le Tableau 3-2.

Attribut Formule

Délai D = ∑ (D1, D2, …, Dn)

Gigue G = ∑ (G1, G2, … Gn)

Bande passante BW = Min (BW1, BW2, …, BWn)

Taux de perte PLR = ∏ (PLR1, PLR2, …, PLRn)

Temps de panne moyen MDT = ∑ (MDT1, MDT2, …, MDTn)

Temps de réparation moyen MTTR = Max (MTTR1, MTTR2, …, MTTRn)

Tableau 3-2 : Calcul des valeurs offertes des différents attributs de QoS

Un message SLNP contient un ensemble d’attributs qui permettent de caractériser le niveau de

service (QoS) sur lequel porte la négociation. Dans le MSC fourni, les attributs obligatoires sont présentés

entre parenthèses alors que les attributs optionnels sont mis entre crochets. Ainsi, un message SLNP peut

être représenté d’une façon simplifiée comme le montre la Figure 3-22.

Message SLNP = {(A0, V0req, V0off);……..; (Ai, Vireq, Vioff);

[A0, V0req, V0off];……..; [Aj, Vjreq, Vjoff]}

( ) : obligatoire

[ ] : optionnel

Figure 3-22 : Représentation simplifiée d’un message SLNP

Certains attributs des messages SLNP ne changent pas de valeur lors d’un processus de négociation

(Vkreq=Vkoff), tel est le cas de l’élément ‘negotiationId’ qui permet d’associer les différents messages

échangés lors d’une même négociation. Ainsi, pour simplifier le MSC, il ne sera présenté que les attributs

dont les valeurs changent et au plus deux attributs dont l’un est obligatoire.

Dans le scénario de négociation représenté par le MSC de la Figure 3-23, les entités de négociation

(SE) utilisent les messages de type Negotiate, Revision et Response pour arriver à un accord sur un niveau

de service caractérisé par un ensemble d’attributs (Ai, Aj) et de valeurs (Vireq, Vjreq). L’attribut Aj étant

optionnel, l’entité de négociation intermédiaire (SF) peut ne pas le propager vers la SR lorsqu’elle ne

dispose pas de mécanismes pour le garantir. Le message Negotiate que construit cette entité de

négociation est toujours conforme au schéma XML de ce type de message, puisque l’occurrence de

l’attribut Aj peut être nulle. Le message Negotiate résultant tient compte de l’offre locale de la SF, grâce au

changement effectué sur la valeur offerte pour l’attribut Ai qui devient Vi1off. Le niveau de service

demandé (Vireq) ne pouvant être garanti, l’entité finale (SR) propose une alternative (Vi2off), grâce à un

message de type Revision. L’utilisation de l’élément ‘endNegotiation’ par la SI dans la deuxième passe de

négociation oblige la dernière entité sur le chemin de négociation (SR) à utiliser un message Response

pour accepter ou refuser la demande tout en tenant compte de l’offre des différentes SE mises en jeu lors

de ce processus de négociation. Dans notre exemple, la négociation se termine avec succès et le niveau de

service correspondant est enregistré localement dans chaque SE. Ce niveau de service est identifié d’une

manière unique grâce à l’attribut ‘slsId’, fixé par l’entité qui a initié la négociation.

83

Figure 3-23 : Exemple de négociation avec SLNP

Plus concrètement, le paramètre Ai peut représenter le délai de bout en bout d’une transmission de

données. Pour cet échange, la SI espère établir un niveau de QoS avec un délai de bout en bout inférieur

ou égal à 250 ms. Sur son domaine, la SI peut au mieux garantir un délai de 100 ms. Ainsi, Vireq est égal à

250 alors que Vioff est égal à 100. Le deuxième attribut négocié peut être le traitement d’excès pour lequel

le deuxième domaine (SF) ne peut fournir aucune garantie. Lorsque le message Negotiate arrive à la SF,

elle modifie le champ Vioff en ajoutant le délai produit sur son domaine pour le trafic concerné, qui est égal

à 80 ms ; ce qui fait un total de 180 ms de délai sur les deux premiers domaines. Lorsque la SR ajoute

également son offre locale égale 90 ms, elle s’aperçoit qu’il est impossible de garantir le délai de bout en

bout initialement demandé par la SI (250 ms) car il est inférieur à l’offre totale de l’ensemble du réseau

(100 + 80 + 90 = 270 ms). Dans ce cas, le message retourné par l’entité finale (Revision) lui permet de

proposer une alternative pour le paramètre délai (Vi2off = 270 ms). Lorsque ce message parvient à l’entité

initiale, cette dernière revoit son niveau de QoS demandé à la baisse en demandant un délai (Vi2req) égal à

280 ms cette fois ci. Si les offres locales des différentes entités de négociation (SI, SF et SR) n’ont pas

changé, le délai de bout en bout pouvant être garanti par l’ensemble du réseau (270 ms) répond

parfaitement aux besoins précisés par la SI lors de la seconde passe (délai = 280 ms). La réponse de la SR

est donc positive et le SLS établi est enregistré au niveau des responsables de chaque domaine.

3.4.6 Résumé

La section 3.4 nous a permis de présenter le protocole SLNP et d’expliquer le fonctionnement de la

négociation de QoS permise par ce protocole. Ceci nous permet, dans le chapitre suivant, de décrire

comment nous nous basons sur ce protocole afin de fournir des garanties en termes de QoS et de sécurité,

d’une manière simultanée, pour les flux de données pouvant transiter sur les réseaux NGN.

84

3.5 Conclusion

Dans une première partie de ce chapitre, nous avons rappelé la notion de niveau de service et les

paramètres que peut englober un SLS. Ensuite, nous avons présenté quelques travaux de recherche

portant sur l’offre de niveau de service dans les réseaux de nouvelle génération. Ces travaux ont parfois été

à l’origine de la définition d’un protocole de négociation de niveau de service. En effet, cette négociation

est indispensable afin que tous les domaines impliqués dans une offre de service puissent se mettre

d’accord sur le niveau de ce service. Ainsi, nous avons également présenté quelques protocoles de

négociation afin de comprendre leurs fonctionnements et leurs utilisations dans la garantie de l’offre de

service dans les réseaux de nouvelle génération.

Dans la deuxième partie de ce chapitre, nous nous sommes intéressés à un protocole de négociation

bien particulier ; il s’agit du protocole SLNP (Service Level Negotiation Protocol) qui a été proposé afin

de permettre la négociation de la QoS de bout en bout dans un environnement de gestion autonome. Le

fonctionnement de ce protocole est fondé sur l’utilisation des services web afin de fournir une

interopérabilité entre les différents composants d’un environnement de gestion autonome et d’éviter les

problèmes d’hétérogénéité entre les acteurs de la négociation. Ainsi, nous avons commencé par rappeler la

technologie des services web, avant de présenter les principales caractéristiques de ce protocole qui font

de lui un protocole simple, léger, efficace et facile à mettre en œuvre. Après cela, nous avons décrit les

différents paramètres de QoS compris dans le SLS négocié ainsi que les différents messages utilisés pour

se mettre d’accord sur un niveau de service. Ensuite, nous avons détaillé le modèle de fonctionnement du

protocole SLNP, qui s’appuie sur l’échange des messages de négociation entre les différentes entités, ainsi

que la composition que doit avoir chaque entité de négociation. Enfin, pour illustrer le fonctionnement

d’une négociation SLNP, nous avons donné un exemple concret où trois entités implémentant le

protocole SLNP tentent de se mettre d’accord sur un SLS de QoS.

L’un des atouts majeurs du protocole SLNP est son extensibilité qui lui permet d’être utilisé pour la

négociation de n’importe quel type de paramètre de niveau de service, comme les paramètres de sécurité

ou de mobilité. Cette extensibilité, qui découle de l’utilisation des services web, peut être réalisée en

étendant le schéma XML du SLS de QoS déjà défini à de nouveaux paramètres. Ceci permettra de

comprendre ces nouveaux paramètres par les différentes entités de négociation, mais nécessitera, bien sûr,

l’implémentation des traitements nécessaires à la négociation de ces paramètres. Dans le chapitre suivant,

nous allons étendre la négociation du protocole SLNP aux paramètres de sécurité, afin de permettre aux

différents domaines de garantir, non seulement la QoS, mais aussi la sécurité des services offerts lorsque

cette dernière est nécessaire. Cette extension doit prendre en compte l’influence mutuelle qui résulte d’une

telle association (QoS et sécurité).

85

Chapitre 4

Négociation conjointe de la

sécurité et de la QoS via SLNP

4.1 Introduction

Dans le deuxième chapitre, nous avons identifié les principaux besoins des réseaux de nouvelle

génération, notamment les besoins en termes de QoS, de sécurité et de mobilité. Ensuite, nous avons vu,

au chapitre précédent, comment la notion de niveau de service et le mécanisme de négociation permettent

de répondre à ces besoins en garantissant une offre de service de bout en bout pouvant couvrir les

aspects : QoS, sécurité et /ou mobilité. Cependant, nous pouvons remarquer que la majorité des projets

portant sur la gestion de niveau de service se sont surtout préoccupés de l’aspect QoS de l’offre de service.

Ceci est certainement dû aux besoins en matière de QoS qui ne cessent d’augmenter avec le

développement des nouveaux services tels que les services multimédia et les services temps réel. La

sécurité des services offerts par les réseaux NGN a été identifiée dés le début comme l’un des besoins les

plus importants, mais elle a été négligée dans le niveau de service. Aujourd’hui, avec tous les risques et les

attaques qui peuvent menacer le transport des services sur les réseaux NGN, mais surtout avec le

développement des réseaux sans fil et leurs déploiements à grande échelle, la sécurité doit être prise en

considération dans l’offre de services de bout en bout.

Dans ce chapitre, nous commençons par détailler notre première contribution ; il s’agit de

l’introduction des aspects de sécurité dans le niveau de service négocié avec le protocole SLNP. Nous

avons choisi d’utiliser le protocole SLNP afin de permettre la réalisation d’une négociation simultanée de

QoS et de sécurité, parce que c’est un protocole qui se distingue par sa capacité à offrir l’interopérabilité

aux différentes parties participant à une négociation (cf. section 3.4.2.2). De plus, la négociation de la QoS,

permise par SLNP, est indépendante vis-à-vis des modèles de QoS (cf. section 3.4.2.4) et est facilement

extensible aux aspects de sécurité (cf. section 3.4.2.5). Dans un premier temps, nous introduisons les

motivations de ce travail, c’est-à-dire la nécessité d’associer la sécurité à la QoS dans une négociation de

niveau de service. Ensuite, nous présentons quelques travaux qui ont tenté de considérer la QoS lors de la

négociation de la sécurité ou vice versa. Puis, nous détaillons l’extension de la négociation permise par

SLNP aux paramètres de sécurité. Nous définissons, tout d’abord, les paramètres de sécurité pouvant être

86

négociés avec SLNP, puis nous présentons la modification de la structure du SLS sur lequel porte la

négociation. Les détails du fonctionnement de l’extension de SLNP à la sécurité seront, ensuite, donnés et

les résultats des tests de performances de ce nouveau fonctionnement seront présentés.

Notre deuxième contribution consiste à étudier l’impact des mécanismes de sécurité sur les

paramètres de la QoS. En effet, afin de pouvoir réaliser une négociation conjointe de la QoS et de la

sécurité, l’impact de la sécurité sur la QoS doit être pris en compte lors d’une telle négociation. Pour cela,

une estimation de cet impact doit être effectuée. Ainsi, dans cette seconde partie, nous commençons par

présenter les travaux ayant traité de l’impact de la sécurité sur la QoS. Puis, nous détaillons nos travaux qui

nous ont permis de souligner l’importance de cet impact et d’effectuer des estimations de cet impact.

4.2 Motivations

Les attaques de sécurité identifiées dans la section 2.5.1.1 peuvent menacer sérieusement les services

transportés par les réseaux NGN. Cette menace est d’autant plus importante au niveau de l’accès avec

l’adoption des réseaux sans fil. Actuellement, les réseaux sans fil offrent des débits physiques de plus en

plus grands, mais restent toujours vulnérables aux attaques de sécurité, malgré le développement de

certains protocoles de sécurité spécifiques à ces réseaux, tels que WEP, WPA et WPA2 (cf. section

2.5.3.2). Ainsi, le transport des services sur les réseaux de nouvelle génération nécessite la mise en place

d’une sécurité de bout en bout plus efficace, telle que celle offerte au niveau ‘réseau’ par le protocole

IPSec ou celle fournie au niveau « Transport » par les protocoles TLS ou DTLS. En effet, ces protocoles

de sécurité permettent d’offrir une sécurité de bout en bout avec un niveau de sécurité plus ou moins

important. Ce niveau de sécurité peut être négocié entre les deux extrémités d’une offre de service en

utilisant les mécanismes propres à ces protocoles, c’est-à-dire le protocole IKE lorsque IPSec est utilisé ou

bien le protocole de poignée de main lorsque TLS ou DTLS est employé.

Considérons, ainsi, une offre de service entre les deux utilisateurs Client 1 et Client 2 de la Figure 4-1.

Cette offre nécessite des garanties en matière de QoS mais aussi en matière de sécurité. Supposons que la

QoS de bout en bout est négociée avec un protocole de négociation tel que le protocole SLNP, et que le

niveau de sécurité offert par IPSec est négocié par le protocole IKE (négociation des paramètres des

associations de sécurité). Dans cet exemple, nous nous intéressons à un paramètre de QoS, à savoir le

paramètre délai ainsi qu’à un paramètre de sécurité qui est l’algorithme de chiffrement permettant de

protéger la confidentialité des données échangées entre Client 1 et Client 2. Comme le montre la Figure

4-1, la première étape est constituée d’une négociation SLNP qui peut aboutir à l’établissement d’un SLS

de QoS avec un délai de bout en bout égal à 250 ms. Ce délai répond exactement aux besoins de la

communication entre Client 1 et Client 2. Ensuite, la deuxième étape est l’établissement d’un niveau de

sécurité permettant de protéger la confidentialité de cette communication. En utilisant le protocole IKE,

Client 1 et Client 2 parviennent à se mettre d’accord sur l’utilisation de l’algorithme AES-CBC pour

satisfaire leur besoin en matière de sécurité. Une fois les mécanismes de mise en œuvre de la QoS et de la

sécurité terminés, la communication peut commencer. A ce moment là, les deux extrémités de la

communication peuvent remarquer des anomalies au niveau de la QoS parce que le délai de bout en bout

est supérieur à 250 ms. Ce qui les laisse penser que l’accord établi sur la QoS par l’ensemble du réseau

n’est pas respecté. En réalité, l’accord établi par les différents acteurs de la négociation SLNP sur la QoS

est parfaitement respecté, mais le problème vient des délais supplémentaires introduits par les mécanismes

87

de sécurité IPSec lorsque les opérations de chiffrement et de déchiffrement sont réalisées. Ainsi, le fait de

négocier la QoS et la sécurité d’une manière indépendante et sans tenir compte de l’impact de la sécurité

sur la QoS a, en quelque sorte, faussé la négociation de la QoS. Par conséquent, lorsque la sécurité est

requise, il faut absolument considérer son impact sur la QoS quand cette dernière est négociée avec SLNP.

Figure 4-1 : Exemple de négociations indépendantes de QoS et de sécurité

Pour prendre en compte l’impact de la sécurité sur la QoS lors de la négociation de cette dernière,

nous pouvons, dans un premier temps, négocier les paramètres de sécurité avec les mécanismes offerts par

les protocoles de sécurité dans ce but (le protocole IKE ou le protocole de poignée de main). Les

paramètres de sécurité retenus pour la sécurisation du trafic permettent aux entités de négociation d’avoir

une idée sur l’importance de l’impact sur la QoS (cf. section 4.5), et de pouvoir prendre cet impact en

considération lors de la négociation de la QoS. Cependant, si les mécanismes de négociation propres aux

protocoles de sécurité (IPSec, TLS ou DTLS) sont mis en œuvre afin de se mettre d’accord sur les

paramètres de sécurité, la sécurité est, dans ce cas, automatiquement mise en place une fois les paramètres

de sécurité sélectionnés. Si, dans un deuxième temps, la négociation de la QoS de bout en bout avec SLNP

n’aboutit pas à l’établissement d’un accord sur l’offre de QoS, alors la sécurité déjà mise en place doit être

désinstallée (désactivée) et on a, ainsi, perdu du temps et des ressources inutilement.

Ainsi, la solution est de négocier les paramètres de sécurité avec un protocole de négociation tel que

SLNP. Cette négociation permet aux extrémités d’un échange de choisir un protocole de sécurité parmi

ceux qui peuvent être utilisés et de se mettre d’accord sur les paramètres de sécurité qui seront utilisés par

ce protocole dans la sécurisation de l’échange. Lorsque la sécurité est requise par un service, sa négociation

avec le protocole SLNP constitue une sorte de négociation en amont qui sera suivie par une deuxième

négociation propre au protocole de sécurité permettant de mettre en place les mécanismes de sécurité

(établissement des associations de sécurité en cas d’utilisation de IPSec, et établissement de la session et la

connexion lorsque TLS ou DTLS est utilisé).

88

Si nous voulons négocier la QoS et la sécurité avec SLNP, alors nous avons trois possibilités :

• Négocier la QoS, puis la sécurité : ce cas de figure est à écarter car il ne permet pas de prendre en

compte l’impact de la sécurité sur la QoS.

• Négocier la sécurité, puis la QoS : il est possible de négocier la sécurité avec SLNP, et de suivre cette

négociation par une autre qui va porter, cette fois, sur la QoS tout en tenant compte de l’impact de la

sécurité sur cette QoS. Cependant, il s’avère que ce cas de figure est très coûteux en termes de nombre

de passes de négociation et donc également en termes de consommation de ressources et de temps de

négociation. En effet, si on suppose que les ententes sur les paramètres de sécurité et sur les

paramètres de QoS nécessitent chacune d’elles deux passes de négociation, alors le nombre de passes

nécessaires à la négociation de ces deux aspects est de quatre. Il en est de même pour le temps de

négociation total qui est égal à la somme des temps nécessaires à la négociation de la QoS et de la

sécurité (Équation 4-1).

Tneg (qos, sec) = Tneg (qos) + Tneg (sec)

Équation 4-1 : Temps de négociation total (sécurité, puis QoS)

• Négocier simultanément la QoS et la sécurité : cette solution permet de réduire le nombre de passes

nécessaires à la négociation de ces deux aspects et donc, également, le temps passé dans une

négociation (Équation 4-2). En effet, si on considère l’exemple cité dans le cas précédent, alors la

négociation simultanée de la QoS et de la sécurité nécessiterait uniquement deux passes de

négociation au lieu de quatre et le temps de négociation pourrait être réduit d’une manière importante

pouvant aller jusqu’à 50% dans le meilleur des cas (Équation 4-2). De plus, lorsque l’ensemble du

réseau ne permet pas de satisfaire à la fois les besoins de QoS et de sécurité, il est plus facile et plus

rapide de trouver un compromis entre ces deux aspects dans le cas d’une négociation simultanée que

dans le cas de deux négociations successives.

Tneg (qos, sec) = Max (Tneg (qos), Tneg (sec))

Équation 4-2 : Temps de négociation total (sécurité et QoS)

Par conséquent, l’idéal est d’introduire la sécurité dans le niveau de service négocié avec SLNP afin

de permettre aux entités de négocier correctement un niveau de service de bout en bout couvrant à la fois

la QoS et la sécurité. Dans ce qui suit, nous détaillons les travaux que nous avons réalisés dans le cadre de

cette extension. Mais avant cela, nous réservons la section suivante à la description de quelques travaux qui

ont essayé de considérer conjointement la sécurité et la QoS afin de positionner nos travaux.

4.3 Travaux associant la QoS et la sécurité

Comme nous l’avons déjà mentionné auparavant, la sécurité peut peser lourdement sur la QoS. Dans

certains cas, comme pour les applications temps réel, l’introduction de la sécurité peut même causer une

dégradation complète de la QoS. Ainsi, certains travaux se sont intéressés à la gestion simultanée de ces

deux aspects. Cette section est composée de deux parties. Dans la première partie nous décrivons les

travaux présentés dans [VAN 05] et qui avaient pour objectif de considérer la QoS lors de la négociation

des paramètres de sécurité avec IPSec (IKE) afin de trouver un compromis pour assurer une QoS et une

89

sécurité minimale. Dans la deuxième partie, nous nous intéressons aux travaux décrits dans [DUF 07] qui

visaient à étendre le SLS de QoS défini dans le projet TEQUILA à des paramètres de sécurité afin

d’améliorer la gestion basée sur les politiques pour des services de type ‘multimédia’.

4.3.1 Négociation de sécurité IPSec tenant compte de la QoS

Dans cette partie, nous décrivons une proposition qui consiste à intégrer une négociation de QoS

dans la négociation de sécurité permise par le protocole de sécurité IPSec. Pour ce faire, nous rappelons,

tout d’abord, le mécanisme de négociation des paramètres de sécurité offert par IPSec. Ensuite, nous

décrivons la méthode utilisée afin de permettre la prise en compte de la QoS dans cette négociation.

4.3.1.1 Négociation de sécurité avec IPSec

Lorsqu’un échange de données entre deux entités (deux terminaux, deux passerelles de sécurité ou un

terminal et une passerelle) doit être sécurisé avec le protocole IPSec, il faut négocier les paramètres de

sécurité entre ces deux entités préalablement à la transmission de données. Cette négociation peut être

réalisée avec un mécanisme propre à IPSec qui s’appelle le protocole IKE (Internet Key Exchange) [HAR

98] et permet ainsi à l’émetteur et au récepteur de se mettre d’accord sur les paramètres des associations de

sécurité (SA). Une fois un accord établi, les associations de sécurité sont stockées dans la SAD (Security

Association Database) et seront utilisés, par la suite, dans la sécurisation des données échangées.

Figure 4-2 : Exemple de négociation de paramètres de sécurité avec IPSec

Le protocole IKE utilise le protocole ISAKMP (Internet Security Association and Key Management

Protocol) [MAU 98] pour négocier, établir, modifier et supprimer des associations de sécurité. Ainsi, ce

sont les messages ISAKMP qui permettent de se mettre d’accord sur les paramètres de sécurité. Un

message ISAKMP est constitué d’un entête de longueur fixe, suivi d’un ensemble de blocs où chaque bloc

90

indique le type du bloc suivant. Pour négocier des paramètres de sécurité, un bloc appelé « SA (Security

Association) » est utilisé. Ce bloc est toujours suivi d’un ou plusieurs blocs « Proposal » qui permettent de

faire des propositions (présentés par ordre de préférence) au vis-à-vis. Chaque bloc « Proposal » constitue

une proposition d’un ensemble d’attributs relatifs à une association de sécurité, et est toujours suivi d’un

ou plusieurs blocs « Transform » qui permettent de préciser les attributs choisis pour la SA en question. Le

destinataire d’un message ISAKMP doit répondre par un message identique où il ne conserve que la

proposition retenue. Dans la Figure 4-2, nous fournissons un exemple illustrant la négociation IPSec des

paramètres de sécurité. Dans cet exemple, l’émetteur propose deux ensembles de paramètres « TRANSF

1 » et TRANSF 2 » dans le message ISAKMP envoyé au récepteur. Le récepteur sélectionne l’ensemble

des paramètres proposés dans « TRANSF 1 ». Ce choix peut être expliqué par la préférence du récepteur

pour l’ensemble des paramètres correspondant au niveau de sécurité le plus fort. En effet, la

confidentialité des données est mieux protégée quand on utilise l’algorithme 3DES (Triple DES) que

lorsqu’on emploie l’algorithme DES, et l’authentification est plus robuste avec HMAC-SHA-256, qu’avec

HMAC-SHA-128.

4.3.1.2 Intégration de la QoS dans la négociation IPSec

Lorsqu’on étudie l’impact de la sécurité sur la QoS (cf. section 4.5), nous pouvons voir que cet

impact dépend des algorithmes choisis pour réaliser les opérations de sécurisation des données échangées.

En effet, sans rentrer pour l’instant dans les détails, nous pouvons dire qu’un algorithme complexe aura,

par exemple, un coût plus important en termes de délai de traitements que celui d’un algorithme simple.

Figure 4-3 : Exemple d’une négociation de sécurité IPSec en associant la QoS

Dans les travaux décrits dans [WEI 07], l’auteur a constaté qu’un utilisateur ne choisit pas forcement

un algorithme complexe s’il estime que le degré de sécurité avec un algorithme simple répond

parfaitement à ses besoins en matière de sécurité. En partant de cette constatation, l’auteur a introduit une

notion de QoS lors de la négociation des paramètres de sécurité d’une SA avec IPSec. Ceci a été réalisé en

91

proposant de respecter les contraintes de QoS lors de la sélection des paramètres de sécurité. A titre

d’exemple, si un utilisateur veut sécuriser une application de type temps réel, alors il doit choisir des

paramètres de sécurité dont l’influence ne perturbe pas la QoS de l’application ; par exemple, le délai de

bout en bout ne doit pas dépasser 150 ms et le taux de perte des paquets doit rester inférieur à 1%. Plus

concrètement, l’idée consiste à introduire un champ appelé « QoS » dans l’entête du protocole ISAKMP.

Ainsi, la valeur que peut avoir ce champ peut modifier la négociation classique d’IPSec (ISAKMP). La

Figure 4-3 donne un exemple de la négociation de sécurité avec QoS.

Dans cet exemple, l’émetteur propose deux ensembles de paramètres de sécurité (deux

transformations : TRANSF 1 et TRANSF 2) en ajoutant à l’entête du message ISAKMP un champ

« QoS » dont la valeur est égale à « Video ». Cette indication sur le type de l’application à sécuriser peut

aider le récepteur à choisir la suite de paramètres adéquate. Dans l’exemple considéré (Figure 4-3), le

récepteur sait que s’il choisit les paramètres de sécurité proposés dans TRANSF 2, alors l’impact de la

sécurité peut compromettre la QoS de l’application de type « Video ». Ainsi, il va choisir l’ensemble des

paramètres TRANSF 2, s’il juge que la vidéo est suffisamment protégée par les paramètres correspondant,

ou bien refuser l’exécution de l’application. Ceci permet de réaliser un compromis entre une QoS

minimale et une sécurité minimale, dans la mesure du possible.

Ces travaux nous donnent une idée de l’importance de l’impact de la sécurité sur la QoS, et

confirment notre orientation vers une association entre la sécurité et la QoS dans une négociation de

niveau de service. Cependant, nous pensons que la manière avec laquelle la QoS est prise en compte lors

de la négociation des paramètres de sécurité peut être améliorée. En effet, il n’existe aucune règle précise

permettant de déterminer l’ensemble de paramètres de sécurité le plus convenable. Dans la suite de ce

chapitre (cf. section 4.5.2) nous allons voir comment nous essayons de quantifier l’impact de la sécurité sur

la QoS afin de pouvoir le prendre en compte lors de la négociation de la QoS. Ceci permet d’établir un

accord sur les paramètres de sécurité et de QoS tout en se basant sur des valeurs exactes.

4.3.2 Association de la sécurité à la QoS dans la gestion par politique

Dans cette partie, nous présentons les travaux décrits dans [DUF 05] et [DUF 07] qui avaient pour

objectif d’intégrer des paramètres de sécurité dans le SLS utilisé pour garantir un niveau de service dans un

environnement de gestion par politique.

Dans ces travaux, les paramètres de sécurité définis peuvent être de type « quantitatif » ou bien

encore de type « qualitatif », ce qui permet aux fournisseurs mais aussi aux utilisateurs de négocier un

niveau de sécurité. En effet, les auteurs ont introduit deux niveaux d’interprétation des paramètres de

sécurité : un niveau abstrait, exprimé d’une manière qualitative qui peut être compris par les utilisateurs

non experts, et un niveau précis, exprimé d’une manière quantitative, qui peut être spécifié par les

utilisateurs experts et les fournisseurs. Pour ce faire, un ensemble de paramètres de sécurité pouvant être

interprétés de deux manières ont été définis.

• Les paramètres qualitatifs représentent les services de sécurité qui peuvent être fournis. Ces services

sont au nombre de quatre : la confidentialité, l’intégrité, l’authentification et la protection contre le

rejeu (non-rejeu). Pour les trois premiers services, quatre niveaux de sécurité ont été identifiés :

« high », « medium », « default » et « no ». En ce qui concerne le non-rejeu, deux états uniquement ont

été identifiés : « on » et « off ». Sachant que le niveau d’un service de sécurité dépend essentiellement

92

de l’algorithme utilisé dans l’offre de service, une classification des algorithmes utilisés permet

d’identifier les algorithmes correspondant à chaque niveau. Ceci permet la transcription en un SLS de

sécurité quantitatif afin d’établir un niveau de service.

• Les paramètres quantitatifs de sécurité consistent essentiellement en deux sous-ensembles de

paramètres. Tout d’abord, les paramètres de service de confidentialité qui regroupent : le nom et la

catégorie de l’algorithme sélectionné, la taille du bloc, le mode d’opération, la longueur de la clé et le

nombre de rounds de transformation. Vient ensuite les paramètres des services authentification,

intégrité et non-rejeu qui sont, généralement, manipulés ensemble. Ainsi, ce deuxième sous-ensemble

de paramètres est constitué de : l’algorithme et le type d’authentification, la longueur de la clé, la

fonction de hachage et l’état de la protection contre le rejeu (non-rejeu).

Ces travaux viennent, également, confirmer notre orientation vers une association entre la sécurité et

la QoS dans une négociation de niveau de service. Cependant, nous n’avons pas besoin de définir des

paramètres qualitatifs. En effet, nous allons, dans le chapitre suivant, adapter la négociation SLNP aux

environnements NGN en basant cette négociation sur le profil utilisateur. Ceci facilitera la négociation

pour les utilisateurs non-experts.

Ensuite, lorsque les paramètres de sécurité quantitatifs sont négociés, il est nécessaire de spécifier les

valeurs d’un sous-ensemble de paramètres pour chaque service, comme le nom, la catégorie et le mode

d’opération de l’algorithme ainsi que la taille du bloc et celle de la clé pour le service de confidentialité.

Chacun de ces paramètres peut avoir une valeur parmi un ensemble de valeurs possibles. Or, la

combinaison des valeurs de tout ce sous-ensemble des paramètres peut ne pas correspondre à un

algorithme existant. Ainsi, il nous semble qu’il est préférable de négocier, pour chaque service de sécurité,

l’algorithme complet parmi la liste des algorithmes existants réellement. C’est le cas de la négociation des

algorithmes de sécurité par ISAKMP dans le cadre d’une sécurisation IPSec (Figure 4-2).

Concernant la sécurisation des échanges, les auteurs proposent d’assurer un niveau de sécurité en

utilisant IPSec ou TLS. Il est vrai qu’IPSec peut être considéré comme une solution universelle qui permet

de sécuriser à la fois les trafics basés sur TCP et UDP. Mais, lorsqu’on ne peut pas utiliser IPSec pour

sécuriser une application basée sur UDP, il est, dans ce contexte particulier, impossible de protéger cette

application. Pour pallier à ce problème, nous allons considérer le protocole IPSec pour la sécurisation au

niveau ‘Réseau’ de tout type d’échange, et les protocoles TLS et DTLS pour la protection des

transmissions au niveau « Transport ».

Dans ces travaux, les auteurs ont insisté sur l’importance de l’impact de la sécurité sur la QoS en

essayant d’identifier quel type de service de sécurité (confidentialité, intégrité, non-rejeu, etc.) pourrait

avoir un impact plus ou moins important sur tel type de ressources (CPU, mémoire et bande passante).

Cette classification sera présentée dans la partie que nous réservons à l’étude de l’impact (cf. section 4.5.1),

et sera complétée par les mesures que nous avons réalisées afin de quantifier cet impact (cf. section 4.5.2).

4.3.3 Résumé

Dans cette la section 4.3, nous avons décrit un ensemble de travaux qui ont essayé d’associer la QoS

à la sécurité ou vice versa, tout en situant nos travaux par rapport à ceux déjà réalisés. Dans la section

93

suivante, nous détaillons notre première contribution qui se résume dans l’extension de la négociation du

niveau de service offerte par SLNP aux aspects de sécurité.

4.4 Intégration de la sécurité dans la négociation SLNP

L’intégration des aspects de sécurité dans la négociation du protocole SLNP passe, tout d’abord, par

la définition des paramètres de sécurité pouvant être négociés avec ce protocole. Ces paramètres seront,

ensuite, introduits dans le SLS négocié afin de permettre sa compréhension par les différentes entités de

négociation. Nous donnons, par la suite, un scénario illustrant la négociation conjointe de la QoS et de la

sécurité avec SLNP. Enfin, nous détaillons le nouveau fonctionnement du protocole SLNP qui permet de

considérer les aspects de sécurité dans la négociation sans oublier de prendre en compte l’impact de la

sécurité sur la QoS dans une telle négociation.

4.4.1 Définition des paramètres de sécurité négociés via SLNP

La négociation du niveau de service via SLNP ne prend en compte que la partie QoS (cf. section

3.4.3). Or, nous avons vu, au début de ce chapitre, que la sécurité peut être introduite dans cette

négociation. Les protocoles de mise en œuvre de la sécurité les plus utilisés sont : le protocole IPSec, qui

permet de sécuriser les échanges au niveau de la couche « Réseau », et les protocoles TLS et DTLS, qui

permettent d’introduire de la sécurité au niveau de la couche « Transport ». L’étude de ces protocoles,

réalisée dans la section 2.5.2, nous permet de déterminer les paramètres de sécurité pouvant être négociés

avec SLNP. Ces paramètres seront définis relativement aux protocoles étudiés. Ainsi, la sécurité offerte

suite à une négociation sera fondée sur l’utilisation des protocoles IPsec, TLS et/ou DTLS.

Dans cette section, nous fournissons la structure XML de ces différents paramètres de sécurité en

utilisant la même représentation graphique introduite dans la section 3.4.3.

4.4.1.1 Portée de la sécurité

La portée de la sécurité (securityScope) permet de spécifier les deux extrémités entre lesquelles un

échange de données est sécurisé. Ces deux extrémités constituent deux entités pouvant être représentées

par une adresse IPv4 ou IPv6 (Figure 4-4). Quand la sécurité est assurée par le protocole IPSec, la portée

est constituée des deux pairs entre lesquels une ou deux associations de sécurité sont mises en place, le

nombre d’associations de sécurité mises en place dépend des sens sécurisés (un ou deux sens). Ces pairs

peuvent être deux passerelles de sécurité, deux terminaux ou encore un terminal et une passerelle de

sécurité. Dans le cas où TLS ou DTLS est utilisé afin de sécuriser la transmission des donnés, la portée de

la sécurité fait généralement référence au client et au serveur entre lesquels une session sécurisée est créée.

Figure 4-4 : Structure de l’élément ‘securityScope’

94

4.4.1.2 Protocole de sécurité

Ce paramètre permet de sélectionner un ou plusieurs protocoles de sécurité à mettre en œuvre parmi

les deux types de sécurité disponibles : IPSec et TLS/DTLS. Comme nous pouvons le remarquer sur la

Figure 4-5, chacun des deux éléments « ipsec » et « tls/dtls » composant l’élément ‘securityProtocol’ a une

occurrence minimale égale à 0 et une occurrence maximale égale à l’infini. Ceci implique qu’on peut

utiliser : un seul protocole de sécurité une seule fois, un protocole de sécurité plusieurs fois ou n’importe

quelle empilement de plusieurs sécurités IPSec et TLS/DTLS. Par exemple, on peut empiler deux

sécurités IPSec où la première nous permet de protéger l’intégrité, à l’aide du mécanisme AH, et où la

seconde est utilisée afin de fournir la confidentialité grâce au mécanisme ESP. On peut, également,

sécuriser un trafic UDP au niveau de la couche « Réseau » avec IPSec, mais aussi au niveau supérieur

(couche « Transport ») en utilisant DTLS.

Figure 4-5 : Structure de l’élément ‘securityProtocol’

Pour chacun de ces deux types de sécurité, un ensemble de paramètres doit être négocié afin de

spécifier le niveau de sécurité requis par la transmission. Ces deux ensembles de paramètres sont détaillés

dans les sections suivantes.

4.4.1.3 Paramètres de sécurité IPSec

Nous avons vu au deuxième chapitre, que le protocole IPsec se fonde sur la notion de SA pour

fournir des services de sécurité et qu’une SA est caractérisée, essentiellement, par des paramètres tels que

la durée de vie, le mécanisme, le mode et les algorithmes utilisés pour la confidentialité, l’intégrité et

l’authentification. Ces paramètres, qui déterminent le niveau de sécurité d’un échange de données, nous

ont aidés à déterminer les paramètres d’une sécurité IPsec qui peuvent être négociés via le protocole

SLNP. Ainsi, lorsque le protocole IPSec doit être utilisé, les paramètres qui doivent obligatoirement être

négociés avec SLNP sont (Figure 4-6) : ‘saLifetime’, ‘mode’, ‘mecanism’, confidentiality’ et ‘integrity’. Il

est, également, possible de négocier le paramètre ‘no-reply’.

Figure 4-6 : Structure de l’élément ‘ipsec’

95

4.4.1.3.1 Temps de vie d’une association de sécurité

Le paramètre temps de vie d’une association de sécurité (SA) permet de négocier cette durée entre les

deux extrémités d’une SA. Le temps de vie d’une SA peut être exprimé comme une période ou un nombre

d’octets. Ainsi, l’élément ‘saLifetime’, représentant cette durée de vie, (Figure 4-7) permet de choisir entre

les deux éléments ‘duration’ et ‘nbBytes’. A la fin de ce temps, une SA est terminée et doit être remplacée

par une nouvelle si nous voulons continuer à fournir des services de sécurité.

Figure 4-7 : Structure de l’élément ‘saLifetime’

4.4.1.3.2 Mécanisme

Ce paramètre permet de spécifier le mécanisme IPSec que les entités à l’extrémité de la SA veulent

mettre en œuvre, c’est-à-dire AH ou ESP. Par conséquent, l’élément ‘mecanism’ permet de choisir entre

deux valeurs : ‘ah’ et ‘esp’ (Tableau 4-1). Le choix du mécanisme de sécurité ne dépend que des besoins de

l’initiateur de la négociation en matière de sécurité. En effet, si cette entité a besoin d’un service de

confidentialité, elle ne peut que choisir le mécanisme ESP car le mécanisme AH n’offre que les services

d’intégrité, authentification et protection contre le rejeu, alors qu’ESP peut assurer, également, la

confidentialité des données.

Elément XML Valeurs possibles

ipsec � mecanism ah, esp

ipsec � mode transport, tunnel

ipsec � integrity hmac-sha1-96, aes-xcbc-mac-96, hmac-md5-96, null

ipsec � confidentiality 3des-cbc, aes-cbc, aes-ctr, des-cbc, null

ipsec � noReplay � state on, off

ipsec � noReplay � size 32, 64

tls-dtls � integrity sha1, md5, null

tls-dtls � confidentiality idea, rc2-40, des-40, 3des, fortezza, rc4-40, rc4-128, null

Tableau 4-1 : Valeurs possibles des éléments de sécurité

4.4.1.3.3 Mode d’opération

Le paramètre mode d’opération, représenté par l’élément ‘mode’ (Figure 4-6), permet de choisir l’un

des deux modes possibles, à savoir le mode ‘transport’ ou le mode ‘tunnel’ (Tableau 4-1). Le choix d’un

mode d’opération pour IPsec dépend de ce que nous voulons protéger (les données de protocole de

transport ou la totalité du paquet IP). En effet, l’utilisation du mode tunnel permet de masquer les

adresses IP source et destination afin de protéger la communication contre les attaques d’analyse de trafic.

Cela dépend, également, de la nature des nœuds entre lesquels l’association de sécurité (SA) est établie. En

96

effet, si l’une des deux extrémités de la SA est une passerelle de sécurité, il est fortement recommandé

d’utiliser le mode tunnel.

L’authentification et l’intégrité sont des services inséparables, et sont garantis grâce à un seul et même

algorithme. Par conséquent, ils seront, dans la suite de ce mémoire, désignés conjointement sous le terme

« intégrité ».

4.4.1.3.4 Confidentialité

La confidentialité des données ne peut être assurée qu’avec le mécanisme ESP. Quand elle est

sélectionnée, le niveau de confidentialité dépend de l’algorithme utilisé. Ainsi, ce service, correspondant à

l’élément ‘confidentiality’, peut prendre une des valeurs de la liste des choix des algorithmes pouvant

assurer la confidentialité avec le protocole IPSec (Tableau 4-1). Les algorithmes formant cette liste ont été

identifiés sur la base des algorithmes définis dans [SCH 05a], à savoir « TripleDES-CBC », « AES-CBC »,

« AES-CTR », « DES-CBC » et « NULL ».

4.4.1.3.5 Intégrité

L’intégrité peut être assurée grâce au mécanisme AH ou ESP. Elle peut ne pas figurer parmi les

services de sécurité fournis par une SA. C’est le cas lorsque le mécanisme ESP est utilisé pour fournir

uniquement de la confidentialité. Le niveau de ce service de sécurité ne dépend que de l’algorithme

employé. Ainsi, l’intégrité, correspondant à l’élément ‘integrity’, peut être exprimée par un des algorithmes

figurant dans la liste suivante (Tableau 4-1) : « HMAC-SHA1-96 », « AES-XCBC-MAC-96 », « HMAC-

MD5-96 » et « NULL ». Les algorithmes de cette liste ont, également, été définis sur la base des

algorithmes définis dans [SCH 05a].

Remarque : Ces deux paramètres de sécurité (confidentialité et intégrité) ne peuvent pas être « null » en

même temps car il n’y aurait, dans ce cas, aucune sécurité. Quand le protocole ESP est utilisé pour fournir

la confidentialité et l’intégrité, on considère que des algorithmes séparés sont utilisés. En effet,

actuellement, les algorithmes combinés font encore l’objet de recherche. Cependant, si dans le futur, IPsec

adopte d’un ou de plusieurs de ces algorithmes, il sera possible de les négocier en modifiant une partie du

schéma XML du SLS. Notons, également, que la liste des algorithmes utilisés actuellement, recommandés

dans [SCH 05a], est évolutive car de nouveaux algorithmes peuvent apparaître, ne serait que suite à la

découverte d’une faille dans ceux actuellement utilisés.

4.4.1.3.6 Non-rejeu

C’est une forme d’intégrité qui permet de rejeter les paquets rejoués. Le non-rejeu, correspondant à

l’élément ‘noReply’, est un service de sécurité optionnel. Par conséquent, il s’agit de l’unique paramètre

optionnel parmi les paramètres IPSec négociés avec SLNP. Ce service est assuré par un numéro d’ordre

inséré dans les entêtes AH et ESP. Ce numéro d’ordre peut être une valeur de 32 bits (sn : sequence

number) ou de 64 bits (esn : extended sequence number). Ainsi, l’élément ‘noReplay’ est composé de deux

sous-éléments (Figure 4-8). Le sous-élément ‘state’ qui donne l’état de ce service et qui peut avoir la

valeur ‘on’ lorsque ce service est activé, ou la valeur ‘off’ dans le cas contraire (Tableau 4-1). Lorsqu’il est

activé, le deuxième sous-élément ‘size’, qui est optionnel (occurrence minimale égale à 0), permet de se

mettre d’accord sur la taille du numéro d’ordre en bits qui peut être égale à 32 ou 64 (Tableau 4-1).

97

Figure 4-8 : Structure de l’élément ‘noReplay’

4.4.1.4 Paramètres de sécurité TLS-DTLS

Dans la partie consacrée à la description des protocoles de sécurité (section 2.5.2), nous avons vu que

les protocoles TLS et DTLS ont quasiment le même fonctionnement. En effet, mis à part quelques

mécanismes qui ont été ajoutés à DTLS afin de pallier à la non-fiabilité d’UDP, nous avons vraiment les

mêmes principes, la même architecture et les mêmes mécanismes et algorithmes de sécurité. De plus,

suivant la nature de l’application sécurisée, on utilise ou bien TLS, ou bien DTLS. Par conséquent, les

paramètres de sécurité négociés avec SLNP pour une sécurité au niveau transport seront regroupés dans

un seul et même élément ‘tls-dtls’ (Figure 4-9).

Les protocoles TLS et DTLS se fondent sur les notions de session et de connexion afin d’offrir des

services de sécurité. Ces services de sécurité sont offerts par le protocole d’enregistrement (record

protocol) et couvrent l’intégrité et la confidentialité. Le non-rejeu est un service qui est souvent

automatiquement présent. Par conséquent, une session est caractérisée par une suite de chiffrement

(cipher suite) composée des paramètres de sécurité suivants : un algorithme pour la confidentialité et un

autre pour l’intégrité. Ces paramètres, qui déterminent le niveau de sécurité d’un échange de données entre

un client et un serveur, nous permettent de déterminer les paramètres d’une sécurité TLS-DTLS qui

peuvent être négociés avec le protocole SLNP. Ainsi, lorsque le protocole TLS-DTLS doit être utilisé, les

paramètres qui doivent obligatoirement être négociés avec SLNP sont uniquement : ‘confidentiality’ et

‘integrity’ (Figure 4-9).

Figure 4-9 : Structure de l’élément ‘tls-dtls’

4.4.1.4.1 Integrité

Le service d’intégrité peut être assuré grâce à l’utilisation d’un algorithme parmi ceux figurant dans la

liste des algorithmes pouvant être offerts par TLS-DTLS. Le niveau de l’intégrité dépend uniquement de

l’algorithme utilisé. Par conséquent, l’élément ‘integrity’ correspondant à ce service permet le choix d’un

des algorithmes de la liste suivante : ‘sha1’, ‘md5’ ou ‘null’ (Tableau 4-1).

4.4.1.4.2 Confidentialité

Le service de confidentialité est garanti en utilisant un algorithme de confidentialité parmi ceux

offerts par TLS-DTLS. Le niveau de ce service ne dépend que de l’algorithme employé. Par conséquent,

98

l’élément ‘confidentiality’, correspondant à ce service, permet de choisir parmi l’un des algorithmes de la

liste suivante : ‘idea’, ‘rc2-40’, ‘des-40’, ‘des’, ‘3des’, ‘fortezza’, ‘rc4-40’, ‘rc4-128’ ou ‘null’ (Tableau 4-1).

Synthèse : Dans cette partie, nous avons définis les paramètres de sécurité qui doivent être négociés

avec SLNP lorsqu’un niveau de sécurité est requis pour une transmission donnée. Lors de cette définition,

nous avons fournis les schémas XML (représentations graphiques) des différents éléments correspondant

à ces paramètres. Dans la partie suivante, nous définissons le nouveau schéma XML du SLS négocié avec

SLNP afin de permettre à une telle négociation de couvrir à la fois des aspects de QoS et de sécurité.

4.4.2 Définition d’un SLS de QoS et de sécurité

Le schéma XML d’un SLS de QoS, proposé dans [CHA 07] et décrit dans la section 3.4.3, est un

schéma générique qui comprend tous les paramètres sur lesquels peut porter la négociation de QoS avec

SLNP. Ce schéma décrit la composition de l’élément ‘sls’ et sa structure hiérarchique. En effet, l’élément

‘sls’ est composé d’autres éléments tels que l’élément ‘flowId’ qui sert à identifier le flux concerné par la

négociation, ou encore l’élément ‘serviceSchedule’ qui permet de préciser le temps de service. Dans cette

partie, nous proposons d’étendre le schéma XML du SLS de QoS aux paramètres de sécurité définis dans

la section 4.4.1. Ainsi, dans ce qui suit, nous décrivons les modifications apportées à ce schéma XML afin

de permettre la négociation simultanée de la sécurité et de la QoS.

Figure 4-10 : Structure d’un SLS de QoS et de sécurité

Le SLS de QoS comprend des paramètres qui sont communs à la QoS et à la sécurité, et qui resteront

inchangés. Ces paramètres sont : l’identificateur du SLS (slsId), l’identificateur de flux (flowId), les

paramètres de négociation (negotiationParameters) et la fiabilité (reliability). Dans un premier temps, les

paramètres de QoS, à savoir le scope de la QoS (scope), le temps de service (serviceSchedule), la garantie

de performance (performanceGuarantee), la conformité du trafic (trafficConformity) et le traitement

d’excès (excessTreatement) sont tous regroupés dans un unique paramètre appelé paramètres de QoS

(qosParameters). L’élément ‘qosParameters’ est un élément obligatoire (occurrence minimale et

occurrence maximale égales à 1) parce qu’une négociation de niveau de service avec SLNP doit, au moins,

porter sur la QoS. Dans un second temps, nous ajoutons un élément regroupant tous les paramètres de

sécurité que nous appelons ‘secParameters’ (Figure 4-10). Cet élément est composé de deux sous-

éléments, à savoir le scope de sécurité ‘scope’ ainsi que le protocole de sécurité ‘securityProtocol’ (Figure

4-10). Notons que l’élément ‘scope’ contenu dans l’élément ‘qosParameters’ et celui de l’élément

99

‘secParameters’ peuvent avoir des significations différentes. En effet, d’un point de vue QoS, le point

d’entrée et le point de sortie du scope désignent les deux bouts d’une connexion qui peuvent être par

exemple les deux terminaux communicants. Alors que d’un point de vue sécurité, si on utilise IPSec, alors

les points d’entrée et de sortie désignent les deux extrémités d’une association de sécurité. Celles-ci

pourraient être, par exemple, les passerelles de sécurité derrière lesquelles se trouvent les deux terminaux.

Le deuxième élément permet de sélectionner un ou plusieurs protocoles de sécurité pour lesquels un

ensemble de paramètres sont négociés. Ainsi, l’élément ‘ipsec’ contient les éléments définis auparavant, à

savoir ‘saLifetime’, ‘mecanism’, ‘mode’, ‘integrity’, ‘confidentiality’ et ‘noReplay’, alors que l’élément ‘tls-

dtls’ inclut les éléments ‘integrity’ et ‘confidentiality’.

Afin de permettre une négociation optimisée de la sécurité, nous devons nous conformer au modèle

de négociation détaillé dans le chapitre précédent (section 3.4.5). Ceci implique que tous les paramètres de

sécurité de chacun des deux protocoles (IPSec et TLS-DTLS) doivent être composés de deux valeurs : une

valeur demandée « Requested » et une valeur offerte « Offered ». A titre d’exemple, nous considérons

l’élément ‘saLifetime’ qui représente le paramètre temps de vie d’une SA pour une sécurité IPSec. Pour se

conformer au modèle de négociation, ce paramètre sera constitué de deux éléments ‘saLifetimeRequested’

et ‘saLifetimeOffered’ où chacun de ces deux éléments permet d’exprimer le temps de vie d’une SA sous

forme d’une durée ‘duration’ ou d’un nombre d’octets ‘nbBytes’ (Figure 4-11).

Figure 4-11 : Structure supposée de l’élément ‘saLifetime’

Cette distinction de deux champs au niveau de chaque paramètre de sécurité permet à l’initiateur de la

négociation de demander un certain niveau de sécurité relatif à un protocole de sécurité, et au destinataire

de répondre à cette proposition en acceptant cette demande, en la refusant ou en proposant une

alternative. Or, cette alternative consiste à proposer d’autres valeurs pour les paramètres de sécurité du

même protocole demandé par l’entité initiale. Autrement dit, si l’initiateur demande un niveau de sécurité

impliquant le protocole IPSec, alors le destinataire ne pourra pas proposer une alternative utilisant le

protocole TLS ou DTLS. Par conséquent, pour optimiser la négociation et permettre de proposer une

alternative relative au protocole demandé ou en spécifiant des paramètres pour un autre type de sécurité,

nous remontons la distinction de deux champs (demandé et offert) au niveau de l’élément protocole.

Ainsi, l’élément ‘securityProtocol’ sera composé de deux sous-éléments : ‘securityProtocolRequested’ et

‘securityProtocolOffered’, comme l’indique la Figure 4-12.

Figure 4-12 : Structure réelle de l’élément ‘securityProtocol’

100

Notons que dans le cas d’une demande d’un niveau de sécurité où plusieurs types de sécurité sont

empilés, les deux éléments ‘securityProtocolRequested’ et ‘securityProtocolOffered’ sont composés du

même nombre d’éléments (‘ipsec’ et/ou ‘tls-dtls’). Il faut également noter que dans ce cas bien précis

(empilement de protocoles de sécurité), le i-ème élément de ‘securityProtocolOffered’ représente les

paramètres offerts par rapport au i-ème élément de ‘securityProtocolRequested’ composés des paramètres

initialement demandés.

La nouvelle structure du SLS est décrite par le schéma XML représenté dans la Figure 4-10. Cette

nouvelle forme du SLS va permettre au protocole SLNP d’assurer la négociation conjointe de la QoS et de

la sécurité. Les paramètres de sécurité intégrés au SLS sur lequel porte la négociation étant à présent

définis, nous allons pouvoir définir le nouveau fonctionnement de cette négociation. Pour cela, nous

réservons la section suivante à la description d’un certain nombre de scénarii de négociation. Ceci

permettra de se familiariser avec le fonctionnement général de la nouvelle négociation tout en identifiant

les principales modifications devant être apportées à ce fonctionnement.

4.4.3 Scénarios d’utilisation de SLNP pour offrir la QoS et la sécurité

Un SLS peut être négocié au sein d’un même domaine, nous parlons dans ce cas d’une négociation

intra-domaine, ou encore entre différents domaines et il s’agit alors d’une négociation inter-domaines.

Ainsi, le premier scénario fourni dans cette section illustre une négociation intra-domaine, alors que les

autres exemples montrent le déroulement d’une négociation inter-domaines.

Dans tous ces exemples de négociation conjointe, nous mettons en avant un ensemble de paramètres

de QoS et de sécurité. Par souci de simplification, nous considérons uniquement le paramètre délai pour la

QoS, et les paramètres protocole et algorithme de confidentialité pour la sécurité.

Nous supposons qu’une entité SLNP dispose de toutes les informations concernant la QoS dans son

propre domaine, en particulier le délai de transmission de données produit sur son domaine relativement à

l’offre qu’elle peut faire. Nous supposons, également, qu’elle est en mesure d’obtenir toute information sur

les propriétés de sécurité (protocoles supportés, algorithmes supportés, performances, etc.) de n’importe

quelle entité (terminal, routeur, passerelle de sécurité, etc.) appartenant à ce domaine (algorithmes

supportés, temps des traitements, etc.). Ces informations, stockées dans la RMF (Resource Management

Function) de chaque entité de négociation, permettent à ces entités d’assurer la négociation en échangeant

et en traitant correctement les messages SLNP.

Pour chacun des exemples présentés dans la suite de cette section, nous fournissons une vue

d’ensemble du réseau qui permet de distinguer les différentes entités mises en jeu, ainsi que le MSC

(Message Sequence Chart) correspondant afin d’expliquer clairement le déroulement de la négociation.

4.4.3.1 Exemple d’une négociation intra-domaine

Dans ce premier scénario (Figure 4-13), l’utilisateur « Client 1 » du « LAN1 » négocie un niveau de

service pour sa communication avec l’utilisateur « Client 2 » du « LAN2 ». Il s’agit d’une négociation intra-

domaine car les deux réseaux locaux « LAN1 » et « LAN2 » appartiennent au même domaine « Domaine

1 » dont le responsable est l’entité de négociation « SE ». Le SLS que veut établir le « Client 1» concerne

une communication de type voix sur IP (VoIP : Voice over IP), et est caractérisée par des paramètres de

QoS comme l’identification de flux, la portée de la QoS, la garantie de performance (délai, gigue, taux de

101

perte, bande passante). Ce SLS est également concernée par un niveau de sécurité que demande le « Client

1 », et qui est caractérisé par l’utilisation du protocole DTLS afin de protéger la confidentialité des

données grâce à l’algorithme « 3des » (Figure 4-14).

Figure 4-13 : Scénario 1 - négociation intra-domaine

L’utilisation du protocole DTLS et de l’algorithme « 3des » pour la confidentialité sont bien

évidemment supportés par le terminal du « Client 1 ». Par ailleurs, ce niveau de sécurité (protocole DTLS

et algorithme « 3des ») est également supporté par le « Client 2 » ; ce qui pourra permettre de conclure

rapidement un contrat de niveau de service si l’offre de QoS ne pose pas de problème.

SLS QoS � Garantie de performance � Délai : D = 200 ms

Sécurité � Protocole : P = dtls Sécurité � Dtls � Confidentialité : A = 3des

Figure 4-14 : SLS négocié dans le scénario 1

Pour décrire le déroulement de la négociation de niveau de service entre le « Client 1 » et son

responsable de domaine « SE », nous nous basons sur le MSC fourni dans la Figure 4-15. Sur ce MSC,

ainsi que sur ceux des Figures 4-18 et 4-20, nous pouvons voir que le Client 1 participe directement à la

négociation de niveau de service utilisant SLNP. Cette participation est permise grâce à

l’introduction d’une couche de négociation au niveau des terminaux des utilisateurs (cf. section

5.3.4).

Afin d’établir un niveau de service pour sa communication avec le « Client 2 », le « Client 1 » prépare

sa requête « Negotiate » avec les paramètres négociés et les valeurs correspondant aux niveaux requis pour

la QoS et la sécurité (Figure 4-14). Ensuite, cette requête est envoyée vers le responsable de domaine

« SE ». Cette entité de négociation, va étudier la recevabilité de cette requête en interrogeant la RMF sur le

délai qu’elle peut offrir pour cette communication, mais aussi sur les caractéristiques de sécurité des deux

entités « Client 1 » et « Client 2 ». En effet, en fonction des informations fournies par la RMF, la SE va

regarder, tout d’abord, si le niveau de sécurité demandé par le « Client 1 » peut être offert par le « Client

2 », ce qui est le cas de notre exemple. Ensuite, le délai de bout en bout est calculé sur la base du délai de

circulation des données sur le réseau (120 ms) auquel on ajoute les délais résultant des opérations de

chiffrement et de déchiffrement (8 ms + 8 ms). Ces délais supplémentaires sont estimés par la SE en

fonction du protocole et de l’algorithme utilisé mais aussi en fonction des performances des terminaux des

utilisateurs « Client 1 » et « Client 2». Ainsi, dans cet exemple, le délai de bout en bout requis par la

102

communication peut être largement satisfait (200 > 136) et le niveau de sécurité proposé par « Client 1 »

(tls, 3des) peut également être offert par « Client 2 ». Par conséquent, l’entité de négociation peut accepter

(Response-Ack) le niveau de service demandé par « Client 1 ».

Figure 4-15 : MSC du scénario 1

Une fois l’accord établi, le SLS doit être enregistré au niveau de la SE et les procédures de

configuration de la QoS et de la sécurité doivent être lancées. La QoS est assurée en configurant les

routeurs impliqués dans l’acheminement des paquets relatifs à la communication VoIP entre Client 1 et

Client 2. Tandis que la sécurité est configurée (Figure 4-15) en passant les paramètres de sécurité négociés

afin d’agir sur les suites de chiffrement proposées dans le message « Hello » lors de la poignée de main du

protocole DTLS (cf. Section 2.5.2.3). Notons que si l’on avait un échange d’un autre type (TCP par

exemple) et qu’on devrait sécuriser avec TLS, la procédure de configuration de sécurité serait la même.

Par souci de simplification, nous avons omis le scope de sécurité qui doit absolument figurer dans le

SLS afin de désigner les deux extrémités entre lesquelles la sécurité est offerte, la portée de la sécurité,

dans cet exemple, est : Client1 – Client2.

4.4.3.2 Exemples de négociations inter-domaines

Figure 4-16 : Scénarios 2 et 3 - négociations inter-domaines

103

Les deux exemples de négociation, que nous décrivons ci-dessous, concernent la même situation.

Dans ces deux scénarios (Figure 4-16), l’utilisateur « Client 1 » du « LAN1 » négocie un niveau de service

pour sa communication avec l’utilisateur « Client 3 » du « LAN3 ». Il s’agit de négociations inter-domaines

car les deux réseaux locaux « LAN1 » et « LAN3 » appartiennent à deux domaines différents ; « LAN1 »

appartient au « Domaine 1 » dont le responsable est l’entité de négociation « SI », alors que « LAN2 » se

trouve dans le « Domaine 3 » géré par l’entité « SR ». Ainsi, ces négociations impliquent trois entités (SI,

SF et SR) et couvrent les mêmes paramètres de niveau de service décrits dans le scénario précédant (délai,

protocole de sécurité et algorithme de confidentialité).

4.4.3.2.1 Négociation sans compris entre QoS et sécurité

Dans ce deuxième scénario, le SLS que veut établir le « Client 1» concerne toujours une

communication de VoIP caractérisée par un niveau de QoS qui se résume dans le paramètre délai dont la

valeur de bout en bout doit être égale à « 200 ms » au maximum. Cette communication nécessite

également un niveau de sécurité pouvant être garanti par le biais du protocole IPSec en utilisant

l’algorithme de confidentialité « 3des-cbc » (Figure 4-17).

SLS QoS � Garantie de performance � Délai : D = 200 ms

Sécurité � Protocole : P = ipsec Sécurité � Dtls � Confidentialité : A = 3des-cbc

Figure 4-17 : SLS négocié dans le scénario 2

Le portée de la sécurité, cette fois-ci, est constituée par les passerelles de sécurité SG1 et SG3 derrière

lesquelles se trouvent respectivement les deux clients : Client 1 et Client 3. Ceci est dû au non support du

protocole IPSec par aucun de ces deux clients (Client 1 et Client 3).

Afin d’établir le niveau de service nécessaire à sa communication avec le Client 3, le Client 1 prépare

sa requête « Negotiate » avec les paramètres négociés et les valeurs correspondant aux niveaux requis pour

la QoS et la sécurité (Figure 4-18). Notons que dans cette requête, les champs des valeurs offertes

(« offered ») des paramètres de sécurité (protocole et algorithme) sont initialisés à « null », car le Client 1

n’a aucune idée sur les propriétés de la passerelle de sécurité SG1 derrière laquelle il se trouve. Ensuite,

cette requête est envoyée vers le responsable de son domaine SI. L’entité de négociation SI, va interroger

la RMF sur la QoS de son réseau et sur les paramètres de sécurité de la SG. Les informations fournies par

la RMF de la SI, permettent à cette dernière de mettre à jour les valeurs offertes de tous les paramètres

négociés. Les champs relatifs à l’offre du protocole et de l’algorithme de sécurité ont maintenant les

mêmes valeurs que celles des champs relatifs à la demande, parce que la passerelle SG1 supporte le niveau

de sécurité demandé par le Client 1. Tandis que le délai offert devient égal à 65 ms. Ces 65 ms

représentent la somme du délai de transit sur le réseau du domaine 1 (60 ms) et du délai résultant du

chiffrement des paquets de voix. Une fois traité par la SI, le message Negotiate est transféré vers la SF qui

apporte, également, des modifications relatives au paramètre de QoS, à savoir le délai. En effet, la valeur

offerte de ce délai devient égale à 125 ms, suite à une augmentation de 60 ms représentant le délai de

transit sur le réseau du deuxième domaine (domaine 2) (Figure 4-18). Après cette modification, le message

Negotiate est transmis à l’entité de négociation finale (SF). Après une interaction avec sa RMF, la SR met à

jour le délai offert en ajoutant le délai de transit sur son réseau (60 ms) et celui pouvant être introduit par

les traitements de sécurité (5 ms) ; ce qui fait un délai total de 190 ms, ce qui est inférieur aux 200 ms

104

exigés par le Client 1. En traitant l’offre de sécurité, la SR s’aperçoit que l’algorithme proposé n’est pas

supporté par la passerelle de sécurité SG3. Ainsi, la SR propose une alternative au SLS demandé dans un

message Revision où elle suggère l’utilisation de l’algorithme aes-cbc (Figure 4-18) qui est considéré

comme plus robuste que celui demandé par le Client 1 (3des-cbc). Le message Revision suit le chemin

inverse du message Negotiate jusqu’à ce qu’il arrive au Client 1. Malgré le fait que l’algorithme aes-cbc soit

supporté par la SG1 et que le délai de bout en bout soit inférieur à 200 ms, le Client 1, ne peut pas

accepter l’alternative proposée et doit renégocier le SLS avec les nouveaux paramètres suggérés. Ceci est

dû à la non-fiabilité de l’ancien calcul du délai de bout en bout. En fait, ce calcul était effectué sur la base

d’un certain niveau de sécurité car il tient compte de l’impact de ce niveau de sécurité sur la QoS. En

modifiant le niveau de sécurité, comme par exemple l’algorithme de chiffrement, l’ancien calcul de l’offre

de QoS n’est plus valable et doit être refait. Lors de la deuxième passe de négociation, le délai de bout en

bout nouvellement calculé est égal, cette fois-ci, à 194 ms (Figure 4-18), ce qui est supérieure à celui

calculé lors de la première passe (190 ms). Ceci est normal parce qu’un algorithme plus robuste a

généralement un impact plus important que celui d’un algorithme moins robuste. Le nouveau délai (194

ms) permet toujours de répondre aux besoins de la communication. Par ailleurs, le niveau de sécurité peut,

également, être accepté car les deux extrémités de la portée de sécurité supportent le protocole IPSec et

l’algorithme aes-cbc. Par conséquent, un accord peut être établi en acceptant le SLS demandé (Response-

Ack).

Figure 4-18 : MSC du scénario 2

105

Après cette entente sur les paramètres de niveau de service, le SLS doit être enregistré au niveau des

responsables de domaines (SI, SF et SR) et la QoS ainsi que la sécurité doivent être configurées.

Lorsqu’IPSec est utilisé, les valeurs des paramètres de sécurité négociées avec SLNP serviront à mettre en

œuvre le protocole IPsec et à configurer des SA afin de sécuriser le trafic. Ceci se fait en ajoutant une ou

plusieurs entrées dans les SPD pour désigner le trafic à sécuriser et spécifier comment le sécuriser. Lors de

l’envoi du premier paquet voix de ce trafic, les SA seront établies automatiquement grâce à un protocole

de gestion des SA tel que IKE. L’établissement de ces SA fait appel à la négociation ISAKMP (cf. section

4.3.1.1). Cependant cette négociation n’est pas vraiment une négociation, elle sert plutôt à établir les SA

car la négociation en amont, assurée par SLNP, permet de faire effectivement le choix des paramètres de

sécurité. En effet, le message « proposal » d’ISAKMP, envoyé par l’émetteur, ne contient qu’une seule

proposition contenant les paramètres de sécurité déjà négociés avec SLNP. Cette proposition sera

normalement acceptée sans aucun problème par le récepteur.

Même si, dans le scénario fourni ci-dessus, on ne voit aucune intervention de l’entité intermédiaire

(SF) dans la négociation de la sécurité, celle-ci joue un rôle dans cette négociation (sécurité). En effet, une

entité intermédiaire peut intervenir s’il y a un problème lors du transport des paquets IPSec sur son réseau.

Par ailleurs, elle peut avoir à participer à la mise en œuvre de la sécurité en transmettant des politiques de

sécurité aux entités de sécurité dans son réseau (politiques de type BYPASS). Par contre, il est vrai que

dans le cas d’une négociation d’un niveau de sécurité qui sera assuré grâce à TLS ou DTLS, les entités

intermédiaires n’ont aucune raison d’intervenir dans cette négociation.

Notons que, si une sécurité IPSec ne peut être établie à cause du non support de ce protocole ou à

cause de problèmes qui peuvent se poser comme la traversée des NAT (Network Address Translation)

[EGE 94], alors on peut tenter de mettre en place une sécurité à un autre niveau de la pile de

communication (au niveau « Transport » par exemple).

4.4.3.2.2 Négociation avec un compromis entre QoS et sécurité

Dans ce deuxième exemple de négociation inter-domaines, nous considérons toujours l’architecture

du réseau donnée dans la Figure 4-16 ainsi que la même application pour laquelle le Client 1 veut établir

un niveau de service. Ce qui change par rapport au scénario précédent est le SLS négocié donnée dans la

Figure 4-19.

SLS QoS � Garantie de performance � Délai : D = 190 ms

Sécurité � Protocole : P = dtls Sécurité � Dtls � Confidentialité : A = 3des

Figure 4-19 : SLS négocié dans le scénario 3

Etant donné que le temps de transit sur chacun des trois réseaux est toujours égal à 60 ms et que le

temps de chiffrement ou de déchiffrement en utilisant l’algorithme 3des avec le protocole dtls est estimé à

8 ms, le délai de bout en bout calculé lors de la première passe de négociation sera égal à 196 ms, ce qui est

malheureusement supérieur au délai requis par la communication. Ainsi, malgré la possibilité d’utiliser

l’algorithme ‘3des’ avec le protocole ‘dtls’ sur les deux extrémités Client 1 et Client 2, le SLS demandé ne

peut pas être accepté. Par contre, l’entité finale de négociation propose l’utilisation de l’algorithme ‘des’ au

lieu de l’algorithme ‘3des’ dans son message Revision. En fait, la SR sait qu’en dégradant un peu le niveau

106

de sécurité, l’impact de la sécurité sur la QoS sera moins important ; ce qui pourrait permettre d’arriver à

un accord. En effet, ce qui empêche cet accord d’avoir lieu est la valeur estimée du délai de bout en bout

qui est légèrement supérieure à celle demandée dans le SLS (196 ms > 190 ms). Ainsi, en choisissant de

dégrader le niveau de sécurité en demandant l’utilisation de l’algorithme ‘des’ au lieu de ‘3des’, un accord

sur le niveau de service a pu avoir lieu lors de la deuxième passe de négociation. Le Client 1 aurait pu

demander le même niveau de sécurité, et dégrader le niveau de la QoS en demandant un délai supérieur ou

égal à 196 ms. Ceci aurait aboutit, également, à un accord simultané sur les niveaux de QoS et de sécurité.

Par conséquent, nous pouvons noter que dans ce troisième scénario, les niveaux de QoS et de sécurité,

initialement demandés, ne peuvent pas être simultanément garantis par l’ensemble de réseau. Ainsi, un

compromis entre ces deux niveaux doit être trouvé et l’un des deux niveaux (si ce n’est les deux) doit être

suffisamment dégradé afin de permettre l’établissement d’un accord sur le SLS.

Rappelons que si on avait établi un niveau de sécurité avec le mécanisme propre à DTLS, à savoir le

protocole de poignée de main, alors le niveau de sécurité aurait pu être suffisamment élevé pour empêcher

le déroulement normal de la communication, même si la QoS avait été négocié avec SLNP. D’où l’intérêt

de négocier simultanément la QoS et la sécurité avec SLNP afin de prendre en considération l’influence du

niveau de sécurité sur le niveau de la QoS.

Figure 4-20 : MSC du scénario 3

107

La négociation de niveau de service assurée par SLNP est une négociation dynamique, ce qui permet

à tout moment de modifier le niveau de service déjà établi. Ceci pourrait être la conséquence de l’évolution

des besoins des utilisateurs ou encore le non-respect d’un contrat établi de la part de l’un des domaines

impliqués dans la négociation.

Pour éviter de trop compliquer les scénarios fournis, nous avons évité de donner des exemples où

l’offre de niveau de service porte sur un empilement de plusieurs types de sécurité. Par contre, nous avons

cherché à identifier différents cas de figure qui nous permettent de couvrir un maximum de possibilités

afin d’identifier le comportement général d’une entité de négociation. Ceci nous permettra, par la suite,

d’établir les algorithmes des traitements au niveau de chaque type d’entité de négociation (SI, SF et SR).

4.4.4 Nouveau fonctionnement du protocole SLNP

Rappelons que la négociation de niveau de service assurée par SLNP se base sur la technologie des

services web afin d’offrir l’interopérabilité entre les différentes entités pouvant faire partie d’une telle

négociation. Cependant, cette technologie est fondée sur l’invocation des opérations composant un service

web. Puisqu’une entité de négociation peut être initiale, intermédiaire ou finale, alors elle doit contenir une

application cliente de négociation et un service web de négociation. Ainsi, implémenter l’extension du

protocole SLNP à la sécurité que nous avons déjà spécifiée revient à apporter les modifications nécessaires

aux composantes d’une entité de négociation, à savoir le service web et l’application cliente. Ceci permet

de prendre en compte les paramètres de sécurité, que nous avons définis dans la section 4.4.1, dans le

processus de négociation de niveau de service.

Dans cette section, nous décrivons les modifications apportées au fonctionnement du protocole

SLNP qui ne prenait initialement en compte que la QoS. Ainsi, nous détaillons, dans un premier temps,

les changements qu’a connu l’application cliente de négociation afin de permettre la négociation conjointe

de la QoS et de la sécurité. Dans un second temps, nous nous intéressons à la structure du service web de

négociation ainsi qu’aux traitements qui y sont inclus.

4.4.4.1 Modification de l’application cliente de négociation

L’application cliente permet à une SI d’établir, modifier ou résilier un SLS en invoquant le service

web de l’entité suivante avec le message approprié (Negotiate, Modify ou Release). Elle permet également

à une SF ou à une SR d’informer une SI sur d’éventuels changements de disponibilités des ressources

(Notify).

Afin de décrire les modifications apportées à l’application cliente de négociation, nous allons

considérer le processus d’établissement d’un niveau de service. Dans ce cas bien précis de négociation,

nous allons commencer par rappeler l’ancien fonctionnement, qui ne permet de couvrir que la négociation

des paramètres de QoS, à travers le diagramme de fonctionnement de la Figure 4-21.

Sur ce diagramme, nous pouvons voir que l’établissement d’un accord sur un niveau de QoS

commence par la constitution d’un message Negotiate qui va servir à invoquer l’opération de négociation

de l’entité suivante sur le chemin de négociation. Suivant, le type du message retourné, suite à cette

invocation, nous distinguons cinq comportements différents. Premièrement, si le niveau de QoS demandé

est accepté par l’ensemble du réseau (message retourné = Response-Ack), alors l’entité initiale procède à

l’enregistrement du SLS et la négociation est terminée. Le deuxième cas de figure est le rejet de la demande

108

de la SI (message retourné = Response-Nack) qui ne nécessite aucun traitement et mène directement à la

fin de la négociation. Il est, également, possible de retourner à la SI un message Revision. Ce message

permet de proposer une alternative au SLS demandé par cette SI. Lorsque la SI reçoit une alternative

qu’elle peut accepter, elle envoie un message Response-Ack après avoir procédé à l’enregistrement du SLS.

Dans le cas où l’alternative proposée ne peut pas être acceptée, la SI doit rejeter cette proposition en

envoyant un message Response-Nack ou bien en procédant à une deuxième passe de négociation.

Figure 4-21 : Algorithme de l’établissement d’un SLS (QoS)

Dans le diagramme de traitements présenté dans la Figure 4-21, nous pouvons voir les différentes

composantes : les actions et les tests. Dans notre implémentation, chacune de ces composantes

correspond à un module implémenté en langage Java. Afin de permettre l’introduction de la sécurité dans

le SLS négocié, nous avons, tout d’abord, commencé par la prise en compte des paramètres de sécurité

dans les traitements de chaque module. A titre d’exemple nous considérons l’action ‘Créer un message

Negotiate’. Dans l’ancienne version de la négociation, qui porte uniquement sur les paramètres de QoS, le

module correspondant à cette action est composé de plusieurs tâches (Figure 4-22-a). En effet, il prend en

arguments les paramètres de QoS qui permettent de désigner le niveau de service demandé. Ensuite, il

interagit avec la RMF afin d’obtenir des informations sur l’offre locale de la SI. A la fin de cette

interaction, ce module dispose de toutes les valeurs nécessaires (demandées et offertes) à la création du

109

SLS. Ainsi, il s’occupe de la constitution du SLS à négocier avant de créer le message Negotiate.

Maintenant, pour permettre la négociation des paramètres de sécurité en plus des paramètres de QoS, il

faut apporter les modifications nécessaires tout en préservant l’ancien fonctionnement lorsque la

négociation porte uniquement sur la QoS. Ainsi, les traitements nécessaires à la négociation des

paramètres de sécurité ont été ajoutés dans ce but. Le nouvel algorithme des traitements nécessaires à la

création du message Negotiate (Figure 4-22-b), permet de déterminer les paramètres relatifs à la sécurité

lorsque celle-ci est requise dans le niveau de service. Il permet, également, d’estimer l’impact de cette

sécurité sur la QoS afin de déterminer les valeurs effectives des paramètres de QoS. L’estimation de

l’impact se fait en fonction des paramètres de sécurité et des performances de l’entité chargée des

traitements de sécurité.

a : Négociation de la QoS b : Négociation conjointe de la QoS et de la sécurité

Figure 4-22 : Traitements nécessaires à la création du message Negotiate

Les adaptations visant à introduire la sécurité couvrent non seulement les traitements inclus dans les

différents modules, mais aussi l’algorithme général des traitements de l’entité initiale (SI). En fait, nous

avons déjà signalé qu’une entité initiale n’a pas le droit d’accepter une alternative qui lui est proposée par le

réseau, dans le cadre d’une négociation conjointe (QoS et sécurité). Dans la section 4.4.3.2, nous avons

expliqué les raisons pour lesquelles une SI ne peut pas accepter une alternative, même si elle la juge

suffisante pour répondre à ses besoins en matière de QoS et de sécurité. Par conséquent l’algorithme sera

modifié afin de ne permettre l’acceptation d’une alternative que dans le cas d’une négociation qui porte

uniquement sur la QoS. Dans le cas contraire, la négociation doit être initiée de nouveau. Afin de

distinguer les modifications apportées à l’algorithme général des traitements, celles-ci sont ajoutées en

pointillés dans la Figure 4-23.

110

Figure 4-23 : Algorithme de l’établissement d’un SLS (QoS + Sécurité)

4.4.4.2 Modification du service web de négociation

Le service web de négociation contient cinq opérations (Figure 3-21) et permet à une entité de

recevoir une demande, de la traiter et de renvoyer une réponse à l’entité appelante. Cette réponse est un

message qui peut être produit par l’entité elle-même ou être la retransmission de la réponse reçue suite à

l’invocation de l’entité suivante.

La structure du service web de négociation reste inchangée afin de répondre aux besoins de

négociation qui sont toujours les mêmes. En revanche, les traitements contenus dans les différentes

opérations composant ce service web doivent être adaptées à la nouvelle structure du SLS négocié. Ceci

permettra de prendre en compte les paramètres de sécurité dans la négociation au niveau des entités

intermédiaires (SF) et finales (SR).

Pour avoir une idée sur les modifications apportées à l’implémentation de SLNP au niveau d’une SF

ou d’une SR, nous allons considérer une des cinq opérations du service web de négociation, à savoir

l’opération de négociation : ‘negotiationOperation’. Cette opération est invoquée lors de l’établissement

111

d’un SLS (cf. section 3.4.5.3). L’appel à cette opération est toujours initié par une entité initiale qui

engendre un appel récursif aux opérations de négociation de toutes les entités impliquées dans une

négociation.

Figure 4-24 : Algorithme de l’opération de négociation

L’algorithme du fonctionnement global de cette opération, représenté dans la Figure 4-24, ne

nécessite aucune modification. En effet, l’ordre dans lequel sont présentés les traitements sur cet

algorithme est conforme à la négociation conjointe de QoS et de sécurité. Afin d’optimiser le

fonctionnement du protocole SLNP, nous avons conçu cet algorithme d’une manière à ce qu’il soit

commun aux entités de types SF et SR. Lorsqu’il s’agit d’une entité intermédiaire (SF), l’élément SLS est

extrait du message reçu (Negotiate). Ensuite, les modifications nécessaires sont apportées à ce SLS avant

de reconstituer le message Negotiate et de le transmettre à l’entité suivante sur le chemin de négociation.

Puis, le message retourné, suite à cette invocation, est transmis à l’entité précédente après avoir enregistré

localement le SLS dans la table réservée à cet effet, au cas où un accord a été établi (Response-Ack). Dans

le cas d’une entité finale (SR), après avoir modifié le SLS reçu en fonction de l’offre locale, une

comparaison entre l’offre et la demande est effectuée afin de décider de la recevabilité de la demande faite

par l’entité initiale (SI). Si cette demande peut être acceptée, alors la SR peut répondre avec un message

Response-Ack après avoir enregistré localement le SLS établi. Dans le cas contraire, cette SR peut

112

proposer une alternative en retournant un message Revision, ou mettre fin à la négociation en refusant la

demande dans la SI, grâce à un message Response-Nack.

Comme nous l’avons déjà précisé, l’algorithme décrivant ce fonctionnement global au niveau d’une

entité intermédiaire ou finale reste inchangé. En revanche, les composantes de cet algorithme c’est-à-dire

les actions et les tests qu’on peut distinguer sur la Figure 4-24 doivent être adaptées afin de prendre en

considération la sécurité dans la négociation.

a : Négociation de la QoS b : Négociation conjointe de la QoS et de la sécurité

Figure 4-25 : Traitements nécessaires à la modification du SLS

A titre d’exemple, nous considérons l’action ‘Apporter les modifications nécessaires au SLS’. Dans

l’ancienne version de la négociation, qui porte uniquement sur les paramètres de QoS, le module

correspondant à cette action est composé de plusieurs tâches (Figure 4-25-a). En effet, il prend en

argument le SLS reçu par l’entité. Ce SLS contient des détails sur le niveau de service demandé

initialement par la SI mais aussi sur l’offre cumulée des domaines précédents. Ainsi, les modifications à

apporter consistent à ajouter l’offre du domaine dont l’entité de négociation est responsable. Afin de

pouvoir ajouter son offre locale par rapport à la QoS, cette entité doit interagir avec sa RMF afin d’obtenir

des informations sur cette offre. Ceci lui permettra de modifier les valeurs ‘offertes’ des paramètres

négociés en ajoutant son offre locale. Ensuite, le SLS est reconstitué et il est prêt pour la suite des

traitements (transfert à l’entité suivante ou décision de recevabilité). Maintenant, pour permettre la

négociation des paramètres de sécurité en plus des paramètres de QoS, il faut apporter les modifications

113

nécessaires tout en préservant l’ancien fonctionnement lorsque la négociation porte uniquement sur la

QoS. Le nouvel algorithme des traitements nécessaires à la modification du SLS (Figure 4-25-b), permet

d’apporter les modifications relatives aux paramètres de sécurité lorsque cette dernière est requise. Il

permet, également, d’estimer l’impact du niveau de sécurité sur la QoS afin de le prendre en compte par la

suite, c’est-à-dire lors de l’ajout de l’offre locale en matière de QoS. L’estimation de l’impact de la sécurité

sur la QoS est effectuée, non seulement sur la base des paramètres de sécurité, mais aussi en fonction des

performances de l’extrémité de sécurité appartenant au domaine en question.

Notons qu’il existe un cas que nous avons déjà identifié et que nous n’avons pas pris en compte dans

l’implémentation actuelle de SLNP. Il s’agit de la situation où la sécurité demandée par la SI pose un

problème au niveau d’un domaine intermédiaire, notamment dans le cas du non support d’IPSec. Dans ce

cas de figure, nous prévoyons de donner la possibilité à cette entité intermédiaire de répondre elle-même à

l’entité initiale avec un message Response-Nack en précisant dans le champ réservé ‘reason’ de ce message

qu’il s’agit d’un rejet prématuré de la demande (la demande n’a pas atteint l’entité finale) à cause du non

support du protocole IPSec. Dans ce cas, l’entité initiale doit utiliser un autre protocole pour la sécurité de

sa communication (TLS ou DTLS) ou changer le chemin de transmission de données, c’est-à-dire passer

par d’autres réseaux intermédiaires qui pourront ne pas poser de problème lors de la négociation.

Stratégies de négociation : Lorsque les scénarios ont été présentés, nous avons vu que, parfois, l’entité

initiale doit faire un compromis entre la QoS et la sécurité. Ce compromis ne dépend que des stratégies

que nous avons implémentées. En effet, ces stratégies consistent à spécifier quels types de paramètres

(QoS ou sécurité) peuvent être dégradés en premier tout en spécifiant un seuil pour chaque type de

paramètres à ne pas dépasser. Ainsi, au début d’une négociation, nous attribuons un couple de

pondération (1,0) afin d’indiquer quel type de paramètres peut être dégradé (pondération = 1). Lorsque

ces paramètres ne peuvent plus être dégradés (atteinte du seuil minimal spécifié pour ces paramètres), la

pondération est automatiquement inversée, ce qui permet de dégrader les paramètres qui n’ont pas été

touchés. Si on atteint le seuil spécifié pour le deuxième type de paramètres sans arriver à un accord sur le

niveau de service alors la SI doit mettre fin à la négociation. Ces stratégies de négociation sont assez

simples mais peuvent être compliquées en rendant par exemple le système de pondération des types de

paramètres à dégrader plus dynamique. Ceci peut être fait en fixant plusieurs seuils pour chaque type de

paramètres afin de permettre de basculer entre ces types, ou encore en basculant d’un type à l’autre en

fonction du rang de la passe de négociation, etc.

Il est très important de souligner l’utilité de ces stratégies dans la résistance à un certain nombre

d’attaques, comme l’attaque par déni de service. Ce type d’attaque consiste à générer une charge volontaire

du réseau afin de provoquer une baisse de la QoS d’un ou plusieurs domaines impliqués dans l’offre de

niveau de service. La baisse de la QoS peut, à son tour, provoquer une renégociation et donc peut

engendrer une diminution du niveau de sécurité. Les stratégies de négociation d’une entité initiale

permettent de fixer un seuil minimal pour le niveau de sécurité, en dessous duquel toute proposition est

rejetée. Ainsi, ce sont ces stratégies qui permettent de pallier à ce type d’attaque.

Synthèse : L’extension du protocole SLNP à nécessité un autre type de modifications. Il s’agit des

modifications apportées aux bases de données associées à chaque entité de négociation. En effet, ces bases

de données permettent, non seulement le stockage des informations de QoS et de sécurité propres au

domaine géré par chaque entité (simulation de la RMF), mais aussi la gestion des SLS (simulation du

114

registre des SLS). Ainsi, les champs nécessaires à la gestion de la sécurité ont été ajoutés dans toutes les

tables des bases de données. Nous avons, également, ajouté un espace dans ces bases qui permet de

stocker les stratégies implémentées par les différentes entités afin de pouvoir les modifier à tout moment

sans avoir à toucher au code.

4.4.5 Tests et évaluations des performances

Une fois l’implémentation de la négociation de niveau de service portant à la fois sur la QoS et la

sécurité réalisée, nous avons procédé à un ensemble de tests afin d’évaluer les performances de la

négociation SLNP.

4.4.5.1 Plateforme de tests

Pour évaluer notre contribution, nous avons utilisé la plateforme d’expérimentation présentée dans la

Figure 4-26. Sur cette plateforme, nous pouvons distinguer trois entités de négociation qui implémentent

toutes le protocole SLNP. Dans chaque implémentation, nous avons choisi d’utiliser le serveur

d’applications TOMCAT d’Apache [TOM 09] sur lequel le service web de négociation de chaque entité

sera déployé. Comme implémentation du protocole SOAP, nous avons opté pour l’implémentation

d’Apache appelée AXIS [AXI 09] qui est facilement déployée sur le serveur TOMCAT. Pour la gestion

des bases de données, nous avons utilisé MySQL [SUN 09a] qui représente un serveur de bases de

données relationnelles SQL (Structured Query Language) robuste et rapide. L’implémentation d’une

application cliente de négociation ainsi que celle des différentes opérations d’un service web de

négociation ont été réalisées dans un langage de programmation orienté objet, à savoir le langage Java

[SUN 09b]. Ce choix n’implique pas que toute entité qui implémente le protocole SLNP doit utiliser la

même plateforme ou encore le même langage de programmation. Bien au contraire, le protocole SLNP

utilise les services web afin de permettre l’interopérabilité entre les différents responsables de domaines

qui veulent négocier un niveau de service de bout en bout.

Figure 4-26 : Plateforme de tests du fonctionnement du protocole SLNP

4.4.5.2 Tests du fonctionnement

L’implémentation Apache de SOAP, à savoir Axis, fournit un outil appelé SOAP Monitor [SOA 09]

qui nous permet de vérifier le bon déroulement de l’appel à un service web. En effet, il s’agit d’une

application qui peut être déployée sur le serveur web d’une entité de négociation et vers laquelle il faut

115

rediriger les flux entrant ainsi que les flux sortant pour ce service web. Cet outil nous permet, également,

de capturer la trace des messages d’entrée et, éventuellement, de sortie des opérations. Nous avons utilisé

cet outil pour tester le nouveau fonctionnement de l’application cliente de la SI ainsi que celui des cinq

opérations du service web de négociation de la SF et de la SR. Les tests des différents processus de

négociation (établissement, modification, notification, résiliation) ont été réalisés avec succès. En effet,

nous invoquons les différentes opérations d’un service web de négociation et nous vérifions, par la suite, si

le message de sortie correspond bien au message auquel on s’attendait et si les paramètres inclus dans ce

message sont conformes à ceux de la réponse attendue. Nous avons également joué en même temps sur

les valeurs déterminant le niveau de service demandé par la SI ainsi que sur les offres locales de la SF et de

la SR afin de tester un maximum de scénarios de négociation. Les tests réalisés nous ont permis de

conclure à la validité de notre implémentation ; notre protocole de négociation conjointe de QoS et de

sécurité fonctionne correctement.

La Figure 4-27 représente une partie de la trace d’un message Negotiate encapsulé dans une

enveloppe SOAP. Ce message, obtenu grâce à l’outil SOAP Monitor, permet à la SI d’initier une

négociation de niveau de service en invoquant l’opération de négociation du service web de négociation de

l’entité suivante sur le chemin de la négociation, à savoir la SF (Figure 4-26).

<?xml version="1.0" encoding="utf-8"?> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"

xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

<soapenv:Body> <Negotiate xmlns="urn:WSNegotiation3"> <negotiationId xmlns="">2001</negotiationId> <endNegotiation xmlns="">true</endNegotiation> <sls xsi:type="ns1:SlsType" xmlns="" xmlns:ns1="urn:WSNegotiation3"> ... </sls>

</Negotiate> </soapenv:Body> </soapenv:Envelope>

Figure 4-27 : Un message Negotiate visualisé à l’aide de SOAP Monitor

4.4.5.3 Evaluation du temps de négociation

Afin d’évaluer le temps de négociation, nous avons effectué des tests locaux, c’est-à-dire que les trois

entités de la plateforme de tests (SI, SF et SR) ont été déployées sur une même machine. Il s’agit d’un

serveur Dell Precision PWS670 avec un processeur Intel Xeon à 3,2 GHz et une RAM (Random Access

Memory) de 2 Go. Notre but est d’évaluer les performances de la négociation SLNP, indépendamment

des caractéristiques spécifiques d’acheminement (RTT : Round Trip Time) à travers les différents

domaines. Les délais supplémentaires engendrés par la traversée de ces domaines peuvent être ajoutés aux

délais de la procédure de négociation de notre protocole.

Afin de tester les performances du protocole SLNP, nous avons voulu évaluer le temps passé par les

trois entités de la plateforme pour réaliser une négociation. Dans un premier moment, nous évaluons ce

temps pour une négociation de QoS. Tandis que, dans un second moment, nous mesurons ce temps dans

le cas d’une négociation de QoS et de sécurité. Pour cela, nous avons identifié dix niveaux de QoS

116

différents ainsi que cinq niveaux de sécurité répondant à divers besoins. Ainsi le nombre de demandes

possibles que peut effectuer une SI est égal à 10 lorsqu’il s’agit d’une négociation de QoS, alors que ce

nombre s’élève à 50 en cas de négociation conjointe de QoS et de sécurité. En ce qui concerne la SF et de

la SR, nous avons pris soin de les configurer (QoS offerte et sécurité supportée) d’une manière permettant

de conclure à un accord assez souvent.

Type de

négociation

Nombre total de

scénarios

Nombre

d’accords

Nombre moyen

de passes

Temps moyen de

négociation

QoS 10 8 1,7 114,13

QoS + sécurité 50 22 4,48 307,50

Tableau 4-2 : Probabilité de succès et nombre moyen de passes de négociation

La réalisation de ces tests (Tableau 4-2) nous a permis de conclure qu’il est effectivement plus

difficile de conclure un accord sur un niveau de service couvrant à la fois la QoS et la sécurité que de

s’entendre sur un niveau de service ne comprenant que la QoS. En effet, la négociation de la QoS à

conduit à une entente 8 fois sur 10 (% succès = 80 %), alors que la négociation simultanée de QoS et de

sécurité n’a aboutit à un accord que 22 fois sur 50 (% succès = 44 %). Ceci est du au fait qu’il est souvent

très dur de trouver un compromis entre la sécurité et la QoS lors d’une négociation de niveau de service.

En fait, quand la négociation porte uniquement sur la QoS, un accord est trouvé à la suite de la première

ou la deuxième passe de négociation, ou au pire des cas à la suite de la troisième passe (1 cas sur 8). Tandis

que, dans le cas d’une négociation conjointe de QoS et de sécurité, un accord est trouvé, au mieux, lors de

la quatrième passe, et parfois une dizaine de passes de négociation ne permette pas d’arriver à un accord.

Par conséquent, le nombre moyen de passes de négociation pour une négociation conjointe (4,48) est

supérieur à celui calculé pour une négociation de QoS (1,7). Ainsi, le temps moyen de négociation qui est,

généralement, proportionnel au nombre de passes de négociation suit la même logique (Tableau 4-2);

c’est-à-dire qu’il est plus important lorsqu’il s’agit d’une négociation conjointe (307,50 ms) que dans le cas

d’une négociation de QoS (114,13 ms).

Ces mesures permettent de tirer des conclusions importantes en termes de probabilité de succès et en

termes de temps moyen nécessaire à l’établissement d’un accord. Cependant, elles ne permettent pas

d’évaluer le coût ajouté par les traitements nécessaires à la négociation de la sécurité.

Afin d’évaluer le coût de l’introduction des aspects liés à la sécurité dans la négociation de niveau de

service permise par SLNP, nous allons mesurer le temps d’une négociation conjointe pour une seule

passe, afin de le comparer au temps nécessaire à une passe de négociation de QoS (Tableau 4-3). Il faut

préciser que le temps de négociation mesuré pour une seule passe correspond à la durée entre l’instant où

l’application cliente de négociation de la SI commence la construction d’un message de type Negotiate et

l’instant où un message de type Response est reçu par cette entité. Comme dans [MBA 07a], le temps

moyen de négociation est calculé sur la base d’un échantillon de 1000 mesures. Cependant, sur la Figure

4-28, nous ne représentons qu’un échantillon de 100 mesures afin de mieux visualiser le résultat des

mesures que nous avons réalisées.

Notons que les pics périodiques observables sur les courbes des mesures du temps de négociation

(Figure 4-28) s’expliquent par la gestion de la mémoire au niveau de la machine virtuelle Java (le garbage

collector). Ces pics n’ont quasiment pas d’influence sur le temps moyen de négociation, parce qu’ils ne

117

sont pas très fréquents. En effet, les pics que connaissent les mesures du temps de négociation ne

représentent que 6,4 % de la totalité des mesures.

Figure 4-28 : Temps de négociation en fonction du type de négociation (100 essais)

Dans ces conditions, nous obtenons un temps moyen de 60,08 ms pour une passe d’une négociation

de QoS (courbe en rouge sur la Figure 4-28). Ce temps est inférieur à celui que nous avons mesuré

auparavant dans les mêmes conditions [MBA 07a], car l’ancienne implémentation SLNP à été optimisée

en factorisant le code et en supprimant les traitements redondants, et surtout en limitant le nombre

d’interactions avec les bases de données. Cependant, dans le cas d’une négociation portant simultanément

sur la QoS et la sécurité, nous obtenons un temps moyen de 62,61 pour une passe unique (courbe en bleu

sur la Figure 4-28). Ces mesures (Tableau 4-3) nous permettent de conclure qu’en introduisant des aspects

de sécurité dans la négociation SLNP, le temps moyen d’une passe de négociation augmente très

légèrement (4,21 %). Ceci peut s’expliquer par le fait que les traitements de négociation représentent,

généralement, une faible proportion du temps de négociation. Ceci est dû à la lenteur des interactions

entre les services web. Autrement dit, une grande partie de la durée d’une passe de négociation correspond

au temps d’invocation des services web de la SF et de la SR.

Type de négociation Temps moyen de négociation

QoS 60,08 ms

QoS + sécurité 62,61 ms

Tableau 4-3 : Temps moyen de négociation en fonction du type de négociation

Nous avons également procédé à une série de mesures tentant de comparer l’évolution du temps

d’une négociation conjointe en fonction du nombre de passes et en fonction du nombre d’entités

impliquées, avec celle du temps d’une négociation de QoS en fonction de ces mêmes paramètres [MBA

07b]. Les résultats obtenus montrent que ce temps reste toujours proportionnel au nombre de passes, et

au nombre total d’entités de négociation, avec un facteur très légèrement diffèrent. A titre d’exemple, le

118

temps de négociation est proportionnel au nombre d’entités de négociation avec un facteur de 33,8 ms

pour une négociation conjointe, contre un facteur de 31,5 ms pour une négociation de QoS.

Notons qu’il faut absolument désactiver la redirection des messages vers l’application SOAP Monitor

afin de ne pas fausser les mesures du temps de négociation.

4.4.5.4 Evaluation de la taille des messages

Les tests permettant d’évaluer la taille des messages ont été réalisés sur la même plateforme que nous

avons utilisée pour mesurer le temps moyen de négociation (cf. section 4.4.5.1). Afin de mesurer la taille

des messages échangés entre les différentes entités de négociation de la plateforme, nous avons fait appel à

l’outil SOAP Monitor d’Apache qui nous a permis de capturer et stocker ces messages afin de pouvoir,

ensuite, mesurer leurs tailles. Etant donné que tous les types des messages SLNP ont quasiment la même

structure, la taille de ces messages va dépendre essentiellement des paramètres sur lesquels porte la

négociation. Ainsi, nous avons procédé à la mesure de la taille moyenne d’un message de type Negotiate

pour deux types de négociation : la négociation de la QoS uniquement et la négociation conjointe de la

QoS et de la sécurité. Ainsi, pour ces deux types de négociation, nous avons configuré une trentaine de

SLS ayant des compositions différentes où chacune de ces compositions peut correspondre à des besoins

particuliers dans une situation de négociation réelle.

Les résultats des mesures effectuées montrent que la taille moyenne d’un message Negotiate

augmente en introduisant des paramètres de sécurité dans le SLS sur lequel porte la négociation (Figure

4-29). En effet, cette taille passe de 3749 octets à 4894 octets, ce qui représente une augmentation

d’environ un tiers de la taille initiale du message Negotiate (30,54 %). Cette augmentation considérable,

bien évidemment, est due à l’ajout des éléments XML correspondant aux paramètres de sécurité.

Figure 4-29 : Taille moyenne du message Negotiate

4.4.6 Résumé

Dans la section 4.4, nous avons décrit les différentes étapes ayant permis d’intégrer la sécurité dans la

négociation que permettait de réaliser le protocole SLNP. Ces travaux ont été effectués afin de permettre

une négociation conjointe de la QoS et de la sécurité afin de tenir compte de l’impact des mécanismes de

sécurité sur la QoS. Cependant, la considération de cet impact lors d’une négociation nécessite que chaque

entité de négociation dispose d’une estimation de l’influence des mécanismes de sécurité sur les

119

paramètres de QoS. Ainsi, nous étudions, dans la section suivante, cette influence en présentant quelques

travaux qui traitent de cet impact ainsi que nos propres travaux.

4.5 Etude de l’impact de la sécurité sur la QoS

Lorsqu’on sécurise une transmission de données, on introduit un surcoût protocolaire et on ajoute un

certain nombre de traitements [IVR 01]. Le surcoût protocolaire est essentiellement lié aux informations

nécessaires aux mécanismes de sécurité et qui sont ajoutées aux paquets de données, tels que les codes

MAC (Message Authentication Code), les signatures, les certificats, etc. L’introduction de cette sécurité

nécessite, également, un certains temps pour effectuer des traitements supplémentaires liés, cette fois, aux

opérations cryptographiques, telles que les chiffrements, les déchiffrements, les calculs des codes MAC,

etc. Ces opérations sont gourmandes en ressources ; elles consomment de la mémoire, du temps CPU et

de la bande passante. Ainsi, une transmission de données sécurisée peut nécessiter plus de temps et plus

de bande passante qu’une transmission non sécurisée.

Cet impact peut être plus ou moins important selon le(s) mécanisme(s) de sécurité mis en place. A

titre d’exemple, l’utilisation du mécanisme ESP (IPSec), afin d’offrir l’intégrité et la confidentialité, n’a pas

le même impact que l’utilisation du mécanisme AH (IPSec) pour l’intégrité et ESP pour la confidentialité.

En effet, la deuxième configuration permet d’avoir une protection plus robuste en terme d’intégrité ; car la

protection de l’intégrité d’un paquet IP couvre plus de champs lorsqu’on utilise le mécanisme AH que

lorsqu’on utilise le mécanisme ESP. De plus, on peut avoir, parfois, un empilement de deux ou même

trois protocoles de sécurité agissant à différents niveaux de la pile protocolaire TCP/IP. Par exemple, les

données applicatives d’une session sécurisée avec HTTPS peuvent être chiffrées à plusieurs niveaux avec

SSL/TLS, IPSec et WEP [BOR 05]. Ce triple chiffrement peut introduire des surcoûts considérables en

termes de temps de traitement. Par ailleurs, il existe d’autres solutions de sécurité, comme celle proposée

dans [HSC 04] qui peut être très coûteuse, surtout en termes de bande passante. Cette solution, appelée

« ssltunnel », propose de créer une liaison PPP (Point-to-Point Protocol) au dessus d’une connexion de

type SSL/TLS. La liaison PPP (niveau « Liaison ») peut être utilisée avec n’importe quel protocole de

niveau « Réseau », tel que IP, et donc de niveau « Transport » comme UDP, TCP, RTP, etc. Cette solution

permet de créer des tunnels en dessous de SSL/TLS, mais elle nécessite une encapsulation lourde,

complexe et surtout très coûteuse (ex. UDP sur IP encapsulé dans PPP sur SSL/TLS sur TCP sur IP…).

Nous avons déjà vu, dans la section 4.4.3, que l’impact de la sécurité sur la QoS peut avoir des

conséquences importantes sur l’obtention d’un accord et donc sur l’offre de niveau de service comportant

des garanties de QoS et des services de sécurité. D’où l’importance de cet impact qui doit être pris en

compte lors d’une telle offre. Ainsi, nous avons proposé de négocier conjointement la QoS et la sécurité

de bout en bout tout en considérant l’influence des services de sécurité sur les performances de la QoS.

Or cette influence peut dépendre de plusieurs facteurs. Tout d’abord, elle dépend de la couche au niveau

de laquelle la sécurité est introduite. Elle dépend, également, du nombre de services de sécurité offerts et

des niveaux de chacun de ces services, c’est-à-dire l’algorithme mis en jeu pour assurer un service de

sécurité. L’impact de la sécurité sur les paramètres de QoS peut, également, dépendre des performances

de la machine concernée par les traitements de sécurité, tels que la mémoire, le CPU, la charge CPU, etc.

Cela peut dépendre également du nombre de protocoles de sécurité mis en œuvre dans la sécurisation

d’une transmission.

120

Afin de pouvoir prendre en compte cet impact lors d’une négociation conjointe de QoS et de

sécurité, nous devons disposer d’une estimation de cet impact qui va surement dépendre de la situation et

des conditions de la négociation. Cette estimation va, non seulement permettre de négocier correctement

ces deux aspects (QoS et sécurité), mais aussi aider les entités concernées par la négociation dans le choix

des paramètres de sécurité. Par exemple, en cas de protection de la confidentialité des données transmises,

on peut avoir à choisir entre deux algorithmes ayant des performances différentes. Si en termes de temps

de chiffrement, il n’y a quasiment aucune différence, alors on peut privilégier l’utilisation de l’algorithme le

plus robuste. Dans le cas où le temps de chiffrement requis par l’algorithme le plus robuste est plus

important, on peut choisir de demander l’utilisation de l’autre algorithme afin de donner plus de chance à

l’aboutissement de la négociation.

L’évaluation de l’impact de la sécurité sur la QoS a fait l’objet d’un certain nombre de travaux. Ainsi,

dans cette partie, nous décrivons ces travaux afin d’avoir une idée sur la manière avec laquelle la

problématique de l’impact a été traitée. Ensuite, nous proposons de faire nos propres mesures afin d’avoir,

également des estimations de l’impact qui se basent sur des mesures réelles.

4.5.1 Travaux portant sur l’impact de la sécurité sur la QoS

4.5.1.1 Impact du protocole IPSec sur la QoS

Les travaux décrits dans [WEI 07] visent à souligner l’importance de la dégradation de la

performance du réseau lorsque des mesures de sécurité sont prises, et ainsi la réelle difficulté à assurer

conjointement une qualité de service pour des applications de type temps réel. Lors de ces travaux, les

performances du protocole IPSec ont été évaluées et comparées avec celles du protocole IPv4 [POS 81].

Figure 4-30 : Comparaison du délai de bout en bout entre IPv4 et IPSec [VAN 05]

Pour cela, les trafics pouvant circuler sur les réseaux IP ont été classés en deux types : auto-similaire

et non auto-similaire. Ensuite, la dégradation provoquée par IPSec a été étudié suivant le type de trafic.

Pour les trafics non auto-similaires tels que la vidéo CBR (Constant Bit Rate) et la voix, les auteurs

ont comparé la performance du protocole IPSec avec celle du protocole classique IPv4 (sans sécurité). En

effectuant une simulation NS2 (Network Simulator version 2) [FAL 00], ils ont pu établir une

comparaison en termes de délai de bout en bout entre le protocole IPsec et le protocole IPv4 (Figure

121

4-30). Cette comparaison a été effectuée pour des vidéos de basse qualité (64 kb/s), de moyenne qualité

(384 kb/s) et de haute qualité (1536 kb/s).

Ces travaux ont permis de constater que le délai de bout en bout augmente d’au moins un tiers avec

IPSec (par rapport à IPv4), alors qu’en termes de perte de paquets on ne note quasiment pas de différence

(la perte des paquets reste toujours négligeable).

Pour les trafics auto-similaires tels que le Web et la vidéo VBR (Variable Bit Rate), les auteurs ont

constaté que le délai de bout en bout croit considérablement avec le protocole IPSec, et que la perte des

paquets est cette fois considérable lorsqu’IPSec est utilisé.

4.5.1.2 Surcoût des services de sécurité

Dans cette section, nous décrivons les résultats d’un ensemble de travaux réalisés au CISSSR (Center

for Information Systems Security Studies and Research). Ces travaux [SYP 00]-[IVR 01] avaient pour

objectif d’étudier l’impact de la sécurité sur la consommation de certaines ressources, à savoir le CPU, la

mémoire et la bande passante. Pour chacune de ces ressources, deux types de coûts ont été distingués : le

coût d’initialisation et le coût de transmission. Afin de présenter ces résultats, nous fournissons dans le

Tableau 4-4 une qualification de l’impact des services de sécurité sur ces ressources pendant les deux

phases qui ont été distinguées : initialisation et transmission. Nous avons réalisé ce tableau en nous basant

sur les travaux décrits dans [DUF 07].

Services de sécurité CPU Mémoire Bande passante

Confidentialité Initialisation : +++

Transmission : +++

Initialisation : +++

Transmission : +++

Initialisation :

Transmission : +[++]

Authentification, intégrité et

non-répudiation

Initialisation : ++

Transmission : ++

Initialisation : ++

Transmission : ++

Initialisation :

Transmission : ++

Protection contre le rejeu Initialisation : +

Transmission : +

Initialisation : +

Transmission : +

Initialisation :

Transmission : +

Création de tunnel Initialisation :

Transmission : +

Initialisation :

Transmission : +

Initialisation :

Transmission : ++

Tableau 4-4 : Qualification de la consommation des ressources

La confidentialité a un impact très important sur le CPU et la mémoire durant la phase d’initialisation

où les tables spécifiques et le vecteur d’initialisation sont préparés, mais aussi durant la phase de

transmission où les données sont chiffrées et déchiffrées. Concernant la bande passante, elle est

consommée pendant la phase de transmission afin d’envoyer le vecteur d’initialisation mais parfois un

padding d’une taille importante peut être, également, ajouté lorsque IPSec est utilisé (jusqu’à 255 octets).

Nous avons déjà précisé que l’authentification, l’intégrité et la non-répudiation sont des services

inséparables qui sont, généralement, assurés grâce à un algorithme d’authentification associé à une

fonction de hachage. Ces services ont un impact considérable sur le CPU et la mémoire durant les deux

phases de la communication. La bande passante est, également, consommée lors de l’envoi des données

d’authentification.

La protection contre le rejeu est le service qui consomme le moins de ressources. En effet, il a une

légère influence sur le CPU et la mémoire durant la phase d’initialisation, afin d’initialiser le numéro de

122

séquence et, également, durant la phase de transmission afin d’incrémenter et de vérifier ce numéro.

L’envoi de ce numéro consomme, aussi, un peu de bande passante durant la phase de transmission.

La création de tunnel, permis par IPSec, requiert un peu de mémoire et de temps CPU afin de

générer les nouveaux entêtes pendant la phase de transmission. L’ajout de ces nouveaux entêtes à, par

contre, un impact considérable sur la consommation de la bande passante pendant cette phase de

transmission.

Dans [DUF 07], les auteurs ont essayé d’évaluer l’impact d’une sécurité IPSec sur la bande passante

dans le cas d’un trafic UDP. Les résultats des tests effectués sont résumés dans le Tableau 4-5. Sur ce

tableau, le coût de la sécurité IPSec en terme de bande passante durant la phase d’initialisation est exprimé

en octets car il représente les données échangées afin de négocier les paramètres de sécurité, générer les

clés, etc. Par contre, durant la phase de transmission, ce coût est exprimé en octets par paquet afin de

montrer l’importance des données ajoutées à un paquet par les processus de sécurité.

Protocole Bande passante (octets)

Phase d’initialisation

Bande passante (octets/paquet)

Phase de transmission

UDP/IP Non pertinent 1358

AH Authentification et intégrité 1688 1382

ESP

Authentification et intégrité 1712 1382

Confidentialité 1712 1378

Confidentialité, authentification et intégrité

1712 1390

Tableau 4-5 : Impact d’IPSec sur la bande passante (trafic UDP) [DUF 07]

Le Tableau 4-5 montre que la consommation de la bande passante augmente lorsque la sécurité est

introduite. A partir de ce tableau, nous pouvons remarquer que la bande passante consommée durant la

phase d’initialisation ne dépend que du mécanisme IPSec mis en place ; Le mécanisme ESP consomme

1712 octets de bande passante contre 1688 octets consommées par le mécanisme AH. Nous pouvons,

également, noter que la bande passante consommée durant la phase de transfert varie en fonction des

services de sécurité sélectionnés et ceci indépendamment du mécanisme de sécurité mis en place. En effet,

la confidentialité seule (1378 – 1358 = 20 octets/paquet) consomme moins de bande passante que

l’authentification et l’intégrité (1382 – 1358 = 24 octets/paquet). En revanche, l’impact le plus important a

lieu lorsque ces deux types de services (confidentialité avec authentification et intégrité) sont associés l’un

à l’autre (1390 – 1358 = 32 octets/paquet).

Cependant, si nous voulons évaluer l’impact de la sécurité sur des flux correspondants à différents

types d’application, alors le surcoût en termes de bande passante devrait être plutôt évalué en pourcentage

car l’ajout de trente octets à un paquet de vidéo dont la taille maximale est de 1490 octets (entre 50 et 1450

octets de données utiles et 40 octets d’entête RTP/UDP/IP) n’a pas la même incidence que l’ajout de ce

même nombre d’octets (30) à un paquet de voix qui a une taille maximale de 190 octets (entre 20 et 150

octets de données utiles plus 40 octets d’entête RTP/UDP/IP) [CIS 06]

4.5.1.3 Impact des traitements de sécurité

Les traitements de sécurité nécessitent des ressources comme l’espace mémoire et le temps CPU.

C’est le temps mis par une machine afin de réaliser les traitements requis par un niveau de sécurité qui

123

correspond au délai supplémentaire devant être pris en compte lors d’une négociation conjointe de QoS et

de sécurité. Nous avons déjà souligné que le temps requis par des traitements de sécurité devrait dépendre

des performances de la machine qui doit réaliser ces traitements. Dans cette section, nous présentons les

résultats de quelques travaux qui montrent que la capacité des traitements (relatifs à la sécurité) varie en

fonction des performances des machines.

Dans les travaux considérés [KON 03], les auteurs ont utilisé des machines dont le CPU varie du

Pentium II 450 MHz jusqu’au Pentium IV 1.8 GHz. La plus lente de ces machines est dotée d’un CPU

Pentium II cadencé à 450 MHz avec 512 Ko de cache L2. La machine la plus rapide utilise un CPU

Pentium IV 1,8 GHz avec 256 Ko de cache L2, et l’autre machine (performances moyennes) utilise un

processeur Pentium III 850 Mhz avec 256 Ko de cache L2. Le Tableau 4-6 montre les performances de

ces différentes machines en termes de traitements cryptographiques.

System

configuration

AES finalists (block size = key size: 1st row 128-bit, 2nd row

256-bit) encryption/decryption throughput (Mbit/sec)

RSA public key algorithm

signing/verification delay (sec)

Pentium II

450 MHZ

61.5/68.8

99.2/103.2

100.0/91.4

200.0/185.5

133.3/156.1

266.7/312.2

22.4/25.1

45.6/51.4

125.5/123.1

261.2/241.5

0.27/0.01 0.53/0.01 0.86/0.01

Pentium III

850 MHZ

139.1/136.2

200.0/196.9

76.2/71.9

156.1/142.2

95.5/142.2

188.2/284.4

41.8/48.1

83.7/96.2

188.2/182.9

376.5/365.7

0.15/0.01 0.29/0.01 0.46/0.01

Pentium IV

1.8 GHZ

278.3/193.9

387.9/297.7

130.6/106.7

246.2/224.6

160.0/213.3

312.2/426.7

47.4/53.3

94.1/105.8

278.3/304.8

533.3/533.3

0.08/0.01 0.15/0.01 0.24/0.01

Tableau 4-6 : Performances en termes de traitements cryptographiques [KON 03]

Ces traitements concernent le chiffrement symétrique basé sur l’algorithme AES et l’authentification

basée sur l’algorithme RSA. Pour le chiffrement AES, plusieurs types d’algorithmes AES ont été testés

(AES/Rjindael, AES/Mars, AES/RC6, etc.). Pour chacun de ces types, les mesures de performances ont

porté sur l’opération de chiffrement et également sur celle de déchiffrement parce que souvent le temps

nécessaire au chiffrement est différent de celui requis par le déchiffrement. A partir du Tableau 4-6, nous

pouvons noter que, dans le cas où la taille de la clé ainsi que celle d’un bloc sont égales à 128 bits, le

chiffrement avec AES/Rijndael peut atteindre une capacité de traitement ≥ 61,5 Mb/s sur la machine la

plus lente et ≥ 193,9 Mb/s sur la machine la plus rapide. Ce même tableau inclut des mesures de

performances pour le cas d’une clé et d’une taille de bloc toutes les deux égales à 256 bits. Dans ce cas, la

performance de AES/Rijndael augmente pour atteindre une capacité ≥ 99,2 Mb/s sur la machine la plus

lente, et ≥ 297,7 Mb/s sur la plus rapide. Notons que ces mesures montrent que tous les types de

chiffrement AES testés, y compris la norme Rijndael, offrent un débit satisfaisant pour les points d’accès

802.11 : 11 Mb/s (802.11b) ou 54 Mb/s (802.11a et 802.11g). Le Tableau 4-6 montre, également, un

système de cryptographie à clé publique, à savoir RSA, qui peut effectuer de manière efficace

l’authentification et l’échange de clé en moins d’une seconde.

Synthèse : Les travaux que nous avons décrits ci-dessus, montrent que l’impact de la sécurité sur la

QoS dépend de plusieurs facteurs comme le ou les protocoles utilisés, les services de sécurité sélectionnés,

les algorithmes utilisés pour fournir ces services, mais aussi les performances de la machine qui réalise les

traitements de sécurité. Afin de pouvoir prendre en compte l’impact de la sécurité sur la QoS dans la

négociation de SLNP, cet impact doit être traduit en termes de paramètres de QoS négociés, à savoir le

délai, la gigue, le taux de perte et la bande passante. Cet impact doit être, également, évalué en fonction des

124

protocoles et algorithmes de sécurité que considère la négociation assurée par SLNP. Ainsi, dans la section

suivante, nous allons réaliser nos propres mesures de l’impact des types de sécurité considérés par SLNP

sur les paramètres de QoS négociés par ce protocole. Nous essayons, également, de considérer différents

types de trafic, à savoir TCP et UDP.

4.5.2 Tests réalisés

4.5.2.1 Plateforme de tests

Les tests qui ont permis d’obtenir une estimation de l’impact de la sécurité sur la QoS, ont été

effectués sur une plateforme composée de deux machines ayant les mêmes performances ; il s’agit de deux

machines IBM dotées chacune d’un CPU Pentium IV cadencé à 2.4 GHz et d’une mémoire RAM d’une

capacité de 256 Mb. Chacune de ces deux machines fonctionne sous un système d’exploitation (OS :

Operating System) de type Linux [LIN 09].

Les tests consistent à créer des communications sécurisées entre les deux machines de la plateforme à

travers le réseau filaire qui les lie entre elles (Figure 4-31). Etant donné que les protocoles de sécurité

concernés par ces tests sont les protocoles IPSec, TLS et DTLS, nous avons dû mettre en place ces

protocoles sur les machines composant notre plateforme de tests. Pour le protocole IPSec, nous avons

opté pour l’implémentation Openswan, alors qu’en ce qui concerne le protocole TLS/DTLS, nous avons

choisi l’implémentation OpenSSL.

Figure 4-31 : Plateforme de tests de l'impact de la sécurité sur la QoS

4.5.2.1.1 Implémentation Openswan de IPSec

Le protocole IPSec peut être implémenté essentiellement à deux niveaux différents : le terminal ou le

routeur. Cette implémentation peut être intégrée dans le système d’exploitation du terminal où elle agit au

niveau de la couche « Réseau » (Cas des OS : Red Hat Entreprise Linux et Windows Server 2003).

L’implémentation de IPSec peut être, également, introduite entre la couche « Réseau » et la couche

« Liaison de données » afin d’exploiter des fonctionnalités offertes par l’OS, ce qui est le cas de

l’implémentation Openswan [OSW 09]. Au niveau du routeur, une implémentation IPSec peut être

intégrée dans le software du routeur (cas des routeurs Cisco [CIS 09] par exemple), ou située sur un

terminal connecté sur l’interface physique du routeur.

Pour la réalisation de nos tests, nous avons choisi l’implémentation Openswan. Il s’agit de la première

implémentation IPSec pour l’OS Linux. De plus, cette implémentation est basée sur un code open source

125

très stable, et offre toutes les fonctionnalités nécessaires à la création des VPNs (Virtual Private Network)

pour Linux.

4.5.2.1.2 Implémentation OpenVPN de TLS-DTLS

OpenSSL [OSS 09] est une implémentation open source des protocoles SSL et TLS. Cette

implémentation supporte le protocole DTLS depuis la version 0.9.8. Les librairies sur lesquelles se fonde

cette implémentation peuvent être utilisées par d’autres implémentations comme OpenVPN [OVP 09].

Afin de tester l’impact des protocoles TLS et DTLS sur les paramètres de QoS, nous avons choisi

d’utiliser l’implémentation OpenVPN qui est, également, une implémentation open source et qui

nécessite, également, l’installation de OpenSSL. Cette implémentation offre plusieurs fonctionnalités qui

permettent de réaliser les différentes opérations cryptographiques nécessaires à l’établissement des

communications sécurisées entre un client et un serveur, tel que la création et l’envoi de certificats pour

l’authentification, la signature, le chiffrement, etc.

Après avoir préparé la plateforme de tests et mis en place les implémentations des différents

protocoles de sécurité à tester, nous avons dû choisir les outils qui nous permettent de mesurer les

paramètres de QoS considérés (delai, gigue, taux de perte et bande passante). Les outils auqels nous avons

fait appel pour mesurer l’impact de la sécurité sur la QoS sont décrits dans l’annexe 0. Suivant, le

paramètre sur lequel portent les mesures et en fonction du type de trafic pour lequel ces mesures sont

effectuées (TCP ou UDP, non sécurisé ou sécurisé), nous choisissons d’utiliser tel ou tel outil parmi ceux

présentés ci-dessus.

4.5.2.2 Résultats des tests

En utilisant les différents outils de mesures disponibles, nous avons procédé à un ensemble de tests

ayant pour objectif d’évaluer l’impact des sécurités IPSec et TLS-DTLS sur les différents paramètres de

QoS pour les deux types de transport, à savoir TCP et UDP.

Ils existent plusieurs facteurs qui peuvent causer la dégradation des paramètres de QoS d’une

transmission. Parmi ces facteurs, nous citons la surcharge du réseau et le taux d’utilisation du CPU qui

peuvent avoir, parfois, une influence plus importante que celle des mécanismes de sécurité sur les

performances de la QoS. C’est pourquoi, nous avons essayé de contrôler d’une manière optimale les

conditions expérimentales en permettant seulement l’exécution des applications chargées de la

transmission des données sur les deux systèmes formant notre plateforme de tests. En outre, le réseau

filaire reliant ces deux systèmes a été sur-approvisionné (la bande passante du réseau est plus grande que le

débit des transmissions testées) et il n’y a aucun autre flux circulant sur ce réseau.

Dans la première série de mesures que nous avons effectuées, nous avons essayé d’évaluer l’impact

de la sécurité sur la QoS en fonction de l’algorithme utilisé. Les résultats obtenus ont permis de conclure

que le choix de l’algorithme à utiliser dans l’offre d’un service de sécurité (intégrité ou confidentialité) n’a

quasiment pas d’influence sur les mesures de l’impact.

Compte tenu de ce premier résultat, l’impact de la sécurité sur la QoS ne va dépendre que des

services de sécurité fournis et du protocole utilisé. Ainsi, nous allons procéder à deux types de tests. Le

premier type concerne un trafic UDP et utilise essentiellement les outils Sjitter et Iperf afin d’évaluer et

comparer le délai, la gigue, la bande passante et le taux de perte pour plusieurs politiques de sécurité. Le

126

deuxième type de tests va, quant à lui, porter sur les paramètres caractérisant un trafic TCP, à savoir le

délai et la bande passante, en utilisant les outils Hping et Iperf, toujours pour les mêmes politiques de

sécurité.

Notons qu’à chaque fois que nous configurons un certain niveau de sécurité, nous utilisons l’outil

Wireshark afin de visualiser les données transmises et ainsi vérifier le bon fonctionnement de cette

sécurité. Cependant, lorsque les mesures sont réalisées, cette application (Wireshark) doit être arrêtée parce

qu’elle consomme les ressources de la machine, à savoir la mémoire et le CPU, et pourra donc fausser les

résultats de nos tests.

Pour chaque type de trafic (TCP et UDP), nous mesurons les paramètres de QoS en fonction d’un

certain nombre de politiques de sécurité parmi celles contenues dans le Tableau 4-7. En effet, ce sont les

politiques P0, P1, P2, P3 et P5 qui sont appliquées pour les tests correspondant au trafic UDP, alors que

les politiques P0, P1, P2, P4 et P6 concernent les tests correspondant au trafic TCP.

Politique Caractéristiques

P0 Sans sécurité

P1 IPSec, AH, Intégrité=hmac-sha1-96

P2 IPSec, ESP, Intégrité=hmac-sha1-96, Confidentialité=aes-cbc

P3 DTLS, Intégrité=sha1, Confidentialité=aes

P4 TLS, Intégrité=sha1, Confidentialité=aes

P5 P2 + P3

P6 P2 + P4

Tableau 4-7 : Politiques de sécurité

La Figure 4-32 montre l’impact des services de sécurité sur les mesures du délai, de la gigue et de la

bande passante que nous avons effectuées. On remarque, clairement, que les services de sécurité (intégrité

et confidentialité), offerts grâce à l’utilisation du protocole IPSec et à celle du protocole DTLS,

augmentent le délai de transmission UDP ainsi que la gigue et nécessitent plus de bande passante pour

envoyer la même quantité de données. Nous remarquons, également, que l’impact de la confidentialité

associée à l’intégrité (P2) est toujours plus conséquent que celui de l’intégrité toute seule (P1).

Il faut, également, noter que l’influence de DTLS est très semblable à celle d’IPSec lorsque les

niveaux de sécurité sont comparables (P2 et P3), et que l’impact le plus important est obtenu lorsque les

deux types de sécurité, à savoir IPSec et DTLS, sont empilés pour une même transmission de données.

Dans ce cas, l’impact mesuré sur les paramètres délai, gigue et bande passante est quasiment égal à la

somme des impacts des deux sécurités (IPSec et DTLS) appliquées indépendamment.

En ce qui concerne les mesures du taux de perte, nous avons obtenu un taux de perte toujours égal à

zéro. Ceci est dû à la nature du réseau utilisé sur notre plateforme de tests. Comme nous l’avons déjà

précisé, notre plateforme est composée de deux machines directement reliées entre elles par un câble

réseau avec une capacité largement supérieure à la taille des données générées par les outils de mesures

que nous utilisons.

127

a : Impact sur le délai b : Impact sur la gigue

c : Impact sur la bande passante

Figure 4-32 : Impact de la sécurité sur la QoS pour un trafic UDP

Les paramètres de qualité de service que nous pouvons mesurer pour le trafic de type TCP sont le

délai et la bande passante. En effet, les travaux présentés dans [ZHA 96] ont démontré que, pour la

majorité des applications existantes, l’étude de la bande passante et l’un des trois autres paramètres (délai,

gigue et taux de perte) est suffisante. Ces travaux ont également montré que le délai est plus important que

la gigue et le taux de perte. Par ailleurs, l’étude de taux de perte pour un protocole de transport fiable

comme TCP n’a aucun sens parce que ce protocole assure par lui-même la retransmission des paquets

perdus. Ainsi, nous allons mesurer l’impact de la sécurité sur le délai et la bande passante.

Pour un trafic TCP, la Figure 4-33 montre que l’introduction des mécanismes de sécurité a presque le

même effet sur les paramètres délai et bande passante que celui que nous avons constaté avec le flux UDP.

En effet, le délai connait une augmentation importante lorsque l’intégrité est ajoutée grâce à IPSec (il passe

de 0,34 à 0,62). Ce délai atteint sa plus grande valeur lorsque le flux TCP est sécurisé à la fois au niveau IP

et au niveau « Transport » (0,93). La bande passante, elle aussi, augmente avec l’ajout du mécanisme AH

d’IPSec pour offrir l’intégrité des données. Cette augmentation est due à l’ajout du code MAC aux entêtes

des paquets IP. Nous pouvons, également, noter que la bande passante consommée lors de l’ajout de TLS

et IPSec est supérieure à celle requise lors de l’utilisation d’IPSec ou TLS.

Les mesures qui concernent la bande passante pour les deux types de trafic ont été effectuées en

utilisant l’outil Iperf qui calcule le débit d’envoi de données du niveau applicatif en envoyant une certaine

quantité de données applicatives avec une taille maximale fixe au niveau réseau. Ainsi, le débit donné par

cet outil est un débit qui baisse en ajoutant des mécanismes de sécurité. Nous avons donc du faire les

calculs nécessaires afin d’exprimer l’impact de la sécurité en termes de bande passante nécessaire pour une

même taille de données applicatives. Notons, également, que chacune des mesures présentées ci-dessus

constitue la moyenne d’une centaine d’essais.

128

a : Impact sur le délai b : Impact sur la bande passante

Figure 4-33 : Impact de la sécurité sur la QoS pour un trafic TCP

Il est vrai que ces mesures donnent une idée sur l’impact des mécanismes de sécurité sur la QoS, mais

ne couvrent pas toutes les possibilités de sécurisation. En effet, nous pouvons avoir une sécurité IPSec

offrant uniquement la confidentialité. Nous pouvons, également, avoir à offrir uniquement la

confidentialité mais a deux niveaux de la couche TCP/IP, etc. De plus, dans la réalité, nous n’avons pas

tout le temps des machines consacrées uniquement aux traitements correspondant à la communication

sécurisée. Ainsi, il y a beaucoup d’autres paramètres à prendre en compte dans l’estimation de l’impact et

notre série de mesures peut être encore étendue et complétée par d’autres mesures.

4.5.3 Résumé

La section 4.5 a été réservée à l’étude de l’impact de la sécurité sur la QoS. Nous avons décrit, tout

d’abord, quelques travaux ayant porté sur cet impact. Ensuite, nous avons présenté les travaux que nous

avons réalisés dans le but d’estimer l’influence des mécanismes de sécurité sur les paramètres de QoS. Ces

estimations ont été réalisées, non seulement, pour vérifier l’existence de cet impact, mais aussi pour

pouvoir prendre en compte cet impact dans une négociation de niveau de service avec SLNP. Ainsi, nous

avons proposé d’ajouter au niveau des RMF des entités de négociation une table qui reprend les résultats

des mesures réalisés. Ceci permet à toute entité participant à une négociation conjointe de QoS et de

sécurité d’obtenir une estimation de l’impact à partir de sa RMF afin de pouvoir négocier correctement le

niveau de service requis pour une communication. En effet, quand une entité SLNP met à jour le

paramètre délai en rajoutant la valeur du délai de transit à travers son réseau, elle doit prendre en compte

les délais produits, suite à d’éventuelles opérations cryptographiques, telles que le calcul de code MAC ou

encore le chiffrement et le déchiffrement.

4.6 Conclusion

Les services transportés sur les réseaux de nouvelle génération peuvent avoir besoin de garanties en

matière de QoS et de sécurité. Nous avons vu, dans le deuxième chapitre, que la sécurité de bout en bout

requise par ces services peut être offerte en mettant en œuvre un ou plusieurs protocoles de sécurité. En

se fondant sur les protocoles de sécurité les plus utilisés (IPSec, TLS et DTLS), nous avons essayé

d’étendre la négociation de la QoS, que permet d’accomplir le protocole SLNP, aux paramètres de

sécurité. Ceci permet de négocier conjointement ces deux aspects. L’intérêt de cette négociation conjointe

est de considérer l’impact de la sécurité sur la QoS.

129

Dans une première partie de ce chapitre, nous avons expliqué les raisons pour lesquelles la sécurité

doit être associée à la QoS dans la négociation de niveau de service. Ensuite, nous avons introduit

quelques travaux ayant porté sur cette association. Ces travaux nous ont aidés dans la définition des

paramètres de sécurité qui seront négociés avec le protocole SLNP. Après avoir défini ces paramètres,

nous avons proposé un nouvel SLS permettant aux différents responsables de domaines de garantir une

offre de service couvrant la QoS et la sécurité. Puis, nous avons modifié le fonctionnement de la

négociation de la QoS afin de permettre de répondre aux besoins de négociation simultanée de la QoS et

de la sécurité. Enfin, les performances de cette nouvelle version ont été mesurées et les résultats de ces

mesures ont été présentés et commentés.

Dans la deuxième partie de ce chapitre, nous avons commencé par présenter quelques travaux ayant

traité de l’impact des services de sécurité sur les performances d’une communication. Ensuite, nous avons

proposé de réaliser nos propres tests dans le but d’estimer l’impact de la sécurité négociée avec SLNP sur

la QoS. Ces mesures pourront, ensuite, être exploitées par les différentes entités de négociation SLNP

dans la prise en compte de l’impact de la sécurité sur la QoS lors d’une négociation conjointe. Pour cela,

nous avons commencé par décrire la plateforme de test utilisée avant de définir les politiques de sécurité

testées et les paramètres de QoS pouvant être mesurés, pour chacun des deux types de trafic testés : TCP

et UDP. Enfin, les résultats de ces tests ont été présentés et commentés.

La négociation du protocole SLNP n’a pas prévu de gérer les aspects de mobilité. Cependant,

aujourd’hui, les utilisateurs mobiles sont de plus en plus nombreux et peuvent accéder aux différents

services offerts par les réseaux de nouvelle génération à tout moment et à partir de n’importe quel endroit.

Ainsi, le protocole SLNP doit, également, s’adapter à ce nouveau contexte. C’est donc l’objectif des

travaux qui seront décrits dans le chapitre suivant.

130

Chapitre 5

Adaptation du protocole SLNP

aux réseaux NGN

5.1 Introduction

Nous avons vu dans le deuxième chapitre que les services transportés sur les réseaux de nouvelle

génération nécessitent des garanties en matière de qualité de service et de sécurité. Cependant,

l’architecture des réseaux NGN est caractérisée par la multitude et la diversité des réseaux d’accès qui

peuvent coexister dans un même lieu, et par des utilisateurs de plus en plus mobiles pouvant se connecter

grâce à différents types de terminaux (laptop, PDA, smartphone, etc.). Ainsi, dans cet environnement très

dynamique, l’offre de service qui peut être garantie avec la négociation SLNP (QoS et sécurité) doit

prendre en compte la mobilité des utilisateurs en assurant une négociation plus dynamique. Ceci permettra

de mettre à jour le niveau de service d’une communication à chaque fois que l’utilisateur changera de

réseau d’accès ou de type de terminal, etc.

Ce chapitre est divisé en deux grandes parties. La première partie décrit un service NGN particulier, à

savoir le service IPTV. L’architecture IPTV permet de délivrer le flux IPTV aux différents utilisateurs

mobiles connectés grâce à un réseau sans fil, tout en offrant des garanties en matière de QoS et de

sécurité. En effet, dans le cadre de l’architecture IPTV, nous proposons d’adapter le protocole SLNP afin

de pouvoir assurer l’offre de service au niveau du réseau de cœur. Tandis qu’au niveau du réseau d’accès

une adaptation fondée sur un outil du standard MPEG-21, à savoir l’UED (User Environment

Description), est mis en œuvre. Puisque l’UED, tel qu’il a été défini par la norme MPEG-21, ne prend en

compte que les paramètres du profil relatifs à la QoS, nous avons étendu cette description aux paramètres

de sécurité. Ceci permet ainsi de prendre en compte la sécurité dans l’adaptation des flux IPTV délivrés

aux différents utilisateurs mobiles.

Dans la deuxième partie de ce chapitre nous rappelons l’architecture générale des réseaux NGN

permettant d’offrir aux différents utilisateurs une connectivité ubiquitaire, afin de mieux cerner les défis à

relever. Ensuite, nous tirons profit de l’expérience acquise lors de l’extension du profil UED afin de

proposer une négociation de QoS et de sécurité fondée sur l’utilisation du profil utilisateur. Pour cela,

nous introduisons, auparavant, quelques travaux portant sur les profils utilisateurs qui nous ont aidés dans

la définition d’un profil utilisateur sur lequel se fondera la négociation SLNP. Le fonctionnement de cette

131

négociation dans les environnements NGN est ensuite défini. Pour ce nouveau fonctionnement, nous

proposons de fonder la négociation sur ce profil utilisateur, et de coopérer avec le standard IEEE 802.21

afin d’assurer le handover pour des utilisateurs mobiles et de pouvoir considérer l’impact de cette mobilité

dans le niveau de service négocié. L’adaptation de notre implémentation du protocole SLNP à ce nouveau

fonctionnement est, par la suite, réalisée et de nouveaux tests de performances sont effectués. Enfin, nous

donnons un exemple de négociation montrant l’utilité de l’utilisation du profil utilisateur et de la

coopération avec le protocole MIH dans la négociation.

5.2 Gestion de la QoS et de la sécurité dans une architecture pour les

services IPTV

Dans cette section, nous commençons par décrire l’architecture qui permet de délivrer les services

IPTV pour des utilisateurs mobiles connectés via des réseaux sans fil et utilisant des terminaux

hétérogènes. Cette description va nous permettre d’identifier les problèmes que nous pouvons rencontrer

si nous voulons utiliser le protocole SLNP afin de garantir l’offre de ces services. Ensuite, nous allons

décrire la solution que nous proposons afin de pallier à ces problèmes et pouvoir garantir une QoS et une

sécurité de bout en bout pour les services offerts.

5.2.1 Architecture pour la fourniture des services IPTV

Dans cette partie, nous présentons les services IPTV qui sont offerts dans le cadre de l’architecture

que nous considérons. Ensuite, nous décrivons cette architecture en détaillant le fonctionnement de la

fourniture des services IPTV ainsi que toutes les entités mises en œuvre dans le cadre de cette architecture.

5.2.1.1 Les services IPTV

Actuellement, il n’existe pas une définition unique de l’IPTV, mais l’IPTV FG (Focus Group) de

l’ITU-T l’a défini comme suit [ITU 06] : « l’IPTV est défini comme étant des services multimédia,

télévision/vidéo/audio/texte/graphiques/données, délivrés sur un réseau IP contrôlé afin de fournir le

niveau de QoS/QoE, sécurité, interactivité et fiabilité exigé ». Ainsi, les services IPTV englobent

essentiellement les services de transmission audio/vidéo, live ou préenregistrés, sur des infrastructures

fondées sur IP. Parmi ces services, nous citons la VoD, le LoD et l’IPTV multicast.

• VoD (Video on Demand) : la VoD permet aux utilisateurs de demander la réception de vidéos

préenregistrées et stockées sur des serveurs. Elle est fondée sur une architecture client/serveur où le

client utilise un protocole de contrôle de session (RTSP, SIP, MMS, etc.) afin de demander une vidéo

qui est, ensuite, transmise par un serveur. Le mode de transmission spécifique à la VoD est

principalement l’unicast.

• LoD (Live on Demand) : le LoD permet aux utilisateurs de demander de recevoir des flux vidéo live et

non pas des vidéos préenregistrées. Comme la VoD, le LoD se fonde sur une architecture

client/serveur où le client utilise des protocoles de contrôle de session pour demander la transmission

d’un flux live particulier que le serveur se charge de transmettre en unicast. Ce service est caractérisé

par une mauvaise scalabilité due à la duplication du flux live pour chaque récepteur qui est nécessaire à

l’adaptation et à la personnalisation du flux live en fonction de l’environnement de l’utilisateur.

132

• IPTV multicast : ce service permet la transmission de flux live ou de sessions vidéo préprogrammés en

se fondant sur une transmission en mode multicast sur des réseaux IP. Ceci permet un gain

considérable en bande passante comparé au service LoD.

5.2.1.2 L’architecture IPTV

L’architecture IPTV permet d’interconnecter le réseau DVB-T (Digital Video Brodcast - Terrestrial)

[DVB 09] et les réseaux IP/802.11 [IEE 99a]-[IEE 99b]-[IEE 99c] afin de rendre accessible les services

DVB-T pour les différents utilisateurs connectés via les réseaux Wi-Fi 802.11.

Comme le montre la Figure 5-1, cette architecture est composée de trois segments. D’abord le réseau

de broadcast DVB-T à partir duquel le flux TV numérique est récupéré. Ensuite, le cœur du réseau IP sur

lequel transitent les flux IPTV. Enfin, les réseaux d’accès qui permettent de délivrer les flux IPTV aux

différents utilisateurs mobiles. Dans l’architecture considérée, les réseaux d’accès sont limités aux réseaux

de type IEEE 802.11.

Figure 5-1 : Architecture IPTV [DJA 08]

• Le réseau de diffusion (DVB-T) : Le réseau DVB-T (Digital Vidéo Broadcast – Terrestrial) se base sur le

mode de transmission broadcast afin de permettre la diffusion de la TV numérique, tout en

garantissant une utilisation optimisée des ressources hertziennes, comparé à la diffusion analogique,

grâce à la compression numérique des flux TV. Actuellement, le standard DVB-T (Digital Video

Broadcast - Terrestrial) constitue la technologie la plus déployée pour assurer la diffusion de la TV

numérique et qui, dans quelques années, remplacera définitivement la TV analogique. La DVB-T se

base sur MPEG-2 TS (Transport Stream) pour le transport de l’audio, de la vidéo et des données, et

peut exploiter des canaux de différentes largeurs (5MHz, 6MHz, 7MHz ou 8MHz). Elle peut,

également, utiliser divers techniques de codage et de modulation. Ainsi, le débit offert par le réseau

DVB-T peut varier entre 5 Mbit/s et 32 Mbit/s.

• Le fournisseur de contenu (CP) : le fournisseur de contenu (CP : Content Provider) est l’une des deux

entités clés de cette architecture. Cette entité assure l’interconnexion entre le réseau DVB-T et le cœur

du réseau IP. En effet, le fournisseur de contenu se charge de récupérer des flux DVB-T afin de les

retransmettre dans le cœur du réseau en flux IPTV. Pour cela, les services DVB-T sont transformés

en services IPTV qui seront, par la suite, transmis en multicast. En effet, chaque service est

transformé en une session multimédia transmise dans un groupe multicast (utilisation d’une adresse IP

multicast) et tous les flux composant une session sont transmis sur le même port en utilisant UDP.

133

• Le cœur de réseau (IP) : Le cœur de réseau est un réseau IP pouvant utiliser trois modes de

transmission, à savoir l’unicast, le multicast ou le broadcast. Afin d’assurer la scalabilité, le mode de

transmission multicast est utilisé dans cette architecture. Ceci permet de transmettre les flux IPTV du

fournisseur de contenu vers les passerelles d’adaptation. Ceci évite la duplication des flux transmis à

plusieurs passerelles et préserve, par conséquent, la bande passante disponible dans le cœur du réseau.

Ainsi, chaque flux TV représente un groupe multicast et les passerelles doivent s’abonner aux groupes

pour recevoir les flux TV. Par ailleurs, si aucun des clients d’une passerelle ne demande de recevoir un

flux TV, cette dernière peut se désabonner du groupe afin d’éviter la transmission inutile d’un flux TV

dans le réseau. Ceci permet de préserver les ressources qui peuvent être exploitées par d’autres

services IP. La transmission multicast des flux IPTV est principalement fondée sur deux protocoles :

un protocole de gestion des groupes multicast et un protocole de routage multicast. Dans

l’architecture considérée, la gestion de groupe est assurée par le protocole IGMP (Internet Group

Multicast Protocol) [CAI 02] déployé entre la passerelle et son routeur d’accès et entre le fournisseur

de contenu et son routeur d’accès. Tandis que le routage multicast est assuré grâce au protocole PIM-

SM (Protocol Independent Multicast Sparse-Mode) [PUS 06] déployé entre les routeurs.

• La passerelle d’adaptation (AG) : La passerelle d’adaptation (AG : Adaptation Gateway) est la deuxième

entité clé de l’architecture IPTV considérée. Elle est déployée entre le cœur du réseau et un réseau

d’accès afin de fournir des flux IPTV personnalisés aux stations 802.11 hétérogènes et mobiles. Ainsi,

la passerelle d’adaptation s’occupe de la gestion du réseau WLAN 802.11 en intégrant directement un

point d’accès afin de permettre aux clients connectés via ce réseau d’accéder à un service LoD et de

recevoir les flux TV transmis par le fournisseur de contenu. Afin de personnaliser les flux IPTV, la

passerelle d’adaptation doit interagir avec les couches du réseau d’accès ainsi que le terminal récepteur.

Ceci lui permettra de déterminer la configuration qui assure des performances de transmission

optimales. Cette configuration va servir à l’exécution des adaptations qui permettent, principalement,

de garantir un certain niveau de QoS. En effet, la tâche principale d’une AG est d’adapter la

transmission audio/vidéo en fonction du profil de l’utilisateur mobile. Ainsi, cette adaptation se base

principalement sur un des outils proposés dans la partie 7 du standard MPEG-21, à savoir DIA

(Digital Item Adaptation). Il s’agit de l’UED (Usage Environment Description), décrit dans la section

5.3.2.2, qui permet de décrire les préférences de l’utilisateur, les capacités du terminal qu’il utilise et les

caractéristiques du réseau d’accès, par rapport à la QoS des applications multimédia comme l’IPTV.

• Le réseau d’accès (IEEE 802.21) : Le réseau d’accès est un réseau de type IEEE 802.21 offrant une

connexion IP sans fil. Le déploiement de la technologie 802.11 au niveau des réseaux d’accès s’est

accéléré avec l’apparition des nouvelles normes 802.11g/n [IEE 03]-[IEE 07] qui ont augmenté les

débits de transmission à 54 Mbit/s et jusqu’à 540 Mbit/s. Cette augmentation a permis la transmission

des services IP multimédia gourmands en bande passante comme l’IPTV. Le réseau Wi-Fi 802.11

représente le dernier segment de l’architecture IPTV, sur lequel les flux TV sont transmis en unicast

afin de faire face à l’hétérogénéité des récepteurs mobiles qui possèdent des capacités différentes en

termes de codecs, de puissance de calcul, d’affichage, de sortie audio, etc. En effet, si les flux TV

étaient transmis sur les réseaux Wi-Fi 802.11 avec leur format original, certains terminaux ne

pourraient pas décoder ces flux. De plus, le débit fourni par les réseaux 802.11 reste limité et le débit

des flux TV est relativement élevé. Ainsi, la transmission multicast ne peut pas être étendue au réseau

d’accès, et c’est effectivement la passerelle d’adaptation qui s’occupe d’offrir un service LoD en

134

transmettant en unicast des flux TV adaptés aux terminaux. Le déploiement de cette AG dans le

réseau d’accès a plusieurs avantages. Parmi ces avantages, nous citons la limitation du nombre de

récepteurs pris en charge, puisqu’une AG doit exécuter, pour chaque flux TV transmis, des

adaptations qui sont gourmandes en ressources de calcul (CPU, mémoire, etc.). Un autre avantage est

la communication directe entre une AG et le terminal mobile afin de faciliter la récupération des

caractéristiques de ce terminal ainsi que les préférences de l’utilisateur pour exécuter rapidement les

adaptations requises.

5.2.2 Offre de la QoS et de la sécurité

La description de l’architecture IPTV, donnée ci-dessus, présente une discontinuité dans la

transmission de bout en bout des flux LoD sur les réseaux IP. En effet, ces réseaux couvrent deux

segments à savoir le cœur de réseau et le réseau d’accès. Afin d’optimiser la transmission des flux IPTV du

fournisseur de contenu jusqu’aux utilisateurs mobiles, deux types de transmission différents sur chacun

des deux segments IP ont été retenus. Il s’agit d’une transmission multicast dans le cœur de réseau qui

permet d’assurer une grande scalabilité, et d’une transmission unicast sur les réseaux d’accès afin d’assurer

l’adaptation des flux aux capacités des terminaux mobiles ainsi qu’aux préférences des utilisateurs.

Cependant, pour garantir une offre de service de bout en bout incluant à la fois la qualité de service

et la sécurité, nous pouvons, par exemple, utiliser le protocole SLNP afin de négocier un niveau de service

de bout en bout. Mais ceci nécessitera l’établissement d’un SLS pour chaque flux entre le fournisseur de

contenu et l’utilisateur mobile, ce qui implique le passage à une transmission en unicast même sur le

segment cœur du réseau. Par conséquent, un très grand nombre de flux IPTV seront dupliqués en

entrainant la dégradation des performances du cœur de réseau à cause de cette charge supplémentaire

considérable.

Ainsi, nous devons trouver une solution pour parvenir à gérer une QoS et une sécurité de bout en

bout, tout en gardant cette distinction des deux segments où le multicast est employé dans le cœur du

réseau. Ceci permettra de continuer à profiter des avantages de cette approche, à savoir une optimisation

de la transmission, tout en préservant les ressources au niveau du cœur du réseau.

Figure 5-2 : Gestion de l’offre de service IPTV

135

Dans ce qui suit, nous proposons une solution qui répond à ces exigences en préservant la distinction

entre le cœur du réseau et le réseau d’accès. Dans cette solution, les mécanismes de gestion de l’offre de

service diffèrent d’un segment à l’autre, comme le montre la Figure 5-2.

5.2.2.1 Négociation du niveau de service dans le cœur du réseau

Dans le cœur du réseau, nous proposons d’utiliser le protocole SLNP afin de négocier un niveau de

service portant sur la QoS et la sécurité. En effet, le SLS négocié grâce à ce protocole inclut des

paramètres de QoS et de sécurité (cf. section 4.4.) pouvant être négociés entre les différents responsables

des domaines impliqués dans une transmission de flux IPTV.

Les paramètres de QoS négociés avec SLNP permettent de spécifier parfaitement le niveau de la QoS

qui doit être garantie pour une transmission d’un flux IPTV entre un fournisseur de contenu et plusieurs

passerelles d’adaptation. En effet, l’élément ‘scope’ (Figure 3-12) qui se trouve dans l’élément

‘qosParameters’ du ‘sls’ permet de spécifier un point d’entrée qui peut être le fournisseur de contenu et un

point de sortie qui peut représenter les passerelles d’adaptation appartenant à un même groupe de

multicast. Ainsi, l’adresse IP du point d’entrée n’est autre que l’adresse IP du fournisseur de contenu, alors

que celle du point de sortie est l’adresse du groupe concerné. Les autres éléments contenus dans

‘qosParameters’ permettent à une passerelle d’adaptation de spécifier ses besoins en matière de QoS ; à

savoir le délai, la gigue, la bande passante, le taux de perte, le temps de service, le traitement d’excès, etc.

Notons que lorsqu’une passerelle spécifie le niveau de la QoS qu’elle va négocier relativement à la

transmission des flux IPTV au niveau du cœur du réseau, elle doit prendre en compte la QoS de bout en

bout requise par les utilisateurs mobiles ainsi que la QoS qui caractérise la transmission des flux IPTV à

ces utilisateurs au niveau du réseau d’accès. A titre d’exemple, nous considérons une offre de service où le

délai de bout en bout à garantir doit être inférieur ou égal à 250 ms. Si la passerelle d’adaptation sait que

les flux IPTV ne peuvent pas être transmis sur le réseau d’accès en moins de 50 ms, alors elle doit

demander un niveau de service avec un délai qui doit être absolument inférieur ou égal à 200 ms.

En ce qui concerne le niveau de sécurité à négocier, l’élément ‘secParameters’ (Figure 4-10), composé

d’une portée de sécurité (‘scope’) et d’un protocole de sécurité (‘secProtocol’), permet de spécifier les

extrémités du flux sécurisé ainsi que les paramètres de sécurisation de ce flux. De même que la portée de la

QoS, la portée de la sécurité peut avoir comme point d’entrée le fournisseur de contenu, et comme point

de sortie l’ensemble des passerelles d’adaptation formant un groupe multicast. Le deuxième élément des

paramètres de sécurité (‘secParameters’), à savoir l’élément ‘secProtocol’, permet de se mettre d’accord sur

l’utilisation d’un protocole de sécurité et sur les paramètres caractérisant le niveau de sécurité offert par ce

protocole. Etant donné que l’architecture considérée utilise le protocole RTP (Real-time Transport

Protocol) [SCH 03] juste au dessus du protocole UDP pour le transport des flux IPTV au niveau du cœur

du réseau, il existe alors un autre protocole qui pourrait être utilisé dans la sécurisation de ces flux ; il s’agit

du protocole SRTP (Secure Real-time Transport Protocol) [BAU 04]. En effet, ce protocole propose de

sécuriser les flux échangés au niveau RTP en spécifiant ses propres mécanismes et ses propres algorithmes

de cryptographie. Ainsi, nous proposons d’inclure ce protocole de sécurité dans la liste des protocoles

pouvant être négociés avec SLNP. En implémentant le protocole SRTP, les entités impliquées dans le

transport d’un flux IPTV ont plus de choix par rapport à la manière de sécuriser ce flux et plus de chance

d’aboutir à un accord concernant le niveau de sécurité (Tableau 5-1).

136

Protocole de sécurité

Authentification, intégrité et non-répudiation

Confidentialité Protection contre

le rejeu

IPSec-AH HMAC-SHA1-96

AES-XCBC-MAC-96 HMAC-MD5-96

Numéro de séquence

(Optionnel)

IPSec-ESP HMAC-SHA1-96

AES-XCBC-MAC-96 HMAC-MD5-96

3DES-CBC AES-CBC DES-CBC

Numéro de séquence (Optionnel)

DTLS MD5 SHA1

AES, DES, 3DES, RC4-40, RC4-128, IDES,

Fortezza

Numéro de séquence (Automatique)

SRTP HMAC-SHA1 AES-CM AES-f8M

Numéro de séquence (Automatique)

Tableau 5-1 : Protocoles et algorithmes de sécurité utilisés pour un flux IPTV

Le Tableau 5-1 montre les différentes possibilités de sécurisation d’un flux IPTV. En effet, le

protocole IPSec peut être utilisé dans la protection de ce genre de flux puisqu’il permet de sécuriser

n’importe quel type de flux au niveau IP. Le protocole DTLS peut, également, servir dans l’offre de

services de sécurité au flux IPTV car le transport de ce flux est fondé sur le protocole UDP. Par ailleurs,

les entités impliquées dans le transport d’un flux IPTV au niveau du cœur du réseau peuvent faire appel au

protocole SRTP afin d’assurer un certain niveau de sécurité.

Ainsi, nous avons procédé à l’extension du schéma XML afin de couvrir les besoins d’une

négociation visant à assurer une offre de service IPTV. L’élément ‘secProtocol’ du nouveau schéma XML

auquel le SLS négocié doit se conformer est donné dans la Figure 5-3. Cette nouvelle structure (les

éléments ajoutés sont dessinés en pointillées) donnera la possibilité aux entités impliquées dans une

négociation de niveau de service de choisir la sécurité SRTP et de se mettre d’accord sur les algorithmes à

utiliser pour les deux services de sécurité négociables, à savoir l’intégrité et la confidentialité (voir Tableau

5-1).

Figure 5-3 : Structure de l’élément ‘securityProtocol’ adaptée au cas de l’IPTV

Pour préserver le mode de transmission multicast au niveau du cœur du réseau, le fonctionnement

général du protocole a été légèrement modifié afin de s’adapter à cette situation bien particulière. En

utilisant toujours les mêmes messages SLNP, nous avons proposé un nouveau déroulement pour la

procédure de négociation que nous allons présenter à présent. Ce nouveau déroulement ne nécessite

aucune modification dans l’implémentation du protocole SLNP.

Une négociation SLNP peut avoir lieu entre un fournisseur de contenu et un ensemble de passerelles

d’adaptation (AG). Il faut préciser, tout d’abord, que dans un processus de négociation, les AG doivent

appartenir à un seul et même domaine. Dans le cas contraire, on aurait plusieurs négociations SLNP où les

chemins de négociation diffèrent les uns des autres, et donc obligatoirement des groupes multicast

différents. Ainsi, les AG abonnées à un groupe multicast appartiennent à un seul et même domaine.

137

Figure 5-4 : La négociation SLNP au sein d’un groupe multicast IPTV

Lorsqu’un groupe multicast est créé, une négociation SLNP doit avoir lieu entre la première

passerelle (AG1) voulant se joindre à ce groupe et le fournisseur de contenu (CP).

Lorsqu’une deuxième passerelle (AG2) désire se joindre à ce même groupe, elle initie l’établissement

d’un SLS avec le CP. Si le niveau de service demandé par cette AG2 est le même que celui déjà établi entre

le CP et la passerelle AG1, alors cette dernière est incluse dans le SLS déjà établi. Dans le cas contraire,

une alternative lui est proposée par le réseau. Cette alternative correspond au niveau de service établi entre

le CP et la passerelle AG1. Lorsque la SG2 reçoit cette proposition de la part du cœur du réseau, elle peut

l’accepter et pourra donc se joindre au groupe multicast et bénéficier du niveau de service caractérisant ce

groupe, comme elle peut redemander le même niveau de service qu’elle a demandé auparavant. En

recevant la même demande, le responsable du domaine auquel appartient le CP se charge de notifier la

passerelle AG1 avec le SLS demandé par la passerelle AG2. En cas d’acceptation de cette notification, le

138

SLS demandé par la passerelle AG2 est accepté et celui déjà établi avec la passerelle AG1 est modifié.

Dans le cas contraire la demande de la passerelle AG2 est rejetée.

Lorsqu’une nième passerelle AGn (n≥3) veut se joindre à un groupe multicast composé de n-1

passerelles, alors la négociation doit se dérouler quasiment de la même manière que lors de l’ajout de la

SG2 à ce groupe. En effet, ce qui change c’est le fait de notifier les n-1 entités du groupe lorsque la

passerelle AGn insiste en redemandant le niveau de service qu’elle a demandé initialement et qui n’a pas

été accepté. Si toutes ces entités acceptent de passer au nouveau niveau de service demandé par la nouvelle

passerelle, alors on accepte la demande de cette dernière et on procède à la modification de l’ancien niveau

de service. Dans le cas contraire, c’est-à-dire lorsqu’au moins une des AG du groupe refuse la notification,

la demande de la passerelle AGn est rejetée.

Dans le cas où une passerelle d’adaptation ne peut pas trouver un accord avec un groupe multicast

sur un niveau de service, un nouveau groupe multicast pourrait être créé pour répondre aux besoins de

cette passerelle qui sont différents des autres. Par exemple, on peut trouver deux groupes multicast où l’un

nécessite uniquement des garanties en matière de QoS, tandis que l’autre exige un niveau minimal de

sécurité en plus des garanties en matière de QoS.

5.2.2.2 Consommation du service dans le réseau d’accès

Comme il a été décrit dans la section 5.2.1.2, une passerelle d’adaptation est déployée sur la frontière

d’un réseau d’accès de type 802.11. Le rôle de cette passerelle est de transformer le flux IPTV transmis en

multicast dans le cœur du réseau en un service LoD pour les utilisateurs mobiles connectés via des

terminaux hétérogènes. Dans cette section, nous décrivons comment le service LoD est adapté par la

passerelle d’adaptation en fonction du profil de l’utilisateur.

5.2.2.2.1 Composition du profil UED utilisé

L’adaptation d’un flux IPTV au niveau du réseau d’accès est réalisée en se basant sur la description

UED qui couvre les caractéristiques de l’utilisateur à savoir : ses préférences, les capacités de son terminal

et les caractéristiques du réseau d’accès. Cependant, tous les paramètres décrits par l’UED sont reliés

uniquement à la QoS, et aucun paramètre de sécurité n’est considéré. Or, afin d’assurer un certain niveau

de sécurité qui pourrait être requis par un utilisateur, il faut considérer la sécurité lors de la description de

l’environnement de l’utilisateur en utilisant l’UED. Par exemple, une passerelle d’adaptation doit connaître

le protocole et les algorithmes de sécurité supportés par le terminal de l’utilisateur afin de décider du type

de sécurité à mettre en œuvre. Ainsi, pour assurer à la fois la QoS et la sécurité pour les utilisateurs

connectés directement à une passerelle d’adaptation, des paramètres relatifs à la sécurité ont été introduits

dans la description déjà permise par l’UED. Les Figures 5-5, 5-6 et 5-7 montrent les éléments qui

composent le schéma XML représentant un profil UED. Sur ces figures, les paramètres relatifs à la

sécurité que nous avons ajoutés ont été dessinés en pointillés afin de les distinguer des paramètres relatifs

à la QoS.

• Les préférences de l’utilisateur « UserPreferences » (Figure 5-5) : Les préférences de l’utilisateur sont divisés en

deux sections: les préférences par rapport à l’affichage « DisplayPreferences » et les préférences en

matière de sécurité « SecurityPreferences ». Les préférences par rapport à l’affichage contiennent

uniquement le paramètre « ColorPreferences » qui permet à l’utilisateur de choisir de recevoir la vidéo

139

en couleur ou bien en noir et blanc. Quant aux préférences en matière de sécurité, l’utilisateur peut

spécifier si la sécurité doit être activée ou non grâce à l’élément obligatoire « SecurityStatus ». Dans le

cas où la sécurité est requise, l’utilisateur doit spécifier le niveau souhaité pour les deux services de

sécurité à savoir l’intégrité « IntegrityLevel » et la confidentialité « ConfidentialityLevel ».

Figure 5-5 : Composition des caractéristiques de l’utilisateur

• Les caractéristiques du réseau « NetworkCharacteristics » (Figure 5-6) : Les caractéristiques du réseau

comprennent les capacités réseaux « NetworksCapability » et les conditions réseaux

« NetworksCondition ». Les capacités réseaux regroupent les paramètres invariants (statiques) du

réseau tels que le débit maximal « MaxCapacity » (par exemple 11 Mbits/s pour la norme 802.11b et

54 Mbits/s pour la norme 802.11g), le taux d’erreur moyen « ErrorConnection » et la sécurité

« Security » au niveau de la couche liaison qui peut être activée en utilisant un protocole de sécurité

(par exemple WEP, WPA, WPA2). Tandis que les conditions réseaux regroupent les paramètres

variables (dynamiques) du réseau comme le débit disponible « Bandwidth », le taux de perte

« LossRate », la gigue « Jitter », et la puissance du signal « SignalStrength ».

Figure 5-6 : Composition des caractéristiques du réseau

• Les capacités du terminal « TerminalCapabilities » (Figure 5-7) : Les capacités du terminal sont découpées en

quatre classes où les trois premières sont reliées à la QoS, tandis que la dernière décrit les capacités par

rapport à la sécurité. La première classe « CodecCapability » donne les capacités de décodage

audio/video du terminal (le format de codage « codec », le débit « Bitrate » et le nombre d’images par

seconde « FrameRate »). La deuxième classe « DisplayCapability » décrit les capacités d’affichage du

terminal en termes de résolution verticale et horizontale « Resolution ». La troisième classe précise les

capacités de sortie audio du terminal « AudioOutput » composées du nombre de canaux audio

140

« NumChannels » et du taux d’échantillonnage « SamplingFrequency ». Quant à la dernière classe, elle

décrit les capacités du terminal reliées à la sécurité en énumérant les différents protocoles de sécurité

supportés par le terminal (« Ipsec », « Dtls » et/ou « Srtp ») ainsi que les algorithmes pouvant être

utilisés pour fournir les services de sécurité avec chaque protocole (« Integrity », « Confidentiality » et

« NoReply »).

Figure 5-7 : Composition des capacités du terminal

Une fois constitué, l’UED doit être transmis du client vers la passerelle d’adaptation afin de

demander un flux IPTV spécifique. Etant donné que la transmission du flux IPTV se base sur le protocole

RTSP qui ne gère pas l’adaptation des flux, nous verrons dans la partie suivante comment le

fonctionnement de ce protocole a été ajusté afin de permettre la réalisation de l’adaptation du flux ainsi

que la configuration de la sécurité.

5.2.2.2.2 Adaptation du flux IPTV

Dans l’architecture IPTV considérée, on utilise le protocole RTSP (Real Time Streaming Protocol)

[SCH 98] pour assurer la transmission des flux IPTV aux différents utilisateurs. Ce protocole a été défini

spécialement pour assurer le contrôle d’une session de transmission vidéo. En effet, RTSP est un

protocole de signalisation fondé sur des échanges requêtes/réponses en mode texte. Avant d’entamer la

signalisation, le client récupère à partir des annonces du serveur de flux, l’URL RTSP du flux qu’il veut

recevoir. Pour annoncer une session multimédia multicast, le serveur utilise le protocole SAP (Session

Announcement Protocol) [HAN 00]. Ensuite, la signalisation débute lorsque le client transmet une

requête « OPTION » pour demander à l’AG le type de requêtes qu’il supporte. L’AG communique ces

requêtes dans la réponse. Puis, le client demande la description de la session SDP (Session Description

Protocol) [HAN 06] qui comprend des informations concernant les flux audio/vidéo (format, type

d’encapsulation, etc.) et des informations concernant le transport (les adresses et les ports d’émission et de

réception, les protocoles de transport utilisés, etc.). Enfin, le serveur fournit la description SDP du

141

contenu vidéo statique qui sera transmis lorsque le client accepte la réception de ce contenu. Si le client ne

supporte pas la configuration proposée par le serveur dans la description SDP, alors sa demande échoue.

Ainsi, la signalisation permise par le protocole RTSP ne fournit aucun mécanisme permettant au

client d’envoyer son profil, c’est-à-dire la description UED lui concernant. Pour faire face à ce problème,

une première modification concernant le fonctionnement du protocole RTSP [SCH 98] a été proposée

afin de permettre la transmission de la description UED de l’utilisateur. Cette modification est illustrée

dans la Figure 5-8 qui détaille les échanges RTSP effectués entre un client et la passerelle d’adaptation à

laquelle il est connecté. Avec le nouveau fonctionnement, la description SDP n’est plus statique ; elle est,

en fait, générée par l’AG suivant l’adaptation décidée par rapport à chaque nouvelle session. Pour cela, la

description UED est intégrée à la requête « DESCRIBE » transmise par le client vers l’AG. Cette dernière

(AG) spécifie les paramètres de QoS et de sécurité pour la session afin de générer une nouvelle description

SDP de la session. Le nouveau SDP est, ensuite, transmis dans la réponse à la requête « DESCRIBE ». Le

client et l’AG peuvent maintenant s’échanger les requêtes/réponses « SETUP » pour confirmer la

configuration des flux de la session. L’AG transmet les flux audio/vidéo adaptés après réception de la

requête « PLAY ». Le client peut stopper la transmission avec la requête « STOP » et détruire la session

avec la requête « TEARDOWN ».

Figure 5-8 : Messages RTSP échangés entre l’AG et le Client

Au moment où la nouvelle description SDP est reçue par le client, la sécurité décidée par l’AG peut

être configurée avant la création de la session IPTV (par exemple l’établissement de l’association de

sécurité grâce au protocole IKEv2 dans le cas d’une sécurité IPSec, etc.). Cependant, la configuration de la

sécurité à ce moment, peut être inutile, notamment dans le cas où la session n’est pas créée. Ainsi, pour

éviter de procéder à une configuration inutile, cette sécurité n’est configurée qu’après l’échange des

requêtes/réponses « SETUP » confirmant le démarrage d’une session IPTV (Figure 5-8).

142

Cette adaptation est exécutée au début de la session afin de permettre de transcoder les flux IPTV

suivant les paramètres de l’UED. Ceci implique l’établissement d’un contexte du côté de l’AG et du client

(codage/décodage, affichage, sortie audio, sécurité, etc.) représenté par la description SDP. Une fois établi,

ce contexte ne peut pas être changé sans interrompre la transmission des flux IPTV. Par ailleurs, le

changement de ce contexte (n’importe quel paramètre de l’UED) correspond au démarrage d’une nouvelle

session avec une nouvelle description UED.

5.2.3 Résumé

Il existe des architectures permettant de consommer certains services offerts par les réseaux de

nouvelle génération auxquelles la négociation SLNP, que nous avons spécifiée, ne peut pas être appliquée

tel quel afin de garantir un niveau de service de bout en bout. Parmi ces architectures, nous pouvons citer

l’IPTV sur le WiMax [SHE 07], ou encore l’IPTV sur le Wi-Fi [DJA 08] qui est caractérisée par l’utilisation

de deux modes de transport différents sur chacun des deux segments composant cette architecture.

L’architecture IPTV sur le Wi-Fi permet de délivrer des flux TV pour des utilisateurs sans fil connectés via

des réseaux d’accès de type IEEE 802.11. Dans ce cas bien précis, nous avons du proposer une solution

bien adaptée à cette architecture afin de pouvoir gérer la qualité de service et la sécurité de bout en bout

pour le service IPTV. Lors de la proposition de cette solution, nous avons pu étendre la description du

profil utilisateur, permise par l’UED, afin qu’elle permette une consommation du service IPTV pour

laquelle des garanties de QoS et de sécurité peuvent être assurées. Ceci nous a particulièrement aidés à

définir, par la suite, un profil pour la négociation de niveau de service (cf. section 5.3.3). La définition de

ce profil s’inscrit dans le cadre de la proposition d’une approche de négociation fondée sur le profil de

l’utilisateur qui permet d’adapter le protocole SLNP à l’ubiquité caractérisant la consommation des

services dans les réseaux NGN.

5.3 Négociation de niveau de service dans les environnements NGN

5.3.1 Contexte et motivations

Les réseaux NGN proposent d’assurer l’ubiquité ayant pour but de permettre à un utilisateur d’être

connecté au mieux, à tout moment et quelque soit l’endroit où il se trouve à l’Internet. Pour cela, les

différents terminaux mobiles des utilisateurs tels que les ordinateurs portables, les PDA et les smartphones

doivent être équipés d’une multitude d’interfaces de connexion. Ils auront, ainsi, la possibilité de se

connecter de n’importe où, via différentes technologies, en particulier sans fil, grâce au déploiement

attendu des nouvelles évolutions du Wi-Fi et du WiMax. Afin de permettre cette ubiquité, l’architecture

des réseaux de nouvelle génération a été fondée sur un découpage vertical entre les différents domaines

pouvant être impliqués dans le transport d’un service où chaque domaine peut fournir plusieurs types

d’accès aux utilisateurs qui lui sont directement connectés.

Dans cette architecture, rappelée dans la Figure 5-9, chaque utilisateur doit s’adresser à un fournisseur

de service (SP : Service Provider) qui s’occupe de garantir le niveau de service nécessaire à chaque

communication de ce client. Ainsi, lorsque ce SP reçoit une demande concernant une offre de service de la

part de son client, il s’occupe de l’initiation de la négociation de niveau de service entre les différents

143

fournisseurs de réseaux (NP : Network Provider) devant participer au transport du service. Généralement,

on confond le fournisseur de service avec le premier fournisseur de réseau. C’est pour cette raison que

dans la description du protocole SLNP, nous avons utilisé le terme plus général : ‘responsable de

domaine’. Ainsi, dans le fonctionnement SLNP, chaque utilisateur s’adresse au responsable du premier

domaine (SI) qui peut être, en réalité, à la fois le fournisseur de service et le fournisseur du premier réseau.

C’est donc cette entité qui s’occupe toujours d’initier une négociation de niveau de service.

Dans cette section, nous nous intéressons à ce premier domaine qui peut fournir plusieurs types de

réseaux d’accès (AN : Access Network) permettant aux différents clients de se connecter avec leurs divers

terminaux et de changer à tout moment de réseaux d’accès. En effet, le client C1, connecté via le réseau

d’accès AN1-2, a besoin de garanties de QoS et de sécurité qui pourront varier en fonction du réseau

d’accès emprunté. Par ailleurs, ce client peut vouloir changer de réseau d‘accès (AN1-1 ou AN1-3) pour

des raisons de mobilité ou parce qu’un nouveau réseau correspondant mieux à ses besoins devient

accessible. D’où le besoin de pouvoir négocier dynamiquement le niveau de service nécessaire à chaque

communication.

Figure 5-9 : Négociation SLNP dans les réseaux NGN

Le nouveau fonctionnement du protocole SLNP permet de négocier conjointement la QoS et la

sécurité, ce qui pourrait être très utile dans les environnements NGN, notamment avec le large

déploiement des réseaux sans fil. Mais, ce protocole, sous sa version actuelle, ne prend pas en compte la

mobilité des utilisateurs dans sa négociation. Nous n’avons pas non plus prévu de mécanismes pour gérer

la mise à jour d’un niveau de service lorsque le client change de réseau d’accès. De plus, nous avons vu

dans le chapitre précédent que les paramètres du SLS négociés entre les différentes responsables de

domaines sont exprimés quantitativement afin de pouvoir prendre en compte l’impact quantifié de la

sécurité sur la QoS dans cette négociation. Or, lorsqu’un utilisateur non-expert demande à son fournisseur

de service un niveau de service, il lui est très difficile d’exprimer le niveau de sécurité souhaité d’une

manière quantitative.

La solution qui permet de résoudre ces différents problèmes, est de fonder la négociation SLNP sur

un profil utilisateur. En effet, il s’agit de regrouper toutes les informations concernant l’utilisateur et son

environnement de connexion dans un profil qui lui sera associé. Ce profil permettra de déterminer avec

144

précision le SLS nécessaire aux services consommés par cet utilisateur. Et, à chaque fois que l’une des

informations composant ce profil est modifiée, la définition du niveau de service requis est relancée afin

de mettre à jour le SLS établi si nécessaire. Ceci permettra de prendre en compte tout changement qui

peut concerner l’utilisateur ou son environnement de connexion, y compris le changement de réseau

d’accès. Cette solution nous aide également à améliorer, optimiser et surtout automatiser le processus de

négociation de niveau de service assuré par SLNP. En ce qui concerne la collecte des caractéristiques du

réseau d’accès, nous proposons d’utiliser le standard MIH (cf. section 2.6.4) qui nous permettra,

également, de prendre en charge la mobilité des utilisateurs. Ceci est rendu possible grâce à la capacité du

MIH à collecter toutes les informations concernant l’environnement de connexion de l’utilisateur, et à

exécuter, d’une manière accélérée, les handovers dans des environnements hétérogènes.

Dans la section suivante, nous définissons ce qu’est qu’un profil utilisateur avant de donner quelques

exemples de profils utilisateurs et de décrire leurs contextes d’utilisation.

5.3.2 Profil utilisateur

Un profil utilisateur (ou encore modèle utilisateur) est un ensemble de données très diverses qui

concernent un utilisateur. C’est, en effet, une source de connaissance qui peut regrouper des informations

d’identification ainsi que des informations complémentaires sur le contexte de la communication,

permettant une meilleure adaptation à l’environnement de connexion, telles que les préférences de

l’utilisateur, la taille de l’écran, la disponibilité des ressources, etc. Dans ce qui suit, nous donnons quelques

exemples de profil utilisateur proposés dans le cadre de normes ou de travaux de recherche.

5.3.2.1 Profil « CC/PP » pour l’adaptation des flux

Le profil CCPP (Composite Capability/Preference Profiles) [KIS 07] a été défini par les groupes de

travail « CC/PP » et « Ubiquitous Web Application » du W3C dans le but de spécifier un standard

permettant de décrire les capacités du terminal, ainsi que les préférences de l’utilisateur. Ce profil, prévu

pour être utilisé avec HTTP, fait souvent référence à un contexte de transmission, et permet de réaliser

l’adaptation de contenu.

La structure d’un profil CC/PP est caractérisée par une hiérarchie à deux niveaux. Le premier niveau

doit contenir une ou plusieurs composantes, tandis qu’au deuxième niveau, chaque composante possède

un ou plusieurs attributs. Les composantes que peut englober un profil CC/PP sont au nombre de trois :

la plateforme matérielle sur laquelle le logiciel s’exécute (Terminal Hardware), la plateforme logicielle sur

laquelle reposent toutes les applications exécutées (Terminal Software) et l’application (Terminal Browser).

Le profil CC/PP permet de décrire les capacités du terminal et les préférences de l’utilisateur à travers les

différents attributs que peut contenir chaque composante. En effet, chaque composante du profil CC/PP

constitue un sous-arbre dont les branches contiennent les capacités et/ou les préférences associées à ce

composant. Par exemple, la composante « Terminal Hardware » peut contenir des attributs tels que

l’attribut « CPU » et l’attribut « Screen Size », qui permettent de décrire les capacités matérielles du

terminal. Quant à la composante « Terminal Software », elle permet de décrire les capacités logicielles du

terminal utilisé à travers un certain nombre d’attributs comme : « OS Name », « OS Vendor » et « OS

Version ». Enfin, la composante « Terminal Browser » permet de spécifier les caractéristiques de

145

l’application exécutée en utilisant, par exemple, les attributs suivants : « Browser Name », « Browser

Version » et « Html Version ».

5.3.2.2 Profil « UED » pour l’adaptation des flux

La norme MPEG-21 [ISO 04] a été définie par le groupe MPEG dans le but de spécifier une

architecture standardisée pour la livraison et la consommation de contenus multimédia. La partie 7 de

cette norme [ISO 07], appelée DIA (Digital Item Adaptation), définit un ensemble d’outils permettant de

réaliser l’adaptation des flux multimédia. Parmi ces outils, nous trouvons l’UED (Usage Environment

Description) qui fournit des descriptions normalisées de propriétés relatives à l’utilisateur et à son

environnement. Autrement dit, l’UED permet de décrire le profil d’un utilisateur qui couvre quatre

aspects importants pour l’adaptation des flux multimédia. Tout d’abord, les caractéristiques de l’utilisateur

(1) qui comprennent des informations comme le genre de contenu préféré, la langue préférée, le degré de

violence dans les scènes vidéo, le sous-titrage, etc. Viennent, ensuite, les capacités du terminal (2) qui

couvrent : le codage audio/vidéo supporté, la capacité d’affichage vidéo, la capacité de sortie audio, les

caractéristiques de stockage, etc. On retrouve, ensuite, les caractéristiques du réseau (3) qui comportent les

caractéristiques statiques tel que le débit maximal et le taux d’erreurs moyen, ainsi que les paramètres de

performances instantanés comme le délai de transmission, la gigue, le taux de perte et le débit disponible.

Viennent, enfin, les caractéristiques de l’environnement naturel (4) permettant de décrire l’environnement

extérieur de l’utilisateur, par exemple, sa localisation, le degré de bruit audio, le degré de luminosité, etc.

Le profil utilisateur défini par cette norme est assez général. En effet, il couvre quatre types différents

de paramètres qui peuvent être très intéressants dans un contexte de négociation de niveau de service dans

un environnement NGN. Par conséquent, la plupart de ces composantes, à savoir l’utilisateur, le terminal

et le réseau seront considérés dans le profil utilisateur pour la négociation. Mais, les paramètres de chaque

type seront définis sur la base des besoins de négociation et indépendamment du type de service,

contrairement aux paramètres déterminés par MPEG-21 et qui sont orientés « services multimédia ». Par

contre, nous devons définir un nouveau type de paramètres, à savoir les caractéristiques de l’application,

qui permettra de définir les besoins de chaque application, ceci afin de couvrir l’ensemble des besoins

applicatifs.

5.3.2.3 Profil pour la négociation de QoS

Nous trouvons, également, plusieurs travaux qui traitent de la gestion de la QoS en se fondant sur les

besoins de l’application et les caractéristiques de l’utilisateur tels que les travaux décrits dans [JRA 05],

[TEB 08] et [ROY 08]. A titre d’exemple, un profil utilisateur pour la négociation de QoS a été défini dans

le cadre de la spécification d’une interface « intelligente » qui permet d’assister les utilisateurs pour

négocier la QoS nécessaire pour leurs applications [JRA 05]. Dans ce contexte, les paramètres modélisant

un utilisateur ont été classés en trois catégories. Tout d’abord, les caractéristiques de l’utilisateur

contiennent des informations comme le login, la langue, la localisation et le degré d’expertise. Ensuite, les

préférences de l’utilisateur lui permettant d’exprimer ses besoins et ses exigences par rapport aux

différentes tâches effectuées. Enfin, le travail réalisé est caractérisé par le nom et le type de l’application, la

date, l’heure et la durée d’activation, ainsi que les exigences de cette application.

Les paramètres du profil déterminés dans ce contexte couvrent simplement l’utilisateur et le travail

effectué, et permettent de définir la QoS nécessaire à ce travail. Or, le protocole SLNP associe la sécurité à

146

la QoS dans sa négociation. Par conséquent, d’autres aspects doivent être considérés tels que les

préférences de l’utilisateur par rapport à la sécurité, les caractéristiques du réseau d’accès en matière de

QoS et de sécurité, ou encore les capacités du terminal et les protocoles et mécanismes de sécurité qu’il

supporte. Ceci nous amène à définir un profil utilisateur plus généraliste et comprenant plusieurs types de

paramètres (cf. section 5.3.3).

Synthèse : Les exemples que nous venons de décrire pourront nous aider à déterminer les paramètres

qui vont constituer notre profil pour la négociation SLNP. Mais, la définition de ce profil sera

essentiellement basée sur les besoins que nous avons définis ; à savoir permettre de déterminer le SLS à

négocier et faciliter la négociation dans un environnement NGN caractérisé par l’ubiquité et la dynamicité.

5.3.3 Définition d’un profil utilisateur pour la négociation SLNP

Le profil utilisateur sert à stocker des informations concernant l’environnement de la

communication : le terminal, l’application, le réseau d’accès et les préférences de l’utilisateur (Figure 5-10).

Ces informations permettent d’établir un niveau de service, mais aussi de le modifier si nécessaire. Dans

cette partie, seront détaillées les informations que nous avons sélectionnées pour former le profil

utilisateur pour la négociation dans un environnement NGN.

Figure 5-10 : Composition du profil utilisateur pour la négociation

5.3.3.1 Préférences de l’utilisateur

Les préférences de l’utilisateur se divisent en trois catégories : les préférences en matière de QoS, les

préférences pour la sécurité et les préférences par rapport aux réseaux d’accès (Tableau 5-2).

5.3.3.1.1 Préférences par rapport à la QoS

Pour la QoS, les préférences de l’utilisateur sont exprimées en spécifiant le niveau de QoS souhaité.

Ce niveau peut avoir une des trois valeurs suivantes : Bon, Moyen ou Minimal. Si le niveau de QoS

souhaité est Bon ou Moyen, alors les garanties de QoS qui seront négociées avec SLNP vont correspondre

à un niveau de QoS supérieur ou égal à celui que nécessite le bon fonctionnement de l’application ; a

savoir le niveau Minimal. L’utilisateur peut, également, spécifier le codec audio préféré pour les

applications audio, ainsi que le codec vidéo préféré pour les applications vidéo. Ces préférences

147

permettront de faire le choix du codec à utiliser parmi ceux disponibles, lorsqu’il s’agit d’une application

audio ou vidéo.

5.3.3.1.2 Préférences par rapport à la sécurité

En ce qui concerne la sécurité, un utilisateur doit préciser si la sécurisation de son service est

Indispensable, Souhaitée ou Pas-nécessaire. Dans les deux premiers cas, il doit sélectionner les services de

sécurité à fournir parmi les deux services disponibles, à savoir la Confidentialité et l’Intégrité qui regroupe

l’intégrité, l’authentification et la protection contre le rejeu. Lorsque la sécurité est requise, l’utilisateur doit

spécifier le niveau de chaque service de sécurité qu’il a sélectionné. En effet, chacun des deux services de

sécurité (Intégrité et Confidentialité) peut avoir un des trois niveaux possibles : Bon, Moyen ou Minimal.

Si la sécurité est indispensable, alors le niveau de service établi doit respecter les exigences de l’utilisateur.

Si la sécurité est souhaitée, alors le protocole de négociation va, au mieux, établir un niveau de sécurité

correspondant à celui que l’utilisateur a spécifié.

5.3.3.1.3 Préférences par rapport au réseau d’accès

Les préférences de l’utilisateur vis-à-vis des réseaux d’accès peuvent être exprimées en sélectionnant

le critère qui doit être privilégié lors du choix du réseau. Ce critère de choix peut être le coût, la QoS, la

sécurité ou la technologie d’accès. Ensuite, l’utilisateur doit spécifier comment le critère sélectionné peut

être utilisé dans le choix du réseau. Par exemple, si la technologie d’accès constitue le critère sur lequel se

base le choix, l’utilisateur doit classer par ordre de préférence les technologies d’accès qui peuvent

cohabiter dans un environnement NGN. Ainsi, si un réseau d’accès plus prioritaire que celui utilisé est

détecté, alors le handover peut être exécuté et peut avoir pour conséquence la modification du niveau de

service déjà établi.

Catégorie Paramètres

Utilisateur Préférences par rapport à la QoS : niveau souhaité.

Préférences par rapport à la sécurité : degré d’importance, services sélectionnés, niveau souhaité pour chaque service sélectionné.

Préférences par rapport au réseau d’accès : critère de choix.

Application Nom de l’application, type de l’application, sécurité au niveau applicatif (protocole, algorithmes)

Terminal Type du terminal, CPU, mémoire, type d’alimentation, autonomie de la batterie, taille de l’écran, codecs supportés (audio et vidéo), sécurité supportée (protocoles et algorithmes).

Réseau d’accès Identificateur, technologie d’accès, coût, QoS (débit, délai, taux de perte), sécurité au niveau MAC (protocole, algorithmes).

Tableau 5-2 : Paramètres du profil utilisateur pour la négociation

Nous pouvons noter qu’il existe d’autres paramètres qui peuvent être ajoutés aux paramètres

caractérisant un utilisateur. Parmi ces paramètres, nous citons, à titre d’exemple, le Login et le Mot de

passe qui permettent d’identifier un utilisateur auprès de son fournisseur de service, ou encore la Langue

de cet utilisateur qui permet à ce fournisseur de communiquer avec lui (informer sur le résultat de la

négociation ou sur l’impossibilité de continuer d’offrir le même niveau de service, etc.).

Afin de permettre à un utilisateur de communiquer ses préférences à l’entité ou le module qui

s’occupera de la constitution du profil pour la négociation, nous allons concevoir et implémenter une

148

interface graphique (GUI : Graphical User Interface) (cf. section 5.3.6.1). Afin de répondre aux besoins de

la négociation dans les environnements NGN, cette interface permettra de communiquer tous les

préférences définies dans cette section.

5.3.3.2 Caractéristiques de l’application

Les caractéristiques de l’application (Tableau 5-2) sont essentiellement le nom de l’application et le

type de cette application. Ces paramètres vont permettre à la composante responsable de la définition du

SLS à négocier d’avoir une indication sur le niveau de QoS minimal permettant le déroulement normal de

la communication. En effet, celle-ci peut disposer d’un tableau de correspondance entre exigences de QoS

et types d’applications. Par ailleurs, une application peut avoir ses propres mécanismes de sécurité telle

que la sécurité des services web fournie par WSS (Web Service Security) [NAD 06]. Les informations

concernant la sécurité au niveau applicatif doivent par conséquent faire, également, partie des

caractéristiques de l’application.

D’autres paramètres relatifs à l’application exécutée par l’utilisateur peuvent faire partie du profil pour

la négociation. Parmi ces paramètres, nous citons la date et l’heure du lancement de l’application ainsi que

la durée de son exécution. Ces paramètres sont très utiles dans la spécification du paramètre temps de

service du SLS à négocier, lorsqu’il s’agit d’une réservation de ressources à l’avance (temps de service

différé ou périodique). Il est vrai, que le protocole SLNP à prévu de négocier des niveaux de service à

l’avance. Mais ceci n’est pas considéré dans notre travail parce que la négociation est effectuée dans des

environnements très dynamiques où les ressources qui peuvent être très limitées (cas des réseaux sans fil)

n’arrêtent pas de varier. Ainsi, on ne s’intéresse qu’aux services avec un paramètre temps de service de

type immédiat. Par conséquent, ces paramètres (heure, date, durée) ne feront pas partie des

caractéristiques de l’application considérée dans le profil défini pour la négociation.

Les caractéristiques de l’application considérée peuvent être transmises directement par cette

application vers l’entité ou le module qui se chargera de maintenir le profil utilisateur.

5.3.3.3 Caractéristiques du terminal

Parmi les caractéristiques d’un terminal (Tableau 5-2), nous trouvons des paramètres comme la taille

de l’écran et les codecs (audio et vidéo) supportés. Ces paramètres vont aider au choix des codecs à utiliser

mais surtout à déterminer, par la suite, le niveau de QoS nécessaire. De plus, ces caractéristiques couvrent

les performances du terminal comme la capacité du CPU et celle de la mémoire qui vont servir lors de

l’estimation de l’impact des mécanismes de sécurité sur la QoS. Ces caractéristiques contiennent,

également, les protocoles de sécurité et les algorithmes cryptographiques supportés par le terminal, ceci

permettra de déterminer les paramètres de sécurité à négocier (i.e. la composante sécurité du SLS). Un

terminal est également caractérisé par un type d’alimentation comme le secteur ou la batterie. Si la batterie

constitue la seule source d’alimentation alors l’autonomie de cette batterie doit faire parti des paramètres

constituant le profil utilisateur pour la négociation. En effet, ce paramètre (autonomie de la batterie) doit

être surveillé tout au long d’une communication afin de prendre les mesures nécessaires pour assurer une

durée maximale pour cette communication. Par exemple, lorsque le niveau de la charge de la batterie passe

en deçà d’un certain seuil, on peut, dans la mesure du possible, dégrader le niveau de la sécurité ou le

niveau de la qualité de service afin de réduire les opérations effectuées par le terminal.

149

Il existe d’autres paramètres qui peuvent figurer parmi ceux qui caractérisent un terminal. Parmi ces

paramètres nous citons, à titre d’exemple, le type, la marque, le modèle et le système d’exploitation. Ces

paramètres ne seront pas considérés dans le profil utilisateur parce qu’ils n’ont aucun impact sur la

définition du niveau de service à négocier.

Les paramètres relatifs au terminal utilisé par l’utilisateur peuvent être communiqués directement par

le terminal à l’entité ou le module qui maintient le profil utilisateur.

5.3.3.4 Caractéristiques des réseaux d’accès

Un réseau d’accès est généralement caractérisé par un identificateur, une technologie d’accès (PSTN,

ADSL, GPRS, UMTS, Wi-Fi, WiMax, Bluetooth, etc.), un coût, une QoS et une sécurité (Tableau 5-2).

Les paramètres de QoS englobent le débit ou la bande passante, le délai et le taux de perte. Quant à la

sécurité, il s’agit de spécifier si le réseau d’accès est sécurisé ou non, et de préciser le protocole de sécurité

utilisé comme par exemple WEP (Wired Equivalent Privacy), WPA (Wi-Fi Protected Access) ou WPA2

qui permettent de sécuriser les réseaux Wi-Fi. Avec les préférences de l’utilisateur par rapport au réseau

d’accès, ces informations vont permettre, dans un premier temps, la sélection d’un réseau d’accès et, dans

un second temps, les prises de décision concernant le changement de réseau d’accès.

Les informations concernant les réseaux d’accès disponibles peuvent être collectées en utilisant le

protocole MIH [IEE 08] que nous avons décrit dans le deuxième chapitre de ce mémoire. Ainsi, ce

protocole permettra, non seulement de prendre en compte l’impact de la mobilité des utilisateurs sur le

niveau de service, mais participera aussi à la constitution du profil utilisateur sur lequel sera fondée l’offre

de service dans les environnements NGN.

5.3.4 Négociation SLNP basée sur le profil utilisateur

Après avoir défini les paramètres composant un profil utilisateur, nous allons, dans cette section,

spécifier comment le protocole SLNP peut se baser sur ce profil afin de réaliser la négociation de niveau

de service. Pour ce faire, la première question à laquelle nous devons répondre, est : « Où le profil

utilisateur doit-il être maintenu ? ».

Pour répondre à cette question, il faut, tout d’abord, étudier les deux solutions qui peuvent être

envisagées. En effet, le profil utilisateur peut être maintenu au niveau du fournisseur de service ou bien au

niveau du terminal de l’utilisateur.

La première possibilité qui consiste à maintenir le profil utilisateur chez le fournisseur de service (SP)

permet une meilleure visibilité des clients pour les fournisseurs. Or, en optant pour cette solution, les

traitements de mise en correspondance entre le profil de l’utilisateur et le niveau de service nécessaire

vont, également, se faire au niveau de ce SP. Si ce SP n’avait qu’un seul, deux ou même quelques dizaines

de clients, cela pourrait être gérable. Cependant, un SP peut avoir des milliers de clients pour lesquels il

doit garantir des offres de services. Par conséquent, la surcharge totale, induite par les traitements de mise

en correspondance nécessaires à la négociation des niveaux de services pour tous les clients, peut être très

importante et risque même de mettre le SP hors-service.

La deuxième possibilité consiste à collecter et maintenir le profil utilisateur pour la négociation au

niveau du terminal. Par conséquent, les traitements de mise en correspondance entre profil et SLS peuvent

150

être effectués au niveau de ce terminal. Ceci nécessitera la mise en place d’une certaine « intelligence » au

niveau du terminal de l’utilisateur qui permettra, non seulement d’alléger la charge du fournisseur de

service, mais aussi d’automatiser la négociation du niveau de service. Cependant cette solution peut poser

un problème lorsque l’utilisateur change de terminal. Pour résoudre ce problème, on peut, par exemple,

stocker une copie du profil au niveau du fournisseur de service qui sera récupérée par le nouveau terminal

lorsque l’utilisateur change de terminal. Etant donné que le terminal nouvellement utilisé par l’utilisateur

peut avoir des interfaces de connexion différentes de celles de l’ancien terminal, les composantes relatives

au terminal et aux réseaux d’accès doivent, au minimum, être mises à jour. Ainsi, plus de la moitié des

paramètres du profil doivent à nouveau être collectée. Sachant que les quatre types des paramètres

composant le profil pour la négociation peuvent être collectés en même temps, il n’y a aucune perte de

temps lorsqu’un nouveau profil est constitué suite au changement de terminal.

Cette deuxième approche, pour laquelle nous optons, permet, également, de prendre la décision du

changement de réseau d’accès au niveau du terminal lui-même. Ceci se fera grâce à l’utilisation du

protocole MIH (cf. section 2.6.4) qui permet la gestion du handover pour des utilisateurs mobiles tout en

assurant la continuité de service, contrairement au protocole MIP (cf. section 2.6.1) avec lequel il n’y a pas

de continuité de service même si le client est reconnu en même temps par l’ancien et le nouveau

fournisseur de réseau.

Après avoir défini le niveau auquel le profil utilisateur pour la négociation sera maintenu, et justifié ce

choix, nous allons spécifier les différentes composantes qui seront introduites au niveau du terminal afin

de permettre l’automatisation de la négociation.

5.3.4.1 Couche de négociation

La négociation de niveau de service dans un environnement NGN nécessite la participation de

l’utilisateur final dans cette négociation qui sera fondée sur le profil de cet utilisateur. Par conséquent, nous

proposons d’introduire une couche de négociation au sein du terminal de l’utilisateur. En utilisant les

services web, le protocole SLNP opère au niveau applicatif. La couche de négociation se situera donc à ce

niveau. Cette couche est composée de trois parties (Figure 5-11) : le point de décision et de mise en

correspondance (MNDP : Mapping and Negotiation Decision Point), le générateur de SLS (SG : SLS

Generator) et l’entité SLNP (SE : SLNP Entity).

La première composante (MNDP) a essentiellement une triple tâche. C’est, tout d’abord, à ce niveau

que le choix du réseau d’accès est effectué ainsi que les prises de décision de négociation, modification ou

résiliation de SLS. Ces décisions sont prises en fonction des paramètres du profil utilisateur ou des

modifications apportées à ce profil. Ensuite, lorsque le processus de négociation doit être lancé, cette

composante permet de générer les paramètres du SLS à négocier, modifier ou résilier, en fonction des

paramètres du profil pris en entrée. Les paramètres obtenus sont passés, par la suite, au générateur de SLS

(SG) qui crée l’élément SLS sur lequel va porter la négociation. La dernière composante constitue l’entité

de négociation (SE) proprement dite, et comprend l’application cliente et le service web de négociation.

L’application cliente prend le SLS obtenu par la deuxième composante afin de créer le message adéquat

(Negotiate, Modify ou Release) pour lancer le processus correspondant (négociation, modification ou

résiliation) en invoquant le service web de la prochaine entité SLNP sur le chemin de la négociation qui

n’est autre que le responsable du domaine auquel l’utilisateur est connecté.

151

Figure 5-11 : Vue d’ensemble de la couche de négociation

Après avoir décrit le fonctionnement général de la couche de négociation introduite au niveau du

terminal utilisateur, nous allons, dans ce qui suit, détailler le rôle de chacune des trois composantes de

cette couche.

5.3.4.2 Le point de décision et de mise en correspondance (MNDP)

Cette première composante, joue un triple rôle.

• Le premier rôle est de collecter et maintenir à jour le profil de l’utilisateur. Pour parvenir à collecter

toutes les informations qui composent le profil utilisateur que nous avons défini, cette composante

doit communiquer avec le terminal, l’application, les interfaces réseau et l’utilisateur comme le montre

la Figure 5-12. Les communications de cette composante avec le terminal et l’application sont des

communications unidirectionnelles qui permettent au terminal et à l’application de transmettre leurs

caractéristiques vers la composante MNDP. Les communications avec l’utilisateur et les interfaces

réseaux sont, quant à elles, des communications bidirectionnelles (Figure 5-12). La communication

dans le sens utilisateur - MNDP est effectuée par le biais d’une interface graphique qui permet à

l’utilisateur de transmettre ses préférences vers la composante MNDP. La communication dans l’autre

sens peut servir à informer l’utilisateur sur le résultat de la négociation de niveau de service. La

communication avec les interfaces réseaux est assurée grâce au protocole MIH qui permet, dans un

premier temps, aux interfaces réseaux de transmettre les caractéristiques des réseaux détectés vers la

composante MNDP. Le protocole MIH permet également à la composante MNDP de choisir un

réseau d’accès auquel le terminal doit être connecté.

• Le deuxième rôle de cette composante est le choix d’un réseau d’accès auquel le terminal de

l’utilisateur doit être connecté. Cette connexion est nécessaire afin que l’utilisateur puisse

communiquer avec son fournisseur de service et lui transmettre le niveau de service dont il a besoin.

152

Figure 5-12 : Interactions de la composante MNDP

• Le troisième et dernier rôle, qui peut être considéré comme le rôle principal de cette composante, est

la détermination des paramètres du SLS à négocier. Cette étape nécessite, avant tout, une prise de

décision concernant la possibilité d’établir un SLS conformément au profil de l’utilisateur. Autrement

dit, il s’agit de déterminer si on peut définir un SLS qui, d’une part, répond à la fois aux exigences de

l’application et aux préférences de l’utilisateur, et qui, d’autre part, peut être supporté par le terminal et

par le réseau d’accès.

Les tâches effectuées au sein de cette composante permettent ainsi de constituer et de maintenir à

jour un profil utilisateur, et également de connecter le terminal au réseau d’accès correspondant le mieux

au profil de l’utilisateur. Ceci permet de prendre une décision concernant la possibilité d’établir un SLS et

de spécifier les paramètres de ce SLS dans le cas où cette décision est positive. L’algorithme détaillé des

traitements inclus dans cette composante (MNDP) sera fourni dans la partie relative aux détails du

fonctionnement de la nouvelle approche de la négociation SLNP (cf. section 5.3.5).

5.3.4.3 L’entité de négociation (SE)

Une fois que les paramètres de niveau de service à négocier sont déterminés par la composante

MNDP, la négociation du SLS doit être initiée par l’utilisateur. Pour cela, nous avons deux possibilités. La

première consiste à envoyer le SLS au responsable du domaine auquel l’utilisateur est connecté, afin que ce

responsable (SI) puisse initier la négociation. Cependant, cette solution nécessite la mise en place d’un

mécanisme permettant la communication entre l’utilisateur et la SI, parce que celle-ci ne peut pas redéfinir

un nouveau SLS et initier une négociation d’elle même, par exemple, en cas de non aboutissement à un

accord ou en cas de violation d’un accord déjà établi. Ainsi, la solution qui parait la plus adaptée à cette

situation et qui permet d’automatiser la communication entre l’utilisateur et la SI, est de donner la main à

l’utilisateur en équipant son terminal d’une entité de négociation (SE : SLNP Entity).

L’application cliente (CA : Client Application) de cette entité de négociation (SE : SLNP Entity) va

permettre à l’utilisateur d’initier par lui-même ses négociations de niveau de service (établissement,

modification et résiliation). Ceci implique le déploiement d’un registre de SLS (SLS Registry) au niveau du

terminal de l’utilisateur ainsi qu’une implication complète de l’utilisateur dans la négociation (Figure 5-13).

A titre d’exemple, dans le cas où une demande n’est pas acceptée par l’ensemble du réseau, la composante

MNDP se doit d’étudier la recevabilité de l’alternative proposée par ce réseau et de spécifier un autre

niveau de service, si nécessaire, tout en se conformant au profil de l’utilisateur. D’autre part, l’utilisateur à

besoin d’un service web de négociation composé d’une seule opération à savoir l’opération de notification

153

(notificationOperation). Ce qui permettra à l’utilisateur de recevoir les notifications envoyées par les

différents responsables de domaines impliqués dans l’offre de service (SI, SF et SR). Rappelons que ces

notifications étaient envoyées par les entités intermédiaires et l’entité finale vers l’entité initiale. Notons,

que le service web composant l’entité de négociation qui se trouve au niveau de l’utilisateur n’a pas besoin

de comprendre d’autres opérations que celle qui permet de recevoir les notifications, car le terminal d’un

utilisateur ne peut participer à une négociation qu’en tant qu’initiateur.

Figure 5-13 : Interactions de la composante SE

5.3.4.4 Le générateur de SLS (SG)

D’un coté, nous avons la composante MNDP qui a pour objectif de déterminer les paramètres du

SLS à négocier lorsque cette négociation peut avoir lieu. D’un autre coté, nous avons l’entité de

négociation qui prend un SLS afin de constituer le message nécessaire pour initier un processus de

négociation. Par conséquent, nous avons introduit, entre ces deux composantes, un troisième module que

nous appelons générateur de SLS (SG : SLS Generator). Ce module (Figure 5-14) permet de constituer un

élément SLS à partir des paramètres reçus de la part de la MNDP afin de le transmettre à la SE. Ainsi, les

paramètres du SLS doivent parvenir de la MNDP afin de permettre la génération de l’élément SLS sur

lequel portera la négociation.

Figure 5-14 : Interactions de la composante SG

Dans cette partie, nous avons décrit la composition de la couche de négociation que nous avons

introduite au niveau du terminal de l’utilisateur, afin de permettre à ce dernier de négocier par lui-même

l’offre des services qu’il peut consommer. Cette nouvelle approche de la négociation permet au protocole

SLNP de s’adapter aux environnements NGN, mais nécessite l’apport de plusieurs modifications au

154

fonctionnement de ce protocole. Dans ce qui suit (section 5.3.5), nous fournissons les détails du

fonctionnement de la nouvelle approche de la négociation (c’est-à-dire la négociation fondée sur le profil).

5.3.5 Fonctionnement de la négociation fondée sur le profil

5.3.5.1 Les responsables de domaines

En comparant l’ancien fonctionnement du protocole SLNP, décrit dans la section 3.4.5, à celui qui

lui permet de s’adapter à l’ubiquité requise par les environnements NGN, nous pouvons remarquer que les

changements ne touchent que les premiers acteurs de la négociation, à savoir le client et le responsable du

premier domaine. Ainsi, le comportement des SFs et de la SR reste le même (cf. section 4.4.4).

Si on s’intéresse à la SI, alors les changements concernent essentiellement le comportement de cette

entité de négociation. En effet, comme le montre la Figure 5-15, cette SI doit maintenant se comporter

comme une entité intermédiaire (SF). Ceci implique que le service web d’une SI qui servait à recevoir et à

répondre uniquement aux notifications, va maintenant permettre de recevoir, traiter et transférer les

requêtes envoyées par le client (Negotiate, Modify, Release, Response). En outre, l’application cliente qui

servait à initier les différents processus de négociation (établissement, modification et résiliation), va

maintenant servir uniquement à notifier le client afin de l’informer de la violation de l’un de ses contrats

ou des ressources nouvellement disponibles. Par conséquent, le comportement d’une SI est maintenant

identique à celle d’une SF ou d’une SR (cf. section 4.4.4).

Figure 5-15 : Fonctionnement de la négociation dans le NGN

155

Dans ce qui suit, nous nous intéressons au fonctionnement de la négociation au niveau du client

initial. Autrement dit, nous allons décrire la composition et les traitements de la couche de négociation

(Figure 5-11) que nous avons introduit au niveau du terminal de l’utilisateur afin d’automatiser la

négociation et de s’adapter aux besoins de cet utilisateur en termes de mobilité.

5.3.5.2 Le client initial

5.3.5.2.1 La composante ‘SLNP Entity’

Cette composante constitue l’entité de négociation implémentée au niveau du terminal de l’utilisateur

afin de permettre à ce dernier de contrôler ses offres de services par lui-même. Ainsi, elle doit permettre

l’établissement, la modification et la résiliation d’un SLS. Ceci est rendu possible grâce à l’application

cliente et au service web contenus dans cette entité.

L’application cliente de la composante SLNP Entity ressemble beaucoup à celle implémentée

auparavant au niveau d’une SI. Pour mettre en évidence les modifications nécessaires à l’adaptation de

SLNP à l’ubiquité que nécessitent les environnements NGN, nous allons considérer le processus

d’établissement du SLS. L’algorithme général des traitements correspondant à ce processus est identique à

celui de l’application cliente qui se trouvait auparavant au niveau de la SI (voir Figure 4-23). Cependant,

quelques modifications ont été apportées aux traitements composant cet algorithme (actions et tests). A

titre d’exemple, nous considérons l’action ‘Créer un message Negotiate’. Au niveau d’une SI (ancienne

implémentation), cette action inclut la construction du SLS à négocier à partir des paramètres du SLS pris

en argument (Figure 4-22-b). Dans le cas d’une négociation dans un environnement NGN, cette action ne

comprend que la création du message Negotiate en utilisant l’élément SLS qui lui a été fourni par le

générateur de SLS. Dans la nouvelle implémentation (Figure 5-16), réalisée également en langage Java, les

traitements correspondant au test ‘SLS proposé est accepté’ ne se font plus au niveau de l’application

cliente de l’entité de négociation. En fait, ce test à été délégué à la composante MNDP qui peut décider de

la recevabilité du SLS proposé en fonction du profil de l’utilisateur qu’elle maintient.

Figure 5-16 : Traitements au niveau du client initial

Le service web, constituant la deuxième partie de la composante SLNP Entity qui se trouve au niveau

de la couche de négociation d’un terminal utilisateur, est composé d’une seule opération à savoir la

notificationOperation. Dans le nouveau fonctionnement du protocole SLNP, les décisions par rapport

aux notifications sont prises en fonction des paramètres du profil utilisateur. Ainsi, lorsque l’opération de

notification reçoit un message Notify de la part de n’importe quel responsable de domaine, elle va

156

demander au MNDP sa décision par rapport à cette notification. La décision prise par le MNDP est

communiquée à la SE, afin que celle-ci puisse répondre correctement à la notification qu’elle a reçue.

5.3.5.2.2 La composante ‘SLS Generator’

La composante ‘SLS Generator’ a un rôle très simple qui consiste à constituer un élément ‘sls’ à partir

des valeurs des paramètres négociés, qui ont été déjà définies au niveau de la composante MNDP (Figure

5-16). Par conséquent l’implémentation de ce module se résume dans la constitution d’un objet Java à

savoir le ‘sls’. La composition de l’objet ‘sls’ suit la structure du schéma XML du SLS décrite dans la

section 4.4.2.

Notons que le SLS constitué au niveau de la couche de négociation du terminal du client inclut les

valeurs demandées de chaque paramètre sur lequel porte la négociation (delaiRequested, jitterRequested,

securityProtocolRequested, etc.). Au cas où la négociation porte sur la sécurité en plus de la QoS, ce SLS

doit contenir également les valeurs relatives à l’estimation de l’impact de la sécurité sur la QoS. Par

exemple, l’estimation du délai ajouté par les opérations de sécurité au niveau du terminal sert à initialiser le

champ réservé au calcul du délai total de bout en bout à savoir le champ ‘delayOffered’ (cf. section 3.4.5).

Etant donné que le délai de transit des données sur le premier domaine n’est pas connu par le terminal,

c’est la SI qui s’occupera d’ajouter cette information dans le SLS lorsqu’elle sera invoquée par le terminal.

5.3.5.2.3 La composante ‘Mapping and Negotiation Decision Point’

La composante ‘MNDP’ joue un rôle très important dans la nouvelle conception de la négociation de

niveau de service avec SLNP. C’est, en effet, cette composante qui permet, non seulement aux utilisateurs

mobiles de négocier le niveau de service par eux-mêmes, mais aussi d’automatiser cette négociation en la

fondant sur les profils des utilisateurs (Figure 5-16). L’algorithme des traitements réalisés au niveau de la

‘MNDP’ est donné dans la Figure 5-17. Dans ce qui suit, nous détaillons les différents traitements (actions

et tests) qui se font au niveau de cette composante, avant de décrire le fonctionnement général du module

entier.

• Sélection du réseau d’accès : le choix du réseau d’accès se fait en fonction des caractéristiques des réseaux

disponibles (obtenues grâce au protocole MIH) et des préférences de l’utilisateur par rapport aux

réseaux d’accès. En effet, les réseaux disponibles sont classés suivant le critère de choix sélectionné

par l’utilisateur. Ensuite, l’identificateur du réseau correspondant le mieux aux préférences de

l’utilisateur est utilisé afin de se connecter à ce réseau.

• Définition des paramètres de QoS : le nom et le type de l’application ainsi que la taille de l’écran et les

codecs supportés par le terminal permettent de définir la QoS minimale nécessaire pour établir la

communication. Ensuite, en fonction des préférences de l’utilisateur par rapport à la QoS, les

paramètres de QoS à négocier sont définis. En fait, si le niveau de la QoS spécifié par l’utilisateur est

égal à ‘Minimal’, alors la QoS négociée n’est autre que la QoS minimale déjà définie. Dans le cas où le

niveau de QoS spécifié par l’utilisateur est égal à ‘Moyen’ ou ‘Bon’, le niveau de QoS demandé va

correspondre à un niveau supérieur au niveau minimal. La détermination des paramètres de QoS

nécessaires pour une application donnée, est effectuée grâce à une classification des différents types

d’applications (données, audio, vidéo) et leurs besoins correspondants. A titre d’exemple, le Tableau

5-3 [ACC 03] et le Tableau 5-4 [DIM 02] fournissent les différents niveaux de QoS pouvant être

157

négociés pour respectivement une application de type audio (VoIP : Voice over IP) et une autre de

type vidéo (VoD : Video on Demand). Notons que les valeurs des paramètres caractérisant les

niveaux de QoS dépendent des codecs utilisés, de la présence d’une compression, ainsi que d’autres

paramètres. En fait, pour la VoIP, les valeurs fournies (Tableau 5-3) concernent une application qui

utilise un codec PCM (Pulse Coding and Modulation) sans aucune compression, et un canal mono

avec une fréquence d’échantillonnage à 8 KHz et 8 bits par échantillon. Tandis que, pour la VoD, les

valeurs données (Tableau 5-4) sont relatives à une application qui utilise le codec H264 avec une

compression CBR (Constant Bit Rate) à 1 Mb/s. Par ailleurs, le module de ‘Définition des paramètres

de QoS’ permet de définir une valeur booléenne (qos degradable) indiquant si le niveau de QoS

demandé peut être dégradé. Cette valeur booléenne est égale à « vrai » lorsque le niveau de QoS

correspondant aux paramètres de QoS définis est supérieur au niveau minimal requis par l’application.

Paramètre de QoS Minimal Moyen Bon

Délai de bout en bout ≥ 400 ms 150 ms – 400 ms ≤ 150 ms

Gigue ≥ 50 ms 20 ms – 50 ms ≤ 20 ms

Taux de perte ≥ 10-2 10-2 - 10-3 ≤ 10-3

Bande passante 64 Kb/s ≥ 64 Kb/s ≥ 64 Kb/s

Tableau 5-3 : Paramètres de QoS pour une application de type VoIP

Paramètre de QoS Minimal Moyen Bon

Délai de bout en bout ≥ 20 s 10 s – 20 s ≤ 10 s

Gigue ≥ 10 s 3 s – 6 s ≤ 3 s

Taux de perte ≥ 10-1 10-2 – 10-1 ≤ 10-2

Bande passante 1 Mb/s ≥ 1 Mb/s ≥ 1 Mb/s

Tableau 5-4 : Paramètres de QoS pour une application de type VoD

• Décision de sécurité : la décision de sécuriser ou non la communication est prise en fonction des

informations de sécurité sur : les caractéristiques du réseau d’accès, les caractéristiques de l’application

et les préférences de l’utilisateur. En effet, si l’utilisateur demande un certain niveau de sécurité qui ne

peut être satisfait ni par le réseau d’accès ni par l’application elle-même, alors la décision à prendre est

de sécuriser la communication au niveau « Réseau » (IPSec) ou au niveau « Transport » (TLS ou

DTLS). En privilégiant l’utilisation d’IPSec qui influence moins la QoS, la communication est

sécurisée avec IPSec si ce protocole est supporté par le terminal. Dans le cas contraire, la

communication sera sécurisée avec TLS ou DTLS en fonction du type de cette communication, c’est-

à-dire le protocole sur lequel elle est fondée : TCP ou UDP.

• Définition des paramètres de sécurité : lorsque la sécurité doit être négociée, ses paramètres sont définis en

fonction des préférences de l’utilisateur par rapport à la sécurité (les services de sécurité à fournir et le

niveau souhaité pour chaque service) et des caractéristiques du terminal (les algorithmes supportés).

En effet, en fonction des services de sécurité sélectionnés par l’utilisateur et du niveau de chacun de

ces services (Bon, Moyen ou Minimal) souhaité également par l’utilisateur, on peut définir un

ensemble d’algorithmes pouvant être utilisé pour chaque service. Notons que cet ensemble

d’algorithmes dépend également du protocole sélectionné lors de l’étape suivante (i.e. ‘Décision de

158

sécurité’). La mise en correspondance entre le niveau de sécurité souhaité par l’utilisateur et

l’algorithme à utiliser est réalisée grâce à un tableau de mise en correspondance (Tableau 5-5). Une

fois qu’un ensemble d’algorithmes est spécifié pour chaque service de sécurité, on peut choisir un

algorithme dans chaque ensemble. Ce choix est effectué en fonction des algorithmes supportés par le

terminal faisant partie également du profil de l’utilisateur. Les paramètres de sécurité définis sont

transmis avec le booléen « security degradable » qui indique si la sécurité peut être dégradée. Ce

booléen prend la valeur « vrai » si le niveau de sécurité correspondant aux paramètres de sécurité déjà

définis est supérieur au niveau minimal toléré par l’utilisateur.

Protocole Service Niveau

Bon Moyen Minimal

IPSec Intégrité hmac-sha1-96 hmac-md5-96 aes-xcbc-mac-96

Confidentialité aes-cbc, 3des-cbc aes-ctr des-cbc

TLS-DTLS

Intégrité sha1 md5 md5

Confidentialité idea, 3des des-40, rc4-128,

fortezza

des-40, rc4-40, rc2-

40

Tableau 5-5 : Tableau de mapping pour les services d’intégrité et de confidentialité

• Estimation de l’impact : dans le cas où la sécurisation est requise, l’impact des services de sécurité sur la

QoS est calculé en fonction des paramètres de sécurité et des performances du terminal. En effet, les

overheads protocolaires dépendent des protocoles utilisés et des services fournis, alors que les délais

introduits dépendent de ces mêmes facteurs mais aussi des performances du terminal tels que les

capacités de traitement ou s’il contient des composantes matérielles pour effectuer des opérations

cryptographiques, etc. Cette estimation est obtenue grâce à une base de données contenant les

résultats de l’étude de l’impact de la sécurité sur la QoS que nous avons réalisée (cf. section 4.5.2.3).

• Décision de négociation : cette décision dépend de la QoS demandée, de l’impact estimé et de la QoS du

réseau d’accès. La QoS définie auparavant est tout d’abord réajustée en tenant compte de l’impact qui

a été estimé. Ensuite, si la QoS du réseau d’accès est inférieure à la QoS requise par la communication,

alors la négociation ne peut pas être initiée. Par exemple, il est inutile de demander un niveau de

service avec une QoS comportant un délai inférieur au délai moyen sur le réseau d’accès ou si la

communication nécessite une bande passante supérieure à celle garantie par le réseau d’accès. Dans ce

cas, si le niveau de la QoS et/ou le niveau de la sécurité peut être dégradé alors la décision est un

« non temporaire » et une demande de dégradation est envoyée au module « définition des paramètres

de QoS » et/ou « définition des paramètres de sécurité ». La détermination du type de paramètres à

dégrader (QoS, sécurité ou les deux en même temps) ne dépend que des stratégies (cf. section 4.4.4.2)

implémentées par le module MNDP. Ce mécanisme assure une sorte de négociation interne qui

permet d’ajouter une certaine « intelligence » au niveau de la composante MNDP et d’éviter une perte

de temps causée par des passes de négociation inutiles entre l’utilisateur et le reste du réseau. La

demande de dégradation peut être faite une ou plusieurs fois jusqu’à ce qu’il devient possible d’initier

la négociation ou jusqu’à ce que le niveau de service demandé ne peut plus être dégradé. Dans le

dernier cas, si d’autres réseaux sont disponibles, un changement de réseau est dans ce cas, effectué et

la négociation est retentée. Si la négociation est toujours impossible, la décision est alors un « non

159

définitif » et l’utilisateur en est informé. Dans le cas où le processus de négociation peut être lancé, la

décision de négociation est un « oui ».

• Définition des paramètres du SLS : dans le cas où la décision de négociation prise lors de l’étape

précédente est un « oui », la composante MNDP se doit de transmettre les paramètres nécessaires à la

négociation de niveau de service au générateur de SLS.

Figure 5-17 : Algorithme des traitements de la composante MNDP

5.3.6 Tests et évaluations de performances

Une fois l’implémentation de l’adaptation de la négociation SLNP à l’ubiquité des environnements

NGN réalisée, nous avons procédé à un ensemble de tests afin d’évaluer les nouvelles performances de la

négociation.

5.3.6.1 Plateforme de tests

La plateforme de tests utilisée est présentée dans la Figure 5-18. Elle correspond à un scénario de

négociation impliquant trois domaines différents. Elle inclut donc les trois entités de négociation

160

représentant les responsables des trois domaines (SI, SR et SF), ainsi que la couche de négociation

représentant le terminal de l’utilisateur. Ainsi, nous avons quatre entités de négociation qui implémentent

toutes le protocole SLNP. Sur cette plateforme, les outils utilisés sont les mêmes que ceux ayant servi aux

tests décrits dans la section 4.4.5.1. En effet, les services web sont, également, déployés sur un serveur

TOMCAT et l’implémentation du protocole SOAP utilisée est AXIS. De plus, nous utilisons aussi un

serveur de bases de données MySQL pour simuler les interactions avec les RMF et les registres de SLS,

ainsi que le langage JAVA pour la programmation de tous les traitements (entités de négociation et couche

de négociation).

Figure 5-18 : Plateforme de tests du fonctionnement dans le NGN

En plus de l’application cliente et du service web, l’implémentation du client couvre le générateur de

SLS (SG), le point de décision et de mise en correspondance MNDP ainsi que ses interactions avec

l’utilisateur, l’application, le terminal et le protocole MIH.

5.3.6.1.1 Interactions avec le terminal, l’application et le protocole MIH

Les interactions de la composante MNDP avec l’application, le terminal et le protocole MIH ont été

simulées grâce à une base de données que nous avons appelée UPPD (User Profile Parameters Database).

Cette base contient trois tables correspondant aux paramètres du profil relatifs au terminal utilisé, à

l’application pour laquelle un SLS doit être établi et aux réseaux d’accès disponibles dans la zone où se

trouve l’utilisateur. Dans la table relative aux réseaux d’accès disponibles, nous avons prévu un champ qui

permet d’indiquer si le terminal est connecté à ce réseau ou non. La conception de la négociation de

niveau de service dans des environnements NGN que nous avons spécifiée, est tout à fait réaliste et n’est

pas difficile à implémenter sur des terminaux fixes ou mobiles. Mais cela nécessite, tout d’abord, de

disposer ou de réaliser une implémentation du protocole MIH. Ensuite, on doit disposer d’une sonde qui

permet d’obtenir les capacités d’un terminal et de mesurer ses performances à tout instant. En ce qui

concerne l’application concernée par la négociation, nous pouvons introduire une liste de choix dans

l’interface utilisateur afin que ce dernier puisse renseigner sur cette application.

5.3.6.1.2 Interactions avec l’utilisateur

Les interactions de la composante MNDP avec l’utilisateur doivent permettre à ce dernier d’exprimer

ses préférences (cf. section 5.3.3.1). Pour cela, nous avons implémenté une interface graphique qui permet

161

à un utilisateur de transmettre à la composante MNDP les préférences de l’utilisateur pour les niveaux de

QoS et de sécurité, ainsi que ses préférences pour le réseau d’accès (Figure 5-19).

Figure 5-19 : Interface graphique pour récupérer les préférences de l’utilisateur

Les préférences de l’utilisateur, exprimées grâce à l’interface de la Figure 5-19, correspondent à une

offre de service impliquant uniquement la QoS qui doit avoir un ‘Bon’ niveau. Le réseau d’accès doit être,

également, choisi sur la base de ses caractéristiques en termes de QoS. En effet, parmi les réseaux

disponibles, on doit choisir celui qui a le plus haut niveau de QoS.

Figure 5-20 : Préférences d’un utilisateur privilégiant la sécurité

162

Cette interface permet à un utilisateur d’exprimer ses préférences lorsque le niveau de service doit

inclure la sécurité en plus de la QoS. Par exemple, les préférences, exprimées grâce à l’interface de la

Figure 5-20, correspondent à une sécurité ‘Obligatoire’ avec un ‘Bon’ niveau pour les services Intégrité et

confidentialité. Quant aux préférences de l’utilisateur par rapport au réseau d’accès, nous pouvons voir

(Figure 5-20) que le critère de choix sélectionné par cet utilisateur est la sécurité. Notons que la section

‘Access Network’ de l’interface utilisateur est dynamique en adaptant la deuxième ligne au critère de choix

sélectionné.

5.3.6.2 Tests du fonctionnement

Les tests de fonctionnement de la nouvelle approche de négociation concernent non seulement les

échanges de messages de négociation, mais aussi la procédure de mise en correspondance entre les

paramètres de profil et les paramètres de SLS. Pour les messages échangés, nous utilisons toujours l’outil

SOAP Monitor afin de capturer et visualiser le contenu de ces messages (cf. section 4.4.5.2). Par ailleurs, le

fonctionnement de la procédure de mise en correspondance entre paramètres du profil et paramètres de

SLS a été testé pour plusieurs combinaisons de paramètres de profil correspondant à divers scénarios.

Chaque scénario correspond à une entrée dans la base UPPD associée aux préférences de l’utilisateur

rentrées via l’interface que nous avons conçue.

Etant donné que chaque combinaison entre ces deux types de paramètres (UPPD et préférences)

permet d’obtenir un SLS bien précis, nous avons essayé de prévoir les paramètres du SLS pour chaque

combinaison. Ainsi, les tests concernant la mise en correspondance se résument dans la comparaison entre

les SLS prévus et les SLS réellement obtenus.

Une fois, tous les tests correspondant aux différents scénarios réalisés avec succès, nous avons conclu

à la validité de notre implémentation. Ensuite, nous avons évalué les performances du nouveau

fonctionnement du protocole SLNP.

5.3.6.3 Evaluation du temps de négociation

Afin d’évaluer le temps de négociation et de pouvoir comparer les nouvelles performances aux

anciennes, nous effectuons des tests locaux impliquant trois domaines sur la machine que nous avons

utilisée auparavant. Ceci implique que les quatre entités, à savoir SI, SF, SR et Client, aient été déployées

sur une seule et même machine (serveur Dell Precision PWS670 avec un processeur Intel Xeon à 3,2 GHz

et une RAM de 2 Go).

Les tests réalisés visent à mesurer le temps d’une négociation de niveau de service dans un

environnement NGN impliquant trois domaines et se déroulant en une seule passe. Les résultats de ces

mesures sont comparés à ceux obtenus lors des tests réalisés dans la section 4.5.2.3. Etant donné que le

temps de négociation mesuré lors des anciens tests correspond à la durée entre l’instant où l’application

cliente de négociation de la SI commence la construction d’un message de type Negotiate et l’instant où

un message de type Response est reçu par cette entité, nous allons, cette fois ci, mesurer ce temps entre

l’instant où le client commence le processus de mise en correspondance, c’est-à-dire après avoir fini de

récupérer tous les paramètres du profil, et l’instant où il reçoit le résultat de la négociation. Comme lors

des précédents tests, le temps moyen de négociation est calculé sur la base d’un échantillon de 1000

mesures. Cependant, nous ne représentons qu’un échantillon de 100 mesures afin de mieux visualiser le

résultat des mesures réalisées (Figure 5-21).

163

Figure 5-21 : Evaluation du temps de négociation (100 essais)

Les mesures correspondant à une passe de négociation dans un environnement NGN où trois

domaines sont impliqués dans l’offre de service, permettent d’obtenir un temps moyen égal à 97,42 ms

(courbe en rouge sur Figure 5-21). Cependant, dans le cas d’une négociation classique, c’est-à-dire une

négociation qui implique uniquement les trois responsables de domaines, nous avons obtenu un temps

moyen de 62,61 (courbe en bleue sur la Figure 5-21). Notons que dans ces deux cas de négociation, les

paramètres du SLS sur lesquels porte la négociation sont identiques. En fait, nous avons choisi des

paramètres du profil de manière à ce que les paramètres du SLS obtenu suite à la procédure de mise en

correspondance dans le cas d’une négociation dans un environnement NGN soient identiques à ceux du

SLS utilisé dans les mesures du temps d’une négociation classique.

Ces mesures (Tableau 5-6) nous permettent de déduire qu’en donnant la main à l’utilisateur pour la

négociation d’une offre de service impliquant le même nombre de domaines (ici trois domaines), le temps

moyen d’une passe de négociation augmente d’une manière très importante. En effet, ce temps passe de

62,61 à 97,42 ; ce qui nous fait une augmentation d’environ 55,6 %. Cette augmentation est due,

essentiellement, à l’interaction ajoutée entre le terminal de l’utilisateur et le responsable du domaine

auquel il appartient (50 %). Le deuxième facteur d’augmentation du temps de négociation est la mise en

correspondance entre les paramètres du profil et les paramètres du SLS. Cette augmentation est estimée à

5,6 %. Par conséquent, nous pouvons constater que le temps introduit par les traitements pouvant être

ajoutées est très faible par rapport au temps nécessaire aux interactions entre les services web.

Type de négociation Temps moyen de négociation

Classique 62,61 ms

NGN 97,42 ms

Tableau 5-6 : Temps moyen de négociation

164

Notons que le pourcentage d’augmentation du temps de négociation, causée par l’adaptation aux

environnements NGN, diminue lorsque le nombre total de domaines impliqués dans une offre de service

augmente.

5.3.6.4 Evaluation de la taille des messages

Les tests permettant d’évaluer la taille des messages ont été réalisés sur la même plateforme que celle

utilisée pour mesurer le temps moyen de négociation (cf. section 5.3.6.1). Afin de mesurer la taille des

messages échangés entre les différentes entités de négociation de la plateforme, nous faisons toujours

appel à l’outil SOAP Monitor d’Apache qui permet de capturer et stocker ces messages afin de pouvoir,

ensuite, mesurer leurs tailles.

Contrairement au temps de négociation qui augmente d’une manière très importante lors de

l’adaptation aux environnements NGN, la taille des messages échangés ne connaît quasiment pas de

changement. En effet, pour une négociation d’un SLS donné, la taille des messages circulant entre la SI, la

SF et la SR est strictement la même dans les deux types de négociation (négociation « classique », et

négociation adaptée aux environnements NGN). Ceci est logique puisque, comme nous l’avons déjà dit,

nous avons fait en sorte que le SLS négocié dans les deux cas porte sur les mêmes paramètres. Cependant

si un processus de négociation est initié (Negotiate, Modify ou Release), alors le message envoyé par le

terminal du client vers la SI à une taille légèrement inférieure à celle du même message après la traversée

de la SI. Ceci est dû aux modifications auxquels la SI a procédé afin d’ajouter son offre locale. A titre

d’exemple, la Figure 5-22 illustre cette légère modification dans le cas de la mesure de la taille moyenne

d’un message Negotiate. En effet, les résultats présentés sur cette figure montrent que cette taille passe de

4894 octets à 4805 octets, ce qui représente une diminution d’environ deux pour cent de la taille initiale du

message Negotiate (1,82 %). Cette très faible diminution est, comme nous l’avons déjà précisé, due aux

champs correspondant à l’offre locale du domaine auquel appartient le terminal qui sont initialement

vides.

Figure 5-22 : Taille moyenne du message Negotiate

5.3.7 Utilisation du protocole SLNP dans un environnement NGN

Dans cette section, un exemple d’utilisation du protocole SLNP dans un environnement NGN est

fourni afin d’illustrer la négociation dynamique pour un utilisateur mobile dans un tel environnement.

165

Dans l’exemple de la Figure 5-23, le protocole SLNP sert à négocier un niveau de service pour une

communication entre un utilisateur mobile User1 et un utilisateur fixe User2. La négociation est initiée par

le terminal de User1 et implique ce dernier ainsi que les différents responsables de domaines : SI, SF et SR.

Le SLS à négocier est déterminé au niveau de la couche de négociation du terminal de User1. Plus

précisément, les paramètres du SLS sont définis par la composante MNDP en fonction des composantes

du profil de l’utilisateur User1 (Tableau 5-7).

Paramètres de l’application

Caractéristiques du réseau d’accès

Capacités du terminal Préférences de l’utilisateur

Nom : Skype

Type : ToIP

Sécurité : Non

Pair : User2

Type : 802.11

Débit : 54 Mb/s

Délai : 20 ms

Sécurité : Non

Type : Labtop

Mémoire : 512 Mo

CPU : 1,2 Go

Security : IPSec, TLS, etc.

QoS : Moyen

Sécurité : Désirée

Services de sécurité : Intégrité-Bon

Réseau d’accès : Sécurité - Bon

Tableau 5-7 : Paramètres du profil utilisateur à la position 1

Le niveau de service doit être garanti pour la communication entre User1 et User2. Il s’agit d’une

conversation de téléphonie sur IP (ToIP : Telephony over IP) naturellement non sécurisée. Initialement, le

réseau d’accès disponible AN1-1 est caractérisé par une bande passante maximale de 54 Mbit/s et un délai

moyen de 20 ms, mais il ne fournit aucun service de sécurité. L’utilisateur demande un bon niveau de

QoS, et préfère protéger l’intégrité des paquets de voix échangés au moins au niveau des mediums

ouverts. Sachant que le réseau d’accès AN1-1 auquel User1 est initialement connecté n’est pas sécurisé, le

niveau de service négocié concerne une QoS de bout en bout et inclut également une sécurité entre User1

et User2 (Tableau 5-8).

Identification de trafic

Temps de service

Scope de QoS

Garantie de performance

Scope de sécurité

Protocole de sécurité

IP@User1

IP@User2 Immediate

IP@User1

IP@User2

D = 200 ms

G = 60 ms

P = 0,5 10-2

B = 64 Kb/s

IP@User1

IP@User2

P = ipsec

Mecanism = ah

Mode = transport

A = hmac-sha1-96

Tableau 5-8 : Paramètres du SLS correspondant au profil

Le Tableau 5-8 montre les paramètres du SLS à établir pour la communication entre User1 et User2.

La qualité de service, nécessaire au bon déroulement de la communication, doit être assurée de bout en

bout entre ces deux terminaux. Ce niveau de QoS est représenté par les paramètres suivants : 200 ms de

délai, 60 ms de gigue, = 0,5 10-2 de perte de paquets et un débit de 64 Kb/s. L’intégrité des données

échangées, souhaitée par l’utilisateur, sera assurée grâce au mécanisme AH du protocole IPSec en utilisant

l’algorithme HMAC-MD5-96 supporté par les deux extrémités de la communication.

La Figure 5-23-b représente un MSC (Message Sequence Chart) simplifié qui permet de comprendre

le processus de négociation via SLNP pour cet exemple. Sur ce MSC, nous notons qu’une fois les entités

SLNP mises d’accord sur un niveau de service, la communication peut avoir lieu après la phase de

signalisation SIP.

Au cours du déplacement de l’utilisateur User1, de nouveaux réseaux d’accès peuvent être détectés

par le protocole MIH. Dans cet exemple, un réseau sans fil sécurisé grâce au mécanisme WPA est détecté.

Cette information, transmise par le standard MIH à la couche de négociation du terminal de User1, est

166

reçue par la composante MNDP qui décide, suivant les préférences de l’utilisateur en matière de

technologies d’accès, de basculer sur le réseau sans fil sécurisé récemment détecté. Cet évènement peut

déclencher, en même temps, la modification du niveau de service déjà établi afin de désactiver le niveau de

sécurité assuré par IPSec car le nouveau réseau d’accès répond déjà aux besoins de sécurité exprimés par

l’utilisateur. Dans ce cas, les ressources utilisées dans la garantie de l’offre de sécurité (délai, bande

passante, etc.) peuvent être exploitées afin de proposer à la communication de nouvelles capacités et

d’améliorer sa qualité.

a : Scénario de négociation b : Échanges SLNP

Figure 5-23 : Exemple de négociation dans un environnement NGN

Il est vrai que le protocole MIH se propose de réaliser les changements de réseaux d’accès

(handovers) tout en garantissant la continuité de service. Cependant, lorsque l’offre de ce service nécessite

la mise en place d’un accord sur ce niveau de service, le temps nécessaire à un processus de négociation

SLNP peut constituer un important obstacle à la garantie de la continuité de service. Une des solutions

que nous pouvons proposer pour pallier à ce problème, est la négociation à l’avance. En effet, il s’agit

d’ajouter une certaine « intelligence » au niveau du terminal et du réseau global afin de déterminer les

réseaux d’accès voisinant la zone où se trouve le terminal et dont la probabilité d’utilisation est très

importante. Ensuite, une négociation de niveau de service à l’avance peut être effectuée afin de réserver les

ressources de QoS requise et de mettre en place les mécanismes de sécurité nécessaires, à l’avance. La

procédure de négociation à l’avance avec le protocole SLNP est une solution réaliste qui peut être réalisée

sur la base des paramètres reliés à la mobilité (degré de mobilité, vitesse, sens de déplacement, etc.), qu’on

ajoutera au profil utilisateur, tout en se conformant, par exemple, au modèle de fonctionnement décrit

167

dans [BEN 06]. Etant donné que nous basons notre négociation sur le profil utilisateur, nous devrons

également ajouter des paramètres relatifs à la mobilité de l’utilisateur afin d’automatiser la procédure de

négociation à l’avance. Parmi ces paramètres, il peut y avoir le degré de mobilité de l’utilisateur, sa vitesse,

le sens de déplacement, etc.

5.3.8 Résumé

L’ubiquité est caractérisée par des utilisateurs mobiles devant pouvoir consommer les services offerts

par les réseaux NGN à tout moment et à partir de n’importe quel endroit en utilisant plusieurs types de

terminaux. Dans ce contexte, nous avons proposé de faire participer ces utilisateurs à la négociation de

l’offre de service en équipant leurs terminaux avec une couche de négociation permettant d’automatiser la

négociation de niveau de service de bout en bout tout en assurant le handover grâce au protocole MIH.

5.4 Conclusion

L’association de la sécurité et de la QoS dans une négociation de niveau de service est d’une grande

importance dans un environnement NGN où les utilisateurs mobiles se connectent souvent à des réseaux

sans fil peu sécurisés pour consommer des services nécessitant de bonnes garanties de QoS. Dans ce

chapitre nous avons présenté deux principales contributions reliées à ce contexte.

La première contribution représente un exemple concret de la gestion de la QoS et de la sécurité

pour un service NGN particulier. Il s’agit du service IPTV qui se fonde sur une architecture spéciale

permettant la transmission du service IPTV à des utilisateurs sans fil connectés via des réseaux Wi-Fi de

type 802.11. L’objectif de cette contribution était d’assurer un niveau du service de bout en bout couvrant

la QoS et la sécurité dans une architecture divisée en deux segments où chacun est caractérisé par son

propre mode de transmission. Ainsi, nous avons commencé par présenter les caractéristiques de cette

architecture, ainsi que les différents mécanismes mis en jeu dans la transmission des flux IPTV. Ensuite,

nous avons décrit notre proposition qui permet de gérer la QoS et la sécurité de bout en bout pour une

telle transmission. En effet, sur le premier segment de transmission, à savoir le cœur du réseau, nous

avons spécifié comment le protocole SLNP peut être utilisé pour établir un niveau de service pour tout un

groupe multicast du flux IPTV. Puis, nous avons étendu la description permise par l’UED afin de

permettre, au niveau du réseau d’accès, la consommation d’un service IPTV qui prend en compte, non

seulement la QoS, mais aussi la sécurité requises par l’utilisateur sans fil. Enfin, pour permettre de délivrer

des flux IPTV spécifiques aux besoins de chaque utilisateur, nous avons ajusté le fonctionnement du

protocole de signalisation RTSP utilisé dans la demande des flux par les utilisateurs mobiles.

La deuxième contribution propose une adaptation du protocole SLNP aux environnements NGN.

Cette adaptation permet aux utilisateurs mobiles connectés aux réseaux NGN de négocier d’une manière

automatique et optimisée les garanties requises par le service demandé. L’utilisation de la technologie des

services web a facilité cette adaptation en permettant aux utilisateurs mobiles de négocier dynamiquement

le niveau de service dont ils ont besoin. Ceci à été réalisé en introduisant une couche de négociation au

niveau du terminal de l’utilisateur permettant de fonder le processus de négociation sur le profil de

l’utilisateur. Par ailleurs, nous avons proposé d’utiliser le protocole IEEE 802.21 afin d’assurer la handover

pour les utilisateurs mobiles et de collecter des informations sur les réseaux disponibles. Ainsi, dans la

168

première partie de ce chapitre, nous avons détaillé la composition du profil utilisateur spécifié pour la

négociation SLNP. Ensuite, le fonctionnement d’une négociation fondée sur le profil a été décrit en

détaillant les composantes de la couche de négociation (au niveau d’un terminal) ainsi que les traitements

réalisés dans chacune de ces composantes. Puis, nous avons présenté les résultats des tests de

performances visant à évaluer la solution proposée et à comparer les nouvelles performances aux

anciennes. Les tests ont montré que seules les performances en termes de temps de négociation sont

dégradées à cause de l’interaction ajoutée entre le terminal de l’utilisateur et le responsable du domaine

auquel cet utilisateur est connecté. Cependant, lors de la mesure du temps de négociation les interactions

avec l’application, le terminal, le protocole MIH et l’utilisateur n’ont pas été considérées parce que les trois

premières interactions ont été simulées grâce à une base de données. Ainsi, il serait bon d’évaluer les

performances du protocole SLNP dans des conditions réelles afin de mesurer l’impact de ces différentes

interactions sur le temps de négociation. Enfin, nous avons fourni un exemple complet de négociation de

niveau de service fondée sur le profil de l’utilisateur. Ceci nous a permis de montrer l’utilité d’une telle

approche, tout en identifiant un nouveau besoin, à savoir la garantie de la continuité de service qui peut

être assurée grâce à une négociation à l’avance.

La négociation de niveau de service, permise par le protocole SLNP, utilise les services web afin de

tirer profit de l’interopérabilité de ces technologies. Néanmoins, cette technologie se fonde sur l’échange

de messages SOAP (cf. section 3.4.1.2) qui peuvent être sujets à des attaques malveillantes. Par

conséquent, il est, également, nécessaire d’étudier la sécurisation du flux de négociation SLNP et d’évaluer

les nouvelles performances du protocole de négociation sécurisé.

169

Chapitre 6

Sécurité de la négociation

assurée par le protocole SLNP

6.1 Introduction

Le protocole SLNP est un protocole de signalisation qui permet à un utilisateur de négocier, d’une

manière dynamique, le niveau d’un service avec les responsables des domaines participant au transport de

ce service. Cette négociation, portant à la fois sur la qualité de service et la sécurité (cf. section 4.4), est

fondée sur des échanges de messages SOAP car elle utilise des services web, ceci dans le but de fournir

l’interopérabilité entre les différentes entités impliqués dans une négociation. Cependant, dans le cadre

d’une négociation inter-domaines, plusieurs entités sont impliquées dans une négociation de SLS, et les

messages SOAP échangés entre ces entités peuvent être attaqués par un tiers malveillant. A titre

d’exemple, ces attaques peuvent viser à désactiver le niveau de sécurité requis par l’utilisateur afin de

pouvoir facilement espionner la communication, lorsque l’échange de données débute. Cela peut,

également, viser à remplacer le SLS demandé par un autre SLS qui ne correspond pas aux besoins de

l’utilisateur, dans le but de libérer des ressources qui seront utilisées par le tiers malveillant. Etant donné

que le protocole SLNP peut être utilisé dans des négociations portant sur des services critiques, les entités

de négociation doivent être capables d’établir un accord sur un niveau de service d’une manière sécurisée.

Dans ce chapitre, nous décrivons notre dernière contribution, à savoir l’étude et la mise en œuvre de

la sécurisation de la négociation assurée par le protocole SLNP. Pour cela, cette négociation sera sécurisée

à différents niveaux en utilisant WSS, SSL/TLS et IPSec afin de choisir la solution la plus adaptée. Nous

commençons, tout d’abord, ce chapitre par la présentation des types d’attaques spécifiques aux protocoles

de signalisation qui ont motivé notre démarche de sécurisation du protocole SLNP. Puis, nous identifions

et étudions les protocoles de sécurité qui permettent de faire face aux attaques de sécurité pouvant viser

une négociation SLNP. Après cela, la sécurisation de ce protocole est réalisée en implémentant les

différents protocoles de sécurité identifiés à savoir : IPSec, SSL/TLS et WSS. Enfin, les différents types de

sécurité mis en place sont testés afin de pouvoir évaluer leurs impacts respectifs sur les performances du

protocole SLNP et de pouvoir choisir la solution la mieux adaptée. En fonction de ces résultats, nous

proposons, enfin, d’introduire une composante au niveau de la couche de négociation d’un terminal

utilisateur, afin de permettre l’optimisation de la mise en place de la sécurité du protocole SLNP.

170

6.2 Motivations

Malgré l’importance des attaques qui peuvent représenter une source de menaces pour les protocoles

de signalisation, très rares sont les protocoles qui se sont penchés sur cette question. A titre d’exemple,

nous citons le protocole de signalisation NSIS qui a spécifié les problèmes de sécurité qui peuvent être

rencontrés lors d’une signalisation dans un environnement NSIS [TSC 05]. Cette signalisation couvre les

protocoles GIMPS (General Internet Messaging Protocol for Signaling) [SCH 05b], NAT/Firewall NSLP

(A NAT/Firewall NSIS Signaling Layer Protocol) [STI 05], et le protocole de négociation de qualité de

service QoS-NSLP [BOS 05] (cf. section 3.3.2.6). Dans cette section, nous essayons d’identifier les

attaques de sécurité qui peuvent viser une négociation SLNP afin de pouvoir décider des mécanismes de

sécurité à mettre en place pour faire face à ces attaques.

La négociation de niveau de service avec le protocole SLNP peut être considérée comme une

communication entre les différentes entités impliquées dans une négociation. Ainsi, les attaques de

sécurité identifiées dans la section 2.5.1.1 peuvent représenter une source de menace pour la procédure de

négociation assurée par ce protocole SLNP. Dans ce qui suit, nous détaillons quelques scénarios

d’attaques ainsi que des attaques spécifiques au protocole SLNP.

• L’attaque de l’intercepteur : Ce type d’attaque est appelé, également, attaque de « l’homme au milieu »

(MITM : Man In The Middle). Il s’agit d’un scénario d’attaque dans lequel une entité pirate se fait

passer auprès d’une entité (généralement l’entité qui initie une négociation) pour l’entité adjacente et

suivante sur le chemin de négociation. Ainsi, l’entité pirate pourra modifier le contenu des messages

de négociation, monter des attaques par déni de service (DoS : Denial of Service), ou même voler des

services qui sont facturés à l’entité initiale. De plus, l’entité pirate est capable de répondre, elle-même,

aux requêtes SLNP envoyées par l’entité initiale, et envoyer d’autres requêtes au « vrai » vis-à-vis de

l’entité initiale. Ainsi, cette dernière aura l’impression de négocier son niveau de service avec le « vrai »

réseau, alors qu’elle s’adresse effectivement à une entité pirate. L’absence d’une authentification entre

les différentes entités de négociation ainsi que le fait que chaque entité SLNP ignore la topologie du

réseau et utilise un mécanisme de découverte afin de connaître l’adresse de la prochaine entité sur le

chemin de négociation, peuvent faciliter ce genre d’attaque.

• Rejeu des messages SLNP : Ce scénario couvre les cas où un adversaire intercepte et collecte des

messages SLNP pour les rejouer ultérieurement. En rejouant les messages capturés, avec parfois

quelques modifications, un adversaire peut monter des attaques de type MITM, déni de service, et

même vol de service. Dans un autre scénario d’attaque, un adversaire peut viser, tout d’abord, à mettre

hors-service une entité de négociation afin de lui faire perdre les informations d’état (negotiationId,

slsStatus, slsParameters, etc.). Ensuite, il pourra produire des attaques en rediffusant les messages de

négociation interceptés auparavant. Dans ce genre de scénario, l’adversaire profite des difficultés que

peut rencontrer une entité SLNP lorsqu’elle essayera de récupérer les informations d’état perdues.

• Injection ou modification de messages SLNP : Ce type d’attaques représente une menace pour l’intégrité des

messages SLNP, et couvre le réordonnancement, le retardement, la suppression, l’injection et la

troncature de messages de négociation. En effet, en modifiant le contenu des messages SLNP

(essentiellement les paramètres du SLS), un adversaire peut parvenir à provoquer l’établissement d’un

SLS différent de celui qu’à demandé l’entité initiale. Il peut, également, injecter des messages qui visent

171

à demander de très importantes ressources (éventuellement en utilisant l’identité d’un autre

utilisateur). Ainsi, les autres demandes de ressources pourront être rejetées. Cette attaque n’est

réalisable qu’en cas d’absence d’authentification et de protection d’intégrité des messages de

signalisation.

• Inondation : L’inondation consiste à envoyer une grande quantité de messages SLNP dans le seul but de

provoquer le plantage d’une entité SLNP. C’est une forme de déni de service. En effet, une entité

pirate peut inonder une « vraie » entité avec de faux messages de signalisation SLNP afin de la forcer à

effectuer un grand nombre de traitements qui consomment énormément de ressources notamment en

termes d’espace mémoire et de temps CPU. Ce qui pourrait nuire à la « vraie » entité SLNP et la

mettre hors-service.

• Usurpation d’identité : Une entité pirate peut modifier, dans les messages de négociation, la partie qui

permet d’identifier le flux sur lequel porte la négociation. Les identifiants de flux sont essentiellement

les adresses IP, le type du protocole de transport (UDP, TCP), les numéros de ports, etc. La

modification de ces paramètres dans les messages SLNP, permet à l’entité pirate d’exploiter le niveau

de service (QoS et/ou sécurité) réservé par une autre entité, ou encore de priver cette dernière du

niveau de service qu’elle a essayé de réserver.

Les scénarii décrits ci-dessus illustrent plusieurs vulnérabilités du protocole de négociation SLNP face

aux attaques de sécurité les plus menaçantes qui peuvent se produire. Cependant, il ne s’agit pas d’une liste

exhaustive des attaques pouvant avoir lieu, parce qu’il existe d’autres scénarios d’attaques. Par exemple,

lorsque la non-répudiation (cf. section 2.5.1.1) n’est pas assurée, un utilisateur peut nier avoir réservé des

ressources ou encore prétendre qu’il n’avait pas connaissance du prix proposé par le réseau. De même, le

réseau peut prétendre qu’il a reçu des demandes de réservation de la part d’un utilisateur bien particulier

même si ce dernier n’avait rien demandé, etc.

Pour faire face aux attaques que peut produire des entités malveillantes, il faut, tout d’abord,

déterminer les services de sécurité dont une négociation SLNP a vraiment besoin. Ceci permettra de

trouver, par la suite, les mécanismes ou protocoles de sécurité pouvant répondre aux besoins spécifiques

du protocole SLNP en termes de sécurisation des messages échangés lors d’une négociation.

Les services de sécurité qui permettent au protocole SLNP de résister à tout type d’attaque sont les

suivants : la confidentialité, l’authentification, l’intégrité, la non-répudiation et la protection contre le rejeu.

Cependant, le choix des services de sécurité à fournir ne dépend que des attaques contre lesquelles la

négociation doit être protégée.

6.3 Mécanismes de sécurisation du protocole SLNP

La sécurisation du protocole SLNP revient à sécuriser la communication entre les différentes entités

qui doivent participer à une négociation. Cette communication est fondée sur une invocation des services

web de négociation qui s’effectue de proche en proche entre les entités adjacentes sur un chemin de

négociation. Ainsi, pour résister aux attaques d’un tiers malveillant, il faudra sécuriser les invocations de

services web entre chaque couple d’entités SLNP qui doivent directement interagir lors d’une procédure

de négociation.

172

Le niveau dans lequel opère le protocole SLNP, à savoir la couche applicative, nous donne plusieurs

options pour la sécurisation de la négociation assurée par ce protocole. En effet, les échanges entre les

services web peuvent être sécurisés (confidentialité, authentification, intégrité, non-répudiation et/ou

protection contre le rejeu), d’une manière transparente, au niveau de la couche « Transport » grâce au

protocole SSL/TLS, ou encore au niveau « Réseau » en mettant en œuvre le protocole IPSec (Figure 6-1).

Par ailleurs, d’autres standards de sécurité ont été développés spécialement pour protéger les

communications entre les services web. En effet, ces communications peuvent impliquer de multiples

entités où chacune d’elles peut avoir besoin d’accéder à certaines parties du message et où l’accès à

d’autres parties peut lui être interdit. Ce degré de finesse dans la spécification des parties à protéger dans

un message échangé et le choix des entités concernées par ces parties à protéger, ne peut pas être atteint

avec les protocoles SSL/TLS ou IPSec, car ces derniers permettent de sécuriser une communication entre

deux extrémités d’un bout à l’autre.

Figure 6-1 : Les standards de sécurisation des services web

Contrairement aux protocoles IPSec et SSL/TLS qui protègent les données échangées entre les

services web respectivement au niveau « Réseau » et au niveau « Transport », les standards de sécurité

XML, à savoir XML Encryption et XML Signature, permettent de sécuriser les messages XML échangés

entre ce type d’applications (services web) au niveau « Application ». Pour assurer la sécurisation des

messages SOAP (qui ne sont autres que des documents XML) échangés entre les services web (WS : Web

Services), des standards ont été spécifiés. Parmi ces standards, nous trouvons le standard WS Security qui

se base sur XML Signature et XML Encryption dans le but de protéger les messages SOAP. Par ailleurs,

d’autres standards ont été développés autours des services web tels que : WS ReliableMessaging qui

permet d’assurer la fiabilité de la transmission des messages SOAP, WS-Trust et WS-SecureConversation

qui sont utilisés pour définir des environnements de confiance, WS Addressing qui définit les propriétés

d’adressage des messages SOAP, WS Policy qui permet de définir des politiques de sécurité, etc. (Figure

6-1). Notons qu’il existe d’autres standards qui peuvent être utilisés dans le but d’assurer des services de

sécurité pour les échanges entre les services web, mais qui ne sont pas exclusifs aux services web. Parmi

ces standards, nous citons XACML (eXtensible Access Control Markup Language) [MOS 05] et SAML

173

(Security Assertion Markup Language) [CAN 05] qui peuvent assurer le contrôle d’accès en permettant la

définition des politiques nécessaires.

Etant donnée que les protections assurées par les protocoles SSL/TLS et IPSec ont été détaillées

dans la section 2.5.2, une étude des standards de sécurité spécialement conçus pour les services web a été

réalisée. Celle-ci est présentée dans l’annexe 0 afin de ne pas trop charger le contenu de ce chapitre.

Ainsi, le flux de négociation échangé entre les différentes entités SLNP peut être sécurisé de trois

manières différentes ; nous pouvons utiliser IPSec, SSL/TLS ou encore WSS. Pour renforcer la sécurité,

nous pouvons même empiler des mécanismes de sécurité à différents niveaux comme par exemple : TLS

sur IPSec, WSS sur TLS, WSS sur TLS sur IPSec, etc. Dans les deux sections qui suivent, nous nous

penchons sur la mise en œuvre de la sécurité du protocole SLNP ainsi que sur l’étude du coût de cette

sécurité, c’est-à-dire son impact sur les performances de la négociation. En effet, dans la section 6.4 nous

décrivons la mise en œuvre de la sécurité du protocole SLNP au niveau applicatif en implémentant la

spécification WSS. Ensuite, des tests de fonctionnement et d’évaluation des performances de ce type de

sécurité sont réalisés et les résultats de ces tests sont présentés. Dans la section 6.5, nous mettons en

œuvre la sécurité de la négociation aux niveaux « Transport » et « Réseau » tout en évaluant les

performances de ces sécurités afin d’établir une comparaison des performances de la négociation en

fonction des trois types de sécurité que nous avons testés.

6.4 Sécurité du protocole SLNP au niveau « Application » (WSS)

Les services de sécurité que nous voulons offrir au flux de négociation SLNP sont l’intégrité,

l’authentification, la non-répudiation et la confidentialité. Le protocole SLNP utilise les services web afin

d’assurer l’échange de messages de négociation qui ne sont autres que des messages SOAP. Par

conséquent, la sécurité de cette négociation peut être assurée au niveau applicatif grâce à la spécification

WSS qui représente le standard le plus adapté pour répondre aux besoins du protocole de négociation en

termes de sécurité. En effet, comme nous l’avons déjà vu (cf. section 6.3), la spécification WSS permet

d’assurer l’intégrité, l’authentification et la non-répudiation pour les messages SOAP grâce à l’utilisation du

standard XML Signature et des entêtes de sécurité WSS contenant les jetons de sécurité. De la même

manière, la spécification WSS peut assurer la confidentialité des messages SOAP échangés entre les entités

de négociation, en faisant appel au standard XML Encryption et aux jetons de sécurité inclus dans les

entêtes WSS et qui permettent de transmettre les informations nécessaires au chiffrement ou au

déchiffrement de ces messages.

6.4.1 Implémentation de la spécification WSS

L’implémentation du protocole SLNP, que nous avons déjà réalisée, est fondée essentiellement sur :

Tomcat comme serveur d’application, Axis en tant qu’implémentation du protocole SOAP et Java comme

langage de programmation (cf. section 4.4.4). Vu la nature de ces éléments caractérisant l’implémentation

dont nous disposons, le choix de l’implémentation de WSS s’est naturellement porté vers WSS4J (Web

Services Security for Java) [ASF 09]. En effet, WSS4J est une bibliothèque Java permettant d’implémenter

la spécification WSS dans un environnement Tomcat-Axis. Développée par la fondation Apache (comme

Tomcat et Axis), cette bibliothèque permet d’intégrer facilement la sécurité WSS dans un environnement

174

d’échange de messages SOAP fondé sur Axis. Dans cette partie, nous allons décrire le principe de

fonctionnement de WSS4J, avant de détailler la mise en œuvre de WSS4J afin de permettre la sécurisation

du protocole SLNP avec WSS.

6.4.1.1 Principe de fonctionnement de WSS4J

Afin de fournir des services de sécurité aux messages SOAP, des opérations de sécurité doivent être

appliquées à ces messages au niveau des extrémités qui les échangent. Dans le cadre d’une sécurité WSS,

ces opérations peuvent être décrites par l’API WSS4J en utilisant des handlers implémentés en Java.

Ensuite, les appels à ces handlers sont placés dans les descripteurs de déploiement de WSS4J, à savoir les

fichiers WSDD (Web Service Deployment Descriptors) ; dont un exemple est fourni dans la Figure 6-2.

Ces descripteurs de déploiement sont utilisés afin de décrire les mesures de sécurité à appliquer sur chaque

entité. WSS4J utilise, respectivement, les éléments « requestFlow » et « responseFlow » (Figure 6-2) dans

les fichiers de déploiement pour spécifier le sens du flux du message SOAP auquel des traitements de

sécurité doivent être associés. Cette association est réalisée grâce à un élément « handler » qui peut avoir

pour type un des deux principaux types définis par WSS4J : WSDoAllReceiver et WSDoAllSender.

Chaque élément « handler » doit contenir un ou plusieurs paramètres permettant de décrire les opérations

de sécurité devant être effectuées. Les opérations de sécurité sont qualifiées grâce au paramètre ‘action’ de

l’élément « handler ». La valeur de ce paramètre peut être, soit "UsernameToken" pour indiquer l’insertion

d’un jeton de sécurité de type UsernameToken dans l’entête de sécurité WSS (cas de l’exemple de la Figure

6-2), soit "Timestamp" pour indiquer l’insertion d’un Timestamp dans l’entête WSS, soit "Encrypt" pour

spécifier un chiffrement ou soit "Signature" pour indiquer une signature. Ensuite, le paramètre ‘user’

définit le nom d’utilisateur nécessaire pour l’authentification. Puis, on peut trouver le paramètre

‘passwordCallbackClass’ qui spécifie une classe implémentant une méthode pour récupérer le mot de

passe (il s’agit de la classe PWCallback dans le cas de l’exemple de la Figure 6-2). Notons que ce mot de

passe est rattaché au nom d’utilisateur spécifié par le paramètre ‘user’.

<deployment xmlns="…/wsdd/" xmlns:java="…/java"> <transport name="http" pivot="java:org.apache.axis.transport.http.HTTPSender"/> <globalConfiguration > <requestFlow > <handler type="java:org.apache.ws.axis.security.WSDoAllSender" > <parameter name="action" value="UsernameToken"/> <parameter name="user" value="wss1user"/> <parameter name="passwordCallbackClass" value="PWCallback"/> <parameter name="passwordType" value="PasswordDigest"/> </handler> </requestFlow > <responseFlow> <handler type="java:org.apache.ws.axis.security.WSDoAllReceiver"> <parameter name="passwordCallbackClass" value="PWCallback"/> <parameter name="action" value="UsernameToken Timestamp Encrypt"/> <parameter name="decryptionPropFile" value="crypto-encrypt.properties" /> </handler> </responseFlow> </globalConfiguration > </deployment>

Figure 6-2 : Exemple d’un fichier de déploiement WSDD

175

Dans l’exemple de la Figure 6-2, nous avons un service web dont l’accès nécessite (élément

« requestFlow ») une authentification en fournissant un identifiant et un mot de passe haché (type =

"PasswordDigest"). Quant à la réponse retournée par ce service web (élément "responseFlow"), elle

nécessite la validation d’une authentification basée sur un jeton de sécurité de type "UsernameToken"

accompagné d’un "Timestamp". Notons que certaines parties du message retourné sont chiffrées

("Encrypt") et que les éléments permettant le déchiffrement sont contenus dans un fichier nommé

"crypto-encrypt.properties".

Ainsi, pour chaque entité SLNP, il nous faudra utiliser les handlers prévus par WSS4J afin de décrire

dans des fichiers wsdd quelles opérations de sécurité doivent être effectuées et sur quelles parties des

messages SLNP ces opérations doivent porter.

6.4.1.2 Configuration de la sécurité WSS au niveau des entités SLNP

Comme nous pouvons le remarquer à travers la description du fonctionnement de WSS4J,

l’implémentation de la sécurité WSS est transparente par rapport à l’implémentation des entités SLNP

(application cliente et service web de négociation). Ainsi, dans cette section, nous verrons que la mise en

place de cette sécurité n’a aucun impact sur l’implémentation du protocole SLNP que nous avons décrite

dans les chapitres précédents.

Le fonctionnement de la négociation SLNP se base sur une invocation récursive des services web de

négociation permettant, ainsi, une circulation de proche en proche des messages SLNP. Ceci fait qu’une

entité initiale ou finale est concernée par un seul ensemble de propriétés de sécurité associé à l’échange

avec l’entité suivante ou précédente, alors qu’une entité intermédiaire utilise deux ensembles de propriétés

de sécurité ; échanges avec l’entité précédente et l’entité suivante.

6.4.1.2.1 Une entité initiale

Une entité initiale est concernée par une sécurité qui caractérise ses échanges avec la première entité

intermédiaire sur le chemin de négociation. Ainsi, la seule modification à apporter à l’implémentation

d’une entité initiale est de définir un fichier de déploiement qui permet de décrire les opérations de

sécurité devant être effectuées pour ses messages échangés avec la première entité intermédiaire. Ensuite,

ce fichier sera appelé lors de l’invocation du service web de négociation de cette entité intermédiaire. Le

contenu du fichier de déploiement dépend uniquement des services de sécurité désirés. A titre d’exemple,

le fichier de déploiement donné dans la Figure 6-3 montre que lorsque l’entité initiale (correspond à

"wss1user") veut émettre un message vers la première entité intermédiaire (correspond à "wss2user"), elle

doit satisfaire les propriétés de sécurité décrite par l’élément « requestFlow ». Elle doit, ainsi, s’authentifier

en utilisant un UsernameToken et un Timestamp et chiffrer des éléments du message, comme décrit par le

paramètre "action". Le paramètre " encryptionParts" indique que le chiffrement effectué par l’entité

initiale doit porter sur les éléments "UsernameToken", "Timestamp" et "Body". Les propriétés de sécurité

requises pour la réponse sont, quant à elles, décrites par l’élément « responseFlow ». Cette description

indique que la réponse nécessite, également, une authentification fondée sur un "UsernameToken", un

"Timestamp" et un chiffrement.

<deployment xmlns="…wsdd/" xmlns:java="…java"> <transport name="http" pivot="java:org.apache.axis.transport.http.HTTPSender"/> <globalConfiguration >

176

<requestFlow > <handler type="java:org.apache.ws.axis.security.WSDoAllSender" > <parameter name="action" value="UsernameToken Timestamp Encrypt"/> <parameter name="user" value="wss1user"/> <parameter name="passwordCallbackClass" value="PWCallback"/> <parameter name="passwordType" value="PasswordDigest"/> <parameter name="encryptionUser" value="wss2user"/> <parameter name="encryptionPropFile" value="crypto-encrypt.properties" /> <parameter name="encryptionParts" value="{Element}{http://docs.oasisopen.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd} UsernameToken; Body ; {Element} {http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd}Timestamp" /> </handler> </requestFlow > <responseFlow> <handler type="java:org.apache.ws.axis.security.WSDoAllReceiver"> <parameter name="passwordCallbackClass" value="PWCallback"/> <parameter name="action" value="UsernameToken Timestamp Encrypt"/> <parameter name="decryptionPropFile" value="crypto-encrypt.properties" /> </handler> </responseFlow> </globalConfiguration > </deployment>

Figure 6-3 : Exemple de descripteur de déploiement d’une partie cliente

Les éléments requis pour les traitements de sécurité au niveau de l’entité initiale (certificats,

algorithmes, clés, etc.) sont contenus dans le fichier crypto-encrypt.properties. Comme le montre la Figure

6-4, ce fichier peut contenir les paramètres nécessaires pour accéder aux certificats ainsi que la manière de

les localiser et de les extraire des magasins de certificats (localisation de ces magasins de certificats, mots

de passe pour y accéder, certificats à utiliser et bibliothèque java pour la gestion de ces opérations, etc.).

org.apache.ws.security.crypto.provider=org.apache.ws.security.components.crypto.Merlin org.apache.ws.security.crypto.merlin.keystore.type=jks org.apache.ws.security.crypto.merlin.keystore.password=wssecpass org.apache.ws.security.crypto.merlin.keystore.alias=wss1user org.apache.ws.security.crypto.merlin.alias.password=wss1pass org.apache.ws.security.crypto.merlin.file=wssecstore.jks

Figure 6-4 : Exemple de fichier de propriétés (crypto-encrypt.properties)

Une fois la sécurité WSS configurée au niveau de l’entité initiale afin de lui permettre d’envoyer et de

recevoir des messages sécurisés, il nous reste à configurer la même sécurité au niveau des entités

intermédiaires.

6.4.1.2.2 Une entité intermédiaire

Rappelons qu’une entité intermédiaire à une situation particulière dans l’architecture du protocole de

négociation. En effet, ce type d’entité est à la fois fournisseur d’un service web pour l’entité précédente sur

le chemin de négociation (entité initiale ou une autre entité intermédiaire), et client d’un service web fourni

par l’entité suivante (une autre entité intermédiaire ou l’entité finale). Ainsi, sécuriser une négociation

SLNP avec WSS au niveau d’une entité intermédiaire revient à configurer deux sécurités WSS : une avec

l’entité précédente et l’autre avec l’entité suivante.

177

Si nous nous intéressons à la sécurité relative à l’interaction d’une entité intermédiaire avec l’entité

suivante sur le chemin de négociation, alors il s’agit d’un échange dans lequel l’entité intermédiaire

considérée joue le rôle d’une application cliente qui invoque une des opérations contenues dans le service

web de l’entité suivante. Pour cet échange, la procédure de configuration de la sécurité WSS est la même

que celle effectuée au niveau de l’entité initiale pour ses échanges avec la première entité intermédiaire. En

effet, nous devons, également, créer un fichier de déploiement, caractérisant la sécurité entre cette entité

intermédiaire et l’entité qui la suit. Ce fichier sera appelé lors de l’invocation du service web de l’entité

suivante sur le chemin de négociation.

Maintenant, nous nous intéressons à la sécurité des interactions entre une entité intermédiaire et

l’entité qui la précède. Cette sécurité concerne un échange impliquant le service web de négociation de

l’entité intermédiaire considérée. Pour configurer la sécurité des messages en provenance d’une entité

précédente, il suffit d’ajouter au fichier de déploiement de l’implémentation originelle du service web de

l’entité intermédiaire les modifications présentées dans la Figure 6-5. Sur cette figure, nous pouvons

distinguer les deux éléments ajoutés au fichier de déploiement d’origine ; l’élément « requestFlow » et

l’élément « responseFlow ». La partie représentée par l’élément « requestFlow » contient les informations

de sécurité nécessaires aux traitements des messages sécurisés reçus (requêtes), tandis que, la partie

représentée par l’élément « responseFlow » permet de sécuriser les messages retournés en tant que

réponses aux requêtes reçues.

<service name="NegotiationServicePort2Secure" provider="java:RPC" style="document" use="literal"> <requestFlow> <handler type="java:org.apache.ws.axis.security.WSDoAllReceiver"> <parameter name="passwordCallbackClass" value="PWCallback"/> <parameter name="action" value="UsernameToken Timestamp Encrypt"/> <parameter name="decryptionPropFile" value="server_crypto.properties" /> </handler> </requestFlow> <responseFlow > <handler type="java:org.apache.ws.axis.security.WSDoAllSender" > <parameter name="action" value="UsernameToken Timestamp Encrypt"/> <parameter name="user" value="wss2user"/> <parameter name="passwordCallbackClass" value="PWCallback"/> <parameter name="passwordType" value="PasswordDigest"/> <parameter name="encryptionUser" value="wss1user"/> <parameter name="encryptionPropFile" value="server_crypto.properties" /> <parameter name="encryptionParts" value="{Element}{http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd} UsernameToken; {Element}{http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd}Timestamp" /> </handler> </responseFlow > <parameter name="wsdlTargetNamespace" value="urn:WSNegotiation2"/> ...... </service>

Figure 6-5 : Exemple de descripteur de déploiement d’une partie serveur

6.4.1.2.3 Une entité finale

L’entité finale est concernée par une seule sécurité WSS. Cette sécurité est relative à la

communication entre cette entité finale et l’entité précédente qui constitue la dernière entité intermédiaire

178

sur le chemin de la négociation. Dans les échanges de cette communication, l’entité finale joue le rôle de

fournisseur de service. Les opérations contenues dans le service web de négociation fourni par l’entité

finale sont invoquées par l’entité précédente. La configuration de la sécurité WSS entre l’entité finale et

l’entité intermédiaire s’effectue de la même manière que celle de la sécurité entre l’entité intermédiaire et

l’entité initiale. En effet, nous devons, également, ajouter au fichier de déploiement de l’implémentation

originelle du service web de l’entité finale les éléments « requestFlow » et « responseFlow » afin de

caractériser le niveau de sécurité ainsi que les traitements de sécurité nécessaires.

Notons que pour avoir le même niveau de sécurité pour une négociation SLNP de bout en bout,

nous devons prendre soin de fournir les mêmes services de sécurité tout au long du chemin de la

négociation en utilisant toujours les mêmes paramètres de sécurité (certificats, jetons, algorithmes, clés,

etc.).

6.4.2 Tests et résultats

Une fois la sécurité du protocole SLNP en utilisant WSS4J mise en place, nous pouvons réaliser des

tests visant à mesurer les performances du protocole SLNP sécurisé au niveau applicatif afin d’évaluer le

coût de l’introduction de la sécurité WSS. Ainsi, dans cette section, nous commençons par décrire la

plateforme de tests. Ensuite, nous décrivons la procédure qui nous a permis de tester le fonctionnement

de la sécurisation WSS du protocole SLNP. Enfin, nous procédons aux tests permettant d’évaluer l’impact

de cette sécurité sur les performances du protocole de négociation.

6.4.2.1 Plateforme de tests

Pour tester la sécurité WSS mise en place, nous faisons appel à la plateforme que nous avons utilisée

dans les tests de performances du protocole SLNP (cf. section 4.4.5.1). Cette plateforme (Figure 4-26) est

constituée de trois entités de négociation (SI, SF et SR) implémentant toutes le protocole SLNP. Elle

permet d’effectuer des tests locaux où les trois entités sont déployées sur une même machine (un serveur

Dell Precision PWS670 avec un processeur Intel Xeon à 3,2 GHz et une RAM de 2 Go). Cependant, nous

configurons sur cette plateforme une sécurité WSS au niveau de chacune des trois entités qu’elle

comprend afin de sécuriser les échanges relatifs à la négociation dans les deux sens.

6.4.2.2 Tests de fonctionnement

Afin de vérifier la sécurisation du protocole SLNP avec la spécification WSS, nous procédons à la

visualisation des différents messages échangés au cours d’une négociation. L’application SOAPMonitor,

que nous avons utilisée jusque là dans la capture et la visualisation des messages SLNP échangés entre les

entités de négociation, ne permet pas de visualiser l’intégralité des messages SOAP échangés afin de

vérifier les entêtes de sécurité et le résultat des opérations de sécurité comme le chiffrement et la signature.

Ainsi, pour visualiser les échanges sécurisés entre les trois entités de négociation déployées sur notre

plateforme de tests, nous avons dû avoir recours à l’outil TCPMon (TCP Monitor) [ASF 06] également

fourni par Apache. Pour cela, nous apportons quelques modifications au fonctionnement des invocations

des services web de négociation entre ces entités. En effet, au lieu d’appeler directement le service web de

l’entité suivante en utilisant le port 8080, nous faisons passer ces appels par TCPMon en redirigeant les

requêtes http envoyées par la SI et la SF, respectivement, vers les ports 9090 et 9393 qui sont utilisés par

TCPMon (Figure 6-6).

179

Figure 6-6 : Modèle de communication pour les tests de fonctionnement

Par conséquent, en visualisant les messages circulant entre les trois entités, nous nous assurons du

bon fonctionnement de la sécurité WSS. Par ailleurs, nous fournissons en annexe 0 un exemple de

message SOAP sécurisé avec WSS. Ce message a été capturé lors d’une négociation de niveau de service

via SLNP et comprend des commentaires afin de fournir des explications concernant la majorité des

éléments de ce message. Sur cet exemple, nous retrouvons l’entête de sécurité WSS « Security » qui permet

de décrire les opérations de sécurité mises en œuvre. Cet entête indique l’utilisation d’un élément

"Usernametoken" et d’un élément "Timestamp" qui sont tous deux chiffrés en utilisant l’algorithme

"aes128-cbc" et une clé symétrique ; elle-même chiffrée en utilisant l’algorithme "RSA-1.5" et la clé

publique de la SF. Nous pouvons constater sur cet exemple que le corps du message SOAP est signé afin

de protéger l’intégrité de cette partie du message.

6.4.2.3 Tests d’évaluation des performances en fonction du niveau de sécurité

Après avoir validé le bon fonctionnement du protocole SLNP sécurisé au niveau applicatif en

utilisant WSS, nous nous intéressons à l’évaluation des nouvelles performances de la version sécurisée de

la négociation afin de la comparer à celles de la version non sécurisée. Pour cela, nous identifions quelques

scénarios de sécurité. Chacun de ces scénarios, résumés dans le Tableau 6-1, correspond à un niveau de

sécurité pouvant répondre à de réels besoins en matière de sécurité.

Scénario Caractéristiques de la sécurité WSS

S0 Sans sécurité

S1 Authentification simple (username token et mot de passe)

S2 Authentification forte (username token et timestamp chiffrés)

S3 Authentification forte et intégrité (signature du message)

S4 Authentification forte et confidentialité (chiffrement de message)

S5 Authentification forte, intégrité et confidentialité

Tableau 6-1 : Les différents scénarios de sécurité WSS

• Sans sécurité (S0) : Ce scénario correspond à la version d’origine du protocole SLNP qui n’offre aucun

service de sécurité à la négociation assurée par ce protocole.

180

• Authentification simple (S1) : Il s’agit du scénario correspondant à la sécurité la plus simple que nous

avons testée. Cette sécurité réalise une authentification fondée sur la validation d’un simple couple

d’éléments composé d’un UsernameToken et d’un PasswordDigest.

• Authentification forte (S2) : Ce scénario correspond à une authentification fondée sur la validation du

couple UsernameToken et PasswordDigest, complété d’un Timestamp. Notons que, dans le cas d’une

authentification forte, ces trois éléments sont chiffrés en utilisant un algorithme de chiffrement et une

clé symétrique, elle-même, chiffrée en utilisant l’algorithme RSA-1.5 (le seul algorithme pour

chiffrement de clés supporté par WSS4J) et la clé publique du service web de destination. L’algorithme

utilisé pour chiffrer les trois éléments utilisés dans l’authentification peut être AES_128 (algorithme

utilisé par défaut avec WSS4J), AES_192, AES_256, ou TripleDES.

• Authentification forte et intégrité du corps du message (S3) : Ce scénario de sécurité correspond à une

authentification forte à laquelle on ajoute l’intégrité du corps du message. En effet, le corps du

message est signé à l’aide de la clé privée de l’émetteur. L’algorithme de signature utilisé par défaut

dans une implémentation WSS4J, est l’algorithme SHA1-RSA. Notons qu’avec une implémentation

WSS4J, la signature du corps du message du coté de l’émetteur implique, obligatoirement, la

confirmation de cette signature dans le message de réponse généré par le destinataire.

• Authentification forte et confidentialité du corps du message (S4) : Dans ce scénario, outre le chiffrement des

éléments UsernameToken, PasswordDigest et Timestamp, requis par l’authentification forte, une

autre opération de chiffrement est effectuée. Cette deuxième opération de chiffrement porte sur le

corps du message SOAP et vise à assurer la confidentialité aux messages SLNP échangés. Ce

chiffrement fait appel à l’algorithme utilisé par défaut avec WSS4J, c’est-à-dire l’algorithme AES-128.

• Authentification forte, intégrité et confidentialité du corps du message (S5) : Ce dernier scénario assure une

authentification forte tout en protégeant l’intégrité et la confidentialité du corps des messages SLNP.

Ensuite, nous présentons dans les sections 6.4.2.3.1 et 6.4.2.3.2 les mesures liées aux performances du

protocole de négociation (temps de négociation et taille des messages). Ces mesures nous permettent

d’évaluer l’impact de la sécurité WSS sur les performances du protocole de négociation pour chacun des

scénarios identifiés.

6.4.2.3.1 Evaluation du temps de négociation

Dans cette partie, nous évaluons l’impact de la sécurité assurée par WSS sur les temps de négociation.

Pour éviter de perturber les mesures du temps de négociation, nous désactivons la redirection des

invocations vers TCPMon qui nous a permis de vérifier le bon fonctionnement de la sécurité WSS, et qui

nous permettra, par la suite, de capturer les messages afin d’évaluer leurs tailles. Les mesures du temps de

négociation, effectuées en utilisant la plateforme décrite ci-dessus, concernent chacun des six scénarios

identifiés. Pour chacun de ces scénarios, nous réalisons un échantillon de 1000 mesures afin d’évaluer le

temps moyen de négociation (Tableau 6-2). Cependant, sur la Figure 6-7, nous ne représentons qu’un

échantillon de 100 mesures afin de mieux visualiser le résultat des mesures que nous avons réalisées en

permettant de distinguer plus facilement les différentes courbes de mesures. Le temps de négociation est

toujours mesuré entre le moment où l’application cliente de la SI construit la requête (Negotiate) et le

moment où elle reçoit la réponse (Response ou Revision) pour une seule passe de négociation.

181

Scénario Temps moyen de négociation (ms) Taille moyenne des messages (octets)

S0 62,61 3749

S1 81,62 4427

S2 151,43 7300

S3 204,64 8710

S4 164,16 9235

S5 217,26 10623

Tableau 6-2 : Impact de la sécurité WSS sur les performances du protocole SLNP

Les mesures du temps de négociation montrent que ce temps augmente lorsque la sécurité est fournie

(Figure 6-7 et Tableau 6-2). Ceci est dû aux traitements additionnels effectués par les différentes entités,

telles que l’authentification, le chiffrement, le déchiffrement, le calcul de la signature, la validation de la

signature, etc. En effet, nous constatons qu’une authentification simple (scénario S1) augmente de 30% le

temps moyen de négociation par rapport à une négociation non sécurisée (scénario S0) ; parce qu’elle

nécessite uniquement l’ajout d’un élément UsernameToken dans l’entête de sécurité. L’authentification

forte (scénario S2) augmente, quant à elle, de 180% ce temps car elle nécessite, non seulement, l’ajout des

éléments UsernameToken et Timestamp dans l’entête de sécurité, mais aussi le chiffrement de ces

éléments. Si en plus de l’authentification forte, nous souhaitons assurer la confidentialité du corps du

message (scénario S4), le temps moyen de négociation augmente de manière sensible. En effet, ce qui est

coûteux en termes de temps de traitements, c’est le chiffrement d’une clé en utilisant un algorithme

asymétrique requis par l’authentification forte, alors que le chiffrement et le déchiffrement des éléments

d’entête (UsernameToken et Timestamp) ou du corps du message mettant en œuvre un algorithme à clé

symétrique sont relativement rapides à exécuter. Par contre, il est clair que les opérations de signature du

corps du message et de vérification de signature (requises dans le scénario S3) sont plus coûteuses que les

opérations de chiffrement et de déchiffrement du corps du message (nécessitées dans le scénario S4) en

termes de temps des traitements comme décelées lors de l’évaluation de la sécurité des services web dans

[CHE 07].

Figure 6-7 : Evaluation du temps de négociation (100 essais)

182

6.4.2.3.2 Evaluation de la taille des messages

Pour évaluer l’impact des différents scénarios de sécurité WSS sur la taille des messages SOAP

échangés lors d’une négociation SLNP, nous mesurons la taille des messages de type Negotiate circulant

entre la SI et la SF. Pour cela, nous utilisons l’outil TCP Monitor. Les mesures effectuées montrent que la

taille de ce type de message augmente lors de l’introduction d’une sécurité WSS (Figure 6-8 et Tableau

6-2). Ceci s’explique par l’introduction des entêtes de sécurité dont la taille dépend des services de sécurité

fournis et des mécanismes mis en place. Si nous prenons comme référence la taille d’un message non

sécurisé correspondant au scénario S0, alors l’authentification simple (scénario S1) augmente légèrement la

taille moyenne du message Negotiate (18 %) parce que l’entête de sécurité ajouté ne contient que l’élément

UsernamToken. Toutefois, l’authentification forte (scénario S2) augmente presque deux fois la taille du

message (95%) parce qu’en plus des éléments UsernameToken et Timestamp, l’entête de sécurité

comprend toutes les informations requises pour le chiffrement de ces deux éléments, tels que les

algorithmes et les clés. Les protections de l’intégrité et de la confidentialité du corps du message en plus de

l’authentification forte (respectivement scénario S3 et scénario S4) augmentent plus modérément la taille

du même message Negotiate ; nous mesurons respectivement des augmentations de 132 % et de 146 %

par rapport à la taille de référence (scénario S0). Ceci s’explique par le fait que les tailles des valeurs de la

signature et du résultat du chiffrement ne sont pas aussi importantes que les autres informations

comprises dans les entêtes de sécurité telles que les références aux parties protégées, les algorithmes et les

clés utilisés, etc. Enfin, la taille des messages peut augmenter de 183% lorsqu’en plus d’une

authentification forte, l’intégrité et la confidentialité du corps du message Negotiate sont assurées

(scénario S5).

Figure 6-8 : Evaluation de la taille des messages

L’évaluation du coût de la sécurité WSS sur les performances du protocole SLNP pour les différents

scénarios identifiés nous permet de déduire que ce coût ne dépend que du nombre des services de sécurité

offerts par WSS. Le choix du scénario de sécurité à mettre en place ne peut pas être fondé sur le coût de la

sécurité, car il doit dépendre uniquement des besoins des parties négociantes en matière de sécurité.

Cependant, les entités de négociation peuvent choisir l’algorithme à utiliser pour offrir un service de

sécurité donné. Ainsi, nous essayons de voir si le choix de l’algorithme utilisé pour offrir un service de

sécurité avec WSS peut influencer l’impact de la sécurité sur les performances du protocole SLNP.

183

6.4.2.4 Tests d’évaluation des performances en fonction de l’algorithme utilisé

Afin de vérifier si le choix de l’algorithme utilisé dans l’offre d’un service de sécurité peut influencer

les performances de la négociation, nous allons considérer la confidentialité du corps de message SOAP

qui peut être assurée grâce à un algorithme de chiffrement symétrique. L’implémentation WSS4J de la

spécification WSS offre la possibilité d’utiliser quatre algorithmes différents pour le chiffrement des parties

du corps d’un message SOAP. Ces quatre algorithmes sont : AES-128 (algorithme utilisé par défaut),

AES-192, AES-256 et TripleDES. Ainsi, nous considérons, à titre d’exemple, le scénario S4 permettant

d’offrir l’authentification forte et la confidentialité du corps du message. En se basant sur ce scénario,

nous évaluons les performances de la négociation (temps moyen de négociation et taille moyenne des

messages) en jouant sur l’algorithme de chiffrement utilisé dans l’offre de la confidentialité (Tableau 6-3).

Type de sécurité Temps moyen de

négociation

Taille moyenne

des messages

Authentification forte + Chiffrement (cbc-3des) 170,91 ms 9183 octets

Authentification forte + Chiffrement (cbc-aes-128) 164,16 ms 9235 octets

Authentification forte + Chiffrement (cbc-aes-192) 164,37 ms 9235 octets

Authentification forte + Chiffrement (cbc-aes-256) 164,86 ms 9235 octets

Tableau 6-3 : Impact sur les performances suivant l’algorithme de chiffrement

6.4.2.4.1 Evaluation du temps moyen de négociation

Pour évaluer le temps de négociation en fonction de l’algorithme utilisé dans le chiffrement, nous

réalisons un ensemble de 1000 tests pour chaque type de sécurité en utilisant toujours la même plateforme.

Les résultats de ces tests, présentées dans le Tableau 6-3, montrent que le temps moyen de négociation est

quasiment le même pour les algorithmes AES-128, AES-192 et AES-256 (entre 164 ms et 165 ms), et qu’il

est très légèrement supérieur dans le cas de l’utilisation de l’algorithme TripleDES (environ 171 ms).

6.4.2.4.2 Evaluation de la taille moyenne des messages

Pour mesurer la taille des messages de type Negotiate échangés entre la SI et la SF, nous utilisons

toujours l’outil SOAP Monitor. Les résultats des mesures de la taille moyenne des messages montrent que

cette taille est la même (égale à 9235 ms) lorsqu’on fait appel à un des algorithmes suivants : AES-128,

AES-192 et AES-256. Ceci est dû au fait que le taille du résultat du chiffrement utilisant l’algorithme AES

ne dépend pas de la longueur des clés utilisées (128, 192 ou 256 bits). En revanche, cette taille varie

légèrement, passant à 9183 octets, lorsque l’algorithme TripleDES est utilisé.

Ainsi, nous pouvons en conclure que le choix de l’algorithme de chiffrement, utilisé dans l’offre de la

confidentialité aux flux de négociation SLNP, influe très peu sur les performances du protocole SLNP.

Par conséquent, le choix de l’algorithme à utiliser n’a, quasiment, pas d’impact sur les performances.

6.4.3 Résumé

Dans la section 6.4, nous avons décrit la procédure qui nous a permis d’implémenter la sécurité du

protocole SLNP au niveau « Application ». Ensuite, l’impact de cette sécurité sur les performances de la

négociation en fonction des services de sécurité offerts a été évalué. Ceci nous a permis de conclure que le

coût de la sécurité dépend en grande partie des ces services. Puis, nous avons évalué le coût de la sécurité

184

en fonction des algorithmes qui peuvent être utilisés dans l’offre d’un service de sécurité. Ces tests

d’évaluation ont permis de conclure que le changement de l’algorithme n’a quasiment pas de conséquences

sur les mesures de performances de la négociation. Nous allons essayer, à présent, de sécuriser la

négociation SLNP aux niveaux « Transport » et « Réseau » afin de pouvoir comparer les trois méthodes de

sécurité (trois niveaux différents) en termes de coût.

6.5 Sécurité du protocole SLNP aux niveaux « Transport » (SSL) et

« Réseau » (IPSec)

Les services de sécurité que nous proposons de fournir au flux de négociation SLNP sont l’intégrité,

l’authentification, la non-répudiation et la confidentialité. Ces services peuvent être assurés par le

protocole SSL/TLS qui permet de sécuriser les flux se fondant sur un protocole de transport fiable au

niveau « Transport » du modèle OSI, ou encore par le protocole IPSec qui peut protéger n’importe quel

type de flux au niveau « Réseau » du modèle OSI. Dans cette section, nous décrivons les implémentations

de SSL et de IPSec que nous avons mises en place afin de pouvoir évaluer les performances du protocole

SLNP lorsqu’il est sécurisé avec ces deux protocoles. Ensuite, nous décrivons les tests qui nous ont permis

de vérifier le bon fonctionnement de ces deux types de sécurité et de mesurer leurs impacts sur les

performances de SLNP. Puis les résultats de ces tests sont présentés et une comparaison entre les trois

types de sécurité (WSS, SSL et IPSec) est établie. Cette comparaison nous permet de choisir le niveau de

sécurité à privilégier lors de la mise en place du protocole sécurisé pour la négociation.

6.5.1 Implémentation du protocole SSL/TLS

Comme nous l’avons vu dans la section 2.5.2.2, le protocole SSL/TLS permet de protéger, d’une

manière transparente, les applications fondées sur le protocole TCP comme le web, le mail (POP, IMAP),

le transfert de fichiers (FTP) ou encore les services web. Ainsi, nous pouvons sécuriser le flux de

négociation échangé entre les entités SLNP en utilisant ce protocole de sécurité. Pour cela, nous

configurons le protocole SSL/TLS au niveau du serveur Tomcat afin de permettre la sécurisation des

requêtes/réponses HTTP.

L’implémentation du protocole SSL/TLS comprend, essentiellement, trois grandes étapes. Lors de la

première étape, il est nécessaire de configurer le(s) serveur(s) Tomcat utilisé(s) par les entités de

négociation afin de supporter le protocole SSL/TLS. En effet, s’il s’agit de tests locaux où les services web

de toutes les entités sont déployés sur un seul serveur d’applications Tomcat, alors il faut modifier la

configuration de ce serveur afin de permettre la sécurisation des échanges impliquant ces services web.

Dans le cas contraire, il s’agit de tests impliquant plusieurs serveurs Tomcat, et il faut donc modifier les

configurations de la totalité de ces serveurs. La modification de la configuration d’un serveur Tomcat

consiste à apporter quelques modifications sur le fichier de configuration (server.xml) comme le montre la

Figure 6-9. Ces modifications ont pour but d’ajouter un connecteur, représenté par l’élément

« Connector », qui permet d’associer SSL à un port donné. Ainsi, les échanges de messages de négociation

peuvent utiliser ce port afin de pouvoir bénéficier du niveau de sécurité qu’il offre. Dans l’exemple de la

Figure 6-9, le connecteur ajouté permet d’associer le protocole de sécurité SSL/TLS au port numéro 8443

qui permet de sécuriser les échanges en utilisant la suite de chiffrement

185

TLS_RSA_WITH_AES_128_CBC_SHA définie à travers l’attribut ‘ciphers’. Le connecteur ajouté

indique, également, deux chemins permettant d’accéder au magasin de certificats du serveur (attribut

‘keystoreFile’) et au magasin de certificats des clients (attribut ‘truststoreFile’). Ce connecteur indique

également les mots de passe permettant d’accéder à ces deux magasins (attributs ‘keystorePass’ et

‘truststorePass’). La deuxième étape consiste à créer des certificats pour toutes les entités de négociation

afin de permettre la réalisation des opérations de cryptographie à clé asymétrique sur lesquelles se fonde le

protocole SSL/TLS. Ensuite, ces certificats sont stockés dans des magasins prévus pour cet effet. La

dernière étape a pour objectif d’assurer que les appels de services web entre les entités de négociation sont

effectués à travers les ports sécurisés. Ainsi, cette étape consiste à apporter des modifications aux

implémentations des différentes entités de négociation ; c’est-à-dire le code Java des applications cliente et

des services web. Il s’agit, en effet, de modifier les adresses URI, permettant à une entité d’invoquer une

autre entité, afin de permettre de passer les appels à travers les ports sécurisés avec SSL/TLS.

<Connector port="8443" maxHttpHeaderSize="8192" debug="0"

maxThreads="150" minSpareThreads="25" maxSpareThreads="75"

enableLookups="false" disableUploadTimeout="true"

acceptCount="100" scheme="https" secure="true"

clientAuth="true" sslProtocol="TLS" SSLEngine="on"

keystorePass="tomcatpass" keystoreFile="webapps/axis/…/tomcatstore.jks"

truststorePass="wss1pass" truststoreFile="webapps/axis/…/wsslstore.jks"

ciphers="TLS_RSA_WITH_AES_128_CBC_SHA" />

Figure 6-9 : Fichier de configuration du serveur Tomcat (server.xml)

6.5.2 Implémentation du protocole IPSec

Le protocole IPSec permet de sécuriser n’importe quel type de flux au niveau de la couche

« Réseau » du modèle TCP/IP (cf. section 2.5.2.1). Ainsi, nous avons, également, utilisé ce protocole dans

la sécurisation du flux de négociation échangé entre les différentes entités SLNP. Pour cela, nous mettons

en œuvre une implémentation du protocole IPSec qui, comme nous l’avons vu dans la section 4.5.2.1, doit

être intégrée au noyau du système d’exploitation. C’est pourquoi nous ne pourrons pas conserver la

plateforme utilisée auparavant pour les tests de sécurité IPSec. En effet, nous avons besoin que chaque

entité SLNP ait une adresse IP différente, car la mise en place de la sécurité IPSec se base sur la notion

d’association de sécurité, caractérisée par un couple d’adresses IP (cf. section 2.5.2.1). Nous avons donc le

choix entre l’utilisation de différentes machines physiques correspondant chacune à une entité de

négociation, ou l’utilisation du mécanisme des systèmes virtuels. Pour réaliser l’implémentation de la

sécurité IPSec, nous avons opté pour le mécanisme de création de systèmes virtuels. Une fois les systèmes

virtuels, représentant les différentes entités, créés, nous avons installé les paquetages « ipsec-tools » et

« racoon » sur chaque entité de négociation. Le premier est utilisé pour gérer la base des politiques de

sécurité (SPD) et celle des associations de sécurité (SAD), tandis que le second met en œuvre le protocole

de gestion de clés IKE pour établir les SA entre les différentes entités. Chaque interaction entre deux

entités impliquées dans une négociation étant sécurisée dans les deux sens, on fait appel à deux

associations de sécurité (une dans chaque sens). Pour cela, nous avons ajouté des entrées dans les bases de

186

politiques de sécurité afin d’indiquer les flux devant être sécurisés et la manière de les sécuriser. Ensuite,

nous avons créé des fichiers de configuration (racoon.conf) afin de spécifier les paramètres de sécurité

IPSec désirés pour une association de sécurité devant être établie entre deux entités. Pour donner une idée

du contenu d’un fichier de configuration, nous présentons une partie de ce fichier dans la Figure 6-10.

path certificate "/etc/racoon/certs";

remote 192.168.1.21 {

exchange_mode main;

certificate_type x509 "wss1cert.pem" "decrypt_wss1key.pem";

verify_cert on;

my_identifier asn1dn;

peers_identifier asn1dn;

proposal {

encryption_algorithm aes;

hash_algorithm sha1;

authentication_method rsasig;

dh_group modp1024;

}

}

Figure 6-10 : Extrait du fichier de configuration IPSec (racoon.conf)

Dans le fichier de configuration d’une entité de négociation (Figure 6-10), nous pouvons distinguer

l’adresse d’une autre entité (‘remote 192.168.1.21’) avec laquelle une association de sécurité doit être mise

en place. Nous pouvons, également, trouver d’autres informations sur les propriétés de sécurité comme le

type (‘certificate_type x509’) et la localisation du certificat employé dans l’authentification, la méthode sur

laquelle se fonde cette authentification (‘authentication_method rsasig’), ainsi que les algorithmes utilisés

pour le hachage (‘hash_algorithm sha1’) et le chiffrement (‘encryption_algorithm aes’).

6.5.3 Tests et résultats

Les tests que nous décrivons dans cette partie visent non seulement à évaluer les performances du

protocole SLNP lorsqu’il est sécurisé avec SSL/TLS et IPSec mais aussi à établir une comparaison des

performances de ce protocole en fonction du type de sécurité mis en place. Ainsi, dans cette section, nous

commençons par décrire la plateforme de tests, puis les tests qui nous ont permis de vérifier le bon

fonctionnement des différents types de sécurité mis en place. Enfin, les résultats des tests effectués sont

présentés et expliqués.

6.5.3.1 Plateforme de tests

La plateforme de tests dont nous avons besoin doit nous permettre d’installer et tester les trois types

de sécurité étudiés (à savoir WSS, SSL/TLS et IPSec) en même temps. C’est pourquoi nous utilisons la

machine qui nous a servi dans tous nos précédents tests, sur laquelle nous créons des systèmes virtuels

représentant les trois entités de négociation (Figure 6-11) pour répondre aux contraintes d’IPSec citées

plus haut (cf. section 6.5.2).

187

Afin de pouvoir créer les trois systèmes virtuels et intégrer une implémentation d’IPSec sur chacun

de ces systèmes virtuels, notre plateforme de tests doit fonctionner sous Linux. En effet, ce système

d’exploitation permet la création de systèmes virtuels grâce aux outils « qemu » et « kqemu » et offre la

possibilité d’implémenter IPSec en utilisant les outils « ipsec-tools » et « racoon ». Une fois les systèmes

virtuels créés et l’implémentation du protocole IPSec mise en place au niveau de chacune des trois entités

de notre plateforme de tests, nous créons un pont de niveau 2 entre chaque couple d’entités SLNP devant

communiquer entre elles. Ces ponts physiques sont créés grâce à l’outil « bridge-utils » également

disponible sur Linux. Ils permettent à chaque système virtuel d’avoir une interface réseau virtuelle. Ainsi,

chacune des trois entités SLNP, installée sur un système virtuel, aura la possibilité de communiquer avec

les autres entités. L’installation d’une entité SLNP sur un système virtuel, nécessite la configuration d’un

serveur d’application Tomcat sur lequel nous déployons le service web de négociation de cette entité ainsi

que la base de données nécessaire à la simulation de la RMF et du registre des SLS (Figure 6-11). Pour les

tests relatifs à la sécurité SSL/TLS, les configurations des serveurs Tomcat des trois entités doivent être

modifiées et les invocations des services web doivent passer via les ports sécurisés (cf. section 6.5.1). Pour

la sécurité WSS, il s’agit de configurer chacune des trois entités comme décrit dans la section 6.4.2.

Figure 6-11 : Plateforme de tests

6.5.3.2 Tests de fonctionnements

6.5.3.2.1 Test de fonctionnement de la sécurité SSL/TLS

Pour pouvoir vérifier le bon fonctionnement de la sécurité SSL/TLS que nous avons mise en place,

nous tacherons de visualiser les échanges entre les trois entités de négociation. Comme nous ne pouvons

utiliser ni TCP Monitor, ni SOAP Monitor pour vérifier la sécurité SSL/TLS, nous avons utilisé le mode

« debug » du serveur Tomcat, ce qui permet de stocker une trace des échanges dans un fichier ayant un

nom sous la forme ‘stdout_yyyymmdd’ qui se trouve dans le dossier des logs du serveur Tomcat ‘logs’.

Ainsi, pour visualiser les échanges, il suffit d’ouvrir ce fichier et d’accéder à son contenu après avoir arrêté

le serveur Tomcat. La consultation des différentes traces des échanges effectués entre les entités de notre

plateforme, nous permet de valider le bon fonctionnement de la sécurisation du protocole SLNP avec

SSL/TLS en vérifiant la conformité du niveau de sécurité perçu avec celui que nous avons mis en place.

188

6.5.3.2.2 Test de fonctionnement de la sécurité IPSec

La vérification du bon fonctionnement de la sécurité IPSec ne peut être effectuée que grâce à l’outil

« TCPdump ». A titre d’exemple, Figure 6-12 représente la description d’une réponse à une requête

transmise par le SF vers la SR. Cette réponse est, ici, retournée par la SR (192.168.1.22) vers la SF

(192.168.1.21), et bénéficie des services de sécurité offerts à la connexion entre ces deux entités. Les

services de sécurité sont offerts grâce au mécanisme ESP du protocole IPsec en mode ‘transport’. Notons

que nous pouvons, également, à tout moment, vérifier les associations de sécurité qui sont établies. Par

exemple, la Figure 6-13 montre le résultat de cette vérification qui confirme la description affichée par

TCPdump. En effet, ce résultat indique qu’une association de sécurité est établie entre la SF (192.168.1.21)

et la SR (192.168.1.22), et spécifie qu’elle utilise le mécanisme ESP du protocole IPSec en mode ‘transport’

pour offrir l’intégrité en utilisant l’algorithme ‘HMAC-SHA1’ et la confidentialité grâce à l’algorithme

‘AES’.

22:25:01.784000 IP (tos 0x0, ttl 64, id 3861, offset 0, flags [none], proto ESP (50), length 120) 192.168.1.22 >

192.168.1.21: ESP(spi=0x002a909f,seq=0x2), length 100

Figure 6-12 : Visualisation des échanges sécurisés avec IPSec (TCPdump)

[root@debian1 racoon]# setkey –D 192.168.1.21 192.168.1.22 esp mode=transport spi=202673949(0x0c148f1d) reqid=0(0x00000000) E: aes-cbc 2ae36032 c299841d af98680c 52d3b768 A: hmac-sha1 2f4e94b4 61ebc0d4 dd8b81ab eccfc407 ba8c2c91 seq=0x00000000 replay=4 flags=0x00000000 state=mature created: Jan 13 18:13:37 2009 current: Jan 13 18:13:43 2009 diff: 6(s) hard: 28800(s) soft: 23040(s) last: Jan 13 18:13:37 2009 hard: 0(s) soft: 0(s) current: 128(bytes) hard: 0(bytes) soft: 0(bytes) allocated: 2 hard: 0 soft: 0 sadb_seq=1 pid=2889 refcnt=0 192.168.1.22 192.168.1.21 esp mode=transport spi=87598874(0x0538a71a) reqid=0(0x00000000) E: aes-cbc 3d076dbf 410a8a60 5669e605 fb56cec6 A: hmac-sha1 cd66873a 70ddc7af b6b2a02c 71418bab 4bd59604 seq=0x00000000 replay=4 flags=0x00000000 state=mature created: Jan 13 18:13:37 2009 current: Jan 13 18:13:43 2009 diff: 6(s) hard: 28800(s) soft: 23040(s) last: Jan 13 18:13:37 2009 hard: 0(s) soft: 0(s) current: 128(bytes) hard: 0(bytes) soft: 0(bytes) allocated: 2 hard: 0 soft: 0 sadb_seq=0 pid=2889 refcnt=0

Figure 6-13 : Exemple d’association de sécurité IPSec

6.5.3.3 Tests d’évaluation des performances en fonction du type de sécurité

Pour évaluer le coût de l’impact de la sécurisation du protocole SLNP avec SSL/TLS et IPsec, nous

mesurons toujours les mêmes paramètres caractérisant les performances du protocole de négociation, à

savoir la taille des messages échangés et le temps de négociation sur une seule passe de négociation. Nous

avons à nouveau réalisé un échantillon de 1000 mesures sur une nouvelle plateforme de tests basée sur des

189

systèmes virtuels. Afin de pouvoir comparer les performances de la négociation en fonction du protocole

de sécurité implémenté, nous effectuons sur cette nouvelle plateforme les mesures de performances pour

les trois types de sécurité que nous avons vus : WSSecurity, SSL/TLS et IPSec.

Afin de comparer les performances de WSS, SSL et IPSec, nous testons les différents protocoles de

sécurité pour quasiment le même niveau de sécurité garantissant l’authentification, l’intégrité et la

confidentialité. Pour cela, nous choisissons des algorithmes et des méthodes très similaires pour chaque

service de sécurité (Tableau 6-4).

Type de sécurité Caractéristiques de sécurité Impact sur les performances

Pas de sécurité Authentification : Nul Intégrité : Nul Confidentialité : Nul

Taille des messages : 4560 octets Temps de négociation : 238 ms

WSS Authentification : certificats Intégrité : SHA1 Confidentialité : AES-128-CBC

Taille des messages: 11846 octets Temps de négociation : 457 ms

SSL Authentification : certificats Intégrité : SHA1 Confidentialité : AES-128-CBC

Taille des messages: 4929 octets Temps de négociation : 243 ms

IPSec (AH + ESP) Authentification : certificats Intégrité : SHA1 Confidentialité : AES-128

Taille des messages: 5040 octets Temps de négociation : 267 ms

Tableau 6-4 : Impact des différents types de sécurité sur les performances de SLNP

6.5.3.3.1 Evaluation du temps moyen de négociation

Figure 6-14 : Temps de négociation en fonction du type de sécurité

Pour chacun de ces quatre scénarios (voir Tableau 6-4), nous réalisons un échantillon de 1000

mesures afin d’évaluer le temps moyen de négociation. Cependant, sur la Figure 6-14, nous ne

représentons qu’un échantillon de 100 mesures afin de mieux visualiser le résultat des mesures réalisées.

Concernant la durée de négociation (Figure 6-14 et Tableau 6-4), nous notons que le temps moyen de

190

négociation calculé pour la sécurité SSL (243 ms) et IPSec (267 ms) est très proche de celui d’une

négociation non sécurisée (238 ms). En fait, l’introduction de la sécurité aux niveaux « Transport » ou

« Réseaux » augmente le temps moyen de négociation par respectivement 2,10 % et 12,18 % ; ce qui est

faible. Toutefois, pour le même niveau de sécurité, le temps moyen de négociation est égal à 457 ms

lorsque la sécurité est assurée grâce à WSS ; ce qui représente une augmentation considérable de 92,02 %.

Ainsi, nous remarquons que les traitements nécessaires dans l’offre de sécurité (chiffrement,

déchiffrement, calcul de la signature, etc.) nécessitent plus de temps quand ils sont exécutés au niveau de

la couche applicative que lorsqu’ils sont effectués au niveau « Transport » ou « Réseau ». Ceci est normal

parce que les traitements effectués au niveau applicatif nécessitent l’exécution de plus de processus et

consomment donc d’avantage de ressources (CPU, mémoire, etc.).

6.5.3.3.2 Evaluation de la taille moyenne des messages

Afin de mesurer et comparer la taille des messages de négociation échangés lors d’une négociation,

nous utilisons l’outil TCPdump permettant de mesurer la taille totale des paquets émis. La Figure 6-15

montre que la taille des paquets échangés en sécurisant avec SSL (4929 octets) et IPSec (5040 octets) est

très proche de celle d’un paquet non sécurisé (4560 octets), et est très inférieure à celle mesurée pour une

sécurité WSS (11846 octets). Ceci peut s’expliquer par le fait que les protocoles IPSec et SSL introduisent

des overheads protocolaires largement inférieurs à ceux introduits par WSS. En effet, IPSec et SSL

nécessitent une phase de négociation, au cours de laquelle les associations de sécurité (IPSec) et les

connexions (SSL) sont établies afin de configurer les paramètres nécessaires aux traitements de sécurité

(algorithmes, clés, etc.). Cependant, ces paramètres sont généralement transmis ou référencés dans les

messages échangés lorsque WSS est utilisé.

Figure 6-15 : Taille des messages en fonction du type de sécurité

A partir des Figures 6-22 et 6-23, nous pouvons constater que le coût de la sécurité IPSec est

légèrement supérieur à celui de la sécurité SSL/TLS. Ceci est dû à l’utilisation des deux mécanismes AH et

ESP pour assurer, respectivement, l’intégrité et la confidentialité dans le cas de la sécurité IPSec.

Cependant, nous aurions pu utiliser uniquement le mécanisme ESP pour assurer ces deux types de service,

mais nous avons opté pour cette configuration, car elle est plus robuste. En effet, l’intégrité offerte par le

mécanisme ESP a une qualité légèrement inférieure, parce qu’elle prend en compte moins de champs de

191

l’entête IP par rapport à celle réalisée en utilisant le mécanisme AH. Bien que recommandée, parce qu’elle

offre une protection plus robuste en termes d’intégrité, l’utilisation simultanée de AH et ESP a un impact

sur les performances de la négociation, plus important que celui qu’on pourrait avoir si on avait utilisé

uniquement le mécanisme ESP pour offrir à la fois l’intégrité et la confidentialité. C’est dans ce contexte

bien précis que nous nous sommes proposé d’étudier l’impact des mécanismes mis en place lors d’une

sécurisation avec IPSec. Pour cela, nous avons mesuré séparément l’impact des mécanismes AH et ESP

sur les performances du protocole de négociation. Les résultats montrent que, pour le même niveau

d’intégrité, les performances sont presque similaires. Par exemple, le temps moyen d’une négociation

sécurisée avec IPSec est égal à 242 ms lorsque AH est utilisé et 254 ms quand ESP est employé.

Notons que, suite à l’utilisation d’une nouvelle plateforme de tests mettant en œuvre plusieurs

systèmes virtuels, nous ne retrouvons pas les mêmes résultats des mesures que ceux que nous avons

obtenus auparavant pour les deux premiers cas (« pas de sécurité » et « sécurité WSS »). A titre d’exemple,

nous considérons le cas d’une négociation non sécurisée se déroulant en une seule passe et impliquant

trois entités : la SI, la SF et la SR. Pour ce scénario, le temps moyen de négociation mesuré est égal à

environ 63 ms dans le cas de tests locaux sur un seul système où tous les services web de négociation sont

déployés sur un seul et même serveur Tomcat. Ce même temps passe à 238 ms lorsqu’il est mesuré grâce à

des tests effectués avec plusieurs systèmes virtuels où chaque service web est déployé sur un serveur

Tomcat propre au système virtuel sur lequel l’entité SLNP correspondante est mise en place.

6.5.4 Fonctionnement de la négociation sécurisée

L’étude de la sécurité du protocole SLNP nous a permis de tirer une très importante conclusion par

rapport à l’impact de la sécurité sur les performances de la négociation. En effet, pour un même niveau de

sécurité, l’impact d’une sécurité offerte au niveau « Application » est beaucoup plus important que celui

d’une sécurité assurée au niveau « Transport » ou « Réseau ». Par conséquent, si nous basons notre choix

sur la performance de la négociation, alors l’utilisation de SSL ou IPSec sera privilégiée pour sécuriser la

négociation. Dans ce cas, l’utilisation de WSS peut être autorisée si les performances de la négociation ne

sont pas prises en considération ou si l’utilisation de SSL ou IPSec est impossible ; lorsque, par exemple,

une ou plusieurs entités n’implémentent pas ces protocoles de sécurité. Or, comme nous l’avons vu dans

la section 2.5.2, la mise en place d’une sécurité IPSec ou SSL nécessite la négociation des paramètres de

sécurité en utilisant, respectivement le protocole IKEv2 ou le protocole de poignée de main. Ceci

implique la dégradation importante des performances de la négociation (durée), à cause des délais

supplémentaires introduits par ces négociations (le protocole IKEv2 ou le protocole de poignée de main).

Par conséquent, nous privilégions l’utilisation de WSS lorsque la sécurité de la négociation SLNP est

requise.

Pour permettre aux entités SLNP de négocier un niveau de service de différentes manières (non

protégée ou protégée), nous choisissons d’équiper chaque entité de négociation de six services web de

négociation correspondant aux six niveaux de sécurité introduits dans la section 6.4.2.3. Etant donné que

chaque service web est distingué par une adresse URI permettant de l’invoquer, le choix d’un niveau de

sécurité est réalisé en invoquant le service web qui correspond au niveau de sécurité souhaité. Maintenant,

pour automatiser la sécurisation de la négociation SLNP, nous introduisons un nouveau module, que nous

appellons NSDP (Negotiation Security Decision Point), au sein de la couche de négociation d’un terminal

192

(Figure 6-16). Ce module a pour objectif de prendre, tout d’abord, une décision par rapport à la sécurité

de la négociation. Tout comme les décisions relatives à la négociation, cette décision dépend des

paramètres du profil utilisateur. Elle dépend, plus précisément, des préférences de l’utilisateur en matière

de sécurité de la négociation, que nous ajoutons au profil de l’utilisateur, et des caractéristiques du réseau

d’accès. En effet, si l’utilisateur exige une sécurité pour les flux de ses négociations qui ne peut pas être

satisfaite par le réseau d’accès, alors la décision à prendre est de sécuriser la signalisation SLNP avec WSS.

Ensuite, si cette sécurité est requise, alors la composante NSDP doit, également, sélectionner le niveau de

sécurité à mettre en place. Le choix du niveau de sécurité se fait en fonction des préférences de l’utilisateur

pour les services de sécurité (l’authentification, l’intégrité et la confidentialité). Puis, la composante NSDP

doit informer l’entité de négociation (SE) de la décision prise et du choix effectué afin que cette dernière

puisse invoquer le service web correspondant au choix effectué. Pour assurer une sécurité homogène de

bout en bout pour la négociation SLNP, les appels récursifs aux services web de négociation doivent

s’effectuer en se conformant au niveau sélectionné par le terminal qui a initié la négociation.

Figure 6-16 : Nouvelle structure de la couche de négociation

Remarque : L’un des principaux avantages de WSS est la granularité qu’il peut offrir. En effet, si nous

avons besoin de sécuriser un message SOAP traversant plusieurs WS en le gardant confidentiel pour

certains de ces WS, mais pas pour d’autres, WSS est la seule solution qui permet de répondre à ce besoin.

Concernant l’implémentation de notre protocole de négociation, nous avons supposé que nous étions

dans un environnement de confiance où toutes les entités de négociation coopèrent afin de se mettre

d’accord sur un niveau de service. Ainsi, la négociation à été conçue de manière à ce que les messages

soient transmis d’une entité vers une autre via des appels récursifs. Dans ce cas de figure, la granularité

qui peut être fournie par WSS ne peut pas être exploitée par le protocole. Cependant, dans un

193

environnement hostile, nous pouvons avoir besoin de garder confidentiel entre les deux extrémités de la

négociation une partie du SLS négocié, à savoir les paramètres de sécurité. En effet, les entités

intermédiaires de négociation n’ont pas besoin d’accéder à ces paramètres puisque la sécurité de la

communication sera établie de bout en bout. Pour cela, la granularité que fournissent les standards de

sécurité WSS devient indispensable. Nous devrons alors revoir l’implémentation du protocole SLNP. En

effet, au lieu d’effectuer des appels récursifs entre les entités adjacentes, les messages de négociation

générés par l’entité initiale partiront directement à destination de l’entité finale, en passant par les entités

intermédiaires.

6.6 Conclusion

Dans le précédent chapitre, nous avons vu comment un utilisateur peut participer à la négociation

d’un SLS pour les services qu’il utilise. Si cet utilisateur est connecté via un réseau d’accès sans fil non

sécurisé, alors il risque de se voir établir un SLS différent de celui qu’il a demandé. En effet, la requête de

négociation envoyée par cet utilisateur peut être interceptée et modifiée par un autre utilisateur ou une

autre entité. Dans ce contexte, il devient très important de considérer les aspects de sécurité du flux de

négociation lui-même.

Dans ce chapitre, nous avons étudié la sécurité du protocole SLNP. Ainsi, la première partie de ce

chapitre a été consacré à l’identification des attaques possibles qui peuvent nuire au bon déroulement

d’une négociation SLNP. Ceci a permis de définir les services de sécurité devant être offerts au flux de

négociation afin de pallier à ces attaques. Les services de sécurité sont l’authentification, l’intégrité, la non-

répudiation et la confidentialité ; ils peuvent être assurés au niveau « Application », au niveau « Transport »

ou encore au niveau « Réseau ». Ainsi, la deuxième partie de ce chapitre a été réservée à la description des

mécanismes pouvant sécuriser le protocole SLNP. Etant donné que les mécanismes assurant la sécurité

aux niveaux « Transport » et « Réseau », à savoir SSL/TLS et IPSec, ont déjà été décrits dans la section

2.5.2, nous n’avons détaillé dans cette deuxième partie que les standards pouvant être utilisés dans la

sécurisation de la négociation au niveau « Applicatif », notamment le standard WSS. Ces protocoles et

standards de sécurité ont, ensuite, été utilisés afin de protéger la négociation de SLS fondée sur

l’utilisation des services web afin d’évaluer l’impact de ces divers types de sécurité sur les performances de

la négociation. En effet, dans un premier temps, nous implémentons la sécurité WSS avant d’évaluer les

performances de la négociation en fonction de plusieurs scénarios de sécurité que nous avons définis. Les

paramètres que nous avons mesurés afin d’évaluer les performances du protocole SLNP sont le temps de

négociation qui donne une idée sur le délai d’établissement d’un SLS et la taille des messages qui fournit

une indication sur la bande passante nécessaire aux flux de négociation. Dans un second temps, nous

avons implémenté les sécurités SSL/TLS et IPSec et nous avons, également, étudié l’impact de ces

sécurités sur les performances du protocole de négociation. Ceci nous a permis d’établir une comparaison

entre les trois différents types de sécurité (WSS, SSL/TLS et IPSec) et de choisir la solution la mieux

adaptée au protocole SLNP.

194

Chapitre 7

Conclusion et Perspectives

Les défis techniques des réseaux de nouvelle génération sont, essentiellement, la convergence des

services (données, voix et vidéo) et la convergence des réseaux (Internet, téléphone et diffusion) autour du

mode paquet. Ainsi, l’architecture de ces réseaux est fondée sur une décomposition spatiale qui distingue

deux types de réseaux, à savoir le réseau de cœur basé sur IP et les réseaux d’accès utilisant de nombreuses

technologies comme le Wi-Fi, le WiMax, l’UMTS, le Satellite, etc. L’utilisation d’IP dans le réseau de cœur

implique le besoin de mettre en place des mécanismes dans le but de gérer la QoS ainsi que la sécurité que

les services peuvent nécessiter. Ces besoins peuvent être garantis en utilisant un protocole de signalisation

qui permet la négociation de niveau de service entre les différents domaines impliqués dans le transport

d’un service.

Dans cette thèse, nous nous sommes basés sur un protocole de signalisation de QoS (le protocole

SLNP) afin de fournir une solution permettant à un client fixe ou mobile de négocier d’une manière

dynamique, automatique et sécurisée, le niveau de service correspondant à ses besoins en matière de QoS

et de sécurité. Dans ce qui suit, nous résumons les principales contributions qui ont été détaillées dans

cette thèse et, enfin, nous introduisons quelques perspectives intéressantes qui peuvent être explorées dans

des travaux futurs.

7.1 Principales contributions

Dans le contexte de la garantie de l’offre de service dans les réseaux de nouvelle génération, notre

objectif était de définir une solution qui permet d’assurer la qualité de service ainsi que la sécurité pour des

clients qui peuvent être fixes ou mobiles. Les principales contributions sont :

• Un protocole de négociation conjointe de la sécurité et de la qualité de service : Cette première

contribution consiste à associer la sécurité à la QoS négociée avec le protocole SLNP. Pour cela, une

étude des protocoles de sécurité a été réalisée afin de déterminer les paramètres de sécurité devant être

introduit dans le niveau de service (SLS : Service Level Specification) négocié via SLNP. Ensuite, le

nouveau fonctionnement de la négociation, portnat sur la sécurité et la QoS, a été spécifié et son

implémentation a été réalisée afin d’évaluer les performances de la nouvelle version du protocole.

• Une étude de l’impact de la sécurité sur la QoS : Afin de pouvoir considérer l’impact de la

sécurité sur la QoS lors d’une négociation de niveau de service, les différents acteurs de cette

195

négociation doivent disposer d’une estimation de cet impact. Ainsi, une étude des travaux traitant de

cette problématique a été réalisée. Cette étude nous a permis d’identifier les différents paramètres de

QoS impactés par la sécurité, ainsi que les différents facteurs qui peuvent influencer l’importance de

cet impact. Ainsi, nous avons réalisé des tests qui ont permis d’évaluer l’impact de différents types de

sécurité (TLS, DTLS, IPSec, TLS sur IPSec, et DTLS sur IPSec) sur les paramètres de QoS (délai,

gigue et bande passante) pour deux types de flux, à savoir TCP et UDP.

• Une garantie de QoS et de sécurité pour un service NGN (IPTV) : L’architecture IPTV permet

un accès universel au service DVB-T à travers les réseaux Wi-Fi pour des terminaux hétérogènes et

mobiles. Cette architecture est découpée essentiellement en deux segments ; le réseau de cœur où les

flux IPTV sont transportés en multicast, et le réseau d’accès ou une adaptation est réalisée grâce à

l’outil UED défini par le standard MPEG-21. Afin de garantir la QoS et la sécurité pour les terminaux

sans fil, nous proposons de gérer ces deux aspects en utilisant deux mécanismes différents mais

complémentaires. En effet, nous avons spécifié une méthode de négociation qui permet au protocole

SLNP de garantir l’offre de service (la QoS et la sécurité) dans le réseau de cœur en assurant la

négociation de niveau de service pour un groupe multicast. Quant à l’offre de service dans le réseau

d’accès, nous avons introduit des paramètres liés à la sécurité dans le profil UED afin de permettre

une adaptation du flux IPTV qui prend en compte, non seulement la QoS, mais aussi la sécurité.

• Une adaptation du protocole SLNP aux environnements NGN : L’architecture de la négociation

SLNP, telle qu’elle a été définie, ne permet ni la participation d’un client à la négociation, ni la gestion

de son éventuelle mobilité. Ainsi, nous avons proposé d’adapter le protocole SLNP aux

environnements NGN en donnant la main au client pour négocier, par lui-même, le niveau de service

qu’il lui faut. Pour cela, nous avons défini un profil utilisateur qui doit être constitué au niveau du

terminal du client. Ensuite, nous avons défini comment ce profil peut être utilisé afin de spécifier le

niveau de service à négocier, et comment le standard MIH peut permettre de prendre en compte la

mobilité du client dans la négociation. Puis, nous avons spécifié la composition de la couche de

négociation qui doit être introduite au niveau du terminal d’un client afin de permettre, non seulement

la participation de ce client à la négociation, mais aussi l’automatisation de la totalité du processus de

négociation. Enfin, l’implémentation de cette nouvelle approche de négociation a été réalisée afin de

pouvoir évaluer les nouvelles performances de la négociation.

• Une négociation de niveau de service sécurisée : La négociation assurée par le protocole SLNP

peut être attaquée par un tiers malveillant dans le but de désactiver la sécurité requise par le service

offert, modifier le niveau de service déjà établi, etc. Pour pallier à ces attaques, nous devons sécuriser

la négociation SLNP, ceci revient à sécuriser les messages SOAP échangés entre les différentes parties

de la négociation. Ainsi, nous avons étudié la sécurité des messages SOAP afin d’identifier les

protocoles et standards de sécurité qui permettent la protection de ces messages. Ensuite, la sécurité

de la négociation a été implémentée en utilisant le standard WSS et les protocoles SSL et IPSec. Ceci

nous a permis de mettre en œuvre la sécurité à trois niveau différents (« Application », « Transport » et

« Réseau ») afin d’évaluer leurs impacts respectifs sur les performances du processus de négociation.

Enfin, nous avons décrit les modifications qu’on peut apporter à l’implémentation du protocole

SLNP, dans le but de faciliter la prise de décision relative à la sécurité de la négociation, et optimiser le

choix du protocole de sécurité à utiliser lorsque la protection de cette négociation est requise.

196

7.2 Perspectives et nouveaux défis

Les travaux exposés dans cette thèse constituent une tentative pour contribuer aux efforts fournis

afin d’assurer une offre de service garantissant à la fois la QoS et la sécurité tout en préservant la mobilité

des utilisateurs. Cependant, ces travaux ne permettent pas de répondre à toutes les problématiques posées

dans le contexte de la garantie de l’offre de service dans les réseaux NGN. Plusieurs perspectives peuvent

être identifiées pour améliorer le fonctionnement et l’implémentation du protocole SLNP. Nous

détaillons, ci-dessous, un certain nombre de ces perspectives.

• Extension des tests d’estimation de l’impact de la sécurité sur la QoS : Les tests réalisés dans le

cadre de l’estimation de l’impact de la sécurité sur la QoS ne couvrent pas toutes les possibilités de

sécurisation. Ainsi, nous pouvons étendre nos mesures afin de couvrir toutes les combinaisons

possibles entre services de sécurités offerts, protocoles de sécurité mis en œuvre et algorithmes

utilisés. Par ailleurs, il faudra, également, réaliser d’autres séries de mesures afin d’évaluer cet impact

en fonction des performances des machines effectuant les traitements de la sécurité (capacité CPU,

capacité mémoire, etc.).

• Évaluation des performances de la gestion de l’offre de service sur la plateforme IPTV : Dans

cette thèse, nous avons réussi à définir un mécanisme permettant d’assurer un niveau du service de

bout couvrant la QoS et la sécurité dans une architecture IPTV divisée en deux segments où chacun

est caractérisé par son propre mode de transmission. Ce mécanisme doit être implémenté sur une

plateforme IPTV réelle afin d’évaluer ses performances effectives, notamment le temps nécessaire à la

mise en place d’un niveau de service de bout en bout.

• Évaluation du protocole de négociation dans des conditions réelles : L’adaptation du protocole

SLNP aux réseaux NGN a été implémentée et testée sur notre plateforme de démonstration. Le

succès de ces tests permet de valider notre approche et de montrer son utilité dans les réseaux NGN.

Cependant, lors de la réalisation de ces tests, les interactions avec l’application, le terminal et le

standard MIH ont été simulées grâce à une base de données. Ainsi, il serait bon d’évaluer les

performances du protocole SLNP dans des conditions réelles afin de mesurer l’impact de ces

différentes interactions sur le temps de négociation.

• Validation formelle de protocole de négociation : Pour tester le bon fonctionnement du protocole

SLNP, nous avons du élaborer un certain nombre de scénarios de tests. Ces scénarios, ne pouvant

être exhaustifs, un début de validation formelle avec les FSM (Finite State Machine) et les MSC

(Message Sequence Chart) a été réalisé. Néanmoins, l’utilisation d’un outil de validation tel que SPIN

(Simple Promela INterpreter) avec son langage de modélisation Promela permettrait de tester d’une façon

formelle un certain nombre de propriétés comme le non blocage, le comportement cyclique pour le

protocole SLNP.

• La scalabilité des entités de négociation : Les tests de performances du protocole SLNP,

présentés dans cette thèse, ont été effectués sur des entités impliquées dans une seule négociation ;

c’est-à-dire qu’à un instant donné, chaque entité de négociation a une seule demande à traiter. Ainsi, il

serait très intéressant, dans le l’avenir, d’évaluer la scalabilité du protocole SLNP.

197

• Optimisation des stratégies de négociation : Les stratégies auxquelles les entités de négociation

font appel sont très simples, et peuvent être améliorées. En effet, nous pouvons définir un ensemble

de stratégies plus élaborées en se fondant sur une étude approfondie des types de stratégies qui

peuvent exister. Ensuite, nous pouvons tester l’ensemble des stratégies définies sur notre plateforme

de démonstration afin d’évaluer leurs impacts sur les performances de la négociation, notamment la

durée. Les résultats de ces tests nous aideront, par la suite, à sélectionner les stratégies qui permettent

d’optimiser le taux d’aboutissement à un accord tout en minimisant la durée que nécessite un

processus de négociation.

• Garantie de la continuité de service pour les utilisateurs mobiles : Dans le cadre de l’adaptation

du protocole de négociation aux environnements NGN, nous avons proposé d’utiliser le standard

MIH. Ce standard se propose de réaliser des handovers horizontaux et verticaux tout en garantissant

la continuité de service. Cependant, lorsque l’offre de ce service nécessite la mise en place d’un accord

sur ce niveau de service, le temps nécessaire à un processus de négociation SLNP peut constituer un

obstacle à la garantie de la continuité de service. Une des solutions que nous pouvons proposer pour

surmonter ce problème, est la négociation à l’avance. En effet, nous pourrons ajouter une certaine

« intelligence » au niveau du terminal du client mobile et du réseau global afin de déterminer les

réseaux d’accès voisinant la zone où se trouve le terminal mobile et dont la probabilité d’utilisation est

très importante. Ensuite une négociation de niveau de service à l’avance peut être effectuée afin de

réserver les ressources de QoS requises et de mettre en place les mécanismes de sécurité nécessaires, à

l’avance. De plus, pour automatiser la procédure de négociation à l’avance, nous pourrons introduire

des paramètres relatifs à la mobilité (degré de mobilité, vitesse, sens de déplacement, etc.) dans le

profil utilisateur sur lequel la négociation a été fondée.

198

Références

[ACC 02] Accellent group, “La qualité de service pour la voix sur IP : Principe et Assurances”, White paper, Accellent Group, 2009.

[ALE 06] J. Alexander, D. Box, L.F. Cabrera, D. Chappel, D. Orchard, J. Shewchuk, “Web Services Transfer”, W3C, 2006.

[ANC 05] Ambient Networks Consortium, “Connecting Ambient Networks – Architecture and Protocol Design (Release 1)”, Delivrable D.3.2, March 2005.

[AND 01] L. Andersson, P. Doolan, N. Feldman, A. Fredette, B. Thomas, “RFC 3036: LDP Specification”, Request for Comments, IETF, January 2001.

[ARC 07] Arcade Project, http:/www-rp.lip6.fr/arcade

[ASF 06] Apache Software Foundation, “The TCP Monitor Tutorial”, The Apache Software Foundation, 2006.

[ASF 09] Apache Software Foundation, “The Apache WSS4J”, The Apache Software Foundation, 2009.

[AWD 01] D. Awduche, L. Berger, D. Gan, T. Li, V. Srinivasan, G. Swallow, “RFC 3209: RSVP-TE - Extensions to RSVP for LSP Tunnels”, Request for Comments, IETF, December 2001.

[AXI 09] Apache Axis, http://ws.apache.org/axis

[BAK 95] A. Bakre and B. R. Badrinath, “I-TCP: indirect TCP for mobile hosts”, IEEE International Conference on Distributed Computing Systems, Vancouver, Canada, pp. 136 143, May 30 - June 2, 1995.

[BAR 08] M. Bartel, J. Boyer, B. Fox, B. Lamacchia, E. Simon, “XML Signature Syntax & Processing (2nd Edition)”, Recommandation W3C, June 2008.

[BAU 04] M. Baugher, D. McGrew, M. Naslund, E. Carrara, K. Norrman, “RFC 3711: The Secure Real-time Transport Protocol (SRTP)”, Request for Comments, IETF, March 2004.

[BEL 02] T. Bellwood, L. Clément, D. Ehnebuske, A. Hately, “Universal Description, Discovery and Integration (UDDI) specification”, Technical report, OASIS Committee, July 2002.

[BEN 00] T. Ben, P. Chimento, “QBone Bandwidth Broker Architecture”, The QBBAC Requirements document Version 0.7, June 2000.

[BEN 03] B. Benmammar, T.M.T. Nguyen, G. Pujolle, V. Yelmaz, “Definition d’un SLA/SLS”, IP-SIG/LIV/1, Livrable Projet RNRT IP-SIG, Décembre 2003.

[BEN 06] B. Benmammar, F. Krief, “Resource Management for End-to-End QoS in a Mobile Environment”, The 2nd IEEE International Conference On Wireless and Mobile Computing, Networking and Communications (WiMob 06), Montréal, Canada, June 2006.

[BER 00] Y. Bernel and al., “RFC 2998: A framework for Integrated Services Operation over DiffServ Networks”, Request for Comments, IETF, November 2000.

[BER 05] T. Berners, R. Fielding, L. Masinter, “RFC 3986 : Uniform Resource Identifiers (URI): Generic Syntax”, Request for Comments, IETF, 2005.

[BIR 01] P.V. Biron, and al., “XML Schema Part 2: Datatypes”, W3C Recommendation, May 2001.

[BLA 98] S. Blake, D. Black, M. Carlson, E. Davies, Z. Wang, W. Weiss, “RFC 2475: An Architecture for Differentiated Services”, Request for Comments, IETF, December 1998.

[BLU 98] L. Blunk, J. Vollbrecht, “RFC 2284: PPP Extensible Authentication Protocol (EAP)”, Request for Comments, IETF, March 1998.

[BOU 05] A. Boukerche, “Handbook of Algorithms and Protocols for Wireless and Mobile Networks”, Chapman CRC/Hall Publisher, 2005.

[BOM 02] K. Boman, G. Horn, P. Howard, V. Niemi, “UMTS Security”, IEEE Communication Engineering Journal – Special issue on Telecommunications security, October 2002.

[BOO 04] D. Booth, and al., “Web Services Architecture”, W3C Note, February 2004.

199

[BOR 05] M. Borsc, H. Shinde, “Wireless Security and Privacy”, Proceedings of ICPWC 2005, IEEE International Conference on Personal Wireless Communications, pp: 424 – 428, January 2005.

[BOS 05] S. Bosh, G. Karagiannis, A. McDonald, “NSLP for Quality of Service Signaling”, IETF Draft, draf-ietf-nsis-qos-nslp-06.txt, Work in Progress, February 2005.

[BOX 07] D. Box, and al., “Simple Object Access Protocol (SOAP) 1.2”, W3C Note, April 2007.

[BOY 00] J. Boyle, R. Cohen, D. Durham, S. Herzog, R. Raja, A. Sastry, “RFC 2749: COPS Usage for RSVP”, Request for Comments, IETF, January 2000.

[BRA 08] T. Bray and al., “Extensible Markup Language (XML) 1.0 (Fifth Edition), W3C Recommendation, November 2008.

[BRA 94] R. Braden, D. Clark, S. Shenker, “RFC 1633: Integrated Services in the Internet Architecture: an Overview”, Request for Comments, IETF, June 1994.

[BRA 97] R. Braden, L. Zhang, S. Berson, S. Herzog, S. Jamin, “RFC 2205: Resource ReSerVation Protocol (RSVP) - Version 1 Functional Specification”, Request for Comments, IETF, September 1997.

[BRA 97] R. Braden, L. Zhang, “RFC 2009: Resource ReSerVation Protocol (RSVP) -- Version 1 Message Processing Rules”, Request for Comments, IETF, September 1997.

[BRO 96] K. Brown and S. Singh, “M-UDP: UDP for mobile cellular networks”, Computer Communication Review, vol. 26, no. 5, pp. 60 78, October 1996.

[CAD 03] Cadenus Project, “Creation and Deployment of End-User Services in Premium IP Networks”, July 2003.

[CAM 02] G. Camarillo, W. Marshall, “RFC 3312: Integration of Resource Management and SIP”, Request for Comments, IETF, October 2002.

[CAN 05] S. Cantor, J. Kemp, R. Philpott and E. Maler, “Assertions and Protocols for the OASIS Security Assertion Markup Language (SAML) V2.0”, OASIS Standard, March 2005.

[CHA 07] M.A. Chalouf, N. Mbarek, F. Krief, “Utilisation des Services Web dans la négocation du niveau de service”, 8èmes Journées Doctorales en Informatiques et Réseaux, JDIR’2007, Marne la Vallée, France, Janvier 2007.

[CHE 02] J. C. Chen, A. McAuley, S. Sarangan, and al., “Dynamic Service Negotiation Protocol”, draft-ietf-dsnp-01, December 2002.

[CHE 02] J. C. Chen, and Al., “Dynamic Service Negotiation Protocol (DSNP) and Wireless DiffServ”, Proceeding ICC, New York, NY, pp. 1033-1038, April 2002.

[CHE 07] S. Chen, J. Zic, K. Tang, D. Levy, “Performance Evaluation and Modeling of Web Services Security”, IEEE International Conference on Web Services ICWS’07, Salt Lake City, U.T. 2007

[CHR 01] E. Christensen, and al., “Web Services Description Language (WSDL) 1.1”, W3C Note, March 2001.

[CIS 06] Cisco Systems, “Voice Over IP - Per Call Bandwidth Consumption”, 2006.

[CIS 09] Cisco Systems, “Le premier fournisseur mondial de solutions réseaux pour Internet”, 2009.

[CUR 06] K. Curran, “Wi-Fi Security”, BookSurge Publishing, 2006.

[DAR 04] M. D’Arienzo, A. Pescape, and G. Ventre, “Dynamic Service Management in Heterogeneous Networks”, Journal of Network ans Systems Management Vol. 12, September 2004.

[DEC 00] J. De-Clerc, P. De-Schrijver, and Al., “PPP DiffServ SLA Negotiation”, IETF Draft, March 2000.

[DEE 91] S. Deering, “RFC 1256: ICMP Router Discovery Messages”, Request for Comments, IETF, September 1991.

[DIE 06] T. Dierks, E. Rescola, “RFC 4346: The Transport Layer Security Protocol Version 1.1”, Request for Comments, IETF, April 2006.

[DIM 02] M. Dimitrios, “Network QoS needs of Advanced Internet Applications”, Internet2 QoS Working Group, omputer Science Departement of London, November 2002.

[DJA 08] I. Djama, T. Ahmed, H. Nafaa, R. Boutaba, “Meet In the Middle Cross-Layer Adaptation for Audiovisual Content Delivery” in the IEEE Transactions on Multimedia, Vol. 10, Issue 1, pp. 105-120, January 2008.

[DOB 96] D. Dobler, D.Burt, “Purschasing and Supply Management”, McGraw Hill, 6th Edition, 1996.

200

[DRO 03] R. Droms, J. Bound, B. Volz, T. Lemon, C. Perkinz, M. Carney, “RFC 3315: Dynamic Host Configuration Protcol for IPv6”, Request for Comments, IETF, July 2003.

[DRO 97] R. Droms, “RFC 2131: Dynamic Host Configuration Protcol”, Request for Comments, IETF, March 1997.

[DUF 07] S. Duflos, B. Kervella, V. C. Gay, “Considering Security and Quality of Service in SLS to improve Palicy-based Management of Multimedia Services”, Proceedings of the sixth Internationam Conference on Networking (ICN’07), 2007.

[DUR 00] D. Durham, J. Boyle, R. Cohen and al., “RFC 2748: The COPS Protocol”, Request for Comments, IETF, January 2000.

[DUT 04] A. Dutta, S. Madhani, W. Chen, “Fast-handoff Schemes for Application Layer Mobility Management”, Proceedings of the 16th Annual IEEE International Symposium on Personal Indoor and Mobile Radio Communications (PIMRC), Spain, 2004.

[DVB 09] DVB – Digital Video Broadcasting Web Site http://www.dvb.org

[EGE 94] K. Egevang, P. Francis, “RFC 1631: The IP Network Address Translator (NAT)”, Request for Comments, IETF, May 1994.

[ETS 05] European Telecommunications Standards Institute, ETSI ES 282 001, “Telecommunications and Internet converged Services and Protocols for Advanced Networking (TISPAN); NGN Functional Architecture Release 1”, August 2005.

[EUR 01] Eurescom, “Inter-operator interfaces for ensuring end-to-end IP QoS: Specification of Inter-domain Quality of Service Mnagement Interfaces” rapport de projet Eurescom P1008, Mai 2001.

[FAL 00] K. Fall, K. Varadhan, “The network Simulator ns-2 Manual (formerly ns Notes and Documentation)”, August 2000,

[FEH 99] G. Feher and al., “ Boomerang – A simple Protocol for Resource Reservation in IP Networks”, IEEE Workshop on QoS Support for Real-Time Internet Applications, Vancouver, Canada, June 1999.

[FRE 08] P. Fremantle, S. Patil, “Web Services Reliable Messaging”, Specification OASIS, 2008.

[FRE 08] P. Fremantle, S. Patil, “Web Services Reliable Messaging Policy Assertion (WS-RM Policy)”, Specification OASIS, 2008.

[GOD 01] D. Goderis and Al., “Service Level Specification Semantics, Parameters and Negotiation Requirements”, IETF Internet draft, draft-tequila-sls-01.txt, June 2001.

[GOD 03] D. Goderis, D. Griffin, C. Jacquenet, G. Pavlou, “Attributes of a service level specification template”, draft-tequila-sls-03, October 2003.

[GRO 02] D. Grossman, “RFC 3260: New Terminology and Clarifications for DiffServ”, Request for Comments, IETF, April 2002.

[GUD 06] M. Gudgin, M. Hadley, T. Rogers, U. Yalcinalp, “Web Service Addressing Specification 1.0 – WSDL Binding”, W3C, 2006.

[GUD 06] M. Gudgin, M. Hadley, T. Rogers, U. Yalcinalp, “Web Service Addressing Specification 1.0 – Core”, W3C, 2006.

[GUD 06] M. Gudgin, M. Hadley, T. Rogers, U. Yalcinalp, “Web Service Addressing Specification 1.0 – SOAP Binding”, W3C, 2006.

[HAA 97] Z. J. Haas and P. Agrawal, “Mobile-TCP: an asymmetric transport protocol design for mobile systems”, IEEE ICC, Montreal, Canada, pp. 1054 1058, June 8 - 12, 1997.

[HAN 00] M. Handley, C. Perkins, E. Whelan, “RFC: 2974 Session Announcement Protocol”, Request for Comments, IETF, October 2000.

[HAN 05] R. Hancock, G. Karagiannis, J. Loughney, S. Van den Bosch, “RFC 4080: Next Steps in Signaling (NSIS): Framework”, Request for Comments, IETF, June 2005.

[HAN 06] M. Handley, V. Jacobson, C. Perkins, “RFC 4566: Session Description Protocol (SDP)”, Request for Comments, IETF, July 2006.

[HAR 98] D. Harkins, D. Carrel, “RFC 2409: The Internet Key Exchange (IKE)” Request for Comments, IETF, November 1998.

201

[HEI 99] J. Heinanen, F. Baker, W. Weiss, J. Wroclawski, “RFC 2597: Assured Forwarding PHB Group”, Request for Comments, IETF, June 1999.

[HPI 09] The Hping tool, http://www.hping.org/

[HSC 04] Herve Schauer Consultant, “SSLTunnel” HSC Consultants en sécurité informatique, September 2004.

[IEE 03] IEEE 802.11g, IEEE Standard for Information technology—Specific requirements—Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) specifications—Amendment 4: Further Higher-Speed Physical Layer Extension in the 2.4 GHz Band, 2003.

[IEE 04] IEEE P802.11X, “IEEE Standard 802.1X : IEEE Standard for Local and Metropolitan Area Networks: Port-Based Network Access Control”, LAN MAN Standards Committee of the IEEE Computer Society, November 2004.

[IEE 04] IEEE P802.11i, “IEEE Standard 802.11i : Wireless LAN Medium Access Control and Physical Layer specifications - Medium Access Control Security Enhancements”, LAN MAN Standards Committee of the IEEE Computer Society, June 2004.

[IEE 07] IEEE P802.11n_D3.00, Approved Draft Standard for Information Technology-Telecommunications and information exchange between systems--Local and metropolitan area networks--Specific requirements-- Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) specifications: Amendment 4: Enhancements for Higher Throughput, Sep 2007.

[IEE 08] IEEE P802.21/D10.0, “Draft Standard for Local and Metropolitan Area Networks: Media Independent Handover Services”, LAN MAN Standards Committee of the IEEE Computer Society, April 2008.

[IEE 99] IEEE 802.11, IEEE Standards for Information Technology -- Specific Requirements -- Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications, Edition (ISO/IEC 8802-11: 1999), 1999.

[IEE 99] IEEE 802.11a, (8802-11:1999/Amd 1:2000(E)), IEEE Standard for Information technology—Specific requirements—Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) specifications—Amendment 1: High-speed Physical Layer in the 5 GHz band, 1999.

[IEE 99] IEEE 802.11b Supplement to 802.11-1999, Wireless LAN MAC and PHY specifications: Higher speed Physical Layer (PHY) extension in the 2.4 GHz band, 1999.

[IMA 02] T. Imamura, B. Dillaway, E. Simon, “XML Encryption Syntax and Processing”, Recommandation W3C, Décembre 2002.

[IPE 09] The Iperf tutorial, http://openmaniak.com/fr/iperf.php

[ISO 04] ISO/IEC TR21000-1:2004, “Information technology – Multimedia Framework (MPEG-21) – Part 1: Vision, Technologies and Strategy”, 2004.

[ISO 07] ISO/IEC TR21000-7:2007, “Information technology – Multimedia Framework (MPEG-21) – Part 7: Digital Item Adaptation”, 2007.

[IST 04] Information Society Technologies, “EUQOS: End-to-end Quality of Service support over heterogeneous networks”, 9/1/2004 – 8/31/2007.

[ITU 04] International Telecommunication Union – Telecommunication standardization sector of ITU, ITU-T Recommendation Y.2001, “General Overview of NGN”, December 2004.

[ITU 04] International Telecommunication Union – Telecommunication standardization sector of ITU, ITU-T Recommendation Y.2011, “General Principles and General Reference Model of Next Generation Network”, October 2004

[ITU 04] International Telecommunication Union – Telecommunication standardization sector of ITU, ITU-T Recommendation Y.1291, “An Architectural Framework for support of Quality of Service (QoS) in Packet Networks”, February 2004.

[ITU 06] ITU-T FG IPTV-R-0014, 2nd FG IPTV meeting, Busan, Korea 16-20 October 2006.

[ITU 95] ITU-T, “Algebraic semantics of Message Sequence Charts”, Recommendation Z.120, Annexe B, April 1995.

[ITU 96] International Telecommunication Union – Telecommunication standardization sector of ITU, ITU-T Recommendation P.800, “Methods for Subjective Determination of Transmission Quality”, August 1996.

202

[IVR 01] C. Ivrine, and al., “Security as a Dimension of Quality of Security Service in Active Service Environments”, Proceedings of the Active Middleware Services Workshop, San Francisco, CA, pp 87-93, August 2001.

[JAC 99] V. Jacobson, K. Nichols, K. Poduri, “RFC 2598: An Expedited Forwarding PHB”, Request for Comments, IETF, June1999.

[JRA 05] Z. Jrad, and al., “A user assistant for QoS negotiation in a dynamic environment using agent technology”, Proceedings of WOCN-05, UAE, March 2005.

[KAM 00] G. Kammer, “Digital Signature Standard (DSS)”, 2000.

[KAU 05] C. Kaufman, “RFC 4306: Internet Key Exchange IKEv2 Protocol”, Requet for Comments, IETF, December 2005.

[KEN 05] S. Kent, K. Seo, “RFC 4301: Security Architecture for Internet Protocol”, Requet for Comments, IETF, December 2005.

[KEN 05] S. Kent, “RFC 4302: IP Authentication Header”, Requet for Comments, IETF, December 2005.

[KEN 05] S. Kent, “RFC 4303: IP Encapsulating Security Payload”, Requet for Comments, IETF, December 2005.

[KIS 07] C. Kiss, “Composite Capability/Preference Profiles (CC/PP): Structure and Vocabularies 2.0”, W3C Working Draft, W3C, April 2007. Disponible: http://www.w3.org/TR/CCPP-struct-vocab2/

[KON 03] J. Kong, M. Gerla, B.S. Prabhu, R. Gadh, “Providing Multi-layer Security Support for Wireless Communications across Multiple Trusted Domains”, UCLA Computer Science Technical Report, University of California, Los Angeles, 2003.

[LIN 09] Linux Online, “Linux: A Free Unix-Type Operating System”, 2009.

[MAN 04] E. Mannie, “RFC 3945: Generalized Multi-Protocol Label Switching (GMPLS) Architecture”, Request for Comments, IETF, October 2004.

[MAN 97] A. Mankin, F. Baker, B. Braden, S. Bradner, M. O`Dell, A. Romanow, A. Weinrib, L. Zhang “RFC 2208 : Resource ReSerVation Protocol (RSVP)Version 1 Applicability Statement Some Guidelines on Deployment”, Request for Comments, IETF, September 1997.

[MAU 98] D. Maughan, M. Schertler, M. Schneider, J. Tumer, “RFC 2408: Internet Security Association and Key Management Protocol (ISAKMP)” Request for Comments, IETF, November 1998.

[MAR 01] E. Marylly, O. Martinot, S. Betgé-Brezetz, “Impact on Telecom Research Focus of Business and Industrial Requirements for Service Level Agreement Management” GRES’01, Marrakech, Maroc, December 2001.

[MBA 06] N. Mbarek, F. Krief, “La négociation Du Niveau De Service Dans Une Architecture Autonome”, 7ème Colloque Francophone de Gestion de REseaux et de Services, GRES’2006, pp. 207-222, Bordeaux, France, Mai 2006.

[MBA 06] N. Mbarek, F. Krief, “Service Level Negotiation in Autonomous Systems Management”, International Conference on Autonomic and Autonomous Systems, ICAS’2006, Silicon Valley, IEEE Computer Society Press, pp. 35-41, July 2006.

[MBA 07] N. Mbarek, F. Krief, M.A. Chalouf, “A Negotiation Protocol Using Web Services in a Self-Management Framework”, IEEE International Global Information Infrastructure Symposium, IEEE GIIS’2007, Marrakech, Morocco, July 2007.

[MBA 07] N. Mbarek, F. Krief, M.A. Chalouf, “Enabling Service Level Negotiation in a Self-Management Framework”, IEEE International Conference on Signal Processing and Communication, IEEE ICSPC’07, Dubai, UAE, November 2007.

[MCG 92] G. McGregor, “RFC 1332: The PPP Internet Protocol Control Protocol”, Request for Comments, IETF, May 1992.

[MES 03] Mescal Project, “Specification of business models and a functional architecture for inter-domain QoS delivery”, Livrable D1.1, Mai 2003.

[MES 04] Mescal Project, “Initial specification of protocols and algorithms for inter-domain SLS management and traffic engineering for QoS-based IP service delivery and their test requirements” Livrable D1.2, Janvier 2004.

[MES 05] Mescal Project, “Management of End-to-end Quality of Service Across the Internet at Large”, 2005.

[MOS 05] T. Moses, “eXtensible Access Control Markup Language (XACML) Version 2.0”, OASIS Standard, February 2005.

203

[NAD 06] A. Nadalin, C. Kaler, R. Monzillo, P. Hallam-Baker, “Web Services Security Specification 1.1”, Spécification OASIS, Février 2006.

[NAD 07] A. Nadalin, M. Goodner, M. Gudgin, A. Barbir, H. Granqvist, “Web Services Secure Conversation Specification 1.3”, Specification OASIS, 2008.

[NAD 08] A. Nadalin, M. Goodner, M. Gudgin, A. Barbir, H. Granqvist, “Web Services Security Policy Specification 1.4”, Specification OASIS, 2008.

[NAD 08] A. Nadalin, M. Goodner, M. Gudgin, A. Barbir, H. Granqvist, “Web Services Trust Specification 1.4”, Specification OASIS, 2008.

[NET 09] The Netperf Home page, http://www.netperf.org/netperf/

[NGU 03] T.M.T. Nguyen, N. Boukhatem, G. Pujolle, “COPS-SLS Usage for dynamic Policy-Based QoS Management over Heterogenous IP Networks”, IEEE Network, May - June 2003.

[NGU 04] T. M. T. Nguyen, N. Boukhatem, “Service Level Negotiation and COPS-SLS Protocol”, Annals of Telecommunications, vol.59, No.1-2, January - February 2004.

[NIC 98] K. Nichols, S. Blake, F. Baker, D. Black, “Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers”, Request for Comments, IETF, December 1998.

[OSS 09] The OpenSSL project, http://www.openssl.org/

[OSW 09] The Openswan project, http://openswan.org/

[OVP 09] The OpenVPN project, http://openvpn.net/

[CAI 02] B. Cain, S. Deering, I. Kouvelas, B. Fenner, A. Thyagarajan, “RFC 3376 : Internet Group Management Protocol, Version 3”, Request for Comments, IETF, Oct 2002.

[PAN 02] P. Pan, “Scalable resource reservation signalling in the internet”, Ph. D. Thesis, Colombia University, 2002.

[PAN 98] P. Pan, H. Schulzrinne, “YESSIR - A simple Reservation Mechanism for the Internet”, Int’l Workshop, Network and Operating System Support for Digital Audio and Video (NOSSDAV), Cambridge, England, July 1998.

[PER 02] C. Perkins, “RFC 3344: IP Mobility Support”, Request for Comments, IETF, August 2002.

[POL 03] C.Politis, K. Chew, and R. Tafazolli, “Multilayer Mobility Management for All-IP Networks: Pure SIP vs. Hybrid SIP/Mobile IP”, 57th IEEE Semiannual Vechicular Technology Conference VTC2003, April 2003.

[POS 81] J. Postel, “RFC 791: INTERNET PROTOCOL”, Request for Comments, IETF, September 1981.

[POS 91] J. Postel, “RFC 792: Internet Control Message Protocol (ICMP)” Request for Comments, IETF, September 1981.

[PUS 06] T. Pusateri, “RFC 4602: Protocol Independent Multicast - Sparse Mode (PIM-SM)”, Request for Comments, IETF, August 2006.

[QUI 04] J. Quirke, “Security in the GSM System”, May 2004.

[RES 06] E. Rescola, N. Modadugu, “RFC 4347: Datagram Transport Layer Security”, Request for Comments, IETF, April 2006.

[RIN 00] C. Rigney, S. Willens, A. Rubens, W. Simpson, E. Mannie, “RFC 2865: Remote Authentication Dial In User Service (RADIUS)”, Request for Comments, IETF, June 2000.

[ROS 01] E. Rosen, A. Viswanathan, R. Callon, “RFC 3031: Multiprotocol Label Switching Architecture”, Request for Comments, IETF, January 2001.

[ROY 08] J. C. Royer, R. Willrich, M. Diaz, “User Profile-Based Authorization Policies for Network QoS Services”, Proceedings of the Seventh IEEE International Symposium on Network Computing and Applications, pp.68-75, July 2008.

[SAL 00] S. Salsano, “Definition and usage of SLS in the AQUILA consortium”, IETF Draft, draft-salsano-aquila-sls-00.txt, November 2000.

[SAL 02] S. Salsano, L. Veltri, “QoS Control by means of COPS to support SIP based applications”, IEEE Networks, March-April 2002.

[SAL 03] S. Salsano, L. Veltri, “SIP Extensions for QoS support”, IETF Internet Draft, IETF, April 2003.

204

[SAL 07] M. Salhani, R. Dhaou, A. Beylot, « Terrestrial Wireless Networks and Satellite Systems Convergence », The 25th AIAA International Communications Satellite Systems Conference, The American Institute of Aeronautics and Astronautics, 2007.

[SAR 06] V. Sarangan, J.C. Chen, “Comparative Study of Protocols for Dynamic Service Negotiation in the Next Generation Internet”, IEEE Communications Magazine, pp. 151-156, March 2006.

[SCH 00] H. Schulzrinne and E. Wedlund, “Application-layer mobility using SIP”. SIGMOBILE Mob. Comput. Commun. Rev., vol. 4, pp. 47-57, 2000.

[SCH 03] H. Schulzrinne, S. Casner, R. Frederick, V. Jacobson, “RFC 3550: A Transport Protocol for Real-Time Applications (RTP)”, Request for Comments, IETF, July. 2003.

[SCH 05] J. Schiller, “RFC4305: Cryptographic Algorithm Implementation for Encapsulating Security Payload and Authentication Header”, Request for Comments, IETF, December 2005.

[SCH 05] H. Schulzrinne, “GIMPS: General Internet Messaging Protocol for Signaling”, Work in Progress, February 2005.

[SCH 98] H. Schulzrinne, A. Rao, R. Lanphier, “RFC 2326: Real Time Streaming Protocol (RTSP)”, Request for Comments, IETF, April 1998.

[SHE 97] S. Shenker, J. Wroclawski, “RFC 2215: General Characterization Parameters for Integrated Service Network Elements”, September 1997.

[SHE 97] S. Shenker, C. Partridge, R. Guerin “RFC 2212: Specification of Guaranteed Quality of Service”, Request for Comments, IETF, September 1997.

[SHE 07] J. She, F. Hou, P. Ho, L. Xie, “IPTV over WiMax: Key Success Factors, Challenges, and Solutions”, IEEE Communications Magazine, pp. 87-93, August 2007.

[SIN 07] A. Singhald, T. Winograd, K. Scarfone, “Guide to Secure Web Services”, National Institute of Standards and Technology, p.2-12, 2007.

[SJI 09] The Sjitter tool, http://www.nicolargo.com/dev/sjitter

[SOA 09] SOAP Monitor, “Enabling The SOAP Monitor”, Axis documentation, 2009.

[STA 06] W. Stallings, “Network Security Essentials: Applications and Standards” Third Edition, 2006.

[STI 05] M. Stiemerling, “A NAT/Firewall NSIS Signaling Layer Protocol (NSLP)”, Work in Progress, February 2005.

[SUN 09] Sun Microsystems, “MySQL: La base de données open source la plus populaire au monde”, 2009.

[SUN 09] Sun Microsystems, “Java: The source for Java developers”, 2009.

[SWA 06] Projet SWAN, “Self-aWare mAnagemeNt”, Réseau National de Recherche en Télécommunication, 2006.

[SYP 00] E. Sypropoulou, and al., “Calculating Costs for Quality of Security Service”, Proceedings of CSA’00, New Orleans, LA, pp. 334-343, December 2000.

[TEB 08] B. Tebbani, I. Aid, G. Pujolle, “SLA-Based Dynamic Resource Management in Wireless Environment”, AICCSA-08, Networking and Multimedia Track, Qatar, April 2008.

[TEQ 01] Tequila Consortium, “SrNP: Service Negotiation Protocol”, October 2001.

[TEQ 03] Tequila Project, “Final Architecture – Protocol and Algorithm Specification”, Livrable Tequila D 3.4 Part B, October 2003.

[TEQ 04] Tequila Project, “Traffic Engineering for Quality of Service in the Internet, at Large Scale”, 2004.

[TER 99] A. Terzis, L. Wang, J. Owaga, L. Zhang, “A two-tier resource management model for the Internet”, Proceedings of Global Internet 99, December 1999.

[THO 01] H.S. Thompson, and al., “XML Schema Part 1: Structures”, W3C Recommendation, May 2001.

[TOM 09] Apache Tomcat, http://tomcat.apache.org

[TPI 09] The TCPPing tool, http://frameip.com/tcpping/

[TSC 05] H. Tschofenig, D. Kroeselberg, “RFC: 4081 Security Threats for Next Steps in Signaling (NSIS)”, Request for Comments, IETF, June 2005.

[VAN 05] Q. D. Van, A. Wei, B. Geller, G. Dupeyrat, “A Model-Based Analysis of Secure Video Transmission Based on IPSec and IPv4”, ETRI International Journal, Vol. 27, No. 2, pp. 219-222, April 2005.

205

[VED 07] A. Vedamuthu, D. Orchard, F. Hirch, M. Hondo, T. Boubez, “Web Services Policy 1.5 – Framework”, W3C, 2007.

[VED 07] A. Vedamuthu, D. Orchard, F. Hirch, M. Hondo, T. Boubez, “Web Services Policy 1.5 – Attachement”, W3C, 2007.

[WAN 99] X. Wang, H. Schulzrinne, “RNAP: a Resource Negotiation and Pricing Protocol”, Proceeding Int’l Workshop on Network and Operating Systems Support for Digital Audio and Video (NOSSDAV), Basking Ridge, NJ, pp. 77-93, June 1999.

[WED 99] E. Wedlund and H. Schulzrinne, “Mobility support using SIP”, Proceedings of the 2nd ACM international workshop on Wireless mobile multimedia, 1999.

[WEI 07] A. Wei, “Contribution à la Qualité de Service dans les réseaux de Télécommunications”, Dossier Scientifique en vue de l’obtention du Diplôme d’Habilitation à Diriger des Recherches, Institut National Polytechnique de Toulouse, Novembre 2007.

[WIR 09] The Wireshark tool, http://www.wireshark.org/

[WRO 97] Wroclawski, “RFC 2211: Specification of the Controlled-Load Network Element Service”, Request for Comments, IETF, September 1997.

[WWW 09] W3C, “Leading the Web to Its Full Potential…”, World Wide Web Consortium, 2009.

[YAV 00] R. Yavatkar, D. Pendarakis, R. Guerin, “RFC 2753: A Framework for Policy Based Admission Control”, Request for Comments, IETF, 2000.

[YIL 03] V. Yilmaz, and Al., “Gestion et deployment de services de sécurité dans un réseau base sur des politiques”, Proceedings SAR 2003, Nancy, France, Juin 2003.

[ZHA 96] Z. Zhang and J. Crowcroft, “QoS Routing for Supporting Multimedia Applications”, IEEE Journal on Selected Areas in Communications, Vol. 14, No.7, pages 1228-1234, September 1996.

206

Annexes

Annexe 1 : Outils utilisés dans la mesure de l’impact de la sécurité

sur la QoS

Iperf

Iperf [IPE 09] est un outil qui se base sur une architecture de type client/serveur afin de permettre de

réaliser des mesures qui concernent, essentiellement, le débit d’un réseau. Cet outil peut être utilisé afin de

mesurer le débit d’un trafic de type TCP ou UDP. Iperf peut également fournir des informations sur la

gigue et la perte des paquets. Afin de réaliser des tests avec Iperf, nous devons configurer un client qui

génère le trafic afin de l’envoyer vers un serveur qui se charge de le traiter.

Sjitter

Sjitter [SJI 09] constitue un outil de mesures écrit en langage C qui se base, également, sur un modèle

client/serveur. Grâce à une simple ligne de commande, cet outil permet de mesurer à la fois le délai, la

gigue et la bande passante pour un trafic de type UDP.

Hping

Hjping [HPI 09] est un outil basé sur une ligne de commande qui s’inspire de la commande Unix :

Ping. Cependant, Hping est capable, non seulement, d’envoyer des requêtes ICMP echo [POS 91], mais

aussi de supporter les protocoles TCP, UDP, ICMP et RAW-IP. Cet outil permet de mesurer le délai, la

gigue, le taux de perte et la bande passante.

Wireshark

Wireshark [WIR 09] est un outil open source utilisé pour analyser les trafics circulant sur un réseau.

La fonctionnalité de Wireshark est très similaire à celle du Tcpdump avec en plus une interface graphique

et plus d’options de filtrage, etc. Il permet à un utilisateur de visualiser toute sorte de trafics circulant sur le

réseau en mettant l’interface réseau en mode d’écoute.

Remarque : Notons qu’il existe d’autres outils permettant de mesurer les performances d’une

transmission de données tels que Netperf [NET 09] et TCPping [TPI 09], mais les outils présentés nous

permettent de réaliser comme il se doit les mesures que nous souhaitons effectuer.

207

Annexe 2 : Les standards de sécurisation des services web au niveau

applicatif

Les standards, représentés dans la Figure 6-1, permettent d’assurer la sécurité des services web au

niveau applicatif [SIN 07]. Parmi ces standards, nous allons principalement nous focaliser sur ceux qui

permettent de répondre parfaitement aux besoins du protocole SLNP en matière de sécurité. En effet,

nous allons, dans un premier temps, étudier les standards XML Signature et XML Encryption sur lesquels

s’appuient les standards de sécurité des services web afin de protéger les messages SOAP échangés.

Ensuite, nous détaillerons le standards WS Security qui se charge de garantir la sécurité des messages

SOAP. Enfin, nous décrivons brièvement les autres standards de sécurité qui peuvent être impliqués dans

la pile protocolaires des services web à savoir WS Trust, WS SecureConversation, WS Addressing, WS

ReliableMessaging et WS Policy.

La sécurité XML

L’intégrité, l’authentification, la non-répudiation et la confidentialité d’un document XML, échangé

entre deux extrémités, peuvent être assurées grâce aux standards XML Signature et XML Encryption

spécifié par le W3C (World Wide Web Consortium) [WWW 09]. Ces deux standards forment la base sur

laquelle seront fondés les standards de sécurité des services web de plus haut niveau comme WS Security.

Le standard XML Signature

Le standard XML Signature [BAR 08] offre l’intégrité, l’authentification et la non-répudiation aux

données XML en permettant de signer un document XML complet (par exemple un message SOAP) ou

encore une ou plusieurs parties de ce document.

Structure d’une signature XML [BAR 08]

Comme nous pouvons le voir sur la Figure A-1, une signature XML est un document XML qui

contient non seulement la valeur de la signature, mais aussi des informations sur tous les éléments ayant

servi à réaliser cette signature ainsi que des références aux objets signés. Le résultat d’une signature XML

est un document XML constitué d’une racine « Signature » qui contient plusieurs sections où chacune

permet de donner certaines informations sur la signature (Figure A-1). L’élément « Signature » est

constitué essentiellement de trois sections à savoir « SignedInfo », « SignatureValue » et « KeyInfo ».

• La section « SignedInfo » : Cette section permet de fournir les informations nécessaires à la réalisation de

la signature ainsi qu’à la localisation des objets devant être signés (un document XML complet ou bien

une ou plusieurs parties d’un document XML). Elle inclut donc l’algorithme de canonisation avec

l’élément « CanonicalizationMethod » et l’algorithme utilisé dans la signature grâce à l’élément

« SignatureMethod ». La section « SignedInfo » inclus également un ou plusieurs éléments

« Reference » qui permettent de désigner le document ou les parties du document à signer. Un

élément « Reference » spécifie l’algorithme de prétraitement grâce à l’élément « DigestMethod » et la

valeur résultante de ce prétraitement (appelée digest) qui sera incluse dans l’élément « DigestValue ».

Chaque prétraitement spécifié dans un élément « Reference » est appliqué à un objet identifié par

l’attribut URI [BER 05] de cet élément. Enfin, l’élément « Transforms » indique si une ou des

transformations ont été appliquées à l’objet désigné avant son prétraitement ; comme, par exemple, un

encodage en base 64.

208

• La section « SignatureValue » : La section « SignatureValue » contient la valeur de la signature numérique

qui est toujours codée en base 64.

• La section « KeyInfo » : Cette section permet au destinataire de connaître la clé nécessaire pour la

validation de la signature. Elle peut contenir plusieurs éléments tels que l’élément « KeyName » ou

l’élément « KeyValue » qui permet d’identifier la clé utilisée. La section « KeyInfo » peut inclure

d’autres éléments tels que l’élément « RetrievalMethod » utilisé pour transmettre une référence vers un

élément « KeyInfo » stockée à un autre endroit (par exemple un autre document) ou encore l’élément

« SignatureProperties » qui permet de communiquer des informations supplémentaires sur la

génération de la signature (par exemple un marqueur de temps indiquant la date de création de la

signature).

<Signature> <!-- Racine du document de la signature --> <SignedInfo><!-- Informations sur les opérations de signature --> <CanonicalizationMethod><!--Algorithme de canonisation--></CanonicalizationMethod> <SignatureMethod><!-- Algorithme de signature --></SignatureMethod> <Reference URI='...'><-- Référence à l’objet signé --> <Transforms/><-- Transformation avant le prétraitement --> <DigestMethod/><!-- Algorithme du prétraitement --> <DigestValue/>< !-- Valeur du prétraitement --> </Reference> </SignedInfo> <SignatureValue><!-- Valeur de la signature en base64 --> </SignatureValue> <KeyInfo><!-- Informations sur la clé utilisée dans la signature --> <KeyName/><!-- Identification de la clé --> <KeyValue/><!-- Identification de la clé --> <RetrievalMethod/>< !-- Référence aux informations sur la clé --> <SignatureProperties/>< !-- Informations supplémentaires --> </KeyInfo> </Signature>

Figure A-1 : Structure d’une signature XML

Génération d’une signature XML [BAR 08]

Afin d’effectuer une signature, l’émetteur doit générer un digest pour chaque partie qui doit être

signée et qui est référencée au sein de l’élément « SignedInfo » grâce à un élément « Reference ». Le digest

est calculé sur le résultat de la résolution de l’URI de l’élément « Reference » en utilisant un algorithme

défini dans l’élément « DigestMethod ». La valeur du digest est contenue dans l’élément « DigestValue ».

Toutefois, il est possible qu’une transformation de la partie à signer soit requise avant de calculer le digest.

Dans ce cas, cette transformation, spécifiée par l’élément « Transforms », sera appliquée sur cette partie

avant le calcul du digest. Une fois les digests générés, l’émetteur procède à la canonisation en utilisant

l’algorithme spécifié dans « CanonicalizationMethod ». Ensuite, la signature est calculée sur l’élément

« SignedInfo », grâce à l’algorithme spécifié dans « SignatureMethod », et sera incluse dans l’élément

« SignatureValue ». Notons que le calcul de la signature nécessite également une clé dont des informations

peuvent être transmises par l’émetteur vers le destinataire en utilisant un élément « KeyInfo ». Enfin, le

document XML signé est constitué en incluant les éléments « SignedInfo », « SignatureValue » et l’élément

« KeyInfo » (si requis) dans un élément « Signature ».

Vérification d’une signature XML [BAR 08]

209

Une fois la signature réalisée, le document signé est envoyé vers un destinataire qui doit être en

mesure de valider cette signature. La validation d’une signature s’effectue en deux étapes: la validation de

la référence et la validation de la signature. La validation de la référence consiste à canoniser l’élément

« SignedInfo » en utilisant l’algorithme spécifié dans l’élément « CanonicalizationMethod ». Ensuite,

chaque donnée ou partie référencée par un élément « Reference » de l’élément « SignedInfo » est récupérée

afin de calculer son digest en utilisant l’algorithme spécifié dans l’élément « DigestMethod ». Puis, la valeur

du digest généré est comparée à la valeur contenue dans l’élément « DigestValue » de l’élément

« Reference ». En cas de divergence, la validation échoue avant même de vérifier la signature. En cas de

compatibilité entre les valeurs du digest généré et du digest contenu dans le document reçu, la deuxième

étape de la validation peut commencer. Cette étape correspond à la validation de la signature proprement

dite. D’abord, la forme canonique de l’élément « SigedInfo » est obtenue en utilisant l’algorithme défini

dans l’élément « CanonicalizationMethod ». Puis, la valeur de la signature est calculée grâce à l’algorithme

spécifié dans « SignatureMethod » et à la clé obtenue à partir des informations extraites de l’élément

« KeyInfo ». Enfin, la signature est vérifiée en comparant le résultat du calcul effectué et la valeur de

l’élément « SignatureValue ».

Algorithmes définis pour la signature XML [BAR 08]

Le standard XML Signature propose plusieurs algorithmes pour les différentes opérations effectuées

lors de la réalisation d’une signature XML, à savoir la canonisation, le calcul du digest et le calcul de la

signature. Néanmoins, ce standard recommande l’utilisation de certains algorithmes. Pour la canonisation,

on recommande l’utilisation de l’algorithme ‘REC-xml-c14n-20010315’ pour des raisons de compatibilité.

Tandis qu’on recommande l’emploi de l’algorithme ‘RSAwithSHA1’ pour le calcul de la signature parce

qu’il est considéré comme un algorithme sûr. Pour le calcul du digest, on privilégiera l’algorithme ‘SHA1’

défini par l’URI ‘http://www.w3.org/2000/09/xmldsig#sha1’.

Exemple de signature XML

Dans cette section, nous fournissons un exemple de signature XML d’un document HTML4 (Figure

A-2). Le document signé a pour racine l’élément « Signature » qui contient les éléments « SignedInfo »,

« SignatureValue » et « KeyInfo ». Le premier élément, à savoir l’élément « SignedInfo », représente les

données véritablement signées et contient un élément « Reference » qui fournit des informations sur la

ressource à signer grâce à l’attribut ‘URI’ indiquant la localisation de cette ressource. L’élément

« SignedInfo » contient, également, l’élément « Transforms » qui spécifie la transformation canonique

utilisant l’algorithme ‘REC-xml-c14n-20010315’. Cette transformation est appliquée avant le calcul du

digest assuré par l’algorithme de hachage ‘SHA1’ spécifié dans l’élément « DigestMethod ». Le digest

calculé constitue la valeur de l’élément « DigestValue ». L’élément « CanonicalizationMethod », également

contenu dans l’élément « SignedInfo », fournit l’algorithme utilisé dans la canonisation de l’intégralité de

l’élément « SignedInfo », avant qu’il ne soit signé en utilisant l’algorithme défini par l’attribut ‘Algorithm’

de l’élément « SignatureMethod ». La valeur de la signature sera incluse dans le deuxième élément de la

« Signature » ; c’est-à-dire l’élément ‘SignatureValue’. Le troisième et dernier élément de cette « Signature »

est l’élément « KeyInfo ». Cet élément contient des informations sur la clé utilisée afin de permettre au

destinataire du document HTML4 signé de valider la signature. Dans cet exemple, il s’agit d’une clé DSA

[KAM 00].

<Signature Id="MyFirstSignature" xmlns="http://www.w3.org/2000/09/xmldsig#"> <SignedInfo>

210

<CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/> <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1"/> <Reference URI="http://www.w3.org/TR/2000/REC-xhtml1-20000126/"> <Transforms> <Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/> </Transforms> <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/> <DigestValue>j6lwx3rvEPO0vKtMup4NbeVu8nk=</DigestValue> </Reference> </SignedInfo> <SignatureValue>MC0CFFrVLtRlk=...</SignatureValue> <KeyInfo> <KeyValue> <DSAKeyValue><P>...</P><Q>...</Q><G>...</G><Y>...</Y></DSAKeyValue> </KeyValue> </KeyInfo> </Signature>

Figure A-2 : Exemple de signature XML

Le standard XML Encryption

Le standard XML Encryption [IMA 02] offre la confidentialité en permettant de chiffrer des données

XML (document complet, élément ou contenu d’un élément). Le résultat du chiffrement est un document

XML contenant des informations sur le processus de chiffrement et les données chiffrées ou des

références à ces données.

Structure d’un chiffrement XML [IMA 02]

Comme nous pouvons le voir sur la Figure A-3, le résultat d’un chiffrement XML est un document

XML qui contient, non seulement les données chiffrées ou des références à ces données, mais aussi des

informations sur tous les éléments ayant servi à réaliser le chiffrement des données d’origine comme

l’algorithme et la clé. Les données d’origines devant être chiffrées (document XML ou un élément d’un

document XML, etc.) sont remplacées par un élément XML « EncryptedData ». Ainsi, cet élément peut

constituer la racine d’un document XML lorsque le chiffrement porte sur la totalité d’un document XML.

L’élément « EncryptedData » contient plusieurs sections où chacune d’elles permet de donner certaines

informations sur le chiffrement. En effet, cet élément est constitué, essentiellement, de trois sections, à

savoir « EncryptionMethod », « KeyInfo » et « CipherData ».

• La section « EncryptionMethod » : Grâce son attribut ‘Algorithm’, la section « EncryptionMethod » peut

définir l’algorithme ayant permis de réaliser le chiffrement des données d’origine dont le résultat est

représenté par l’élément « CipherData ».

• La section « KeyInfo » : La structure de l’élément « KeyInfo » d’un chiffrement XML doit être conforme

à celle de l’élément « KeyInfo » défini par le standard XML Signature. Cet élément permet de fournir

les informations nécessaires sur la clé utilisée dans le chiffrement des données et qui va servir au

destinataire dans la réalisation du processus inverse, c’est-à-dire le déchiffrement. Notons que le

standard XML Encryption fournit deux extensions à l’élément « KeyInfo », à savoir « EncryptedKey »

et « AgreementMethod ». L’élément « EncryptedKey », utilisé pour transporter une clé chiffrée, est

composé d’un élément « ReferenceList » qui contient des pointeurs vers les données chiffrées

(« DataReference ») et la clé utilisée (« KeyReference »). La seconde extension, représentée par

l’élément « AgreementMethod », permet de fournir une clé secrète partagée.

211

• La section « CipherData » : La section « CipherData » contient le résultat du chiffrement des données

d’origine (c’est-à-dire les données chiffrées et codées en base 64) dans un élément « CipherValue » ou

bien une référence à l’emplacement de ce résultat en utilisant l’élément « CipherReference ».

<EncryptedData> <!-- Racine du document chiffré --> <EncryptionMethod/> <!-- Algorithme de chiffrement --> <KeyInfo> <!-- Informations sur la clé du chiffrement --> <EncryptedKey> <!-- Dans le cas d’utilisation d’une clé chiffrée --> <ReferenceList> < !-- Liste des données chiffrées --> <DataReference/> <KeyReference/> </ReferenceList> <CarriedKeyName/> <!-- Associe un nom lisible à la clé chiffrée --> </EncryptedKey> <AgreementMethod/> <!-- Dans le cas d’utilisation d’une clé partagée --> <KeyName/> <!-- Dans les autres cas, informations sur la clé à utiliser --> <RetrievalMethod/> </KeyInfo> <CipherData> <!-- Les données chiffrées --> <CipherValue/> < !-- La valeur du résultat du chiffrement --> <CipherReference URI/> <!-- ou une référence vers le résultat du chiffrement --> </CipherData> <EncryptedData/>

Figure A-3 : Structure d’un chiffrement XML

Procédure du chiffrement XML [IMA 02]

Le chiffrement d’une donnée XML (document, élément ou contenu d’un élément) sera représenté

par un élément « EncryptedData ». Ce chiffrement nécessite la sélection d’un algorithme et d’une clé de

chiffrement qui sera représentée par un élément « KeyInfo ». Si cette clé doit être elle-même chiffrée, alors

un élément « EncryptedKey » est construit. Dans le cas contraire, la clé de chiffrement est, soit identifiée

grâce à un nom ou une adresse URI, soit directement incorporée dans la section « KeyInfo ». Une fois

l’élément « KeyInfo » construit, les données à chiffrer sont sérialisées avant de procéder à leur chiffrement

en utilisant l’algorithme et la clé identifiés lors des étapes précédentes. Si la séquence d’octets obtenue,

suite au chiffrement, doit être stockée dans l’élément « CipherData », alors cette séquence est codée en

base 64 et est insérée comme contenu de l’élément « CipherValue ». Dans le cas contraire, l’élément

« CipherReference » est utilisé afin de spécifier l’adresse à laquelle les données chiffrées peuvent être

retrouvées. Ainsi, l’élément « EncryptedData » peut être constitué avec les données chiffrées (ou une

référence à ces données) et les informations sur l’algorithme et la clé utilisés dans le chiffrement et qui

seront nécessaires au déchiffrement par le destinataire.

Procédure de déchiffrement XML [IMA 02]

Le déchiffrement des données XML constitue le processus inverse du chiffrement. En effet, pour

chaque élément « EncryptedData » ou « EncryptedKey », le destinataire doit, tout d’abord, localiser et

obtenir la clé de chiffrement à partir de l’élément « KeyInfo ». Ensuite, il pourra déchiffrer les données

contenues dans l’élément « CipherData » en utilisant l’algorithme décrit par l’attribut ‘Algorithm’ de

l’élément « EncryptionMethod » et la clé obtenue lors de l’étape précédente. Avant cela, le destinataire doit

récupérer la séquence d’octets chiffrés. Ces données sont obtenues en décodant en base 64 la valeur de

l’élément « CipherValue » ou en ramenant les données référencées par l’attribut ‘URI’ de l’élément

« CipherReference ».

212

Algorithmes définis pour le chiffrement XML [IMA 02]

Le standard XML Encryption propose plusieurs algorithmes pour le chiffrement d’une ou plusieurs

parties d’un document XML ou même la totalité de ce type de document. Parmi ces algorithmes, nous

pouvons citer les algorithmes : TripleDES, AES-128, AES-192 ou encore AES-256.

Exemple de chiffrement XML

Dans cette section, nous fournissons un exemple de chiffrement d’une partie d’un document XML

(Figure A-4) en utilisant une clé chiffrée (Figure A-5).

Le résultat du chiffrement de la partie concernée est constitué d’un élément « EncryptedData » dont

la structure est donnée dans la Figure A-4. Les données ont été chiffrées en utilisant l’algorithme AES128-

CBC, spécifié par l’attribut ‘Algorithm’ de l’élément « EncryptedMethod », qui utilise une clé symétrique.

Le résultat du chiffrement est contenu dans l’élément « CipherValue ». Quant aux informations sur la clé,

elles sont incluses dans la section « KeyInfo ». En effet, il s’agit d’une clé chiffrée dont l’emplacement est

indiqué par l’attribut ‘URI’ de l’élément « RetrievalMethod » contenu dans « KeyInfo ». Notons que

l’élément « KeyName », également contenu dans « KeyInfo », offre une méthode alternative permettant de

se procurer la clé nécessaire au déchiffrement de l’élément « CipherData ».

<EncryptedData Id='ED' xmlns='http://www.w3.org/2001/04/xmlenc#'> <EncryptionMethod Algorithm='http://www.w3.org/2001/04/xmlenc#aes128-cbc'/> <KeyInfo xmlns:ds='http://www.w3.org/2000/09/xmldsig#'> <ds:RetrievalMethod URI='#EK' Type="http://www.w3.org/2001/04/xmlenc#EncryptedKey"/> <ds:KeyName>Julie MARTIN</ds:KeyName> </ds:KeyInfo> <CipherData><CipherValue>DEADBEEF</CipherValue></CipherData> </EncryptedData>

Figure A-4 : Exemeple de chiffrement d’une partie d’un document XML

Dans le même document XML contenant le résultat du chiffrement, c’est-à-dire l’élément

« EncryptedData », nous trouvons l’élément « EncryptedKey » (Figure A-5) qui représente la clé chiffrée,

qui a déjà été référencée (#EK) dans l’élément « EncryptedData » grâce à l’attribut ‘URI’ de l’élément

« RetrievalMethod ». Cette clé est donc chiffrée en utilisant l’algorithme RSA (attribut ‘Algorithm’ de

l’élément « EncryptionMethod »). La valeur de l’élément « KeyName » (Marcel Dupont) permet de trouver

la clé nécessaire au déchiffrement de la clé chiffrée ; c’est-à-dire la séquence d’octets contenue dans

l’élément « CipherValue » qui se trouve dans « CipherData ». Cette clé a été sérialisée, chiffrée et codée en

base 64. Notons que l’élément « ReferenceList » contient un ou plusieurs éléments « DataReference »,

chacun ayant pour rôle d’identifier un des objets qui ont été chiffrés en utilisant cette clé. Dans notre

exemple, le seul élément « DataReference » fait référence à l’élément « EncryptedData » (Id=‘ED’) de la

Figure A-4 caractérisé par l’identificateur « ED ». L’élément « CarriedKeyName », quant à lui, permet

d’identifier lisiblement la valeur de la clé chiffrée.

<EncryptedKey Id='EK' xmlns='http://www.w3.org/2001/04/xmlenc#'> <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-1_5"/> <ds:KeyInfo xmlns:ds='http://www.w3.org/2000/09/xmldsig#'> <ds:KeyName>Marcel DUPOND</ds:KeyName> </ds:KeyInfo> <CipherData><CipherValue>xyzabc</CipherValue></CipherData> <ReferenceList><DataReference URI='#ED'/></ReferenceList> <CarriedKeyName>Julie MARTIN</CarriedKeyName>

213

</EncryptedKey>

Figure A-5 : Exemple de chiffrement d’une clé de chiffrement XML

Ainsi, le standard XML Signature permet d’assurer l’authentification, l’intégrité et la non-répudiation

d’un document XML, tandis que la recommandation XML Encryption permet de protéger la

confidentialité d’un document XML. Dans ce qui suit, nous verrons comment la spécification WS Security

repose sur ces deux standards (XML Signature et XML Encryption) afin de garantir la sécurité

(authentification, intégrité, non-répudiation et confidentialité) des messages SOAP échangés entre les

services web.

La spécification WSS

La spécification WSS (Web Services Security) [NAD 06] constitue le premier standard traitant de la

sécurité des messages SOAP. Ce standard a été spécifié par OASIS (Organization for the Advancement of

Structured Information Standards) afin d’assurer la protection des messages SOAP en utilisant XML

Encryption et XML Signature. Ainsi, WSS ne définit pas les méthodes de signature ou de chiffrement mais

plutôt comment incorporer les informations spécifiques à ces deux standards dans l’entête d’un message

SOAP. En effet, WSS permet de transmettre des informations (clé de signature ou de chiffrement, jeton

de sécurité, etc.) sur la sécurité fournie à un message SOAP dans l’entête de ce dernier. Pour cela, la

spécification WSS définit des entêtes de sécurité qui doivent être incorporées dans l’entête d’un message

SOAP. Ce dernier peut contenir un ou plusieurs entêtes de sécurité où chacun d’entre eux fournit des

informations de sécurité (signature et/ou chiffrement) sur le message SOAP à un destinataire qui peut être

intermédiaire ou final.

Dans cette section, nous commençons par décrire les éléments qui peuvent être transportés dans un

entête WSS. Ensuite, nous décrivons comment WSS spécifie l’utilisation de XML Signature dans la

signature des messages SOAP et l’utilisation de XML Encryption dans le chiffrement de ces messages tout

en illustrant par des exemples.

L’entête de sécurité WSS

Les informations de sécurité WSS véhiculées dans les messages SOAP se trouvent au niveau des

entêtes de ces messages (« Header »). Les informations de sécurité, relatives à un message pour un

destinataire spécifique (intermédiaire ou final), sont regroupées dans un entête de sécurité WSS

« Security », comme le montre la Figure A-6. Dans le cas où un message SOAP est destiné à plusieurs

destinataires, l’entête « Header » de ce message doit contenir plusieurs entêtes de sécurité « Security ».

<?xml version=« »?> <Enveloppe><!-- Enveloppe SOAP --> <Header><!-- Entête du message SOAP --> <Security><!-- Entête de sécurité WSS --></Security> </Header> <Body>.......</Body><!-- Corps du message SOAP --> </Enveloppe>

Figure A-6 : Emplacement de l’entête WSS dans un message SOAP

Un entête de sécurité WSS sert à véhiculer, principalement, un des trois éléments suivants : un jeton

de sécurité, une référence à un jeton de sécurité ou une référence à une clé.

214

• Les jetons de sécurité : Un jeton de sécurité est un ensemble d’informations liées à une identité qui

peuvent être introduit dans un entête de sécurité WSS « Security ». La spécification WSS définit

comment ce jeton peut être associé à une signature afin d’assurer l’authentification de l’origine d’un

message SOAP. Dans ce contexte, deux types de jeton de sécurité ont été définis, à savoir :

« UsernameToken » et « BinarySecurityToken ». Un jeton de type « UsernameToken » permet

d’identifier un utilisateur en lui associant un nom « Username ». Tandis qu’un jeton de type

« BinarySecurityToken » permet d’associer à un utilisateur un jeton de type ‘Kerberos’ ou de type

‘X509’. Notons que dans le cas où l’on ne souhaite pas divulguer d’informations sur le jeton de

sécurité, on peut chiffrer l’élément représentant ce jeton.

• Les références aux clés et aux jetons de sécurité : Les opérations de signature, validation de signature,

chiffrement et déchiffrement nécessitent l’utilisation d’une clé. Etant donné que l’élément contenant

cette clé peut être situé n’importe où dans un message SOAP ou même hors de ce message, la

spécification WSS définit l’élément « SecurityTokenReference » qui peut être inclus dans l’élément

« KeyInfo » de l’entête WSS (voir exemple de la Figure A-7) afin de référencer les clés ou les jetons

utilisés dans les opérations de sécurité : signature (XML Signature) ou chiffrement (XML Encryption).

Le type de jeton référencé est spécifié grâce à l’attribut ‘TokenType’ de l’élément

« SecurityTokenReference ». Quant aux mécanismes de référencement, WSS en a spécifié plusieurs.

Les deux mécanismes les plus utilisés sont le référencement direct en utilisant une URI (sous-élément

« Reference » de l’élément « SecurityTokenReference ») et le référencement grâce à un identifiant de

clé (sous-élément « KeyIdentifier » de l’élément « SecurityTokenReference »).

La signature des messages SOAP avec WSS

Afin d’assurer l’authentification, l’intégrité et la non-répudiation pour les messages SOAP échangés

entre les services web, la spécification WSS propose d’utiliser le standard XML Signature. En effet, pour

signer un ou plusieurs éléments contenus dans une enveloppe SOAP, l’entête de sécurité WSS

(« Security ») doit contenir une signature conforme à la spécification XML Signature. Ceci revient à ajouter

un élément « Signature » dans l’élément « Security » afin d’indiquer au destinataire du message l’ordre

correct des opérations à effectuer. Pour être efficace, WSS recommande de placer les jetons de sécurité

avant les signatures afin qu’ils soient traités et mémorisés avant qu’ils ne soient appelés pour servir dans les

traitements de signature. En ce qui concerne la signature d’un élément d’un message SOAP, la procédure

est la même que celle spécifiée par le standard XML Singature (cf. annexe 0). Néanmoins, en termes

d’algorithmes, la spécification WSS recommande l’utilisation de l’algorithme ‘Exclusive XML’ (xml-exc-

c14n) pour la canonisation et l’algorithme ‘SOAP Message Normalization’ (soap12-n11n) pour la

transformation.

Pour valider la signature d’un message SOAP, le destinataire procède à la vérification de l’élément

« Signature » contenu dans l’entête de sécurité WSS (élément « Security ») du message reçu. Cette

validation peut échouer dans le cas suivant : lorsque la syntaxe du contenu de l’élément « Security » est non

conforme à la spécification WSS, quand la validation de la « Signature » contenu dans cet élément échoue,

ou lorsque le destinataire rejette le message pour une autre raison comme l’utilisation d’une clé non digne

de confiance. En cas d’échec de la validation, un message d’erreur (cf. annexe 0) peut être retourné à

l’émetteur, tandis que dans le cas de succès, une confirmation peut être envoyée à l’émetteur du message.

La confirmation d’une signature est envoyée lorsqu’elle est souhaitée par l’émetteur du message SOAP.

Cette confirmation est assurée grâce à un mécanisme offert par WSS. En effet, le destinataire d’une

215

requête SOAP peut placer un élément « SignatureConfirmation » dans l’entête de sécurité WSS du

message réponse retourné à l’émetteur de la requête. Cet élément (« SignatureConfirmation ») doit

contenir un attribut ‘Value’ qui a pour valeur le contenu de l’élément « SignatureValue ».

La Figure A-7 représente un exemple de message SOAP pour lequel l’intégrité est assurée grâce à une

signature impliquant le standard WSS. L’entête du message SOAP (« Header ») inclut un élément

« Security » qui contient des informations sur la sécurité appliquée au message. Le corps de ce message est,

quant à lui, identifié par l’attribut ‘Id’ (Id="myBody"). L’entête de sécurité WSS « Security » se compose de

deux éléments principaux: « BinarySecurityToken » qui représente un certificat X509 identifié grâce à un

attribut ‘Id’ (Id="X509Token") et un élément « Signature » qui contient, lui-même, trois sous-éléments. Le

sous-élément « SignedInfo » permet, ainsi, de transmettre les informations ayant contribué à la réalisation

de la signature, comme les algorithmes de canonisation ("xml-exc-c14n"), de calcul de digest (sha1) et de

signature (rsa-sha1). Il indique, également, que la signature porte sur le corps du message (<Reference

URI="#myBody">). L’élément « SignatureValue » porte la valeur de la signature, et enfin l’élément

« KeyInfo » indique la clé utilisée dans la réalisation de cette signature en fournissant une référence à un

jeton de sécurité grâce à l’élément « SecurityTokenReference ».

<?xml version="1.0" encoding="utf-8"?> <Envelope xmlns:S11="..." xmlns:wsse="..." xmlns:wsu="..." xmlns:ds="..."> <Header> <Security> <BinarySecurityToken ValueType="...#X509v3" EncodingType="...#Base64Binary"Id="X509Token">MIIEZzCCA9CgAwIBAgIQEmtJZc0rqrKh5i... </BinarySecurityToken> <Signature> <SignedInfo> <CanonicalizationMethod Algorithm= "http://www.w3.org/2001/10/xml-exc-c14n#"/> <SignatureMethod Algorithm= "http://www.w3.org/2000/09/xmldsig#rsa-sha1"/> <Reference URI="#myBody"> <Transforms> <Transform Algorithm= "http://www.w3.org/2001/10/xml-exc-c14n#"/> </Transforms> <DigestMethod Algorithm= "http://www.w3.org/2000/09/xmldsig#sha1"/> <DigestValue>EULddytSo1...</DigestValue> </Reference> </SignedInfo> <SignatureValue>BL8jdfToEb1l/vXcMZNNjPOV... </SignatureValue> <KeyInfo> <SecurityTokenReference> <Reference URI="#X509Token"/> </SecurityTokenReference> </KeyInfo> </Signature> </Security> </Header> <Body Id="myBody"> <StockSymbol xmlns:tru="http://www.fabrikam123.com/payloads">QQQ </tru:StockSymbol> </Body> </Envelope>

Figure A-7 : Exemple de signature d’un message SOAP avec WSS

Le chiffrement des messages SOAP avec WSS

216

Afin d’assurer la confidentialité des messages SOAP échangés entre les services web, la spécification

WSS propose d’utiliser le standard XML Encryption. En effet, WSS permet le chiffrement des blocs

d’entête d’un message SOAP, du corps de ce message ou encore des parties de ce corps. Pour cela, cette

spécification fait appel à deux principaux éléments : « ReferenceList » et « EncryptedKey » (cf. annexe 0)

qui doivent être inclus dans l’entête de sécurité WSS « Security ». L’élément « ReferenceList » indique les

références aux parties du message qui doivent être chiffrées, alors que l’élément « EncryptedKey » est

utilisé pour transmettre une clé symétrique chiffrée. Notons que l’élément « EncryptedKey », défini par

XML Encryption dans le but de transporter une clé chiffrée, est utilisé dans le cadre d’un chiffrement

WSS avec une légère différence dans l’emplacement de cet élément. En effet, contrairement au

chiffrement spécifié par XML Encryption où l’élément « EncryptedKey » doit être contenu dans un

élément « EncryptedData », WSS recommande fortement de placer cet élément (« EncryptedKey ») dans

l’entête de sécurité WSS (« Security »). Par ailleurs, WSS définit un autre élément, à savoir l’élément

« EncryptedHeader », afin de permettre le chiffrement des blocs d’entête. Le chiffrement d’un entête d’un

message SOAP est réalisé en remplaçant cet entête par un élément « EncryptedHeader » qui contient le

résultat de son chiffrement. Ainsi, l’élément « EncryptedHeader » doit contenir un sous-élément

« EncryptedData » qui constitue le résultat du chiffrement de l’entête. Finalement, la spécification WSS

introduit la notion de marqueur de temps de sécurité grâce à un élément « Timestamp » qui doit être placé

dans l’entête de sécurité WSS. Cet élément permet d’exprimer la date de création et la date d’expiration

d’un paramètre/service de sécurité comme la signature ou le chiffrement.

Un émetteur, désirant protéger la confidentialité d’un message SOAP, peut chiffrer les éléments

« Header » et/ou « Body » de ce message. Les différentes étapes conduisant au chiffrement doivent être

décrites dans un seul bloc d’entête « Security » si le message est destiné à un seul destinataire, et dans

plusieurs blocs d’entêtes « Security » si plusieurs destinataires sont concernés. Le chiffrement consiste à

remplacer tout élément du message SOAP qui doit être chiffré par l’élément « EncryptedData » qui lui

correspond. L’élément « EncryptedData » doit être conforme au standard XML Encryption et référencé

par l’élément « ReferenceList ». Lorsque le chiffrement est effectué en utilisant une clé chiffrée, l’entête de

sécurité WSS doit inclure un élément « EncryptedKey » contenant à son tour un sous-élément

« ReferenceList » qui permet, grâce à l’élément « DataReference », de référencer tous les éléments

« EncryptedData » ayant été chiffrés avec cette clé chiffrée.

Pour déchiffrer un message SOAP contenant des parties chiffrées, il faut identifier les parties devant

être déchiffrées (les éléments « EncryptedData ») ainsi que la clé qui doit être utilisée pour le

déchiffrement de chacune de ces parties. Ensuite, chaque élément chiffré de l’enveloppe SOAP peut être

déchiffré suivant la spécification XML Encryption. En cas d’échec lors du déchiffrement, un message

d’erreur peut être transmis à l’émetteur du message chiffré.

La Figure A-8 représente un exemple de message SOAP pour lequel la confidentialité est fournie

grâce à un chiffrement impliquant le standard WSS. L’entête du message SOAP (« Header ») inclut un

élément « Security » qui indique quelle partie du message est chiffrée. Cette indication est réalisée grâce à

l’élément « ReferenceList » qui contient une référence au corps du message identifié par une URI égale à

« #bodyID ». Ainsi le corps de ce message SOAP est constitué d’un élément « EncryptedData ». Ce

dernier contient non seulement les données chiffrées représentées par l’élément « CipherData », mais aussi

des informations sur la clé utilisée pour le chiffrement de ces données qui sont regroupées dans un

élément « KeyInfo ». Dans cet exemple, les informations concernant la clé de chiffrement se résument en

un nom de clé qui est connu par les deux entités échangeant le message SOAP (élément « KeyName »),

217

l’élément « CipherData » qui contient le résultat du chiffrement dont la valeur est portée par le sous-

élément « CipherValue ».

<Envelope xmlns:S11="..." xmlns:wsse="..." xmlns:wsu="..." xmlns:ds="..." xmlns:xenc="..."> <Header> <Security> <ReferenceList> <DataReference URI="#bodyID"/> </ReferenceList> </Security> </Header> <Body> <EncryptedData Id="bodyID"> <KeyInfo> <KeyName>CN=Hiroshi Maruyama, C=JP</KeyName> </KeyInfo> <CipherData> <CipherValue>gFuyXgH9wIyZMoiB7mxX60HztLaecect77A4KdMsz8...</CipherValue> </CipherData> </EncryptedData> </Body> </Envelope>

Figure A-8 : Exemple de chiffrement d’un message SOAP avec WSS

Association d’une signature et d’un chiffrement

La spécification WSS permet d’offrir à un message SOAP à la fois la confidentialité et l’intégrité.

Pour cela, une signature XML et un chiffrement XML sont associés. Cependant la spécification de l’ordre

dans lequel ces deux opérations ont eu lieu est très importante (signature puis chiffrement, ou bien

chiffrement puis signature). Ceci permettra au destinataire de procéder correctement à la validation de la

signature ainsi qu’au déchiffrement du message. Ainsi, si un émetteur souhaite signer un message avant de

le chiffrer, il est important de placer les éléments chiffrés juste après l’entête de sécurité WSS (« Security »)

et avant la signature. Par contre, si ce même émetteur souhaite signer un message après l’avoir chiffré, la

signature se situera juste après l’entête de sécurité WSS et juste avant l’élément chiffré.

Les messages d’erreur spécifiés par WSS

Lors des échanges de messages SOAP sécurisés à l’aide de WSS, il est possible que des erreurs liées à

cette sécurité surviennent. Dans ce cas, l’extrémité qui a détecté l’erreur peut en informer l’autre extrémité

en retournant un message d’erreur. Ce mécanisme d’information sur l’erreur est un mécanisme propre au

fonctionnement des services web. En effet, si une erreur survient suite à un appel à un service, l’entité

appelante peut recevoir un message d’erreur l’informant sur cette erreur, au lieu de recevoir une réponse à

sa requête. Afin de permettre une information précise sur les erreurs liées à la sécurité WSS, la

spécification WSS a pris le soin de définir un certain nombre d’erreurs auxquelles elle a associé des codes

d’erreur comme le montre le Tableau A-1.

Type d’erreur Code d’erreur

Un jeton de sécurité non supporté UnsupportedSecurityToken

Un algorithme (signature ou chiffrement) non supporté UnsupportedAlgorithm

Une erreur lors du traitement de l’entête de sécurité WSS InvalidSecurity

Un jeton de sécurité non valide InvalidSecurityToken

218

Un jeton de sécurité non authentifié ou non autorisé FailedAuthentication

Signature ou chiffrement non valide FailedCheck

Référence à un jeton de sécurité non valide SecurityTokenUnavailable

Expiration d’un message MessageExpired

Tableau A-1 : Quelques types d’erreur définis par WSS

Ainsi, la spécification WSS permet d’ordonner et de transmettre les informations nécessaires aux

traitements de sécurité notamment les opérations de signature et de chiffrement qui permettent de fournir

l’intégrité, l’authentification, la non-répudiation et la confidentialité aux messages SOAP échangés entre les

services web. Cependant, cette spécification n’offre aucun mécanisme pour la gestion des jetons de

sécurité ou encore la dérivation de clés. Pour cela, d’autres standards ont été spécifiés comme le standard

WS Trust ou encore WS SecureConversation. Dans ce qui suit, nous décrivons brièvement le rôle de ces

standards dans la sécurisation des services web.

Autres spécifications pour la sécurité des services web

La spécification WS Trust

La spécification WS Trust [NAD 08b] permet de gérer l’accès à un service web en utilisant des jetons

de sécurité. En effet, le fonctionnement de WS Trust implique trois entités principales : un demandeur de

service web (WSR : Web Service Requestor), un fournisseur de service web (WSP : Web Service Provider)

et une autorité appelée service de jeton de sécurité (STS : Security Token Service). Le principe de

fonctionnement de WS Trust repose sur un échange de type requête/réponse qui concerne un jeton de

sécurité. En fait, un WSR peut s’adresser à une STS en lui transmettant une requête de type

« RequestSecurityToken » afin de demander la délivrance ou le renouvellement d’un jeton de sécurité.

Dans cette demande, le WSR doit spécifier le service web pour lequel le jeton de sécurité est demandé,

ainsi que la durée de validité de ce jeton (date de création et date d’expiration). En recevant cette demande,

la STS doit retourner une réponse au WSR grâce à un message de type

« RequestSecurityTokenResponse ». Cette réponse peut contenir le jeton de sécurité demandé par le WSR

ou une référence à ce jeton. Elle contient, également, le service web pour lequel ce jeton à été délivré ainsi

que la durée de validité. Ainsi, le WSR pourra interagir avec le WSP et prouver qu’il a tous les pré-requis

nécessaires pour accéder au service web offert par ce dernier. Ceci se fait en associant le jeton de sécurité

valide à l’appel adressé au service web fourni par le WSP.

La spécification WS SecureConversation

La spécification WS SecureConversation [NAD 07] permet l’établissement et le renouvellement d’un

contexte de sécurité qui sera partagé par deux ou plusieurs entités. Cette spécification offre, également, un

mécanisme de dérivation de clés.

WS SecureConversation définit un nouveau modèle d’échange fondé sur la notion de contexte de

sécurité afin d’améliorer la performance générale du mécanisme d’échange de messages SOAP. En effet, la

création d’un contexte de sécurité entre deux entités leur permet d’échanger la totalité de leurs messages

en utilisant les mêmes paramètres de sécurité. Pour cela, la spécification WS SecureConversation introduit

un nouveau type de jeton de sécurité, appelé jeton de contexte de sécurité (Security Context Token), qui

permet de représenter un contexte de sécurité, et contient un secret partagé utilisé pour mettre en œuvre

les propriétés de sécurité désirées comme la signature et le chiffrement des messages SOAP échangés. WS

219

SecureConversation définit plusieurs moyens d’établissement de contextes de sécurité. Le moyen le plus

utilisé consiste à créer un jeton de contexte de sécurité par un service de jeton de sécurité (STS), suite à la

demande de l’initiateur d’un échange de messages SOAP (« RequestSecurityToken »). Ensuite, ce STS peut

retourner une réponse « RequestSecurityTokenResponse » qui inclut un élément

« RequestedSecurityToken » contenant le nouveau jeton de contexte de sécurité ou une référence pointant

sur celui-ci, ainsi qu’un élément « RequestedProofToken » pointant vers le secret partagé correspondant au

contexte retourné. Ainsi, l’initiateur de la demande peut utiliser le jeton de contexte de sécurité pour

sécuriser les messages échangés avec le service web concerné par le contexte créé. Une autre façon

d’établir un jeton de contexte de sécurité est la création de celui-ci par une des deux parties

communicantes. Par exemple, l’initiateur déclenchant l’échange des messages, peut créer, lui-même, un

jeton de contexte de sécurité et l’envoyer aux autres parties. Ce modèle ne fonctionne que si le créateur de

jeton est reconnu comme suffisamment sûr pour créer de nouveaux jetons de contexte de sécurité.

WS-SecureConversation vise à augmenter le niveau de sécurité global des échanges entre les services

web en introduisant un mécanisme de dérivation de clés. La création d’un contexte de sécurité implique

l’établissement d’un secret partagé qui peut être utilisé pour signer ou chiffrer des messages. Cependant,

WS SecureConversation recommande l’utilisation de clés dérivées de ce secret dans la signature ou le

chiffrement des messages échangés dans le même contexte de sécurité. Pour cela, le standard WS

SecureConversation définit l’élément « DerivedKeyToken » qui indique le mécanisme de dérivation de clé

devant être utilisé (en général il s’agit de l’algorithme P_SHA1) ainsi que d’autres propriétés et

informations comme le numéro de la génération de clé qu’il faut utiliser si la taille des clés est fixe, la

longueur de la clé et l’offset, qui permettent de retrouver la clé dans une suite d’octets, etc.

La spécification WS Addressing

Le protocole SOAP ne fournit pas de moyens pour indiquer la destination d’un message, l’adresse à

laquelle une réponse ou une erreur doit être retournée. Ces informations sont transmises par la couche

transport. En effet, l’URI de la requête HTTP transportant la requête SOAP est utilisée comme

destination de celle-ci. La réponse à cette requête utilise, également, HTTP pour spécifier la destination de

cette réponse.

La spécification WS Addressing Core [GUD 06a] désigne de manière unique un service web sur le

réseau par une représentation au format XML de ses points de terminaison et, de ses propriétés. Cette

spécification est complétée par la spécification WS Addressing WSDL Binding et la spécification WS

Addressing SOAP Binding. La spécification WS Addressing WSDL Binding [GUD 06b] permet de gérer

les propriétés définies par WS Addressing Core et de les décrire à travers un document WSDL. Tandis que

la spécification WS Addressing SOAP Binding [GUD 06c] permet de traduire les propriétés des points de

terminaison représentées par WS Addressing Core en messages SOAP.

La recommandation WS Addresssing Core représente l’adresse d’un point de terminaison sous la

forme d’un identificateur IRI (Internationalized Resource Identifiers). Elle permet, également, d’exprimer

les propriétés d’adressage des messages SOAP en spécifiant les adresses des points de terminaison

impliqués dans une ou plusieurs interactions. Pour cela, cette spécification introduit des éléments

spécifiques comme les éléments « To », « From », « ReplyTo », et « FaultTo ». L’élément « To » permet de

déterminer l’adresse de destination sous forme d’IRI. L’élément « From » permet d’indiquer d’adresse

source. Quant aux éléments « ReplyTo » et « FaultTo », ils permettent de spécifier, respectivement,

l’adresse vers laquelle il faut diriger la réponse et celle vers laquelle les erreurs sont envoyées. Les

220

recommandations WS Addressing proposent d’utiliser l’entête des messages SOAP pour transmettre les

informations d’adressage. Ainsi, les éléments spécifiques à cette spécification (« To », « From »,

« ReplyTo », « FaultTo », etc.) sont introduits directement dans l’entête de ces messages.

La spécification WS ReliableMessaging

Un échange de messages SOAP peut être perturbé par la perte ou la duplication de certains messages.

Il peut être, également, perturbé si les messages n’arrivent pas dans le bon ordre. Pour pallier à ce

problème de fiabilité, la spécification WS ReliableMessaging [FRE 08a] a été définie afin de fiabiliser les

échanges entre les services web. Cette spécification propose d’ajouter deux entités logiques au niveau de la

source et de la destination des messages SOAP. L’entité ajoutée au niveau de l’émetteur s’appelle source

de messages fiables (RMS : Reliable Messaging Source), alors que celle ajoutée au niveau du destinataire est

appelée destination de messages fiables (RMD : Reliable Messaging Destination). Ensuite, la spécification

WS ReliableMessaging vise à permettre à la RMS de déterminer la manière dont chaque message SOAP

qu’elle transmet à la RMD doit être reçu. Autrement dit, cette spécification va permettre à la RMD : de

déterminer efficacement quels sont les messages reçus, de filtrer ou non les messages reçus, et de délivrer

à l’application de destination les messages suivant l’ordre selon lequel l’application source les a émis.

Le fonctionnement d’un échange de messages SOAP, dont la fiabilité est offerte grâce à WS

ReliableMessaging, est le suivant. D’abord, une application source (coté émetteur) émet un message pour

une transmission fiable. Ce message est accepté par la RMS qui le transmet une ou plusieurs fois. Lorsque

la RMD (coté destinataire) reçoit le message envoyé par la RMS, elle doit l’acquitter, avant de le délivrer à

l’application destinataire. Ainsi, grâce à ce mécanisme d’acquittement et de réémission, la spécification WS

ReliableMessaging permet d’assurer la fiabilité des échanges de messages SOAP entre les services Web.

La spécification WS Policy

La spécification WS Policy [VED 07a] a été définie afin de permettre à une entité de déterminer ses

besoins en termes d’adressage, de fiabilité et/ou de sécurité pour sa communication avec une autre entité.

En effet, cette spécification permet de définir et d’exprimer les propriétés et les pré-requis que doit avoir

un service web, par exemple, si le message SOAP doit être authentifié ou si une partie du message doit

être signée ou chiffrée, etc. Ces règles ou politiques peuvent être exprimées sous forme d’une ou plusieurs

assertions. En effet, une assertion est une donnée qui représente une préférence individuelle, un impératif,

une fonctionnalité ou toute autre propriété requise pour permettre l’accès aux opérations contenues dans

un service web. Les types d’assertions sont définis par les standards WS Addressing, WS

ReliableMessaging et WS SecurityPolicy pour, respectivement, des assertions sur l’adressage, la fiabilité ou

la sécurité des messages SOAP. Ainsi, en utilisant, par exemple, des assertions fondées sur WS

SecurityPolicy, il est possible de spécifier si un message doit être signé et/ou chiffré, ou si des parties de ce

message doivent être signées et/ou chiffrées, etc.

Quant à la spécification WS Policy, elle définit l’élément « Policy » qui permet de représenter une

politique qui peut être identifiée grâce à un nom (attribut ‘Name’) ou en utilisant un identificateur (attribut

‘Id’). Cette spécification vise à fournir un cadre souple pour la définition des contraintes à respecter au

cours des échanges entre les services web. Ceci est réalisé en définissant deux éléments pouvant être inclus

dans l’élément « Policy », à savoir l’élément « ExactlyOne » et l’élément « All ». L’élément « ExactlyOne »

est utilisé lorsque plusieurs assertions de stratégie sont présentes et qu’une seule est requise. Par contre, on

peut faire appel à l’élément « All » lorsque chaque assertion de stratégie présente dans cet élément doit être

appliquée.

221

Pour connaître les politiques à appliquer, les services web disposent de deux moyens : WS

MetadataExchange et WS PolicyAttachment. La spécification WS MetadataExchange [ALE 06] est utilisée

par les services web pour permettre aux autres entités, désirant interagir avec eux, de connaître les

politiques définies qui sont incluses ou référencées dans les métadonnées retournées par ces services web.

Quant à WS PolicyAttachment [VED 07b], il spécifie comment référencer les stratégies à partir des

définitions WSDL, comment associer des stratégies à des points d’accès ou comment associer des

stratégies avec des enregistrements UDDI.

Ainsi, WS Policy permet de définir des politiques afin de contraindre les services web à échanger des

messages de manière sécurisée et/ou fiable. En effet, pour la sécurité des messages SOAP, WS Policy fait

appel au standard WS SecurityPolicy [NAD 08a] qui fournit un cadre pour la définition des stratégies

relatives à la sécurité conformément à WS Policy. Tandis que, pour représenter les politiques relatives à la

fiabilité des échanges entre les services web, WS Policy utilise la spécification WS-ReliableMessaging

Policy Assertion [FRE 08b] qui permet de définir des assertions correspondant à des politiques

garantissant la fiabilité des échanges SOAP, conformément à WS Policy.

222

Annexe 3 : Exemple d’un message SLNP sécurisé avec WSS

<?xml version="1.0" encoding="UTF-8"?> <Envelope xmlns:soapenv="…" xmlns:xenc="…">

<Header> <Security xmlns:wsse="…" soapenv:mustUnderstand="1">

<!-- Information sur la clé chiffré utilisée --> <EncryptedKey Id="EncKeyId-12245160">

<!-- Algorithme utilisé dans le chiffrement de la clé --> <EncryptionMethod Algorithm="… /xmlenc#rsa-1_5"></EncryptionMethod> <KeyInfo xmlns:ds="…/xmldsig#">

<!-- jeton de securite utilisé pour chiffrer la clé ici certificat de type X509 --> <SecurityTokenReference>

<X509Data> <X509IssuerSerial>

<X509IssuerName>CN=wss2user</X509IssuerName> <X509SerialNumber>1239006779</X509SerialNumber>

</X509IssuerSerial> </X509Data>

</SecurityTokenReference> </KeyInfo> <!--- Element CipherData à la place de la clé symétrique servant au chiffrement --> <CipherData>

<CipherValue> Iu/+HXSy9TYuudVQIOZAP+crXIqaxsgFuyXgH9wIyZMoiB7mxX60HztLaecect77A4KdMszLGezz2NdA87ujQharhyVqbLyY8QSHveSfnUI2Z6+gtB+8CL98ptm2V/j5GeQw6pGC/XgUY3sT3edD63W2hJH1xIYG/xeheQ22

</CipherValue> </CipherData> <!--- Liste des éléments chiffrés avec cette clé chiffrée --> <ReferenceList>

<DataReference URI="#EncDataId-21925102"></DataReference> <DataReference URI="#EncDataId-20079748"></DataReference>

</ReferenceList> </EncryptedKey> <!--- Informations sur la Signature d'une partie du message SOAP--> <Signature xmlns:ds="…/xmldsig#" Id="Signature-15055830">

<SignedInfo> <!-- Algorithme de canonisation utilisé --> <CanonicalizationMethod Algorithm="…/xml-exc-c14n#"></CanonicalizationMethod> <!-- Algorithme utilisé pour la signature --> <SignatureMethod Algorithm="…/xmldsig#rsa-sha1"></SignatureMethod> <!-- Reference de l'élément à signer ici le corps du message Id="id-33431531"--> <Reference URI="#id-33431531">

<!-- Transformation applique sur l'élément body --> <Transforms>

<Transform Algorithm="…/xml-exc-c14n#"></Transform> </Transforms> <!-- Algorithme de signature utilisé sur le résultat de la transformation --> <DigestMethod Algorithm="…/xmldsig#sha1"></DigestMethod> <!-- Valeur de la signature sur le résultat de la transformation --> <DigestValue>xCwpyxBsAu0w+f2jXssDS4fc1WY=</DigestValue>

</Reference> </SignedInfo> <!--- Valeur de la signature finale --> <SignatureValue>

YA7J9itDce0wP5L7ZvX+wGGUxfamviv5UtUQxwK2XauVR7Th/zi2euRzoX4JhyFKEybAdOjqwlPo+wBfN+Oir+xYXN2avh8nU3bXWBlwYqNuB26Cj/H36xh3YdwwtEjh8BYtQo/e1uWw3lDnNCkkLEqOoYTsz9q9dkAnH9ttF4k=

</SignatureValue> <!--- Informations sur la clé utilisée pour signer le corps du message (certificat X509+ identifiant) -->

223

<KeyInfo Id="KeyId-1696092"> <SecurityTokenReference xmlns:wsu="…" wsu:Id="STRId-2165595">

<X509Data> <X509IssuerSerial>

<X509IssuerName>CN=wss1user</X509IssuerName> <X509SerialNumber>1239006796</X509SerialNumber>

</X509IssuerSerial> </X509Data>

</SecurityTokenReference> </KeyInfo>

</Signature> <!--- Element EncryptedData à la place de Timestamp --> <EncryptedData Id="EncDataId-20079748" Type="…/xmlenc#Element">

<!--- Algorithme utilisé pour le chiffrement = aes-128-cbc --> <EncryptionMethod Algorithm="…/xmlenc#aes128-cbc"></EncryptionMethod> <KeyInfo xmlns:ds="…/xmldsig#">

<SecurityTokenReference> <!--- Info sur la clé utilisée pour le chiffrement : la clé chiffrée vue au début de cet exemple --> <Reference URI="#EncKeyId-12245160"></Reference>

</SecurityTokenReference> </KeyInfo> <CipherData>

<CipherValue> gfRjYkMp0jCyere1a+jnV57kLHwvcF1+p50ON6bFQ1fHxBxkNM1Yvoa+QqXgW3uaAGuT/AR58kXDBdDa1guzlJHvt+Tdz/b6le3MFKeGp742Lool11n0oYjCGF/zWGAtaLR1X+jwgKrpYvoEF9HXYC9xA4n89qCw/oBE9zxcczIS9AjaFUFr5eUuJLft/WDryl/kFEbE3VXAV3JEYBEwdeSK+8VXMG8Xr790au2GG/aeZth9kGH8dO+jEoD2lMjRqcLZjJdjOMg9zdJ4NMVBI8s2EK1/Uby2tpX2ao0JE9uVKa/QZjZjJBiqLWbAT1V1zbTJBfRJ168lYBfGBjfgSu2cF7VcaubLW5/b9aD98A/dzKfe4eUv6JM2YLFIeXb3

</CipherValue> </CipherData>

</EncryptedData> <!--- Element EncryptedData à la place de UsernameToken --> <EncryptedData Id="…/xmlenc#Element">

<!--- Algo utilisé pour le chiffrement aes-128-cbc --> <EncryptionMethod Algorithm="…/xmlenc#aes128-cbc"></EncryptionMethod> <KeyInfo xmlns:ds="…/xmldsig#">

<!--- Info sur la clef utilisée pour le chiffrement ici la clé chiffrée vue au tout début --> <SecurityTokenReference>

<Reference URI="#EncKeyId-12245160"></Reference> </SecurityTokenReference>

</KeyInfo> <CipherData>

<CipherValue> F4Am194hGwuwGQBrF3ZGqodlhWlPA8JGFjUXJJVgdmijr4TI8fhflWmLaRRlYWbRM1KddJmBHN5xl8ghX9TzIgNOFFC2iscIbxkFjT+YzoluFsDKgR0V/2MJgp8okgDRqKbDa4r4wjUalz037HzyUE8YaSiRButBcVncmbZitNxtp1EKGMjWz/0yATcunKYLhO3UAtk24G8n9ToqCoa4aZ/Rb0I1oaut1rbP2jjEWI6PX0/eHEO1vAlU8g88B8w1t/vYzHkGWwWm3vj+YTe2NqNTTCJSxh12WHRX6H8FbD2l6BPvlNXNU+/LBanr+ngwhCeiGrMjc4eJncIw0/eUARVhlz6vutoV9ki2fchk9VR6C0vC4VjD9xqCsYLZMDfXtWPF+qhXJ+XD6vF3GtrJ95ycEi8xptpPbIZkKhiJs4nRmOS/MJZzc12mSP/fEkETBBZUbELNiqgg3VBlEiKA99c+zkMYTulR4FGJG/b8sAa2sgvLb79QQuBq+zLljudH1TNqIhA424k6evXaQQ8vimxzDsQjHNa6CdvFb9Oa9gDcX17pyBU1/y/YjS7Wc4MivG1DrrGORxuQEv0jzx+TgrfS8bVHcnFtkPSssSQzGvCibj4vOXiMYTAolND1Fp1lE1Krj3ptAoqBbO/0GO9dFcf/thc2KW7EeAgiwxa9KWVfxPIuR+1/WgVCBIKmlKBzhqWdVLvYQUuB+S4InpZ1cCmIJ5oAfGNuSQTmeU9UA3nAbKR/pEOHvJE7BIjFQo+OtflbSv1nBxmpLJtRKTNJusE9JwouIQ013a/6cS6ncaEpYLluZvdx6HlSZ0zXXEbhQhTiPuNklF8KSoGzhes5Yr97+34V99S3MsuSW/zwlhF32lpGd894ZLz1FXBPYogtvXAw7S/kFsb4KGTMuw+Ff5dw/dTfhQk3PGWJEcDb+I+Uh1oSA1AA2deeTeOIZsb6vvko8EkiHiMvOGQnQf7aisjg3EYuRXR4uvPlA=

</CipherValue> </CipherData>

</EncryptedData>

224

</Security> </Header> <Body xmlns:wsu="…" wsu:Id="id-33431531">

<Negotiate xmlns="urn:WSNegotiation2"> <negotiationId xmlns="…">1</negotiationId> <endNegotiation xmlns="…">true</endNegotiation> <sls xmlns="…">

<slsId>0</slsId> <flowId>

<sourceIPAddress> <IPv4Address>192.162.00.10</IPv4Address>

</sourceIPAddress> <destinationIPAddress>

<IPv4Address>182.182.00.33</IPv4Address> </destinationIPAddress> <sourcePort>8080</sourcePort> <destinationPort>8080</destinationPort> <protocolId>250</protocolId> <DSCP>000100</DSCP>

</flowId> <qosParameters>

<scope> <ingress>

<IPv4Address>192.162.00.10</IPv4Address> </ingress> <egress>

<IPv4Address>182.182.00.33</IPv4Address> </egress>

</scope> <serviceSchedule>

<immediateSS> <endTime>

<year>2006</year> <month>--12--</month> <day>---31</day> <hour>00:00:00.000Z</hour>

</endTime> </immediateSS>

</serviceSchedule> <performanceGuarantee>

<delay> <delayRequested>

<minDelay>100</minDelay> <maxDelay>100</maxDelay>

</delayRequested> <delayOffered>20</delayOffered>

</delay> <jitter>

<jitterRequested> <minJitter>40</minJitter> <maxJitter>40</maxJitter>

</jitterRequested> <jitterOffered>15</jitterOffered>

</jitter> <packetLossRatio>

<packetLossRatioRequested> <minPacketLossRatio>0.1</minPacketLossRatio> <maxPacketLossRatio>0.1</maxPacketLossRatio>

</packetLossRatioRequested> <packetLossRatioOffered>0.1</packetLossRatioOffered>

</packetLossRatio> <throughput>

<throughputRequested>

225

<minThroughput>500</minThroughput> <maxThroughput>500</maxThroughput>

</throughputRequested> <throughputOffered>500</throughputOffered>

</throughput> </performanceGuarantee>

<trafficConformity></trafficConformity> <excessTreatement>

<excessTreatementRequested>DROP</excessTreatementRequested> <excessTreatementOffered>MARK</excessTreatementOffered>

</excessTreatement> </qosParameters> <secParameters></secParameters>

<negotiationParameters> <negotiationMode>NonPredefinedNonConstrained</negotiationMode> <negotiationInterval>

<negotiationIntervalRequested> <nbHour>0</nbHour> <nbMinutes>10</nbMinutes>

</negotiationIntervalRequested> <negotiationIntervalOffered>

<nbHour>0</nbHour> <nbMinutes>1</nbMinutes>

</negotiationIntervalOffered> </negotiationInterval>

</negotiationParameters> <reliability>

<MeanDownTime> <meanDownTimeOffered>10</meanDownTimeOffered> <meanDownTimeRequested>50</meanDownTimeRequested>

</MeanDownTime> <MeanTimeToRepair>

<meanTimeToRepairRequested>100</meanTimeToRepairRequested> <meanTimeToRepairOffered>50</meanTimeToRepairOffered>

</MeanTimeToRepair> </reliability>

</sls> </Negotiate>

</soapenv:Body> </soapenv:Envelope>

226

Liste des abréviations

2G Réseau 2ème Génération 3DES Triple DES 3G Réseau 3ème génération 3GPP 3rd Generation Partnership Project 3GPP2 3rd Generation Partnership Project 2 ACL Access Control List ADSL Asymmetric Digital Subscriber Line AES Advanced Encryption Standard AG Adaptation Gateway AH Authentication Header ANC Ambient Networks Consortium AQUILA Adaptive Resource Control for QoS Using an IPbased Layered Architecture ASCII American Standard Code for Information Interchange ATM Asynchronous Transfer Mode BGP Border Gateway Protocol BoD Bandwidth on Demand CADENUS Creation And Deployment of End-User Services in Premium IP Networks CBC Cipher-Block Chaining CBR Constant Bit Rate CCM Counter with CBC-MAC CCMP Counter-mode/Cipher block chaining Message authentication code Protocol COPS Common Open Policy Service CP Content Provider CPU Central Processing Unit CRC Cyclic Redundancy Check DEA Data Encryption Algorithm DES Data Encryption Standard DHCP Dynamic Host Configuration Protocol DIA Digital Item Adaptation DM Domain Manager DSCP DiffServ Code Point DSNP Dynamic Service Negotiation Protocol DTD Document Type Definition DTLS Datagram Transport Layer Security DVB Digital Video Brodcast DVB-S2 DVB – Satellite Second Generation DVB-T Digital Video Brodcast - Terrestrial DiffServ Differentiated Services DoS Denial of Service EAP Extensible Authentication Protocol ESN Extended Sequence Number ESP Encapsulating Security Payload ETSI European Telecommunications Standards Institute FTP File Transfer Protocol GANS Generic Ambient Networking Signaling GIMPS General Internet Messaging Protocol for Signaling GMPLS Generalized MPLS GPRS General Packet Radio Service

227

GSM Global System for Mobile Communications GUI Graphical User Interface HA Home Agent HMAC keyed-Hash Message Authentication Code HTML Hypertext Markup Language HTTP HyperText Transfer Protocol HTTPS Secured HTTP ICV Integrity Check Value IEEE Institute of Electrical and Electronics Engineers IETF Internet Engineering Task Force IIS Internet Information Services IKE Internet Key Exchange IMAP Internet Message Access Protocol IP Internet Protocol IPSec IP Security Protocol IPSig IP Signaling IPTV Internet Protocol Television IPTV FG Internet Protocol Television Focus Group IRI Internationalized Resource Identifiers ISAKMP Internet Security Association and Key Management Protocol ITSUMO Internet Technologies Supporting Universal Mobile Operation ITU International Telecommunication Union IntServ Integrated services LAN Local Area Network LDAP Lightweight Directory Access Protocol LDP Label Distribution Protocol LEAP Lightweight EAP LoD Live on Demand M-TCP Mobile TCP M-UDP Mobile UDP MAC Media Access Control MD5 Message-Digest algorithm 5 MESCAL Management of End-to-end Quality of Service Across the Internet at Large MIC Message Integrity Code MICS Media Independant Command Service MIES Media Independant Event Service MIH Media Independant Handover MIHF MIH Function MIIS Media Independant Information Service MIP Mobile IP MOS Mean Opinion Score MPEG Moving Picture Experts Group MPEG-2 TS MPEG-2 Transport Stream MPLS MultiProtocol Label Switching MSC Message Sequence Chart NAT Network Address Translation NGN Next Generation Networks NSIS Next Step In Signaling OS Operating System OSI Open Systems Interconnection PAD Peer Authorization Database PDA Personal Digital Assistant PDP Policy Decision Point PEAP Protected EAP PEP Policy Enforcement Point

228

PHB Per Hop Behavior PHB AF Per Hop Behavior Assured Forwarding PHB EF Per Hop Behavior Expedited Forwarding POP Post Office Protocol PPP Point to Point Protocol PSTN Public Switched Telephone Network QSIP QoS Enabled SIP QoE Quality of Experience QoS Quality of Service QoS-GSLP QoS Generic Signaling Layer Protocol QoS-NSLP QoS NSIS Signaling Layer Protocol RAM Random Access Memory RAP Resource Allocation Protocol RIP Routing Information Protocol RMF Resource Management Function RNAP Resource Negotiation and Pricing Protocol RSVP Resource Reservation Protocol RTC Réseau Téléphonique Commuté RTP Real-time Transport Protocol RTT Round Trip Time SAD Security Association Database SAML Security Assertion Markup Language SE SLNP Entity SF SLNP Forwarder SG SLS Generator SG Security Gateway SI SLNP Initiator SIM Subscriber Identity Module SIP Session Initiation Protocol SLA Service Level Agreement SLNP Service Level Negotiation Protocol SLS Service Level Specification SMTP Simple Mail Transfer Protocol SN Sequence Number SOAP Simple Object Access Protocol SP Service Provider SPD Security Policy Database SPI Security Parameters Index SR SLNP Responder SRTP Secure Real-time Transport Protocol SSL Secure Sockets Layer SWAN Self aWare mAagemeNt SrNP Service Negotiation Protocol TCP Transmission Control Protocol TDD Time Division Duplex TDMA Time Division Multiple Access TEQUILA Traffic Engineering for QUality of service in the Internet at LArge TKIP Temporal Key Integrity Protocol TLS Transport Layer Security TLV Type Length Value ToIP Telephony over IP TTLS Tunneled TLS UDDI Universal Description Discovery and Integration UDP User Datagram Protocol UED User Environment Description

229

UMTS Universal Mobile Telecommunications System URI Uniform Resource Identifier VoD Video on Demand VoIP Voice over IP W3C World Wide Web Consortium WEP Wired Equivalent Privacy WLAN Wireless Local Area Network WPA Wi-Fi Protected Access WPA-PSK Wi-Fi Protected Access – Pre-Shared Key WS Web Services WSDD Web Service Deployment Descriptor WSDL Web Service Description Language WSP Web Service Provider WSR Web Service Requestor WSS Web Service Security WSS4J Web Services Security for Java WiFi Wireless Fidelity WiMax Worldwide Interoperability for Microwave Access XACML eXtensible Access Control Markup Language XML eXtensible Markup Language XSD XML Schema Definition YESSIR YEt another Sender Session Internet Reservation xDSL Digital Subscriber Line technologies family