• Aucun résultat trouvé

Nous fournissons dans cette section une étude analytique des performances des protocoles de TFB conçus pour être robustes, c.à.d. Prime, Aardvark et Spinning ainsi que RBFT. Notre étude analytique nous permet de comparer les performances de ces protocoles sans considérer leur implantation. Nous montrons que le débit calculé de manière théorique est proche du débit mesuré expérimentalement. Enfin, nous présentons le débit théorique de ces différents protocoles en cas d’attaque ainsi que la perte de performance maximale. En particulier nous montrons que cette perte est très importante pour les protocoles considérés comme robustes, mais inférieure à 1% dans le cas de RBFT. Le détail des formules théoriques est fourni en Annexe A.

4.3.1 Méthodologie

Notre analyse théorique consiste à calculer le débit, en nombre de requêtes par seconde, pour chacun des protocoles de TFB conçus pour être robustes considérés dans ce chapitre.

Notre analyse des protocoles de TFB conçus pour être robustes se base sur le coût des opérations de cryptographie5. Plus précisément, nous mesurons le coût de génération et vérification d’un MAC (α), le coût de vérification d’une signature (θ) et le coût de création d’une empreinte (δ). Nous prenons également en compte la taille des lots de requêtes, b. Notons que nous supposons que la taille des lots de requêtes est fixe et, dans le cas de RBFT, est la même pour les messages dePROPAGATIONet les messages dePRÉ-PRÉPARATION. Enfin, nous ne prenons pas en compte le coût de la génération de la réponse envoyée au client. Ce coût est le même pour tous les protocoles excepté Prime, où une signature remplace le MAC calculé par Aardvark, Spinning et RBFT.

Nous considérons une machine multicœurs. Chaque cœur a une vitesse d’horloge de κ Hz. Dans le cas d’Aardvark, la vérification des requêtes et l’ordonnancement sont exécutés en parallèle. Dans le cas de RBFT, chaque réplica et chaque module (c.à.d. les modules de vérification, propagation, transit et surveillance et exécution) s’exécutent en parallèle sur des cœurs distincts. Nous ignorons le coût de l’exécution des requêtes car nous souhaitons mesurer le débit maximal (dans le cas de Prime, nous supposons que ce temps d’exécution est non-nul en cas d’attaque : la précision du mécanisme de surveillance des performances de Prime dépend du temps d’exécution des requêtes). De plus, nous ne prenons pas en compte le coût du traitement des points de contrôle et des changements de vue. Cela permet de simplifier la modélisation tout en gardant une bonne précision.

4.3.2 Performances dans le cas sans faute

Dans cette section nous présentons les débits théoriques des différents protocoles conçus pour être robustes dans le cas sans fautes. Nous analysons ces formules dans le but de comparer les performances de ces protocoles.

5. Les formules présentées en Annexe A prennent également en compte le coût des opérations de communication. Nous les avons omis dans cette section dans un souci de clarté ; le coût des opérations de communication est bien pris en compte dans nos calculs.

La Table 4.2 présente les formules de débit de chaque protocole. Nous pouvons Prime : κ 2θ+((11f +5)θ+(6f +2)δ+P )/b Aardvark : κ max(θ+α+δ,(α(10f +b)+δ)/b) Spinning : α(13f +2b)+δ(b+1) RBFT : κ max(θ+α(n+f )+δ,α(2n+4f +1)/b+δ)

TABLE 4.2 – Débit de Prime, Aardvark, Spinning et RBFT dans le cas sans fautes pour ordonner une requête dans un lot de requêtes de taille b. Dans le cas de Prime, P est la période d’envoi des messagesPRÉ-PRÉPARATION.

faire les observations suivantes. Premièrement, le débit de Prime est plus faible que le débit des autres protocoles, étant donné qu’il n’utilise que des signatures pour authenti-fier ses messages, qui sont par nature plus couteuses que des MACs. Par conséquent Prime fournit les moins bonnes performances des quatre protocoles étudiés. Deuxiè-mement, en parallélisant la vérification des signatures, Aardvark et RBFT peuvent en éliminer le coût supplémentaire. Leur coût revient donc au coût d’ordonnancement d’une requête. Troisièmement, nous remarquons qu’en terme d’opérations de cryptogra-phie, en ne prenant en compte que la phase d’ordonnancement, Aardvark, Spinning et RBFT fournissent un débit équivalent : pour un lot de requêtes de taille b, ils génèrent et vérifient respectivement 10f + b, 13f + 2b et 10f + 1 MACs. Ceci est normal étant donné que ces trois protocoles ordonnent les requêtes globalement de la même manière, en suivant le protocole de validation en trois phases.

4.3.3 Précision des formules théoriques

