Memoire Online - Securite dans les systèmes temps reel - Thomas Vanderlinden

94
 Rechercher sur le site: Recherche Home | Publier un mémoire | Flux Securite dans les systèmes temps reel par  Thomas Vanderlinden Université Libre de Bruxelles - Licence en Informatique 2007 Dans la categorie: Informatique et Télécommun ications 0  Disponible en mode multipage Faculté des science s département d'inFormatique  MEMBRE DE L'ACADÉMIE UNIVERSITAIRE WALLONIE-BRUXELLES ET DU PÔLE UNIVERSITAIRE EUROPÉEN BRUXELLES WALLONIE  Sécurité dans les systèmes temps réel Thomas VANDERLINDEN Mémoire présenté sous la direction des Professeurs Joël GOOSSENS et Olivier MARKOWITCH en vue de l'obtention du grade de Licencié e n Informatique Année académique 2006-2007 1 Remerciements Un mémoire est un travail de recherche ardu et long mais intéressant. Malgré que ce soit un travail en solitaire, il aurait été difficile de me passer de l'appui de nombreuses personnes d'un point de vue académique et moral, à qui je tiens à donner toute ma reconnaissa nce. Tout d'abord, je souhaiterais remettre mes premiers remerciements au professeur qui m'a sui vi toute cette année en organisant des réuni ons guliè rement, Monsieur Joél Goossens, promoteur de ce mémoire. Je tiens également à remercier Monsieur Olivier Markowitch, codirecteur de ce travail, qui s'est lui aussi joint à certaines de ces réunions, et sur qui je pouvais compter pour me fournir des conseils dans le domaine de la cryptographie lorsque j'en avais besoin ainsi que Monsieur Bernard Fortz pour m'avoir suggéré cer taine s améliora tion s lors de la progra mmation des métho des heuris tiques présentées dans ce mémoire et le professeur Hakan Aydin pour avoir répondu à mes questions sur l'ordonnancement temps réel par courrier électronique. Je tiens à donner toute ma gratitude à mon grand-père qui a pris la peine de relire ce travail pour apporter quelques corrections orthographiques. Sur le plan moral, je tiens à remercier mes parents, toute ma famille et mes amis, ils comptent énormément pour moi, ils ne m'ont jamais abandonné durant mes études et m'ont t oujours encouragé durant l'élaboration de ce mémoire . 24 J’aime  J’aime Réduction des coûts Expense Reduction Analysts expert en réduction des coûts www.expensereduction.eu Ordonnanceur multi OS definition et suivi graphique pour production WINDOWS, LINUX, OS400 www.unilink.fr Sécurité des documents Lutter contre la contrefaçon et falsification des document s www.prooftag.net Mem oire Onlin e - Securite dans les syst èmes temps reel - Thom as V ande... ht tp://www.m emo ireonline.com /12/08/1700/ Securite-dan s-les- system es... 1 su r 94 17/05/2012 17:32

Transcript of Memoire Online - Securite dans les systèmes temps reel - Thomas Vanderlinden

Memoire Online - Securite dans les systmes temps reel - Thomas Vande... http://www.memoireonline.com/12/08/1700/Securite-dans-les-systemes...

Jaime

24 k

Rechercher sur le site:

Recherche

Home | Publier un mmoire | Flux

Securite dans les systmes temps reelpar Thomas Vanderlinden Universit Libre de Bruxelles - Licence en Informatique 2007 Dans la categorie: Informatique et Tlcommunications0

Disponible en mode multipageJaime

Facult des sciences dpartement d'inFormatique MEMBRE DE L'ACADMIE UNIVERSITAIRE WALLONIE-BRUXELLES ET DU PLE UNIVERSITAIRE EUROPEN BRUXELLES WALLONIE Scurit dans les systmes temps rel Thomas VANDERLINDEN

Rduction des cotsExpense Reduction Analysts expert en rduction des cotswww.expensereduction.eu

Ordonnanceur multi OSdefinition et suivi graphique pour production WINDOWS, LINUX, OS400www.unilink.fr

Scurit des documentsLutter contre la contrefaon et falsification des documentswww.prooftag.net

Mmoire prsent sous la direction des Professeurs Jol GOOSSENS et Olivier MARKOWITCH en vue de l'obtention du grade de Licenci en Informatique Anne acadmique 2006-2007 1 Remerciements Un mmoire est un travail de recherche ardu et long mais intressant. Malgr que ce soit un travail en solitaire, il aurait t difficile de me passer de l'appui de nombreuses personnes d'un point de vue acadmique et moral, qui je tiens donner toute ma reconnaissance. Tout d'abord, je souhaiterais remettre mes premiers remerciements au professeur qui m'a suivi toute cette anne en organisant des runions rgulirement, Monsieur Jol Goossens, promoteur de ce mmoire. Je tiens galement remercier Monsieur Olivier Markowitch, codirecteur de ce travail, qui s'est lui aussi joint certaines de ces runions, et sur qui je pouvais compter pour me fournir des conseils dans le domaine de la cryptographie lorsque j'en avais besoin ainsi que Monsieur Bernard Fortz pour m'avoir suggr certaines amliorations lors de la programmation des mthodes heuristiques prsentes dans ce mmoire et le professeur Hakan Aydin pour avoir rpondu mes questions sur l'ordonnancement temps rel par courrier lectronique. Je tiens donner toute ma gratitude mon grand-pre qui a pris la peine de relire ce travail pour apporter quelques corrections orthographiques. Sur le plan moral, je tiens remercier mes parents, toute ma famille et mes amis, ils comptent normment pour moi, ils ne m'ont jamais abandonn durant mes tudes et m'ont toujours encourag durant l'laboration de ce mmoire.

1 sur 94

17/05/2012 17:32

Memoire Online - Securite dans les systmes temps reel - Thomas Vande... http://www.memoireonline.com/12/08/1700/Securite-dans-les-systemes...

Soyez tous sincrement remercis,

Temps rel - Visual Chart Thomas. Bourse en vrai temps rel Graphiquesavancs Systmes Tradingwww.visualchart.com

Table des matires Introduction 1.1 Le problme 1 1.2 Organisation du mmoire 2 Pr-requis 2.1 Systmes temps rel 2.1.1 Introduction 2.1.2 Lestravaux 2.1.3 Les tches 2.1.4 Le systme 2.1.5 L'ordonnancement 2.2 Cryptologie 2.2.1 Introduction 2.2.2 Confidentialit 2.2.3 Intgrit et authentification 3 Etatde l'art 3.1 3.2 Introduction Qualit de service et longueur des cls 3.2.1 Introduction 3.2.2 Modlisation du systme 3.2.3 L'algorithme d'ajustement de la qualit de service 3.2.4 Conclusion 3.3.1 Conclusion 3.4 Mthode SASES 3.4.1 Modlisation 3.4.2 Diffrents services 3.4.3 Calcul du bnfice au systme 3.4.4 L'algorithme SASES 3.4.5 Conclusion TABLE DES MATIRES 3 3.5 Mthode en graphe de services 37 3.5.1 Modlisation 37 3.5.2 Recherche dans le graphe 38 3.5.3 Conclusion : Comparaison avec SASES 40 3.6 Conclusion 41 4 Rcompense et scurit 42 4.1 Introduction 42 4.2 Reward-Based Scheduling 43 4.2.1 Introduction 43 4.2.2 Une fonction de rcompense 44 5 5 6 7 7 7 7 8 9 10 13 13 14 15 16 16 17 17 18 19 22 25 25 26 28 34 35 36

Simmons MarocAccessible en ligne ! Matelas,linge de lit haut de gammewww.simmons.ma

Destructeur haut volumedtruit vos archives, vos classeurs jusqu' 1 tonne/heurewww.intimus.fr

3.3 Ordonnancement dynamique bas sur des niveaux de scurit . 23

2 sur 94

17/05/2012 17:32

Memoire Online - Securite dans les systmes temps reel - Thomas Vande... http://www.memoireonline.com/12/08/1700/Securite-dans-les-systemes...

