• Aucun résultat trouvé

CHAPITRE III APPROCHE D’INTÉGRITÉ BOUT EN BOUT BASÉE SUR LES CODES

III.1 P RINCIPE GÉNÉRAL DE L ’ APPROCHE D ’ INTÉGRITÉ BOUT EN BOUT

III.1.1

Approche d’intégrité bout en bout : présentation

Notre objectif est de définir une approche d’intégrité indépendante des technologies utilisées dans les différentes couches d’un système de communication (par référence aux sept couches du modèle OSI). En nous inspirant des solutions d’intégrité bout en bout basées sur le concept du « canal noir » (voir chapitre II, section II.3.1), nous proposons une approche d’intégrité bout en bout basée sur le concept du « canal noir » introduit par l’IEC61508 ; elle est mise en œuvre au niveau applicatif et fait abstraction des technologies des couches inférieures. Ainsi, notre solution peut être adoptée, peu importe, notamment, que le système soit basé sur Ethernet, CAN, ARINC ou une autre technologie. La Figure III.1 résume ce principe.

Figure III.1 : Principe de l’approche d’intégrité bout en bout basée sur le concept du« canal noir »

Nous nous reposons sur le concept bout en bout pour deux raisons :

1) La première raison est la certificabilité des approches bout en bout, qui est un atout puisque nous ciblons les systèmes embarqués critiques où la certification est cruciale. En effet, rappelons que pour certifier une telle approche, il n’est pas nécessaire de certifier (vérifier) tous les composants de toutes les couches, mais en contrepartie, il faut prouver que l’approche d’intégrité bout en bout permet de répondre au niveau de sureté requis. Cela est d’autant plus un avantage que les caractéristiques (en sûreté de fonctionnement) des différents composants des couches inférieures ne sont pas toujours fournies par les fabricants.

2) La deuxième raison est qu’en implémentant notre approche au niveau applicatif, elle vient ainsi compléter les mécanismes d’intégrité déployés dans les couches inférieures, ce qui pourrait permettre de couvrir les erreurs résiduelles des couches inférieures. Enfin, rappelons que pour assurer l’intégrité des communications dans les systèmes embarqués critiques, nous avons étudié les différents mécanismes possibles, à savoir, les codes détecteurs, les codes correcteurs, les fonctions de hachage et la cryptographie. Nous avons retenu les codes détecteurs, d’une part, parce que leur efficacité a été prouvée via de nombreux travaux sur l’intégrité et donc il existe une certaine maturité dans leur utilisation ; cette maturité est d’autant plus importante quand il s’agit de certification qui est un enjeu primordial dans les systèmes que nous ciblons. D’autre part, étant données les contraintes des systèmes ciblés, nous cherchons à éviter l’utilisation de mécanismes lourds en temps de calcul. Les codes détecteurs d’erreurs présentent une bonne efficacité en capacité de détection d’erreurs (sous réserve de bien choisir le code), un temps de calcul beaucoup moins coûteux que les autres mécanismes et enfin une facilité de mise en place et de certification.

Couche applicative Couches basses Couches intermédiaires Approche d’intégrité bout en bout Ethernet/CAN/RS485… Protocoles intermédiaires C a n a l n o i r : c o u c h e s i n f é r i e u r e s i n v i s i b l e s

III.1 Principe général de l’approche d’intégrité bout en bout 49

III.1.2

Systèmes « contraignants » ou « très contraignants » :

définitions

Cette section introduit une classification des systèmes embarqués critiques que nous ciblons, une classification qui nous a conduits à décliner notre approche d’intégrité des communications générique en deux approches différentes. En effet, ces systèmes, bien que partageant un grand ensemble de caractéristiques, peuvent avoir différents niveaux de redondance résultant des différents niveaux de contraintes. Nous considérons que plus le niveau de redondance est important, moins les systèmes sont « contraignants », parce qu’ils sont davantage tolérants à l’occurrence de certains scénarios de défaillance. On distinguera donc par la suite deux classes de systèmes : les systèmes « contraignants » et les systèmes « très contraignants ». Cette notion de « contraignant » est à comprendre relativement aux mécanismes d’intégrité des communications à mettre en place, c’est-à-dire en fait, que plus il y a déjà certaines formes de redondance dans le système, plus cela offre d’opportunités de gérer l’intégrité.

