FR 3061326 A1 20180629 FR 1601873 A 20161227 1 DISPOSITIF ET PROCEDE POUR CREER UN ENVIRONNEMENT DE CONFIANCE DANS UN SYSTEME DISTRIBUE Domaine de l'invention L'invention concerne le domaine des systèmes distribués et plus particulièrement concerne un procédé et un dispositif permettant d'établir une communication de confiance entre plusieurs processeurs d'un système distribué. Etat de la Technique De nombreux équipements ont des processeurs qui disposent en plus du mode d'exécution standard ou non sécurisé, d'un mode d'exécution sécurisé aussi connu sous le nom de mode d'exécution en environnement de confiance ou « Trusted Execution Environment (TEE)» selon l'anglicisme consacré. Dans ces équipements, lors de la phase de démarrage, le premier code qui s'exécute, en général un chargeur de système d'exploitation, a accès à toutes les ressources du processeur et est en mode sécurisé (S). Le chargeur de système d'exploitation est en charge de la gestion des ressources et permet d'autoriser les interactions entre les ressources processeur et les différents éléments « matériel » tels la mémoire vive (par exemple, DDR-SDRAM) et les interfaces d'entrée-sortie. Un cas particulier d'interface d'entrée-sortie est celui des interfaces de communication, qui permettent d'accéder à un réseau de communication tel Ethernet ou une liaison série telle que RS-232. Le chargeur du système d'exploitation est aussi en charge de la gestion des droits d'accès, et garantit que les ressources allouées en mode sécurisé ne sont utilisées que par les éléments matériel ou par du code exécutable ayant des droits supérieurs ou égaux. Un élément 3061326 2 matériel ou un code s'exécutant sur le processeur, alors qu'il est en mode non-sécurisé NS, n'a par défaut, accès à aucune ressource. Le chargeur de système d'exploitation peut alors informer certaines ressources processeur qu'elles peuvent accepter des demandes de code ou 5 d'éléments matériel s'exécutant en mode NS. Typiquement un périphérique est soit sécurisé soit non-sécurisé. Les périphériques de communication sont ainsi alloués à l'un ou l'autre mode. Par exemple, un logiciel en mode NS communiquera par interface de communication Ethernet en mode NS, un logiciel en mode S 10 communiquera par une liaison série (RS-232) en mode S. Le chargeur de système d'exploitation, en plus du système qui s'exécute en mode S, peut lancer un autre système d'exploitation non sécurisé qui sera limité aux ressources en mode NS. Par exemple, on peut charger un noyau Linux® qui s'exécute alors en mode non-sécurisé. 15 Les deux systèmes d'exploitation ayant ainsi démarré respectivement en mode S et NS, démarrent chacun un ensemble de logiciels dont ils déterminent le mode, S ou NS. Il y a alors deux environnements ou mondes dits « monde sécurisé » et « monde non-sécurisé» qui se partagent l'usage d'un processeur de façon isolée. 20 L'allocation au monde sécurisé S ou au monde non-sécurisé NS d'un élément matériel peut être faite soit au niveau du périphérique, soit au niveau du bus permettant d'accéder au périphérique. Ainsi si un logiciel s'exécutant en mode NS tente d'accéder à un périphérique sécurisé S, il reçoit en général une Erreur de Bus soit émise par le 25 périphérique lui-même, soit par le bus permettant d'accéder au périphérique. En effet, le matériel une fois configuré S ou NS, garantit que le monde non sécurisé NS ne peut pas lire ou écrire une information du monde sécurisé S. 3 3061326 Lorsque deux processeurs ou plus, chacun configuré avec les deux modes (S, NS) doivent être associés pour former un système distribué, ils utilisent en général deux liens séparés qui reflètent cette isolation. Deux types de communication sont utilisés, typiquement Ethernet pour les 5 communications NS, et la liaison série pour les communications S. Ethernet est rarement utilisé en mode S, soit par manque d'interface disponible, soit parce qu'il nécessite un ensemble de logiciels pouvant fragiliser la sécurité des logiciels s'exécutant en mode S. Pour pallier cela, une liaison série est mise en place, résultant en un doublement du 10 nombre de connecteurs et de câbles, ce qui induit une vitesse de communication plus faible pour le mode S, et des communications limitées au point-à-point, ou au point-multipoint mais en mode unidirectionnel, pour le côté sécurisé. Il est possible de n'utiliser qu'un seul type de communication, dont 15 le contrôle matériel est confié à l'un des deux mondes S ou NS. Généralement, il s'agit du monde S qui a besoin d'une communication garantie, que par nature le monde NS ne peut pas offrir. Toutes les communications du monde NS doivent alors passer par le monde S. Il en résulte des inconvénients majeurs, tels que : 20 - la communication entre le monde S et le monde NS est plus complexe, en ce qu'elle augmente la surface d'attaque ; - le passage répété des paramètres de transmission à travers la transition S-NS est coûteux en temps d'exécution ; - le besoin de performance du monde NS est géré par le monde S. 25 Il en résulte alors une plus grande complexité du monde S, une difficulté de maintenance du code, et une diminution des performances globales par rapport à un système qui ne dispose pas d'un environnement de confiance (TEE). 4 3061326 Ainsi, il existe le besoin d'une solution qui permette dans un système distribué, des communications entre processeurs opérant dans un environnement de confiance, et qui pallie les inconvénients des approches connues. La présente invention répond à ce besoin. 5 Résumé de l'invention Pour atteindre cet objectif, un objet de la présente invention est de proposer un dispositif et un procédé qui permettent de propager une information sécurisée ou non-sécurisée à travers un seul lien réseau. Le procédé de l'invention s'appuie sur l'utilisation d'une interface de 10 communication dite « Trust Aware Adapter », qui lorsqu'elle reçoit une requête via un bus système associé à un processeur source, détermine si la requête est une requête émise du monde sécurisé ou du monde non-sécurisé, et construit un message contenant l'information du monde correspondant à la requête source pour envoi vers la destination. 15 À destination, l'interface de communication qui reçoit le message, identifie par la lecture de la trame reçue à quel mode d'exécution appartient la requête source, et sollicite au niveau du processeur cible le logiciel de type sécurisé ou non-sécurisé qui est approprié. Avantageusement, l'interface de communication à destination est 20 un dispositif matériel qui opère de manière autonome sans intervention d'un niveau logiciel. L'interface de communication en mode émetteur ou récepteur, utilise pour marquer le message comme étant sécurisé ou non-sécurisé, des champs du protocole de communication du système distribué qui ne sont pas accessibles au niveau logiciel. Dans une 25 implémentation particulière, le protocole de communication est le protocole RapidlOTM, et le champ utilisé pour indiquer l'information du mode d'exécution est le champ virtuel VC « Virtual Channel ». 3061326 Ainsi, l'environnement de confiance (TEE) est étendu au niveau d'un système distribué sur un réseau, et il devient possible de créer un environnement sécurisé distribué pour un ensemble de mondes sécurisés, sans doubler la connectivité pour les communications. 5 Avantageusement, ces mondes sécurisés fonctionnant ensemble peuvent alors fournir un niveau de service supérieur, de par la vue d'ensemble qu'ils ont sur le système distribué, la topologie du réseau étant non significative pour opérer l'invention. Le réseau est partagé entre les deux mondes, de sorte qu'ils ne sont pas localisés sur chaque noeud 10 du réseau, mais ils forment chacun un système distribué qui exploite un réseau unique. Avantageusement, l'invention permet de limiter le nombre d'interfaces de communication utilisées, en proposant une interface unique pour la gestion des modes d'exécution sécurisé et non-sécurisé. 15 L'invention permet de plus d'utiliser des interfaces de communication autorisant à la fois des communications performantes et multipoints, bidirectionnelles, aussi bien depuis le monde sécurisé que depuis le monde non-sécurisé. Avantageusement, l'invention permet d'utiliser les interfaces de 20 communication, telles les périphériques RapidI0, de façon efficace en conservant l'isolation des deux mondes sécurisé et non-sécurisé, sans impacter leurs logiciels, en conservant ainsi leur simplicité, notamment dans la partie sécurisée. L'invention trouvera des applications avantageuses dans les 25 domaines où les environnements de confiance TEE sont utilisés, tels que : - la sécurité : c'est un domaine d'application privilégié de la TEE, qui garantit le respect d'une chaine de confiance à partir d'une clef cryptographique stockée dans le silicium du processeur. L'isolation du 3061326 6 monde sécurisé permet d'enregistrer des mots de passe, et d'héberger des algorithmes confidentiels. Cela permet d'offrir des fonctions de cryptage et de signature pour la protection des données, de donner accès à un GPS sécurisé, de gérer des droits numériques, de donner accès à 5 des systèmes de paiement, etc. Ces fonctions typiquement sécurisées sont ainsi mises à disposition d'un système d'exploitation (OS) standard de type Windows° ou Android® dans le monde non-sécurisé. - la supervision : le monde sécurisé peut observer à intervalles réguliers le fonctionnement du monde non-sécurisé. Cela permet de 10 détecter des pannes, des tentatives d'intrusions, de mesurer le niveau d'utilisation des ressources logicielles et matérielles, etc. Cela permet aussi de provoquer une mise en suspension ou un redémarrage d'un OS du monde non-sécurisé. Ce type d'utilisation est envisagé par exemple dans le contexte des drones, systèmes devant garantir des fonctions 15 vitales en autonomie. - le temps-réel : la TEE peut être configurée de sorte à garantir la réactivité du monde sécurisé, indépendamment des traitements en cours côté non-sécurisé. Le monde sécurisé peut héberger un OS temps-réel dur, qui partage ainsi les ressources matérielles avec un OS plus 20 complexe côté non-sécurisé. Ce type de fonctionnement se trouve dans les réseaux de capteurs-actionneurs complexes, qui joignent des fonctions d'acquisition de données régulières et de commande de moteurs précises, à des fonctions d'analyse restituant un premier niveau de synthèse sur les données acquises ou le fonctionnement du système. 25 Les systèmes opérant en environnement TEE qui peuvent tirer bénéfice de l'invention sont par exemple des microprocesseurs de smartphones, tablettes, set-top boxes, les télévisions, des cartes électroniques, type DSP, FPGA, ASIC, et de tout système sur des 7 3061326 machines de petites tailles ou sur des appareils électroniques autonomes (sondes spatiales, ordinateur de bord, ...) ou des centres de calcul. Pour obtenir les résultats recherchés, un dispositif et un procédé sont proposés. 5 En particulier, il est proposé un dispositif pour établir dans un système distribué, des communications de confiance entre une pluralité de processeurs, chaque processeur ayant configuré un environnement de confiance permettant un mode d'exécution sécurisé et un mode d'exécution non-sécurisé, le dispositif comprenant des moyens 10 permettant : - de recevoir d'un processeur source, une requête de transmission de données, pour des données issues soit du mode d'exécution sécurisé soit du mode d'exécution non-sécurisé ; - de placer au moins dans le corps d'une trame lesdites données et dans 15 un champ d'entête de ladite trame une indication du mode d'exécution relatif auxdites données, ledit champ d'entête étant accessible uniquement au niveau matériel; et - d'émettre ladite trame sur un lien réseau du système distribué. 20 Avantageusement, la trame a un format adapté au protocole de communication utilisé dans le réseau du système distribué. Dans une implémentation, le protocole de communication est le protocole RapidI0, le format de la trame est le format Rapid10 et l'indication du mode d'exécution des données est placée dans le champ Virtual Channel (VC) 25 des trames Rapid10. Dans une variante de réalisation, l'indication du mode d'exécution des données est l'état à zéro ou à un d'un bit. Selon un mode de réalisation, la requête de transmission est émise sur un bus système du processeur source. Dans une variante, le 3061326 8 bus système est un bus selon le standard Advanced Microcontroller Bus Architecture (AMBA). Selon des modes d'implémentation, le processeur source est un microprocesseur synthétisé sur un circuit à logique programmable 5 (FPGA) ou un circuit sur puce (SOC). Selon une réalisation, le lien réseau est couplé à un commutateur réseau. Le réseau peut être un réseau en anneau ou un réseau maillé ou un réseau en étoile. L'invention couvre aussi le dispositif revendiqué comprenant de 10 plus des moyens permettant : - de recevoir une trame émise sur un lien réseau ; - de déterminer le mode d'exécution à appliquer aux données contenues dans la trame ; et - d'émettre une requête de transfert correspondante. 15 Un système de communication en accord avec l'invention comprend : - un processeur source configuré en environnement de confiance ; - un processeur destinataire configuré en environnement de confiance ; 20 - un réseau reliant le processeur source au processeur destinataire par des liens réseaux ; - une interface de communication couplée au processeur source et qui comprenant le dispositif revendiqué ; et - une interface de communication couplée au processeur destinataire et 25 qui comprend le dispositif revendiqué. L'invention couvre aussi un procédé pour établir dans un système distribué des communications de confiance entre une pluralité de processeurs, chaque processeur ayant configuré un environnement de confiance permettant un mode d'exécution sécurisé et un mode 3061326 9 d'exécution non-sécurisé. Le procédé est caractérisé en ce qu'il comprend au moins une étape consistant à émettre sur un lien réseau du système distribué, une trame contenant dans le corps de trame des données issues soit du mode d'exécution sécurisé soit du mode 5 d'exécution non-sécurisé, la trame contenant de plus dans un champ d'entête, une indication du mode d'exécution relatif aux données, le champ d'entête étant accessible uniquement au niveau matériel. Dans un mode d'exécution, l'étape d'émettre une trame est opérée par une interface de communication couplée à un processeur source et 10 au lien réseau. Selon les réalisations, le procédé comprend avant l'étape d'émettre une trame, les étapes de : - générer sur un bus système d'un processeur émetteur une requête de transmission de données, les données étant issues du mode d'exécution 15 sécurisé ou du mode d'exécution non-sécurisé ; et - placer dans le corps de la trame les données et dans le champ d'entête de la trame uniquement accessible au niveau matériel, l'indication du mode d'exécution relatif aux données. 20 Avantageusement, le procédé revendiqué opère pour un bus système de type AXI, un format de la trame Rapid10 et une indication du mode d'exécution des données placée dans le champ Virtual Channel (VC) de la trame Rapid10. Le procédé peut comprend de plus après l'étape d'émettre une 25 trame, les étapes de : - transmettre la trame vers un processeur destinataire du réseau distribué ; et - déterminer à réception de la trame, le mode d'exécution des données. 3061326 10 Certaines étapes du procédé de l'invention peuvent opérer sous la forme d'un produit programme d'ordinateur qui comprend des instructions de code permettant d'effectuer ces étapes quand le programme est exécuté sur un ordinateur. 5 Description des figures Différents aspects et avantages de l'invention vont apparaitre en appui de la description d'un mode préféré d'implémentation de l'invention mais non limitatif, avec référence aux figures ci-dessous : La figure 1 illustre sous une vue schématique au niveau logiciel 10 une implémentation connue des mondes sécurisé et non-sécurisé dans un élément processeur; La figure 2 illustre sous une vue schématique, une implémentation au niveau matériel du dispositif de l'invention selon un mode de réalisation ; 15 La figure 3 illustre un exemple de trame selon le protocole Rapid10 ; La figure 4 illustre une architecture simplifiée d'un réseau de systèmes distribués dans laquelle le dispositif de l'invention peut opérer selon un mode de réalisation; 20 La figure 5 montre un enchainement d'étapes du procédé d'émission d'un paquet selon un mode de réalisation de l'invention ; La figure 6 montre un enchainement d'étapes du procédé de réception d'un paquet selon un mode de réalisation de l'invention. Description détaillée de l'invention 25 La description qui suit s'appuie sur des exemples pour permettre une bonne compréhension des principes de l'invention, et une application 11 3061326 concrète, mais n'est en rien exhaustive et doit permettre à l'homme du métier d'appliquer des modifications et des variantes d'implémentation en gardant les mêmes principes. Ainsi la présente description de l'invention est faite pour illustrer une implémentation dans un système distribué 5 opérant selon le protocole Rapid10 mais n'est pas limitative, et peut s'utiliser selon d'autres architectures et protocoles de communication permettant d'interconnecter des processeurs de systèmes distribués. La figure 1 représente au niveau logiciel l'implémentation des mondes non-sécurisé (102) et sécurisé (104) sur un élément processeur 10 (100) typique. Un tel élément processeur (100) peut être un microprocesseur synthétisé sur un circuit à logique programmable « FPGA » par exemple ou un circuit sur puce (SoC), qui peut aussi comprendre une pluralité de processeurs. Dans la suite de la description, l'élément processeur (100) pour application des principes de l'invention, 15 désigne plus généralement tout système ou entité autonome de traitement de données pouvant communiquer avec un autre système ou entité autonome de traitement de données d'un réseau de systèmes distribués. Par ailleurs, seuls les composants permettant une bonne compréhension des principes de l'invention sont décrits, les autres 20 composants (mémoires, horloges, hyperviseur, etc) d'un élément processeur typique étant connus de l'homme de métier ne sont pas détaillés. L'élément processeur (100) est configuré à l'initialisation pour définir un environnement de confiance (TEE), et avoir des ressources logicielles (102) s'exécutant en mode non-sécurisé NS et des ressources 25 logicielles (104) s'exécutant en mode sécurisé S. De manière connue, pour les plateformes de type système sur une puce ou « system on chip (SoC) » en anglais, qui implémentent un environnement de confiance TEE, le statut S ou NS d'un code est accessible au niveau processeur selon l'état 0 ou 1 d'un bit spécifique (101) qui selon sa valeur désigne le 30 caractère sécurisé S ou non-sécurisé NS du logiciel en cours d'exécution. 3061326 12 Dans une implémentation d'une plateforme TEE, ce bit est appelé `bit Non-Sécurisé' (ou « NS bit » en anglais) et est disponible dans un registre de configuration sécurisé (SCR). Les ressources logicielles non-sécurisées (102) et sécurisées (104) sont couplées à une interface 5 d'entrée-sortie (110) via un port d'entrée-sortie (106). Ce port d'entrée-sortie est structuré et peut être divisé selon les parties suivantes: une configuration de sécurité (108) permettant de configurer les droits d'accès du logiciel NS à l'interface d'entrée-sortie. Elle prend en compte le bit d'état (101) pour s'assurer qu'elle n'est manipulée que 10 par le logiciel sécurisé ; des canaux d'entrée-sortie E/S (107) permettant d'échanger les données entre le logiciel et l'interface d'entrée-sortie. Ces canaux prennent en compte le bit d'état (101) pour s'assurer de la cohérence avec la configuration des droits d'accès ; 15 des signaux d'interruption (109) permettant à l'interface d'entrée-sortie (110) de signaler la disponibilité de données entrantes au logiciel. Dans une mise en oeuvre préférentielle, il existe deux signaux d'interruption appelés `FIQ' pour « Fast Interrupt Request » en anglais et `IRQ' pour «Interruption Request » en anglais. Le signal FIQ est 20 dédié au monde S car son usage peut y être protégé du monde NS, tandis que le signal IRQ est dédié au monde NS. Les parties, canaux d'E/S (107) et les signaux d'interruption (109), peuvent être dupliquées. Dans une implémentation, chaque partie et sa 25 réplique sont dédiées respectivement aux échanges S ou NS. L'invention concerne les interfaces d'entrée-sortie (110) qui sont des interfaces de communication. Les systèmes existants ne permettant pas d'accéder à l'interface de communication simultanément depuis les mondes S et NS de façon cohérente, cette interface est alors réservée à 13 3061326 l'un des deux mondes, et le bit NS est transmis à l'interface afin qu'elle puisse interdire à l'autre monde de l'utiliser. Les canaux d'E/S (107) et les signaux d'interruption (109) n'interagissent donc qu'avec un seul des deux mondes. 5 Avantageusement, lorsqu'une interface de communication met en oeuvre le procédé de la présente invention, les deux mondes S et NS peuvent l'utiliser de façon cohérente. Les principes illustrés sur la figure 1 restent inchangés, les seules différences étant alors que : les mondes S et NS peuvent tous deux utiliser le canal d'entrée-sortie 10 (107) ; les signaux d'interruption (109) peuvent solliciter les deux mondes S et NS lors de la disponibilité de données entrantes. Dans une implémentation préférentielle, les deux signaux d'interruptions IRQ et FIQ sont activés à la fois. 15 Avantageusement, le procédé de l'invention assure que les données issues respectivement de chaque monde S et NS ne sont transmises au niveau des destinataires, qu'au logiciel relevant du même monde. Le procédé de l'invention permet d'utiliser un mode de transfert 20 quelconque, tel que le transfert DMA par exemple, tout en respectant la séparation des mondes S et NS. Une fois notifié, le monde destinataire S ou NS a accès à la trame. La figure 2 illustre une implémentation du dispositif de l'invention. Les requêtes devant être transmises sur le réseau d'un système distribué 25 peuvent être soit des requêtes non-sécurisées dites 'requêtes NS' issues d'un bloc logiciel non-sécurisé (102) dit 'initiateur NS', soit être des requêtes sécurisées dites 'requêtes S' issues d'un bloc logiciel sécurisé (104) dit 'initiateur S'. Il est à noter que les mêmes éléments qu'ils soient matériel ou logiciel, portent les mêmes références sur les différentes 3061326 14 figures. Les initiateurs NS (102) et S (104) sont couplés à une interface de communication (110) via un bus d'interconnexion (202) et un port d'entrée/sortie (106). Ce bus transporte les informations de transfert tout en incluant l'information S ou NS associée, issue de l'initiateur du 5 transfert. Dans une implémentation préférentielle, le bus d'interconnexion est selon le standard AMBA® (Advanced Microcontroller Bus Architecture) à partir de la version 3. Ce bus transporte des requêtes de lecture et d'écriture et porte les informations d'adresse, de données ainsi qu'un bit NS. L'information S ou NS est transmise jusqu'à l'interface de 10 communication d'entrée-sortie (110). Dans le cadre de systèmes connus, le bus (202) ou l'interface (110) utilisent cette information pour autoriser ou non l'accès NS à l'interface (110). L'interface de communication (110) est couplée à un commutateur réseau (204) via un lien d'entrée/sortie (I/O) réseau (210). D'un point de 15 vue matériel, le commutateur réseau (204) peut être soit localisé sur le même composant matériel que le bus (202), soit sur un autre composant et relié par une liaison de type câble. Le commutateur réseau (204) a des interfaces d'entrée/sortie (non illustrées) permettant des communications via d'autres liens réseau (212) 20 vers des noeuds du système distribué. Les trames émises à travers le lien réseau (210) peuvent traverser plusieurs commutateurs avant d'atteindre une interface de communication (110) sur les noeuds destinataires. Dans une implémentation particulière où il n'y a pas de commutateur, on parle alors de liaison directe via un seul lien réseau entre deux interfaces (110). 25 Le principe général de l'invention consiste ainsi à fournir une interface de communication (110) accessible aux deux mondes S et NS d'un élément processeur à travers un bus d'interconnexion, l'interface conservant l'information du monde S ou NS d'origine, et générant sur un 3061326 15 unique lien réseau (210), une trame configurée selon cette information S ou NS. Durant la traversée du réseau, l'information du monde d'origine S/NS n'est pas modifiée par les noeuds de routage intermédiaires du 5 réseau traversés par la trame. Avantageusement, cette information peut être aussi utilisée pour garantir la qualité de service associée de bout en bout. A destination, sur l'interface de communication (110) d'un noeud destinataire, cette information du mode d'origine est utilisée pour activer un signal de réception correspondant au logiciel S ou NS du processeur 10 destinataire. L'association entre la trame réseau et l'information S/NS qu'elle porte, est faite de telle sorte que cette information soit rendue invisible au logiciel, en particulier en mode NS. Pour cela, l'information du monde d'origine S/NS n'est pas transmise en tant que donnée, qui serait visible au niveau logiciel. Pour être invisible au niveau logiciel, 15 l'information du monde d'origine S/NS est transmise dans un en-tête de trame, qui est visible uniquement au niveau matériel. Dans une implémentation selon le protocole RapidI0, le format des paquets ou des trames (« frame » en anglais) au niveau physique qui sont transmis sur le réseau est tel que montré en figure 3. Chaque paquet 20 a des champs (40 à 44) qui ne sont accessibles qu'à l'interface de communication (110): AckID (40) : identifiant paquet spécifique à un lien ; VC (41) : Virtual Channel définit l'usage des champs de priorité (42) et de « CriticalRequest Flow » (43) ; 25 TT (44) : taille des identifiants source et destination. Les paquets ont de plus des champs (45, 46, 47) permettant de définir les identifiants de la source `Srcld' (47) et de la destination Destld' (46) du paquet et le type de requête `FType' (45) contenu dans le paquet. 3061326 16 L'homme du métier pourra se reporter à la nombreuse littérature disponible pour obtenir plus de détails sur le protocole Rapid10. Dans cette implémentation, l'interface de communication (110) est configurée pour que la valeur du bit NS correspondant au monde d'origine 5 soit appliquée au champ `VC' (41) des paquets Rapid10. Ainsi, tout paquet transmis porte dans son en-tête qui est visible uniquement au niveau matériel, la valeur du bit NS représentatif du monde NS ou S dont sont issues les données transmises. Cette valeur est conservée tout au long du transport du paquet dans le réseau jusqu'à la destination. 10 A réception d'un paquet transmis, l'interface de communication de l'élément processeur qui reçoit le paquet extrait la valeur contenue dans le champ d'entête VC pour identifier le statut NS ou S des données, et associe le paquet reçu au monde correspondant. Avantageusement, l'utilisation d'un champ protocolaire qui ne soit 15 pas accessible au niveau logiciel permet d'éviter les attaques de type « VLAN DoubleTagging ». Bien qu'une implémentation préférentielle soit celle selon le protocole RapidI0, l'homme du métier peut dériver les mêmes principes pour tout autre protocole de transport offrant la capacité de transmettre 20 l'information S/NS de façon invisible au niveau logiciel. Avantageusement, l'interface de communication de l'invention comprend de plus des composants (non illustrés) adaptés pour offrir une interface matérielle de haut niveau, en particulier permettant des transferts d'accès directs (DMA) à la mémoire de l'élément processeur, et 25 permettant un routage entièrement piloté par des tables de configuration du contrôleur. Par ailleurs, les accès S et NS sont associés à des qualités de service qui sont configurées depuis le monde sécurisé. Les qualités de service correspondent à des modes de partage conventionnels du réseau, à savoir : 3061326 17 - par priorité où l'accès sécurisé est prioritaire et les données associées sont transmises en priorité ; - par portion du débit réseau où chaque accès a une portion réservée, de sorte que chaque mode TEE a un débit garanti. 5 Dans une implémentation où l'environnement de confiance est utilisé pour donner une garantie de sécurité à travers un réseau et que la partie physique de ce réseau est éventuellement exposée à des attaques physiques, une protection appropriée est appliquée à l'en-tête des paquets, comme par exemple une signature et une authentification, 10 afin de garantir la préservation de l'accès sécurisé ou non-sécurisé. La figure 4 illustre sous une vue schématique au niveau matériel, une architecture d'un réseau de systèmes distribués dans laquelle le dispositif de l'invention peut opérer selon un mode de réalisation. Pour des raisons de clarté et de simplification de la description et sans que 15 cela ne soit considéré comme une limitation, la figure montre un seul élément processeur émetteur (200_E), qui peut communiquer au travers d'un réseau (400) à un seul élément processeur récepteur (200_R) via des liens réseaux (212). Chaque élément processeur comprend respectivement au niveau matériel, au moins un bus d'interconnexion 20 (202_E, 202_R) et une interface de communication (110_E, 110_R) configurée selon le protocole de communication. De manière optionnelle un commutateur réseau (204_E, 204_R) peut être ajouté pour accéder au lien réseau. Il est à noter que la topologie du réseau n'est pas imposée et que 25 le dispositif et le procédé de l'invention sont applicables dans divers types de réseaux, tels que les réseaux en anneau, réseaux maillés ou en étoile. La figure 5 montre un enchainement d'étapes du procédé d'émission d'un paquet selon le principe de l'invention. Le procédé débute quand une requête de communication est initiée au niveau du monde 3061326 18 sécurisé ou non sécurisé dans un élément processeur. Un message correspondant est préparé (502) et émis sur le bus système de l'élément processeur (504). Dans une implémentation AMBA®, le message est préparé par un composant AXI Master et émis sur le bus AXI. 5 Le message est ensuite (506) écrit au niveau de l'interface de communication. Le procédé permet de créer (508) le niveau physique du paquet à envoyer. Puis, dans une étape suivante (510), le procédé permet de configurer l'entête du paquet en positionnant dans le champ de bit sécurisé qui est réservé selon le protocole de communication utilisé, la 10 valeur du bit correspondant à la provenance sécurisée ou non-sécurisée de la requête. Le paquet ainsi configuré est émis et transmis (512) sur la couche physique du réseau de communication pour être routé vers le processeur destinataire. Dans une implémentation préférentielle, le paquet transmis est une trame Rapid10 dont le champ VC contient une 15 valeur de bit égale à 0 ou 1 selon la provenance de la requête. La figure 6 montre un enchainement d'étapes du procédé de réception d'un paquet selon le principe de l'invention. Le procédé débute quand un paquet est reçu (602) par une interface de communication via un commutateur réseau. Selon les principes de l'invention, l'interface est 20 configurée pour extraire (604) la valeur du bit contenu dans le champ d'entête de la trame qui est utilisé pour indiquer le mode d'exécution requis. Le procédé permet ensuite de créer (606) un message ou une requête de transfert qui est adaptée à l'architecture de l'élément processeur destinataire. Dans une étape suivante (608), le procédé 25 permet de déterminer si le message est un message de type sécurisé ou non sécurisé et selon le résultat de transférer la requête dans la zone appropriée de l'élément processeur correspondant au mode d'exécution sécurisé ou non-sécurisé (610, 612). 3061326 19 L'homme de l'art appréciera que des variations puissent être apportées sur le procédé qui est décrit pour une implémentation préférentielle. Ainsi, les exemples pris sont basés sur une architecture TEE de type AMBAO, mais les principes de l'invention peuvent 5 s'appliquer sur d'autres variantes d'architecture. Par ailleurs, même si la description fait état d'un procédé d'émission de paquets et d'un procédé de réception de paquets, les deux procédés peuvent être opérés par une même interface de communication en tant qu'émetteur/récepteur. 10 Le procédé de la présente invention peut s'implémenter à partir d'éléments matériels (ASIC, VLSI par exemple) et/ou de synthèse (FPGA). Lorsque l'interface de communication est mise en oeuvre avec un logiciel dédié qui n'est pas accessible au processeur principal, le procédé peut être implémenté, en tout ou partie, par ce logiciel dédié. Un 15 tel cas se présente par exemple dans la solution DPAA2/A10P® de NXP. Ce procédé peut donc être disponible en tant que produit programme d'ordinateur sur un support lisible par ordinateur. REVENDICATIONS1. Un dispositif pour établir dans un système distribué, des communications de confiance entre une pluralité de processeurs, chaque processeur ayant configuré un environnement de confiance permettant un mode d'exécution sécurisé et un mode d'exécution non-sécurisé, le dispositif comprenant des moyens permettant : de recevoir d'un processeur source, une requête de transmission de données, pour des données issues soit du mode d'exécution sécurisé soit du mode d'exécution non-sécurisé ; de placer au moins dans le corps d'une trame lesdites données et dans un champ d'entête de ladite trame une indication du mode d'exécution relatif auxdites données, ledit champ d'entête étant accessible uniquement au niveau matériel; et d'émettre ladite trame sur un lien réseau du système distribué. 2. Le dispositif selon la revendication 1 dans lequel la trame a un format adapté au protocole de communication utilisé dans le réseau du système distribué. 3. Le dispositif selon la revendication 2 dans lequel le protocole de communication est le protocole RapidI0, le format de la trame est le format Rapid10 et l'indication du mode d'exécution des données est placée dans le champ Virtual Channel (VC) des trames Rapid10. 4. Le dispositif selon l'une quelconque des revendications 1 à 3 dans lequel la requête de transmission est émise sur un bus système du processeur source. 25 3061326 21 5. Le dispositif selon la revendication 4 dans lequel le bus système est un bus selon le standard Advanced Microcontroller Bus Architecture (AMBA). 5 6. Le dispositif selon l'une quelconque des revendications 1 à 5 dans lequel l'indication du mode d'exécution desdites données est l'état zéro ou un d'un bit. 7. Le dispositif selon l'une quelconque des revendications 1 à 6 dans 10 lequel le processeur source est un microprocesseur synthétisé sur un circuit à logique programmable (FPGA) ou un circuit sur puce (SoC). 8. Le dispositif selon l'une quelconque des revendications 1 à 7 dans lequel le lien réseau est couplé à un commutateur réseau. 15 9. Le dispositif selon l'une quelconque des revendications 1 à 8 dans lequel le réseau est un réseau en anneau ou un réseau maillé ou un réseau en étoile. 20 10. Le dispositif selon l'une quelconque des revendications 1 à 9 comprenant de plus des moyens permettant : de recevoir une trame émise sur un lien réseau ; de déterminer le mode d'exécution à appliquer aux données contenues dans la trame ; et d'émettre une requête de transfert correspondante. 11. Un système de communication comprenant : - un processeur source configuré en environnement de confiance ; 3061326 22 un processeur destinataire configuré en environnement de confiance ; un réseau reliant le processeur source au processeur destinataire par des liens réseaux ; 5 une interface de communication couplée au processeur source comprenant un dispositif selon l'une quelconque des revendications 1 à 10 ; et une interface de communication couplée au processeur destinataire comprenant un dispositif selon la revendication 10. 10 12. Un procédé pour établir dans un système distribué des communications de confiance entre une pluralité de processeurs, chaque processeur ayant configuré un environnement de confiance permettant un mode d'exécution sécurisé et un mode d'exécution non- 15 sécurisé, le procédé étant caractérisé en ce qu'il comprend au moins une étape consistant à émettre sur un lien réseau du système distribué, une trame contenant dans le corps de trame des données issues soit du mode d'exécution sécurisé soit du mode d'exécution non-sécurisé, la trame contenant de plus dans un champ d'entête, une 20 indication du mode d'exécution relatif auxdites données, ledit champ d'entête étant accessible uniquement au niveau matériel. 13.Le procédé selon la revendication 12 dans lequel l'étape d'émettre une trame est opérée par une interface de communication couplée à un 25 processeur source et audit lien réseau. 14.Le procédé selon les revendications 12 ou 13 comprenant avant l'étape d'émettre une trame, les étapes de : 3061326 23 - générer sur un bus système d'un processeur émetteur une requête de transmission de données, les données étant issues du mode d'exécution sécurisé ou du mode d'exécution non-sécurisé ; et - placer dans le corps de la trame lesdites données et dans le 5 champ d'entête de la trame uniquement accessible au niveau matériel, l'indication du mode d'exécution relatif auxdites données. 15.Le procédé selon la revendication 14 dans lequel le bus système est un bus AXI, le format de la trame est le format Rapid10 et l'indication 10 du mode d'exécution des données est contenue dans le champ Virtual Channel (VC) des trames Rapid10. 16.Le procédé selon l'une quelconque des revendications 12 à 15 comprenant après l'étape d'émettre une trame, les étapes de : 15 - transmettre la trame vers un processeur destinataire du réseau distribué ; et - déterminer à réception de la trame, le mode d'exécution des données. 20 17. Un produit programme d'ordinateur, ledit programme d'ordinateur comprenant des instructions de code permettant d'effectuer les étapes du procédé selon l'une quelconque des revendications 12 à 16, lorsque ledit programme est exécuté sur un ordinateur.