Auto-Stabilisation et Confinement de Fautes Malicieuses : Optimalité du Protocole min+1
aa r X i v : . [ c s . D C ] A p r Auto-Stabilisation et Confinement de FautesMalicieuses : Optimalit ´e du Protocole min + Swan Dubois , Toshimitsu Masuzawa et S´ebastien Tixeuil UPMC Sorbonne Universit´es & INRIA (France), [email protected] Universit´e d’Osaka (Japon), [email protected] UPMC Sorbonne Universit´es & IUF (France), [email protected]
Un protocole auto-stabilisant est par nature tol´erant aux fautes transitoires ( i.e. de dur´ee finie). Ces derni`eres ann´ees ontvu apparaˆıtre une nouvelle classe de protocoles qui, en plus d’ˆetre auto-stabilisants, tol`erent un nombre limit´e de fautes permanentes . Dans cet article, nous nous int´eressons aux protocoles auto-stabilisants tol´erant des fautes permanentestr`es s´ev`eres : les fautes Byzantines . Nous introduisons deux nouveaux concepts de confinement de fautes Byzantinesdans les syst`emes auto-stabilisants. Nous montrons que, pour le probl`eme de la construction d’arbre couvrant en largeur,le protocole auto-stabilisant connu sous le nom de min + Keywords:
Arbre couvrant en largeur, auto-stabilisation, stabilisation stricte, stabilisation forte, tol´erance Byzantine
Le d´eveloppement des syst`emes distribu´es `a large ´echelle a d´emontr´e que la tol´erance aux diff´erents typesde fautes doit ˆetre incluse dans les premi`eres ´etapes du d´eveloppement d’un tel syst`eme. L’ auto-stabilisation permet de tol´erer des fautes transitoires tandis que la tol´erance aux fautes traditionnelle permet de masquerl’effet de fautes permanentes . Il est alors naturel de s’int´eresser `a des syst`emes qui regrouperaient ces deuxformes de tol´erance. Cet article s’inscrit dans cette voie de recherche.
Auto-stabilisation
Dans cet article, nous consid´erons un syst`eme distribu´e asynchrone anonyme, i.e. ungraphe non orient´e connexe G o`u les sommets repr´esentent les processus et les arˆetes repr´esentent lesliens de communication. Deux processus u et v sont voisins si l’arˆete ( u , v ) existe dans G . Les variablesd’un processus d´efinissent son ´etat . L’ensemble des ´etats des processus du syst`eme `a un instant donn´eforme la configuration du syst`eme. Nous souhaitons r´esoudre une classe particuli`ere de probl`emes surce syst`eme : les probl`emes statiques ( i.e. les probl`emes o`u le syst`eme doit atteindre un ´etat donn´e et yrester). Par exemple, la construction d’arbre couvrant est un probl`eme statique. De plus, nous consid´eronsdes probl`emes pouvant ˆetre sp´ecifi´es de mani`ere locale ( i.e. il existe, pour chaque processus v , un pr´edicat spec ( v ) qui est vrai si et seulement si la configuration est conforme au probl`eme). Les variables apparaissantdans spec ( v ) sont appel´ees variables de sortie ou S-variables .Un syst`eme auto-stabilisant [Dij74] est un syst`eme atteignant en un temps fini une configuration l´egitime( i.e. spec ( v ) est vraie pour tout v ) ind´ependament de la configuration initiale (propri´et´e de convergence ).Une fois cette configuration l´egitime atteinte, tout processus v v´erifie spec ( v ) pour le restant de l’ex´ecutionet, dans le cas d’un probl`eme statique, le syst`eme ne modifie plus ses S-variables (propri´et´e de clˆoture ).Par d´efinition, un tel syst`eme peut tol´erer un nombre arbitraire de fautes transitoires , i.e. de fautes de dur´eefinie (la configuration initiale arbitraire mod´elisant le r´esultat de ces fautes). Cependant, la stabilisation dusyst`eme n’est en g´en´eral garantie que si tous les processus ex´ecutent correctement leur protocole. Stabilisation stricte et forte
Si certains processus exhibent un comportement Byzantin ( i.e. ont un com-portement arbitraire, et donc potentiellement malicieux), ils peuvent perturber le syst`eme au point quecertains processus corrects ne v´erifient jamais spec ( v ) . Pour g´erer ce type de fautes, [NA02] d´efinit un wan Dubois, Toshimitsu Masuzawa et S´ebastien Tixeuil protocole strictement stabilisant comme un protocole auto-stabilisant tol´erant des fautes Byzantines per-manentes. Plus pr´ecis`ement, ´etant donn´e c (appel´e rayon de confinement ), [NA02] d´efinit une configuration c-confin´ee comme une configuration dans laquelle tout processus v `a une distance sup´erieure `a c de toutprocessus Byzantin v´erifie spec ( v ) . Un protocole strictement stabilisant est alors d´efini comme un proto-cole satisfaisant les propri´et´es de convergence et de clˆoture par rapport `a l’ensemble des configurations c -confin´ees (et non plus l’ensemble des configurations l´egitimes comme en auto-stabilisation). Cela permetd’assurer que seuls les processus dans le c -voisinage ( i.e. `a distance inf´erieure ou ´egale `a c ) d’un processusByzantin peuvent ne pas v´erifier infiniment souvent la sp´ecification. Cependant, [NA02] fournit une s´erie der´esultats d’impossibilit´e. Intuitivement, il n’existe pas de solution strictement stabilisante (pour tout rayonde confinement inf´erieur au diam`etre) pour tout probl`eme global (constructions d’arbre couvrant,...).Pour contourner de tels r´esultats d’impossibilit´e, [MT06] d´efinit un mod`ele de tol´erance plus faible :la stabilisation forte . Intuitivement, il s’agit d’affaiblir les contraintes relatives au rayon de confinement.En effet, certains processus `a l’ext´erieur de ce rayon sont autoris´es `a ne pas respecter la sp´ecification enraison des Byzantins. Cependant, ces perturbations ( i.e. p´eriodes d’ex´ecution durant laquelle des processusen dehors du rayon de confinement ne v´erifient plus la sp´ecification) sont limit´ees dans le temps : lesprocessus ne peuvent ˆetre perturb´es par les Byzantins qu’un nombre fini de fois et toujours pendant untemps limit´e mˆeme si les Byzantins agissent infiniment longtemps. La mesure d’efficacit´e principale de cetype de protocole est leur nombre de pertubations , i.e. le nombre maximal de perturbations possibles dansune ex´ecution. Dans ce mod`ele de tol´erance, nous avons montr´e [DMT10a] qu’il est possible de r´esoudre leprobl`eme de construction d’arbre couvrant, ce qui illustre le fait que la stabilisation forte permet de r´esoudreplus de probl`emes que la stabilisation stricte (en contrepartie, les propri´et´es assur´ees sont plus faibles). Construction d’arbre couvrant en largeur
Dans cet article, nous nous int´eressons au probl`eme de la construction d’arbre couvrant en largeur . Un processus du r´eseau est d´esign´e a priori comme ´etant la racine (not´ee r ) du syst`eme. Nous supposons que cette racine n’est jamais Byzantine. Une configuration satisfaitla sp´ecification du probl`eme lorsqu’il existe un arbre couvrant le syst`eme enracin´e en r v´erifiant la propri´et´esuivante : pour tout processus, la distance entre v et r dans l’arbre couvrant est ´egale `a celle dans le syst`emeinitial. Il s’agit d’un probl`eme fondamental car il permet de mettre en œuvre de nombreux protocolesde communication (par exemple, diffusion, routage par les plus courts chemins, etc.). Ce probl`eme a ´et´elargement ´etudi´e dans le domaine de l’auto-stabilisation (voir par exemple [G¨ar03, DT01]).Lorsque le syst`eme contient des processus Byzantins, notons B l’ensemble de ces Byzantins. Dans cesconditions, il est impossible, pour un processus correct, de distinguer la racine r´eelle r d’un Byzantin secomportant comme une racine. Nous devons donc autoriser le syst`eme `a construire une forˆet couvrantedu syst`eme (donc un ensemble d’arbres couvrant le syst`eme) dans laquelle chaque racine est soit r soitun Byzantin. Plus pr´ecis`ement, chaque processus v a deux S-variables : un pointeur sur son parent P v etune hauteur H v . Un chemin ( v , . . . , v k ) ( k ≥
1) est un chemin correct s’il v´erifie (i) P v = ⊥ , H v = v ∈ B ∪{ r } , (ii) ∀ i ∈ { , . . ., k } , P v i = v i − et H v i = H v i − + ∀ i ∈ { , . . . , k } , H v i − = min { H u | u ∈ N v i } .Nous pouvons `a pr´esent donner la sp´ecification locale de notre probl`eme. spec ( v ) : (cid:26) P v = ⊥ et H v = v = r il existe un chemin correct ( v , . . . , v k ) tel que v k = v sinonIl est possible de remarquer que, dans le cas o`u aucun processus n’est Byzantin et o`u tout processus v v´erifie spec ( v ) , il existe un arbre couvrant du syst`eme au sens “classique”. Cette sp´ecification implique le th´eor`emed’impossibilit´e suivant : Th´eor`eme 1
Il n’existe pas de solution strictement stabilisante ou fortement stabilisante pour la construc-tion d’arbre en largeur pour tout rayon de confinement et tout nombre de perturbations.
L’impossibilit´e de la stabilisation stricte est dˆue `a [NA02] tandis que celle de la stabilisation forte provientdu fait que tout processus Byzantin peut perturber infiniment souvent la moiti´e des processus sur le cheminqui le s´epare de la racine (rendant donc impossible la majoration de cette distance par une constante).
Stabilisation stricte et forte topologiquement d´ependante
Afin de contourner les r´esultats d’impos-sibilit´e du Th´eor`eme 1, nous introduisons ici une nouvelle id´ee dans le domaine de l’auto-stabilisationconfinant les fautes permanentes. Nous relˆachons la contrainte sur le rayon de confinement. Pour cela, nousassurons que l’ensemble des processus infiniment souvent perturb´es par les Byzantins n’est plus l’union des uto-Stabilisation et Confinement de Fautes Malicieuses : Optimalit´e du Protocole min + c -voisinages des processus Byzantins mais un ensemble de processus d´ependant du graphe de communica-tion et de la position des processus Byzantins. C’est pourquoi nous avons nomm´e ce concept stabilisationstricte (respectivement forte) topologiquement d´ependante (abr´eg´e TD dans la suite). Pour en donner uned´efinition formelle (dans le cas des probl`emes statiques), nous devons introduire quelques d´efinitions.Nous prenons comme mod`ele de calcul le mod`ele `a ´etats : Les variables des processus sont partag´ees :chaque processus a un acc`es direct en lecture aux variables de ses voisins. En une ´etape atomique, chaqueprocessus peut lire son ´etat et ceux de ses voisins et modifier son propre ´etat. Un protocole est constitu´ed’un ensemble de r`egles de la forme < garde > −→ < action > . La garde est un pr´edicat sur l’´etat duprocessus et de ses voisins tandis que l’ action est une s´equence d’instructions modifiant l’´etat du processus.A chaque ´etape, chaque processus ´evalue ses gardes. Il est dit activable si l’une d’elles est vraie. Il est alorsautoris´e `a ex´ecuter son action correspondante (en cas d’ex´ecution simultann´ee, tous les processeurs activ´esprennent en compte l’´etat du syst`eme du d´ebut de l’´etape). Les ex´ecutions du syst`eme (s´equences d’´etapes)sont g´er´ees par un ordonnanceur : `a chaque ´etape, il s´electionne au moins un processus activable pourque celui-ci ex´ecute sa r`egle. Cet ordonnanceur permet de mod´eliser l’asynchronisme du syst`eme. La seulehypoth`ese que nous faisons sur l’ordonnancement est qu’il est fortement ´equitable , i.e. qu’aucun processusne peut ˆetre infiniment souvent activable sans ˆetre choisi par l’ordonnanceur (cette hypoth`ese est n´ecessairepour borner le nombre de perturbations de notre protocole). Nous consid´erons un ensemble S B de processuscorrects d´etermin´e par l’ensemble B des processus Byzantins et la topologie du syst`eme. Intuitivement, S B regroupe les processus qui peuvent ˆetre infiniment souvent pertub´es par les processus Byzantins. Il estappel´e zone de confinement . Nous introduisons ici quelques notations. Un processus correct est S B -correct s’il n’appartient pas `a S B . Une configuration est S B -l´egitime pour spec si tout processus S B -correct v v´erifie spec ( v ) . Une configuration est S B -stable si tout processus S B -correct ne modifie pas ses S-variables tant queles Byzantins n’effectuent aucune action. A pr´esent, nous d´efinissons la stabilisation stricte (respectivementforte) topologiquement d´ependante (D´efinition 2, respectivement D´efinition 5). D´efinition 1
Une configuration r est ( S B , f ) -TD contenue pour spec si, ´etant donn´e au plus f Byzantins,toute ex´ecution issue de r ne contient que des configurations S B -l´egitimes et que tout processus S B -correctne modifie pas ses S-variables. D´efinition 2
Un protocole est ( S B , f ) -TD strictement stabilisant pour spec si, ´etant donn´e au plus f Byzan-tins, toute ex´ecution (issue d’une configuration arbitraire) contient une configuration ( S B , f ) -TD contenuepour spec. D´efinition 3
Une portion d’ex´ecution e = r , . . . , r t (t > ) est une S B -TD perturbation si : (1) e est finie, (2)e contient au moins une action d’un processus S B -correct modifiant une S-variable, (3) r est S B -l´egitimepour spec et S B -stable, et (4) r t est la premi`ere configuration S B -l´egitime pour spec et S B -stable apr`es r . D´efinition 4
Une configuration r est ( t , k , S B , f ) -TD temporellement contenue pour spec si, ´etant donn´eau plus f Byzantins : (1) r est S B -l´egitime pour spec et S B -stable, (2) toute ex´ecution issue de r contientune configuration S B -l´egitime pour spec apr`es laquelle les S-variables de tout processus S B -correct nesont pas modifi´ees (mˆeme si les Byzantins ex´ecutent une infinit´e d’actions), (3) toute ex´ecution issue de r contient au plus t S B -TD perturbations, et (4) toute ex´ecution issue de r contient au plus k modificationsdes S-variables de chaque processus S B -correct. D´efinition 5
Un protocole P est ( t , S B , f ) -TD fortement stabilisant pour spec si, ´etant donn´e au plus fByzantins, toute ex´ecution (issue d’une configuration arbitraire) contient une configuration ( t , k , S B , f ) -TDtemporellement contenue pour spec. Par d´efinition, un protocole TD strictement stabilisant (respectivement TD fortement stabilisant) est plusfaible qu’un protocole strictement stabilisant (respectivement fortement stabilisant). Cependant, il est pluspuissant qu’un protocole auto-stabilisant (qui peut ne jamais stabiliser en pr´esence de Byzantins).
Zones de confinement optimales
Nous d´efinissons les zones de confinement suivantes : S B = { v ∈ V | min { d ( v , b ) | b ∈ B } ≤ d ( r , v ) } et S ∗ B = { v ∈ V | min { d ( v , b ) | b ∈ B } < d ( r , v ) } . Intuitivement, S B regroupel’ensemble des processus situ´es plus pr`es (ou `a ´egale distance) du plus proche des Byzantins que de la racinetandis que S ∗ B regroupe l’ensemble des processus situ´es strictement plus pr`es du plus proche des Byzantinsque de la racine. Il est alors possible de prouver le r´esultat suivant. wan Dubois, Toshimitsu Masuzawa et S´ebastien Tixeuil Algorithme 1
C ALF S : Construction d’arbre couvrant en largeur pour le processus v . Constante : N v l’ensemble des voisins de v dot´e d’un ordre circulaire S-variables : P v ∈ N v ∪ {⊥} : parent de vH v ∈ N : hauteur de v Macro :
Pour tout sous ensemble A de N v , suivant v ( A ) retourne le premier ´el´ement de A qui est sup´erieur `a P v R`egles : ( v = r ) ∧ (( P v = ⊥ ) ∨ ( H v = )) −→ H v : = P v : = ⊥ ( v = r ) ∧ (( P v = ⊥ ) ∨ ( H v = H P v + ) ∨ ( H P v = min { H q | q ∈ N v } )) −→ P v : = suivant v ( { p ∈ N v | H p = min { H q | q ∈ N v }} ) ; H v : = H P v + Th´eor`eme 2
Il n’existe pas de protocole ( A B , ) -TD strictement stabilisant ou ( t , A ∗ B , ) -TD fortement sta-bilisant pour la construction d’arbre en largeur avec A B ( S B et A ∗ B ( S ∗ B (pour tout t). Solution optimale
Il existe un protocole auto-stabilisant simple pour construire un arbre couvrant enlargeur (voir [G¨ar03, DT01]). Celui-ci est connu sous le nom de min + min ) et calculer sanouvelle hauteur en fonction (r`egle + C ALF S pr´esent´e en Algorithme 1 suit ce principe`a l’exception suivante pr`es : si plusieurs voisins pr´esentent une hauteur minimale, alors le processus choisile plus petit qui est sup´erieur au p`ere actuel (selon un ordre circulaire d´efini sur les voisins).Il est alors possible de montrer que l’ensemble des processus strictement plus pr`es de la racine que d’unprocessus Byzantin agiront exactement comme si aucun Byzantin n’´etait pr´esent (´etant donn´e qu’ils sontsuffisament proches de la racine pour que sa hauteur soit consid´er´ee comme minimale). Il est ´egalementpossible de montrer que les processus `a ´egale distance de la racine et d’un processus Byzantin peuvent ˆetreperturb´es par les processus Byzantins. En revanche, nous pouvons borner ce nombre de perturbations. End’autres termes, nous obtenons le r´esultat suivant :
Th´eor`eme 3
C ALF S est un protocole ( S B , n − ) -TD strictement stabilisant et ( n D , S ∗ B , n − ) -TD forte-ment stabilisant pour spec (avec n nombre de processus et D degr´e maximal du syst`eme). Dans cet article, nous nous sommes int´eress´es aux protocoles auto-stabilisants confinant de plus l’effetde fautes Byzantines permanentes. Nous avons montr´e que le protocole min + r -op´erateurs, nous pouvons facilement ´etendre les r´esultatsobtenus `a d’autres m´etriques. Il est alors naturel de se demander si ce nouveau concept de confinementByzantin topologiquement d´ependant peut ˆetre ´etendu `a d’autres probl`emes, statiques ou non. R ´ef ´erences [Dij74] E. Dijkstra. Self-stabilizing systems in spite of distributed control.
Com. ACM , 17(11) :643–644, 1974.[DMT10a] S. Dubois, T. Masuzawa, and S. Tixeuil. Construction auto-stabilisante d’arbre couvrant en d´epit d’actionsmalicieuses. In
AlgoTel , 2010.[DMT10b] S. Dubois, T. Masuzawa, and S. Tixeuil. On byzantine containment properties of the min+1 protocol. In , 2010.[DT01] B. Ducourthial and S. Tixeuil. Self-stabilization with r-operators.
Distributed Computing , 14(3) :147–162,July 2001.[G¨ar03] F. G¨artner. A survey of self-stabilizing spanning-tree construction algorithms. TR ic/2003/38, EPFL, 2003.[MT06] T. Masuzawa and S. Tixeuil. Bounding the impact of unbounded attacks in stabilization. In , pages 440–453, 2006.[NA02] M. Nesterenko and A. Arora. Tolerance to unbounded byzantine faults. In21st Symposium on ReliableDistributed Systems