BE1024111B1 - MICROCONTROLLER FOR SAFE STARTING WITH FIREWALL - Google Patents

MICROCONTROLLER FOR SAFE STARTING WITH FIREWALL Download PDF

Info

Publication number
BE1024111B1
BE1024111B1 BE2016/5612A BE201605612A BE1024111B1 BE 1024111 B1 BE1024111 B1 BE 1024111B1 BE 2016/5612 A BE2016/5612 A BE 2016/5612A BE 201605612 A BE201605612 A BE 201605612A BE 1024111 B1 BE1024111 B1 BE 1024111B1
Authority
BE
Belgium
Prior art keywords
secure
microcontroller
operating system
area
linux
Prior art date
Application number
BE2016/5612A
Other languages
French (fr)
Other versions
BE1024111A1 (en
Inventor
Frédéric Richez
Sven Gulikers
Original Assignee
Atos Worldline S.A.
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 Atos Worldline S.A. filed Critical Atos Worldline S.A.
Priority to EP17170239.2A priority Critical patent/EP3244376A1/en
Priority to EP17170242.6A priority patent/EP3244377B1/en
Priority to ES17170242T priority patent/ES2927289T3/en
Priority to EP17170202.0A priority patent/EP3244375B1/en
Publication of BE1024111A1 publication Critical patent/BE1024111A1/en
Application granted granted Critical
Publication of BE1024111B1 publication Critical patent/BE1024111B1/en

Links

Classifications

    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F7/00Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
    • G07F7/08Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
    • G07F7/0873Details of the card reader
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • 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/74Protecting 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 operating in dual or compartmented mode, i.e. at least one secure mode
    • 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/82Protecting input, output or interconnection devices
    • G06F21/85Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices
    • 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/86Secure or tamper-resistant housings
    • 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/86Secure or tamper-resistant housings
    • G06F21/87Secure or tamper-resistant housings by means of encapsulation, e.g. for integrated circuits
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F19/00Complete banking systems; Coded card-freed arrangements adapted for dispensing or receiving monies or the like and posting such transactions to existing accounts, e.g. automatic teller machines
    • G07F19/20Automatic teller machines [ATMs]
    • G07F19/205Housing aspects of ATMs
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F7/00Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
    • G07F7/08Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
    • G07F7/0873Details of the card reader
    • G07F7/088Details of the card reader the card reader being part of the point of sale [POS] terminal or electronic cash register [ECR] itself

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Finance (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Mathematical Physics (AREA)
  • Computer And Data Communications (AREA)
  • Cash Registers Or Receiving Machines (AREA)
  • Control Of Vending Devices And Auxiliary Devices For Vending Devices (AREA)

Abstract

La présente invention concerne un microcontrôleur comprenant un processeur et une mémoire divisée en différentes zones qui sont sécurisée, non sécurisée ou partagée, pour mettre en uvre un démarrage sécurisé comprenant un circuit de commande d'autoprotection pour détecter les conditions de vulnérabilité et le processeur exécutant un système d exploitation Linux, ledit processeur comprenant un moniteur pour commuter les opérations soit dans une zone sécurisée de la mémoire pour faire fonctionner au moins des processus d'authentification soit dans une zone non sécurisée pour d'autres opérations et déterminer si les périphériques connectés ou accédant au, ou accédés par le microcontrôleur doivent être gérés par la zone sécurisée ou par la zone non sécurisée en utilisant un pare-feu matériel pour déterminer si l information ou la commande d une application est autorisée à accéder à la zone sécurisé ou non.The present invention relates to a microcontroller comprising a processor and a memory divided into different zones which are secured, unsecured or shared, to implement a secure boot comprising a self-protection control circuit for detecting the vulnerability conditions and the processor executing a Linux operating system, said processor comprising a monitor for switching operations either in a secure area of the memory for operating at least one authentication process or in an unsecured area for other operations and determining whether the connected devices or accessing or accessed by the microcontroller must be managed by the secure area or the unsecured area using a hardware firewall to determine whether the information or control of an application is authorized to access the secure area or not .

Description

Microcontrôleur pour démarrage sécurisé avec pare-feuMicrocontroller for secure start with firewall

DOMAINE TECHNIQUE DE L'INVENTIONTECHNICAL FIELD OF THE INVENTION

La présente invention se rapporte au domaine de la protection des données et en particulier des données échangées dans les transactions financières. La présente invention concerne spécifiquement un dispositif pour assurer la sécurité des échanges de données confidentielles entre un client et une institution financière ou entre deux institutions financières.The present invention relates to the field of data protection and in particular data exchanged in financial transactions. The present invention specifically relates to a device for ensuring the security of confidential data exchanges between a customer and a financial institution or between two financial institutions.

ARRIERE-PLAN TECHNOLOGIQUE DE L'INVENTIONBACKGROUND OF THE INVENTION

La protection des données sensibles utilisées dans les transactions financières est un défi majeur pour le domaine de l’économie. Les transactions peuvent être faites soit par l’intermédiaire d’un site web dédié, le site web utilisant le cryptage et plusieures mesures de vérification soit au moyen d’un dispositif tel que des distributeurs automatiques. Ces derniers autorisent les transactions à l’aide de cartes avec au moins une puce électronique, la puce contenant au moins une information d’authentification du détenteur de la carte. Néanmoins, les dispositifs tels que les distributeurs automatiques présentent des inconvénients. En effet, un distributeur automatique comprend une mémoire qui stocke les codes d’authentification récupérés à partir d’un réseau interbancaire, par exemple. Une défaillance volontaire ou involontaire de la machine, cependant, peut permettre à un pirate de récupérer les données de la mémoire contenue dans la machine. Bien que certains progrès dans la protection des distributeurs automatiques aient été réalisés ces dernières années, les machines ont encore des inconvénients associés à leur architecture et/ou des composants électroniques qu’ils contiennent.The protection of sensitive data used in financial transactions is a major challenge for the field of the economy. Transactions can be made either through a dedicated website, the website using encryption and several verification measures or by means of a device such as vending machines. The latter authorize transactions using cards with at least one chip, the chip containing at least one authentication information of the card holder. Nevertheless, devices such as vending machines have disadvantages. Indeed, a vending machine includes a memory that stores the authentication codes retrieved from an interbank network, for example. A voluntary or unintentional failure of the machine, however, may allow an attacker to recover data from the memory contained in the machine. Although some progress in the protection of vending machines has been made in recent years, machines still have disadvantages associated with their architecture and / or electronic components they contain.

Dans le document US7953989 B1, il est enseigné un dispositif comprenant un microcontrôleur haute sécurité qui comprend des circuits de commande d’autoprotection pour détecter des conditions de vulnérabilité: une écriture dans la mémoire du programme avant que les informations financières sensibles aient été effacées, une condition détection de sabotage, l’activation d’un débogueur, une condition de mise sous tension, une condition de températures non conformes, une condition de tension d’alimentation non conformes, une condition de défaillance d’un oscillateur, et une condition de retrait de la batterie. Si le circuit de commande d’autoprotection détecte une condition de vulnérabilité, alors la mémoire où les informations financières sensibles pourraient être stockées, est effacée. Lors de la mise sous tension si une image valide est détectée dans la mémoire du programme, alors le chargeur d’amorçage n’est pas exécuté et la mémoire sécurisée n’est pas effacée mais plutôt l’image est exécutée, le circuit de commande d’autoprotection étant un automate qui est hors du contrôle du logiciel chargé par un utilisateur et hors du contrôle du débogueur. L’un des inconvénients du dispositif décrit ci-dessus est que la sécurité du système dépend entièrement du bon fonctionnement du dispositif d’autoprotection. En effet, si ce dernier était défectueux, la sécurité de l’ensemble du système serait compromise.In US7953989 B1, there is taught a device comprising a high security microcontroller which includes tamper control circuits for detecting vulnerability conditions: a write in the program memory before the sensitive financial information has been erased, a tamper detection condition, debugger enable, power-up condition, non-compliant temperature condition, non-compliant power supply voltage condition, oscillator failure condition, and power condition. removal of the battery. If the tamper control circuit detects a vulnerability condition, then the memory where the sensitive financial information could be stored is erased. When powering on if a valid image is detected in the program memory, then the boot loader is not executed and the secure memory is not erased but rather the image is executed, the control circuit self-protection is an automaton that is out of the control of the software loaded by a user and out of the control of the debugger. One of the disadvantages of the device described above is that the security of the system depends entirely on the proper operation of the tamper device. Indeed, if the latter was defective, the security of the entire system would be compromised.

DESCRIPTION GENERALE DE L'INVENTIONGENERAL DESCRIPTION OF THE INVENTION

La présente invention a pour but de pallier un ou plusieurs inconvénients de l'art antérieur en proposant qui peut protéger de manière efficace les échanges de données dans les transactions financières et empêcher le vol de données par dégradation de la machine contenant ledit dispositif.The present invention aims to overcome one or more disadvantages of the prior art by proposing that can effectively protect data exchanges in financial transactions and prevent theft of data by degradation of the machine containing said device.

Ce but est atteint par un microcontrôleur comprenant un processeur et une mémoire séparée en différentes zones qui sont sécurisées, non sécurisées ou partagées, pour mettre en œuvre un démarrage sécurisé comprenant un circuit de commande d'autoprotection pour détecter les conditions de vulnérabilité et le processeur exécutant un système d’exploitation Linux (Linus OS), ledit processeur comprenant un moniteur pour commuter les opérations soit dans une zone sécurisée de la mémoire pour faire fonctionner au moins des processus d'authentification soit dans une zone non sécurisée pour d'autres opérations et déterminer si les périphériques connectés ou accédant au, ou accédés par le microcontrôleur doivent être gérés par la zone sécurisée ou par la zone non sécurisée en utilisant un pare-feu matériel pour déterminer si l’information ou la commande d’une application est autorisé à accéder à la zone sécurisée ou non.This goal is achieved by a microcontroller comprising a processor and a separate memory in different areas that are secured, unsecured or shared, to implement a secure boot including a self-protection control circuit to detect the vulnerability conditions and the processor running a Linux operating system (Linus OS), said processor comprising a monitor for switching operations either in a secure area of the memory for operating at least one authentication process or in an unsecured area for other operations and determine whether devices connected to or accessing the, or accessed by the microcontroller must be managed by the secure area or the unsecured area by using a hardware firewall to determine whether information or control of an application is allowed to access the secured area or not.

Selon une autre particularité, les zones sécurisées et non sécurisées sont toutes deux incluses dans le processeur du microcontrôleur, les procédés de traitement et d'échange de données exécutés par le microcontrôleur s’effectuant d'une zone à l'autre en fonction de la nature des informations à traiter.According to another particularity, the secure and non-secure zones are both included in the processor of the microcontroller, the data processing and exchange processes executed by the microcontroller being effected from one zone to another according to the nature of the information to be processed.

Selon une autre particularité, le pare-feu matériel comporte des registres qui sont affectés chacun à un périphérique et qui utilisent les informations mémorisées dans l'arborescence des périphériques Linux, décrit dans le système d'exploitation Linux, dans lequel ladite arborescence des périphériques est ajoutée avec des attributs de sécurité, définissant le statut sécurisé (S) ou non sécurisé (N) de périphérique à mémoriser dans chaque registre associé à un périphérique un statut sécurisé ou non sécurisé pour induire le traitement de l’information ou de la commande à partir d’un périphérique dans la zone sécurisée du processeur si le périphérique est défini comme sécurisé, et induire le traitement de l’information ou de la commande à partir d’un périphérique dans la zone non sécurisée du processeur si le périphérique est défini comme non sécurisé.In another feature, the hardware firewall includes registers that are each assigned to a device and that use the information stored in the Linux device tree, described in the Linux operating system, wherein said device tree is added with security attributes, defining the secure (S) or nonsecure (N) status of the device to be stored in each register associated with a device a secure or insecure status to induce the processing of the information or command to from a device in the secure area of the processor if the device is defined as secure, and induce information or command processing from a device in the unsecured area of the processor if the device is defined as Insecure.

Selon une autre particularité, l'arborescence des périphériques Linux est authentifiée par une application primaire sécurisée durant l’opération de démarrage sécurisé.In another feature, the Linux device tree is authenticated by a secure primary application during the secure boot operation.

Selon une autre particularité, la zone sécurisée comprend un cœur recevant au moins une instruction de la zone non sécurisée ou d'un périphérique inclus dans l'arborescence des périphériques, et exécutant différentes opérations qui dépendent de l’instruction reçue, un registre comprenant un ensemble de services sécurisés comportant les règles pour la protection de différents types des processus correspondant à différents types de services.According to another particularity, the secure zone comprises a core receiving at least one instruction from the non-secure zone or from a device included in the device tree, and performing various operations that depend on the received instruction, a register comprising a set of secure services comprising the rules for the protection of different types of processes corresponding to different types of services.

Selon une autre particularité, la zone non sécurisée comprend le noyau du système d'exploitation, un environnement d'exécution des programmes et applications et/ou des procédés de traitement des données, au moins une bibliothèque, et au moins une plateforme dédiée à l'ajout d'applications clientes ou d’applications propriétaires, le procédé d’ajout et l'accès desdites applications aux fonctionnalités du dispositif contrôlé par le microcontrôleur étant définis par des règles de sécurité mises en œuvre par le pare-feu matériel.According to another particularity, the unsecured zone comprises the operating system kernel, a program and application execution environment and / or data processing methods, at least one library, and at least one platform dedicated to the adding client applications or proprietary applications, the method of adding and accessing said applications to the functionalities of the device controlled by the microcontroller being defined by security rules implemented by the hardware firewall.

Selon une autre particularité, l'environnement d'exécution est configuré pour intégrer au moins un moyen pour interpréter différents types d'applications clientes, ledit moyen étant capable de traduire le langage desdites applications en programmes natifs afin de les traiter sur ledit environnement d'exécution.According to another particularity, the execution environment is configured to integrate at least one means for interpreting different types of client applications, said means being capable of translating the language of said applications into native programs in order to process them on said environment. execution.

Selon une autre particularité, l'environnement d'exécution est Android.In another feature, the runtime environment is Android.

Selon une autre particularité, les périphériques accessibles sont au moins deux des périphériques suivants: circuit Bluetooth/Wifi, Ethernet, imprimantes, affichage, GPS, caméra, son, capteur de proximité, HDMI, USB, écran tactile, clavier, lecteur sans contact (NFC), lecteur de cartes magnétiques, lecteur de cartes à puce, matériel cryptographique, gestionnaire de clés informatiques.According to another particularity, the accessible peripherals are at least two of the following devices: Bluetooth / Wifi circuit, Ethernet, printers, display, GPS, camera, sound, proximity sensor, HDMI, USB, touch screen, keyboard, contactless reader ( NFC), magnetic card reader, smart card reader, cryptographic material, computer key manager.

On entend par lecteur sans contact tous lecteurs d’objet ne nécessitant pas de contact direct entre l’objet et le lecteur afin de communiquer au moins une information, par exemple une carte utilisant la technologie de radio-identification (RFID) ou communications en champ proche (NFC).A contactless reader is any object reader that does not require direct contact between the object and the reader in order to communicate at least one piece of information, for example a card using radio-identification technology (RFID) or communications in the field. near (NFC).

On entend par «matériel cryptographique» tout dispositif ou périphérique permettant de crypter ou chiffrer des informations ou données sensibles, par exemple et de manière non limitative un cryptoprocesseur.The term "cryptographic material" means any device or device for encrypting or encrypting sensitive information or data, for example and without limitation a cryptoprocessor.

Selon une autre particularité, les périphériques: affichage, écran tactile, clavier, lecteur sans contact, lecteur de cartes magnétiques, lecteur de carte à puce, matériel cryptographique et gestionnaire de clés informatiques sont des périphériques sécurisés, tandis que les périphériques: circuit Bluetooth/Wifi, Ethernet, imprimantes, GPS, caméra, son, capteur de proximité, HDMI et USB reçoivent soit un statut sécurisé (S) soit un statut non sécurisé (N).According to another particularity, the peripherals: display, touch screen, keyboard, contactless reader, magnetic card reader, smart card reader, cryptographic material and computer key manager are secure devices, while peripherals: Bluetooth circuit / Wifi, Ethernet, printers, GPS, camera, sound, proximity sensor, HDMI and USB receive either a secure status (S) or a non-secure status (N).

Selon une autre particularité, le processus de démarrage sécurisé du système d’exploitation Linux pour un microcontrôleur avec dispositif d’autoprotection et zone de traitement de confiance comprend les étapes de: • commencer à exécuter le code contenu dans la mémoire ROM; • charger une partition initiale cryptée à partir d’une mémoire externe; • décrypter l’information de la partition initiale; • authentifier les clés publiques (Pk) et authentifier l’application primaire protégée (PPA) et un logiciel initial (ISW); • et charger et démarrer les autres programmes de démarrage de Linux.In another feature, the secure boot process of the Linux operating system for a microcontroller with self-protection device and trusted processing zone includes the steps of: • starting to execute the code contained in the ROM; • load an encrypted initial partition from an external memory; • decrypt the information of the initial partition; • authenticate public keys (Pk) and authenticate the protected primary application (PPA) and initial software (ISW); • and load and start other Linux startup programs.

Selon une autre particularité, le processus de démarrage sécurisé du système d’exploitation Linux comprend les étapes de: • charger le U-boot SPL (Secondary Program Loader); • authentifier l'arborescence des périphériques (DT); • démarrer le PA-loader (Primary Application loader); • décrypter le PA live (Primary Application live); • initialiser ramdisk; • charger le noyau Linux; • démarrer le noyau Linux; • démarrer dm-verity; • exécuter des applications Android sous SELinux.In another feature, the secure boot process of the Linux operating system includes the steps of: • loading the U-boot SPL (Secondary Program Loader); • authenticate the device tree (DT); • start the PA-loader (Primary Application loader); • decrypt the live PA (Primary Application live); • initialize ramdisk; • load the Linux kernel; • start the Linux kernel; • start dm-verity; • run Android apps under SELinux.

Selon une autre particularité, au moins plusieurs registres de périphériques du microcontrôleur ont initialement un statut sécurisé (S) quand le code contenu dans la ROM commence à s’exécuter et avant l’activation du PA-loader.According to another particularity, at least several microcontroller device registers initially have a secure status (S) when the code contained in the ROM begins to execute and before the activation of the PA-loader.

Selon une autre particularité, après l’activation du PA-loader, les attributs de sécurité définis pour chaque périphérique dans l’arborescence de périphériques sont gérés par le PA-Loader et le statut sécurisé (S) d’au moins un registre du pare-feu associé à un périphérique, initialement défini dans un statut sécurisé (S) et jugé non critique en raison de la description dans l'arborescence des périphériques pour la sécurité et/ou l’intégrité d’un système ou d’un dispositif, est modifié en un statut non sécurisé (N) ou normal dans le registre du pare-feu.According to another particularity, after the activation of the PA-loader, the security attributes defined for each device in the device tree are managed by the PA-Loader and the secure status (S) of at least one register of the parity -fire associated with a device, initially defined in a secure status (S) and deemed uncritical due to the description in the device tree for the security and / or integrity of a system or device, is changed to an unsecure (N) or normal status in the firewall registry.

Selon une autre particularité, les plateformes d’applications sont séparées de la bibliothèque, du noyau du système d’exploitation et de l’environnement d’exécution du système d’exploitation par un module de contrôle, contenu dans le système d’exploitation, qui contrôle les accès pour les applications et limite l’accès à un périphérique donné ou à un service pour les applications clientes non autorisées, le contrôle à l’accès dudit périphérique ou dudit service étant effectué au moyen d’un fichier fourni par SELinux, ledit fichier décrivant dans une liste blanche ou « whitelist » le type d’opérations permises en combinaison avec l’identité (ID) d’une application particulière ou d’un processus et établissant la permission d’opération pour chaque application.In another feature, the application platforms are separated from the library, the operating system kernel and the operating system runtime environment by a control module, contained in the operating system, which controls the accesses for the applications and limits the access to a given device or a service for the unauthorized client applications, the access control of said device or said service being carried out by means of a file provided by SELinux, said file whitelisting the type of operations allowed in combination with the identity (ID) of a particular application or process and establishing the operation permission for each application.

Selon une autre particularité, l’accès d’une application cliente autorisée ou non autorisée à certaines fonctionnalités d’un périphérique tel que par exemple l’écran d’affichage tactile, est contrôlé par le microcontrôleur et se fait au moyen d'un proxy sécurisé actionné par le module de contrôle, ledit proxy sécurisé vérifiant si un message concernant un évènement tactile est signé par un tiers de confiance avant d’être affiché et sinon, l’évènement tactile n’est pas transféré dans la zone non sécurisée.According to another particular feature, the access of an authorized or unauthorized client application to certain functionalities of a peripheral such as, for example, the touch display screen, is controlled by the microcontroller and is done by means of a proxy a secure proxy actuated by the control module, said secure proxy verifying whether a message concerning a touch event is signed by a trusted third party before being displayed and if not, the touch event is not transferred to the unsecured area.

Selon une autre particularité, un microcontrôleur avec un dispositif d’autoprotection et zone de traitement de confiance et un démarrage sécurisé du système d’exploitation Linux est utilisé dans un terminal tout-en-un comprenant un écran LCD, un écran tactile capacitif, un lecteur de carte magnétique, un lecteur de cartes à puce, un lecteur de cartes sans contact, un circuit imprimé de sécurité en amont, un circuit imprimé de connexion et une caméra pour constituer un terminal inviolable dans lequel chaque opération sécurisée ou périphérique sécurisé est géré(e) par la zone de confiance du microcontrôleur et dans lequel la protection de l’accès à une cette zone de traitement de confiance est protégé contre l’accès d’une sonde au microcontrôleur par l'insertion du circuit imprimé principal comportant le microcontrôleur dans une cage de connexion permettant de détecter toute tentative d'ouverture de la cage ou de perçage à travers la cage.In another feature, a microcontroller with self-protection device and trusted processing area and a secure boot of the Linux operating system is used in an all-in-one terminal including an LCD screen, a capacitive touch screen, a magnetic card reader, chip card reader, contactless card reader, upstream security circuit board, connection circuit board, and camera to constitute a tamper-proof terminal in which each secure operation or secure device is managed (e) by the microcontroller's confidence zone and in which the protection of access to this trusted processing zone is protected against access of a probe to the microcontroller by the insertion of the main printed circuit including the microcontroller in a connection cage to detect any attempt to open the cage or drilling through the cage.

Selon une autre particularité, le circuit imprimé de sécurité en amont comprend au moins un capteur de proximité pour détecter toute présence action et envoyer un signal au microcontrôleur pour effectuer une analyse et déclencher une action (affichage d’un message de bienvenue ou d’utilisation).According to another particularity, the upstream security printed circuit comprises at least one proximity sensor for detecting any action presence and sending a signal to the microcontroller to perform an analysis and to trigger an action (display of a welcome or use message ).

Selon une autre particularité, le circuit imprimé de connexion comprend au moins une interface USB, un port série UART, une interface Ethernet et une interface Bluetooth/Wifi pour la communication et l'échange de données.According to another particularity, the printed connection circuit comprises at least one USB interface, a UART serial port, an Ethernet interface and a Bluetooth / Wifi interface for communication and data exchange.

DESCRIPTION DES FIGURES ILLUSTRATIVES D’autres particularités et avantages de la présente invention apparaîtront plus clairement à la lecture de la description ci-après, faite en référence aux dessins annexes, dans lesquels: - La Figure 1 représente un diagramme de la structure du microcontrôleur selon un mode de réalisation, - La Figure 2 représente un diagramme des composants du microcontrôleur sécurisés par le pare-feu dudit microcontrôleur, selon un mode de réalisation, - La Figure 3 représente un diagramme de la structure du processeur du microcontrôleur, selon un mode de réalisation, - La Figure 4 représente un diagramme de la structure d’un terminal comprenant le microcontrôleur, selon un mode de réalisation, - Les Figures 5A, 5B et 5C représentent les diagrammes, respectivement, du processus de démarrage du système et les étapes S1, S2a, S2b, S3a et S3b dudit processus de démarrage, selon un mode de réalisation.DESCRIPTION OF THE ILLUSTRATIVE FIGURES Other features and advantages of the present invention will appear more clearly on reading the description below, made with reference to the accompanying drawings, in which: FIG. 1 represents a diagram of the structure of the microcontroller according to FIG. one embodiment, - Figure 2 shows a diagram of the components of the microcontroller secured by the firewall of said microcontroller, according to one embodiment, - Figure 3 shows a diagram of the processor structure of the microcontroller, according to a method of Fig. 4 shows a diagram of the structure of a terminal including the microcontroller, according to one embodiment, - Figs. 5A, 5B and 5C show diagrams, respectively, of the system startup process and steps S1. , S2a, S2b, S3a and S3b of said startup process, according to one embodiment.

DESCRIPTION DES MODES DE REALISATION PREFERES DE L'INVENTIONDESCRIPTION OF THE PREFERRED EMBODIMENTS OF THE INVENTION

La présente invention concerne un microcontrôleur (1, Figure 1) pour la protection d’échange de données dans un terminal pour des applications avec un haut niveau de sécurité telles que par exemple les transactions financières.The present invention relates to a microcontroller (1, Figure 1) for the protection of data exchange in a terminal for applications with a high level of security such as for example financial transactions.

Dans certains modes de réalisation, le microcontrôleur (1) comprend un processeur (11, Figures, 2 et 3) et une mémoire séparée en au moins deux zones qui sont sécurisées (110, Figures 2 et 3), non sécurisées (111, Figures 2 et 3), pour mettre en œuvre un démarrage sécurisé, comprenant un circuit de commande d'autoprotection (13) ou circuit d’autoprotection pour détecter les conditions de vulnérabilité et le processeur (11) exécutant un système d’exploitation Linux, ledit processeur comprenant un moniteur pour commuter les opérations soit dans une zone sécurisée (110) de la mémoire pour faire fonctionner au moins des processus d'authentification soit dans une zone non sécurisée (111) pour d'autres opérations et déterminer si les périphériques connectés ou accédant au, ou accédés par le microcontrôleur (1) doivent être gérés par la zone sécurisée (110) ou par la zone non sécurisée (111) en utilisant un pare-feu matériel (12, Figures 1 et 2) pour déterminer si l’information ou la commande d’une application est autorisé à accéder à la zone sécurisée (110) ou non. Le dispositif d’autoprotection (13) comprend par exemple des capteurs (130a, 130b, 130c, Figure 1) lui permettant de détecter si quelqu’un essaye d’avoir accès au microcontrôleur (1) ou au dispositif contrôlé par le microcontrôleur (1) dans le cas ou l’accès n’est pas autorisé. Par exemple et de manière non-limitative, les capteurs (130a, 130b, 130c) sont de nature à détecter des chocs (130a) et/ou des variations de tension (130b) et de température (130c), etc. Le dispositif d’autoprotection (13) comprend en outre au moins une alarme (132) se déclenchant en cas d’intrusion et au moins une horloge (131) afin de dater les événements, par exemple une tentative d’accès non-autorisée. En cas d’intrusion le dispositif d’autoprotection (13) envoie un ordre permettant d’effacer les données confidentielles contenues dans des mémoires sécurisées (14) ou cryptées (volatiles ou non volatiles) disposées dans le microcontrôleur (1) et reliées au dispositif d’autoprotection (13). Les données sont, par exemple et de manière non limitative, des codes authentification ou des clés de codage. Le microcontrôleur comprend également une mémoire ROM (10a) (« Read-Only Memory» ou mémoire morte), une mémoire de démarrage BOOT-RAM (10b), une mémoire statique SRAM (10c) (« Static Random Access Memory » ou mémoire vive statique) et un débogueur. Le processeur (11, Figures 1, 2 et 3) permet de virtualiser la zone sécurisée (110) et la zone non sécurisée (111) au moyen de la couche (112) de commutation de processeur. Par exemple et de manière non limitative, le processeur (11) est un ARM Cortex-A9. Les périphériques (16a,16b, 16c, 16d, 16e, 16f) gérés respectivement par la zone sécurisée (110) et la zone non sécurisée (111), du microcontrôleur (1), se voient assigner par le pare-feu matériel (12), respectivement, la lettre «S» (pour sécurisé) et la lettre «N» (pour non sécurisé ou normal), ladite information de sécurité est sauvegardée dans les registres du pare-feu matériel (12) comme représenté sur la figure 2. Le dispositif d’autoprotection (13), également relié au pare-feu matériel (12), se voit attribué un statut sécurisé permanent, afin d’éviter toute intrusion en particulier une tentative de récupération de données dans le cas où le dispositif d’autoprotection (13) serait défaillant.In some embodiments, the microcontroller (1) comprises a processor (11, Figures, 2 and 3) and a memory separated into at least two areas that are secured (110, Figs. 2 and 3), unsecure (Figs. 2 and 3), for implementing a secure boot, comprising a tamper control circuit (13) or tamper circuit for detecting the vulnerability conditions and the processor (11) running a Linux operating system, said processor comprising a monitor for switching operations either in a secure area (110) of the memory for operating at least one authentication process or in an unsecure area (111) for other operations and determining whether the connected devices or accessing or accessed by the microcontroller (1) must be managed by the secure area (110) or the non-secure area (111) using a hardware firewall (12, Figures 1 and 2) in ur to determine whether the information or control of an application is authorized to access the secure zone (110) or not. The self-protection device (13) comprises, for example, sensors (130a, 130b, 130c, FIG. 1) enabling it to detect whether someone is trying to access the microcontroller (1) or the device controlled by the microcontroller (1). ) in the case where access is not allowed. For example and in a nonlimiting manner, the sensors (130a, 130b, 130c) are capable of detecting shocks (130a) and / or variations in voltage (130b) and temperature (130c), etc. The tamper device (13) further comprises at least one alarm (132) that triggers in the event of an intrusion and at least one clock (131) to date the events, for example an unauthorized access attempt. In the event of an intrusion, the self-protection device (13) sends an order for erasing the confidential data contained in secure (14) or encrypted (volatile or non-volatile) memories arranged in the microcontroller (1) and connected to the device self-protection (13). The data are, for example and without limitation, authentication codes or coding keys. The microcontroller also comprises a ROM (10a) ("Read-Only Memory"), a BOOT-RAM boot memory (10b), a static memory SRAM (10c) ("Static Random Access Memory" or RAM static) and a debugger. The processor (11, Figures 1, 2 and 3) virtualizes the secure area (110) and the non-secure area (111) by means of the processor switching layer (112). For example and without limitation, the processor (11) is an ARM Cortex-A9. The devices (16a, 16b, 16c, 16d, 16e, 16f) managed respectively by the secure area (110) and the unsecure area (111), of the microcontroller (1), are assigned by the hardware firewall (12). ), respectively, the letter "S" (for secure) and the letter "N" (for non-secure or normal), said security information is saved in the registers of the hardware firewall (12) as shown in Figure 2 The self-protection device (13), also connected to the hardware firewall (12), is assigned a permanent secure status, in order to avoid any intrusion, in particular an attempt to recover data in the event that the device self-protection (13) is defective.

Dans certains modes de réalisation, la mémoire est divisée en trois zones, une sécurisée, une non sécurisée et une partagée. La zone partagée est destinée à recevoir des périphériques nécessitant l’utilisation de ressources, par exemple des informations ou des applications, sécurisées et de ressources non sécurisées. Une telle architecture permet d’éviter l’introduction de point faible pour les périphériques nécessitant uniquement des ressources sécurisées.In some embodiments, the memory is divided into three areas, one secure, one unsecured and one shared. The shared zone is intended to receive devices requiring the use of resources, for example information or applications, secure and unsecured resources. Such an architecture makes it possible to avoid the introduction of a weak point for the peripherals requiring only secure resources.

Dans certains modes de réalisation, les zones sécurisées (110) et non sécurisées (ou zone normale) sont toutes deux incluses dans le processeur (11) du microcontrôleur (1), par exemple comme représenté sur les figures 2 et 3. Les procédés de traitement et d'échange de données exécutés par le microcontrôleur (1) s’effectuent d'une zone à l'autre en fonction de la nature des informations à traiter. Par exemple, si l’information porte sur des données sensibles telles que des codes d’authentification, elle est d’abord transmise à la zone sécurisée (110) pour vérification (authentification). Lorsque l’authentification est terminée, le résultat du traitement est transmis à la zone non sécurisée(111 ) pour permettre ou non la poursuite du traitement. La configuration du processeur (11) et de la mémoire dans une zone sécurisée (110) et une zone non sécurisée (111) et la présence du pare-feu matériel (12) contrôlant l’accessibilité des périphériques (16a,16b, 16c, 16d, 16e, 16f) gérés par le microcontrôleur (1) offre une couche de protection supplémentaire. Cette couche de protection pourrait être combinée, en plus, avec le circuit d’autoprotection (13) qui empêche principalement un accès non autorisé en provenance de l’extérieur. Le microcontrôleur (1) sécurisé empêche un accès non autorisé en provenance de l’intérieur et est donc complémentaire de la prévention d’un accès non autorisé en provenance de l’extérieur pour un terminal sécurisé et inviolable.In some embodiments, the secure (110) and non-secure (or normal) zones are both included in the processor (11) of the microcontroller (1), for example as shown in FIGS. 2 and 3. processing and exchange of data executed by the microcontroller (1) are effected from one area to another depending on the nature of the information to be processed. For example, if the information relates to sensitive data such as authentication codes, it is first transmitted to the secure area (110) for verification (authentication). When the authentication is complete, the result of the processing is transmitted to the non-secure zone (111) to allow or not the continuation of the treatment. The configuration of the processor (11) and the memory in a secure area (110) and a non-secure area (111) and the presence of the hardware firewall (12) controlling the accessibility of the devices (16a, 16b, 16c, 16d, 16e, 16f) managed by the microcontroller (1) provides an additional layer of protection. This protective layer could be combined, in addition, with the self-protection circuit (13) which mainly prevents unauthorized access from outside. The secure microcontroller (1) prevents unauthorized access from within and is therefore complementary to the prevention of unauthorized access from outside for a secure and tamper-proof terminal.

Dans certains modes de réalisation, le pare-feu matériel (12) comporte des registres qui sont affectés chacun à un périphérique (16a, 16b, 16c, 16d, 16e, 16f) et qui utilisent les informations mémorisées dans l'arborescence des périphériques Linux, décrit dans le système d'exploitation Linux, dans lequel ladite arborescence des périphériques est ajoutée avec des attributs de sécurité définissant le statut sécurisé (S) ou non sécurisé (N) de périphérique à mémoriser dans chaque registre associé à un périphérique un statut sécurisé ou non sécurisé pour induire le traitement de l’information ou de la commande à partir d’un périphérique dans la zone sécurisée du processeur si le périphérique est défini comme sécurisé, et induire le traitement de l’information ou de la commande à partir d’un périphérique dans la zone non sécurisée du processeur si le périphérique est défini comme non sécurisé. La disposition des différentes interfaces associées aux différents périphériques dans les deux zones est configurée par le pare-feu matériel (12).Par exemple, si le processeur essaye d’accéder à une interface donnée, il doit le faire dans le bon mode d’opération c'est-à-dire selon le statut sécurisé ou non sécurisé établi par le pare-feu matériel (12) afin d’avoir accès à ladite interface.In some embodiments, the hardware firewall (12) includes registers that are each assigned to a device (16a, 16b, 16c, 16d, 16e, 16f) and that use the information stored in the Linux device tree. , described in the Linux operating system, wherein said device tree is added with security attributes defining the secure (S) or nonsecure (N) state of the device to be stored in each registry associated with a device a secure status or not secure to induce the processing of information or control from a device in the secure area of the processor if the device is defined as secure, and induce the processing of the information or command from a device in the unsecured area of the processor if the device is defined as unsecured. The layout of the various interfaces associated with the different devices in the two zones is configured by the hardware firewall (12). For example, if the processor tries to access a given interface, it must do so in the correct mode. operation that is to say according to the secure or non-secure status established by the hardware firewall (12) to have access to said interface.

Dans certains modes de réalisation, l'arborescence des périphériques Linux est authentifiée par une application primaire sécurisée durant l’opération de démarrage sécurisé.In some embodiments, the Linux device tree is authenticated by a secure primary application during the secure boot operation.

Dans certains modes de réalisation, la zone sécurisée (110) comprend un cœur (110b) recevant au moins une instruction de la zone non sécurisée (111) ou d'un périphérique (16a, 16b, 16c, 16d, 16e, 16f) inclus dans l'arborescence des périphériques, et exécutant différentes opérations qui dépendent de l’instruction reçue, un registre (110a) comprenant un ensemble de services sécurisés comportant les règles pour la protection de différents types des processus correspondant à différents types de servicesIn some embodiments, the secure area (110) includes a heart (110b) receiving at least one instruction from the unsecured area (111) or a device (16a, 16b, 16c, 16d, 16e, 16f) included. in the device tree, and performing various operations that depend on the received instruction, a register (110a) comprising a set of secure services including rules for protecting different types of processes corresponding to different types of services

Dans certains modes de réalisation, la zone non sécurisée (111) comprend le noyau du système d'exploitation (111a), un environnement d'exécution (111b) des programmes et applications et/ou des procédés de traitement des données, au moins une bibliothèque, et au moins une plateforme (111c, 111 d) dédiée à l'ajout d'applications clientes (111 d) ou d’applications propriétaires (111c), le procédé d’ajout et l'accès desdites applications aux fonctionnalités du dispositif contrôlé par le microcontrôleur (1) étant définis par des règles de sécurité mises en œuvre par le pare-feu matériel (12).In some embodiments, the non-secure area (111) includes the operating system kernel (111a), an execution environment (111b) of the programs and applications and / or data processing methods, at least one library, and at least one platform (111c, 111d) dedicated to the addition of client applications (111d) or proprietary applications (111c), the method of adding and accessing said applications to the functionality of the device controlled by the microcontroller (1) being defined by security rules implemented by the hardware firewall (12).

Dans certains modes de réalisation, l'environnement d'exécution (111b) est configuré pour intégrer au moins un moyen pour interpréter différents types d'applications clientes, ledit moyen étant capable de traduire le langage desdites applications en programmes natifs afin de les traiter sur ledit environnement d'exécution (111b). Cette configuration permet ainsi d’éviter d’avoir à changer d’environnement d’exécution dès lors que l’on change le langage de programmation des applications clientes.In some embodiments, the execution environment (111b) is configured to integrate at least one means for interpreting different types of client applications, said means being capable of translating the language of said applications into native programs for processing on them. said execution environment (111b). This configuration thus makes it possible to avoid having to change the execution environment as soon as the programming language of the client applications is changed.

Dans certains modes de réalisation, l'environnement d'exécution est Android.In some embodiments, the runtime environment is Android.

Dans certains modes de réalisation, les périphériques accessibles sont au moins deux des périphériques suivants: circuit Bluetooth (16c)/Wifi (16b), Ethernet (16j), imprimantes, affichage, GPS, caméra (161), son, capteur de proximité (16k), HDMI, USB (16a), écran tactile (16f), clavier, lecteur sans contact (16e), un lecteur de cartes magnétiques (16h), lecteur de cartes à puce (16g), matériel cryptographique, gestionnaire de clés informatiques.In some embodiments, the accessible devices are at least two of the following devices: Bluetooth (16c) / Wifi (16b) circuit, Ethernet (16d), printers, display, GPS, camera (161), sound, proximity sensor ( 16k), HDMI, USB (16a), touch screen (16f), keypad, non-contact reader (16th), magnetic card reader (16h), smart card reader (16g), cryptographic material, computer key manager .

Dans certains modes de réalisation, les périphériques affichage, écran tactile (16f), clavier, lecteur sans contact (16e), un lecteur de cartes magnétique (16h), lecteur de carte à puce (16g), matériel cryptographique et gestionnaire de clés informatiques sont des périphériques sécurisés, tandis que les périphériques circuit Bluetooth (16c)/Wifi (16b), Ethernet (16j), imprimantes, GPS, caméra (161), son, capteur de proximité (16k), HDMI et USB (16a) reçoivent soit un statut sécurisé (S) soit un statut non sécurisé (N).In some embodiments, display devices, touch screen (16f), keyboard, non-contact reader (16th), magnetic card reader (16h), smart card reader (16g), cryptographic hardware and computer key manager are secure devices, while Bluetooth (16c) / Wifi (16b), Ethernet (16d), printers, GPS, camera (161), sound, proximity sensor (16k), HDMI and USB (16a) devices receive either a secure status (S) or a non-secure status (N).

Dans certains modes de réalisation, le processus de démarrage sécurisé du système d’exploitation Linux (voir les Figures 5A, 5B et 5C) pour un microcontrôleur (1) avec dispositif d’autoprotection (13) et zone de traitement de confiance (110) comprend les étapes de: • commencer à exécuter le code contenu dans la mémoire ROM (10a); • charger une partition initiale cryptée à partir d’une mémoire externe; • décrypter l’information de la partition initiale; • authentifier les clés publiques (Pk) et authentifier l’application primaire protégée (PPA) et un logiciel initial (ISW); • et charger et démarrer les autres programmes de démarrage de Linux.In some embodiments, the secure boot process of the Linux operating system (see Figures 5A, 5B and 5C) for a microcontroller (1) with self-protection device (13) and trusted processing area (110) comprises the steps of: • starting to execute the code contained in the ROM (10a); • load an encrypted initial partition from an external memory; • decrypt the information of the initial partition; • authenticate public keys (Pk) and authenticate the protected primary application (PPA) and initial software (ISW); • and load and start other Linux startup programs.

Le ROM comprend les clés publiques pour l’authentification l’information de la partition initiale chargée à partir de la mémoire externe et/ou optionnellement le décryptage. Le ROM, ensuite, télécharge l’information décryptée de la partition initiale, l’application primaire protégée (PPA) et le logiciel initial (ISW), qui comprend un logiciel initial sécurisé (ISSW) et un logiciel initial normal ou non sécurisé (ISNW), dans la mémoire de démarrage ou BOOT-RAM (10b), uniquement accessible en mode sécurisé (S).The ROM includes the public keys for authenticating the information of the initial partition loaded from the external memory and / or optionally decryption. The ROM, then, downloads the decrypted information from the initial partition, the Protected Primary Application (PPA) and the Initial Software (ISW), which includes Secure Initial Software (ISSW) and normal or non-secure initial software (ISNW). ), in the boot memory or BOOT-RAM (10b), only accessible in secure mode (S).

Dans un autre mode de réalisation, le processus de démarrage sécurisé du système d’exploitation Linux comprend les étapes de: • charger le U-boot SPL ( Secondary Program Loader); • authentifier l'arborescence des périphériques (DT); • démarrer le PA-loader (Primary Application loader); • décrypter le PA live (Primary Application live) qui est l’application spécifique sécurisée du client qui contient les fonctions spécifiques pour un client ou un schéma de paiement; • initialiser ramdisk; • charger le noyau Linux; • démarrer le noyau Linux; • démarrer dm-verity; • exécuter des applications Android sous SELinux L’image du U-boot SPL est chargée dans la zone non sécurisée ou zone normale (voir Figures 5A, 5B) du processeur (11). Après le démarrage des programmes, la liste des périphériques compris dans l’arborescence de périphériques du système d’exploitation est envoyée pour authentification dans la zone sécurisée (110). Après authentification de la liste, l’étape suivante est enclenchée. Si, au cours des différentes étapes, un processus d’authentification est requis, l’instruction est transférée, à nouveau, dans la zone sécurisée pour vérification. Le processus se déroule, ainsi, jusqu’au démarrage du système d’exploitation (110a) et à l’exécution des applications. SELinux (Security-Enhanced Linux) est utilisé pour définir en outre les limites de l’environnement sécurisé ou « sandbox » de l’application Android. SELinux améliore la sécurité d’Android en confinant les processus privilégiés et en automatisant la création de la politique de sécurité. Tout ce qui n’est pas explicitement autorisé est refusé. SELinux peut fonctionner dans l’un des deux modes globaux: le mode permissif, dans lequel les refus d’autorisation sont consignés mais pas appliqués, et le mode renforcé, dans lequel les refus d’autorisation sont à la fois consignés et appliqués. SELinux est configuré dans le mode renforcé. SELinux supporte également un mode permissif par domaine dans lequel des domaines spécifiques (processus) peuvent être permissifs tout en plaçant le reste du système dans un mode renforcé global. Un domaine est tout simplement une étiquette identifiant un processus ou un ensemble de processus dans la politique de sécurité, où tous les processus marqués avec le même domaine sont traités de manière identique par la politique de sécurité. Une liste de domaines permissifs est stockée dans la mémoire du microcontrôleur (1) et vérifiée avant d’exécuter une commande fournie par une application Android.In another embodiment, the secure boot process of the Linux operating system includes the steps of: • loading the U-boot SPL (Secondary Program Loader); • authenticate the device tree (DT); • start the PA-loader (Primary Application loader); • decrypt the live PA (Primary Live Application) which is the specific secure client application that contains the specific functions for a client or payment scheme; • initialize ramdisk; • load the Linux kernel; • start the Linux kernel; • start dm-verity; • run Android applications under SELinux The U-boot SPL image is loaded into the unsecured area or normal zone (see Figures 5A, 5B) of the processor (11). After the programs start, the list of devices included in the operating system's device tree is sent for authentication in the secure area (110). After authentication of the list, the next step is activated. If, during the different steps, an authentication process is required, the instruction is transferred, again, to the secure area for verification. The process thus proceeds until the operating system (110a) is started and the applications run. SELinux (Security-Enhanced Linux) is used to further define the limits of the secure environment or "sandbox" of the Android application. SELinux improves the security of Android by confining the privileged processes and automating the creation of the security policy. Anything that is not explicitly allowed is denied. SELinux can operate in one of two global modes: the permissive mode, in which authorization denials are logged but not enforced, and the enhanced mode, in which authorization denials are both logged and enforced. SELinux is configured in the enhanced mode. SELinux also supports a permissive mode by domain in which specific domains (processes) can be permissive while placing the rest of the system in a global enhanced mode. A domain is simply a label identifying a process or set of processes in the security policy, where all processes marked with the same domain are treated identically by the security policy. A list of permissive domains is stored in the memory of the microcontroller (1) and checked before executing a command provided by an Android application.

Par conséquent les plateformes d’applications sont séparées de la bibliothèque, le noyau et l’environnement d’exécution du système d’exploitation par un module de contrôle, contenue dans le système d’exploitation, qui contrôle l’accès des applications et limite l’accès à un périphérique donné ou un service à une application cliente non autorisée, le contrôle et l’accès audit périphérique ou audit service s’effectuant au moyen d’un fichier fourni par SELinux, ledit fichier décrivant dans une « whitelist » le type des opérations qui sont autorisées par une application particulière ou un processus particulier et établissant la permission d’opération pour chaque application.Therefore, the application platforms are separated from the library, the kernel, and the operating system runtime environment by a control module, contained in the operating system, that controls application access and limit access to a given device or service to an unauthorized client application, control and access to said device or service being performed using a file provided by SELinux, said file describing in a "whitelist" the type of operations that are authorized by a particular application or process and establishing operation permission for each application.

Dans certains modes de réalisation, au moins plusieurs registres de périphériques du microcontrôleur (1) ont initialement un statut sécurisé (S) quand le code contenu dans la ROM (10a) commence à s’exécuter et avant l’activation du PA-loader. Le démarrage du système se fait toujours dans la zone sécurisée (111a), presque tous les périphériques se voient alors assigner, initialement par défaut, le statut sécurisé (S) et sont interdits d’accès jusqu’à ce que l’étape d’authentification des périphériques compris dans l’arborescence des périphériques soit exécutée.In some embodiments, at least several device registers of the microcontroller (1) initially have a secure status (S) when the code contained in the ROM (10a) begins to execute and before the activation of the PA-loader. The system is always started in the secure zone (111a), almost all the devices are then assigned, initially by default, the secure status (S) and are prohibited from access until the step of authentication of devices included in the device tree be executed.

Dans certains modes de réalisation, après l’activation du PA-loader, les attributs de sécurité définis pour chaque périphérique dans l’arborescence de périphériques sont gérés par le PA-Loader et le statut sécurisé (S) d’au moins un registre du pare-feu (12) associé à un périphérique, initialement défini dans un statut sécurisé (S) et jugé non critique en raison de la description dans l'arborescence des périphériques pour la sécurité et/ou l’intégrité d’un système ou d’un dispositif, est modifié en un statut non sécurisé (N) ou normal dans le registre du pare-feu. Après l’authentification de l’arborescence des périphériques, le PA-loader en effectue la lecture et change le statut des périphériques contenus dans l’arborescence suivant des règles établies par le pare-feu matériel (12). Par exemple, les registres du pare-feu associés à la caméra (161) et à l’USB (16a) peuvent passer d’un statut sécurisé (S) à un statut non sécurisé (N), tandis que les registres du pare-feu associés à l’écran tactile (16f) ou le lecteur de carte magnétique (16h), qui manipulent des données sensibles, sont maintenus dans le statut sécurisé (S).In some embodiments, after activation of the PA-loader, the security attributes defined for each device in the device tree are managed by the PA-Loader and the secure status (S) of at least one register of the device. a firewall (12) associated with a device, initially defined in secure status (S) and deemed uncritical due to the description in the device tree for the security and / or integrity of a system or a device, is changed to an unsecured (N) or normal status in the firewall registry. After authenticating the device tree, the PA-loader reads it and changes the status of the devices in the tree according to the rules established by the hardware firewall (12). For example, the firewall registers associated with the camera (161) and the USB (16a) may change from a secure status (S) to an unsecure status (N), while the firewall registers Fire associated with the touch screen (16f) or the magnetic card reader (16h), which manipulate sensitive data, are maintained in the secure status (S).

Dans certains modes de réalisation, les plateformes d’applications (111c, 111 d) sont séparées de la bibliothèque, du noyau (111a) du système d’exploitation et de l’environnement d’exécution (111b) du système d’exploitation par un module de contrôle, contenu dans le système d’exploitation, qui contrôle les accès pour les applications et limite l’accès à un périphérique donné ou à un service pour les applications clientes non autorisées, le contrôle à l’accès dudit périphérique ou dudit service étant effectué au moyen d’un fichier fourni par SELinux, ledit fichier décrivant dans une liste blanche ou « whitelist » le type d’opérations permises en combinaison avec l’identité (ID) d’une application particulière ou d’un processus et établissant la permission d’opération pour chaque application.In some embodiments, the application platforms (111c, 111d) are separated from the operating system kernel (111a) and operating system environment (111b) by a control module, contained in the operating system, which controls access for applications and limits access to a given device or service for unauthorized client applications, access control of said device or service being performed using a file provided by SELinux, said file whitelisting the type of operations allowed in combination with the identity (ID) of a particular application or process, and establishing operation permission for each application.

Dans certains modes de réalisation, l’accès d’une application cliente autorisée ou non autorisée à certaines fonctionnalités d’un périphérique tel que par exemple l’écran d’affichage tactile, est contrôlé par le microcontrôleur (1) et se fait au moyen d'un proxy sécurisé actionné par le module de contrôle, ledit proxy sécurisé vérifiant si un message concernant un évènement tactile est signé par un tiers de confiance avant d’être affiché et sinon, l’évènement tactile n’est pas transféré dans la zone non sécurisée. Par exemple et de manière non limitative, si une application cliente utilisant un API (interface de programmation d’application) standard d’Android, essaye d’avoir accès à l’écran d’affichage (16f) d’un dispositif contrôlé par le microcontrôleur (1), le module de contrôle actionne le proxy sécurisé qui vérifie s’il y a une correspondance entre ΓΑΡΙ de l’application et ΓΑΡΙ natif du système. S’il n’y a pas de correspondance, l’application n’est pas autorisée. Dans le cas où l’application est autorisée, l’écran n’affiche dans un premier temps que des données d’entrée fournies par l’application, lesdites données ne pouvant pas déclencher l’exécution d’une tâche. Les données sont, par la suite, transmises dans la zone sécurisée par le proxy sécurisé, pour vérification. Si les données sont authentifiées, celles-ci sont signées et retransmises, via le proxy sécurisé, à l’écran de manière à pouvoir déclencher dans le processeur de l’écran d’affichage, l’exécution d’une tâche.In some embodiments, the access of an authorized or unauthorized client application to certain features of a device such as, for example, the touch screen display, is controlled by the microcontroller (1) and is done by means of a secure proxy activated by the control module, said secure proxy verifying if a message concerning a touch event is signed by a trusted third party before being displayed and if not, the touch event is not transferred to the zone unsecured. For example and without limitation, if a client application using a standard application programming interface (API) of Android, tries to have access to the display screen (16f) of a device controlled by the microcontroller (1), the control module actuates the secure proxy that checks whether there is a correspondence between ΓΑΡΙ of the application and ΓΑΡΙ native of the system. If there is no match, the application is not allowed. In the case where the application is authorized, the screen initially displays only input data provided by the application, said data can not trigger the execution of a task. The data is subsequently transmitted to the secure area by the secure proxy for verification. If the data is authenticated, it is signed and retransmitted, via the secure proxy, to the screen so as to trigger in the processor of the display screen, the execution of a task.

Dans certains modes de réalisation, un microcontrôleur (1) avec un dispositif d’autoprotection (13) et zone de traitement de confiance (110) et un démarrage sécurisé du système d’exploitation Linux est utilisé dans un terminal (2) tout-en-un comprenant un écran LCD (16f), un écran tactile capacitif (16f), un lecteur de carte magnétique (16h), un lecteur de carte à puce (16g), un lecteur de carte sans contact (16e), un circuit imprimé de sécurité en amont (21), un circuit imprimé de connexion (22) et une caméra (161) pour constituer un terminal (2) inviolable dans lequel chaque opération sécurisée ou périphérique sécurisé est géré(e) par la zone de confiance (110) du microcontrôleur (1) et dans lequel la protection de l’accès à une cette zone de traitement de confiance (110) est protégé contre l’accès d’une sonde au microcontrôleur (1) par l'insertion du circuit imprimé principal (20) comportant le microcontrôleur (1) dans une cage de connexion permettant de détecter toute tentative d'ouverture de la cage ou de perçage à travers la cage.In some embodiments, a microcontroller (1) with self-protection device (13) and trusted processing area (110) and a secure boot of the Linux operating system is used in an all-in-all terminal (2). one comprising an LCD screen (16f), a capacitive touch screen (16f), a magnetic card reader (16h), a smart card reader (16g), a contactless card reader (16e), a printed circuit board security device (21), a connection circuit (22) and a camera (161) for constituting a tamper-proof terminal (2) in which each secure operation or secure device is managed by the trusted zone (110). ) of the microcontroller (1) and wherein the protection of access to this trusted processing area (110) is protected against access of a probe to the microcontroller (1) by the insertion of the main printed circuit ( 20) comprising the microcontroller (1) in a connection cage n to detect any attempt to open the cage or drilling through the cage.

