WO2018122207A1 - 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
WO2018122207A1
WO2018122207A1 PCT/EP2017/084550 EP2017084550W WO2018122207A1 WO 2018122207 A1 WO2018122207 A1 WO 2018122207A1 EP 2017084550 W EP2017084550 W EP 2017084550W WO 2018122207 A1 WO2018122207 A1 WO 2018122207A1
Authority
WO
WIPO (PCT)
Prior art keywords
frame
secure
data
execution mode
network
Prior art date
Application number
PCT/EP2017/084550
Other languages
French (fr)
Inventor
Arnaud SAMAMA
Eric Dujardin
Original Assignee
Thales
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 filed Critical Thales
Publication of WO2018122207A1 publication Critical patent/WO2018122207A1/en

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]

Definitions

  • the invention relates to the field of distributed systems and more particularly relates to a method and a device for establishing a communication of trust between several processors of a distributed system.
  • a particular case of an input-output interface is that of the communication interfaces, which make it possible to access a communication network such as Ethernet or a serial link such as RS-232.
  • the operating system loader is also responsible for managing access rights, and ensures that resources allocated in secure mode are only used by hardware elements or executable code with higher or equal rights.
  • An element hardware or code executing on the processor, while it is in non-secure mode NS, has by default, access to any resource.
  • the operating system loader can then inform certain processor resources that they can accept requests for code or hardware items running in NS mode.
  • a device is either secure or non-secure.
  • the communication devices are thus allocated to one or the other mode.
  • 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 S mode.
  • RS-232 serial link
  • the operating system loader in addition to the system that runs in S mode, may launch another unsecure operating system that will be limited to resources in NS mode. For example, you can load a Linux® kernel that runs in non-secure mode.
  • the two operating systems having started respectively in S and NS mode, each start a set of software which they determine the mode, S or NS.
  • the allocation to the secure world S or the non-secure world NS of a hardware element can be done either at the device level or at the level of the bus for accessing the device.
  • a software running in NS mode attempts to access a secure device S, it usually receives a Bus Error either from the device itself or from the bus to access the device.
  • the hardware once configured S or NS, ensures that the unsecured world NS can not read or write a secure world information S.
  • S, NS When two or more processors, each configured with both modes (S, NS), must be associated to form a distributed system, they typically use two separate links that 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 lack of available interface, or because it requires a set of software that can weaken the security of software running in Mode S.
  • serial link is implemented, resulting in a doubling of the number of connectors and cables, which induces a lower communication speed for the S mode, and limited point-to-point, or point-to-point, but unidirectional, communications for the secure side.
  • an object of the present invention is to provide a device and a method for propagating 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 if the request is a request issued from the secure world or the unsecured world, and builds a message containing the world information corresponding to the source request for sending to the destination.
  • the communication interface that receives the message, identifies by reading the received frame to which execution mode belongs the source request, and solicits at the target processor level the secure or non-secure type of software that is appropriate.
  • the destination communication interface is a hardware device that operates autonomously without intervention at the software level.
  • the "software level” is defined for the present invention as the set of code that executes on one or more processors implementing the trusted environment.
  • the "hardware level” is defined for the present invention as the set of physical elements for networking processors including communication interfaces, links, links and network switches.
  • the communication interface in transmitter or receiver mode, uses to mark the message as being secure or non-secure, distributed system communication protocol fields that are not accessible at the software level but accessible only at the hardware level.
  • the communication protocol is the RapidIO TM protocol
  • the field used to indicate the execution mode information is the virtual VC virtual field, which is only accessible at the hardware level. .
  • the trusted environment is extended for a distributed system over a network, and it becomes possible to create a distributed secure environment for a set of secure worlds, without doubling connectivity for communications.
  • these secure worlds working together can then provide a higher level of service, by the overview they have on the distributed system, the topology of the network being insignificant to operate the invention.
  • the network is shared between the two worlds, so they are not located on each node of the network, but they each form a distributed system that operates a single network.
  • the invention makes it possible to limit the number of communication interfaces used, by proposing a single interface for the management of secure and non-secure execution modes.
  • the invention also makes it possible to use communication interfaces that enable both high-performance and multi-point, bidirectional communications, both from the secure world and from the non-secure world.
  • the invention makes it possible to use the communication interfaces, such as the RapidIO peripherals, effectively by preserving the isolation of the two secure and non-secure worlds, without impact their software, thus preserving their simplicity, especially in the secure part.
  • TEE trusted environments such as:
  • - security it is a privileged application area of the TEE, which guarantees the respect of a chain of trust from a cryptographic key stored in the silicon of the processor. Secured world isolation allows you to save passwords, and host confidential algorithms. This provides encryption and signing capabilities for data protection, secure GPS access, digital rights management, access to payment systems, and more. These typically secure functions are thus made available to a standard Windows® or Android® operating system (OS) in the non-secure world.
  • OS Windows® or Android® operating system
  • the secure world can observe at regular intervals the functioning of the unsecured world. This makes it possible to detect faults, attempts to intrude, to measure the level of use of software and hardware resources, etc. It also allows to suspend or restart a non-secure OS. This type of use is envisaged for example in the context of drones, systems that must guarantee vital functions in autonomy.
  • the TEE can be configured to guarantee the responsiveness of the secure world, regardless of the current unsecured processing.
  • the secure world can host a hard real-time OS, which thus shares hardware resources with a more complex non-secure OS. This type of operation is found in complex sensor-actuator networks, which join regular data acquisition and precise engine control functions, with analysis functions providing a first level of synthesis on the data acquired or the operation of the system.
  • the systems operating in TEE environment that can benefit from the invention are for example microprocessors of smartphones, tablets, set-top boxes, televisions, electronic cards, DSP type, FPGA, ASIC, and any system on machines. small sizes or on autonomous electronic devices (space probes, on-board computers, etc.) or computer centers. To obtain the desired results, a device and a method are proposed.
  • constructing a frame by placing at least in the body of the frame at least said data, the address of the destination processor, and placing in a header field of said frame an indication of the secure execution mode or unsecured for said data, said header field being accessible only at the hardware level;
  • the format of the frame corresponds to the format of the frames of the communication protocol used in the network of the distributed system.
  • the communication protocol is the RapidIO protocol
  • the frame format is the RapidIO format
  • the data execution mode indication is placed in the Virtual Channel (VC) field of the RapidIO frames.
  • the indication of the data execution mode is the zero or one bit state.
  • the data transmission request is transmitted on a system bus of the source processor.
  • the system bus is a bus according to the Advanced Microcontroller Bus Architecture (AMBA) standard.
  • AMBA Advanced Microcontroller Bus Architecture
  • the source processor is a microprocessor synthesized on a programmable logic circuit (FPGA) or a circuit-on-a-chip (SoC).
  • FPGA programmable logic circuit
  • SoC circuit-on-a-chip
  • the network comprises a network switch.
  • the network may be a ring network or a mesh network or a star network.
  • the invention also covers the claimed device further comprising means for:
  • a communication system comprises:
  • a source processor configured in a trusted environment
  • a recipient processor configured in a trusted environment; a network connecting the source processor to the recipient processor;
  • a communication interface coupled to the destination processor and comprising the claimed device.
  • 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 for a secure execution mode and a non-secure execution mode.
  • the method is characterized in that it comprises at least one step of transmitting on a network of the distributed system, a frame containing in the frame body data from either the secure execution mode or the non-execution mode. source processor and an address of at least one destination processor, the frame further containing in a header field, an indication of the secure or non-secure execution mode for said data, said field of header being accessible only at the hardware level.
  • the step of transmitting a frame is performed by a communication interface coupled to a source processor and the network.
  • the method comprises, before the step of transmitting a frame, the steps of:
  • constructing a frame by placing in the body of the frame at least said data and the address of at least one destination processor, and in said header field of the frame indicating the secure execution mode or unsecured for said data.
  • the claimed method operates for an AXI type system bus, the frame is in RapidIO format and the indication of the secure or non-secure execution mode for the data is placed in the Virtual Channel (VC) field of the frame. RapidIO.
  • VC Virtual Channel
  • the method may furthermore comprise, after the step of emitting a frame, the steps of:
  • Certain steps of the method of the invention may operate in the form of a computer program product that includes code instructions for performing these steps when the program is run on a computer.
  • FIG. 1 illustrates, in a schematic view at the software level, a known implementation of the secure and non-secure worlds in a processor element
  • FIG. 2 illustrates in schematic view, a hardware level implementation of the device of the invention according to one embodiment
  • FIG. 3 illustrates an exemplary frame according to the protocol
  • 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
  • Figure 5 shows a sequence of steps of the method of transmitting a packet according to an embodiment of the invention
  • Figure 6 shows a sequence of steps of the method of receiving a packet according to an embodiment of the invention.
  • FIG. 1 shows at the software level the implementation of the non-secure (102) and secure (104) worlds on a typical processor element (100).
  • a processor element (100) may be a microprocessor synthesized on a programmable logic circuit "FPGA” for example or a circuit-on-chip (SoC), which may also include a plurality of processors.
  • the processor element (100) for applying the principles of the invention more generally designates any autonomous data processing system or entity that can communicate with another autonomous data processing system or entity. a network of distributed systems.
  • the other components memory, clocks, hypervisor, etc.
  • the processor element (100) is configured at initialization to define a trusted environment (TEE), and have software resources (102) executing in non-secure mode NS and software resources (104) executing in secure mode S.
  • TEE trusted environment
  • software resources (102) executing in non-secure mode NS and software resources (104) executing in secure mode S In a known manner, for the system-type platforms on a chip or "System on chip (SoC)" in English, which implement a TEE trust environment, the status S or NS of a code is accessible to processor level according to the state 0 or 1 of a specific bit (101) which according to its value indicates the secure character S or non-secure NS of the software running. In an implementation of a TEE platform, this bit is called the "unsecured bit" (or "NS bit") and is available in a secure configuration register (SCR).
  • the unsecured (102) and secure (104) software resources are coupled to an interface input-output device (1 10) via an input-output port (106). This input-output port is structured and can be
  • interrupt signals (109) enabling the input-output interface (1 10) to signal the availability of incoming data to the software.
  • there are two interrupt signals called 'FIQ' for 'Fast Interrupt Request' and 'IRQ' for 'Interruption Request'.
  • the FIQ signal is dedicated to the S world because its use can be protected from the NS world, while the IRQ signal is dedicated to the NS world.
  • I / O channels (107) and interrupt signals (109) can be duplicated.
  • each part and its replica are dedicated respectively to S or NS exchanges.
  • the invention relates to input-output interfaces (1 10) which are communication interfaces. Since the 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 it can forbid the other world to use it.
  • the I / O channels (107) and the interrupt signals (109) therefore interact with only one of the two worlds.
  • a communication interface implements the method of the present invention, the two worlds S and NS can use it in a coherent manner.
  • the principles illustrated in Figure 1 remain unchanged, the only differences being that: - worlds S and NS can both use the input-output channel (107);
  • the interrupt signals (109) can request the two worlds S and NS when incoming data is available.
  • the two interrupt signals IRQ and FIQ are activated at a time.
  • the method of the invention ensures that the data respectively from each world S and NS are transmitted at the recipient level, that software in the same world.
  • the method of the invention makes it possible to use any transfer mode, such as the 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.
  • FIG. 2 illustrates an implementation of the device of the invention.
  • the requests to be transmitted on the network of a distributed system can be either unsecured requests called 'NS requests' from a non-secure software block (102) said 'NS initiator', or be secure requests said 'requests S' from a secure software block (104) said 'initiator S'.
  • Initiators NS (102) and S (104) are coupled to a communication interface (1 10) via an interconnect bus (202) and an input / output port (106). This bus carries the transfer information while including the associated information S or NS, issued by the initiator of the transfer.
  • the interconnect bus is according to the AMBA® standard (Advanced Microcontroller Bus Architecture) from version 3.
  • This bus carries read and write requests and carries the address information, data as well as a NS bit.
  • the information S or NS is transmitted to the input-output communication interface (1 10).
  • the bus (202) or the interface (1 10) use this information to allow or not NS access to the interface (1 10).
  • the communication interface (1 10) is coupled to a network switch (204) via a network input / output (I / O) link (210).
  • the network switch (204) can be either located on the same hardware component as the bus (202), or on another component and connected by a cable type link.
  • the network switch (204) has input / output interfaces (not shown) for communication over other network links (212) to nodes in the distributed system. Frames sent through the network link (210) can traverse multiple switches before reaching a communication interface (1 10) on the destination nodes. In a particular implementation where there is no switch, it is called direct link via a single network link between two interfaces (1 10).
  • the general principle of the invention thus consists in providing a communication interface (1 10) accessible to the two worlds S and NS of a processor element through an interconnection bus.
  • the interface retains the information of the world S or NS of origin, and generates on a single network link (210), a frame configured according to this information S or NS.
  • the network is blocked at any access other than through the communications interfaces as described. In an implementation, it may be a wired network using shielded and physically locked cables.
  • the information of the S / NS origin world is not modified by the intermediate routing nodes of the network traversed by the frame.
  • this information can also be used to guarantee the quality of service associated end-to-end.
  • this origin mode information is used to activate a receive signal corresponding to the S or NS software of the destination processor.
  • the association between the network frame and the S / NS information that it carries is made in such a way that this information is made invisible to the software, in particular in NS mode.
  • the information of the S / NS origin world is not transmitted as data, which would be visible at the software level.
  • the S / NS origin world information is transmitted in a frame header, which is visible only at the hardware level.
  • the format of the packets or frames ("frame" in English) at the physical level which are transmitted on the network is as shown in FIG. 3.
  • Each packet has fields (40 to 44) which are only accessible to the communication interface (1 10): - AckID (40): link specific packet identifier;
  • Virtual Channel defines the use of the priority (42) and CriticaIRequest Flow (43) fields;
  • the packets additionally have fields (45, 46, 47) making it possible to define the identifiers of the source 'Srcld' (47) and the destination Oestld '(46) of the packet and the type of request' FType '(45) contained in the package.
  • the communication interface (1 10) is configured so that the value of the NS bit corresponding to the world of origin is applied to the field VC (41) of the RapidIO packets.
  • any transmitted packet carries in its header which is visible only at the hardware level, the value of the NS bit representative of the NS or S world from which the transmitted data originates. This value is kept throughout the transport of the packet in the network to the destination.
  • the communication interface of the processor element that receives the packet Upon receipt of a transmitted packet, the communication interface of the processor element that receives the packet retrieves the value contained in the VC header field to identify the NS or S status of the data, and associates the received packet to the corresponding world.
  • 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.
  • a preferred implementation is that according to the RapidIO protocol, one skilled in the art can derive the same principles for any other transport protocol offering the ability to transmit the S / NS information invisibly at the software level.
  • the communication interface of the invention further comprises components (not shown) adapted to provide a high-level hardware interface, in particular allowing direct access transfers (DMA) to the memory of the processor element. , and allowing a routing entirely controlled by controller configuration tables.
  • DMA direct access transfers
  • S and NS accesses are associated with qualities of service that are configured from the secure world.
  • the qualities of service correspond to conventional sharing modes of the network, namely:
  • the trusted environment is used to provide a security guarantee across a network and the physical part of that network is possibly exposed to physical attacks
  • appropriate protection is applied to the packet header. , such as a signature and an authentication, to guarantee the preservation of secure or non-secure access.
  • 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.
  • the figure shows a single transmitting processor element (200_E), which can communicate through a single element network (400). receiving processor (200_R) via network links (212).
  • Each processor element comprises respectively at its hardware, at least one interconnect bus (202_E, 202_R) and a communication interface (1 10_E, 1 10_R) configured according to the communication protocol.
  • a network switch (204_E, 204_R) may be added to access the network link.
  • FIG. 5 shows a sequence of steps of the method of transmitting a packet according to the principle of the invention.
  • the method begins when a communication request is initiated at the secure or unsecured world level in a processor element.
  • a corresponding message is prepared (502) and transmitted on the system bus of the element processor (504).
  • the message is prepared by an AXI Master component and sent on the AXI bus.
  • the message is then (506) written at the communication interface.
  • the method creates (508) the physical level of the packet to be sent.
  • the method makes it possible to configure the header of the packet by positioning in the secure bit field that is reserved according to the communication protocol used, the value of the bit corresponding to the secure source or unsecured request.
  • the thus configured packet is transmitted and transmitted (512) over the physical layer of the communication network to be routed to the destination processor.
  • the transmitted packet is a RapidIO frame whose VC field contains a bit value equal to 0 or 1 depending on the origin of the request.
  • Figure 6 shows a sequence of steps of the method of receiving a packet according to the principle of the invention.
  • the method begins when a packet is received (602) through a communication interface via a network switch.
  • the interface is configured to extract (604) the value of the bit contained in the header field of the frame that is used to indicate the required execution mode.
  • the method then makes it possible to create (606) a message or a transfer request that is adapted to the architecture of the destination processor element.
  • the method makes it possible to determine whether the message is a message of the secure or insecure type and according to the result of transferring the request to the appropriate zone of the processor element corresponding to the secure execution mode. non-secure (610, 612).
  • both methods can be operated by the same communication interface as a transmitter / receiver.
  • the address placed in the frame designates several destination processors without this changing the process.
  • the method of the present invention can be implemented from hardware elements (ASIC, VLSI for example) and / or synthesis (FPGA).
  • ASIC application-specific integrated circuit
  • FPGA field-programmable gate array

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Mathematical Physics (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

The present invention relates to a device and method for establishing, in a distributed system, trusted communications between a plurality of processors that have configured a trusted environment enabling a secure mode of execution and an unsecure mode of execution for data. In particular, the device comprises means that make it possible: to receive from a source processor, a request for transmission of data, for data issued either from the secure mode of execution or from the unsecured mode of execution; to construct a frame, at least said data and the address of at least one destination processor being placed in the body of the frame, and an indication of the unsecure or secure mode of execution for said data being placed in a header field of said frame, the header field being accessible uniquely at the network-hardware level; and to send said frame over a network of the distributed system.

Description

DISPOSITIF ET PROCEDE POUR CREER UN  DEVICE AND METHOD FOR CREATING A
ENVIRONNEMENT DE CONFIANCE DANS UN SYSTEME DISTRIBUE  ENVIRONMENT OF CONFIDENCE IN A DISTRIBUTED SYSTEM
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é. Field of the invention The invention relates to the field of distributed systems and more particularly relates to a method and a device for establishing a communication of trust between several processors of a distributed system.
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 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. STATE OF THE ART Many equipments have processors which, in addition to the standard or unsecured execution mode, have a secure execution mode also known as the execution mode in a trusted environment or "Trusted Execution". Environment (TEE) "according to the consecrated Anglicism. In these devices, during the startup phase, the first code that runs, usually an operating system loader, has access to all CPU resources and is in secure mode (S). The operating system loader is in charge of resource management and allows to allow interactions between the processor resources and the different "hardware" elements such as RAM (for example, DDR-SDRAM) and interfaces. enter exit. A particular case of an input-output interface is that of the communication interfaces, which make it possible to access a communication network such as Ethernet or a serial link such as RS-232. The operating system loader is also responsible for managing access rights, and ensures that resources allocated in secure mode are only used by hardware elements or executable code with higher or equal rights. An element hardware or code executing on the processor, while it is in non-secure mode NS, has by default, access to any resource. 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. The 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 S mode.
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é. 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. 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. 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é. The operating system loader, in addition to the system that runs in S mode, may launch another unsecure operating system that will be limited to resources in NS mode. For example, you can load a Linux® kernel that runs in non-secure mode. The two operating systems having started respectively in S and NS mode, each start a set of software which they determine the mode, S or NS. There are then two environments or worlds called "secure world" and "unsecured world" that share the use of a processor in isolation. The allocation to the secure world S or the non-secure world NS of a hardware element can be done either at the device level or at the level of the bus for accessing the device. Thus, if a software running in NS mode attempts to access a secure device S, it usually receives a Bus Error either from the device itself or from the bus to access the device. Indeed, the hardware once configured S or NS, ensures that the unsecured world NS can not read or write a secure world information S. When two or more processors, each configured with both modes (S, NS), must be associated to form a distributed system, they typically use two separate links that 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 lack of available interface, or because it requires a set of software that can weaken the security of software running in Mode S. To overcome this, a serial link is implemented, resulting in a doubling of the number of connectors and cables, which induces a lower communication speed for the S mode, and limited point-to-point, or point-to-point, but unidirectional, communications 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 : - la communication entre le monde S et le monde NS est plus complexe, en ce qu'elle augmente la surface d'attaque ; It is possible to use only one type of communication, whose material control is entrusted to one of the two worlds S or NS. Typically, this is the S world that needs guaranteed communication, which by nature the NS world can not offer. All communications in the NS world must then pass through the S-world. This results in major drawbacks, such as: - 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 ; the repeated passing 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. II 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). 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. Résumé de l'invention - the need for performance of the NS world is managed by the world S. It then results in a greater complexity of the world S, a code maintenance difficulty, and a decrease in overall performance compared to a system that does not have an environment of trust (TEE). Thus, there is the need for a solution that allows in a distributed system, communications between processors operating in a trusted environment, and that overcomes the disadvantages of known approaches. The present invention meets this need. Summary 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 non- sécurisé, et construit un message contenant l'information du monde correspondant à la requête source pour envoi vers la 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é. To achieve this objective, an object of the present invention is to provide a device and a method for propagating 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 if the request is a request issued from the secure world or the unsecured world, and builds a message containing the world information corresponding to the source request for sending to the destination. At destination, the communication interface that receives the message, identifies by reading the received frame to which execution mode belongs the source request, and solicits at the target processor level the secure or non-secure type of software that is appropriate.
Avantageusement, l'interface de communication à destination est un dispositif matériel qui opère de manière autonome sans intervention au niveau logiciel. Advantageously, the destination communication interface is a hardware device that operates autonomously without intervention at the software level.
Le "niveau logiciel" est défini pour la présente invention comme étant l'ensemble du code qui s'exécute sur un ou des processeurs mettant en œuvre l'environnement de confiance. Le "niveau matériel", est défini pour la présente invention comme étant l'ensemble des éléments physiques assurant la mise en réseau des processeurs incluant les interfaces de communication, les liaisons, liens et les commutateurs réseau. 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 mais accessible uniquement au niveau matériel. Ainsi, 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 » qui n'est accessible qu'au niveau matériel. The "software level" is defined for the present invention as the set of code that executes on one or more processors implementing the trusted environment. The "hardware level" is defined for the present invention as the set of physical elements for networking processors including communication interfaces, links, links and network switches. The communication interface in transmitter or receiver mode, uses to mark the message as being secure or non-secure, distributed system communication protocol fields that are not accessible at the software level but accessible only at the hardware level. Thus, in a particular implementation, the communication protocol is the RapidIO ™ protocol, and the field used to indicate the execution mode information is the virtual VC virtual field, which is only accessible at the hardware level. .
Ainsi, l'environnement de confiance (TEE) est étendu pour 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 for a distributed system over a network, and it becomes possible to create a distributed secure environment for a set of secure worlds, without doubling 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. 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, these secure worlds working together can then provide a higher level of service, by the overview they have on the distributed system, the topology of the network being insignificant to operate the invention. The network is shared between the two worlds, so they are not located on each node of the network, but they each form a distributed system that operates a single network. Advantageously, the invention makes it possible to limit the number of communication interfaces used, by proposing a single interface for the management of secure and non-secure execution modes. The invention also makes it possible to use communication interfaces that enable both high-performance and multi-point, bidirectional 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 secure and non-secure worlds, without impact their software, thus preserving their simplicity, especially 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: it is a privileged application area of the TEE, which guarantees the respect of a chain of trust from a cryptographic key stored in the silicon of the processor. Secured world isolation allows you to save passwords, and host confidential algorithms. This provides encryption and signing capabilities for data protection, secure GPS access, digital rights management, access to payment systems, and more. 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 at regular intervals the functioning of the unsecured world. This makes it possible to detect faults, attempts to intrude, to measure the level of use of software and hardware resources, etc. It also allows to suspend or restart a non-secure OS. This type of use is envisaged for example in the context of drones, systems that 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 to guarantee the responsiveness of the secure world, regardless of the current unsecured processing. The secure world can host a hard real-time OS, which thus shares hardware resources with a more complex non-secure OS. This type of operation is found in complex sensor-actuator networks, which join regular data acquisition and precise engine control functions, with analysis functions providing a first level of synthesis on the data acquired or the operation of the system.
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. Pour obtenir les résultats recherchés, un dispositif et un procédé sont proposés. The systems operating in TEE environment that can benefit from the invention are for example microprocessors of smartphones, tablets, set-top boxes, televisions, electronic cards, DSP type, FPGA, ASIC, and any system on machines. small sizes or on autonomous electronic devices (space probes, on-board computers, etc.) or computer centers. 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, there is provided a device for establishing in a distributed system, trust communications between a plurality of processors, each processor having configured a trusted environment for a secure execution mode and a non-secure mode of execution, the device comprising means for:
- 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é ;  receiving from a source processor a data transmission request for data originating from either the secure execution mode or the non-secure execution mode;
- de construire une trame en plaçant au moins dans le corps de la trame au moins lesdites données, l'adresse du processeur destinataire, et en plaçant dans un champ d'en-tête de ladite trame une indication du mode d'exécution sécurisé ou non-sécurisé pour lesdites données, ledit champ d'en-tête étant accessible uniquement au niveau matériel; et  constructing a frame by placing at least in the body of the frame at least said data, the address of the destination processor, and placing in a header field of said frame an indication of the secure execution mode or unsecured for said data, said header field being accessible only at the hardware level; and
- d'émettre ladite trame sur un réseau du système distribué. Avantageusement, le format de la trame correspond au format des trames du protocole de communication utilisé dans le réseau du système distribué. transmitting said frame on a network of the distributed system. Advantageously, the format of the frame corresponds to the format of the frames of the communication protocol used in the network of the distributed system.
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. Selon un mode de réalisation, la requête de transmission de données 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). In one implementation, the communication protocol is the RapidIO protocol, the frame format is the RapidIO format, and the data execution mode indication 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 zero or one bit state. According to one embodiment, the data transmission request is transmitted 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 embodiments, the source processor is a microprocessor synthesized on a programmable logic circuit (FPGA) or a circuit-on-a-chip (SoC).
Selon une réalisation, le réseau comprend 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 plus des moyens permettant : In one embodiment, the network comprises a network switch. The network may be a ring network or a mesh network or a star network. The invention also covers the claimed device further comprising means for:
- de recevoir une trame émise sur un réseau depuis un processeur source  to receive a frame sent on a network from a source processor
- de déterminer selon le contenu du champ d'en-tête le mode d'exécution sécurisé ou non-sécurisé à appliquer pour les données contenues dans la trame ; et determining, according to the content of the header field, the secure or non-secure execution mode to be applied for the data contained in the frame; and
- d'émettre vers au moins un processeur destinataire une requête de transfert pour traitement correspondant au mode d'exécution sécurisé ou non-sécurisé tel que déterminé. Un système de communication en accord avec l'invention comprend : - Transmit to at least one destination processor a transfer request for processing corresponding to the secure or non-secure execution mode as determined. A communication system according to the invention comprises:
- un processeur source configuré en environnement de confiance ;  a source processor configured in a trusted environment;
- un processeur destinataire configuré en environnement de confiance ; - un réseau reliant le processeur source au processeur destinataire ;  a recipient processor configured in a trusted environment; a network connecting the source processor to the recipient processor;
- 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 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 comprising 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 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é du processeur source et une adresse d'au moins un processeur destinataire, la trame contenant de plus dans un champ d'en-tête, une indication du mode d'exécution sécurisé ou non- sécurisé pour lesdites données, ledit champ d'en-tê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 for a secure execution mode and a non-secure execution mode. The method is characterized in that it comprises at least one step of transmitting on a network of the distributed system, a frame containing in the frame body data from either the secure execution mode or the non-execution mode. source processor and an address of at least one destination processor, the frame further containing in a header field, an indication of the secure or non-secure execution mode for said data, said field of header 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 réseau. In one embodiment, the step of transmitting a frame is performed by a communication interface coupled to a source processor and the network.
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 source 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é dudit processeur source ; et - Generate on a system bus of a source processor a data transmission request, the data being from the execution mode secure or non-secure execution mode of said source processor; and
- construire une trame en plaçant dans le corps de la trame au moins lesdites données et l'adresse d'au moins un processeur destinataire, et dans ledit champ d'en-tête de la trame l'indication du mode d'exécution sécurisé ou non-sécurisé pour lesdites données.  constructing a frame by placing in the body of the frame at least said data and the address of at least one destination processor, and in said header field of the frame indicating the secure execution mode or unsecured for said data.
Avantageusement, le procédé revendiqué opère pour un bus système de type AXI, la trame est au format RapidIO et l'indication du mode d'exécution sécurisé ou non-sécurisé pour les données est placée dans le champ Virtual Channel (VC) de la trame RapidIO. Advantageously, the claimed method operates for an AXI type system bus, the frame is in RapidIO format and the indication of the secure or non-secure execution mode for the data is placed in the Virtual Channel (VC) field of the frame. RapidIO.
Le procédé peut comprend de plus après l'étape d'émettre une trame, les étapes de : The method may furthermore comprise, after the step of emitting a frame, the steps of:
- transmettre la trame vers une interface de communication couplée à un processeur destinataire du réseau distribué ;  transmitting the frame to a communication interface coupled to a destination processor of the distributed network;
- déterminer à réception de la trame par ladite interface de communication, le mode d'exécution sécurisé ou non-sécurisé pour les données ; et  determining, upon reception of the frame by said communication interface, the secure or non-secure execution mode for the data; and
- émettre vers le processeur destinataire une requête de transfert pour traitement correspondant au mode d'exécution sécurisé ou non-sécurisé tel que déterminé.  transmitting to the destination processor a transfer request for processing corresponding to the secure or non-secure execution mode as determined.
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 may operate in the form of a computer program product that includes code instructions for performing these steps when the program is run on a computer.
Description des 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 : Description of figures Various aspects and advantages of the invention will appear in support of the description of a preferred embodiment of the invention, but not limiting, with reference to the figures below:
La figure 1 illustre sous une vue schématique au niveau du logiciel une implémentation connue des mondes sécurisé et non-sécurisé dans un élément processeur; FIG. 1 illustrates, in 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 du matériel du dispositif de l'invention selon un mode de réalisation ; La figure 3 illustre un exemple de trame selon le protocoleFigure 2 illustrates in schematic view, a hardware level implementation of the device of the invention according to one embodiment; FIG. 3 illustrates an exemplary frame according to the protocol
RapidIO ; RapidIO;
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; 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. 4 illustrates a simplified architecture of a network of distributed systems in which the device of the invention can operate according to one embodiment; Figure 5 shows a sequence of steps of the method of 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. Figure 6 shows a sequence of steps of the method of receiving a packet according to an embodiment of the invention.
Description détaillée de l'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. DETAILED DESCRIPTION OF THE INVENTION The following description 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 should enable the person skilled in the art to apply modifications and 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 to be used according to other architectures and communication protocols for interconnecting distributed system processors.
La figure 1 représente au niveau du 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. 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écu risées (102) et sécurisées (104) sont couplées à une interface d'entrée-sortie (1 10) via un port d'entrée-sortie (106). Ce port d'entrée- sortie est structuré et peut être divisé selon les parties suivantes: Figure 1 shows at the software level the implementation of the non-secure (102) and secure (104) worlds on a typical processor element (100). Such a processor element (100) may be a microprocessor synthesized on a programmable logic circuit "FPGA" for example or a circuit-on-chip (SoC), which may also include a plurality of processors. In the remainder of the description, the processor element (100) for applying the principles of the invention more generally designates any autonomous data processing system or entity that can communicate 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 at initialization to define a trusted environment (TEE), and have software resources (102) executing in non-secure mode NS and software resources (104) executing in secure mode S. In a known manner, for the system-type platforms on a chip or "System on chip (SoC)" in English, which implement a TEE trust environment, the status S or NS of a code is accessible to processor level according to the state 0 or 1 of a specific bit (101) which according to its value indicates the secure character S or non-secure NS of the software running. In an implementation of a TEE platform, this bit is called the "unsecured bit" (or "NS bit") and is available in a secure configuration register (SCR). The unsecured (102) and secure (104) software resources are coupled to an interface input-output device (1 10) via an input-output port (106). This input-output port is structured and can be divided according to 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 handled only 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 the access rights;
- des signaux d'interruption (109) permettant à l'interface d'entrée-sortie (1 10) 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) enabling the input-output interface (1 10) 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' and 'IRQ' for 'Interruption Request'. The FIQ signal is dedicated to the S world because its use can be protected from the NS world, while the IRQ signal is dedicated to the NS world.
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. The 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 (1 10) 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. 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 : - les mondes S et NS peuvent tous deux utiliser le canal d'entrée-sortie (107) ; The invention relates to input-output interfaces (1 10) which are communication interfaces. Since the 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 it can forbid the other world to use it. The I / O channels (107) and the interrupt signals (109) therefore interact with only one of the two worlds. Advantageously, when a communication interface implements the method of the present invention, the two worlds S and NS can use it in a coherent manner. The principles illustrated in Figure 1 remain unchanged, the only differences being that: - worlds S and NS 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 incoming data is available. In a preferred implementation, the two interrupt signals IRQ and FIQ are activated at a 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 recipient level, that software in the same world. The method of the invention makes it possible to use any transfer mode, such as the 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'. 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 figures. Les initiateurs NS (102) et S (104) sont couplés à une interface de communication (1 10) 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 (1 10). Dans le cadre de systèmes connus, le bus (202) ou l'interface (1 10) utilisent cette information pour autoriser ou non l'accès NS à l'interface (1 10). Figure 2 illustrates an implementation of the device of the invention. The requests to be transmitted on the network of a distributed system can be either unsecured requests called 'NS requests' from a non-secure software block (102) said 'NS initiator', or be secure requests said 'requests S' from a secure software block (104) said 'initiator S'. It should be noted that the same elements, whether hardware or software, bear the same references in the different figures. Initiators NS (102) and S (104) are coupled to a communication interface (1 10) via an interconnect bus (202) and an input / output port (106). This bus carries the transfer information while including the associated information S or NS, issued by the initiator of the transfer. In a preferred implementation, the interconnect bus is according to the AMBA® standard (Advanced Microcontroller Bus Architecture) from version 3. This bus carries read and write requests and carries the address information, data as well as a NS bit. The information S or NS is transmitted to the input-output communication interface (1 10). In known systems, the bus (202) or the interface (1 10) use this information to allow or not NS access to the interface (1 10).
L'interface de communication (1 10) 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 (1 10) 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 be either 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 (1 10) 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 (1 10). The network switch (204) has input / output interfaces (not shown) for communication over other network links (212) to nodes in the distributed system. Frames sent through the network link (210) can traverse multiple switches before reaching a communication interface (1 10) on the destination nodes. In a particular implementation where there is no switch, it is called direct link via a single network link between two interfaces (1 10).
Le principe général de l'invention consiste ainsi à fournir une interface de communication (1 10) accessible aux deux mondes S et NS d'un élément processeur à travers un bus d'interconnexion. L'interface conserve l'information du monde S ou NS d'origine, et génère sur un unique lien réseau (210), une trame configurée selon cette information S ou NS. Le réseau est bloqué à tout accès autre que par les interfaces de communications telles que décrites. Dans une implémentation, il peut s'agir d'un réseau filaire utilisant des câbles blindés et matériellement placé sous clé. 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 (1 10) 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. 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 (1 10): - AcklD (40) : identifiant paquet spécifique à un lien ; The general principle of the invention thus consists in providing a communication interface (1 10) accessible to the two worlds S and NS of a processor element through an interconnection bus. The interface retains the information of the world S or NS of origin, and generates on a single network link (210), a frame configured according to this information S or NS. The network is blocked at any access other than through the communications interfaces as described. In an implementation, it may be a wired network using shielded and physically locked cables. During the traversal of the network, the information of the S / NS origin world is not modified by the intermediate routing nodes of the network traversed by the frame. Advantageously, this information can also be used to guarantee the quality of service associated end-to-end. At destination, on the communication interface (1 10) of a destination node, this origin mode information is used to activate a receive signal corresponding to the S or NS software of the destination processor. The association between the network frame and the S / NS information that 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 of the S / NS origin world is not transmitted as data, which would be visible at the software level. To be invisible at the software level, the S / NS origin world information is transmitted in a frame header, which is visible only at the hardware level. 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 on the network is as shown in FIG. 3. Each packet has fields (40 to 44) which are only accessible to the communication interface (1 10): - AckID (40): link specific packet identifier;
- 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 the priority (42) and CriticaIRequest Flow (43) fields;
- 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 Oestld' (46) du paquet et le type de requête 'FType' (45) contenu dans le paquet. The packets additionally have fields (45, 46, 47) making it possible to define the identifiers of the source 'Srcld' (47) and the destination Oestld '(46) of the packet and the type of request' 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. Dans cette implémentation, l'interface de communication (1 10) 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. Those skilled in the art will be able to refer to the numerous available literature to obtain more details on the RapidIO protocol. In this implementation, the communication interface (1 10) is configured so that the value of the NS bit corresponding to the world of origin is applied to the field VC (41) of the RapidIO packets. Thus, any transmitted packet carries in its header which is visible only at the hardware level, the value of the NS bit representative of the NS or S world from which the transmitted data originates. 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'en-tête VC pour identifier le statut NS ou S des données, et associe le paquet reçu au monde correspondant. Upon receipt of a transmitted packet, the communication interface of the processor element that receives the packet retrieves the value contained in the VC header field to identify the NS or S status of the data, and associates the received packet to the corresponding world.
Avantageusement, l'utilisation d'un champ protocolaire qui ne soit 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 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. 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. Although a preferred implementation is that according to the RapidIO protocol, one skilled in the art can derive the same principles for any other transport protocol offering the ability to transmit the 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 provide a high-level hardware interface, in particular allowing direct access transfers (DMA) to the memory of the processor element. , and allowing a routing entirely controlled by controller configuration tables. In addition, S and NS accesses are associated with qualities of service that are configured from the secure world. The qualities of service correspond to conventional sharing modes of the network, namely:
- 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. - by priority where the secure access has priority and the associated data are transmitted in priority; - per portion of the network rate where each access has a reserved portion, so that each TEE mode has a guaranteed rate.
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 provide a security guarantee across a network and the physical part of that network is possibly exposed to physical attacks, appropriate protection is applied to the packet header. , such as a signature and an 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 de son matériel, au moins un bus d'interconnexion (202_E, 202_R) et une interface de communication (1 10_E, 1 10_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 being considered as a limitation, the figure shows a single transmitting processor element (200_E), which can communicate through a single element network (400). receiving processor (200_R) via network links (212). Each processor element comprises respectively at its hardware, at least one interconnect bus (202_E, 202_R) and a communication interface (1 10_E, 1 10_R) configured according to the communication protocol. Optionally, a network switch (204_E, 204_R) may be added to access the network link.
Il 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. 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. It should be noted that the topology of the network 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. FIG. 5 shows a sequence of steps of the method of transmitting a packet according to the principle of the invention. The method begins when a communication request is initiated at the secure or unsecured world level in a processor element. A corresponding message is prepared (502) and transmitted on the system bus of the element processor (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'en-tê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 (506) written at the communication interface. The method creates (508) the physical level of the packet to be sent. Then, in a next step (510), the method makes it possible to configure the header of the packet by positioning in the secure bit field that is reserved according to the communication protocol used, the value of the bit corresponding to the secure source or unsecured request. The thus configured packet 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 transmitted packet 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'en-tê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). Figure 6 shows a sequence of steps of the method of receiving a packet according to the principle of the invention. The method begins when a packet is received (602) through 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 that is used to indicate the required execution mode. The method then makes it possible to create (606) a message or a transfer request that is adapted to the architecture of the destination processor element. In a next step (608), the method makes it possible to determine whether the message is a message of the secure or insecure type and according to the result of transferring the request to the appropriate zone of the processor element corresponding to the secure execution mode. 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 s'appliquer sur d'autres variantes d'architecture. Those skilled in the art will appreciate that variations can be made on the method that is described for a preferred implementation. Thus, the examples taken are based on an architecture TEE type AMBA®, but the principles of the invention can be applied to other architectural variants.
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. Moreover, even if the description refers to a packet sending method and a packet receiving method, both methods can be operated by the same communication interface as a transmitter / receiver.
Dans le cas d'une transmission en mode diffusion ou multidiffusion, l'adresse placée dans la trame désigne plusieurs processeurs destinataires sans que cela ne change le procédé. In the case of broadcast or multicast transmission, the address placed in the frame designates several destination processors without this changing the process.
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 from hardware elements (ASIC, VLSI for example) and / or synthesis (FPGA). When the communication interface is implemented with dedicated software that is not accessible to the main processor, the method can be implemented, in whole or in part, by this dedicated software. Such a case occurs for example in the NXP solution DPAA2 / AIOP®. This method can therefore be available as a computer program product on a computer readable medium.

