FR3061326A1 - DEVICE AND METHOD FOR CREATING A TRUSTED ENVIRONMENT IN A DISTRIBUTED SYSTEM - Google Patents

DEVICE AND METHOD FOR CREATING A TRUSTED ENVIRONMENT IN A DISTRIBUTED SYSTEM Download PDF

Info

Publication number
FR3061326A1
FR3061326A1 FR1601873A FR1601873A FR3061326A1 FR 3061326 A1 FR3061326 A1 FR 3061326A1 FR 1601873 A FR1601873 A FR 1601873A FR 1601873 A FR1601873 A FR 1601873A FR 3061326 A1 FR3061326 A1 FR 3061326A1
Authority
FR
France
Prior art keywords
frame
execution mode
data
network
secure
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
FR1601873A
Other languages
French (fr)
Inventor
Arnaud Samama
Eric Dujardin
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Thales SA
Original Assignee
Thales SA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Thales SA filed Critical Thales SA
Priority to FR1601873A priority Critical patent/FR3061326A1/en
Priority to PCT/EP2017/084550 priority patent/WO2018122207A1/en
Publication of FR3061326A1 publication Critical patent/FR3061326A1/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/76Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in application-specific integrated circuits [ASIC] or field-programmable devices, e.g. field-programmable gate arrays [FPGA] or programmable logic devices [PLD]

Abstract

La présente invention concerne un dispositif et un procédé pour établir dans un système distribué, des communications de confiance entre une pluralité de processeurs ayant configuré un environnement de confiance permettant un mode d'exécution sécurisé et un mode d'exécution non-sécurisé. En particulier, le dispositif comprend 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 les données et dans un champ d'entête de la trame une indication du mode d'exécution relatif aux données, le 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é.An apparatus and method for establishing in a distributed system, trusted communications between a plurality of processors having configured a trusted environment for a secure execution mode and a non-secure execution mode. In particular, the device comprises means for receiving from a source processor, a data transmission request, for data from either the secure execution mode or the non-secure execution mode; placing at least one frame in the frame of the data and in a header field of the frame an indication of the execution mode relating to the data, the header field being accessible only at the hardware level; and transmitting said frame over a network link of the distributed system.

Description

Titulaire(s) :Holder (s):

THALES Société anonyme.THALES Public limited company.

O Demande(s) d’extension :O Extension request (s):

® Mandataire(s) : MARKS & CLERK FRANCE Société en nom collectif.® Agent (s): MARKS & CLERK FRANCE General partnership.

® DISPOSITIF ET PROCEDE POUR CREER UN ENVIRONNEMENT DE CONFIANCE DANS UN SYSTEME DISTRIBUE.® DEVICE AND METHOD FOR CREATING A CONFIDENTIAL ENVIRONMENT IN A DISTRIBUTED SYSTEM.

FR 3 061 326 - A1 (57) La présente invention concerne un dispositif et un procédé pour établir dans un système distribué, des communications de confiance entre une pluralité de processeurs ayant configuré un environnement de confiance permettant un mode d'exécution sécurisé et un mode d'exécution nonsécurisé. En particulier, le dispositif comprend 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 les données et dans un champ d'entête de la trame une indication du mode d'exécution relatif aux données, le 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é.FR 3 061 326 - A1 (57) The present invention relates to a device and a method for establishing in a distributed system, trusted communications between a plurality of processors having configured a trusted environment allowing a secure execution mode and a mode. unsecured execution. In particular, the device comprises means making it possible to receive a request for data transmission from a source processor, for data originating either from the secure execution mode or from the non-secure execution mode; placing at least in the body of a frame the data and in a header field of the frame an indication of the execution mode relating to the data, the header field being accessible only at the hardware level; and transmit said frame over a network link of the distributed system.

200200

Figure FR3061326A1_D0001
Figure FR3061326A1_D0002

DISPOSITIF ET PROCEDE POUR CREER UN ENVIRONNEMENT DE CONFIANCE DANS UN SYSTEME DISTRIBUEDEVICE AND METHOD FOR CREATING A CONFIDENTIAL ENVIRONMENT IN A DISTRIBUTED SYSTEM

Domaine de l’inventionField of the 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é.The invention relates to the field of distributed systems and more particularly relates to a method and a device making it possible to establish a trusted communication between several processors of a distributed system.