Dans certains modes de réalisation, le circuit imprimé de sécurité en amont (21) comprend au moins un capteur de proximité (16k) pour détecter toute présence ou action et envoyer un signal au microcontrôleur (1) pour effectuer une analyse et déclencher une action (affichage d’un message de bienvenue ou d’utilisation).In some embodiments, the upstream security circuit (21) includes at least one proximity sensor (16k) for detecting any presence or action and sending a signal to the microcontroller (1) to perform an analysis and initiate an action ( displaying a welcome or usage message).

Dans certains modes de réalisation, le circuit imprimé de connexion (22) comprend au moins une interface USB (16a), un port série UART (16i), une interface Ethernet (16j) et une interface Bluetooth (16c)/Wifi (16b) pour la communication et l'échange de données.In some embodiments, the printed circuit board (22) includes at least one USB interface (16a), a UART serial port (16i), an Ethernet interface (16j) and a Bluetooth (16c) / Wifi interface (16b) for communication and data exchange.

La présente demande décrit diverses caractéristiques techniques et avantages en référence aux figures et/ou à divers modes de réalisation. L’homme de métier comprendra que les caractéristiques techniques d’un mode de réalisation donné peuvent en fait être combinées avec des caractéristiques d’un autre mode de réalisation à moins que l’inverse ne soit explicitement mentionné ou qu’il ne soit évident que ces caractéristiques sont incompatibles ou que la combinaison ne fournisse pas une solution à au moins un des problèmes techniques mentionnés dans la présente demande. De plus, les caractéristiques techniques décrites dans un mode de réalisation donné peuvent être isolées des autres caractéristiques de ce mode à moins que l’inverse ne soit explicitement mentionné.The present application describes various technical features and advantages with reference to the figures and / or various embodiments. Those skilled in the art will appreciate that the technical features of a given embodiment may in fact be combined with features of another embodiment unless the reverse is explicitly mentioned or it is evident that these characteristics are incompatible or that the combination does not provide a solution to at least one of the technical problems mentioned in this application. In addition, the technical features described in a given embodiment can be isolated from the other features of this mode unless the opposite is explicitly mentioned.

