FR2893431A1 - Composant integre securise et procede de securisation associe - Google Patents

Composant integre securise et procede de securisation associe Download PDF

Info

Publication number
FR2893431A1
FR2893431A1 FR0511594A FR0511594A FR2893431A1 FR 2893431 A1 FR2893431 A1 FR 2893431A1 FR 0511594 A FR0511594 A FR 0511594A FR 0511594 A FR0511594 A FR 0511594A FR 2893431 A1 FR2893431 A1 FR 2893431A1
Authority
FR
France
Prior art keywords
register
software task
task
executing
component
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
FR0511594A
Other languages
English (en)
Inventor
Andre Roger
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
STMicroelectronics SA
Original Assignee
STMicroelectronics SA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by STMicroelectronics SA filed Critical STMicroelectronics SA
Priority to FR0511594A priority Critical patent/FR2893431A1/fr
Publication of FR2893431A1 publication Critical patent/FR2893431A1/fr
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1497Details of time redundant execution on a single processing unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1479Generic software techniques for error detection or fault masking
    • G06F11/1487Generic software techniques for error detection or fault masking using N-version programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

L'invention concerne un composant intégré sécurisé comprenant un premier registre et des moyens pour exécuter une première tâche logicielle à partir du contenu du premier registre.Selon l'invention, le composant comprend également :● un deuxième registre,● des moyens pour mémoriser le contenu du premier registre dans le deuxième registre, et● des moyens exécuter une deuxième tâche logicielle à partir du contenu du deuxième registre.L'invention permet ainsi de réaliser dans un composant deux tâches logicielles totalement indépendantes l'une de l'autre.

Description