Etat de la TechniqueState of the art

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é.Many devices have processors which have, in addition to the standard or unsecured execution mode, a secure execution mode also known as the execution mode in a trusted environment or "Trusted Execution Environment (TEE) According to consecrated Anglicism.

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.In these devices, during the boot phase, the first code that runs, generally an operating system loader, has access to all of the processor resources and is in secure mode (S). The operating system loader is responsible for managing resources and allows interactions between processor resources and the various "hardware" elements such as RAM (for example, DDR-SDRAM) and interfaces to be authorized. enter exit. A specific case of I / O interface is that of communication interfaces, which allow access to a communication network such as Ethernet or a serial link such as 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 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 d’éléments matériel s’exécutant en mode NS.The operating system loader is also responsible for managing access rights, and guarantees that resources allocated in secure mode are only used by hardware or by executable code having greater or equal rights. A hardware element or a code executing on the processor, while it is in non-secure NS mode, does not have access to any resource by default. The operating system loader can then inform certain processor resources that they can accept requests for code or hardware items running in NS mode.

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 communiquera par une liaison série (RS-232) en mode S.Typically a device is either secure or non-secure. Communication devices are thus allocated to one or the other mode. For example, software in NS mode will communicate via Ethernet communication interface in NS mode, software in S mode will communicate via a serial link (RS-232) in 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é.The operating system loader, in addition to the system running in S mode, may launch another unsecured operating system that will be limited to resources in NS mode. For example, you can load a Linux® kernel which then runs in non-secure mode.

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 nonsécurisé» qui se partagent l’usage d’un processeur de façon isolée.The two operating systems having thus started respectively in S and NS mode, each start a set of software whose mode they determine, S or NS. There are then two environments or worlds called "secure world" and "unsecured world" which share the use of a processor in isolation.

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 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.Allocation to the secure world S or to the non-secure world NS of a hardware element can be done either at the peripheral level, or at the level of the bus allowing access to the peripheral. So if a software running in NS mode tries to access a secure device S, it generally receives a Bus Error either emitted by the device itself, or by the bus allowing access to the device. Indeed, the hardware once configured S or NS, guarantees that the non-secure world NS cannot read or write information from the secure world S.

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 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 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é.When two or more processors, each configured with the two modes (S, NS) must be associated to form a distributed system, they generally use two separate links which reflect this isolation. Two types of communication are used, typically Ethernet for NS communications, and the serial link for S communications. Ethernet is rarely used in S mode, either because of a lack of available interface, or because it requires a set of software that can weaken the security of software running in S mode. To overcome this, a serial link is set up, resulting in a doubling of the number of connectors and cables, which induces a lower communication speed for S mode, and communications limited to point-to-point, or point-to-multipoint but in unidirectional mode, for the secure side.

Il est possible de n’utiliser qu’un seul type de communication, dont 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 :It is possible to use only one type of communication, the material control of which is entrusted to one of the two worlds S or NS. Generally, it is the S world which needs guaranteed communication, which by nature the NS world cannot offer. All communications from the NS world must then pass through the S world. This results in major drawbacks, such as:

- la communication entre le monde S et le monde NS est plus complexe, en ce qu’elle augmente la surface d’attaque ;- the communication between the S world and the NS world is more complex, in that it increases the attack surface;

- le passage répété des paramètres de transmission à travers la transition S-NS est coûteux en temps d’exécution ;- repeated passage of the transmission parameters through the S-NS transition is costly in execution time;

- le besoin de performance du monde NS est géré par le monde S.- the performance requirement of the NS world is managed by the S world.

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).This results in greater complexity in the S world, difficulty in maintaining the code, and a reduction in overall performance compared to a system that does not have a trusted environment (TEE).

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.Thus, there is the need for a solution which allows, in a distributed system, communications between processors operating in a trusted environment, and which overcomes the drawbacks of known approaches. The present invention meets this need.

Résumé de l’inventionSummary of the 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 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 nonsécurisé, et construit un message contenant l’information du monde correspondant à la requête source pour envoi vers la destination.To achieve this objective, an object of the present invention is to provide a device and a method which make it possible to propagate secure or non-secure information through a single network link. The method of the invention is based on the use of a communication interface called "Trust Aware Adapter", which when it receives a request via a system bus associated with a source processor, determines whether the request is a request emitted from the secure world or from the unsecured world, and constructs a message containing the information of the world corresponding to the source request for sending to the destination.

À 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é.At the destination, the communication interface which receives the message, identifies by reading the frame received which execution mode the source request belongs to, and requests at the target processor level software of the secure or non-secure type which is appropriate.

Avantageusement, l’interface de communication à destination est 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 nonsécurisé, des champs du protocole de communication du système distribué qui ne sont pas accessibles au niveau logiciel. Dans une implémentation particulière, le protocole de communication est le protocole RapidIO™, et le champ utilisé pour indiquer l’information du mode d’exécution est le champ virtuel VC « Virtual Channel ».Advantageously, the destination communication interface is a hardware device which operates autonomously without intervention from a software level. The communication interface in transmitter or receiver mode, uses to mark the message as secure or unsecured, fields of the communication protocol of the distributed system which are not accessible at software level. In a particular implementation, the communication protocol is the RapidIO ™ protocol, and the field used to indicate the information of the execution mode is the virtual field VC "Virtual Channel".

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.Thus, the trusted environment (TEE) is extended to the level of a distributed system on a network, and it becomes possible to create a secure distributed environment for a set of secure worlds, without doubling the connectivity for communications.

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 nœud du réseau, mais ils forment chacun un système distribué qui exploite un réseau unique.Advantageously, these secure worlds operating together can then provide a higher level of service, by virtue of the overall view that they have on the distributed system, the network topology being insignificant for operating the invention. The network is shared between the two worlds, so they are not located on every node in the network, but they each form a distributed system that operates on a single network.

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é. 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é.Advantageously, the invention makes it possible to limit the number of communication interfaces used, by proposing a single interface for managing the secure and non-secure modes of execution. The invention also makes it possible to use communication interfaces allowing both high-performance and multipoint, two-way communications, both from the secure world and from the non-secure world.

Avantageusement, l’invention permet d’utiliser les interfaces de communication, telles les périphériques RapidIO, 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.Advantageously, the invention makes it possible to use the communication interfaces, such as the RapidIO peripherals, effectively by preserving the isolation of the two worlds secure and non-secure, without impacting their software, thus preserving their simplicity, in particular in the secure part.

L’invention trouvera des applications avantageuses dans les domaines où les environnements de confiance TEE sont utilisés, tels que :The invention will find advantageous applications in the fields where TEE trusted environments are used, such as:

