• Aucun résultat trouvé

Techniques de tolérance aux fautes intentionnelles

Chapitre 2 La tolérance aux intrusions

2.3 Tolérance aux intrusions et survivabilité

2.3.1 Techniques de tolérance aux fautes intentionnelles

Nous présentons dans cette section, différentes techniques pour la tolérance aux intrusions. Ces techniques ont servi à la mise en place des architectures tolérant les intrusions présentées dans la section suivante (cf. 2.4).

2.3.1.1 Quelques techniques classiques 2.3.1.1.1 Le chiffrement

Le chiffrement permet de se protéger contre les écoutes passives, telles que l’acquisition de messages sur un réseau de communication, ou l’accès à des informations stockées (segments mémoire ou fichiers de données). On peut aussi utiliser des signatures cryptographiques pour détecter des modifications non-autorisées. En revanche le chiffrement, par lui-même, ne permet pas de corriger les modifications ou destructions indues. On peut distinguer deux grandes classes de techniques de chiffrement : les techniques à chiffre symétrique (ou à clé secrète) et les techniques à chiffre asymétrique (ou à clé publique). Un chiffre symétrique est un algorithme de chiffrement qui utilise la

même clé pour le chiffrement et le déchiffrement : si M est un message en clair et {M}K

est le message M chiffré par la clé K, M = [{M}K]K. Le DES (“Data Encryption

Standard”) est un exemple de chiffre symétrique dont l’algorithme a été publié et normalisé [NBS 93]. Un chiffre à clé publique est un algorithme de chiffrement qui utilise des clés différentes pour le chiffrement et le déchiffrement : M = [{M}KP]KS et

H(M)= [{M}KS]KP. KP est publiée et KS est gardée secrète. L’algorithme RSA [Rivest et

al. 1978] est le plus connu des chiffres à clé publique. Les techniques à clés publiques sont en général plus coûteuses en termes de performances que celles à clés secrètes. Elles sont donc souvent utilisées dans un premier temps pour échanger des clés secrètes, ces dernières étant ultérieurement utilisées pour chiffrer des quantités de données plus importantes.

2.3.1.1.2 La réplication

La réplication permet de se protéger contre les modifications et les destructions non- autorisées [Chérèque et al. 92], puisqu’un intrus devra modifier ou détruire la majorité (voire la totalité) des exemplaires pour réussir son attaque ; mais la réplication est néfaste pour la confidentialité : il suffit de lire l’un des exemplaires pour en obtenir le contenu.

La tolérance aux intrusions 50

2.3.1.1.3 Le brouillage

Le brouillage consiste à ajouter des informations superflues (par exemple, messages de bourrage sur les voies de communication), ou à augmenter l’incertitude dans les réponses aux requêtes statistiques dans les bases de données pour tolérer les attaques par inférence.

2.3.1.2 La Fragmentation-Redondance-Dissémination

La technique de Fragmentation-Redondance-Dissémination (FRD) [Deswarte et al. 91] a pour but une approche globale de la tolérance aux fautes accidentelles et intentionnelles, pour le traitement, le stockage et la transmission d’informations confidentielles.

Le principe de cette technique consiste à découper l’information en fragments de telle sorte que des fragments isolés ne puissent fournir d’information significative, puis à séparer les fragments les uns des autres par dissémination de sorte qu’une intrusion dans une partie du système ne fournisse que des fragments isolés (figure 2.5) ; la dissémination peut être géographique (utilisation de sites ou de voies de communication différents [Shamir 79, Koga et al. 82, Rabin 89]), temporelle (transmission des fragments dans un ordre aléatoire ou mélangés avec d’autres sources de fragments), ou fréquentielle (utilisation de fréquences différentes dans des communications à large bande). La dissémination s’applique aussi aux privilèges afin de séparer les pouvoirs et limiter ainsi l’impact de la corruption d’un site donné sur les autres sites.

Cette technique est applicable au traitement fiable de données confidentielles en s’appuyant sur une approche objet [Fabre et al. 92]. Mais elle peut être aussi utilisée pour réaliser un service de stockage de fichiers sûr ainsi que pour gérer la sécurité dans les systèmes répartis [Fraga et al. 85, Fray et al 86].

Figure 2.5 Exemple d’un système basé sur la FRD

La tolérance aux intrusions 51 Le principe des schémas à seuil est de stocker un secret K sous la forme d’un ensemble

de N images Ki disséminées sur différents sites. Un sous-ensemble quelconque de S

images est nécessaire pour reconstruire le secret. S est appelé le seuil ; S–1 images ne permettent d’obtenir aucune information sur le secret. Suivant un tel principe, l’altération ou la destruction de N–S images peuvent être tolérées. Si N > S, le schéma à seuil peut être considéré comme un code correcteur d’erreur. Le schéma le plus connu, celui de Shamir [Shamir 79], est basé sur l’interpolation polynomiale : étant donné S points, dans un espace de dimension 2, (x1, y1) … (xs, ys) avec xi ≠ xj, pour tout (i, j), il

n’existe qu’un seul polynôme Y(x) de degré S–1 tel que Y(xi) = yi, pour tout i. Pour

générer les images, il suffit de choisir un polynôme de degré S–1, soit Y(x) = p0 + p1x +

p2x2 + … + ps-1xs-1, tel que les pi constituent le secret K, et de calculer les images K1 =

Y(1), K2 = Y(2), …, KN = Y(N). Tout sous-ensemble de S valeurs parmi les N valeurs

Ki permet de retrouver les coefficients de Y(x) et donc de calculer K.

Cette technique est particulièrement performante pour des informations secrètes de petite taille, telles que les clés cryptographiques (de l’ordre de quelques centaines de bits). Une méthode originale proposée dans [Blain 92] permet de reconstituer les images Ki qui auraient été altérées ou détruites, sans reconstituer le secret.

2.3.1.4 La redondance avec diversification

La redondance avec diversification renforce les capacités du système à faire face aux attaques puisqu’elles exploitent généralement des failles spécifiques à certains composants logiciels ou matériels et s’avèrent très souvent inefficaces sur les autres [Deswarte et al. 99]. Par conséquent, pour tolérer les vulnérabilités d’un système, l’approche la mieux adaptée semble être la diversification fonctionnelle qui consiste à utiliser des systèmes développés de façon indépendante avec vote sur les résultats. Différents systèmes tolérant les intrusions [MAFTIA 03, Valdes et al. 02, Wang et al. 01] ont été basés sur cette approche en utilisant des composants COTS avec diversification ce qui réduit considérablement le coût du développement.

2.3.2 Mise en œuvre de la tolérance aux intrusions : exemples