104546FR / 05-GR2-236 COMPOSANT INTEGRE SECURISE ET PROCEDE DE
SECURISATION ASSOCIE La présente invention concerne d'une manière générale la validation des données produites par un système informatique.
Plus particulièrement, l'invention s'applique au domaine des composants intégrés programmables du type comprenant un premier registre, comme par exemple un registre de réception d'un périphérique, et des moyens tels qu'un système à microprocesseur pour exécuter une première tâche logicielle à partir du contenu du premier registre. Dans le cadre de la présente invention, on entend par périphérique du microprocesseur tout dispositif du circuit intégré programmable distinct de l'unité centrale de traitement (microprocesseur) à laquelle il est relié et qui est susceptible d'assurer l'entrée ou la sortie de données. Il s'agit notamment des périphériques de communication avec l'extérieur du composant intégré. Un inconvénient des périphériques actuels est qu'ils ne sont pas sécurisés. Ainsi, en cas de défaillance logicielle ou matérielle d'un périphérique ou du microprocesseur, une information erronée peut être transmise vers l'extérieur. Or, si une information erronée peut être tolérée pour certaines applications, elle n'est pas acceptable pour des applications pour des applications sensibles. Par exemple, dans le domaine de l'automobile, il n'est pas acceptable qu'un microprocesseur transmette une commande d'activation erronée vers un dispositif de freinage ou vers un dispositif de déclenchement d'un coussin gonflable.
Une solution connue et largement utilisée consiste à mettre en parallèle un deuxième composant intégré, généralement identique au premier, parfois appelé "watchdog", dont la fonction principale est de surveiller les informations émises et / ou reçues par le premier composant intégré, et de signaler un défaut éventuel. Le deuxième composant intégré réalise généralement les mêmes fonctions que le premier, puis compare ses résultats avec des résultats produits par le premier composant avant de signaler ou non une erreur. Cette solution est certes efficace, mais elle est particulièrement chère à mettre en oeuvre dans la mesure où elle entraîne l'utilisation d'un deuxième composant intégré, susceptible de réaliser les mêmes fonctions. L'invention a pour but essentiel de proposer une nouvelle solution, beaucoup plus pratique et moins onéreuse que la solution connue.
Ce but est atteint avec un composant comprenant, de même qu'un composant connu, un premier registre et des moyens pour exécuter une première tâche logicielle à partir du contenu du premier registre. composant intégré comprend
registre, pour mémoriser le contenu du premier le deuxième registre, et exécuter une deuxième tâche logicielle à 25 partir du contenu du deuxième registre. L'invention concerne également un procédé de sécurisation d'un composant intégré programmable comprenant un premier registre et un système à microprocesseur. De même qu'un procédé connu, le procédé selon l'invention comprend les 30 étapes suivantes, consistant à : • mémoriser des données d'entrée dans le premier registre, v Selon l'invention, le également : • un deuxième • des moyens registre dans • des moyens • exécuter, par le système à microprocesseur, une première tâche logicielle à partir du contenu du premier registre. Le procédé selon l'invention se différencie des procédés connus en ce qu'il comprend les étapes suivantes consistant à : • mémoriser le contenu du premier registre dans un deuxième registre, • exécuter une deuxième tâche logicielle à partir du contenu du deuxième registre. Ainsi, l'idée essentielle de l'invention est de dupliquer une partie des informations reçues en entrée du composant, et notamment les données d'entrée mémorisées dans un premier registre tel que par exemple un registre de réception d'un port de communication du composant, afin de faire exécuter par le composant deux tâches logicielles de manière totalement indépendantes l'une de l'autre. On pourra prévoir éventuellement, en fonction des besoins des applications choisies, de dupliquer d'autres informations comme par exemple des signaux de commande tels que des signaux d'interruption. Les deux tâches logicielles étant exécutées de manière indépendante, une défaillance logicielle de l'une des tâches pourra être repérée par l'autre tâche. Ainsi, avec un composant selon l'invention, il n'est plus nécessaire d'utiliser un composant parallèle pour détecter une éventuelle défaillance. La deuxième tâche exécutée par le composant est ainsi en quelque sorte une tâche de surveillance de l'exécution de la première tâche.
L'invention sera mieux comprise et d'autres caractéristiques et avantages apparaîtront à la lecture de la description qui va suivre, d'un exemple de mise en oeuvre d'un composant intégré selon l'invention. La description, faite à titre indicatif et nullement limitatif, est à lire en relation au dessin annexé dans lequel la figure unique est un schéma de principe d'un composant intégré selon l'invention.
A titre d'exemple d'application, le composant selon l'invention et son fonctionnement vont être décrit dans le cadre d'un composant utilisé pour le déclenchement d'un coussin gonflable dans un véhicule. Bien sûr, l'invention n'est pas limitée à cet exemple particulier. Comme dit précédemment, l'invention concerne un composant intégré 100, comprenant notamment un premier registre 110 et des moyens 120 pour exécuter une première tâche logicielle à partir du contenu du premier registre.
Dans l'exemple choisi, le premier registre est un premier registre de réception de données d'un port d'entrée du composant intégré ; le dit port est destiné à recevoir des données externes, fournies par exemple par des capteurs de mesure 112 aptes à mesurer par exemple des accélérations ou des décélérations brutales associées à un choc, ou bien des instructions telles qu'une instruction d'activation, d'interruption, etc. fournies par des dispositifs externes 114. Le premier registre sert ainsi à mémoriser des données d'entrée, ou plus généralement des informations telles que des données ou des instructions, nécessaires à l'exécution de la première tâche logicielle. Eventuellement, le premier registre peut également comprendre un premier registre d'état pour mémoriser un signal d'interruption nécessaire à la mise en oeuvre de la première tâche logicielle. Les moyens pour exécuter la première tâche logicielle sont par exemple un système comprenant notamment un microprocesseur et une mémoire de programme dans laquelle est mémorisée la première tâche logicielle sous forme de lignes d'instructions à exécuter. Ils peuvent comprendre également un port de sortie 140, notamment pour fournir à l'extérieur du composant un résultat issu de la première tâche logicielle. La première tâche logicielle est une suite d'instructions, permettant de déterminer, dans l'exemple choisi et en fonction des données d'entrée reçues dans le premier registre, si un coussin gonflable doit être déclenché ou non, et de fournir ce résultat de type oui/non à un dispositif externe de déclenchement d'un coussin gonflable. La première tâche logicielle est connue et utilisée dans les composants actuels. Le composant selon l'invention est caractérisé en ce qu'il comprend également : • un deuxième registre 130, • des moyens (non représentés) pour mémoriser le contenu du premier registre 110 dans le deuxième registre 130, et • des moyens 140 pour exécuter une deuxième tâche logicielle à partir du contenu du registre 130. Le deuxième registre est dans un exemple de réalisation, une zone dédiée d'une mémoire de données du composant. Le deuxième registre comprend un deuxième registre de données et éventuellement un deuxième registre de d'état. Le deuxième registre est utilisé pour dupliquer le contenu (données et éventuellement signal d'interruption) mémorisé dans le premier registre. Les moyens pour exécuter la deuxième tâche logicielle sont dans un exemple les moyens 120 prévus également pour réaliser la première tâche logicielle. Dans ce cas, les deux tâches sont réalisées successivement. Dans un autre exemple, les moyens pour réaliser la deuxième tâche logicielle sont des moyens 140 différents mais similaires des moyens 120, ils vont comprendre également un processeur dédié et des ressources telles que une mémoire, un port de sortie, etc. Dans ce cas, les moyens pour exécuter la première tâche logicielle et les moyens pour exécuter la deuxième tâche logicielle sont deux systèmes à microprocesseur exécutant les deux tâches en parallèle. Le ou les systèmes à microprocesseur peuvent comprendre un microprocesseur, au moins une mémoire de travail et au moins un périphérique de sortie et / ou d'entrée. La deuxième tâche logicielle est en quelque sorte une tâche de surveillance, elle comprend une série d'instructions pour vérifier que la première tâche logicielle est exécutée correctement et / ou que le résultat que la première tâche produit est vraisemblable, en fonction des données d'entrée. Après exécution de la deuxième tâche logicielle de surveillance, on peut produire une information de type oui/non.
Dans un exemple, la deuxième tâche logicielle est strictement identique à la première tâche et elle comprend la même série d'instructions. Dans ce cas, le composant comprend de préférence également des moyens pour comparer un résultat produit par la deuxième tâche logicielle avec un résultat produit par la première tâche logicielle, et des moyens pour produire un signal d'alerte si le résultat de la comparaison est supérieur à une valeur prédéfinie, par exemple de l'ordre de quelques pourcents ou quelques dizaines de pourcents. Les deux tâches étant identiques, et les données d'entrée étant identiques (puisque le premier registre et son contenu ont été dupliqués à l'identique), les résultats fournis par les deux tâches devraient être identiques, à moins d'une défaillance dans l'exécution de l'une des tâches, ce qui est signalé par le signal d'alerte le cas échéant.
Dans un autre exemple, la deuxième tâche logicielle réalise la même fonction que la première tâche, mais elle comprend une série d'instructions différente (c'est le cas par exemple si on utilise deux algorithmes différents produisant soit le même résultat, soit deux résultats différents mais cohérents entre eux. Dans ce cas, le composant comprend de préférence également des moyens pour vérifier qu'un résultat produit par la deuxième tâche logicielle et un résultat produit par la première tâche logicielle sont cohérents entre eux, à quelques pourcent près. Les deux tâches étant identiques, et les données d'entrée étant identiques (puisque le premier registre et son contenu ont été dupliqués à l'identique), les résultats fournis par les deux tâches devraient être identiques ou cohérents, à moins d'une défaillance dans l'exécution de l'une des tâches, ce qui est signalé par le signal d'alerte le cas échéant. Dans un autre exemple, la deuxième tâche logicielle comprend une série d'instructions visant à déterminer, en fonction des données d'entrée, si certaines conditions sont réunies pour que le résultat de la première tâche soit positif (c'est-à-dire dans l'application choisie pour que la première tâche commande le gonflement du coussin). Dans l'application choisie, la deuxième tâche peut par exemple déterminer si la valeur absolue de la décélération mesurée par un capteur de choc est inférieure à une valeur minimale. La deuxième tâche est dans ce cas différente de la première, et on prévoit de préférence dans le composant des moyens (par exemple le port de sortie 160) pour autoriser ou non la transmission à l'extérieur (ou l'utilisation à l'extérieur) d'un résultat produit par la première tâche logicielle, en fonction d'un résultat produit par la deuxième tâche logicielle.35

Claims (13)

REVENDICATIONS
1. Composant intégré comprenant un premier registre et des moyens pour exécuter une première tâche logicielle à partir du contenu du premier registre, le composant étant caractérisé en ce qu'il comprend également • un deuxième registre, • des moyens pour mémoriser le contenu du premier registre dans le deuxième registre, et • des moyens exécuter une deuxième tâche logicielle à partir du contenu du deuxième registre.
2. Composant intégré selon la revendication 1, comprenant également des moyens pour comparer un résultat produit par la deuxième tâche logicielle avec un résultat produit par la première tâche logicielle, et des moyens pour produire un signal d'alerte si le résultat de la comparaison est supérieur à une valeur prédéfinie.
3. Composant intégré selon la revendication 2, comprenant également des moyens pour autoriser ou non la transmission à l'extérieur d'un résultat produit par la première tâche logicielle, en fonction d'un résultat produit par la deuxième tâche logicielle.
4. Composant selon l'une des revendications 1 à 3 dans lequel les moyens pour exécuter la première tâche logicielle et les moyens pour exécuter la deuxième tâche logicielle sont un unique système à microprocesseur exécutant les deux tâches successivement.
5. Composant selon l'une des revendications 1 à 4 dans lequel les moyens pour exécuter la première tâche logicielle et les moyens pour exécuter la deuxième tâche logicielle sont deux systèmes à microprocesseur exécutant les deux tâches en parallèle.
6. Composant selon la revendication 4 à 5, dans lequel le ou les systèmes à microprocesseur comprennent un microprocesseur, au moins une mémoire de travail et au moins un périphérique de sortie et / ou d'entrée.
7. Composant selon l'une des revendications précédentes, dans lequel le premier registre est un registre de réception d'un périphérique de communication du composant.
8. Composant selon l'une des revendications précédentes, dans lequel le deuxième registre est une zone d'une mémoire du composant.
9. Procédé de sécurisation d'un composant intégré programmable comprenant un premier registre et un système à microprocesseur, le procédé comprenant les étapes suivantes, consistant à : • mémoriser des données d'entrée dans le premier registre, • exécuter, par le système à microprocesseur, une première tâche logicielle à partir du contenu du premier registre, le dit procédé étant caractérisé en ce qu'il comprend les étapes suivantes consistant à : • mémoriser le contenu du premier registre dans un deuxième registre, • exécuter une deuxième tâche logicielle à partir du contenu du deuxième registre.
10. Procédé selon la revendication 9 au cours duquel, après exécution de la deuxième tâche logicielle de surveillance, on produit une information de type oui/non.
11. Procédé selon la revendication 1 au cours duquel, après exécution de la deuxième tâche logicielle de surveillance, on autorise ou non la transmission d'un résultat produit par la première tâche logicielle.
12. Procédé selon l'une des revendications 9 à 11 au cours duquel, la tâche logicielle de surveillance est exécutée par un deuxième système à microprocesseur en parallèle de la première tâche logicielle.
13. Procédé selon l'une des revendications 9 à 11, au cours duquel la première tâche logicielle et la deuxième tâche logicielle sont réalisées successivement par un même système à microprocesseur.
FR0511594A 2005-11-16 2005-11-16 Composant integre securise et procede de securisation associe Pending FR2893431A1 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR0511594A FR2893431A1 (fr) 2005-11-16 2005-11-16 Composant integre securise et procede de securisation associe

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR0511594A FR2893431A1 (fr) 2005-11-16 2005-11-16 Composant integre securise et procede de securisation associe

Publications (1)

Publication Number Publication Date
FR2893431A1 true FR2893431A1 (fr) 2007-05-18

Family

ID=36590168

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0511594A Pending FR2893431A1 (fr) 2005-11-16 2005-11-16 Composant integre securise et procede de securisation associe

Country Status (1)

Country Link
FR (1) FR2893431A1 (fr)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2927436A1 (fr) * 2008-02-12 2009-08-14 Ingenico Sa Procede de securisation d'un programme informatique, dispositif, procede de mise a jour et serveur de mise a jour correspondants.
EP3138019A4 (fr) * 2014-04-30 2018-01-17 Pivotal Software, Inc. Validation de résultats d'analyse

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4864202A (en) * 1986-11-14 1989-09-05 Robert Bosch Gmbh Method and apparatus for monitoring the operation of a computer-controlled operating element, particularly triggered safety apparatus for an automotive vehicle
US5243607A (en) * 1990-06-25 1993-09-07 The Johns Hopkins University Method and apparatus for fault tolerance
US5359515A (en) * 1989-06-29 1994-10-25 Robert Bosch Gmbh Vehicle occupant safety system and method for operating the same
US5920715A (en) * 1995-02-10 1999-07-06 Pilz Gmbh & Co. System architecture permitting verified and unverified programs to execute safely on one processor
US6819992B1 (en) * 1999-10-05 2004-11-16 Autoliv Development Ab Vehicle safety arrangement

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4864202A (en) * 1986-11-14 1989-09-05 Robert Bosch Gmbh Method and apparatus for monitoring the operation of a computer-controlled operating element, particularly triggered safety apparatus for an automotive vehicle
US5359515A (en) * 1989-06-29 1994-10-25 Robert Bosch Gmbh Vehicle occupant safety system and method for operating the same
US5243607A (en) * 1990-06-25 1993-09-07 The Johns Hopkins University Method and apparatus for fault tolerance
US5920715A (en) * 1995-02-10 1999-07-06 Pilz Gmbh & Co. System architecture permitting verified and unverified programs to execute safely on one processor
US6819992B1 (en) * 1999-10-05 2004-11-16 Autoliv Development Ab Vehicle safety arrangement

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2927436A1 (fr) * 2008-02-12 2009-08-14 Ingenico Sa Procede de securisation d'un programme informatique, dispositif, procede de mise a jour et serveur de mise a jour correspondants.
EP2090984A1 (fr) * 2008-02-12 2009-08-19 Compagnie Industrielle et Financiere d'Ingenierie "Ingenico" Procédé de sécurisation d'un programme informatique, dispositif, procédé de mise à jour et serveur de mise à jour correspondants
EP3138019A4 (fr) * 2014-04-30 2018-01-17 Pivotal Software, Inc. Validation de résultats d'analyse

Similar Documents

Publication Publication Date Title
CN110300686B (zh) 数据分析装置及存储介质
EP3183621B1 (fr) Calculateur de direction assistée pourvu d'un enregistreur d'événements integré
FR2685966A1 (fr) Circuit d'interfacage de calculateur pour un equipement de maintenance de vehicule automobile.
US11899785B2 (en) Method for detecting an unauthorized physical access to a bus system
CN111932046A (zh) 一种服务场景下处理风险的方法、计算机设备、存储介质
CA3135956A1 (fr) Systeme de surveillance de la sante d'un helicoptere
US20230229762A1 (en) Anomaly detection device and anomaly detection method
FR2926377A1 (fr) Circuit et procede de traitement d'erreurs dans des systemes fonctionnant en temps reel
CN112445667A (zh) 一种检测方法、装置、计算机设备及存储介质
KR101557283B1 (ko) 차량 주행 거리 조작 검출 장치 및 그 방법
JP2020047086A (ja) 車両用監視装置
FR2893431A1 (fr) Composant integre securise et procede de securisation associe
FR3025886A1 (fr) Systeme et procede de controle de pieces
KR20160062259A (ko) 차량 이상 상태를 관리하기 위한 방법, 시스템 및 컴퓨터 판독 가능한 기록매체
FR3088909A1 (fr) Procédé et système de sécurisation d’un aéronef contre les cyberattaques
FR2714506A1 (fr) Procédé de gestion de la maintenance d'un véhicule, ordinateur de bord et station de diagnostic associés mettant en Óoeuvre le procédé.
EP3744601B1 (fr) Système informatique avec mécanisme de détection de comportement de conducteur et son procédé de fonctionnement
FR2916290A1 (fr) Systeme de selection d'une donnee representative d'un parametre de l'air, procede et programme d'ordinateur associes
WO2020059807A1 (fr) Dispositif de surveillance de véhicule
WO2017178550A1 (fr) Procédé de contrôle d'intégrité de l'avionique d'un aéronef, dispositif et produit programme d'ordinateur associés
CN111145386A (zh) 一种基于区块链管理行车电脑数据的方法、设备及介质
US20090240393A1 (en) Methods, program products, and systems for controlling for improper installation of vehicle sensors
FR3091400A1 (fr) Procédé et dispositifs de calcul d'un indice de responsabilité d’un conducteur de véhicule
JP2020047088A (ja) 車両用監視装置
CN114936113B (zh) 一种任务雪崩恢复方法、装置、电子设备及存储介质