Claims

Revendications claims
1 . Un dispositif pour établir des communications de confiance entre une pluralité de processeurs d'un système distribué, 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é pour des données, le dispositif comprenant des moyens permettant : 1. A device for establishing trusted communications between a plurality of processors of a distributed system, each processor having configured a trusted environment for a secure execution mode and a non-secure execution mode for data, the device comprising means for:
- de recevoir d'un processeur source, une requête de transmission de données vers au moins un processeur destinataire, pour des données issues soit du mode d'exécution sécurisé soit du mode d'exécution non-sécurisé du processeur source;  receiving from a source processor a request for transmission of data to at least one destination processor for data originating from either the secure execution mode or the non-secure execution mode of the source processor;
- de construire une trame en plaçant dans le corps de la trame au moins lesdites données et l'adresse dudit au moins un processeur destinataire, et en plaçant dans un champ d'en-tête de ladite trame une indication du mode d'exécution sécurisé ou non-sécurisé pour lesdites données, ledit champ d'en-tête étant accessible uniquement au niveau matériel ; et  constructing a frame by placing in the body of the frame at least said data and the address of said at least one destination processor, and placing in a header field of said frame an indication of the secure execution mode or non-secure for 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é.  transmitting said frame on a network link of the distributed system.
2. Le dispositif selon la revendication 1 dans lequel le format de la trame correspond au format des trames du protocole de communication utilisé dans le réseau du système distribué. 2. The device according to claim 1 wherein the format of the frame corresponds to the format of the frames of 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 wherein the communication protocol is the RapidIO protocol, the format of the frame is the RapidIO format and the indication of the mode of execution of the data 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 de données est émise sur un bus système du processeur source. 4. The device according to any one of claims 1 to 3 wherein the data 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 of claim 4 wherein the system bus is a bus according to the standard Advanced Microcontroller Bus Architecture (AMBA).
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 wherein the indication of the mode of execution of said data is the zero or one state 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 wherein the source processor is a microprocessor synthesized on a programmable logic circuit (FPGA) or a circuit-on-chip (SoC).
8. Le dispositif selon l'une quelconque des revendications 1 à 7 dans lequel le réseau comprend un commutateur réseau. 8. The device according to any one of claims 1 to 7 wherein the network comprises 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 wherein 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 : The device according to any one of claims 1 to 9 further comprising means for:
- de recevoir une trame émise sur un lien réseau depuis un processeur source; - de déterminer selon le contenu du champ d'en-tête, le mode d'exécution sécurisé ou non-sécurisé pour les données contenues dans la trame ; et receiving a frame transmitted on a network link from a source processor; determining, according to the content of the header field, the secure or non-secure execution mode for the data contained in the frame; and
- d'émettre vers le processeur destinataire une requête de transfert pour traitement correspondant au mode d'exécution sécurisé ou non-sécurisé tel que déterminé.  transmitting to the destination processor a transfer request for processing corresponding to the secure or non-secure execution mode as determined.
1 1 . Un système de communication comprenant : 1 1. 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 ; a network connecting the source processor to the recipient processor;
- 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 l'une quelconque des revendications 1 à 10.  a communication interface coupled to the destination processor comprising a device according to any one of claims 1 to 10.
12. Un procédé pour établir des communications de confiance entre une pluralité de processeurs d'un système distribué, 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é étant caractérisé en ce qu'il comprend au moins une étape consistant à émettre sur un réseau du système distribué, une trame contenant dans le corps de trame au moins des données issues soit du mode d'exécution sécurisé soit du mode d'exécution non-sécurisé d'un processeur source et une adresse d'au moins un processeur destinataire, la trame contenant de plus dans un champ d'en-tête, une indication du mode d'exécution sécurisé ou non-sécurisé pour lesdites données, ledit champ d'en-tête étant accessible uniquement au niveau matériel. A method for establishing trust communications between a plurality of processors of a distributed system, wherein each processor has configured a trusted environment for a secure execution mode and a non-secure execution mode, the method being characterized in that it comprises at least one step of transmitting on a network of the distributed system, a frame containing in the frame body at least data from either the secure execution mode or the non-secure execution mode d a source processor and an address of at least one destination processor, the frame further containing in a header field, an indication of the secure or non-secure execution mode for 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 sur un réseau est opérée depuis une interface de communication couplée à un processeur source et audit réseau. The method of claim 12 wherein the step of transmitting a frame over a network is performed from a communication interface coupled to a source processor and to said network.
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 source 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é dudit processeur source ; et  - Generate on a system bus of a source processor a data transmission request, the data being from the secure execution mode or non-secure execution mode of said source processor; and
- construire une trame en plaçant dans le corps de la trame au moins lesdites données et l'adresse d'au moins un processeur destinataire, et dans ledit champ d'en-tête de la trame l'indication du mode d'exécution sécurisé ou non-sécurisé pour lesdites données.  constructing a frame by placing in the body of the frame at least said data and the address of at least one destination processor, and in said header field of the frame indicating the secure execution mode or unsecured for said data.
15. Le procédé selon la revendication 14 dans lequel le bus système est un bus AXI, la trame est au format RapidIO et l'indication du mode d'exécution sécurisé ou non-sécurisé pour les données est contenue dans le champ Virtual Channel (VC) des trames RapidIO. The method of claim 14 wherein the system bus is an AXI bus, the frame is in RapidIO format, and the indication of the secure or non-secure execution mode for the data is contained in the Virtual Channel (VC) field. ) RapidIO frames.
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 une interface de communication couplée à un processeur destinataire du réseau distribué ; - déterminer à réception de la trame par ladite interface de communication, le mode d'exécution sécurisé ou non-sécurisé pour les données ; et transmitting the frame to a communication interface coupled to a destination processor of the distributed network; determining, upon reception of the frame by said communication interface, the secure or non-secure execution mode for the data; and
- émettre vers le processeur destinataire une requête de transfert pour traitement correspondant au mode d'exécution sécurisé ou non- sécurisé tel que déterminé.  transmitting to the destination processor a transfer request for processing corresponding to the secure or non-secure execution mode as determined.
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 à 1 6, lorsque ledit programme est exécuté sur un ordinateur. 17. A computer program product, said computer program comprising code instructions for performing the steps of the method according to any of claims 12 to 16, when said program is executed on a computer.
PCT/EP2017/084550 2016-12-27 2017-12-22 Device and method for creating a trusted environment in a distributed system WO2018122207A1 (en)