- la sécurité : c’est un domaine d’application privilégié de la TEE, qui garantit le respect d’une chaîne de confiance à partir d’une clef cryptographique stockée dans le silicium du processeur. L’isolation du 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 à 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é.- security: this is a privileged application domain of the TEE, which guarantees the respect of a chain of trust starting from a cryptographic key stored in the silicon of the processor. The isolation of the secure world allows you to save passwords, and host confidential algorithms. This makes it possible to offer encryption and signature functions for data protection, to give access to a secure GPS, to manage digital rights, to give access to payment systems, etc. These typically secure functions are thus made available to a standard Windows® or Android® operating system (OS) in the non-secure world.

- la supervision : le monde sécurisé peut observer à intervalles réguliers le fonctionnement du monde non-sécurisé. Cela permet de 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 vitales en autonomie.- supervision: the secure world can observe the operation of the non-secure world at regular intervals. This makes it possible to detect breakdowns, intrusion attempts, measure the level of use of software and hardware resources, etc. It can also cause an unsafe world OS to be suspended or restarted. This type of use is envisaged for example in the context of drones, systems which must guarantee vital functions in autonomy.

- 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 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.- real-time: the TEE can be configured so as to guarantee the reactivity of the secure world, independently of the processing in progress on the non-secure side. The secure world can host a hard real-time OS, which thus shares hardware resources with a more complex OS on the non-secure side. This type of operation is found in complex sensor-actuator networks, which combine regular data acquisition and precise motor control functions, with analysis functions restoring a first level of synthesis on the acquired data or the system operation.

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 machines de petites tailles ou sur des appareils électroniques autonomes (sondes spatiales, ordinateur de bord, ...) ou des centres de calcul.The systems operating in a TEE environment which can benefit from the invention are for example microprocessors of smartphones, tablets, set-top boxes, televisions, electronic cards, type DSP, FPGA, ASIC, and of any system on machines. small sizes or on autonomous electronic devices (space probes, on-board computer, ...) or data centers.

Pour obtenir les résultats recherchés, un dispositif et un procédé sont proposés.To obtain the desired results, a device and a method are proposed.

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 permettant :In particular, a device is proposed for establishing in a distributed system, trusted communications between a plurality of processors, each processor having configured a trusted environment allowing a secure execution mode and a non-secure execution mode, the device comprising means allowing:

- 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é ;- to receive from a source processor, a data transmission request, for data originating either from the secure execution mode or from the non-secure execution mode;

- 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- placing at least in the body of a frame said data and in a header field of said frame an indication of the mode of execution relating to said data, said header field being accessible only at the hardware level; and

- d’émettre ladite trame sur un lien réseau du système distribué.- to transmit said frame on a network link of the distributed system.

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 RapidIO, le format de la trame est le format RapidIO et l’indication du mode d’exécution des données est placée dans le champ Virtual Channel (VC) des trames RapidIO. 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.Advantageously, the frame has a format adapted to the communication protocol used in the network of the distributed system. In an implementation, the communication protocol is the RapidIO protocol, the frame format is the RapidIO format and the indication of the data execution mode is placed in the Virtual Channel (VC) field of the RapidIO frames. In an alternative embodiment, the indication of the data execution mode is the state of zero or one of a 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 bus système est un bus selon le standard Advanced Microcontroller Bus Architecture (AMBA).According to one embodiment, the transmission request is sent on a system bus of the source processor. In a variant, the system bus is a bus according to the Advanced Microcontroller Bus Architecture (AMBA) standard.

