Abstract:
A method for routing at least one message, this method being implementation-dependent on a trusted operating system of an electronic device comprising an electronic assembly on which the trusted operating system and a Rich-OS operating system are executed. The method may include operations for consulting a trusted memory of a terminal, which may be called a first memory, and when the first memory contains a message, determining the operating system targeted by the message from among at least the Rich-OS operating system and the trusted operating system. And when the message targets the Rich-OS system, transferring the message from the first memory to a memory accessible to the Rich-OS system, which may be called a second memory.

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
     This application claims priority to French Patent Application No. 1261303 filed Nov. 27, 2012, the entire disclosure of which is hereby incorporated by reference in its entirety. 
     BACKGROUND OF THE INVENTION 
     The present invention lies within the field of the sending and receiving of messages via an electronic device, for example a terminal or smartcard comprising several execution environments of which at least one is a trusted execution environment and another is a Rich-OS execution environment. It is recalled that execution environments, whether trusted or Rich-OS, comprise or are included in electronic assemblies of chipset or System-on-Chip type. 
     A trusted execution environment is implemented by means of a secure processor, possibly being a processor dedicated to this task or possibly having other functions, and a secure rewrite non-volatile memory; it is based on a trusted operating system. 
     Similarly, a Rich-OS execution environment is based on a rich operating system allowing the execution of applications of various origins such as the Internet. 
     At the present time, when a message is received by the transmitter-receiver of an electronic device, it is either transmitted to elements controlled by the Rich-OS operating system run on this device e.g. a screen or memory, or if the device detects that the message is received by a secure communication it is transmitted to a secure element embedded or inserted in the aforementioned device such as described in document US Patent Publ. No. 2008/0051122. 
     However, in the case of an electronic device of the aforementioned type i.e. comprising a trusted execution environment, when a message is intended for the trusted execution environment or one of the applications thereof, it is possible that a malicious application of the Rich-OS operating system retains or destroys the message which is therefore not transmitted to the trusted operating system. In this case the term denial-of-service is used. 
     There is therefore a need to improve the routing methods of messages intended for a trusted operating system or one of its applications. 
     OBJECTIVE AND SUMMARY OF THE INVENTION 
     The present invention mainly sets out to solve the above-mentioned drawbacks. 
     For this purpose the invention concerns a method for routing at least one message, this method being implementation-dependent on a trusted operating system of an electronic device comprising an electronic assembly on which the trusted operating system and a Rich-OS operating system are executed. This method comprises a step to consult a trusted memory of the electronic device, called first memory, and when this first memory contains a message a step to determine the operating system targeted by the message from among at least the Rich-OS operating system and the trusted operating system, and if this message targets the Rich-OS system a step to transfer this message from the first memory to a memory accessible to the Rich-OS system, called second memory. 
     The invention also concerns an electronic assembly for electronic device, a trusted operating system and a Rich-OS system executed thereupon, and the electronic assembly comprising a consultation module to consult a trusted memory of the electronic device, called first memory and able to contain at least one message, and a determination module to determine the operating system targeted by this message, a transfer module to transfer this message from the first memory to a memory accessible to the Rich-OS system, called second memory, when this message targets the Rich-OS system, these three modules being implementation-dependent on the trusted operating system. 
     Therefore one of the major advantages of the invention is to avoid denial-of-service since the trusted operating system has first access to messages, contrary to the prior art in which the messages are transmitted to elements controlled by the Rich-OS system or one of the applications thereof, so that the targeted operating system is determined in secure manner by the trusted operating system without any malicious application being able to take possession of a message if it is intended for the trusted operating system or an application thereof. 
     In one particular embodiment of the invention, the consulting step takes place in response to notification given of receipt of a message via a dedicated channel between a notifier of the electronic device and the trusted operating system. In this embodiment the consultation module acts in reaction to receipt of notification of the receiving of a message via a dedicated channel between a notifier of the electronic device and the trusted operating system. 
     The use of a dedicated channel makes it possible to prevent the Rich-OS system from intercepting the notification. This channel may be logic for example, or physical. 
     As a variant, the consultation step is automatically implemented at regular intervals. In this embodiment, the consultation module is set in operation automatically at regular intervals. 
     In one particular embodiment of the invention, when the message is intended for the Rich-OS system the method comprises a step to send a notification informing a notifier of the electronic device that the message is intended for the Rich-OS system. In this embodiment, the electronic assembly comprises a module to send notification informing a notifier of the electronic device that the message is intended for the Rich-OS system. 
     Thereafter, the notifier can then inform the Rich-OS system of receipt of a message intended for this system. 
     In one particular embodiment of the invention, the message comprises a frame and the determination step comprises a step to read a recipient field of the frame or of the message to identify the targeted operating system. In this embodiment, the determination module comprises means for reading a recipient field of this frame or of the message to identify the targeted operating system. 
     The determination step may then further comprise a step to obtain the address of communication means of the execution environment of the targeted operating system, from a destination address included in the recipient field of the frame or of the message, the destination address being read during the reading step. In this embodiment, the determination module may comprise means for obtaining the address of communication means of the execution environment of the targeted operating system, from a destination address included in the recipient field of the frame or message, the destination address being read by the reading means. 
     In one embodiment, the address-obtaining step is performed by reading the address of the communication means in a look-up table memorised in a memory accessible to the trusted operating system. In this embodiment, the address-obtaining means read the address of the communication means in a look-up table memorised in a memory accessible to the trusted operating system. 
     The invention also covers the routing of messages of the type of those received by the communication protocols used in mobile telephony or any other wireless communication protocol. 
     As a variant, the determination step comprises a step to interpret an instruction contained in the message. In this embodiment, the determination module comprises means for interpreting an instruction contained in the message. 
     For example, the determination means can infer the operating system targeted by the message from the type of instruction. 
     The invention also concerns a terminal comprising an electronic assembly such as described above. This terminal may a mobile telephony terminal. 
     As a variant, this terminal may be a laptop computer or touchpad. This terminal may also be a self-standing or embedded intelligent system widely used in architectures of machine-to-machine type, e.g. the on-board computer of a vehicle. 
     In one particular embodiment of the invention, this terminal comprises a notifier, a transmitter-receiver, and a dedicated communication channel between this notifier and the transmitter-receiver via which the transmitter-receiver sends the message to the notifier for memorisation thereof by the notifier in the first memory. 
     In one particular embodiment of the invention, the electronic assembly comprises the notifier. 
     The electronic assembly may be a chipset of the terminal. 
     In one particular embodiment of the invention, the aforementioned steps of the method are determined by the instructions of a computer program. 
     The invention therefore also concerns a computer program comprising instructions for implementing the steps of the method such as described above, when the program is executed by a processor. This program can use any programming language, for example in the form of a source code or object code. The program can be compiled and/or interpreted or in any other form interpretable by a processor. 
     In one particular embodiment of the invention, this computer program is the trusted operating system. 
     In another embodiment of the invention, this computer program is a patch on the trusted operating system. The advantage of this patch is that it enriches existing APIs and forms an alternative to a native application of the trusted operating system when a said application is not able to offer some services when it is deployed, or to a native application which cannot be deployed. Said patch therefore offers additional functionalities not initially offered by the trusted operating system. 
     The invention also relates to a data medium readable by a computer and comprising the instructions of a computer program such as mentioned above. 
     This data medium can be any entity or device, embedded or removable, capable of storing the program. For example the medium may be a storage means such as a ROM memory, CD-ROM or ROM of a micro-electronic circuit, or even magnetic recording means e.g. a hard disk, a memory of flash type or RAM. 
     Additionally, the data medium may be a transmissible medium such as an electrical or optical signal which can be conveyed via an electrical or optical cable, via radio or via other means. The program of the invention may in particular be downloaded onto an on-line storage space or onto an Internet platform. 
     Alternatively, the data medium may be an integrated circuit in which the computer program is incorporated, the circuit being adapted to execute or to be used in the execution of the method under consideration. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       Other characteristics and advantages of the present invention will become apparent from the description given below, with reference to the appended drawings illustrating an example of embodiment thereof that is in no way limiting. In the Figures: 
         FIGS. 1A, 1B and 1C  schematically illustrate an electronic device according to three embodiments of the invention; 
         FIG. 2  in the form of a flow chart illustrates the main steps of a routing method according to a first embodiment of the invention, which can be implemented in the terminal in  FIG. 1C ; 
         FIG. 3  in the form of a flow chart illustrates the main steps of a routing method according to a second embodiment of the invention which can be implemented in the terminal shown in  FIG. 1A  or in  FIG. 1B ; 
         FIGS. 4, 5A and 5B  schematically illustrate examples of a message according to the invention, namely SMS frames using the TCP/IP protocol and Bluetooth. 
     
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
       FIG. 1A  illustrates an electronic device  1  according to one embodiment of the invention. In this example, the electronic device is a terminal e.g. a touch pad, laptop computer or cell phone. 
     As a variant, it could have been a device of machine-to-machine type such as an on-board computer in a vehicle, or a smart card such as a bank card or electronic identity document. 
     In the example shown in  FIG. 1A , the terminal comprises a notifier  20  and a transmitter-receiver T/R and an electronic assembly EA in the meaning of the invention. 
     The notifier  20  is a material component comprising a microprocessor. It is capable of sending and receiving notifications via dedicated channels that are previously initialised either with the transmitter-receiver T/R, or with the different operating systems to inform them of receipt of a message. 
     The electronic assembly EA which may form a chipset of the terminal  1  (this chipset may be on a System-On-Chip of the terminal), contains the code of two operating systems, namely a Rich-OS system  100  and a trusted operating system  200 , each having its own memory respectively M 100  and M 200  and a processor  300  executing the code of these operating systems. 
     In particular, these two operating systems are jointly set in operation on start-up of the terminal  1 . As is known to persons skilled in the art, the secure execution environment of the trusted operating system  200  has a secure start-up mechanism or Secure Boot which consists of authenticating the trusted operating system  200  and then initialising this system i.e. the launching thereof followed by start-up of the Rich-OS operating system  100 . 
     More specifically, Secure Boot is a chain of steps leading to complete start-up of the terminal, each step validating the following. Therefore, step i+1 is only triggered if step i validates the transition. 
     However, active operation in opposition to stand-by of each of the operating systems is exclusive. This means that when one of the operating systems is active, the other is in inactive mode. 
     The electronic assembly also comprises a memory M P  shared between the trusted operating system and the Rich-OS system. This memory is used to store a message intended for the Rich-OS system  100  that has been previously received then routed by the trusted operating system  200 . 
     Therefore in this embodiment, when the transmitter-receiver T/R receives a message, it transmits it directly to the notifier  20  which memorises the same via a dedicated channel in a trusted memory namely, in this example, the own memory M 200  of the trusted operating system  200 . 
     The trusted operating system  200  then performs routing of this message. The memory M 200  may additionally form a medium for storing the computer program comprising instructions for implementing the steps of the routing method such as described below with reference to  FIGS. 2 and 3 . 
       FIG. 1B  shows a terminal  1  conforming to a second embodiment of the invention. This embodiment differs from the one in  FIG. 1A  in that the electronic assembly EA comprises the notifier  20 . 
     As a variant, the transmitter-receiver T/R could also be contained in the electronic assembly EA. In this manner the notifier and transmitter-receiver would both be integrated in the electronic assembly. 
       FIG. 1C  illustrates a terminal  1  conforming to a third embodiment of the invention. This mode differs from the one in  FIGS. 1A and 1B  in that the terminal does not comprise a notifier. 
     In this embodiment, the transmitter-receiver T/R directly memorises the received message in a trusted memory, in this example the own memory M 200  of the trusted operating system  200 , via a dedicated channel. 
       FIG. 2  gives the main steps of a routing method according to a first embodiment of the invention, which can be implemented in a terminal such as previously described with reference to  FIG. 1C . 
     Initially, the transmitter-receiver T/R receives a message. It memorises this message in the memory M 200  via a dedicated channel, this channel having previously been initialised. 
     More specifically, initialisation of a channel consists of initialising a context then of starting up a communication session. 
     In this embodiment, the trusted operating system  200  regularly consults the memory M 200  during a step E 20 . 
     In practice, the frequency of consultation can be determined either by a clock marking the switch-over (to active mode) of the Rich-OS system to the trusted operating system, or by receipt of a specific polling instruction. The latter case is not illustrated. 
     As a variant, the consulting of this memory by the trusted operating system  200  can be prompted subsequent to certain action by the user of the terminal or by an application of the Rich-OS system. 
     If the memory M 200  contains a message, the trusted operating system  200  sets about determining the actual recipient, at a step E 30 . 
     In a first example, it is assumed that the message is an SMS in PDU mode and comprising a TP_DCS field, such as illustrated in  FIG. 4 . 
     The present invention proposes modifying the GSM 03.40 standard known to persons skilled in the art and according to which the TP_DCS filed is encoded on 8 bits, so as to add a class corresponding to the trusted operating system. 
     Returning to our first example, a determination module of the trusted operating system reads this TP_DCS field and by means of the class contained in this field can determine the operating system targeted by this message. 
     In a second example, it is assumed that the message is a frame as per the TCP/IP protocol comprising a IP_DEST field, such as illustrated in  FIG. 5A . 
     In manner known to skilled persons, this field comprises the destination IP address of the message. 
     Within the context of the invention, the execution environment of the Rich-OS system and the execution environment of the trusted operating system each comprise communication means identified by their MAC address (Media Access Control). 
     Returning to our second example, a determination module of the trusted operating system reads this IP_DEST field. 
     In order to identify the targeted operating system, it is necessary to obtain the MAC address corresponding to the IP_DEST address. 
     To do so, the trusted operating system transmits a request of ARP type (Address Resolution Protocol) to the communication means of each of the aforementioned execution environments. 
     It is specified that in manner known to persons skilled in the art, the communication means having the IP address corresponding to the IP_DEST address answer the ARP request by specifying their MAC address. 
     In this manner, the trusted operating system is able to memorise the IP/MAC matches in a look-up table memorised for example in its own memory M 200  or in the shared memory M P , thereby facilitating the routing of subsequent messages. 
     As a variant, a predefined IP/MAC look-up table could be memorised in the shared memory M P  for example, so that all that is required is to read the MAC address therein which corresponds to the IP address in order to identify the targeted operating system via the communication means of its execution environment. 
     In practice, once the MAC address of the targeted operating system is obtained, the frame is re-packaged in an Ethernet frame and transmitted to the communication means characterised by this MAC address. 
     In general, the routing implemented in this example takes place in layer 2 of the OSI model. 
     In one possible variant of this second example, the message is not a frame as per the TCP/IP protocol, but a Bluetooth BT frame containing an AM_ADDR field, such as illustrated in  FIG. 5B . 
     In manner known to the skilled person, this AM_ADDR field contains a local address which characterises a Bluetooth network node called Piconet. This local network address is associated with a BD_ADDR address identifying each terminal on initialisation of the Piconet. 
     In this variant, the trusted operating system seeks to obtain the characteristic BD_ADDR address of the communication means of the execution environment of the targeted operating system, in similar manner to obtaining the MAC address in the preceding example. 
     In a third example, a determination module of the trusted operating system interprets the instructions contained in the message. In practice, this interpretation is based on a list of instructions or function signatures allowing recognition of the targeted operating system as a function of the signature of the instruction or of an imprint contained in the message. 
     Unlike in the two preceding examples in which the determining of the targeted operating system was based on the interpretation of metadata (recipient field) of the message, determination here is based on interpretation of the data themselves (signature, imprint). 
     Therefore, depending on the whether or not the instruction is of secure type for example, it is possible to infer therefrom that the trusted operating system is targeted by this message. 
     In general, the invention covers the determining of the targeted operating system by a message via the interpretation of a tag located in the body or header of this message. 
     The invention also covers the routing of messages of the type of those received by the communication protocols used in mobile telephony or in any other wireless communication protocol. 
     In the remainder of the description of this embodiment, it is considered that the recipient of the message is the Rich-OS operating system  100 . 
     At a step E 50 , a module of the trusted operating system  200  memorises the message in the shared memory M P , accessible to the Rich-OS system  100 . 
     As a variant, the trusted operating system  200  has the possibility of accessing the own memory M 100  of the Rich-OS system  100 . 
     Therefore the Rich-OS operating system  100  may subsequently consult this memory to obtain its message. 
     This consulting can be performed regularly. In practice, the frequency of consultation can be determined either by a clock marking the switch-over (to active mode) from the trusted operating system to the Rich-OS system, or by receipt of a specific polling command. This latter case is not illustrated. 
     As a variant, the consulting of this memory by the Rich-OS operating system  100  can be prompted subsequent to certain action by the user of the terminal or by an application. 
       FIG. 3  illustrates the main steps of a routing method according to a second embodiment of the invention, able to be implemented in a terminal such as previously described with reference to  FIG. 1A or 1B . 
     When the transmitter-receiver T/R of the terminal  1  receives a message, it sends this message to the notifier  20  which memorises the same via a dedicated channel in a trusted memory, here the own memory M 200  of the trusted operating system  200 . 
     Next, at a step E 10 , the trusted operating system  200  receives notification of receipt of a message, this notification originating from the notifier  20 . 
     At a step E 20 , the trusted operating system  200  therefore consults its memory M 200 . 
     At step E 30 , the trusted operating system  200  determines the operating system effectively targeted by the message, as described previously with reference to  FIG. 2 . 
     If the message is dedicated to this trusted operating system  200 , this system retrieves the message. 
     In this example the contrary case is considered i.e. the case in which the message is addressed to the Rich-OS system  100 . 
     At step E 50 , the trusted operating system  200  memorises the message in a shared memory M P  with the Rich-OS operating system  100 . 
     The trusted operating system  200  then (step E 60 ) sends a notification to the notifier  20  informing it that the message is intended for the Rich-OS system. 
     Thereafter, the notifier can thus inform the Rich-OS system of the receipt of a message intended for it so that when this Rich-OS system wakes up it consults the shared memory M P  in which the message is stored, this wake-up possibly occurring regularly on a clock signal or on receipt of an instruction sent by the notifier.