Applications Claiming Priority (2)

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

Publications (1)

Publication Number Publication Date
WO2018122207A1 true WO2018122207A1 (en) 2018-07-05

Family

ID=59030988

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2017/084550 WO2018122207A1 (en) 2016-12-27 2017-12-22 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
FR3061326A1 (en) 2018-06-29

Similar Documents

Publication Publication Date Title
US10693899B2 (en) Traffic enforcement in containerized environments
CN111164571B (en) Control plane function virtualization based on security processing in cloud system
Bates et al. On detecting co-resident cloud instances using network flow watermarking techniques
EP2274701B1 (en) System and method for securing a computer comprising a microcore
EP2507711B1 (en) Direct memory access controller for the direct data transfer between the memories of a plurality of peripheral devices
US10911405B1 (en) Secure environment on a server
US10581859B2 (en) Detection and prevention of attempts to access sensitive information in real-time
US11477165B1 (en) Securing containerized applications
US9749354B1 (en) Establishing and transferring connections
US20230047880A1 (en) Sidecar proxy as a service
US11184324B2 (en) Deep packet inspection with enhanced data packet analyzers
US9009332B1 (en) Protection against network-based malicious activity utilizing transparent proxy services
FR2863076A1 (en) HIGH SPEED CRYPTOGRAPHIC SYSTEM WITH MODULAR ARCHITECTURE.
US9215129B2 (en) Automatically constructing protection scope in a virtual infrastructure
US11477269B2 (en) Hybrid cloud computing network management with synchronization features across different cloud service providers
EP2507712B1 (en) System for direct data transfer between memories of plurality of elements of this system
EP3519958B1 (en) Method for auditing a virtualised resource deployed in a cloud computing network
WO2018122207A1 (en) Device and method for creating a trusted environment in a distributed system
EP3123330A1 (en) Electronic component with deterministic response
AU2020307905B2 (en) Method and transmission device for data transmission between two or more networks
Flauzac et al. Original secure architecture for IoT based on SDN
FR3072528B1 (en) DISTRIBUTED MANAGEMENT SYSTEM FOR A COMMUNICATION NETWORK HAVING A PLURALITY OF VIRTUALIZED NETWORK FUNCTIONS
WO2019102077A1 (en) Process, device and method for establishing a socksified, secured, segregated, anonymised communication in an ip (internet protocol) network, between different analog islands, transmitted via a socks proxy network and routed on the basis of the &#34;domain name space&#34; / fqdn (fully qualified domain name )
US11991159B2 (en) Bi-directional encryption/decryption device for underlay and overlay operations
US20240236059A1 (en) Bi-directional encryption/decryption device for underlay and overlay operations

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 17825873

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 17825873

Country of ref document: EP

Kind code of ref document: A1