4.2.3 Modlisation du systme 47 4.2.4 Calcul de la rcompense moyenne du systme 47 4.2.5 Approche Mandatory-First (parties obligatoires d'abord) 48 4.2.6 Optimalit 53 4.2.7 Optimalit avec des fonctions linaires de rcompense 57 4.2.8 Optimalit avec des fonctions convexes de rcompense 60 4.3 Conclusion 62 5 Simulations 64 5.1 Introduction 64 5.2 Gnration d'un systme 65 5.2.1 Gnration des priodes 65 5.2.2 Gnration de l'ensemble de tches 66 5.3 L'algorithme orient vnement 68 5.3.1 La gestion des vnements 69 5.3.2 L'algorithme 70 5.4 Rappel du problme d'optimisation des temps optionnels . . . 72 5.5 Notations utilises 73 5.6 Le recuit simul 74 5.7 La recherche tabou 77 5.8 Obtention d'une solution voisine 79 5.9 Exprimentation 81 5.9.1 Limites des algorithmes 81 5.9.2 Analyse avec des fonctions linaires de rcompense . . 83 5.9.3 Simulation avec des fonctions convexes de rcompense 83 5.10 Conclusion 87 6 Conclusion 89 A Complment la dmonstration de H. Aydin 93

TABLE DES MATIRES B Code source de la simulation B.1 Systme B.1.1 B.1.2 B.2 B.2.1 B.2.2 B.3 B.3.1 Systeme.h Systeme.cpp Tche Tache.h Tache.cpp Travail Travail.h

4 95 95 95 97 107 107 108 109 109

3 sur 94

17/05/2012 17:32

Memoire Online - Securite dans les systmes temps reel - Thomas Vande... http://www.memoireonline.com/12/08/1700/Securite-dans-les-systemes...

B.3.2 B.4.1 B.4.2 B.5 B.5.1 B.5.2 B.6 B.6.1 B.6.2 B.7.1 B.7.2 B.8 Main B.8.1

Travail.cpp Generateur.h Generateur.cpp Divers Divers.h Divers.cpp Event Event.h Event.cpp Solution.h Solution.cpp Main.cpp

110 111 111 111 113 113 113 114 114 115 115 116 117 122 123

B.4 Gnrateur

B.7 Solution

Chapitre 1 Introduction1.1 Le problme Les systmes temps rel prennent une place de plus en plus importante dans notre socit, ils servent contrler, rguler en temps rel des dispositifs lectroniques grce des capteurs, embarqus dans des robots, des vhicules spatiaux, etc. Ces systmes temps rel embarqus sont souvent utiliss par le public dans la vie de tous les jours sans mme qu'on ne s'en rende compte, par exemple dans les systmes de freinage d'une voiture, le contrle de vol d'un avion,... Pour contrler des systmes critiques comme des centrales nuclaires, des rseaux lectriques, etc. .., le rseau public Internet est de plus en plus utilis car cela a deux avantages majeurs: - la maintenance du systme est facilite, on peut se connecter au systme partir de tout endroit o une connexion Internet est disponible; - les cots sont rduits tant donn qu'il ne faut pas mettre en place un rseau priv. Mais il en dcoule galement comme inconvnient l'accroissement des besoins en scurit. Le problme qui se pose est donc d'arriver maximiser la scurit des changes d'informations sans que cela nuise au respect des chances des tches du systme temps rel. Nous voulons dire par l qu'il faut dans les limites du possible, qu'un systme soit toujours ordonnanable avec la scurit mise en place afin de garantir un fonctionnement sr du systme. En effet, scuriser au maximum le systme pourrait nous amener un systme qui dpasse sa capacit de traitement. Il faut donc limiter la scurit de chaque tche selon son importance par rapport aux autres afin de ne rater aucune chance. Ce mmoire fournit des solutions pour y parvenir. Nous nous limiterons tudier dans ce mmoire les systmes hard realtime , c.--d. que les chances devront toutes tre respectes malgr l'augmentation du temps d'excution des diffrents travaux introduite par la mise en place de la scurit dans le systme en posant comme hypothse que les tches sont priodiques.

4 sur 94

17/05/2012 17:32

Memoire Online - Securite dans les systmes temps reel - Thomas Vande... http://www.memoireonline.com/12/08/1700/Securite-dans-les-systemes...

1.2 Organisation du mmoire Clairement, ce mmoire liera donc deux disciplines en informatique, l'ordonnancement de systmes temps rel et la scurit de systmes informatiques. Nous ferons d'abord un tat des techniques utilises dans la littrature pour rsoudre ce problme. Nous nous pencherons sur les algorithmes itratifs permettant de chiffrer les donnes (ex : AES, RC6,. ..), sur l'authentification de l'information et sur le contrle d'intgrit (ex : mthodes HMAC, CBC-MAC,...). Nous analyserons ensuite une mthode, le Reward Based Scheduling fournissant une rcompense en fonction du temps ajout pour la mise en place dans notre cas de la scurit. Pour clturer, nous tudierons des heuristiques qui sur base de cette mthode tentent de trouver les temps se rapprochant le plus possible des temps optimaux pour tablir la scurit tout en validant le systme, c.--d. en vrifiant par simulation que les contraintes d'chance soient respectes.

Chapitre 2 Pr-requis2.1 Systmes temps rel 2.1.1 Introduction Nous apporterons dans cette section quelques dfinitions largement inspires de [7] et notations qui pourront servir la comprhension de la suite de ce mmoire. Un systme temps rel est constitu d'un ensemble de tches et chacune d'elles doit effectuer une quantit de calculs. Les rsultats produits par ces diffrentes tches doivent tre d'une certaine qualit mais aussi tre fournis avant un instant donn, que nous appellerons l'chance de cette tche. Ces systmes sont utiliss principalement dans des applications critiques qui ne peuvent pas se permettre de fournir un rsultat erron ou incomplet au moment de l'chance, comme pour le contrle d'une centrale nuclaire, le contrle arien, ... 2.1.2 Les travaux Toute tche n o i (que nous noterons Ti) prise dans un ensemble de n tches (i ? [1, n]) composant le systme, partage la quantit de calculs qu'elle doit effectuer en un certain nombre de travaux. Ces travaux obtiennent le processeur intervalle rgulier (priodique) ou non. Chaque travail (aussi appel instance ou job en anglais) obtient le processeur un instant donn et peut s'excuter sur une certaine dure. Dfinition Travail: Un travail ij, soit le je travail de la tche Ti sera caractris par le tuple (a, e, d). Un instant d'arrive aij, un temps d'excution eij et une chance dij. Le travail ij devra donc recevoir eij units d'excution sur l'intervalle [aij, dij) Il existe diffrentes classes de niveaux de contraintes temporelles, on parle d'chances strictes (hard), fermes (firm) ou souples (soft) [1]. - Un systme temps rel est dit chances strictes (hard deadlines) lorsqu' on ne peut rater aucune chance, les consquences en seraient catastrophiques; - Pour les chances fermes (firm deadlines), les consquences sont moins svres, mais la valeur de l'excution d'un travail aprs son chance est nulle et

5 sur 94

17/05/2012 17:32

Memoire Online - Securite dans les systmes temps reel - Thomas Vande... http://www.memoireonline.com/12/08/1700/Securite-dans-les-systemes...

donc d'aucune utilit. - Un travail possdant une chance souple (soft deadline) peut terminer son excution aprs son chance, son excution aprs l'chance a toujours une certaine valeur, bien que celle-ci dcroisse avec le temps suivant l'chance. 2.1.3 Les tches Classiquement dans un systme temps rel, les calculs (l'excution de ces travaux) sont rcurrents, les tches peuvent tre priodiques ou sporadiques. Nous nous focaliserons dans ce mmoire sur les systmes tches priodiques. Dfinition Tche priodique : Une tche priodique Ti est caractrise par le tuple (Ai, Pi, Di, Ci) - Ai est la date d'arrive du premier travail de la tche Ti, ce qui ne signifie pas que celui-ci s'excutera cette date. - Pi est la priode, c.--d. la dure qui spare deux arrives successives de travaux. Le deuxime travail d'une tche Ti ne pourra donc pas s'excuter avant l'instant Ai + Pi. - Di est l'chance de la tche Ti, qui dnote la limite suprieure de temps entre l'arrive d'un travail et la fin de son excution. - Ci est le temps d'excution de chaque travail de la tche Ti, nous parlons aussi de WCETi (Worst Case Execution Time) pour dnoter la limite suprieure du temps d'excution de chaque travail de la tche Ti. Mi, Oi : Dans la partie sur le Reward-based Scheduling , ces notations dnotent respectivement la partie obligatoire (Mandatory) et optionnelle (Optional) d'une tche Ti. Les notations mi et oi, dnotent respectivement la limite suprieure du temps d'excution de la partie obligatoire Mi et la limite suprieure sur le temps d'excution de la partie optionnelle Oi. Nous y reviendrons par la suite. Chaque tche gnre un travail chaque instant Ai+k.Pi avec une chance l'instant Ai + k. Pi + Di pour tout entier k ~ 0. Les tches sporadiques sont similaires aux tches priodiques l'exception faite que Pi correspond la dure minimum qui spare deux arrives de travaux delatche Ti. Mais il existe galement des tches non rcurrentes dites apriodiques, elles sont utilises en gnral pour traiter des alarmes et des tats d'exception, l'instant de rveil n'est pas connu au dpart et il n'y a donc pas de priode. Chaque tche a une certaine proportion d'excution par rapport sa priode, nous parlerons d'utilisation que l'on dfinit mathmatiquement comme : U(Ti) = Ci/Pi. L'utilisation d'un systme S est la somme des utilisations des tches qu'il contient, autrement dit : U(S) = >ITi?S U(Ti). Dans la partie sur le Reward-based Scheduling , nous parlerons d'utilisation par les parties obligatoires d'un systme compos de n tches. Nous noterons ce facteur d'utilisation Um que nous dfinissons par Um = >In i=1mi/Pi, c.--d. le rapport sur le temps d'excution des parties obligatoires par rapport au temps total disponible. U quand lui, dsignera le facteur d'utilisation total (parties obligatoires et optionnelles confondues). 2.1.4 Le systme Il existe plusieurs expressions qualifiant un systme constitu de n tches, on parle de systmes: - chance contrainte : signifie que l'chance de toute tche du systme ne peut pas tre suprieure la priode de celle-ci (Di Pi Vi E [1, n]). - chance sur requte : signifie que l'chance de toute tche du systme concide avec la priode de celle-ci (Di = Pi Vi E [1, n], chaque travail d'une tche doit se terminer avant l'arrive du travail suivant de cette mme tche. C'est donc un cas particulier de systme chance contrainte.

6 sur 94

17/05/2012 17:32

Memoire Online - Securite dans les systmes temps reel - Thomas Vande... http://www.memoireonline.com/12/08/1700/Securite-dans-les-systemes...

- chance arbitraire : aucune contrainte n'est impose entre l'chance et la priode. - dpart simultan : l'instant d'arrive du premier travail de chaque tche concide avec les autres, on peut donc poser Ai = 0 Vi E [1, n] sans nuire la gnralit. Nous nous intresserons plus particulirement dans nos analyses aux systmes chance sur requte et dpart simultan. Le processeur Il existe deux types d'environnement possibles pour un mme systme de tches: - monoprocesseur; - multiprocesseur. Un environnement multiprocesseur constitu de k processeurs peut excuter k units de temps d'excution simultanment contrairement un environnement monoprocesseur qui est limit une excution la fois. Nous resterons dans le cadre de ce mmoire sur des environnements monoprocesseur. Dfinition oisif: Nous reprenons la traduction de la terminologie anglaise : idle (inoccup) en parlant du processeur ou d'instants pour dire de ceux-ci qu'ils sont inutiliss, autrement dit qu'il n'y a pas de travail en cours d'excution. Nous parlerons galement d'units de temps oisives, pour dsigner les moments o le processeur n'excute aucun travail. 2.1.5 L'ordonnancement L'ordonnancement est le mcanisme permettant de choisir la tche qui va tre excute par le processeur un instant donn. L'algorithme qui va effectuer ce choix est appel l'ordonnanceur (le scheduler). Il existe deux manires d'appeler cet ordonnanceur: - appels intervalle rgulier (par exemple chaque unit de temps); - appels bass sur des vnements comme l'arrive, la fin d'excution ou l'chance d'un travail. Nous expliquerons par la suite pourquoi nous avons prfr utiliser une mthode base sur des vnements dans nos simulations. A chaque fois qu'il est appel, l'ordonnanceur va choisir le travail qui doit tre excut au moment de l'appel si celui-ci existe bien entendu, car il est probable qu'aucun travail ne soit disponible cet instant, le processeur restera alors oisif. Un ordonnancement dit premptif signifie qu'une tche peut tre interrompue par une autre plus prioritaire. Si le processus choisi, c.--d. le programme en cours d'excution, est diffrent de celui excut actuellement, l'ordonnanceur effectue alors un changement de contexte qui consiste en une sauvegarde des donnes de la tche actuelle et une restauration des donnes de la nouvelle tche si cela est ncessaire, on appelle ce changement de contexte une premption et nous dirons du travail interrompu qu'il est prempt. Dans un ordonnanceur temps rel, si le systme arrive ordonnancer toutes ses tches en respectant leurs chances, nous dirons de celui-ci qu'il est ordonnanable. L'ordonnanceur va donc devoir assigner des priorits aux diffrentes tches ou aux travaux de ces tches. Il existe donc deux types d'assignations des priorits : 1. priorit fixe : galement appel assignation priorit statique, chaque tche reoit une priorit par rapport aux autres l'initialisation du systme et chaque travail lanc hrite de la priorit de sa tche; 2. priorit dynamique : la priorit est donne aux travaux des tches, non plus aux tches. La priorit peut passer un travail d'une autre

7 sur 94

17/05/2012 17:32

Memoire Online - Securite dans les systmes temps reel - Thomas Vande... http://www.memoireonline.com/12/08/1700/Securite-dans-les-systemes...

tche pendant l'excution du systme, selon la rgle d'assignation utilise, qui peut se baser par exemple sur le temps restant avant la prochaine chance ou le temps d'excution dj coul pour ce travail. Dfinition faisable - ordonnanable[18] : On dit d'un ordonnancement qu'il est faisable si chaque tche se termine avant son chance dans cet ordonnancement. Un systme est ordonnanable s'il existe un ordonnancement faisable pour ce systme. Dfinition optimalit : Une rgle d'assignation de priorit R dsigne la faon dont la priorit de slectionner un travail par rapport un autre est dfinie. On dit que R est optimale si, lorsqu'un systme est faisable, il est ordonnanable tant donn la rgle R. Pour tester l'ordonnanabilit d'un systme en posant l'hypothse que celui- ci est constitu de n tches chance contrainte et dpart simultan, il suffit de tester celui-ci jusqu' l'instant P que nous appellerons l'hyper-priode et qui est gale au plus petit commun multiple des priodes des diffrentes tches composant le systme. P=ppcm{P1,P2,...,Pn} En effet, cet instant et sous ces hypothses, nous nous retrouvons dans la mme position qu' l'instant initial : toutes les tches envoient un nouveau travai l. Earliest Deadline First Nous allons prsenter maintenant la rgle d'assignation que nous utiliserons dans notre tude, EDF ( Earliest Deadline First , plus proche chance d'abord). EDF est une rgle d'assignation priorit dynamique. Lorsqu'un vnement survient : comme la fin de l'excution d'un travail ou l'arrive d'un nouveau travail dans le systme, l'ordonnanceur va slectionner parmi tous les travaux prts tre excuts celui dont l'chance est la plus proche. Ce travail sera alors excut sur le processeur. Autrement dit, plus le travail doit tre excut rapidement, plus il aura de chance d'tre excut. Cette rgle d'assignation est optimale, car EDF trouve toujours un ordonnancement faisable s'il en existe un. Pour un systme S chance sur requte, EDF une borne suprieure de 100% sur l'utilisation, cela signifie que si U(S) = 1 alors il est garanti qu' EDF trouvera un ordonnancement faisable contrairement une rgle d'assignation priorit fixe comme RM ( Rate Monotonic ) qui donne une priorit plus leve aux tches ayant les priodes les plus courtes. La borne sur l'utilisation pour laquelle il est garanti de trouver un ordonnancement faisable n'est que de ln 2 ~ = 69,3%. Cette borne peut-tre augmente 83% et 78% si nous nous limitons respectivement 2 ou 3 tches, d'aprs la dmonstration dveloppe dans [13], mais reste toutefois infrieure EDF. Donnons maintenant un exemple de systme afin d'illustrer le principe du fonctionnement d'EDF. Prenons un systme chance sur requte compos de 2 tches T1(P1 = D1 = 5, C1 = 3) et T2(P2 = D2 = 3, C2 = 1), voici comment EDF va ordonnancer les diffrents travaux de ces tches dont le schma de l'ordonnancement est reprsent sur la figure 2.1.