Selon des modes d’implémentation, le processeur source est un microprocesseur synthétisé sur un circuit à logique programmable (FPGA) ou un circuit sur puce (SoC).According to implementation modes, the source processor is a microprocessor synthesized on a programmable logic circuit (FPGA) or a circuit on chip (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.According to one embodiment, the network link is coupled to a network switch. The network can be a ring network or a mesh network or a star network.

L’invention couvre aussi le dispositif revendiqué comprenant de plus des moyens permettant :The invention also covers the claimed device, further comprising means allowing:

- de recevoir une trame émise sur un lien réseau ;- receive a frame sent over a network link;

- de déterminer le mode d’exécution à appliquer aux données contenues dans la trame ; et- determine the execution mode to apply to the data contained in the frame; and

- d’émettre une requête de transfert correspondante.- issue a corresponding transfer request.

Un système de communication en accord avec l’invention comprend :A communication system in accordance with the invention includes:

- un processeur source configuré en environnement de confiance ;- a source processor configured in a trusted environment;

- un processeur destinataire configuré en environnement de confiance ;- a recipient processor configured in a trusted environment;

- un réseau reliant le processeur source au processeur destinataire par des liens réseaux ;- a network connecting the source processor to the destination processor by network links;

- une interface de communication couplée au processeur source et qui comprenant le dispositif revendiqué ; et- a communication interface coupled to the source processor and which comprising the claimed device; and

- une interface de communication couplée au processeur destinataire et qui comprend le dispositif revendiqué.- a communication interface coupled to the destination processor and which includes the claimed device.

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 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 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.The invention also covers a method for establishing in a distributed system trusted communications between a plurality of processors, each processor having configured a trusted environment allowing a secure execution mode and a non-secure execution mode. The method is characterized in that it comprises at least one step consisting in transmitting on a network link of the distributed system, a frame containing in the frame body data coming either from the secure execution mode or from the non-execution mode. -secured, the frame further containing in a header field, an indication of the execution mode relating to the data, the header field being accessible only at the hardware level.

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 au lien réseau.In one embodiment, the step of transmitting a frame is operated by a communication interface coupled to a source processor and to the network link.

Selon les réalisations, le procédé comprend avant l’étape d’émettre une trame, les étapes de :According to the embodiments, the method comprises before the step of transmitting a frame, the steps of:

- 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- generate a data transmission request on a system bus of a transmitting processor, the data coming from the secure execution mode or from the non-secure execution mode; and

- 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.- place in the body of the frame the data and in the header field of the frame only accessible at the hardware level, the indication of the execution mode relating to the data.

Avantageusement, le procédé revendiqué opère pour un bus système de type AXI, un format de la trame RapidIO et une indication du mode d’exécution des données placée dans le champ Virtual Channel (VC) de la trame RapidIO.Advantageously, the claimed method operates for an AXI type system bus, a format of the RapidIO frame and an indication of the data execution mode placed in the Virtual Channel (VC) field of the RapidIO frame.

Le procédé peut comprend de plus après l’étape d’émettre une trame, les étapes de :The method may further comprise, after the step of transmitting a frame, the steps of:

- transmettre la trame vers un processeur destinataire du réseau distribué ; et- transmit the frame to a destination processor of the distributed network; and

- déterminer à réception de la trame, le mode d’exécution des données.- determine upon receipt of the frame, the data execution mode.

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.Certain steps of the method of the invention can operate in the form of a computer program product which includes code instructions for performing these steps when the program is executed on a computer.

Description des figuresDescription of the figures

Différents aspects et avantages de l’invention vont apparaître 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 :Various aspects and advantages of the invention will appear in support of the description of a preferred mode of implementation of the invention but not limiting, with reference to the figures below:

La figure 1 illustre sous une vue schématique au niveau logiciel une implémentation connue des mondes sécurisé et non-sécurisé dans un élément processeur;FIG. 1 illustrates under a schematic view at the software level a known implementation of the secure and non-secure worlds in a processor element;

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 ;Figure 2 illustrates in a schematic view, an implementation at the hardware level of the device of the invention according to one embodiment;

La figure 3 illustre un exemple de trame selon le protocole RapidIO ;FIG. 3 illustrates an example of a frame according to the RapidIO protocol;

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;FIG. 4 illustrates a simplified architecture of a network of distributed systems in which the device of the invention can operate according to one embodiment;

La figure 5 montre un enchaînement d’étapes du procédé d’émission d’un paquet selon un mode de réalisation de l’invention ;FIG. 5 shows a sequence of steps in the process for transmitting a packet according to an embodiment of the invention;

La figure 6 montre un enchaînement d’étapes du procédé de réception d’un paquet selon un mode de réalisation de l’invention.FIG. 6 shows a sequence of steps in the method of receiving a packet according to an embodiment of the invention.

Description détaillée de l’inventionDetailed description of the invention

La description qui suit s’appuie sur des exemples pour permettre une bonne compréhension des principes de l’invention, et une application 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é opérant selon le protocole RapidIO 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.The description which follows is based on examples to allow a good understanding of the principles of the invention, and a concrete application, but is in no way exhaustive and must allow the person skilled in the art to apply modifications and modifications. implementation variants keeping the same principles. Thus, the present description of the invention is made to illustrate an implementation in a distributed system operating according to the RapidIO protocol but is not limiting, and can be used according to other architectures and communication protocols making it possible to interconnect processors of distributed systems.

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 (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, 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 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 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 caractère sécurisé S ou non-sécurisé NS du logiciel en cours d'exécution.Figure 1 shows at software level the implementation of the non-secure (102) and secure (104) worlds on a typical processor element (100). Such a processor element (100) can be a microprocessor synthesized on a programmable logic circuit “FPGA” for example or a circuit on chip (SoC), which can also include a plurality of processors. In the following description, the processor element (100) for applying the principles of the invention, more generally designates any autonomous data processing system or entity capable of communicating with another autonomous data processing system or entity. a network of distributed systems. Furthermore, only the components allowing a good understanding of the principles of the invention are described, the other components (memories, clocks, hypervisor, etc.) of a typical processor element being known to those skilled in the art are not detailed. The processor element (100) is configured on initialization to define a trusted environment (TEE), and to have software resources (102) running in non-secure mode NS and software resources (104) running in secure mode S. In known manner, for platforms of the system on a chip or “System on chip (SoC)” type in English, which implement a TEE trusted environment, the S or NS status of a code is accessible to processor level according to the state 0 or 1 of a specific bit (101) which, depending on its value, designates the secure character S or the non-secure character NS of the software being executed.

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 nonsécurisées (102) et sécurisées (104) sont couplées à une interface d’entrée-sortie (110) via un port d'entrée-sortie (106). Ce port d'entréesortie est structuré et peut être divisé selon les parties suivantes:In an implementation of a TEE platform, this bit is called "Unsecured bit" (or "NS bit" in English) and is available in a secure configuration register (SCR). The unsecured (102) and secure (104) software resources are coupled to an input-output interface (110) via an input-output port (106). This output port is structured and can be divided into the following parts:

- 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 par le logiciel sécurisé ;- a security configuration (108) for configuring the access rights of the NS software to the input-output interface. It takes into account the status bit (101) to ensure that it is only handled by the secure software;

- 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 ;- I / O input / output channels (107) for exchanging data between the software and the input / output interface. These channels take into account the status bit (101) to ensure consistency with the configuration of access rights;

- 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 œuvre 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 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.- interrupt signals (109) allowing the input-output interface (110) to signal the availability of incoming data to the software. In a preferred implementation, there are two interrupt signals called "FIQ" for "Fast Interrupt Request" in English and "IRQ" for "Interruption Request" in English. The signal FIQ is dedicated to the world S because its use can be protected there from the world NS, while the signal IRQ is dedicated to the world 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 réplique sont dédiées respectivement aux échanges S ou NS.Parts, I / O channels (107) and interrupt signals (109) can be duplicated. In an implementation, each part and its replica are dedicated respectively to S or NS exchanges.

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 à 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.The invention relates to input-output interfaces (110) which are communication interfaces. Since existing systems do not allow access to the communication interface simultaneously from the S and NS worlds in a coherent manner, this interface is then reserved for one of the two worlds, and the NS bit is transmitted to the interface in order to that she can forbid the other world to use it. The I / O channels (107) and interrupt signals (109) therefore only interact with one of the two worlds.

Avantageusement, lorsqu’une interface de communication met en œuvre 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 :Advantageously, when a communication interface implements the method of the present invention, the two worlds S and NS can use it coherently. The principles illustrated in Figure 1 remain unchanged, the only differences then being that:

- les mondes S et NS peuvent tous deux utiliser le canal d’entrée-sortie (107);- the S and NS worlds can both use the input-output channel (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.- the interrupt signals (109) can request the two worlds S and NS when the incoming data is available. In a preferred implementation, both the IRQ and FIQ interrupt signals are activated at the same time.

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 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.Advantageously, the method of the invention ensures that the data respectively from each world S and NS are transmitted at the level of the recipients, only to software belonging to the same world. The method of the invention makes it possible to use any transfer mode, such as DMA transfer for example, while respecting the separation of the S and NS worlds. Once notified, the recipient world S or NS has access to the frame.

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é 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’. II 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 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 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 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).FIG. 2 illustrates an implementation of the device of the invention. The requests to be transmitted over the network of a distributed system can either be unsecured requests called 'NS requests' from a non-secure software block (102) called 'NS initiator', or be secure requests called 'S requests' from a secure software block (104) called 'initiator S'. It should be noted that the same elements, whether hardware or software, bear the same references in the different figures. The initiators NS (102) and S (104) are coupled to a communication interface (110) via an interconnect bus (202) and an input / output port (106). This bus carries the transfer information while including the associated S or NS information, originating from the initiator of the transfer. In a preferred implementation, the interconnection bus is according to the AMBA® standard (Advanced Microcontroller Bus Architecture) from version 3. This bus carries read and write requests and carries address and data information as well as an NS bit. The S or NS information is transmitted to the I / O communication interface (110). In the context of known systems, the bus (202) or the interface (110) use this information to authorize or not authorize NS access to the 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 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.The communication interface (110) is coupled to a network switch (204) via a network input / output (I / O) link (210). From a hardware point of view, the network switch (204) can either be located on the same hardware component as the bus (202), or on another component and connected by a cable type link.

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) vers des nœuds 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 nœuds 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).The network switch (204) has I / O interfaces (not shown) allowing communications via other network links (212) to nodes in the distributed system. Frames sent over the network link (210) can pass through multiple switches before reaching a communication interface (110) on the destination nodes. In a particular implementation where there is no switch, we speak of a direct link via a single network link between two interfaces (110).

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 unique lien réseau (210), une trame configurée selon cette information S ou NS.The general principle of the invention thus consists in providing a communication interface (110) accessible to the two worlds S and NS of a processor element through an interconnection bus, the interface retaining information from the world S or NS original, and generating on a single network link (210), a frame configured according to this information S or NS.