Dans cette section nous souhaitons savoir si les formules théoriques donnent des résultats proches des résultats expérimentaux. Par souci de clarté nous prenons comme exemple RBFT seulement et montrons que son débit expérimental approche son débit théorique. Nous sommes arrivés à la même conclusion avec les autres protocoles (ceci n’est pas étonnant étant donné que les formules des autres protocoles ont été obtenues de la même manière que pour RBFT). Les conditions expérimentales sont celles décrites dans la Section 4.4.2.

Les figures 4.8a et 4.8b montrent le débit maximal du protocole dans le cas sans fautes en fonction de la taille des requêtes, respectivement lorsque f = 1 et f = 2. Comme nous pouvons le constater, le débit théorique est très proche du débit expé-rimental. En effet, la différence est d’au plus 10%, pour f = 1 et des requêtes de 2ko, tandis que la différence moyenne est de 2,8%. Nous pouvons donc valider les formules de débit et de latence théoriques. Nous observons que le débit théorique est légèrement inférieur au débit expérimental. Nous émettons l’hypothèse que cela vient d’une imprécision dans les valeurs avec lesquelles nous avons instancié les formules. En particulier, cette différence pourrait être dûe à une imprécision dans la mesure de chaque opération (génération et vérification de messages, taille des batchs, etc).

0 5 10 15 20 25 30 35 8 100 500 1k 2k 3k 4k Débit en kreq/s

Taille des requêtes en octets

Débit théorique Débit expérimental (a) f = 1 0 5 10 15 20 25 8 100 500 1k 2k 3k 4k Débit en kreq/s

Taille des requêtes en octets

Débit théorique Débit expérimental

(b) f = 2

FIGURE4.8 – Comparaison des débits théoriques et expérimentaux de RBFT dans le cas sans faute.

4.3.4 Performances en cas d’attaque

Dans cette section nous présentons les formules théoriques permettant de calculer le débit des différents protocoles en cas d’attaque. En particulier, nous considérons les attaques présentées dans la Section 4.1 pour Prime, Aardvark et Spinning. Concernant RBFT, nous présentons le débit minimal que peut fournir le principal malicieux de l’instance de protocole maître sans être détecté.

La Table 4.3 présente les formules de débit de chaque protocole en cas d’attaque. Prime : κ/(2θ +(11f +5)θ+(6f +2)δ+Pb + E + T ARattaque− T ARsf) Aardvark : κ/max(θ + α + δ,α(10f +b)+δb ) + Adelai(obs, exp) Spinning : (n−f )∗Tsf+f κ/(Lsf+St) n RBFT : (1−∆)κ max(θ g+α(1 g+n+f −1)+δ g,α2n+4f −1 b +δ)

TABLE4.3 – Latence de Prime, Aardvark, Spinning et RBFT en cas d’attaque pour ordonner une requête dans un lot de requêtes de taille b.

Dans le cas de Prime, E est le temps d’exécution d’un lot de requêtes de taille b, tandis que T ARsf et T ARattaque sont respectivement le temps de réponse maximal (c.à.d. le temps maximal entre l’envoi de deux messagesPRÉ-PRÉAPARATION) dans le cas sans faute et le temps de réponse maximal en cas d’attaque. Dans le cas d’Aardvark,

Adelai(obs, exp) est une formule qui, à partir du débit observé obs et du débit requis

exp, calcule le délai maximal que le principal malicieux peut appliquer aux messages d’ordonnancement sans être détecté. Dans le cas de Spinning, Tsf est le débit observé dans le cas sans faute et Stest le le délai après lequel un principal est considéré comme malicieux. Dans le cas de RBFT, g est la proportion de requêtes valides envoyées par les clients malicieux et ∆ est le seuil de détection d’un principal de l’instance de protocole maître malicieux.

Comme nous l’avons présenté dans la Section 4.2.1, la perte de performance théo-rique de Prime, Aardvark et Spinning en cas d’attaque est respectivement de 73%, 86% et 97% (notons que ces valeurs sont proches des valeurs mesurées expérimentalement présentées dans la Section 4.2.1). Ces valeurs ne sont clairement pas acceptables. Nous pouvons observer que le débit de RBFT en cas d’attaque dépend de la valeur de ∆. Nous précisons dans l’Annexe A.3 comment calculer cette valeur de manière théorique. En particulier, la valeur théorique est de zéro. Cenpendant, cette valeur théorique ne prend pas en compte les légères fluctuations de performance et de mesure des performances que l’on observe en pratique. Durant notre analyse expérimentale, nous avons observé ∆ ≥ −0, 005. Avec ∆ = −0, 005, la perte de performance théorique maximale de RBFT est de 0,5%. Bien évidemment, une valeur plus faible de ∆ conduirait à une perte maximale de performance plus élevée. C’est pourquoi, comme nous le montrons dans la Section 4.4.4, il est important de bien choisir la période de surveillance des performances.