T1,2 T1,2 T1 ,3 14 56

8 sur 94

17/05/2012 17:32

Memoire Online - Securite dans les systmes temps reel - Thomas Vande... http://www.memoireonline.com/12/08/1700/Securite-dans-les-systemes...

79 10 13 T1 ooo T1,1

T2,2

T2,3

T2,4

T2,5

ooooo 0 1 45 67 9 10 13 14 T2,1 T2 FIG. 2.1 - Exemple d'ordonnancement de 2 tches avec la rgle d'assignation EDF Les deux tches sont dpart simultan et envoient chacune leur premier travail l'instant 0 (autrement dit O1 = O2 = 0). EDF slectionne le travail i-2,1 pour tre excut car l'chance d2,1 < d1,1. A l'instant 1, i-1,1 se termine et EDF doit choisir nouveau un travail, il ne reste que i-1,1 qui continue son excution l'instant 3 lors de l'arrive d'un nouveau travail de T2 car son chance est plus proche. Nous remarquons, qu' l'instant 6, i-1,2 est prempt lors de l'arrive de i-2,3 car celui-ci possde une chance d2,3 < d1,2. Nous stoppons notre exemple l'hyperpriode P = 15 = ppcm(5, 3) car cet instant nous nous retrouvons exactement dans la mme situation qu' l'instant 0 et l'ordonnancement peut recommencer de la mme manire indfiniment. Lorsque les chances sont gales, le choix entre les deux travaux se fait arbitrairement en donnant priorit au travail en cours d'excution, comme l'instant 12 dans notre exemple o i-1,3 poursuit son excution. 2.2 Cryptologie 2.2.1 Introduction La cryptologie est la science du secret, elle se divise en deux branches : La cryptographie : qui tudie les diffrentes possibilits de cacher, protger ou contrler l'authenticit d'une information; La cryptanalyse : qui tudie les moyens de retrouver cette information partir du texte chiffr (de l'information cache) sans connaitre les cls ayant servi protger celle-ci, c'est en quelque sorte l'analyse des mthodes cryptographiques. La cryptographie doit garantir certains principes qualifiant la bonne scurit d'un systme: 1. Confidentialit : grce un chiffrement pour que les donnes soient illisibles par une personne tierce et ainsi garantir que l'information est reste secrte de bout en bout. 2. Authentification : afin que personne ne puisse se faire passer pour la source de l'information, que la provenance des donnes soit garantie. 3. Intgrit : pour que les donnes ne puissent pas tre modifies sans qu'on ne s'en rende compte. 2.2.2 Confidentialit La confidentialit est historiquement le premier but des tudes en cryptographie :

9 sur 94

17/05/2012 17:32

Memoire Online - Securite dans les systmes temps reel - Thomas Vande... http://www.memoireonline.com/12/08/1700/Securite-dans-les-systemes...

rendre secrtes des informations. Cela se ralise par un chiffrement mathmatique des donnes qui utilise comme paramtre une cl. Le chiffrement consiste appliquer une suite d'oprations sur un texte clair, pour obtenir un texte chiffr, aussi appel cryptogramme, ne pouvant tre dchiffr que par l'entit qui possde la cl adquate. Il existe deux catgories de chiffrements: Le chiffrement symtrique galement appel le chiffrement cl secrte: Le principe est de chiffrer le texte clair avec une cl et de le dchiffrer avec la mme cl ou une cl drive de celle-ci. La cl n'est connue que par les deux entits s'changeant des informations. Le chiffrement asymtrique galement appel le chiffrement cl publique: Les cls utilises pour le chiffrement et le dchiffrement sont diffrentes et ne peuvent tre dduites l'une de l'autre par un observateur extrieur sans la connaissance des informations ncessaires. Une des cls peut tre connue de tous tandis que l'autre doit rester secrte. Le but tant que tout le monde puisse l'aide d'une cl publique chiffrer des donnes que seule l'entit possdant la cl secrte puisse dchiffrer. La vision d'un ensemble de textes chiffrs ne doit apporter aucune information sur le texte clair, c'est ce qu'on appelle la notion de scurit smantique (propre au chiffrement asymtrique). Dans le cadre de la scurit dans les systmes temps rel qui doivent respecter des contraintes de temps, nous nous intresserons plus particulirement au chiffrement symtrique qu'il est prfrable d'utiliser car le chiffrement asymtrique a t montr comme plus complexe au niveau du temps de calcul [16]. 2.2.3 Intgrit et authentification Le rseau reliant les entits n'tant pas toujours sr, il est important de contrler la provenance des informations et de s'assurer qu'elles n'ont pas t modifies en chemin, ce sont respectivement les principes d'authentification et d'intgrit des donnes. Afin de garantir ces deux principes, on utilise des codes d'authentification de message (MAC : Message Authentication Code). Un MAC est un code envoy avec le message, il est aussi appel hachage ou empreinte du message. Le hachage correspond au message et permet de garantir la validit de celui-ci. Il est obtenu partir d'un algorithme MAC qui prend deux paramtres en entre: le message dont on dsire garantir l'intgrit et une cl secrte connue des deux entits s'changeant ce message. La probabilit que des donnes diffrentes possdent le mme hachage est trs faible, c'est ce qu'on appelle une collision . La probabilit de trouver une collision et que le message possdant le mme hachage soit comprhensible par le rcepteur est quasi nulle. Une modification mme trs lgre des donnes provoque un changement radical au niveau du hachage obtenu. Si une modification a lieu entre la source et la destination, le hachage ne correspondra plus aux donnes et celles-ci seront rejetes par le rcepteur. Le fait d'utiliser une cl secrte partage entre les deux entits en plus de la fonction de hachage garantit l'authenticit des donnes tant donn qu'un attaquant ne connaissant pas la cl ne peut envoyer des informations accompagnes d'un hachage correct de celles-ci. Diffrentes mthodes existent pour crer une empreinte du message: - une fonction de hachage utilisant une cl en paramtre en plus du message (ex : HMAC); - un chiffrement par blocs (comme les mthodes CBC-MAC).

Chapitre 3

10 sur 94

17/05/2012 17:32

Memoire Online - Securite dans les systmes temps reel - Thomas Vande... http://www.memoireonline.com/12/08/1700/Securite-dans-les-systemes...

Etat de l'art3.1 Introduction Comme nous l'avons mentionn dans le chapitre 1, dans les systmes embarqus qui utilisent un rseau, nous devons la fois respecter les contraintes d'chances, tout en assurant la confidentialit des donnes, l'intgrit et l'authentification. Mais malheureusement, l'utilisation des algorithmes de cryptographie amne souvent au non-respect des contraintes d'chances, surtout pour des systmes embarqus qui sont limits en ressources pour des raisons de cot et de consommation. Les travaux sur la scurit et sur les systmes temps rel ont t tudis la plupart du temps sparment. Il n'existe que trs peu de travaux tudiant le problme de la scurit sous des contraintes d'chance. En tudiant les travaux et articles rdigs propos de la scurit dans les systmes temps rel, nous remarquons que ceux-ci se basent gnralement sur les concepts de qualit de service (QoS), qui ont dj t plus largement analyss dans la littrature. Le rapport de recherche [14] reprend diffrents mcanismes de gestion de la qualit de service dans les systmes temps rel. Souvent, diffrents niveaux de service sont appliqus afin de respecter au mieux les chances tout en scurisant le plus possible le systme. Une certaine valeur est associe chaque niveau selon son importance, l'objectif tant de maximiser la valeur totale du systme. Ce chapitre prsente des mthodes que nous allons analyser et ventuellement critiquer. 3.2 Qualit de service et longueur des cls 3.2.1 Introduction En cryptographie, il est bien connu qu'en augmentant le nombre de bits dont est constitu une cl qui servira chiffrer les donnes, un attaquant mettra plus de temps casser le chiffrement [17]. La complexit pour casser le chiffrement est donc exponentielle en fonction de la longueur de la cl. Il est donc ncessaire d'utiliser une cl de taille suffisante. Une cl forme de bits appartient un espace de cls constitu de 2 cls possibles. Un attaquant qui est capable de tester m cls par seconde, mettrait donc en moyenne 2e_1 /m secondes pour trouver la bonne cl par une attaque de type brute-force (2`/m secondes au pire des cas). Brute-force est une recherche exhaustive sur tout l'espace des cls. Il est donc indispensable que le temps mis pour casser la scurit par ce type d'attaque soit trop important par rapport la valeur des donnes et que le systme de chiffrement soit robuste, c'est dire que le seul moyen d'attaquer le systme soit d'appliquer une attaque brute-force. AES, par exemple, utilise des cls de 128, 192, ou 256 bits [21] donc la quantit de cls possibles avec ces dimensions est relativement importante. De plus, AES est un algorithme de chiffrement robuste puisqu' aucune attaque sur les versions standards d'AES n'a t dcouverte ce jour1, il pourrait donc tout fait tre utilis dans ce cadre. Cependant, employer toujours la plus longue cl provoque une augmentation du temps de calcul utilis par l'algorithme de chiffrement et donc il en rsulte un besoin de dgrader la qualit de service. Cette diminution de la qualit de service permet de diminuer le temps d'excution de manire ce que les chances soient encore toutes respectes. Kyoung Don Kang et Sang H. Son dans leur tude [9] que nous allons prsenter dans cette section, essayent de maximiser la qualit de service tout en garantissant que le systme soit suffisamment scuris. Les auteurs, prsentent leur mthode avec DES, mais ce n'est pas un algorithme de chiffrement robuste,

11 sur 94

17/05/2012 17:32

Memoire Online - Securite dans les systmes temps reel - Thomas Vande... http://www.memoireonline.com/12/08/1700/Securite-dans-les-systemes...

DES a t cass en 22 heures et 15 minutes lors du 3e DES Challenge en janvier 1999 [19]. Nous prfrerons donc prsenter cette mthode en nous basant sur l'algorithme de chiffrement AES.1

Il existe nanmoins des attaques sur AES en diminuant le nombre de tours 5, 6 ou 7 [22].

3.2.2 Modlisation du systme Le modle sur lequel nous nous basons ici est constitu d'un ou de plusieurs systmes embarqus temps rel (SETR), par exemple des capteurs, comme reprsent sur la figure 3.1. Ce SETR doit changer ses informations avec un centre de contrle (CC).

FIG. 3.1 - Schma reprsentant le modle SETR--CC Le SETR est constitu de n tches T1, T2, ... Tn. Le pire temps d'excution Ci d'une tche Ti tient compte: 1. du temps d'excution normal de la tche: Ci,c 2. du temps utilis par le chiffrement avec des cls de bits: Ci,e(`) Ci = Ci,c+Ci,e(`) (3.1)

Ti Ci,c excution normale: Ci,c scurit : Ci,e(t)? Ci = Ci,c + Ci,e(`) FIG. 3.2 - Reprsentation du temps d'excution total Ci La longueur de la cl est augmente en fonction du risque encouru. Ce risque est transmis par un dtecteur d'intrusion (IDS : Intrusion Detection System ) install sur le SETR et sur le CC. Lorsqu'une intrusion est dtecte, le niveau de risque est augment. Le SETR va devoir alors augmenter la taille de la cl avec laquelle il chiffre ses donnes. Cela entranera une diminution de la qualit de service de certaines tches. La notion de qualit de service utilise ici n'est pas dfinie dans [9] mais nous pouvons supposer qu'il s'agit de la frquence des prises d'informations par les capteurs. Cette diminution correspond donc une diminution du facteur d'utilisation de ces tches. En effet, la qualit de service tant plus faible, moins de traitements sont ncessaires et Ci est diminu. Cela permet d'viter de rater des chances cause du cot en temps trop lev d la mise en place de la scurit. Trois niveaux de risques sont dfinis dans [9] : faible: R= 1, moyen: R=2, lev: R=3. Le niveau de dfense S(L) se calcule en fonction de la longueur de la cl L. En nous basant sur les possibilits offertes par AES par rapport la taille des cls, nous posons donc: S(1 28) = 1, S(1 92) = 2, S(256) = 3. Le but est de maximiser la qualit de service globale du systme (QoS) qui augmente en fonction de la qualit de service Q(i) des diffrentes tches. In i=1 Q(i)