Il doit être évident pour les personnes versées dans l'art que la présente invention permet des modes de réalisation sous de nombreuses autres formes spécifiques sans l'éloigner du domaine d'application de l'invention comme revendiqué. Par conséquent, les présents modes de réalisation doivent être considérés à titre d'illustration, mais peuvent être modifiés dans le domaine défini par la portée des revendications jointes, et l'invention ne doit pas être limitée aux détails donnés ci-dessus.It should be obvious to those skilled in the art that the present invention allows embodiments in many other specific forms without departing from the scope of the invention as claimed. Therefore, the present embodiments should be considered by way of illustration, but may be modified within the scope defined by the scope of the appended claims, and the invention should not be limited to the details given above.

Claims (18)

REVENDICATIONS 1. Microcontrôleur (1) comprenant un processeur (11) comportant une mémoire séparée en au moins deux zones, qui sont sécurisée (110), non sécurisée (111) ou partagée, pour mettre en œuvre un démarrage sécurisé, un circuit de commande d'autoprotection (13) comportant au moins un capteur (130a, 130b, 130c) pour détecter les conditions de vulnérabilité , ledit processeur (11) exécutant un système d’exploitation Linux (Linus OS) et comprenant également un moniteur pour commuter les opérations soit dans une zone sécurisée (110) de la mémoire pour faire fonctionner au moins des processus d'authentification soit dans une zone non sécurisée (111) pour d'autres opérations et déterminer si les périphériques connectés ou accédant au, ou accédés par le microcontrôleur (1) doivent être gérés par la zone sécurisée (110) ou par la zone non sécurisée (111), ledit microcontrôleur (1 ) étant caractérisé en ce qu’il comprend un pare-feu matériel (12), utilisé par ledit processeur (11), pour déterminer si l’information ou la commande d’une application est autorisée à accéder à la zone sécurisée (110) ou non, ledit pare-feu matériel (12) étant relié audit circuit de commande d'autoprotection (13) pour éviter toute intrusion et/ou récupération de données en cas de défaillance dudit circuit de commande d'autoprotection (13).Microcontroller (1) comprising a processor (11) having a memory separated into at least two zones, which are secured (110), unsecured (111) or shared, to implement a secure start, a control circuit of self-protection (13) comprising at least one sensor (130a, 130b, 130c) for detecting vulnerability conditions, said processor (11) running a Linux operating system (Linus OS) and also including a monitor for switching operations; in a secure area (110) of the memory for operating at least one of the authentication processes in an unsecured area (111) for other operations and determining whether the devices connected to or accessing the, or accessed by the microcontroller ( 1) must be managed by the secure zone (110) or by the non-secure zone (111), said microcontroller (1) being characterized in that it comprises a hardware firewall (12), used read by said processor (11), to determine whether the information or control of an application is authorized to access the secure area (110) or not, said hardware firewall (12) being connected to said control circuit of tamper (13) to prevent intrusion and / or data recovery in the event of failure of said self-protection control circuit (13). 2. Microcontrôleur selon la revendication 1, dans lequel les zones sécurisée (110) et non sécurisée (111) sont toutes deux incluses dans le processeur (11) du microcontrôleur (1), les procédés de traitement et d'échange de données exécutés par le microcontrôleur (1) s’effectuant d'une zone à l'autre en fonction de la nature des informations à traiter.A microcontroller according to claim 1, wherein the secure (110) and non-secure (111) areas are both included in the processor (11) of the microcontroller (1), the methods of data processing and exchange executed by the microcontroller (1) being effected from one zone to another depending on the nature of the information to be processed. 3. Microcontrôleur selon les revendications 1 et 2, dans lequel le pare-feu matériel (12) comporte des registres qui sont affectés chacun à un périphérique (16a, 16b, 16c, 16d, 16e, 16f) et qui utilisent les informations mémorisées dans l'arborescence des périphériques Linux, décrit dans le système d'exploitation Linux, dans lequel ladite arborescence des périphériques est ajoutée avec des attributs de sécurité, définissant le statut sécurisé (S) ou non sécurisé (N) de périphérique à mémoriser dans chaque registre associé à un périphérique un statut sécurisé ou non sécurisé pour induire le traitement de l’information ou de la commande à partir d’un périphérique dans la zone sécurisée du processeur si le périphérique est défini comme sécurisé, et induire le traitement de l’information ou de la commande à partir d’un périphérique dans la zone non sécurisée du processeur si le périphérique est défini comme non sécurisé.3. Microcontroller according to claims 1 and 2, wherein the hardware firewall (12) includes registers which are each assigned to a peripheral (16a, 16b, 16c, 16d, 16e, 16f) and which use the information stored in the Linux device tree, described in the Linux operating system, wherein said device tree is added with security attributes, defining the secure (S) or nonsecure (N) status of the device to be stored in each registry associated with a device a secure or insecure status to induce the processing of information or command from a device in the secure area of the processor if the device is defined as secure, and induce the processing of the information or the command from a device in the unsecured area of the processor if the device is defined as unsecured. 4. Microcontrôleur (1) selon les revendications 1 à 3, dans lequel l'arborescence des périphériques Linux est authentifiée par une application primaire sécurisée durant l’opération de démarrage sécurisé.4. Microcontroller (1) according to claims 1 to 3, wherein the tree of Linux devices is authenticated by a secure primary application during the secure boot operation. 5. Microcontrôleur (1) selon les revendications 1 à 4, dans lequel la zone sécurisée (110) comprend un cœur (110b) recevant au moins une instruction de la zone non sécurisée (111) ou d'un périphérique (16a, 16b, 16c, 16d, 16e, 16f) inclus dans l'arborescence des périphériques, et exécutant différentes opérations qui dépendent de l’instruction reçue, un registre (110a) comprenant un ensemble de services sécurisés comportant les règles pour la protection de différents types des processus correspondant à différents types de services.5. Microcontroller (1) according to claims 1 to 4, wherein the secure area (110) comprises a core (110b) receiving at least one instruction of the unsecured area (111) or a peripheral (16a, 16b, 16c, 16d, 16e, 16f) included in the device tree, and performing various operations that depend on the received instruction, a register (110a) comprising a set of secure services including the rules for protection of different types of processes. corresponding to different types of services. 6. Microcontrôleur (1) selon les revendications 1 à 4, dans lequel la zone non sécurisée (111) comprend le noyau du système d'exploitation (111a), un environnement d'exécution (111b) des programmes et applications et/ou des procédés de traitement des données, au moins une bibliothèque, et au moins une plateforme (111c, 111 d) dédiée à l'ajout d'applications clientes (111 d) ou d’applications propriétaires (111 c), le procédé d’ajout et l'accès desdites applications aux fonctionnalités du dispositif contrôlé par le microcontrôleur (1) étant définis par des règles de sécurité mises en œuvre par le pare-feu matériel (12).6. Microcontroller (1) according to claims 1 to 4, wherein the unsecure area (111) comprises the operating system kernel (111a), an execution environment (111b) programs and applications and / or data processing methods, at least one library, and at least one platform (111c, 111d) dedicated to adding client applications (111d) or proprietary applications (111c), the method of adding and the access of said applications to the functionalities of the device controlled by the microcontroller (1) being defined by security rules implemented by the hardware firewall (12). 7. Microcontrôleur selon la revendication précédente, dans lequel l'environnement d'exécution (111b) est configuré pour intégrer au moins un moyen pour interpréter différents types d'applications clientes, ledit moyen étant capable de traduire le langage desdites applications en programmes natifs afin de les traiter sur ledit environnement d'exécution (111b).7. Microcontroller according to the preceding claim, wherein the execution environment (111b) is configured to integrate at least one means for interpreting different types of client applications, said means being capable of translating the language of said applications into native programs so to process them on said execution environment (111b). 8. Microcontrôleur (1) selon les revendications 6 et 7, dans lequel l'environnement d'exécution est Android.8. Microcontroller (1) according to claims 6 and 7, wherein the runtime environment is Android. 9. Microcontrôleur (1) selon la revendication 1 à 3, dans lequel les périphériques inclus dans l'arborescence des périphériques et accessibles sont au moins deux des périphériques suivants: circuit Bluetooth (16c)/Wifi (16b), Ethernet (16j), imprimantes, affichage, GPS, caméra (161), son, capteur de proximité (16k), HDMI , USB (16a), écran tactile (16f), clavier, lecteur sans contact (16e), lecteur de cartes magnétiques (16h), lecteur de carte à puce (16g), matériel cryptographique, gestionnaire de clés informatique.9. Microcontroller (1) according to claim 1 to 3, wherein the devices included in the device tree and accessible are at least two of the following devices: Bluetooth circuit (16c) / Wifi (16b), Ethernet (16j), printers, display, GPS, camera (161), sound, proximity sensor (16k), HDMI, USB (16a), touch screen (16f), keypad, non-contact reader (16th), magnetic card reader (16h), smart card reader (16g), cryptographic material, computer key manager. 10. Microcontrôleur selon la revendication précédente, dans lequel les périphériques affichage, écran tactile (16f), clavier, lecteur sans contact (16e), lecteur de cartes magnétiques (16h), lecteur de carte à puce (16g), matériel cryptographique et gestionnaire de clés informatique sont des périphériques sécurisés, tandis que les périphériques circuit Bluetooth (16c)M/ifi (16b), Ethernet (16j), imprimantes, GPS, caméra (161), son, capteur de proximité (16k), HDMI et USB (16a) reçoivent soit un statut sécurisé (S) soit un statut non sécurisé (N).10. Microcontroller according to the preceding claim, wherein the display devices, touch screen (16f), keyboard, contactless reader (16th), magnetic card reader (16h), smart card reader (16g), cryptographic material and manager computer keys are secure devices, while the M / ifi (16b), 16d, Ethernet, 16j, Bluetooth, printer, GPS, camera (161), sound, proximity sensor (16k), HDMI, and USB devices (16a) receive either a secure status (S) or a non-secure status (N). 11. Processus de démarrage sécurisé du système d’exploitation Linux pour un microcontrôleur (1) avec dispositif d’autoprotection (13) et zone sécurisée (110) selon la revendication 1, comprenant les étapes de: • commencer à exécuter le code contenu dans la mémoire ROM (10a); • charger une partition initiale cryptée à partir d’une mémoire externe; • décrypter l’information de la partition initiale; • authentifier des clés publiques (Pk) et authentifier une application primaire protégée (PPA) et un logiciel initial (ISW); • et charger et démarrer les autres programmes de démarrage de Linux. le processus de démarrage étant caractérisé en ce que l’étape « charger et démarrer les autres programmes de démarrage de Linux» comprend au moins une des étapes consistant à: - charger le U-boot SPL (Secondary Program Loader); - authentifier l'arborescence des périphériques (DT); - démarrer le PA-loader (Primary Application loader); - décrypter le PA live (Primary Application live); - initialiser ramdisk; - charger le noyau Linux; - démarrer le noyau Linux; - démarrer dm-verity; - exécuter des applications Android sous SELinux11. Secure boot process of the Linux operating system for a microcontroller (1) with tamper (13) and secure area (110) according to claim 1, comprising the steps of: • starting to execute the code contained in the ROM (10a); • load an encrypted initial partition from an external memory; • decrypt the information of the initial partition; • authenticate public keys (Pk) and authenticate a protected primary application (PPA) and initial software (ISW); • and load and start other Linux startup programs. the boot process being characterized in that the step "load and start other Linux boot programs" includes at least one of the steps of: - loading the U-boot SPL (Secondary Program Loader); - authenticate the device tree (DT); - start the PA-loader (Primary Application loader); - decrypt the live PA (Primary Application live); - initialize ramdisk; - load the Linux kernel; - start the Linux kernel; - start dm-verity; - run Android apps under SELinux 12. Processus de démarrage sécurisé du système d’exploitation Linux pour un microcontrôleur (1) selon la revendication 11, caractérisé en ce qu’au moins plusieurs registres de périphériques du microcontrôleur (1) ont initialement un statut sécurisé (S) quand le code contenu dans la ROM (10a) commence à s’exécuter et avant l’activation du PA-loader.12. Secure boot process of the Linux operating system for a microcontroller (1) according to claim 11, characterized in that at least several device registers of the microcontroller (1) initially have a secure status (S) when the code content in the ROM (10a) begins to execute and before activation of the PA-loader. 13. Processus de démarrage sécurisé du système d’exploitation Linux pour un microcontrôleur (1) selon la revendication 12, caractérisé en ce qu’après l’activation du PA-loader, les attributs de sécurité définis pour chaque périphérique dans l’arborescence de périphériques sont gérés par le PA-Loader et le statut sécurisé (S) d’au moins un registre du pare-feu (12) associé à un périphérique, initialement défini dans un statut sécurisé (S) et jugé non critique en raison de la description dans l'arborescence des périphériques pour la sécurité et/ou l’intégrité d’un système ou d’un dispositif, est modifié en un statut non sécurisé (N) ou normal dans le registre du pare-feu.13. Secure boot process Linux operating system for a microcontroller (1) according to claim 12, characterized in that after the activation of PA-loader, the security attributes defined for each device in the tree of devices are managed by the PA-Loader and the secure status (S) of at least one firewall register (12) associated with a device, initially defined in a secure status (S) and deemed uncritical due to the description in the device tree for the security and / or integrity of a system or device, is changed to an unsecured (N) or normal status in the firewall registry. 14. Processus de démarrage sécurisé du système d’exploitation Linux pour un microcontrôleur (1) selon les revendications 11 à 13, caractérisé en ce que les plateformes d’applications (111c, 111 d) sont séparées de la bibliothèque, du noyau (111a) du système d’exploitation et de l’environnement d’exécution (111b) du système d’exploitation par un module de contrôle, contenu dans le système d’exploitation, qui contrôle les accès pour les applications et limite l’accès à un périphérique donné ou à un service pour les applications clientes non autorisées, le contrôle à l’accès dudit périphérique ou dudit service étant effectué au moyen d’un fichier fourni par SELinux, ledit fichier décrivant dans une liste blanche ou « whitelist » le type d’opérations permises en combinaison avec l’identité (ID) d’une application particulière ou d’un processus et établissant la permission d’opération pour chaque application.14. Secure boot process of the Linux operating system for a microcontroller (1) according to claims 11 to 13, characterized in that the application platforms (111c, 111d) are separated from the library, the core (111a ) of the operating system and the operating environment (111b) of the operating system by a control module, contained in the operating system, which controls the accesses for the applications and limits access to a given device or to a service for unauthorized client applications, the access control of said device or of said service being effected by means of a file provided by SELinux, said file whitelisting the type of device or service; permitted operations in combination with the identity (ID) of a particular application or process and establishing operation permission for each application. 15. Processus de démarrage sécurisé du système d’exploitation Linux pour un microcontrôleur (1) selon les revendications 11 à 14, caractérisé en ce que l’accès d’une application cliente autorisée ou non autorisée à certaines fonctionnalités d’un périphérique tel que par exemple l’écran d’affichage tactile, est contrôlé par le microcontrôleur (1) et se fait au moyen d'un proxy sécurisé actionné par le module de contrôle, ledit proxy sécurisé vérifiant si un message concernant un évènement tactile est signé par un tiers de confiance avant d’être affiché et si non, l’évènement tactile n’est pas transféré dans la zone non sécurisée.15. Secure boot process of the Linux operating system for a microcontroller (1) according to claims 11 to 14, characterized in that the access of an authorized or unauthorized client application to certain features of a device such as for example the touch screen display, is controlled by the microcontroller (1) and is done by means of a secure proxy operated by the control module, said secure proxy checking if a message about a touch event is signed by a trusted third party before being displayed and if not, the touch event is not transferred to the unsecured area. 16. Utilisation d’un microcontrôleur (1) avec un dispositif d’autoprotection (13) et zone sécurisée(110), selon la revendication 1, et démarrage sécurisé du système d’exploitation Linux dans un terminal (2) tout-en-un comprenant un écran LCD (16f), un écran tactile capacitif (16f), un lecteur de carte magnétique (16h), un lecteur de carte à puce (16g), un lecteur de carte sans contact (16e), un circuit imprimé de sécurité en amont (21), un circuit imprimé de connexion (22) et une caméra (161) pour constituer un terminal (2) inviolable dans lequel chaque opération sécurisée ou périphérique sécurisé est géré(e) par la zone sécurisée (110) du microcontrôleur (1) et dans lequel la protection de l’accès à une cette zone sécurisée (110) est protégé contre l’accès d’une sonde au microcontrôleur (1) par l'insertion du circuit imprimé principal (20) comportant le microcontrôleur (1) dans une cage de connexion permettant de détecter toute tentative d'ouverture de la cage ou de perçage à travers la cage.16. Use of a microcontroller (1) with a tamper (13) and secure area (110), according to claim 1, and secure boot of the Linux operating system in an all-in terminal (2). one comprising an LCD screen (16f), a capacitive touch screen (16f), a magnetic card reader (16h), a smart card reader (16g), a contactless card reader (16e), a printed circuit board an upstream security (21), a connection circuit (22) and a camera (161) for constituting a tamper-proof terminal (2) in which each secure operation or secure peripheral is managed by the secure area (110) of the microcontroller (1) and wherein the protection of access to this secure area (110) is protected against access of a probe to the microcontroller (1) by the insertion of the main printed circuit (20) comprising the microcontroller (1) in a connection cage to detect any temptation iive opening the cage or drilling through the cage. 17. Utilisation d’un microcontrôleur (1) selon la revendication précédente, caractérisé en ce que le circuit imprimé de sécurité en amont (21) comprend au moins un capteur de proximité (16k) pour détecter toute présence ou action et envoyer un signal au microcontrôleur (1) pour effectuer une analyse et déclencher une action: affichage d’un message de bienvenue ou d’utilisation.17. Use of a microcontroller (1) according to the preceding claim, characterized in that the upstream security printed circuit (21) comprises at least one proximity sensor (16k) to detect any presence or action and send a signal to microcontroller (1) for performing an analysis and triggering an action: displaying a welcome or usage message. 18. Utilisation d’un microcontrôleur (1) selon la revendication 17, caractérisé en ce que le circuit imprimé de connexion (22) comprend au moins une interface USB (16a), un port série UART (16i), une interface Ethernet (16j) et une interface Bluetooth (16c)/Wifi (16b) pour la communication et l'échange de données.18. Use of a microcontroller (1) according to claim 17, characterized in that the printed circuit connection (22) comprises at least one USB interface (16a), a UART serial port (16i), an Ethernet interface (16j). ) and a Bluetooth (16c) / Wifi interface (16b) for communication and data exchange.
BE2016/5612A 2016-05-10 2016-07-25 MICROCONTROLLER FOR SAFE STARTING WITH FIREWALL BE1024111B1 (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
EP17170239.2A EP3244376A1 (en) 2016-05-10 2017-05-09 Multimedia payment terminal
EP17170242.6A EP3244377B1 (en) 2016-05-10 2017-05-09 Waterproof terminal for chip cards
ES17170242T ES2927289T3 (en) 2016-05-10 2017-05-09 Waterproof terminal for smart cards
EP17170202.0A EP3244375B1 (en) 2016-05-10 2017-05-09 Microcontroller for secure starting with firewall

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
BE2016/5331 2016-05-10
BE2016/5331A BE1023424B1 (en) 2016-05-10 2016-05-10 SEALED TERMINAL FOR CHIP CARDS
BE2016/5582A BE1023815B1 (en) 2016-05-10 2016-07-12 MULTI-SUPPORT PAYMENT TERMINAL

Publications (2)

Publication Number Publication Date
BE1024111A1 BE1024111A1 (en) 2017-11-16
BE1024111B1 true BE1024111B1 (en) 2017-11-17

Family

ID=55963101

Family Applications (3)

Application Number Title Priority Date Filing Date
BE2016/5331A BE1023424B1 (en) 2016-05-10 2016-05-10 SEALED TERMINAL FOR CHIP CARDS
BE2016/5582A BE1023815B1 (en) 2016-05-10 2016-07-12 MULTI-SUPPORT PAYMENT TERMINAL
BE2016/5612A BE1024111B1 (en) 2016-05-10 2016-07-25 MICROCONTROLLER FOR SAFE STARTING WITH FIREWALL

Family Applications Before (2)

Application Number Title Priority Date Filing Date
BE2016/5331A BE1023424B1 (en) 2016-05-10 2016-05-10 SEALED TERMINAL FOR CHIP CARDS
BE2016/5582A BE1023815B1 (en) 2016-05-10 2016-07-12 MULTI-SUPPORT PAYMENT TERMINAL

Country Status (1)

Country Link
BE (3) BE1023424B1 (en)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060112421A1 (en) * 2004-11-23 2006-05-25 Beierwalters William T Smart card systems and methods for building automation
EP2393070A1 (en) * 2010-06-02 2011-12-07 3M Innovative Properties Company Security system for data receiving unit
JP5915886B2 (en) * 2012-01-30 2016-05-11 カシオ計算機株式会社 Portable information terminal
US9063737B2 (en) * 2012-07-02 2015-06-23 Square, Inc. Wireless card reader with one or more card interfaces
US9767422B2 (en) * 2013-03-12 2017-09-19 Diebold Self-Service Systems, Division Of Diebold, Incorporated Detecting unauthorized card skimmers
JP6274970B2 (en) * 2014-05-26 2018-02-07 日本電産サンキョー株式会社 Printed circuit board and card reader

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
ANONYMOUS: "ARM Security Technology - Building a Secure System using TrustZone", 31 December 2009 (2009-12-31), XP055327499, Retrieved from the Internet <URL:https://web.archive.org/web/20150907104640/http://infocenter.arm.com/help/topic/com.arm.doc.prd29-genc-009492c/PRD29-GENC-009492C_trustzone_security_whitepaper.pdf> [retrieved on 20161208] *
GREG BELLOWS: "Secure resources in device trees", GMANE.COMP.DEVICETREE.SPEC, 20 January 2015 (2015-01-20), XP055327511, Retrieved from the Internet <URL:https://web.archive.org/web/20150915212843/http://permalink.gmane.org/gmane.comp.devicetree.spec/76> [retrieved on 20161208] *
JOEL A FERNANDES: "Flattened Image Trees: A powerful kernel image format", 21 February 2013 (2013-02-21), XP055327512, Retrieved from the Internet <URL:https://web.archive.org/web/20150508014256/http://elinux.org/images/f/f4/Elc2013_Fernandes.pdf> [retrieved on 20161208] *
LESTER SANDERS: "Secure Boot of Zynq-7000 All Programmable SoC", 3 April 2015 (2015-04-03), XP055327503, Retrieved from the Internet <URL:https://web.archive.org/web/20160122140631/http://www.xilinx.com/support/documentation/application_notes/xapp1175_zynq_secure_boot.pdf> [retrieved on 20161208] *
STEVE POPE ET AL: "Guidelines for Designing Secure PCI PED EFT Terminals", 30 July 2007 (2007-07-30), XP055327509, Retrieved from the Internet <URL:https://web.archive.org/web/20071019194218/http://www.embedded.com/columns/technicalinsights/201201913?printable=true> [retrieved on 20161208] *

Also Published As

Publication number Publication date
BE1023815B1 (en) 2017-07-28
BE1024111A1 (en) 2017-11-16
BE1023424B1 (en) 2017-03-15

Similar Documents

Publication Publication Date Title
US11947688B2 (en) Secure computing system
US10162975B2 (en) Secure computing system
Altuwaijri et al. Android data storage security: A review
US8782404B2 (en) System and method of providing trusted, secure, and verifiable operating environment
Smith Trusted computing platforms: design and applications
Parno Bootstrapping Trust in a" Trusted" Platform.
US8335931B2 (en) Interconnectable personal computer architectures that provide secure, portable, and persistent computing environments
US8522018B2 (en) Method and system for implementing a mobile trusted platform module
CN107533609A (en) For the system, apparatus and method being controlled to multiple credible performing environments in system
CN101529366A (en) Identification and visualization of trusted user interface objects
WO2010010258A2 (en) System and method for securing a user interface
US8423783B2 (en) Secure PIN management of a user trusted device
US7805601B2 (en) Computerized apparatus and method for version control and management
WO2009149715A1 (en) Secure link module and transaction system
US20190236591A1 (en) Mobile wallet for digital currency
EP3244375B1 (en) Microcontroller for secure starting with firewall
Türpe et al. Attacking the BitLocker boot process
US7100205B2 (en) Secure attention instruction central processing unit and system architecture
US10951414B2 (en) Method for securing digital currency
BE1024111B1 (en) MICROCONTROLLER FOR SAFE STARTING WITH FIREWALL
Sancho et al. Cashing in on ATM Malware. A Comprehensive Look at Various Attack Types
WO2007060322A2 (en) Method and device for authentication by a user of a trustworthy interface and related computer programme
US11100215B2 (en) Management of a display of a view of an application on a screen of an electronic data entry device, corresponding method, device and computer program product
US20240176634A1 (en) Updating secure guest metadata of a specific guest instance
JP5355351B2 (en) Computer

Legal Events

Date Code Title Description
FG Patent granted

Effective date: 20171117

HC Change of name of the owners

Owner name: WORLDLINE SA/NV; BE

Free format text: DETAILS ASSIGNMENT: CHANGE OF OWNER(S), CHANGEMENT DE NOM DU PROPRIETAIRE, CORRECTION; FORMER OWNER NAME: ATOS WORLDLINE S.A.

Effective date: 20190418

PD Change of ownership

Owner name: INGENICO BELGIUM; BE

Free format text: DETAILS ASSIGNMENT: CHANGE OF OWNER(S), ASSIGNMENT; FORMER OWNER NAME: WORLDLINE SA/NV

Effective date: 20220628