Durant la traversée du réseau, l’information du monde d’origine S/NS n’est pas modifiée par les nœuds de routage intermédiaires du 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 nœud 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 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, 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.During the network crossing, the information of the originating S / NS world is not modified by the intermediate routing nodes of the network through which the frame passes. Advantageously, this information can also be used to guarantee the associated quality of service from start to finish. At destination, on the communication interface (110) of a destination node, this information of the original mode is used to activate a reception signal corresponding to the S or NS software of the destination processor. The association between the network frame and the S / NS information which it carries, is made in such a way that this information is made invisible to the software, in particular in NS mode. For this, the information from the original S / NS world is not transmitted as data, which would be visible at the software level. To be invisible at the software level, information from the original S / NS world is transmitted in a frame header, which is visible only at the hardware level.

Dans une implémentation selon le protocole RapidIO, 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 a des champs (40 à 44) qui ne sont accessibles qu’à l’interface de communication (110):In an implementation according to the RapidIO protocol, the format of the packets or frames (“frame” in English) at the physical level which are transmitted over the network is as shown in FIG. 3. Each packet has fields (40 to 44) which are only accessible from the communication interface (110):

- AcklD (40) : identifiant paquet spécifique à un lien ;- AcklD (40): package specific identifier for a link;

- VC (41 ) : Virtual Channel définit l’usage des champs de priorité (42) et de « CriticaIRequest Flow » (43) ;- VC (41): Virtual Channel defines the use of priority fields (42) and "CriticaIRequest Flow" (43);

- TT (44) : taille des identifiants source et destination.- TT (44): size of the source and destination identifiers.

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.The packets also have fields (45, 46, 47) allowing to define the identifiers of the source 'Srcld' (47) and the destination 'Destld' (46) of the packet and the request type 'FType' (45 ) contained in the package.

L’homme du métier pourra se reporter à la nombreuse littérature disponible pour obtenir plus de détails sur le protocole RapidIO.Those skilled in the art can refer to the numerous literature available for more details on the RapidIO protocol.