12 sur 94

17/05/2012 17:32

Memoire Online - Securite dans les systmes temps reel - Thomas Vande... http://www.memoireonline.com/12/08/1700/Securite-dans-les-systemes...

Maximiser QoS = S in i=1 max Q(i) = 1 (3.2) o Q(i) et max Q(i) sont respectivement la qualit de service courante et maximum pour la tche Ti. Nous dfinissons la variable S par 3.3 { 1 si S(L) - R S =0 sinon (3.3) Ce qui signifie (voir quation 3.2) que si le niveau de dfense (S(L)) est infrieur au niveau de risque (R) envoy par l'IDS, la qualit de service du systme est nulle. Nous calculons l'utilisation de la tche Ti en tenant compte de Ci,e(`), l'utilisation du systme, ne pouvant pas (pour rappel) dpasser une certaine borne d'utilisation (B), par exemple 100% pour EDF (Earliest Deadline First) sinon le systme n'est plus ordonnanable. 3.2.3 L'algorithme d'ajustement de la qualit de service Un algorithme hors-ligne (algorithme 1) calcule premirement la qualit de service optimale pour chaque tche Ti utiliser en fonction de la longueur de la cl L et d'une fonction gi. En effet, chaque tche Ti possde une fonction gi : ui -* qi qui associe un facteur d'utilisation ui un certain niveau de qualit de service qi, le but de l'algorithme tant de choisir le niveau de qualit de service adquat en tenant compte du facteur d'utilisation impos par la mise en place de la scurit. Nous allons dtailler dans cette section cet algorithme repris de [9]. Description de l'algorithme L'algorithme retourne donc un tableau Q_List[e][i] qui reprsente la QoS optimale choisir pour la tche Ti lorsque la cl est utilise. Les tapes qui suivent sont excutes pour chaque longueur de cl de manire fournir les diffrentes lignes Q_List[e] du tableau. Etape 1 : Pour chaque tche, on calcule l'aide de gi et selon la longueur de la cl, l'enveloppe convexe des diffrentes paires < Utilisation, QoS> pour tous les niveaux discrets de QoS (voir figure 3.3). Le but tant de slectionner les points sur gi garantissant une qualit de service maximum avec un facteur d'utilisation minimum.

FIG. 3.3 - Exemple de fonction gi et enveloppe convexe Cela permet d'enlever les paires < uij, qij > qui ne sont clairement pas optimales, o j est le niveau de QoS et uij est le facteur d'utilisation requis pour la tche Ti avec ce niveauj de QoS et avec la cl . Il nous reste alors par exemple (figure 3.3) un ensemble de paires Hi = {< ui1, qi1 >, < ui3, qi3 >, ...} Etape 2 : Les ensembles Hi ?Ti sont fusionns et tris par ordre croissant d'utilisation except les paires < ui1, qi1 > qui correspondent la QoS minimum qui devra tre garantie l'tape 5. Le rsultat de ce tri/fusion est la liste H_List. Etape 3 : On initialise Q_List[e] l'ensemble vide. Entre : gi : ui ? qi pour chaque tche Ti Sortie: Q_L ist[e][i] Pour chaque cl l (128, 192,256 bits) faire 1. Pouride1 nfaire

13 sur 94

17/05/2012 17:32

Memoire Online - Securite dans les systmes temps reel - Thomas Vande... http://www.memoireonline.com/12/08/1700/Securite-dans-les-systemes...

Pour la tche Ti, calculer l'enveloppe convexe Hi={, ... , < uij, qij >} j = L (# niveaux de QoS) Fin Pour /*Fusion trie des enveloppes convexes de toutes les tches par ordre non-dcroissant sur l'utilisation*/ 2.H_List?Fusion(H1-{},H2-{},...HN-{< un1,qn1 >}) 3. Q_List[e] ? 0 4.Ur ?B 5. Pouride1nfaire Si (Ur Ur) Alors FIN Fin Si Q_List[e][id] ? H_List[i].q Ur? Ur-U Uid ? H_List[i].u Fin Pour Fin Pour Algorithme 1: Ajustement optimal de la qualit de service en fonction de la longueur de la cl Etape 4: Ur reprsente tout au long de l'excution de l'algorithme l'utilisation disponible restante, et est initialis la borne d'utilisation maximale B de la politique d'ordonnancement utilise. Etape 5 : On va maintenant initialiser Q_List[L] pour que le systme supporte au moins le niveau minimum de QoS pour chaque tche avec une cl de L bits. Si l'utilisation restante Ur est suffisante pour garantir ce niveau de service, on fixe Q_List[L][i] = qi1 et on soustrait ui1 Ur, autrement l'algorithme se termine par une erreur puisqu'on dpasse la borne d'utilisation B mme avec la QoS minimum. Etape 6 : Et pour terminer, on procde l'augmentation au maximum de la QoS de chaque tche. Pour effectuer cela, on se base sur l'ensemble H_L ist obtenu l'tape 2. On slectionne la premire tche Tid = H_List[i].id, c.--d. celle qui possde la plus faible utilisation. On calcule le facteur d'utilisation supplmentaire U ncessaire pour augmenter le niveau de QoS de Tid. Si celui-ci ne dpasse pas Ur, on augmente le niveau de QoS la valeur H_List[i].q et on soustrait U l'utilisation restante Ur. On passe l'lment suivant dans H_List jusqu' ce que Ur soit insuffisant pour augmenter encore la QoS d'une tche. La longueur des cls et le niveau de qualit de service sont ajusts en ligne l'aide du tableau Q_L ist[L][i] fourni par l'algorithme excut hors-ligne. L'IDS envoie priodiquement le niveau de risque courant R, si R> S(l), on passe

14 sur 94

17/05/2012 17:32

Memoire Online - Securite dans les systmes temps reel - Thomas Vande... http://www.memoireonline.com/12/08/1700/Securite-dans-les-systemes...

une cl L' > L de faon ce que S(L') = R, ensuite la qualit de service des tches Ti est diminue selon Q_List[L'][i] de manire ne rater aucune chance. 3.2.4 Conclusion Nous remarquons qu'un grand intrt de cet algorithme est que la modification en ligne de la qualit de service pour ajuster le temps d'excution se fait avec une complexit constante (O(1)) grce au prcalcul effectu hors-ligne par l'algorithme 1. La complexit de l'algorithme 1 se calcule par rapport au nombre des diffrentes tailles de cls possibles (K, ici K = 3), au nombre de niveau de QoS (L) et au nombre de tches (n). On excute K fois le tri-fusion de L. n paires < Utilisation, QoS >. La complexit du tri-fusion tant de O(nlogn), la complexit de l'algorithme hors-ligne est donc de O(K. Ln. log Ln) qui peut se rduire O(nlogn) tant donn que K est constant (128, 192 ou 256 bits) tout comme le nombre de niveaux de qualit de service (L). Nous allons maintenant analyser la faon dont d'autres auteurs voient le problme, ne se basant plus sur la longueur des cls mais en utilisant diffrents niveaux de scurit, qu'ils dterminent soit par diffrents algorithmes cryptographiques, soit en rajoutant diffrents services selon le temps disponible et l'importance des tches. 3.3 Ordonnancement dynamique bas sur des niveaux de scurit Tao Xie, dans son tude [27] expose une technique qui tablit certains niveaux de scurit . Les niveaux de scurit sont dfinis comme tant une combinaison du transport de l'information sur le rseau, des garanties sur le chiffrement de cette dernire et de l'authentification du client. Les niveaux choisis dans [27] qui se basent sur diffrents modes fournis par le protocole de scurit SSL ( Secure Sockets Layers ) sont: 1. Routage uniquement 2. Routage + chiffrement 3. Routage+SSL 4. Routage + SSL (avec chiffrement de l'information) 5. Routage + SSL (avec authentification du client) 6. Routage + SSL (avec chiffrement de l'information + authentification du client) Plus le niveau de scurit augmente, plus le temps supplmentaire ncessaire pour tablir la scurit est important. Chaque tche possde comme paramtre, en plus de son chance, un domaine de scurit, c.--d. une borne infrieure et suprieure, qui sont les valeurs minimales et maximales admises comme niveau de scurit de cette tche. A leur arrive, les tches sont prises en charge par un contrleur d'admission, qui fixe le niveau de scurit et dcide si oui ou non la tche peut tre excute. Le contrleur de scurit entre alors en jeu. Il augmente le plus possible le niveau de scurit de chaque tche dans la file des tches acceptes en respectant deux contraintes, augmenter le niveau de scurit ne doit pas: 1. empcher la tche de respecter son chance; 2. ni provoquer l'jection d'une tche ayant dj t accepte. Il choisira de faon optimale le niveau de scurit parmi les valeurs dans le

15 sur 94

17/05/2012 17:32

Memoire Online - Securite dans les systmes temps reel - Thomas Vande... http://www.memoireonline.com/12/08/1700/Securite-dans-les-systemes...

domaine de scurit de la tche. EDF ordonnancera ensuite les tches, en prenant la tche au sommet de la queue, c.--d. la tche ayant l'chance la plus proche. Le schma de fonctionnement de cette mthode et les structures utilises sont reprsents sur la figure 3.4.

FIG. 3.4 - Schma reprsentant l'architecture et les structures utilises La notion de Success Ratio (SR) est tablie. SR est dfini comme tant le rapport entre le nombre de tches acceptes (Na) par le contrleur d'admission et le nombre de tches reues (Nr). Na SR =(3.4) Nr Le but tant de maximiser SR tout en maximisant la valeur en scurit du systme, il compare 4 algorithmes utilisant tous EDF comme politique d'ordonnancement: EDF_MINS : le plus petit niveau de scurit spcifi par la tche est automet donc d'obtenir la plus importante proportion de tches respectant leur chance (SR) mais il nglige la scurit. EDF_MAXS : Le contrleur d'admission choisit le plus haut niveau de scurit spcifi dans les paramtres de la tche (Si max). Ce qui garantit au contraire, un niveau de scurit maximum au dtriment du SR. EDF_RNDS : qui est une autre faon de voir le problme, en prenant le niveau de scurit au hasard entre les deux bornes. Ce qui implique un SR et un niveau de scurit global se situant entre celui de EDF_MINS et EDF_MAXS. EDF_OPTS : a t mis au point pour pallier le manque d'optimalit de EDF_RNDS. Il trouve un quilibre entre le niveau de scurit et le SR. Ce dernier est de peu infrieur au SR utilis avec EDF_MINS mais la qualit de la scurit en est fortement amliore. 3.3.1 Conclusion Malheureusement, cette technique autorise certaines tches ne pas tre acceptes cause d'une augmentation de la scurit sur d'autres tches, c'est ce qu'on appelle des systmes temps rel souples (soft real-time). Nous souhaitons plutt nous intresser ici des systmes qui tentent d'atteindre un niveau maximum de scurit sans rejeter de tches, c'est pourquoi nous ne rentrons pas dans le dtail de l'optimisation apporte par l'algorithme EDF_OPTS, le lecteur intress par cette mthode peut consulter [27]. Cette mthode nous permet d'approcher la notion de niveau de scurit que l'on retrouve dans les diffrents travaux analyss dans ce chapitre. La section suivante tablit les niveaux de scurit en fonction de l'algorithme utilis, nous analyserons cette mthode et nous donnerons notre opinion sur la pertinence d'un tel choix. 3.4 Mthode SASES Nous allons donc maintenant prsenter une technique tudie dans [26], appele SASES (Security-Aware Scheduling for Embedded Systems).

16 sur 94

17/05/2012 17:32

Memoire Online - Securite dans les systmes temps reel - Thomas Vande... http://www.memoireonline.com/12/08/1700/Securite-dans-les-systemes...

Cet algorithme tente de fournir une bonne scurit au systme tout en tenant compte cette fois de l'importance du respect de toutes les chances (systme temps rel strict). 3.4.1 Modlisation Nous nous concentrerons sur l'tude de tches temps rel priodiques qui sont indpendantes l'une de l'autre et nous supposerons que les tches sont chance sur requte et dpart simultan. Donc le systme sera ordonnanable par une politique d'ordonnancement EDF si la contrainte U 1 est satisfaite (voir chapitre 2). Nous utilisons ici trois services de scurit : 1. L'authentification ; 2. La confidentialit; 3. L'intgrit. nous utiliserons pour dsigner ces services respectivement les notations a,c,g. Le modle permet de rajouter d'autres services. Les tches Chaque tche est compose d'un ensemble de paramtres, Ti = (Ci, Pi, Li, Si, Wi): Ci : son pire temps d'excution (worst-case execution time), sans tenir compte de la scurit; Pi : sa priode; Li : la taille des donnes protger pour chaque travail, exprime en Ko; Si : un ensemble de bornes dfinissant le niveau de scurit minimum et maximum fournir Ti pour les diffrents services de scurit. Wi: un vecteur ~wa i , wc i , wg ] contenant les poids des diffrents services k les i uns par rapport aux autres. Ces poids sont attribus par l'utilisateur selon l'importance de la scurit de ces services pour la tche.X

wki = 1 et wki ? [0,1]

k?{a,c,i} La taille des donnes Il n'est pas prcis dans [26] comment Li est fix mais nous supposons que l'utilisateur fournit le dbit de traitement des donnes qu'il souhaite imposer pour chaque tche Ti. Nous noterons par Debi ce dbit exprim en Ko/s. Il est alors possible par la formule 3.5 de calculer la taille des donnes traiter pour chaque travail de la tche Ti. La quantit de donnes que nous noterons Li exprime en Ko se calcule en fonction de la priode Pi exprime en nombre de tics d'horloge du processeur. Pi Li = Debi (3.5) #tics/ s Niveaux de scurit Chaque service possde une borne infrieure et suprieure pour le niveau de scurit. ] , [sg

17 sur 94

17/05/2012 17:32

Memoire Online - Securite dans les systmes temps reel - Thomas Vande... http://www.memoireonline.com/12/08/1700/Securite-dans-les-systemes...

Si = (Sa i , Sc i , Sg i ) = ([sa ] , [sc i min, sa i min, sc i min, sg ]) (3.6) i max i max i max o Sa i , Sci et Sgi dnotent respectivement pour Ti les bornes pour le service d'authentification, de confidentialit et d'intgrit. Le niveau de scurit peut s'tendre de 0 1. Le but de l'ordonnanceur sera donc de choisir le niveau de scurit si le plus appropri dans le domaine Si, c.--d. si = (sa i , sc i , sg i ) o sk i E Sk i V k E {a, c, g}. Temps de calcul de la scurit Posons seci, le temps d'excution utilis pour la scurisation d'un travail de la tche Ti. Nous calculons seci comme exprim dans 3.7. seci = X seck i (sk i ) (3.7) k?{a,c,g} C'est donc la somme des seck i(sk i ), c.--d. la somme des temps d'excution ncessaires pour l'application de chaque service de scurit k en fonction du niveau de scurit choisi par l'ordonnanceur pour chacun d'eux. La mthode pour calculer les temps de calcul seck i (sk i ) pour chaque service de scurit est peu dfinie dans [26]. Nous avons donc analys et critiqu la mthode d'un autre article [25] des mmes auteurs. Dans [25], chaque niveau de scurit correspond un algorithme cryptographique (algorithme de chiffrement, fonction de hachage ou mthode d'authentification). Selon ce mme travail, plus le niveau de scurit est important, plus le dbit de traitement de l'algorithme associ ce niveau est faible et donc le temps dpens pour appliquer la scurit sera plus important. Par la suite, nous expliquerons pourquoi nous ne sommes pas entirement du mme avis que l'auteur de [25]. A l'aide des tests de performance fournis dans la librairie crypto++ [4], nous avons calcul le dbit de diffrents algorithmes sur notre processeur, Intel Pentium M Processor 735 - 1.7 GHz. Pour chaque service nous avons choisi une liste d'algorithmes de manire rpartir correctement la valeur des niveaux de scurit en nous basant sur le choix fait par Tao Xie et Xiao Qin dans [25]. Nous allons maintenant montrer comment est calcul le temps d'excution ncessaire pour les diffrents services. 3.4.2 Diffrents services La confidentialit Imaginons qu'un systme embarqu temps rel, que nous noterons SETR, veuille transmettre une information (P) un serveur, que nous noterons CC (centre de commande). Le service de confidentialit est indispensable pour rendre les donnes circulant entre ce SETR et le CC inintelligibles. Le SETR va chiffrer (voir 3.8) cette information grce un algorithme de chiffrement (E), en utilisant la cl de chiffrement (Ke) lui ayant t fournie par le CC pour l'algorithme E. Afin de rduire le cot en temps, nous pouvons supposer qu'il n'y a pas de ngociation des cls en ligne et que l'enregistrement des cls se fait lors de la maintenance du systme. Le chiffrement est symtrique, ce qui signifie que chaque entit (source et destination) possde la mme cl secrte que ce soit pour chiffrer ou dchiffrer les donnes. Un chiffrement symtrique est utilis car il est plus rapide qu'un chiffrement asymtrique [16], ce qui est utile dans les systmes temps rel pour diminuer le temps d'excution requis par la mise en place de la scurit.

18 sur 94

17/05/2012 17:32

Memoire Online - Securite dans les systmes temps reel - Thomas Vande... http://www.memoireonline.com/12/08/1700/Securite-dans-les-systemes...

Le cryptogramme C est alors obtenu par 3.8: C = E(P){Ke,Cpt} (3.8) Un compteur Cpt est inclus dans le message chiffrer, il permet d'viter une attaque par rejeu, c'est dire une attaque o l'attaquant renvoie une copie d'un ancien message. Il est incrment chaque message P envoy par le SETR, s'il ne l'est pas, le CC va rejeter P. Il existe plusieurs manires de chiffrer un message. Chaque algorithme de chiffrement correspond un niveau de scurit sc l et possde un certain dbit de chiffrement i(scl), c.--d. la quantit de donnes que l'algorithme ce niveau peut traiter par unit de temps. Ce dbit dpend de la rapidit du processeur et de l'algorithme utilis, autrement dit du niveau de scurit choisi. Selon la quantit de donnes Li traiter dans chaque travail de la tche Ti, on peut calculer la dure du chiffrement secc ipour un travail de Ti grce l'quation 3.9. Li secc i = (3.9) u(sc i) o u(sci) est une fonction qui donne le dbit i(sc l ) de l'algorithme dont le niveau de scurit est le plus proche et sc i . Nous avons test onze algorithmes de chiffrement diffrents. En fonction des performances de ces diffrents algorithmes nous tablissons un niveau de scurit sc l pour chacun d'eux qui se situe entre 0, 16 et 1, l tant le numro de l'algorithme dans la liste 3.1. La valeur 1 est attribue IDEA, l'algorithme le plus fort selon [25], mais possdant aussi le dbit le plus faible (= 4,44 Ko/ms) et donc le temps d'excution le plus important pour une mme quantit de donnes. Le niveau de scurit des autres algorithmes est dduit de celui-ci, par la formule 3.10. 4, 44 sc l = , 1 l 11 (3.10)ic

l Nous fournissons dans le tableau 3.1, la liste des algorithmes de chiffrement que nous avons obtenus grce aux tests de performance, tris en ordre croissant par rapport au niveau de scurit avec leurs performances respectives (le dbit) et le niveau de scurit qui en dcoule. Ils seront utiliss pour garantir la confidentialit des donnes. Algorithmes de chiffrement Niveau de scurit sc l Dbit u cl (en Ko/ms) Rijndael (128 bits) SEAL-3.0-BE Salsa20 Blowfish RC6 Twofish DES Camellia (256 bits) Shacal-2 (128 bits) IDEA 0,16 0,22 0,38 0,49 0,53 0,65 0,75 0,87 0,90 1,00 27,04 19,72 11,52 9,09 8,44 6,87 5,93 5,11 4,93 4,44

TAB. 3.1 - Confidentialit - Niveaux de scurit et dbits des algorithmes

19 sur 94

17/05/2012 17:32

Memoire Online - Securite dans les systmes temps reel - Thomas Vande... http://www.memoireonline.com/12/08/1700/Securite-dans-les-systemes...

Nous remarquons que la faon dont les algorithmes sont classs est tonnante. En effet, Xie et Qin valuent les performances d'un algorithme cryptographique en fonction du dbit de celui-ci. Mais d'aprs nos tests, nous observons par exemple, que le dbit de l'algorithme Rijndael-128 bits (AES) est plus important que celui de DES ce qui rejoint les rsultats obtenus dans [25]. AES utilisera donc moins de temps pour le chiffrement et recevra un niveau de scurit infrieur. Or, la valeur en scurit d'un algorithme ne dpend pas uniquement du dbit de celui-ci mais de sa complexit et de la longueur des cls utilises (comme nous l'avons mentionn la section 3.2.1). Le chiffrement DES, cause de la faible longueur de la cl (56 bits), a t cass en 1999 en moins d'un jour. Rijndael quant lui, utilise des cls de minimum 128 bits, ce qui est usuellement admis comme tant la limite infrieure acceptable pour la taille des cls d'un algorithme cryptographique permettant d'atteindre une scurit satisfaisante (du moins jusqu' ce jour) [2]. Il n'est donc pas logique de poser pour l'algorithme DES, un niveau de scurit suprieur AES. Lorsqu'on dispose de plus de temps lors de l'ordonnancement, on passerait un algorithme moins performant aussi bien en terme de dbit que de rsistance aux attaques. Nous allons nanmoins continuer expliquer l'ide expose dans cette tude. Elle pourrait tre intressante appliquer en dfinissant autrement les niveaux de scurit. Il est possible de dfinir le niveau de scurit par rapport la longueur des cls en utilisant le mme algorithme pour les diffrents niveaux de scurit, ce qui rduirait la quantit de ressources ncessaires pour implmenter ces diffrents algorithmes dans le systme embarqu. Citons par exemple, l'ide expose dans [10], qui est d'utiliser les variantes 128, 192, 256 bits d'AES. L'intgrit Le service d'intgrit sert garantir que les donnes n'ont pas t modifies entre le SETR et le CC. Le temps d'excutionsecg i ncessaire pour ajouter le contrle d'intgrit au temps normal d'excution est calcul dans [25] partir d'un tableau fournissant les dbits de diffrentes fonctions de hachage de la mme manire que pour le service de confidentialit (par l'quation 3.11). Li secg i = (3.11) (sgi) Nous avons calcul le dbit de neuf fonctions de hachage diffrentes (voir tableau 3.2) et avons ensuite tabli un niveau de scurit pour chacune de celles-ci par rapport leurs performances dans la mesure o plus le hachage est long, plus la scurit est renforce mais le dbit de traitement est plus faible. Le calcul du niveau de scurit des diffrentes fonctions s'effectue de manire analogue au service de confidentialit, nous comparons grce la formule 3.12 les diffrentes fonctions de hachage par rapport aux performances de SHA-256 (possdant le plus faible dbit : 8,98 Ko/ms) dont le niveau de scurit est fix 1. Le niveau de scurit sgl varie entre 0, 05 et 1. si l = 8, 98 , 1 = l = 9 (3.12)ui

l A nouveau, l'auteur suppose qu'une fonction de hachage dont le temps de calcul est plus important (plus faible dbit), sera de meilleure qualit, ce qui est probable mais n'est pas prouv. Nous n'avons pas trouv de contre-exemple comme nous l'avons fait avec AES par rapport DES dans le cadre de la confidentialit.

20 sur 94

17/05/2012 17:32

Memoire Online - Securite dans les systmes temps reel - Thomas Vande... http://www.memoireonline.com/12/08/1700/Securite-dans-les-systemes...

Remarque: On ne peut garantir l'intgrit des donnes en appliquant uniquement sur celles-ci une simple fonction de hachage sens unique sans cl comme une des fonctions du tableau 3.2. Il est important de chiffrer le message dont on dsire garantir l'intgrit avec une cl secrte connue uniquement par le Fonctions de hachage Niveau de scurit sg l Dbit ugl (en Ko/ms) Adler-32 CRC-32 MD5 RIPE-MD128 Tiger SHA-1 RIPE-MD160 HAVAL-5 SHA-256 0,05 0,08 0,15 0,35 0,39 0,43 0,56 0,63 1,00 170,00 117,98 58,99 25,36 22,69 20,71 16,05 14,36 8,98

TAB. 3.2 - Intgrit - Niveaux de scurit et dbits des fonctions de hachage SETR et le CC, car autrement un attaquant pourrait modifier le message et hacher nouveau celui-ci. Etant donn que le message correspondra au rsultat de la fonction de hachage, il sera accept alors que celui-ci a t modifi. On peut supposer ici que la fonction de hachage est applique et ensuite chiffre par le service de confidentialit. Mais si seule l'intgrit doit tre garantie, cette mthode ne convient pas, il est prfrable d'utiliser des MAC (Message Authentication Code) qui garantissent la fois l'authentification et l'intgrit des donnes. L'authentification Il est indispensable de vrifier l'authenticit des donnes circulant dans le systme, c.--d. qu'il faut garantir que c'est bien la source concerne qui envoie les donnes. Dans ce but, nous utilisons des codes d'authentification de message (MAC). Le service d'authentification est divis dans [25] en 3 classes qui utilisent chacune une mthode d'authentification diffrente : 1. faible, nous utiliserons pour ce niveau HMAC-MD5; 2. acceptable, avec HMAC-SHA-1; 3. forte, en utilisant CBC-MAC-AES. Chaque classe a besoin d'un certain temps de calcul. Ces temps sont lists dans le tableau 3.3 issu de [25], la diffrence de niveau est calcule partir de ces temps de calcul. Mthodes d'authentification Niveau de scurit sal Temps de calcul u al (en ms) HMAC-MD5 HMAC-SHA-1 CBC-MAC/AES 0,55 0,91 1 ,00 90 148 163

TAB. 3.3 - Authentification - Niveaux de scurit et temps de calcul des diffrentes mthodes On obtient secai = ual(sa i ) comme tant le temps ncessaire pour garantir l'authenticit des donnes au niveau sai (faible, acceptable, fort). Les services d'intgrit et d'authentification sont spars, or un MAC garantit la fois l'intgrit et l'authentification des donnes. Il est donc, selon nous, inutile d'utiliser le service d'intgrit comme il est dcrit dans [25]. Il serait prfrable de lier ces deux services en un seul.

21 sur 94

17/05/2012 17:32

Memoire Online - Securite dans les systmes temps reel - Thomas Vande... http://www.memoireonline.com/12/08/1700/Securite-dans-les-systemes...

Voici comment appliquer un service qui garantit l'authentification et l'intgrit par une mthode de type HMAC (keyed-hash message authentication code) utilise avec une fonction de hachage sens unique comme SHA-1 ou MD5: Aprs avoir chiffr l'information afin d'en garantir la confidentialit, il nous faut garantir que cette information n'a pas t modifie et provient effectivement du SETR. Dans ce but, un code d'authentification du message (MAC que nous noterons ici M) sera calcul et rajout la suite du message: M= H(S|D|C|Cpt)Km (3.13) Une mthode d'authentification (H) du tableau 3.3 est applique avec la cl Km sur la concatnation de l'adresse de la source (S: le SETR), de la destination (D: le CC), du message chiffr et du compteur Cpt. Nous tenons a prciser que la cl Km doit tre choisie comme diffrente de Ke (la cl utilise pour le chiffrement). En effet, pour des raisons de scurit [17], il est prfrable d'utiliser des cls diffrentes pour l'algorithme de chiffrement et la fonction de hachage. Ensuite le SETR envoie le message crypt Msg et le rsultat du hachage du message M vers le CC, ce transfert est donc constitu de: Message S -* D: Msg, M (3.14) Msg = S, D, C, Cpt (3.15) Le code M garantit en effet l'intgrit des informations transmises. Si un opposant, que nous appellerons Oscar, intercepte et modifie le message, le CC s'en rendra compte, moins qu'Oscar n'arrive modifier le rsultat M produit par la fonction de hachage pour que celui-ci corresponde la modification effectue sur Msg, ce qui voudrait dire qu'Oscar possde la cl Km. L'authentification est galement garantie par la connaissance de Km tant donn que l'adresse de la source et de la destination sont intgres au code, Oscar ne peut modifier ces adresses sans que le code M ne soit erron si celui-ci ne dispose pas de Km. Le rcepteur du message, ici le CC calcule le code M' = H(Msg)Km, si M' =6 M le CC va rejeter le message. Si M' = M, cela veut dire que le message n'a pas t altr et il va donc extraire C et le dchiffrer. Notons, que le mme algorithme peut tre utilis pour le chiffrement et la fonction de hachage sans affecter la sret du systme [17], ce qui peut nouveau tre intressant pour limiter la quantit de ressources installer sur le systme embarqu. 3.4.3 Calcul du bnfice au systme SASES utilise une fonction pour calculer le bnfice en scurit accru par une tche Ti: >i:SLi = bi wk i sk (3.16) k?{a,c,i} i

o bi = Pi P , c.--d. le nombre de travaux de cette tche que l'on peut ordonnancer jusqu' l'hyperpriode P, wki est le poids spcifi par l'utilisateur pour le service k de la tche Ti et sk i est le niveau de scurit du ke service qui est identique pour tous les travaux de la tche. L'ordonnancement est faisable si: - les niveaux de scurit respectent les bornes 3.18; - les chances dij= j. Pi sont toutes respectes. Cela est le cas si les tches sont planifies avec une politique d'ordonnancement EDF et que le facteur d'utilisation U < 1 (cf. quation 3.19), suivant l'hypothse selon laquelle les tches sont priodiques et chance sur requte. Cela revient dire que la somme des rapports entre le temps d'excution total (temps ncessaire pour la scurisation seci ajout au temps d'excution

22 sur 94

17/05/2012 17:32

Memoire Online - Securite dans les systmes temps reel - Thomas Vande... http://www.memoireonline.com/12/08/1700/Securite-dans-les-systemes...

normal Ci) et la priode Pi de chaque tche n'est pas suprieur 100%. Le problme peut donc s'crire comme une maximisation d'un niveau de scurit global (SV), tant la somme des niveaux de scurit des n tches formant le systme: maximisation de SV = >.n SLi = >.n >.bi wkisk i (3.17) i=1 i=1 k?{a,c,i} condition que min(Sk i ) sk i max(Sk i ) (3.18)>. n

[]

etque U=

i=1 Ci + > k?{a,c,i} seck i (sk i ) 1. (3.19) Pi

3.4.4 L'algorithme SASES Nous allons montrer maintenant comment, partir des caractristiques des tches (Ci, Pi, Li, Si), le niveau de scurit est augment le plus possible en tenant compte du poids wki de la scurit de chaque service de celles-ci. Nous avons repris l'ide de l'algorithme prsent dans [26] en le modifiant quelque peu pour le rendre plus comprhensible (voir algorithme 2). Description de l'algorithme 1. Premirement les niveaux de scurit de tous les services pour chaque tche sont initialiss leurs valeurs minimales. 2. Une structure EnsembleServices contient tous les services qui doivent encore tre traits, chaque service est reprsent par le numro de la tche et le service de scurit concern (a = authentification, c = confidentialit, g =intgrit). 3. Si l'utilisation (dfinie en 3.19) est suprieure 1 le systme n'est pas ordonnanable mme avec le minimum de scurit. 4. On slectionne le service de scurit k' de la tche i' qui possde le poidswk'

i'le plus important et qui consomme le moins de temps en l'augmentant d'un niveau de scurit (sk' i' ). 5. Si le fait d'augmenter le niveau de scurit de ce service de sk' i' ne lui fait pas dpasser son niveau maximal de scurit et que le systme reste ordonnanable avec cette augmentation (U 1), on augmente le niveau de celui-ci, autrement on retire sk' i' de EnsembleServices de faon ce qu'il ne soit plus choisi l'tape 4. 6. L'algorithme prend fin lorsque l'ensemble des services est vide, c.--d. lorsque tous les services de chaque tche auront t traits. EnsembleServices ? o Pouride1 nfaire Pour chaque k E {a, c, g} faire } sk i ? min {Sk i

23 sur 94

17/05/2012 17:32

Memoire Online - Securite dans les systmes temps reel - Thomas Vande... http://www.memoireonline.com/12/08/1700/Securite-dans-les-systemes...

EnsembleServices ? EnsembleServices u {i, k} Fin Pour Fin Pour Si ( 2n [Ci+>1k?{a,c,g} seck i (sk Pi < 1) Alors i )] i=1 Tant que (EnsembleServices =6 o) faire Choisir {i', k'} dans EnsembleServices tel que:wk'

i' sk' i' / [seck' i' (sk' i' + sk' i' ) - seck' i' (sk' i' )] i )] } = maxiE[1,n], kEa,c,g {wk i sk i / [seck i (sk i + sk i ) - seck i (sk } Si (sk' i' + sk' i' < max {Sk' i' ET 2n [Ci+>1 k?{a,c,i} seck Pi < 1 avec sk' i (sk i )] i' = sk' i' + sk' i' ) Alors i=1 //On augmente le niveau de scuritsk'

i'? sk' i' + sk' i' Sinon

24 sur 94

17/05/2012 17:32

Memoire Online - Securite dans les systmes temps reel - Thomas Vande... http://www.memoireonline.com/12/08/1700/Securite-dans-les-systemes...

EnsembleServices ? EnsembleServices \ {i', k'} //de faon ne plus en tenir compte dans le choix Fin Si Fait Sinon //pas ordonnanable avec le niveau de scurit le plus bas Fin Si Algorithme 2: Algorithme SASES 3.4.5 Conclusion Nous avons prsent dans cette section l'algorithme SASES permettant de slectionner un ensemble de moyens cryptographiques pour scuriser les donnes de chaque tche tout en respectant leurs chances. L'algorithme que nous exposerons dans la section suivante est une autre faon de choisir les services les plus appropris de manire plus efficace que le parcours effectu par l'algorithme SASES. 3.5 Mthode en graphe de services 3.5.1 Modlisation Man Lin et Laurence T.Yang dans leur tude [12], reprsentent chaque principe de scurit par un groupe de services. Par exemple, il y aura un groupe pour les diffrentes mthodes d'authentification, un autre pour les algorithmes de chiffrement,. . . Ces diffrentes mthodes seront ici appeles services . De la mme manire que dans l'algorithme SASES, chaque groupe i possde un certain poids Wi par rapport aux autres, et dans chacun des Ng groupes, les services ont une certaine qualit, autrement dit une valeur qui leur est propre. Nous noterons Qij, la qualit du service j dans le groupe i. Les services sont reprsents comme tant les noeuds d'un graphe, le noeud < i,j > reprsentant le service j du groupe i. Bien entendu, un seul service maximum dans chaque groupe peut-tre slectionn la fois de manire former un ensemble de services qui seront utiliss pour scuriser le systme, nous appellerons cet ensemble un chemin. Dans la figure 3.5, un exemple de chemin P = {< 1,1 >; ; } est reprsent en gris.

FIG. 3.5 - Reprsentation du chemin P Les services sont classs par ordre dcroissant par rapport leur qualit (par exemple: Q1,1 > Q1,2). Nous noterons secik le temps ncessaire la scurisation de la tche Ti par le service slectionn dans le groupe k. Lorsque la qualit d'un groupe est diminue, secik sera moins important galement, ce qui permet donc d'ajuster la qualit de service pour respecter les chances. La vrification du respect des chances se fait sur base de la condition d'ordonnanabilit ncessaire et suffisante impose par EDF, selon laquelle la somme des facteurs d'utilisation des n tches dont est compos le systme doit tre infrieur 100% (voir quation 3.20).Xn i=1

Ci + PNg k=1secik = 1 (3.20) Pi

25 sur 94

17/05/2012 17:32

Memoire Online - Securite dans les systmes temps reel - Thomas Vande... http://www.memoireonline.com/12/08/1700/Securite-dans-les-systemes...

Nous tenons compte dans le calcul du facteur d'utilisation, du temps d'excution normal Ci et de la mise en place de la scurit pour chaque groupe. Le but est de slectionner dans chaque groupe, le service qui permettra de maximiser la qualit globale Q(P) du chemin P tout en respectant les chances. Q(P)= XNg Qi (3.21) i=1 De plus, la qualit Qi (la valeur inscrite dans le noeud) d'un groupe doit tre suprieure une borne infrieure Min Qi, la qualit minimale accepte pour chaque groupe de services. Qi> Min Qi (3.22) 3.5.2 Recherche dans le graphe Il est propos dans [12], une mthode de recherche par un parcours de graphe en profondeur ( depth-first ) qui permet de choisir les meilleurs services permettant de garantir que le systme soit toujours ordonnanable en utilisant ceux-ci. La recherche est amliore afin de ne pas devoir tester toutes les possibilits de manire exhaustive. Nous allons prsenter maintenant ces amliorations du parcours du graphe. En effet, il existe trois moyens d'laguer le graphe afin de restreindre l'espace de recherche: 1. Premirement, sont supprims dans chaque groupe i, les services qui ne respectent pas la contrainte de qualit minimale acceptable, soit les noeuds < i,j> tels que Qij < MinQi (voir figure 3.6). 2. En parcourant ensuite le graphe par un parcours en profondeur, si un chemin n'est pas faisable (voir figure 3.7[b]), c.--d. s'il ne respecte pas la contrainte d'ordonnanabilit 3.20, on sait que l'ordonnanabilit ne sera

FIG. 3.6 - Elagage par rapport la valeur minimale de qualit de service pas non plus respecte avec un chemin plus long form par le mme prfixe, on peut donc laguer les chemins ([d], [e] et [f]). On continue alors le parcours en profondeur comme s'il n'y avait pas de noeuds fils (voir [c]), la qualit de service du groupe courant est donc baisse, autrement dit on passe directement au noeud suivant dans le groupe, sans tre descendu dans le graphe.

FIG. 3.7 - Elagage en fonction du test de faisabilit 3. Il est encore possible de supprimer des branches en vitant d'analyser des chemins qui ne donneront pas une meilleure qualit de service. Soit un chemin P de longueur Ng faisable, avec une qualit de service Q(P) accrue par celui-ci. - On remarque que diminuer la qualit du dernier groupe Ng sur P ne mnera pas une augmentation de Q(P) (dans l'exemple prsent la

26 sur 94

17/05/2012 17:32

Memoire Online - Securite dans les systmes temps reel - Thomas Vande... http://www.memoireonline.com/12/08/1700/Securite-dans-les-systemes...

figure 3.8 Ng = 4). On poursuit alors le parcours en profondeur en remontant au niveau (groupe) Ng - 1 et en diminuant la qualit de service ce niveau (voir figure 3.8[a']) pour tester nouveau le niveau Ng par aprs. - Lorsque la qualit Qi de tous les niveaux i entre L et Ng est au maximum et que le chemin est faisable, on peut directement remonter au niveau L - 2 et continuer le parcours pour essayer de trouver un meilleur chemin. Dans la figure 3.8, sont reprsents 3 exemples de chemins faisables ([a], [b] et [c]) et les chemins analyss respectivement juste aprs ceux-ci ([a'], [b'], [c']) dans l'ordre du parcours en profondeur du graphe. Pour [c], la recherche se termine car il n'y a plus moyen d'augmenter la qualit de service.

FIG. 3.8 - Elagage en fonction de la qualit de service 3.5.3 Conclusion : Comparaison avec SASES Remarquons que contrairement l'algorithme SASES, cette mthode attribue le mme algorithme cryptographique (service) dans un groupe pour toutes les tches. Cela rend le calcul plus rapide mais est selon nous moins performant au niveau de la valeur en scurit du systme tant donn que lorsque l'algorithme augmente la scurit de toutes les tches en mme temps, il est probable que le systme ne soit plus ordonnanable et donc qu'on doive baisser le niveau de scurit de toute les tches de manire ne rater aucune chance. Cela n'aurait sans doute pas t le cas en modifiant la qualit de service tche par tche. Malgr sa complexit suprieure, SASES permet une granularit plus importante au niveau de la scurit et est donc selon nous plus appropri ce problme d'optimisation de la scurit. 3.6 Conclusion Nous avons dans ce chapitre dvelopp plusieurs mthodes existantes dans la littrature permettant de choisir le meilleur moyen de scuriser le systme, nous avons dcrit les algorithmes utiliss, les points forts et les points faibles de ces diffrentes techniques. Comme nous l'avons fait remarquer dans ce chapitre, le fait d'tablir le niveau de scurit par rapport au dbit des algorithmes n'est pas adapt, il serait prfrable de garder le mme algorithme et de faire varier la taille de la cl ou le nombre de tours de l'algorithme cryptographique selon le temps disponible de manire reprsenter la valeur en scurit comme une volution de la scurit en fonction du temps et d'attribuer une rcompense cette volution. Nous nous sommes donc intresss plus particulirement aux travaux de H. Aydin [3] qui a dvelopp une mthode qui attribue une rcompense selon un supplment de temps d'excution de manire profiter au maximum du temps disponible pour excuter une partie optionnelle qui sera dans notre cas destine la scurit. Le reste de ce mmoire sera consacr cette mthode (chapitre 4) et la faon dont nous avons implment celle-ci (chapitre 5) de manire en valuer les performances.

Chapitre 4

27 sur 94

17/05/2012 17:32

Memoire Online - Securite dans les systmes temps reel - Thomas Vande... http://www.memoireonline.com/12/08/1700/Securite-dans-les-systemes...

Rcompense et scurit4.1 Introduction Comme nous l'avons dfini au chapitre 2, chaque tche dans un systme temps rel doit se terminer avant une certaine chance en produisant le rsultat attendu. Si le systme n'est pas ordonnanable, il faudra alors choisir des parties qui resteront non excutes de faon ce que toutes les tches respectent leur chance. Le systme peut ne plus tre ordonnanable suite une demande de prcision trop fine du rsultat, par exemple, lors du raffinement de la qualit d'une image ou pour citer notre cas, si le niveau de scurit attribu aux diffrentes tches est trop important. La communaut de recherche dans ce domaine, a mis au point plusieurs techniques. Nous pouvons par exemple sauter [11] entirement certains travaux d'une tche donne suivant un facteur de saut qui dtermine combien de travaux sur un certain nombre de travaux de cette tche peuvent tre abandonns par l'algorithme d'ordonnancement. Mais nous supposons dans ce cas, que les donnes produites par une tche qui n'a pas t excute entirement ne sont d'aucune utilit. Or, dans de nombreux secteurs comme le traitement d'images, de la voix, le contrle de robot, et bien d'autres encore, une solution partielle est souvent suffisante. Pour rsoudre notre problme de scurit, nous pourrions galement utiliser de telles techniques qui peuvent nous apporter en un temps acceptable, une scurit partielle mais suffisante. 4.2 Reward-Based Scheduling 4.2.1 Introduction Ce chapitre est bas sur les travaux de H. Aydin [3]. Nous n'envisagerons dans cette section que le cas des tches priodiques avec un systme temps rel chance sur requte. Oi ? mi + tij

Mi mi + oi 0 mi Ti FIG. 4.1 - Partie obligatoire et optionnelle d'un travail 'i-ij de la tche Ti Comme son nom l'indique, le principe de cet ordonnancement est d'associer une rcompense l'excution d'une tche. Chaque tche Ti peut tre dcompose en une sous-tche (partie) obligatoire (Mi) et une sous-tche optionnelle (Oi) (voir figure 4.1). La longueur de la partie obligatoire de chaque travail de Ti sera note mi et oi dsignera la longueur maximum que peut prendre la partie optionnelle d'un travail de Ti. Il est primordial que la partie obligatoire se termine avant l'chance, et nous attribuerons l'excution de la partie optionnelle une fonction de rcompense non-dcroissante. Ce type de technique est bas sur les modles IRIS [5] ( Increasing Reward with Increasing Service ), ce qui signifie en reprenant notre cas, que plus un

28 sur 94

17/05/2012 17:32

Memoire Online - Securite dans les systmes temps reel - Thomas Vande... http://www.memoireonline.com/12/08/1700/Securite-dans-les-systemes...

travail s'excutera longtemps, plus la qualit de la scurit s'en verra amliore et donc plus la rcompense sera importante. Dans le modle IRIS, la distinction entre partie obligatoire et optionnelle n'est pas faite, on permet uniquement aux tches d'obtenir une augmentation de la rcompense en fonction de l'allongement du temps d'excution sans imposer de borne suprieure pour celui-ci excepte bien entendu l'chance de la tche. De manire ne pas continuer scuriser une tche au-del d'un certain niveau de scurit maximum, ce qui risquerait de nous empcher de scuriser les autres tches efficacement, nous remarquons qu'il serait prfrable dans le cadre de la scurit, d'utiliser galement une borne suprieure pour le temps d'excution de la partie optionnelle, ce qui est possible avec cette version Reward Based Scheduling . Nous allons donner priorit la partie obligatoire, la partie optionnelle sera ensuite excute en utilisant le temps restant avant l'chance si la partie obligatoire courante d'aucune tche n'est encore prsente dans le systme. Conditions d'ordonnanabilit et d'optimalit Un niveau minimum de scurit sera impos et sera pris en compte dans la partie obligatoire. Une condition ncessaire pour l'ordonnanabilit du systme est que les parties obligatoires et optionnelles se terminent toutes avant l'chance de manire fournir une sortie minimale acceptable. Mais il faudra galement essayer de maximiser le plus possible la moyenne pondre des rcompenses obtenues par les diffrentes tches afin de rendre cet ordonnancement optimal. Malheureusement, ces deux objectifs sont la plupart du temps antagonistes tant donn que si l'on dsire respecter les chances, il faut gnralement sacrifier en partie la sous-tche optionnelle et donc la rcompense s'en verra diminue. 4.2.2 Une fonction de rcompense Chaque tche se voit attribuer une fonction de rcompense qui sera utilise pour tous ses travaux. L'abscisse reprsente le temps d'excution utilis par la partie optionnelle du travail, l'ordonne retourne la rcompense obtenue avec ce temps. Plusieurs types de fonctions de rcompense sont modlisables selon le type d'application qui nous intresse. Types de fonctions: Convexe: Dfinition fonction convexe [23]: Une fonction f d'un intervalle I vers < est dite convexe si, V x ety E I et tout t dans [0, 1] on a: f(tx + (1 - t) y) = t f(x) + (1 - t) f(y). De manire gomtrique, cela correspond un graphe dont la partie bombe est tourne vers le bas (ex : f(x) = x2). Il en dcoule que, plus le traitement est important, plus la faon dont la rcompense augmente sera importante. Concave: Dfinition fonction concave [23]: On dit que la fonction f est concave si la fonction oppose est convexe. Cela quivaut : V x et y E I et tout t dans [0,1] on a: f(tx + (1 - t) y) = t f(x) + (1 - t) f(y). De manire gomtrique, la partie bombe est tourne vers le haut, donc la partie la plus importante est situe au dbut de l'excution, c'est ce moment que la rcompense augmentera le plus rapidement, ce qui est par exemple surtout trs utile dans le traitement d'images, o l'amlioration de la qualit est importante au dbut et faible par la suite. Linaire : (qui sont des cas particuliers de fonctions concaves et convexes) la

29 sur 94

17/05/2012 17:32

Memoire Online - Securite dans les systmes temps reel - Thomas Vande... http://www.memoireonline.com/12/08/1700/Securite-dans-les-systemes...

rcompense optionnelle.

augmente

uniformment

pendant

l'excution

de

la

partie

Choix du type de fonction FEISTEL propose en 1973 [15], les paramtres et principes de base pour construire un bon algorithme de chiffrement. Parmi ceux-ci, on retrouve la taille des blocs, la taille de la cl, le nombre de tours dans l'algorithme, la complexit d'un tour et la complexit de gnration des sous-cls pour chaque tour. Augmenter ces paramtres lve la scurit mais diminue la vitesse de chiffrement. Il pourrait donc tre intressant d'augmenter ceux-ci lorsque l'ordonnancement le permet. Nous choisirons ici d'utiliser des fonctions convexes qui se rvlent tre intressantes pour modliser la valeur en scurit d'un systme en fonction du temps dpens pour mettre celle-ci en place. En effet, comme nous l'avons vu au chapitre 3, la valeur en scurit d'un systme dpend de la dif~cult casser cette scurit. Plus la longueur de la cl utilise pour le chiffrement est importante, plus une recherche exhaustive sur l'ensemble des cls consommera du temps avant de trouver la cl correcte. En rajoutant 1 bit la cl l, l'espace de toutes les cls possibles et donc le temps mis par une attaque exhaustive sont multiplis par deux. Soit une rcompense de 2 pour une cl de 1 bit, la rcompense vaudra donc 2l pour une cl de l bits, o la rcompense reprsente le nombre de cls tester au pire cas. Il reste donc calculer le temps de chiffrement en fonction de la longueur de la cl et de la taille des donnes chiffrer. A l'aide de la librairie crypto++ [4], nous avons calcul la dure de chiffrement d'une quantit de donnes de 1Mo avec les trois variantes officielles d'AES (voir tableau 4.1). Il est malheureusement impossible de modifier la longueur de la cl bit bit car l'algorithme n'a pas t prvu pour cela la base : le nombre de tour, la taille des cls et la taille des blocs sont dpendants les uns des autres. Longueur des cls Temps de chiffrement (en ms) pour 1 Mo de donnes Ri]ndael / 128 bits Ri]ndael / 192 bits Ri] ndael / 256 bits 38,16 41,93 46,31

TAB. 4.1 - Calcul de la dure de chiffrement selon la longueur de la cl Sur la figure 4.2 est reprsente graphiquement l'volution de la valeur en scurit du systme en fonction du temps obtenu partir du tableau 4.1. L'amlioration de la scurit est si importante que sur le graphique, la diffrence de rcompense n'tait plus faite entre la version 128 et 192 bits par rapport la version 256 bits, nous avons donc opt pour un graphique l'chelle semilogarithmique. Nous obtenons bien une fonction convexe exponentielle pour reprsenter l'volution de la rcompense en fonction du temps.

FIG. 4.2 - Valeur en scurit du systme en fonction du temps 4.2.3 Modlisation du systme Nous considrons un ensemble S de n tches priodiques: T1, T2,..., T n de priode Pi V i E [1, n] chance sur requte et dpart simultan. L'ordonnancement sera test jusqu' l'hyperpriode P (dfinie dans la chapitre 2), ce qui signifie que sur l'intervalle [O, P), chaque tche Ti enverra bi = Pi P

30 sur 94

17/05/2012 17:32

Memoire Online - Securite dans les systmes temps reel - Thomas Vande... http://www.memoireonline.com/12/08/1700/Securite-dans-les-systemes...

travaux. Dans ce modle, chaque tche est donc constitue de bi travaux, nous nous rfrons au je travail de Ti par ij. Ici, nous supposerons que les tches sont toutes indpendantes l'une de l'autre et prtes l'instant t = O. Lorsque l'excution de la partie obligatoire Mi est acheve, la partie optionnelle devient disponible pour l'excution et s'excute aussi longtemps que l'ordonnanceur le permet avant l'chance. 4.2.4 Calcul de la rcompense moyenne du systme Comme nous l'avons dit dans la section 4.2.2, nous allons associer une fonction de rcompense la partie optionnelle, que nous noterons Ri(tij) et qui retournera la rcompense accrue par le travail ij lorsqu'il reoit tij units d'excution au del de sa partie obligatoire. {fi(tij) si O = tij = oi Ri(tij) = (4.1) fi(oi) sinon, O fi est une fonction relle continue positive non-dcroissante et oi reprsente la longueur maximale de la partie optionnelle. mi+oi reprsente dans notre cas le temps maximum ncessaire pour scuriser compltement les informations. Au del de ce seuil (tij> oi), la rcompense ne sera plus augmente (voir quation 4.1) et la priorit sera alors donne un travail qui n'a pas encore suffisamment scuris ses informations. La rcompense moyenne de Ti sera dfinie comme: P bi j=1 Ri(tij) REWi = , (4.2) bi C'est--dire, la moyenne des rcompenses accrues par chaque travail de la tche jusqu' l'hyperpriode (= P = ppcm{P1, P2, ... Pn}), bi tant le nombre de fois que l'on peut placer la priode de la tche Ti dans cet intervalle (= bi = Pi P ). Pour calculer la moyenne pondre de la rcompense (REWW), nous additionnons les rcompenses REWi de chaque tche Ti laquelle nous associerons un certain poids selon l'importance de la partie optionnelle de la tche (voir quation 4.3). Nous intgrerons par la suite ce poids directement dans la fonction fi(tij) sous forme d'un coefficient ki. REWW = Xn wiREWi, (4.3) i=1 4.2.5 Approche Mandatory-First (parties obligatoires d'abord) Dans cette approche, le principe est comme nous l'avons mentionn plus haut, de donner priorit aux parties obligatoires. Nous n'excuterons les parties optionnelles que si la partie obligatoire de chaque tche a t compltement excute. Diverses techniques utilisant l'approche Mandatory-First existent. Nous pouvons les classer en approches statiques ou dynamiques. Utilisation avec une mthode statique Il existe plusieurs mthodes statiques, nous pouvons citer parmi celles-ci Rate Monotonic et Least Utilization . Soit l'ordonnanceur donne une plus haute priorit : - aux parties optionnelles de la tche ayant la plus petite priode, cette mthode est appele Rate Monotonic (RM),

31 sur 94

17/05/2012 17:32

Memoire Online - Securite dans les systmes temps reel - Thomas Vande... http://www.memoireonline.com/12/08/1700/Securite-dans-les-systemes...

- soit en utilisant une mthode Least Utilization (LU) qui assigne les priorits statiquement aux parties optionnelles selon leur facteur d'utilisation (calcul par: (oi - mi)/Pi). Les tches possdant un facteur d'utilisation plus faible reoivent une priorit plus importante [6]. Utilisation avec une mthode dynamique Best Incremental Return (BIR) est une des meilleures mthodes dynamiques car chaque unit de temps, l'algorithme slectionne la partie Oi qui augmente le plus la rcompense en faisant le calcul fi(tij+ ) - fi(tij), o est la dure minimum que l'ordonnanceur attribuera une tche optionnelle. La fonction qui fournit la plus grande diffrence est lue et la tche associe cette fonction peut excuter sa partie optionnelle. BIR est la mthode la plus ef~cace en terme de rcompense mais est trs gourmande en calcul et n'est donc pas utilise en pratique except comme talon, pour comparer les performances d'autres algorithmes dans les simulations. De plus, BIR n'est pas optimal tant donn qu'il ne tient pas compte du temps restant avant les chances. Nous pouvons citer d'autres mthodes d'ordonnancement dynamiques telles Earliest Deadline First (EDF) qui donne une priorit plus importante l'excution des parties optionnelles de la tche ayant l'chance la plus proche ou Least Laxity First (LLF) qui slectionne un des travaux rij prt l'instant courant t dont la laxit ij(t) est la plus faible. La laxit se calcule par la formule 4.4. ij(t) = dij(t) - remij(t) (4.4) o dij(t) est le temps restant avant l'chance du travail rij et remij(t) est le temps d'excution restant de celui-ci calcul l'instant t. Un travail qui a une chance proche et qui a encore un temps important d'excution devant lui est donc plus facilement slectionn par LLF. Least Attained Time (LAT) est une mthode intressante dans le cas de fonctions concaves car elle donne une plus grande priorit aux parties optionnelles des tches ayant utilis le moins de temps processeur (priorit = 1/tij), ce qui permet d'quilibrer le temps d'excution des parties optionnelles. Rsultats de simulations Dans son tude [3] sur le Reward-Based Scheduling , H. Aydin a effectu des tests sur ces diffrentes mthodes et a constat que: - Plus l'utilisation du systme par les parties obligatoires augmente, plus l'cart s'accentue entre la rcompense accrue par l'algorithme optimal et celle accrue par les mthodes voques plus haut (statiques ou dynamiques) utilises avec une approche Mandatory-First. Cela s'explique par le fait que ces mthodes perdent des occasions d'excuter des parties optionnelles avantageuses au niveau de la rcompense en favorisant constamment les parties obligatoires. Nous reviendrons de manire plus dtaille sur l'algorithme optimal par aprs. - La rcompense accumule par une mthode LAT se rapproche plus de la mthode BIR lorsque les fonctions de rcompense sont concaves. Comme LAT, des fonctions concaves favorisent des temps d'excution quilibrs pour les parties optionnelles. - L'cart entre la mthode optimale et les approches Mandatory-First est moins important lorsque les tches possdent des fonctions linaires de rcompense. En effet, les approches Mandatory First perdent des occasions d'excuter des premiers slots valables de parties optionnelles. Or, l'excution d'un premier slot de partie optionnelle est plus important si la fonction est concave vu que c'est ce moment que la rcompense augmente le plus. Exemple d'ordonnancement

32 sur 94

17/05/2012 17:32

Memoire Online - Securite dans les systmes temps reel - Thomas Vande... http://www.memoireonline.com/12/08/1700/Securite-dans-les-systemes...

Schmatisons un exemple bas sur un cas d'cole afin de montrer les limites d'un algorithme Mandatory-First. Considrons deux tches o P1=4, m1=1, o1=1, P2=8, m2=3 et o2=5 avec des fonctions de rcompenses f1(t1) = k1t1 pour T1 et f2(t2) = k2t2 pour T2, k1 et k2 tant donc les coefficients dans les fonctions linaires de rcompense de T1 et T2 respectivement. Nous supposerons que k2 est ngligeable par rapport k1 (c.--d. k1 k2). Avec une approche Mandatory-First nous obtenons donc l'ordonnancement reprsent dans la figure 4.3. Nous observons que quelle que soit l'assignation de priorit (statique ou dynamique) utilise dans cet exemple avec l'approche Mandatory-First, le processeur sera occup dans cet exemple par les parties obligatoires jusqu' l'instant t = 5. Sur l'intervalle inoccup [5, 8] l'algorithme choisira de planifier O1 compltement (soit une unit) tant donn qu'il fournit une plus grande rcompense que O2. Le temps restant (2 units) sera consacr O2. Un algorithme optimal produirait cependant l'ordonnancement reproduit sur la figure 4.4. L'excution de M2 est retarde d'une unit afin de permettre l'ordonnancement de O1 sur la premire priode de T1, ce qui nous fournirait une plus grande rcompense que celle fournie par l'excution d'une unit supplmentaire de O2 et les chances des parties obligatoires sont toujours respectes. Comme k1 k2, on peut conclure que la rcompense accrue par l'algorithme Mandatory-First ne peut valoir qu'environ la moiti de celle accrue par l'algorithme optimal. M1 oo M1

O1 1456

T1 O2 o 68 M2 14 T2 FIG. 4.3 - Ordonnancement gnr par un algorithme Mandatory-First T1 T2 12 456 M2 24

33 sur 94

17/05/2012 17:32

Memoire Online - Securite dans les systmes temps reel - Thomas Vande... http://www.memoireonline.com/12/08/1700/Securite-dans-les-systemes...

FIG. 4.4 - Ordonnancement gnr par