Les systèmes que nous considérons « très contraignants » sont ceux où une information à transmettre ne donne lieu qu’à un seul et unique message : un seul exemplaire du même message est alors transmis. Dans ce cas, l’évènement redouté est la non détection d’erreur sur cet unique exemplaire. Dit autrement, si une erreur affecte cet unique exemplaire, et que cette erreur n’est pas détectée, alors, il n’y aucune autre opportunité de la détecter. Par conséquent, l’objectif d’intégrité doit nécessairement porter sur chaque message, pris individuellement. Les systèmes que nous considérons « contraignants » sont ceux possédant des formes de redondance (par exemple une redondance spatiale ou temporelle) qui permettent qu’une information à transmettre donne lieu à plusieurs messages : plusieurs exemplaires du même message sont transmis. Et dans ce cas, l’évènement redouté est la non détection d’une erreur sur tous les exemplaires (si on considère le pire cas où tous les exemplaires sont affectés par l’erreur). Par conséquent, l’objectif d’intégrité peut porter sur un lot de messages : typiquement les différents exemplaires d’un même message.

On constate donc, que selon la classe du système, l’intégrité est à considérer différemment. D’où la pertinence de proposer deux approches différentes.

III.1.3

Les deux approches proposées : mono-code et multi-codes

Suite aux constats de la section précédente, nous proposons deux approches d’intégrité bout en bout différentes.

• Pour les systèmes « très contraignants », nous optons pour une approche d’intégrité

« mono-code », c’est-à-dire utilisant un seul et même code détecteur pour protéger

chacun des messages échangés.

• Pour les systèmes « contraignants », qui rendent possible de tolérer la non détection d’erreur sur plusieurs messages, nous optons pour une approche « multi-codes », c’est-à-dire que, pour deux (ou plusieurs) messages portant la même information, on utilise deux (ou plusieurs) codes détecteurs différents. L’objectif est qu’au moins un de ces codes sera apte à détecter l’erreur. Pour cela, les différents codes doivent être « complémentaires » en termes de capacité de détection. Dit autrement, de manière simple, deux codes sont dits complémentaires, quand le deuxième code arrive à détecter des erreurs (dans le cas idéal toutes les erreurs) que le premier code n’arrive pas à détecter. La complémentarité sera définie plus précisément dans la section III.4.3.

III.1.4

Stratégie de sélection des codes

Dans les deux approches mono-code et multi-codes, l’objectif commun est d’arriver à assurer l’intégrité des communications tout en répondant aux besoins et exigences du système ciblé, et ceci tout en respectant ses contraintes. Nous rappelons qu’un haut niveau d’intégrité des communications est requis étant données des contraintes temporelles strictes et des ressources restreintes. Pour atteindre cet objectif, il faut choisir le ou les « bons » codes, ce qui nécessite de mettre en place une stratégie de sélection des codes. Cette stratégie de sélection consiste pour chaque approche à un compromis entre un ensemble de critères comme le montre la Figure III.2.

Pour l’approche mono-code, les critères sont : le pouvoir de détection intrinsèque d’un code donné, et son coût de calcul en temps d’exécution. La stratégie de sélection consiste à étudier pour chaque code candidat, si son coût de calcul et son pouvoir de détection intrinsèque répondent aux objectifs fixés vis-à-vis des contraintes et exigences du système.

Pour l’approche multi-codes, aux deux critères précédents s’ajoute un troisième critère qui est la « complémentarité » entre les codes candidats. La stratégie de sélection devient alors plus complexe, puisque l’étude des deux premiers critères pour chaque code candidat (comme pour l’approche mono-code) est maintenant à combiner avec l’étude du troisième critère, qui s’applique à un ensemble de codes candidats.

Figure III.2 : Critères de sélection de codes pour les deux approches d’intégrité

Précisons que chacun des trois critères se décompose encore en d’autres critères plus élémentaires qui seront présentés dans les sections suivantes. Par exemple : le critère de coût de calcul fera intervenir comme critères élémentaires les algorithmes d’implémentation des codes, mais également les caractéristiques matérielles des processeurs qui vont exécuter ces codes.

Pour conclure, vu le chevauchement des critères de sélection des deux approches, nous avons choisi de présenter par la suite, d’abord l’approche mono-code avec une analyse des performances des codes détecteurs candidats selon les deux premiers critères (pouvoir de détection intrinsèque et temps de calcul). Puis, pour l’approche multi-codes, nous focalisons surtout sur la présentation de l’analyse de la complémentarité de ces codes et de l’efficacité de l’utilisation des codes complémentaires dans l’augmentation du pouvoir de détection global de l’approche.

Pouvoir de détection intrinsèque Coût de calcul Complémentarité Approche mono-code Approche multi-codes

III.2 Approche d’intégrité mono-code 51