Dans cette implémentation, l’interface de communication (110) est configurée pour que la valeur du bit NS correspondant au monde d’origine soit appliquée au champ ‘VC’ (41) des paquets RapidIO. 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.In this implementation, the communication interface (110) is configured so that the value of the NS bit corresponding to the world of origin is applied to the ‘VC’ field (41) of RapidIO packets. Thus, any transmitted packet carries in its header which is visible only at the hardware level, the value of the bit NS representative of the world NS or S from which the transmitted data come. This value is kept throughout the transport of the packet in the network to the destination.

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.On reception of a transmitted packet, the communication interface of the processor element which receives the packet extracts the value contained in the header field VC to identify the NS or S status of the data, and associates the received packet with the world. corresponding.

Avantageusement, l’utilisation d’un champ protocolaire qui ne soit pas accessible au niveau logiciel permet d’éviter les attaques de type « VLAN DoubleTagging ».Advantageously, the use of a protocol field which is not accessible at the software level makes it possible to avoid attacks of the “VLAN DoubleTagging” type.

Bien qu’une implémentation préférentielle soit celle selon le protocole RapidIO, l’homme du métier peut dériver les mêmes principes pour tout autre protocole de transport offrant la capacité de transmettre l’information S/NS de façon invisible au niveau logiciel.Although a preferred implementation is that according to the RapidIO protocol, those skilled in the art can derive the same principles for any other transport protocol offering the ability to transmit S / NS information invisibly at the software level.

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 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 :Advantageously, the communication interface of the invention further comprises components (not shown) adapted to offer a high-level hardware interface, in particular allowing direct access transfers (DMA) to the memory of the processor element. , and allowing routing entirely controlled by configuration tables of the controller. In addition, S and NS accesses are associated with qualities of service which are configured from the secure world. The qualities of service correspond to conventional network sharing methods, namely:

- par priorité où l’accès sécurisé est prioritaire et les données associées sont transmises en priorité ;- by priority where secure access has priority and associated data is transmitted in priority;

- 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.- by portion of the network speed where each access has a reserved portion, so that each TEE mode has a guaranteed speed.

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, afin de garantir la préservation de l’accès sécurisé ou non-sécurisé.In an implementation where the trusted environment is used to guarantee security over a network and the physical part of this network is possibly exposed to physical attacks, appropriate protection is applied to the packet header , such as a signature and authentication, to guarantee the preservation of secure or non-secure access.

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 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 (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.FIG. 4 illustrates in a schematic view at the hardware level, an architecture of a network of distributed systems in which the device of the invention can operate according to one embodiment. For reasons of clarity and simplification of the description and without this being considered as a limitation, the figure shows a single transmitting processor element (200_E), which can communicate through a single element network (400) receiver processor (200_R) via network links (212). Each processor element comprises respectively at the hardware level, at least one interconnection bus (202_E, 202_R) and a communication interface (110_E, 110_R) configured according to the communication protocol. Optionally a network switch (204_E, 204_R) can be added to access the network link.

II est à noter que la topologie du réseau n’est pas imposée et que 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.It should be noted that the network topology is not imposed and that the device and method of the invention are applicable in various types of networks, such as ring networks, mesh or star networks.

La figure 5 montre un enchaînement 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 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.FIG. 5 shows a sequence of steps in the process for transmitting a packet according to the principle of the invention. The method begins when a communication request is initiated at the secure or insecure world level in a processor element. A corresponding message is prepared (502) and transmitted on the system bus of the processor element (504). In an AMBA® implementation, the message is prepared by an AXI Master component and sent on the AXI bus.

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 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 RapidIO dont le champ VC contient une valeur de bit égale à 0 ou 1 selon la provenance de la requête.The message is then written (506) at the level of the communication interface. The method creates (508) the physical level of the packet to be sent. Then, in a following step (510), the method makes it possible to configure the header of the packet by positioning in the secure bit field which is reserved according to the communication protocol used, the value of the bit corresponding to the secure or non-secure origin secure request. The packet thus configured is transmitted and transmitted (512) over the physical layer of the communication network to be routed to the destination processor. In a preferred implementation, the packet transmitted is a RapidIO frame whose VC field contains a bit value equal to 0 or 1 depending on the origin of the request.

La figure 6 montre un enchaînement 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 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é 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).FIG. 6 shows a sequence of steps in the method of receiving a packet according to the principle of the invention. The method begins when a packet is received (602) by a communication interface via a network switch. According to the principles of the invention, the interface is configured to extract (604) the value of the bit contained in the header field of the frame which is used to indicate the required mode of execution. The method then makes it possible to create (606) a message or a transfer request which is adapted to the architecture of the recipient processor element. In a next step (608), the method makes it possible to determine whether the message is a message of secure or insecure type and, depending on the result, to transfer the request to the appropriate zone of the processor element corresponding to the secure execution mode or non-secure (610, 612).

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 AMBA®, mais les principes de l’invention peuvent 5 s’appliquer sur d’autres variantes d’architecture.Those skilled in the art will appreciate that variations can be made on the method which is described for a preferential implementation. Thus, the examples taken are based on a TEE architecture of the AMBA® type, but the principles of the invention can be applied to other variants of 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.Furthermore, even if the description describes a method for transmitting packets and a method for receiving packets, the two methods can be operated by the same communication interface as a transmitter / receiver.

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 œuvre 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 tel cas se présente par exemple dans la solution DPAA2/AIOP® de NXP. Ce procédé peut donc être disponible en tant que produit programme d’ordinateur sur un support lisible par ordinateur.The method of the present invention can be implemented using hardware (ASIC, VLSI for example) and / or synthesis (FPGA) elements. When the communication interface is implemented with dedicated software which is not accessible to the main processor, the process can be implemented, in whole or in part, by this dedicated software. Such a case occurs for example in the DPAA2 / AIOP® solution from NXP. This method may therefore be available as a computer program product on a computer-readable medium.

Claims (17)

RevendicationsClaims 1. 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 nonsécurisé, le dispositif comprenant des moyens permettant :1. A device for establishing in a distributed system, trusted communications between a plurality of processors, each processor having configured a trusted environment allowing a secure execution mode and an unsecured execution mode, the device comprising means allowing : - 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é ;- to receive from a source processor, a data transmission request, for data originating either from the secure execution mode or from the non-secure execution mode; - 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- placing at least in the body of a frame said data and in a header field of said frame an indication of the mode of execution relating to said data, said header field being accessible only at the hardware level; and - d’émettre ladite trame sur un lien réseau du système distribué.- to transmit said frame on a network link of the distributed system. 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é.2. The device according to claim 1, in which the frame has a format adapted to the communication protocol used in the network of the distributed system. 3. Le dispositif selon la revendication 2 dans lequel le protocole de communication est le protocole RapidIO, le format de la trame est le format RapidIO et l’indication du mode d’exécution des données est placée dans le champ Virtual Channel (VC) des trames RapidIO.3. The device according to claim 2 in which the communication protocol is the RapidIO protocol, the frame format is the RapidIO format and the indication of the data execution mode is placed in the Virtual Channel (VC) field of the RapidIO frames. 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.4. The device according to any one of claims 1 to 3 in which the transmission request is transmitted on a system bus of the source processor. 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. The device according to claim 4, in which the system bus is a bus according to the Advanced Microcontroller Bus Architecture (AMBA) standard. 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.6. The device according to any one of claims 1 to 5 in which the indication of the mode of execution of said data is the state of zero or one of a bit. 7. Le dispositif selon l’une quelconque des revendications 1 à 6 dans lequel le processeur source est un microprocesseur synthétisé sur un circuit à logique programmable (FPGA) ou un circuit sur puce (SoC).7. The device according to any one of claims 1 to 6 in which the source processor is a microprocessor synthesized on a programmable logic circuit (FPGA) or a circuit on a chip (SoC). 8. Le dispositif selon l’une quelconque des revendications 1 à 7 dans lequel le lien réseau est couplé à un commutateur réseau.8. The device according to any one of claims 1 to 7 in which the network link is coupled to a network switch. 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.9. The device according to any one of claims 1 to 8 in which the network is a ring network or a mesh network or a star network. 10. Le dispositif selon l’une quelconque des revendications 1 à 9 comprenant de plus des moyens permettant :10. The device according to any one of claims 1 to 9 further comprising means allowing: - de recevoir une trame émise sur un lien réseau ;- receive a frame sent over a network link; - de déterminer le mode d’exécution à appliquer aux données contenues dans la trame ; et- determine the execution mode to apply to the data contained in the frame; and - d’émettre une requête de transfert correspondante.- issue a corresponding transfer request. 11. Un système de communication comprenant :11. A communication system comprising: - un processeur source configuré en environnement de confiance ;- a source processor configured in a trusted environment; - un processeur destinataire configuré en environnement de confiance ;- a recipient processor configured in a trusted environment; - un réseau reliant le processeur source au processeur destinataire par des liens réseaux ;- a network connecting the source processor to the destination processor by network links; - une interface de communication couplée au processeur source comprenant un dispositif selon l’une quelconque des revendications 1 à 10 ; et- a communication interface coupled to the source processor comprising a device according to any one of claims 1 to 10; and - une interface de communication couplée au processeur destinataire comprenant un dispositif selon la revendication 10.- a communication interface coupled to the destination processor comprising a device according to claim 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 nonsé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 indication du mode d’exécution relatif auxdites données, ledit champ d’entête étant accessible uniquement au niveau matériel.12. A method for establishing in a distributed system trusted communications between a plurality of processors, each processor having configured a trusted environment allowing a secure execution mode and an unsecured execution mode, the method being characterized in that '' it comprises at least one step consisting in transmitting on a network link of the distributed system, a frame containing in the frame body data coming either from the secure execution mode or from the non-secure execution mode, the frame containing no longer in a header field, an indication of the execution mode relating to said data, said header field being accessible only at the hardware level. 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 processeur source et audit lien réseau.13. The method according to claim 12 in which the step of transmitting a frame is operated by a communication interface coupled to a source processor and to said network link. 14. Le procédé selon les revendications 12 ou 13 comprenant avant l’étape d’émettre une trame, les étapes de :14. The method according to claims 12 or 13 comprising before the step of transmitting a frame, the steps of: - 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- generate a data transmission request on a system bus of a transmitting processor, the data coming from the secure execution mode or from the non-secure execution mode; and - placer dans le corps de la trame lesdites 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 auxdites données.- place in the body of the frame said data and in the header field of the frame only accessible at the hardware level, the indication of the execution mode relating to said data. 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 RapidIO et l’indication du mode d’exécution des données est contenue dans le champ Virtual Channel (VC) des trames RapidIO.15. The method according to claim 14 in which the system bus is an AXI bus, the frame format is the RapidIO format and the indication of the data execution mode is contained in the Virtual Channel (VC) field of the frames RapidIO. 16. Le procédé selon l’une quelconque des revendications 12 à 15 comprenant après l’étape d’émettre une trame, les étapes de :16. The method according to any one of claims 12 to 15 comprising, after the step of transmitting a frame, the steps of: - transmettre la trame vers un processeur destinataire du réseau distribué ; et- transmit the frame to a destination processor of the distributed network; and - déterminer à réception de la trame, le mode d’exécution des données.- determine upon receipt of the frame, the data execution mode. 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.17. A computer program product, said computer program comprising code instructions making it possible to carry out the steps of the method according to any one of claims 12 to 16, when said program is executed on a computer. 1/61/6 100100 101101
FR1601873A 2016-12-27 2016-12-27 DEVICE AND METHOD FOR CREATING A TRUSTED ENVIRONMENT IN A DISTRIBUTED SYSTEM Pending FR3061326A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
FR1601873A FR3061326A1 (en) 2016-12-27 2016-12-27 DEVICE AND METHOD FOR CREATING A TRUSTED ENVIRONMENT IN A DISTRIBUTED SYSTEM
PCT/EP2017/084550 WO2018122207A1 (en) 2016-12-27 2017-12-22 Device and method for creating a trusted environment in a distributed system

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1601873A FR3061326A1 (en) 2016-12-27 2016-12-27 DEVICE AND METHOD FOR CREATING A TRUSTED ENVIRONMENT IN A DISTRIBUTED SYSTEM
FR1601873 2016-12-27

Publications (1)

Publication Number Publication Date
FR3061326A1 true FR3061326A1 (en) 2018-06-29

Family

ID=59030988

Family Applications (1)

Application Number Title Priority Date Filing Date
FR1601873A Pending FR3061326A1 (en) 2016-12-27 2016-12-27 DEVICE AND METHOD FOR CREATING A TRUSTED ENVIRONMENT IN A DISTRIBUTED SYSTEM

Country Status (2)

Country Link
FR (1) FR3061326A1 (en)
WO (1) WO2018122207A1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140205099A1 (en) * 2013-01-22 2014-07-24 Qualcomm Incorporated Inter-Module Authentication for Securing Application Execution Integrity Within A Computing Device
WO2016007358A1 (en) * 2014-07-07 2016-01-14 Xilinx, Inc. Bridging inter-bus communications

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140205099A1 (en) * 2013-01-22 2014-07-24 Qualcomm Incorporated Inter-Module Authentication for Securing Application Execution Integrity Within A Computing Device
WO2016007358A1 (en) * 2014-07-07 2016-01-14 Xilinx, Inc. Bridging inter-bus communications

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
ARM: "ARM Security Technology - Building a Secure System using TrustZone Technology", INTERNET CITATION, 1 March 2009 (2009-03-01), pages I - XII,1, XP002746006, Retrieved from the Internet <URL:http://infocenter.arm.com/help/topic/com.arm.doc.prd29-genc-009492c/PRD29-GENC-009492C_trustzone_security_whitepaper.pdf> [retrieved on 20151009] *

Also Published As

Publication number Publication date
WO2018122207A1 (en) 2018-07-05

Similar Documents

Publication Publication Date Title
US10693899B2 (en) Traffic enforcement in containerized environments
US10652281B1 (en) Network policy implementation in a tag-based policy architecture
US8417868B2 (en) Method, apparatus and system for offloading encryption on partitioned platforms
US11212288B2 (en) Detection and prevention of attempts to access sensitive information in real-time
EP2274701B1 (en) System and method for securing a computer comprising a microcore
EP1672874B1 (en) Secure transmission method and system, firewall and router implementing the method
FR2863076A1 (en) HIGH SPEED CRYPTOGRAPHIC SYSTEM WITH MODULAR ARCHITECTURE.
US20170168985A1 (en) Chaining Virtual Network Function Services via Remote Memory Sharing
US10911405B1 (en) Secure environment on a server
FR2906909A1 (en) METHOD, APPARATUS AND SYSTEM FOR SUPPORTING IP NETWORK CONNECTION BETWEEN PARTITIONS IN A VIRTUALIZED ENVIRONMENT
CA2661398A1 (en) System and method for intelligent coordination of host and guest intrusion prevention in virtualized environment
US11924165B2 (en) Securing containerized applications
US20230047880A1 (en) Sidecar proxy as a service
US11184324B2 (en) Deep packet inspection with enhanced data packet analyzers
US11477269B2 (en) Hybrid cloud computing network management with synchronization features across different cloud service providers
EP1324175B1 (en) Module for securing data by encryption/decryption and/or signature/verification of signature
US20230161642A1 (en) Cloud based cross domain system - cds with disaggregated parts
EP2507712B1 (en) System for direct data transfer between memories of plurality of elements of this system
FR3048795A1 (en) ON-CHIP SYSTEM AND METHOD OF EXCHANGING DATA BETWEEN NODES OF CALCULATIONS OF SUCH SYSTEM ON CHIP
FR3061326A1 (en) DEVICE AND METHOD FOR CREATING A TRUSTED ENVIRONMENT IN A DISTRIBUTED SYSTEM
EP3519958B1 (en) Method for auditing a virtualised resource deployed in a cloud computing network
US20220385631A1 (en) Distributed traffic steering and enforcement for security solutions
US11863455B2 (en) Cloud based cross domain system—CDSaaS
US20230164224A1 (en) Cloud based cross domain system - virtual data diode
Flauzac et al. Original secure architecture for IoT based on SDN

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 2

PLSC Publication of the preliminary search report

Effective date: 20180629

PLFP Fee payment

Year of fee payment: 3

RX Complete rejection

Effective date: 20200304