FR3072195B1 - Procede de gestion d'un retour de produit pour analyse et produit correspondant - Google Patents
Procede de gestion d'un retour de produit pour analyse et produit correspondant Download PDFInfo
- Publication number
- FR3072195B1 FR3072195B1 FR1759500A FR1759500A FR3072195B1 FR 3072195 B1 FR3072195 B1 FR 3072195B1 FR 1759500 A FR1759500 A FR 1759500A FR 1759500 A FR1759500 A FR 1759500A FR 3072195 B1 FR3072195 B1 FR 3072195B1
- Authority
- FR
- France
- Prior art keywords
- integrated circuit
- debugging
- password
- bit
- value
- 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.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/31719—Security aspects, e.g. preventing unauthorised access during test
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/31705—Debugging aspects, e.g. using test circuits for debugging, using dedicated debugging test circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3648—Software debugging using additional hardware
- G06F11/3656—Software debugging using additional hardware using a specific debug interface
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting 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/75—Protecting 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 by inhibiting the analysis of circuitry or operation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Mathematical Physics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Storage Device Security (AREA)
- Semiconductor Integrated Circuits (AREA)
Abstract
Le produit (P) comporte un circuit intégré possédant un port d'accès de test conforme par exemple à la norme JTAG, un mode d'amorçage avec interdiction de débogage (ETAM) et un mode d'analyse avec autorisation de débogage (ETAL). Le procédé comprend, lorsque le circuit intégré n'a jamais été placé dans son mode d'analyse avec autorisation de débogage (ETAL), un placement du circuit intégré dans son mode d'amorçage avec interdiction de débogage (ETAM), en réponse à chaque réinitialisation ou mise sous tension (S1) du circuit intégré et en absence de réception sur le port d'accès de test d'une première commande assortie d'un premier mot de passe valide, et un placement du circuit intégré dans son mode d'analyse avec autorisation de débogage (ETAL), en présence d'une réception sur le port d'accès de test, de ladite première commande assortie du premier mot de passe valide à la suite d'une réinitialisation ou d'une mise sous tension (S1), ce placement étant maintenu au moins tant que l'on n'a pas reçu sur ledit port d'accès une deuxième commande assortie d'un deuxième mot de passe valide.
Description
Procédé de gestion d’un retour de produit pour analyse et produit correspondant
Des modes de mise en œuvre et de réalisation de l’invention concernent les matériels ou produits comportant au moins un circuit intégré, par exemple un système sur puce (« System on Chip »), et plus particulièrement la gestion de l’analyse de tels matériels retournés (RMA : Return Material Analysis) après que l’utilisateur ait par exemple constaté des anomalies de fonctionnement, cette analyse comportant typiquement un ou plusieurs débogages (« debugging »).
Des modes particuliers de mise en œuvre et de réalisation de l’invention visent notamment, lorsque le circuit intégré comporte des données sensibles, par exemple des clés de cryptage/décryptage, à autoriser l’analyse par une tierce partie (par exemple le concepteur et/ou le fabricant du circuit intégré) différente de l’utilisateur du circuit intégré, en préservant le caractère confidentiel et inaccessible de ces données sensibles.
Dans certains cas, des pièces ou produits, comportant par exemple des systèmes sur puce, sont, après fabrication, livrées à un utilisateur final qui peut y incorporer des données sensibles, par exemple des clés de cryptographie ou encore des secrets qui lui sont propres.
Cet utilisateur final lorsqu’il veut préserver les données sensibles contenues dans la pièce, a la possibilité de la basculer dans un état dit « fermé ». Dans cet état, les données sensibles et/ou secrets restent accessibles mais uniquement de manière très contrôlée (par exemple en utilisant un code sécurisé d’amorçage du processeur du système sur puce et/ou une authentification de ce code) lors de l’exécution sur le processeur de l’application de l’utilisateur final.
Or, certaines de ces pièces, y compris des pièces « fermées », peuvent être sujettes à des dysfonctionnements. Et pour analyser une pièce « fermée », il est nécessaire préalablement d’ouvrir la possibilité de débogage.
En effet l’analyse de pannes utilise généralement un outil de débogage qui va permettre de sonder et d’envoyer des motifs de test à différents composants du système sur puce de façon à essayer de trouver la cause du dysfonctionnement.
Dans l’état « fermé » d’une pièce, l’ouverture du débogage peut être effectuée lors de l’exécution de l’application de l’utilisateur final, si le code programme de cette application prévoit cette possibilité d’ouverture.
Cela nécessite donc l’exécution de cette application au niveau de l’utilisateur final.
Or l’utilisateur final peut décider de confier l’analyse de pannes (qui va nécessiter une ouverture du débogage) à un tiers, par exemple au fabricant et/ou au concepteur du produit.
Il existe alors un besoin d’offrir la possibilité de placer un produit, initialement dans un état « fermé », dans un mode dans lequel on autorise sous certaines conditions d’ouvrir la possibilité de débogage, tout en préservant le cas échéant la confidentialité des données sensibles et/ou secrets, mais indépendamment de l’application de l’utilisateur final, c'est-à-dire sans qu’il soit nécessaire d’exécuter cette application.
Par ailleurs, il existe un besoin, indépendamment de la présence ou non de données sensibles dans le système sur puce à analyser, de faciliter l’accès au mode de débogage.
Enfin, il peut être intéressant, quoique non indispensable, d’offrir la possibilité à l’utilisateur final de récupérer son produit, une fois analysé et éventuellement réparé, dans un état « fermé », identique à l’état dans lequel se trouvait le produit avant analyse, mais en interdisant alors toute nouvelle possibilité d’analyse par une tierce partie.
En d’autres termes, un tel produit restauré à l’état « fermé » ne peut alors plus faire l’objet d’une quelconque analyse par débogage par le fabricant lui-même par exemple.
Des modes de mise en œuvre et de réalisation de l’invention visent à répondre à ces besoins.
Ainsi il est proposé, selon des modes de mise en œuvre et de réalisation, d’autoriser sous certaines conditions et de façon contrôlée, l’ouverture d’un débogage d’un produit d’un utilisateur final, sans qu’il soit nécessaire d’exécuter une application de l’utilisateur final.
Il est également proposé en particulier d’autoriser une telle ouverture de débogage sur un produit « fermé » contenant des données sensibles et/ou secrets, en préservant lors de l’ouverture du débogage et pendant le débogage, la confidentialité de ces données sensibles et/ou secrets, par exemple en les rendant inaccessibles.
Et il est également avantageusement proposé que cette ouverture contrôlée du débogage, avec le cas échéant préservation de confidentialité des données sensibles et/ou secrets, puissent être effectuées chez l’utilisateur final avant que celui-ci ne retourne le produit pour analyse, ou bien chez le fabricant ou le concepteur qui reçoivent le produit dans son état « fermé ». A ces égards, il est proposé, selon des modes de mise en œuvre et de réalisation, d’utiliser, en combinaison, un mécanisme matériel, des moyens de mémoire du type à écriture unique (mémoire OTP par exemple (OTP : « One Time Programmable »)) et des instructions de programme incorporées dans la mémoire morte d’amorçage (boot ROM) associée à l’unité centrale du système sur puce.
Par ailleurs, selon un mode de mise en œuvre, ce procédé de gestion de retour d’un produit pour analyse est mis en œuvre avantageusement à chaque réinitialisation (reset) ou mise sous tension du circuit intégré et l’activation de ce procédé est toujours accessible via avantageusement un port d’accès de test, par exemple conforme à la norme JTAG.
Selon un aspect, il est ainsi proposé un procédé de gestion de retour d’un produit pour analyse, le produit (par exemple un composant) comportant un circuit intégré, par exemple un système sur puce, possédant un port d’accès de test, par exemple conforme à la norme JTAG, un mode d’amorçage avec interdiction de débogage et un mode d’analyse avec autorisation de débogage.
Le procédé selon cet aspect comprend, lorsque le circuit intégré n’a jamais été placé dans son mode d’analyse avec autorisation de débogage, a) un placement du circuit intégré dans son mode d’amorçage avec interdiction de débogage en réponse à chaque réinitialisation ou mise sous tension du circuit intégré et en absence de réception sur le port d’accès de test d’une première commande assortie d’un premier mot de passe valide, et, b) un placement du circuit intégré dans son mode d’analyse avec autorisation de débogage, en présence d’une réception sur le port d’accès de test, de ladite première commande assortie du premier mot de passe valide à la suite d’une réinitialisation ou d’une mise sous tension, ce placement étant maintenu au moins tant que l’on n’a pas reçu sur ledit port d’accès une deuxième commande assortie d’un deuxième mot de passe valide.
En d’autres termes, si le circuit intégré n’a jamais été placé dans son mode d’analyse avec autorisation de débogage, alors on peut placer ce circuit intégré dans son mode d’analyse avec autorisation de débogage sous certaines conditions.
Il convient de noter ici, comme on le rappellera en détail ci-après, que, selon un mode préféré de mise en œuvre, si le circuit intégré a déjà été placé dans son mode d’analyse avec autorisation de débogage et qu’il est revenu dans un mode d’amorçage avec interdiction de débogage après que l’analyse a été faite, il n’est alors plus possible de le placer de nouveau dans un mode d’analyse avec autorisation de débogage.
Cela étant il serait également possible, dans certaines applications, d’autoriser au moins une répétition des étapes a) et b) à la suite du retour de la pièce dans son état restauré.
Et, le placement du circuit intégré dans son mode d’analyse avec autorisation de débogage n’est possible que lorsque l’on reçoit sur le port d’accès de test une première commande assortie d’un premier mot de passe valide. Par ailleurs, tant que Ton ne reçoit pas une deuxième commande assortie d’un deuxième mot de passe valide, on maintient le circuit intégré dans son mode d’analyse avec autorisation de débogage, même si ce circuit intégré doit être réinitialisé, éteint et remis sous tension.
Ainsi, l’accès au mode d’analyse avec autorisation de débogage est facilité en ce sens qu’il n’est pas nécessaire à chaque réinitialisation ou chaque mise sous tension de renvoyer un mot de passe pour pouvoir replacer le circuit intégré dans le mode d’analyse avec autorisation de débogage.
Cette facilité d’accès au mode d’analyse avec autorisation de débogage est particulièrement intéressante lorsque la mise en œuvre des étapes a) et b), est effectuée chez l’utilisateur du système, car c’est lui qui délivre alors le premier mot de passe valide, ce qui lui permet de restituer au fabricant ou au concepteur, un système avec débogage ouvert, sans que le fabricant ou le concepteur n’ait à se préoccuper de rentrer un quelconque mot de passe à chaque mise sous tension ou réinitialisation du système.
Cela étant, même si en général la mise en œuvre des étapes a) et b) est préférentiellement effectuée chez l’utilisateur du système, cette mise en œuvre pourrait aussi être effectuée si nécessaire chez le fabricant ou le concepteur, à condition que ceux-ci aient connaissance du premier mot de passe valide.
Selon un mode de mise en œuvre, il est possible, mais non indispensable, que l’étape b) comprenne à la suite de ladite réinitialisation ou mise sous tension du circuit intégré, une première sous étape bl) de placement du circuit intégré dans un mode d’attente avec interdiction de débogage, et une deuxième sous étape b2) de placement du circuit intégré dans son mode d’analyse avec autorisation de débogage, cette deuxième sous étape b2) n’étant effectuée qu’à la suite de chaque réinitialisation ou mise sous tension suivante du circuit intégré.
En d’autres termes, alors qu’il aurait été possible de placer le circuit intégré dans son mode d’analyse avec autorisation de débogage à la suite de la première réinitialisation ou mise sous tension du circuit intégré, on choisit ici de passer par une étape intermédiaire (la première sous étape bl)), c’est-à-dire par un mode d’attente avec interdiction de débogage, et de n’autoriser le débogage qu’à la suite de la réinitialisation ou de la mise sous tension suivante et à la suite de chaque réinitialisation ou mise sous tension suivante.
La mise en œuvre de cette première sous étape bl) conduisant à un placement dans un mode d’attente permet de simplifier le nombre d’états et de chemins à valider dans le flot des instructions de programme contenues dans la mémoire d’amorçage et permet de forcer le passage par une réinitialisation ou une mise sous tension, ce qui est un moyen simple d’être sûr de repartir d’un état « propre » et de garantir qu’aucune valeur confidentielle ne subsiste dans des registres volatils accessibles, ce qui est particulièrement intéressant dans le cas où le circuit intégré comporte des données sensibles à protéger.
Que l’on mette en œuvre ou non la première sous étape bl), l’étape b) comprend avantageusement au moins une comparaison du premier mot de passe reçu avec un premier mot de passe de référence stocké dans des premiers moyens de mémoire.
En pratique ce premier mot de passe de référence a été stocké par l’utilisateur final du produit.
Et, en cas de succès de ladite au moins une comparaison, le premier mot de passe est alors considéré comme valide.
Et si le premier mot de passe est considéré comme valide, alors on effectue un stockage d’un premier bit de référence ayant une première valeur logique de référence dans des moyens de mémoire du type à écriture unique.
En pratique, on peut autoriser plusieurs, par exemple trois essais, pour déterminer si le mot de passe reçu est valide ou invalide. En d’autres termes, on peut autoriser par exemple trois comparaisons successives avec trois mots de passe reçus successifs.
Par ailleurs, dès que le mot de passe est considéré comme valide, on stocke un premier bit de référence avec une première valeur logique de référence, par exemple la valeur logique 1, dans les moyens de mémoire du type à écriture unique, c’est-à-dire qu’on effectue ce stockage de façon permanente. Et, c’est ce premier bit de référence avec sa première valeur logique de référence qui va être significatif d’un passage à venir dans le mode d’analyse avec autorisation de débogage ou bien significatif d’un passage antérieur dans le mode d’analyse avec autorisation de débogage. L’autorisation ou l’interdiction de débogage comprend par exemple la vérification de la valeur logique d’au moins un bit de contrôle. Ce bit de contrôle peut être par exemple un bit autorisant le test de la puce et qu’on peut par exemple désigner sous l’abréviation TESTen (« Test enable »).
Ainsi, ladite interdiction de débogage correspond à une première valeur logique de contrôle dudit au moins un bit de contrôle, par exemple la valeur logique 0, tandis que l’autorisation de débogage correspond à une deuxième valeur logique de contrôle, par exemple la valeur 1, dudit au moins un bit de contrôle.
En d’autres termes, tant que ce bit de contrôle a la valeur 0, seul l’accès au premier contrôleur JTAG (dans le cas où le port d’accès de test est conforme à la norme JTAG) de la chaîne de test utilisée dans le protocole JTAG, est possible mais la propagation des instructions de test vers les autres contrôleurs JTAG de la chaîne est interdite.
Par contre, lorsque le bit de contrôle prend la valeur 1, alors on ouvre la chaîne et on peut procéder au débogage de certains au moins des éléments du circuit intégré via les autres contrôleurs de la chaîne de test, par exemple la chaîne de test JTAG.
Bien entendu, plusieurs bits de contrôle peuvent être affectés à l’autorisation ou l’interdiction de débogage.
Ainsi, selon un mode de mise en œuvre, à la suite de chaque réinitialisation ou mise sous tension du circuit intégré, on confère audit au moins un bit de contrôle ladite première valeur logique de contrôle, typiquement la valeur 0, et on maintient cette première valeur logique de contrôle dans le mode d’amorçage avec interdiction de débogage.
Lorsque dans l’étape b) ci-dessus, on met en œuvre la première sous étape bl) et la deuxième sous étape b2) mentionnées ci-avant, on peut alors maintenir cette première valeur logique de contrôle (la valeur 0 par exemple) dans la première sous étape bl) pour interdire le débogage tandis que dans la deuxième sous étape b2), on confère audit au moins un bit de contrôle la deuxième valeur logique de contrôle pour autoriser le débogage.
Selon un mode de mise en œuvre, permettant la restauration du produit dans son état « fermé » après analyse, on effectue, à la réception sur ledit port d’accès de ladite deuxième commande assortie du deuxième mot de passe valide, une comparaison du deuxième mot de passe reçu avec un deuxième mot de passe de référence stocké dans les premiers moyens de mémoire et, en cas de succès de la comparaison, le deuxième mot de passe est considéré comme valide.
On stocke alors dans les moyens de mémoire du type à écriture unique un deuxième bit de référence ayant une deuxième valeur logique de référence.
Ainsi, tout comme pour autoriser le passage dans le mode d’analyse avec autorisation de débogage, on utilise, pour restaurer le produit dans son état fermé, un deuxième mot de passe, qui peut être identique au ou différent du premier mot de passe, et là encore, on peut autoriser plusieurs, par exemple trois, essais pour effectuer la comparaison avec le deuxième mot de passe de référence stocké dans les moyens de mémoire du type à écriture unique.
Et, tout comme pour marquer le passage du circuit intégré vers son mode d’analyse avec autorisation de débogage, on stocke de façon permanente dans un emplacement des moyens de mémoire du type à écriture unique, un deuxième bit de référence avec une deuxième valeur logique de référence, par exemple la valeur 1, de façon à signifier que le circuit intégré va être restauré dans son état « fermé » après son analyse.
Et, ceci va permettre d’interdire ultérieurement tout nouveau cycle d’analyse puis de retour vers l’état « fermé ». Là encore, selon un mode de mise en œuvre, dans le but notamment de limiter le nombre d’états dans les instructions de programme de la mémoire d’amorçage, après avoir stocké dans les moyens de mémoire du type à écriture unique, le deuxième bit de référence affecté de sa deuxième valeur logique de référence, on place le circuit intégré dans un mode d’attente avec interdiction de débogage et on vérifie après la réinitialisation ou la mise sous tension suivante du circuit intégré que le deuxième bit de référence a bien sa deuxième valeur logique de référence, et si tel est le cas, on place alors le circuit intégré dans son mode d’amorçage avec interdiction de débogage.
Et, là encore, dans le mode d’attente avec interdiction de débogage, on maintient avantageusement la première valeur logique de contrôle pour ledit au moins un bit de contrôle (par exemple le bit TESTen).
Lorsque le circuit intégré contient des données sensibles, par exemple des clés de cryptage/décryptage ou des secrets de l’utilisateur, il est préférable de verrouiller encore davantage le processus de gestion d’analyse de façon à ce que ces données sensibles et/ou secrets ne puissent pas être accessibles lors de l’analyse avec débogage.
Ceci est particulièrement intéressant lorsque l’ouverture du débogage est effectuée chez l’utilisateur, car le procédé offre à l’utilisateur du système la certitude de pouvoir restituer au fabricant ou au concepteur, un système avec débogage ouvert mais avec les données sensibles et/ou les secrets inaccessibles par un tiers.
Bien entendu le procédé offre cet avantage de préservation des secrets, même si le procédé est mis en œuvre chez le fabricant ou le concepteur. A cet égard, le circuit intégré comporte une unité centrale, un module mémoire contenant les premiers moyens de mémoire et les moyens de mémoire du type à écriture unique, et des registres volatils, par exemple désignés sous l’expression « registres fantômes » (« shadow registers ») volatils associés au module mémoire, accessibles par l’unité centrale du circuit intégré et destinés à être chargés par une partie au moins de contenu du module mémoire.
En d’autres termes, l’unité centrale va lire et/ou écrire dans ces registres volatils au lieu d’accéder directement au module mémoire.
Les premiers moyens de mémoire peuvent être ou non du type à écriture unique.
Selon un mode de mise en œuvre, le placement dans le mode d’analyse avec autorisation de débogage comprend, avant d’autoriser le débogage, un effacement du contenu des registres volatils et une inhibition de lecture des registres volatils, d’écriture dans les registres volatils et de rechargement des registres volatils.
De cette façon, les secrets et données sensibles restent présents dans les premiers moyens de mémoire mais ne sont plus accessibles par l’unité centrale via les registres volatils.
Selon un mode de mise en œuvre, ladite inhibition est contrôlée par le passage d’une première valeur logique à une deuxième valeur logique d’au moins un bit d’inhibition. Et lorsque ledit au moins un bit d’inhibition est passé de sa première valeur logique à sa deuxième valeur logique, seule une réinitialisation ou une mise sous tension du circuit intégré fait retourner ledit au moins un bit d’inhibition vers sa première valeur logique.
Bien entendu, la première valeur logique et la deuxième valeur logique dépendent de l’implémentation matérielle de cette fonction d’inhibition.
Ainsi, selon un mode de mise en œuvre, lorsque les premiers moyens de mémoire comportent des emplacements mémoires stockant des données sensibles incluant le premier mot de passe de référence, et que les moyens de mémoire du type à écriture unique comportent un premier emplacement mémoire stockant le premier bit de référence, on peut alors affecter trois bits d’inhibition respectivement dédiés aux inhibitions de lecture, d’écriture et de rechargement des registres volatils associés aux emplacements mémoires stockant lesdites données sensibles, et trois bits d’inhibition respectivement dédiés aux inhibitions de lecture, d’écriture et de rechargement du registre fantôme associé au premier emplacement mémoire.
De même, dans la variante prévoyant la possibilité de restaurer le produit dans son « état fermé » avant restitution à l’utilisateur, les emplacements mémoires stockant des données sensibles peuvent également stocker le deuxième mot de passe de référence.
Les moyens de mémoire du type à écriture unique peuvent alors également comporter un deuxième emplacement mémoire stockant le deuxième bit de référence.
On peut alors affecter trois autres bits d’inhibition respectivement dédiés aux inhibitions de lecture, d’écriture et de rechargement du registre fantôme associé audit deuxième emplacement mémoire.
Préférentiellement, après réception de ladite deuxième commande assortie du deuxième mot de passe valide, on interdit tout nouveau placement ultérieur du circuit intégré dans son mode d’analyse avec autorisation de débogage.
En d’autres termes, comme expliqué ci-avant, durant la vie du produit, on autorise qu’une seule fois un cycle « analyse et restitution ».
Cette interdiction de tout nouveau placement ultérieur du circuit intégré dans son mode d’analyse avec autorisation de débogage, peut être mise en œuvre lorsque le premier bit de référence a sa première valeur logique de référence (par exemple la valeur 1) et que le deuxième bit de référence a sa deuxième valeur logique de référence (par exemple la valeur logique 1).
Cela étant, comme indiqué ci-avant il serait possible d’autoriser plusieurs cycles d’analyse et restauration, par exemple en prévoyant au moins un premier bit de référence supplémentaire et au moins un deuxième bit de référence supplémentaire, chaque paire de premier et deuxième bits de référence supplémentaires étant affectée à un cycle supplémentaire d’analyse et de restauration.
En d’autres termes, selon un autre mode possible de mise en œuvre, après réception de ladite deuxième commande assortie du deuxième mot de passe valide, on autorise au moins un nouveau placement ultérieur du circuit intégré dans son mode d’analyse avec autorisation de débogage.
Selon un autre aspect, il est proposé un produit comprenant un circuit intégré, par exemple un système sur puce, capable de fonctionner, en réponse à chaque réinitialisation ou mise sous tension, dans un mode d’amorçage avec interdiction de débogage ou dans un mode d’analyse avec autorisation de débogage.
Le circuit intégré comprend un port d’accès de test, par exemple conforme à la norme JTAG, et des moyens de commande configurés pour, lorsque le circuit intégré n’a jamais été placé dans son mode d’analyse avec autorisation de débogage, prendre a) en réponse à chaque réinitialisation ou mise sous tension du circuit intégré et en absence de réception sur le port d’accès de test d’une première commande assortie d’un premier mot de passe valide, un premier état dans lequel ils sont aptes à placer le circuit intégré dans son mode d’amorçage avec interdiction de débogage, et b) en présence d’une réception sur le port d’accès de test, de ladite première commande assortie du premier mot de passe valide à la suite d’une réinitialisation ou d’une mise sous tension, prendre un deuxième état dans lequel ils sont aptes à placer le circuit intégré dans son mode d’analyse avec autorisation de débogage, et maintenir le circuit intégré dans son mode d’analyse avec autorisation de débogage au moins tant qu’une deuxième commande assortie d’un deuxième mot de passe valide n’est pas reçue.
Selon un mode de réalisation, les moyens de commande sont, dans leur deuxième état, aptes à placer le circuit intégré dans un mode d’attente avec interdiction de débogage, à la suite de ladite réinitialisation ou mise sous tension du circuit intégré, et à placer le circuit intégré dans son mode d’analyse avec autorisation de débogage, à la suite de chaque réinitialisation ou mise ou tension suivante du circuit intégré.
Selon un mode de réalisation, le circuit intégré comprend en outre une unité centrale ou unité de traitement, une mémoire d’amorçage et un module mémoire comportant des premiers moyens de mémoire et des moyens de mémoire du type à écriture unique, et les moyens de commande sont répartis au moins dans l’unité de traitement, la mémoire d’amorçage, et le module mémoire.
Ils sont également avantageusement répartis dans un circuit matériel apte à coopérer avec l’unité de traitement.
Ils comportent avantageusement un code programme logé dans la mémoire d’amorçage.
Les moyens de commande sont avantageusement accessibles de l’extérieur du circuit intégré uniquement via le port d’accès de test.
Selon un mode de réalisation, les moyens de commande sont configurés pour, dans le deuxième état, effectuer au moins une comparaison du premier mot de passe reçu avec un premier mot de passe de référence stocké dans les premiers moyens de mémoire, le premier mot de passe étant considéré comme valide en cas de succès de ladite au moins une comparaison, et si le premier mot de passe est considéré comme valide, stocker un premier bit de référence ayant une première valeur logique de référence dans les moyens de mémoire du type à écriture unique.
Selon un mode de réalisation, les moyens de commande sont configurés pour, pour placer le circuit intégré dans son mode d’attente, effectuer ladite au moins une comparaison, le stockage éventuel du premier bit de référence ayant ladite première valeur logique de référence, et interdire le débogage, et les moyens de commande sont configurés pour, pour placer le circuit intégré dans son mode d’analyse avec autorisation de débogage, vérifier que le premier bit de référence a bien ladite première valeur logique de référence et si tel est le cas, autoriser le débogage.
Le circuit intégré est considéré comme n’ayant jamais été placé dans son mode d’analyse par exemple lorsque le premier bit de référence a une valeur logique différente de ladite première valeur logique de référence.
Selon un mode réalisation, les moyens de commande sont configurés pour vérifier la valeur logique d’au moins un bit de contrôle, ladite interdiction de débogage correspondant à une première valeur logique de contrôle dudit au moins un bit de contrôle et ladite autorisation de débogage correspondant à une deuxième valeur logique de contrôle dudit au moins un bit de contrôle, et les moyens de commande sont configurés pour, à la suite de chaque réinitialisation ou mise sous tension du circuit intégré, conférer audit au moins un bit de contrôle ladite première valeur logique de contrôle, et pour maintenir cette première valeur logique de contrôle dans le mode d’amorçage avec interdiction de débogage.
Les moyens de commande sont avantageusement configurés pour maintenir cette première valeur logique de contrôle dans ledit mode d’attente pour interdire le débogage, et pour conférer audit au moins un bit de contrôle ladite deuxième valeur logique de contrôle pour autoriser le débogage dans le mode d’analyse avec autorisation de débogage.
Selon un mode de réalisation, les moyens de commande sont configurés pour, à la réception sur ledit port d’accès de test de ladite deuxième commande assortie du deuxième mot de passe valide, effectuer une comparaison du deuxième mot de passe reçu avec un deuxième mot de passe de référence stocké dans les premiers moyens de mémoire, le deuxième mot de passe étant considéré comme valide en cas de succès de la comparaison, et si le deuxième mot de passe est considéré comme valide, stocker dans les moyens de mémoire du type à écriture unique un deuxième bit de référence ayant une deuxième valeur logique de référence.
Selon un mode de réalisation, les moyens de commande sont configurés pour, après avoir stocké dans les moyens de mémoire du type à écriture unique, le deuxième bit de référence affecté de sa deuxième valeur logique de référence, placer le circuit intégré dans un mode d’attente avec interdiction de débogage et vérifier après la réinitialisation ou la mise sous tension suivante du circuit intégré, que le deuxième bit de référence a bien sa deuxième valeur logique de référence, et si tel est le cas placer le circuit intégré dans son mode d’analyse avec autorisation de débogage.
Les moyens de commande sont avantageusement configurés pour, dans ledit mode d’attente avec interdiction de débogage, maintenir ladite première valeur logique de contrôle pour ledit au moins un bit de contrôle.
Selon un mode de réalisation, le circuit intégré comporte en outre des registres volatils associés au module mémoire, accessibles par l’unité centrale du circuit intégré et destinés à être chargés par une partie au moins du contenu module mémoire.
Les moyens de commande sont alors configurés pour avant d’autoriser le débogage, effacer le contenu des registres volatils.
Les moyens de commande comportent en outre des moyens d’inhibition configurés pour, après effacement du contenu des registres volatils, effectuer une inhibition de lecture des registres volatils, d’écriture dans les registres volatils et de rechargement des registres volatils.
Ledit circuit matériel comporte avantageusement au moins une partie des moyens d’inhibition.
Selon un mode de réalisation, les moyens d’inhibition sont couplés aux registres volatils et sont configurés pour, en réponse à un signal de demande d’inhibition délivré par l’unité centrale, activer ladite inhibition par le passage d’un premier état à un deuxième état d’au moins un signal logique d’inhibition, et les moyens d’inhibition sont configurés pour, lorsque ledit au moins un signal logique d’inhibition est passé de son premier état à son deuxième état, ne pouvoir délivrer le signal logique d’inhibition ayant son premier état qu’en réponse à une réinitialisation ou une mise sous tension du circuit intégré.
Selon un mode de réalisation, les premiers moyens de mémoire comportent des emplacements mémoires stockant des données sensibles incluant le premier mot de passe de référence et les moyens de mémoire du type à écriture unique comportent un premier emplacement mémoire destiné à stocker le premier bit de référence.
Les moyens d’inhibition sont alors avantageusement configurés pour délivrer des signaux logiques d’inhibition respectivement dédiés aux inhibitions de lecture, d’écriture et de rechargement des registres volatils associés aux emplacements mémoire destinées à stocker lesdites données sensibles, et trois signaux logiques d’inhibition respectivement dédiés aux inhibitions de lecture, d’écriture et de rechargement du registre fantôme associé audit premier emplacement mémoire.
Selon un mode de réalisation, dans lequel les emplacements mémoires destinés à stocker les données sensibles sont également destinés à stocker le deuxième mot de passe de référence, et les moyens de mémoire du type à écriture unique comportent un deuxième emplacement mémoire destiné à stocker le deuxième bit de référence.
Les moyens d’inhibition sont alors avantageusement configurés pour délivrer trois autres bits d’inhibition respectivement dédiés aux inhibitions de lecture, d’écriture et de rechargement du registre fantôme associé audit deuxième emplacement mémoire.
Préférentiellement, les moyens de commande sont configurés pour, après réception de ladite deuxième commande assortie du deuxième mot de passe valide, interdire tout nouveau placement ultérieur du circuit intégré dans son mode d’analyse avec autorisation de débogage. A cet égard, les moyens de commande sont par exemple configurés pour interdire tout nouveau passage dans le mode d’analyse avec autorisation de débogage lorsque le premier bit de référence et le deuxième bit de référence ont respectivement leur première et deuxième valeurs de référence.
En variante les moyens de commande peuvent être configurés pour, après réception de ladite deuxième commande assortie du deuxième mot de passe valide, autoriser au moins un nouveau placement ultérieur du circuit intégré dans son mode d’analyse avec autorisation de débogage.
Le produit comprend par exemple un composant électronique contenant le circuit intégré qui peut comprendre un système sur puce. D’autres avantages et caractéristiques de l’invention apparaîtront à l’examen de la description détaillée de modes de réalisation et de mise en œuvre, nullement limitative, et des dessins annexés sur lesquels : -les figures 1 à 19 illustrent schématiquement différents modes de mise en œuvre et de réalisation de l’invention.
Sur la figure 1, la référence 1 désigne un circuit intégré, ici un système sur puce, incorporé dans un produit ou composant électronique P qui, dans cet exemple, doit être retourné par l’utilisateur au fabricant ou au concepteur pour une analyse en vue par exemple d’une résolution de problème de dysfonctionnement.
Dans tout ce qui suit, le système sur puce est supposé contenir des données sensibles ou des secrets de l’utilisateur, dont celui-ci souhaite en préserver la confidentialité lors de l’analyse.
Le système sur puce 1 comporte ici une unité centrale 13, par exemple un cœur de processeur ou de microcontrôleur, associé à une mémoire morte d’amorçage (« boot ROM » en langue anglaise).
Par ailleurs, le système sur puce 1 comporte un étage matériel 15 comportant un module mémoire contenant ici des moyens de mémoire 151 du type à écriture unique, associés à des registres fantômes (« shadow registers ») 150, ainsi qu’un circuit matériel 152 incorporant au moins une partie de moyens d’inhibition, comme on le verra plus en détails ci-après.
Comme il est classique, l’unité centrale 13 coopère avec des instructions contenues dans la mémoire d’amorçage 14 pour effectuer les actions correspondantes et coopère également avec les registres fantômes 150 qui sont destinés à servir d’interfaces entre l’unité centrale 13 et les moyens de mémoire du type à écriture unique 151. Plus précisément, l’unité centrale 13 peut, après que le contenu de certaines parties au moins de la mémoire fusible 151 a été recopié dans les registres fantômes 150, en lire le contenu ou bien écrire dans ces registres fantômes.
Les moyens de mémoire du type à écriture unique 151 peuvent être par exemple des mémoires du type fusible dites OTP (One Time Programmable) et d’une façon générale, des moyens de mémoire du type à écriture unique se caractérisent par le fait que lorsque l’on écrit un bit dans un emplacement mémoire de la mémoire du type à écriture unique, la valeur logique de ce bit ainsi écrit est figée de façon permanente.
Ainsi bien que les mémoires du type fusible soient simples à implémenter, il serait possible d’utiliser d’autres types de mémoire comme moyen de mémoire du type à écriture unique, comme par exemple une mémoire réinscriptible (du type FLASH, du type à changement de phase (PCM : Phase Change Memory).....) associée à une logique de contrôle empêchant une seconde écriture.
En outre les moyens de mémoire 151 peuvent comporter une seule mémoire ou bien plusieurs mémoires différentes.
Comme on le verra plus en détail ci-après, les moyens de mémoire du type à écriture unique 151 peuvent par exemple stocker un premier bit de référence BRF1, un deuxième bit de référence BRF2, un premier mot de passe de référence PASSW1R et un deuxième mot de passe de référence PASSW2R
Les moyens de mémoire du type à écriture unique comportent également, dans ce cas, les données sensibles et/ou secrets de l’utilisateur.
Le système sur puce 1 comporte également un port d’accès de test 10.
De façon classique et connue, ce port d’accès de test est connecté à des broches spécifiques du composant sur lesquelles on peut délivrer des signaux, par exemple des signaux de test, à l’aide d’un outil de débogage spécifique.
Le port d’accès de test peut être conforme à la norme JTAG. JTAG (« Joint Test Action Group ») est le nom de la norme IEEE 1149.1.
Cela étant même si un port d’accès de test, ou interface, JTAG est une interface la plus répandue dans ce domaine, d’autres types d’interfaces pourraient être utilisées, comme par exemple une interface ou port d’accès de test conforme à la norme IEEE-ISTO 5001-2003 (NEXUS).
Il serait également possible d’envisager un port d’accès de test et un canal dédiés couplés à une logique de déverrouillage dédiée de façon à notamment traiter les commandes et mots de passe décrits ci-après. L’homme du métier saura choisir le port d’accès de test le plus approprié en fonction notamment des caractéristiques du système sur puce.
Dans tout ce qui suit le port d’accès de test est conforme à la norme JTAG.
Comme il est classique en la matière, pour procéder à des tests ou des débogages de composants du système sur puce, celui-ci comporte une chaîne JTAG CHJ comportant plusieurs cellules ou contrôleurs JTAG 11, lia, 11b, ... respectivement associées à différents composants du système sur puce.
Dans l’exemple décrit ici, le port d’accès de test (TAP : « Test Access Port») 10 est relié au premier contrôleur JTAG 11 qui, en réponse à une première commande (composée d’une succession de bits), reçue dans un registre 110 de ce contrôleur 11, va recopier cette commande dans un registre 12 accessible par l’unité centrale 13.
Le système sur puce comporte ici un mode d’amorçage avec interdiction de débogage et un mode d’analyse avec autorisation de débogage.
Et, comme on le verra plus en détail ci-après, tant que le système sur puce n’est pas placé dans son mode d’analyse avec autorisation de débogage, il est seulement possible d’accéder, via le port d’accès JTAG 10, au premier contrôleur JTAG 11. Par contre, il est impossible d’accéder aux autres contrôleurs lia, 11b, ... de la chaîne JTAG CHJ pour pouvoir procéder au débogage.
Le contrôle de la topologie de la chaîne CHJ de façon à rendre certaines parties de cette chaîne inaccessibles en fonction de signaux, est bien connu de l’homme du métier et ne sera pas décrite ici plus en détail. A cet égard, le système comporte des moyens de commande configurés pour, lorsque le système n’a jamais été placé dans son mode d’analyse avec autorisation de débogage, prendre a) en réponse à chaque réinitialisation ou mise sous tension du système et en l’absence de réception sur le port d’accès de test d’une première commande assortie d’un premier mot de passe valide, un premier état dans lequel les moyens de commande sont aptes à placer le système dans son mode d’amorçage avec interdiction de débogage, et b) en présence d’une réception sur le port d’accès de test, de ladite première commande assortie du premier mot de passe valide à la suite d’une réinitialisation ou d’une mise sous tension, prendre un deuxième état dans lequel les moyens de commande sont aptes à placer le système dans son mode d’analyse avec autorisation de débogage, et maintenir le système dans ce mode d’analyse avec autorisation de débogage au moins tant qu’une deuxième commande assortie d’un deuxième mot de passe valide n’est pas reçue via le port d’accès JTAG 10.
Ces moyens de commande dont on va revenir plus en détail sur la structure et la fonctionnalité, sont ainsi avantageusement accessibles de l’extérieur du système sur puce 1 uniquement via le port d’accès de test 10.
Par ailleurs, ces moyens de commande sont répartis au moins dans l’unité de traitement 13, la mémoire d’amorçage 14, les moyens de mémoire du type à écriture unique 151 et dans un circuit matériel 150, 152 apte à coopérer avec l’unité de traitement et les moyens de mémoire du type à écriture unique 151.
Par ailleurs, les moyens de commande comportent un code programme logé dans la mémoire d’amorçage 14.
On se réfère maintenant plus particulièrement aux figures 2 à 17 pour décrire plus en détail des modes de mise en œuvre d’un procédé de gestion de retour de produit pour analyse, le produit ou composant comportant un système sur puce du type de celui illustré sur la figure 1, ce procédé de gestion étant mis en œuvre par les moyens de commande.
On rappelle ici que le système sur puce est considéré comme étant « fermé », c’est-à-dire uniquement accessible via le port d’accès JTAG 10 et que la mémoire fusible 151 comporte des données sensibles de l’utilisateur dont on souhaite préserver la confidentialité.
Comme indiqué ci-avant, les moyens de mémoire fusible 151 possèdent deux emplacements destinés à stocker respectivement le premier bit de référence BRF1 et le deuxième bit de référence BRF2.
Chacun de ces deux bits de référence est initialement considéré comme étant à la valeur logique 0 (correspondant à leur état non « claqué » dans la mémoire du type à écriture unique).
Par ailleurs, comme on le verra ci-après, la valeur logique du premier bit de référence BRF1 est significative du passage ou non vers le mode d’analyse avec autorisation de débogage tandis que la valeur logique du deuxième bit de référence BRF2 est significative d’une « restauration » du système sur puce dans son état « fermé » après son analyse et avant restitution à l’utilisateur.
Comme illustré sur les figures 2 et 3, dans l’étape SI, on se place dans le cas d’une réinitialisation du système sur puce (« reset ») ou d’une mise sous tension de ce système. A ce stade, on n’autorise pas le débogage, ce qui se traduit par la mise à 0 d’au moins un bit de contrôle BCTRL (étape Sla). En pratique, ce bit de contrôle est un bit qui va autoriser le test du produit (DFT : « Design For Test ») et qui va permettre d’ouvrir ou non la chaîne JTAG CHJ pour pouvoir avoir accès aux autres contrôleurs de cette chaîne.
Ainsi, dans le cas présent, si le bit BCRTL est à 0 la chaîne CHJ est fermée et Ton ne peut pas avoir accès aux autres contrôleurs lia, 11b...de cette chaîne.
Par contre, lorsque le bit BCRTL sera mis à 1, alors on pourra autoriser le débogage en autorisant ainsi l’accès aux autres contrôleurs de la chaîne JTAG.
Dans cet exemple, on ne cite à des fins de simplification qu’un seul bit de contrôle BCTRL. Cela étant, en pratique, d’autres bits de contrôle de débogage pourraient être utilisés.
Par ailleurs, à ce stade également, on confère à des bits d’inhibition (dont on détaillera plus en détail ci-après la fonctionnalité) une valeur logique égale ici à 1 (Slb).
Cette valeur logique est choisie en fonction de l’implémentation de moyens d’inhibition qui seront détaillés ci-après.
Puis, dans l’étape S2 (figure 2 et figure 4) on vérifie la valeur logique du premier bit de référence BRF1.
On suppose ici que le premier bit de référence BRF1 n’a pas sa première valeur logique, ici la valeur 1, ce qui signifie d’une part qu’il n’a jamais été claqué dans la mémoire du type à écriture unique 151, et que d’autre part, le système sur puce n’est encore jamais passé dans son mode d’analyse avec débogage.
Dans ce cas, les moyens de commande passent à l’étape S3 dans laquelle ils vont vérifier la réception ou non d’une première commande CMD1 (figure 5) visant à demander le passage du système sur puce dans son mode d’analyse avec autorisation de débogage.
Comme illustré sur la figure 5, la première commande CMD1 comporte par exemple un mot de 16 bits ayant en tête un bit RMA suivi d’un champ CH de quinze bits contenant un premier mot de passe PASSW1.
Dans cet exemple, la valeur 1 du bit RMA signifie que cette commande CMD1 va effectivement être une commande pour le passage du système sur puce dans son mode d’analyse avec autorisation de débogage.
En pratique, comme illustré sur la figure 6, lorsqu’une commande CMDi arrive sur le port d’accès de test 10, elle est chargée par le contrôleur 11 dans le registre 110 (étape S300) puis recopiée dans le registre 12 (étape S301) de façon à pouvoir être lue par l’unité de traitement 13 (étape S302).
Dans l’étape S3 (figure 2 et figure 7), les moyens de commande vérifient donc si le bit RMA est effectivement à 1.
On va voir ci-après que le premier mot de passe reçu dans la commande CMDI va être comparé avec un premier mot de passe de référence PASSW1R stocké dans un emplacement des moyens de mémoire fusible 151.
Et, dans un mode préféré de réalisation, mais non indispensable, on autorise trois essais pour effectuer cette comparaison.
Aussi, dans l’étape S4, les moyens de commande vérifient que le nombre d’essais n’est pas expiré.
Si le nombre autorisé d’essais n’est pas expiré, alors, on incrémente ce nombre dans l’étape S5 par exemple en claquant un bit dans la mémoire fusible puis, dans l’étape S6 (figure 2 et figure 8) les moyens de commande effectuent la comparaison S60 entre le premier mot de passe reçu PASSW1 et le premier mot de passe de référence PASSW1R stocké dans les moyens de mémoire fusible 151.
Si la comparaison a échoué, alors les moyens de commande placent le système sur puce dans son état ETAM d’amorçage sans autorisation de débogage.
Un nouvel essai peut être effectué après réinitialisation ou mise sous tension de la puce dans l’étape SI pour reparcourir les étapes S2, S3, S4, S5, S6, S7.
Dans l’hypothèse où la comparaison entre le premier mot de passe reçu PASSW1 et le premier mot de passe de référence stocké PASSW1R est un succès, alors le premier mot de passe reçu est considéré comme étant un mot de passe valide et les moyens de commande exécutent l’étape S8 (figure 9).
Dans cette étape S8, les moyens de commande commandent la mise à 1 du premier bit de référence BRF1 dans l’emplacement correspondant des moyens de mémoire 151.
Ce passage à l’état logique 1 du bit BRF1 est donc permanent et définitif.
Puis, l’unité centrale 13 procède à l’effacement (étape S801) des registres fantômes 150.
Dans l’étape S802, on affecte la valeur logique 0 aux bits d’inhibition BINHi alors qu’initialement dans l’étape SI ils étaient affectés de la valeur logique 1.
En conséquence, ceci signifie que l’on a alors inhibé le rechargement des registres fantômes par le contenu des moyens de mémoire fusible, la lecture dans les registres fantômes et l’écriture dans les registres fantômes.
Ce processus d’inhibition ainsi la structure des moyens d’inhibition correspondants seront expliqués plus en détails ci-après.
Quoi qu’il en soit, à ce stade, les données confidentielles et/ou secrets de l’utilisateur stockés dans les moyens de mémoire fusible ne sont plus accessibles par l’unité centrale car ils ne peuvent plus être recopiés dans les registres fantômes.
Il serait donc possible à ce stade d’autoriser déjà le débogage.
Cela étant, pour des raisons de simplification du nombre de chemins de l’organigramme illustré sur la figure 2 et pour repartir d’un état « propre » on n’autorise toujours pas le débogage c’est-à-dire que dans l’étape S803, on maintient le ou les bits de contrôle BCTRL à leur valeur logique 0.
Puis, le système sur puce est alors dans un état d’attente ETAT.
Lors de la réinitialisation ou de la mise sous tension suivante, les moyens de commande sont de nouveau aptes à exécuter l’étape SI (figure 3). Puis, comme dans l’étape S2, le premier bit de référence BRF1 a sa première valeur logique, par exemple la valeur 1, les moyens de commande passent dans l’étape S9 où ils vérifient la valeur logique du deuxième bit de référence BRF2 (figure 10).
Comme ce deuxième bit de référence BRF2 a toujours sa valeur logique 0, les moyens de commande passent alors dans l’étape S10 (figure 11) dans laquelle ils vérifient la réception ou non sur le port d’entrée de test 10 d’une deuxième commande CMD2 représentative d’une demande de « refermeture » du produit après analyse.
Cette deuxième commande CMD2 est illustrée sur la figure 12 et a dans cet exemple une structure analogue à celle de la première commande CMD1. En d’autres termes, elle comporte en tête le bit RMA ayant la valeur logique 1 suivi d’un deuxième mot de passe PASSW2 qui en pratique est différent du premier mot de passe PASSW1 mais qui pourrait en théorie être identique à ce premier mot de passe PASSW1.
On suppose maintenant que l’on n’a pas reçu cette deuxième commande CMD2 sur le port d’accès de test 10.
En conséquence, les moyens de commande passent dans l’étape Sll illustrée sur la figure 13.
Dans cette étape Sll, les moyens de commande procèdent de nouveau à l’effacement des registres fantômes 150 (étape SI 100). Puis, on procède de nouveau à la sécurisation des informations contenues dans les moyens de mémoire fusible en attribuant aux bits d’inhibition BINHi la valeur 0 (étape SI 101).
Par contre, cette fois-ci, on confère au(x) bit(s) de contrôle BCTRL la valeur 1 (étape SI 102) ce qui autorise l’ouverture de la chaîne de test CHJ et l’accès aux autres contrôleurs lia, 11b, ... de cette chaîne de façon à autoriser le débogage du système sur puce. A ce stade, le système sur puce est donc placé dans son mode d’analyse avec autorisation de débogage ETAL.
Et ce placement dans le mode ETAL, avec inaccessibilité des données confidentielles, a été effectué indépendamment de toute application logicielle de l’utilisateur du système sur puce, c'est-à-dire sans qu’il soit nécessaire d’exécuter une quelconque application de l’utilisateur sur l’unité centrale 13.
On peut alors effectuer ce débogage aussi longtemps qu’on le souhaite tant que Ton n’a pas reçu sur le port d’accès de test 10 la deuxième commande CMD2.
En d’autres termes, le système sur puce est placé dans son mode d’analyse avec autorisation de débogage ETAL de façon permanente tant qu’on n’a pas reçu cette deuxième commande CMD2, et ce même si on procède à des réinitialisations ou des mises sous tensions successives.
En effet, comme illustré sur la figure 2, après chaque réinitialisation ou mise sous tension (étape SI) les moyens de commande passeront successivement par les étapes S2, S9, S10 et Sll.
Par contre, en cas de réception de la deuxième commande CMD2 sur le port d’accès de test 10, celle-ci est stockée dans le registre 12 de façon à pouvoir être lue par l’unité centrale 13. Ce stockage s’effectue de manière identique à ce qui a été décrit en référence à la figure 6 pour la première commande CMDI. Là encore, on va comparer le deuxième mot de passe reçu PASSW2 avec le deuxième mot de passe de référence PASSWR2 stocké dans un emplacement des moyens de mémoire fusible 151. Là encore, d’une façon analogue à ce qui a été écrit ci-avant, on peut autoriser trois essais pour cette comparaison.
En conséquence, on retrouve dans l’organigramme les étapes S12 et S13 analogues aux étapes S4 et S5.
Dans l’hypothèse où le nombre d’essais n’est pas expiré, les moyens de commande passent alors dans l’étape S14 (figure 2 et figure 14) dans laquelle ils procèdent à la comparaison S140 entre le deuxième mot de passe PASSW2 et le deuxième mot de passe de référence PASSW2R.
Il convient de noter ici qu’en cas d’échec de cette comparaison ou si le nombre d’essais a dépassé le nombre d’essais maximum autorisés, alors les moyens de commande retournent dans l’étape Sll et maintiennent donc le système dans son mode d’analyse avec autorisation de débogage ETAL.
Dans le cas où la comparaison effectuée à l’étape S14 est un succès, (vérification faite à l’étape S15) alors les moyens de commande passent dans l’étape S16 (figure 2 et figure 15).
Dans cette étape, les moyens de commande confèrent de façon permanente au deuxième bit de référence BRF2 sa deuxième valeur logique de référence, en l’espèce la valeur logique 1 ce qui signifie que le système sur puce a été « refermé ».
Les moyens de commande sécurisent également cette opération en conférant aux trois bits d’inhibition BINH2 associés à l’emplacement mémoire contenant le deuxième bit de référence BRF2, la valeur 0, ce qui inhibe le rechargement du registre fantôme correspondant par le contenu de l’emplacement mémoire contenant le deuxième bit de référence BRF2, ainsi que l’écriture et la lecture de ce registre fantôme.
Puis, le système est alors placé dans un état d’attente ETAT analogue à l’état d’attente ETAT qui faisait suite à l’étape S8.
Et, lors de la réinitialisation ou de la mise sous tension du système sur puce, les moyens de commande vont alors successivement passer par les étapes SI, S2 et S9 pour, puisque le deuxième bit de référence BRF2 est à 1, placer le système sur puce dans son état d’amorçage avec interdiction de débogage ETAM.
Avant de détailler les opérations effectuées dans cet état d’amorçage ETAM, il convient de noter que cet état d’amorçage ETAM peut être également atteint dans le cas où, dans l’étape S3, la première commande CMD1 n’est pas reçue ou encore si dans l’étape S4, le nombre d’essais autorisés a dépassé la valeur maximale autorisée sans comparaison réussie. Cela signifie simplement que dans ce cas, on ne va pas autoriser le passage dans le mode d’analyse avec autorisation de débogage mais on va simplement procéder à un amorçage classique du système sur puce. En outre, comme illustré sur la figure 16, avant de placer le système sur puce dans son état ETAM, on va sécuriser là encore la valeur logique 0 du premier bit de référence BRF1 en conférant aux trois bits d’inhibition BINHI qui lui sont affectés, la valeur logique 0 (étape S171).
En d’autres termes, là encore, l’unité centrale ne pourra pas accéder ou modifier, via le registre fantôme correspondant, la valeur logique du premier bit de référence BRF1.
Dans le mode d’amorçage avec interdiction de débogage ETAM, les moyens de commande maintiennent la valeur 0 pour le ou les bits de contrôle BCTRL et mettent avantageusement en œuvre une étape S1000 d’authentification du code d’amorçage utilisateur avant que l’on puisse procéder à l’amorçage effectif (S1001) de l’unité centrale avec le code d’amorçage utilisateur.
Bien entendu, une fois que le code d’amorçage utilisateur est opérationnel, l’utilisateur sera libre d’autoriser ou non un débogage du système sur puce puisque cette fois-ci c’est lui qui en maîtrise l’initiative. Par contre, l’invention permet, lorsque le système sur puce est restitué au fabricant ou au concepteur en vue d’une analyse avec débogage, d’autoriser ce débogage mais uniquement après avoir sécurisé les données confidentielles stockées dans les moyens de mémoire fusible de façon que celles-ci ne soient pas accessibles pendant le débogage.
Par ailleurs, une fois que l’on a conféré au premier bit de référence BRF1 sa première valeur logique (ici 1) et au deuxième bit de référence sa deuxième valeur logique de référence (ici 1 par exemple), on remarque qu’il n’est plus possible pour les moyens de commande de placer le système dans son mode d’analyse avec autorisation de débogage. En effet, dans ce cas-là, à la suite de chaque réinitialisation ou mise sous tension, les moyens de commande vont automatiquement placer le système dans son mode d’amorçage avec interdiction de débogage ETAM.
On se réfère maintenant plus particulièrement aux figures 18 et 19 pour illustrer un exemple de réalisation matérielle des moyens d’inhibition 152.
Comme illustré sur la figure 18, les moyens de mémoire du type à écriture unique 151 comportent divers emplacements mémoire EMP1, EMP2, EMP3, ... A titre d’exemple non limitatif, un premier emplacement EMP1 est destiné à contenir le premier bit de référence BRF1.
Un deuxième emplacement EMP2 est destiné à contenir le deuxième bit de référence BRF2 et un ou plusieurs autres emplacements EMP3 sont destinés à contenir les données sensibles DDS dont on veut préserver la confidentialité, incluant notamment le premier mot de passe de référence PASSWIRet le deuxième mot de passe de référence PASSW2R. A ces emplacements mémoire EMPi sont associés des registres fantômes (représentés ici schématiquement par trois rectangles) 1501, 1502, 1503, ...
Ces registres fantômes sont accessibles par l’unité centrale 13 qui peut en lire le contenu et y écrire. L’unité centrale 13 peut également accéder au contenu des moyens de mémoire du type à écriture unique 151 via ces registres fantômes, ces derniers pouvant être rechargés par le contenu des emplacements mémoire EMPI, EMP2, EMP3... A chaque registre fantôme est associé, dans cet exemple, un triplet de bits d’inhibition.
Ainsi, le triplet de bits d’inhibition BINH1 est associé au registre fantôme 1501 lui-même associé au premier emplacement mémoire EMP1.
Chaque triplet de bits d’inhibition comporte trois bits d’inhibition respectivement destinés à autoriser ou inhiber la lecture dans le registre fantôme correspondant, l’écriture dans ce registre fantôme correspondant, et le rechargement de ce registre fantôme correspondant par le contenu de l’emplacement mémoire correspondant.
Ainsi, le bit BINH11 est associé à l’opération de lecture, le bit BINH12 est associé à l’opération d’écriture, et le bit BINH13 est associé à l’opération de rechargement. Et, selon la valeur logique de ces bits d’inhibition, on va pouvoir autoriser ou interdire l’opération correspondante dans le registre fantôme correspondant.
Un exemple plus détaillé d’implémentation matérielle de ces moyens d’inhibition 152, non limitatif, est illustré sur la figure 19.
Plus précisément, les moyens d’inhibition 152 comportent pour chaque bit d’inhibition, et donc pour chaque opération du registre correspondant, un circuit matériel CRIHi comportant ici une bascule RS référencée BSCi.
Et, la sortie de cette bascule BSCi, va délivrer un signal logique SINHi (correspondant au bit d’inhibition BINHi) qui, va être dans cet exemple délivré à une porte logique PL du type ET. L’autre entrée de cette porte logique PL reçoit le signal d’activation de l’opération correspondante à effectuer dans le registre fantôme 1501.
Dans l’exemple décrit ici, l’opération à interdire ou à autoriser est une opération d’écriture activée par un signal d’activation d’écriture WEN1 provenant de l’unité centrale 13.
Et, le signal d’autorisation ou d’interdiction d’écriture WEN2, qui va être effectivement délivré sur l’entrée correspondante du registre 1501, va être délivré par la sortie de la porte logique PL. L’entrée R de la bascule BSCi est destinée à recevoir la commande de réinitialisation.
En conséquence, l’entrée R est à l’état logique 0 en présence d’une réinitialisation, mais également en présence d’une mise sous tension du système sur puce. L’entrée S de la bascule est reliée à l’unité centrale 13.
Lorsque les moyens de commande souhaitent activer les moyens d’inhibition, un signal logique de demande d’inhibition à l’état haut est délivré sur l’entrée S.
Lorsque c’est le cas, la sortie Q’ de la bascule BSCi passe à l’état bas.
Et par conséquent, la sortie de la porte logique PL passe à l’état bas.
Le signal logique SINHi est donc à l’état bas ce qui correspond à la valeur logique 0 pour le bit d’inhibition BINHi.
En conséquence, le signal WEN2 passe à l’état bas ce qui interdit dans le cas présent l’opération d’écriture dans le registre 1501.
En conséquence, compte tenu de cette implémentation matérielle, un bit d’inhibition BINHi ayant la valeur logique 1 autorise l’écriture dans le registre correspondant (pour autant bien entendu que le signal WEN1 soit à l’état haut) tandis que le passage de la valeur logique 1 du bit BINHi à la valeur logique 0 interdit l’écriture dans le registre.
Et, on notera que le passage du bit BINHi de l’état logique 1 à l’état logique 0 est irréversible sauf si le signal R passe à l’état 0 (ce qui se passe en cas de réinitialisation ou de mise sous tension) car dans ce cas, la sortie Q’, et par conséquent le bit BINHi, repassent à l’état logique 1. L’invention n’est pas limitée aux modes de mise en œuvre et de réalisation qui viennent d’être décrits mais en embrasse toutes les variantes.
Il serait possible d’autoriser plusieurs cycles d’analyse et restauration, par exemple en prévoyant au moins un premier bit de référence supplémentaire et au moins un deuxième bit de référence supplémentaire, chaque paire de premier et deuxième bits de référence supplémentaires étant affectée à un cycle supplémentaire d’analyse et de restauration.
En d’autres termes les traitements qui ont été décrits ci-avant et qui s’appliquaient aux premier et deuxième bits de référence, s’appliqueraient alors à chaque paire de bits de référence supplémentaires, en utilisant des mots de passe identiques à ou différents de ceux utilisés le premier cycle d’analyse et de restauration.
Alors que l’on a décrit un procédé de gestion de retour d’un produit comportant un système sur puce à l’état fermé et incluant des données sensibles, il serait possible dans d’autres applications, de s’affranchir de la sécurité supplémentaire procurée par les moyens d’inhibition.
Par ailleurs, le fait d’utiliser une commande avec un mot de passe valide associé au claquage d’un bit de référence pour maintenir le système sur puce dans un état d’analyse avec autorisation de débogage, pourrait s’appliquer à tout système sur puce, que celui-ci contienne ou non des données sensibles. Et, cette caractéristique facilite l’accès au mode d’analyse avec autorisation de débogage car il n’est pas nécessaire alors à chaque réinitialisation ou à chaque mise sous tension de rentrer de nouveau un mot de passe.
En outre, alors que l’on a décrit un module mémoire 151 contenant seulement des moyens de mémoire du type à écriture unique stockant non seulement les premier et deuxième bits de référence BRF1 et BRF2, mais également les données sensibles et/secrets ainsi que les mots de passe de référence PASSW1R et PASSW2R, il serait possible en variante de prévoir un module mémoire contenant d’une part des moyens de mémoire du type à écriture unique et d’autre part des premiers moyens de mémoire non nécessairement du type à écriture unique, par exemple une mémoire interne non volatile non nécessairement à écriture unique.
Dans une telle variante, les moyens de mémoire du type à écriture unique stockeraient au moins les premier et deuxième bits de référence de façon à assurer le caractère irréversible et permanant de ce stockage, et éventuellement les mots de passe de référence et certaines données sensibles tandis que les autres données sensibles et/ou secrets pourraient être stockés dans les premiers moyens de mémoire.
Il serait également possible de stocker toutes les données sensibles et/ou secrets ainsi que les mots de passe de référence dans les premiers moyens de mémoire et de réserver le stockage dans les moyens de mémoire du type à écriture unique aux seuls premier et deuxième bits de référence.
Claims (40)
- REVENDICATIONS1. Procédé de gestion d’un retour de produit pour analyse, le produit (P) comportant un circuit intégré (1) possédant un port d’accès de test (10), un mode d’amorçage avec interdiction de débogage (ETAM) et un mode d’analyse avec autorisation de débogage (ETAL), le procédé comprenant, lorsque le circuit intégré (1) n’a jamais été placé dans son mode d’analyse avec autorisation de débogage (ETAL), a) un placement du circuit intégré dans son mode d’amorçage avec interdiction de débogage (ETAM), en réponse à chaque réinitialisation ou mise sous tension du circuit intégré (SI) et en absence de réception sur le port d’accès de test (10) d’une première commande (CMD1) assortie d’un premier mot de passe valide (PASSW1), et b) un placement du circuit intégré dans son mode d’analyse avec autorisation de débogage (ETAL), en présence d’une réception sur le port d’accès de test (10) de ladite première commande (CMD1) assortie du premier mot de passe valide (PASSW1) à la suite d’une réinitialisation ou d’une mise sous tension (SI), ce placement étant maintenu au moins tant que l’on n’a pas reçu sur ledit port d’accès une deuxième commande (CMD2) assortie d’un deuxième mot de passe valide (PASSW2).
- 2. Procédé selon la revendication 1, dans lequel l’étape b) comprend à la suite de ladite réinitialisation ou mise sous tension du circuit intégré (SI), une première sous étape bl) (S8) de placement du système dans un mode d’attente avec interdiction de débogage (ETAT), et une deuxième sous-étape b2) (S 11) de placement du circuit intégré dans son mode d’analyse avec autorisation de débogage (ETAL), effectuée à la suite de chaque réinitialisation ou mise ou tension suivante du circuit intégré.
- 3. Procédé selon la revendication 1 ou 2, dans lequel l’étape b) comprend au moins une comparaison (S60) du premier mot de passe reçu avec un premier mot de passe de référence (PASSW1R) stocké dans des premiers moyens de mémoire, et en cas de succès de ladite au moins une comparaison le premier mot de passe (PASSW1) est considéré comme valide, et si le premier mot de passe est considéré comme valide, un stockage (S800) d’un premier bit de référence (BRF1) ayant une première valeur logique de référence dans des moyens de mémoire du type à écriture unique.
- 4. Procédé selon la revendication 3 dans lequel les premiers moyens de mémoire sont du type à écriture unique.
- 5. Procédé selon la revendication 2 et la revendication 3 ou 4, dans lequel la première sous-étape bl) comporte ladite au moins une comparaison (S60), le stockage éventuel (S800) du premier bit de référence ayant ladite première valeur logique de référence, et ladite interdiction de débogage (BCTRL=0), et la deuxième sous-étape b2) comporte la vérification (S2) que le premier bit de référence a bien ladite première valeur logique de référence et si tel est le cas, ladite autorisation de débogage (BCTRL=1).
- 6. Procédé selon la revendication 3, 4 ou 5, dans lequel le circuit intégré est considéré comme n’ayant jamais été placé dans son mode d’analyse avec autorisation de débogage (ETAL) lorsque le premier bit de référence (BRF1) a une valeur logique différente de ladite valeur logique de référence (1).
- 7. Procédé selon l’une des revendications précédentes, dans lequel l’autorisation ou l’interdiction de débogage comprend la vérification de la valeur logique d’au moins un bit de contrôle (BCTRL), ladite interdiction de débogage correspondant à une première valeur logique de contrôle (0) dudit au moins un bit de contrôle et ladite autorisation de débogage correspondant à une deuxième valeur logique de contrôle (1) dudit au moins un bit de contrôle, dans lequel à la suite de chaque réinitialisation ou mise sous tension du circuit intégré, on confère audit au moins un bit de contrôle ladite première valeur logique de contrôle (0), et dans lequel on maintient cette première valeur logique de contrôle dans le mode d’amorçage avec interdiction de débogage (ETAM).
- 8. Procédé selon la revendication 7 prise en combinaison avec la revendication 5 ou 6, dans lequel on maintient cette première valeur logique de contrôle (0) dans la première sous-étape bl) (S8) pour interdire le débogage tandis que dans la deuxième sous-étape b2) (Sll) on confère audit au moins un bit de contrôle (BCTRL) ladite deuxième valeur logique de contrôle (1) pour autoriser le débogage.
- 9. Procédé selon l’une des revendications précédentes prise en combinaison avec la revendication 3 ou 4, dans lequel à la réception sur ledit port d’accès de test de ladite deuxième commande (CMD2) assortie du deuxième mot de passe valide (PASSW2), on effectue une comparaison (S140) du deuxième mot de passe reçu avec un deuxième mot de passe de référence (PASSW2R) stocké dans les premiers moyens de mémoire, et en cas de succès de la comparaison le deuxième mot de passe (PASSW2) est considéré comme valide et on stocke dans les moyens de mémoire du type à écriture unique (151) un deuxième bit de référence (BRF2) ayant une deuxième valeur logique de référence (1).
- 10. Procédé selon la revendication 9, dans lequel après avoir stocké dans les moyens de mémoire du type à écriture unique, le deuxième bit de référence affecté de sa deuxième valeur logique de référence, on place (S16) le circuit intégré dans un mode d’attente avec interdiction de débogage (ETAT) et on vérifie après la réinitialisation ou la mise sous tension suivante (SI) du circuit intégré, que le deuxième bit de référence (BRF2) a bien sa deuxième valeur logique de référence (1), et si tel est le cas on place le circuit intégré dans son mode d’amorçage avec interdiction de débogage (ETAM).
- 11. Procédé selon les revendications 8 et 10, dans lequel dans ledit mode d’attente avec interdiction de débogage (ETAT), on maintient ladite première valeur logique de contrôle (0) pour ledit au moins un bit de contrôle (BCTRL).
- 12. Procédé selon l’une des revendications précédentes prise en combinaison avec la revendication 3 ou 4, dans lequel le circuit intégré comporte une unité centrale (13), un module mémoire (151) incluant les premiers moyens de mémoire et les moyens de mémoire du type à écriture unique, et des registres volatils (150) associés au module mémoire (151), accessibles par l’unité centrale (13) et destinés à être chargés par une partie au moins du contenu du module mémoire, et le placement (Sll) dans le mode d’analyse avec autorisation de débogage (ETAL), comprend, avant d’autoriser le débogage, un effacement (SI 100) du contenu des registres volatils et une inhibition de lecture (SI 101) des registres volatils, d’écriture dans les registres volatils et de rechargement des registres volatils.
- 13. Procédé selon la revendication 12, dans lequel ladite inhibition est contrôlée par le passage d’une première valeur logique à une deuxième valeur logique d’au moins un bit d’inhibition (BINHi), et dans lequel lorsque ledit au moins un bit d’inhibition est passé de sa première valeur logique à sa deuxième valeur logique, seule une réinitialisation ou une mise sous tension du circuit intégré fait retourner ledit au moins un bit d’inhibition (BINHi) vers sa première valeur logique.
- 14. Procédé selon la revendication 13, dans lequel les premiers moyens de mémoire (151) comportent des emplacements mémoires (EMP3) stockant des données sensibles (DDS) incluant le premier mot de passe de référence, et les moyens de mémoire du type à écriture unique comportent un premier emplacement mémoire (EMP1) stockant le premier bit de référence et on affecte trois bits d’inhibition (BINH3) respectivement dédiés aux inhibitions de lecture, d’écriture et de rechargement des registres volatils associés aux emplacements mémoire stockant lesdites données sensibles, et trois bits d’inhibition (BINHI) respectivement dédiés aux inhibitions de lecture, d’écriture et de rechargement du registre volatil (1501) associé audit premier emplacement mémoire.
- 15. Procédé selon les revendications 9 et 14, dans lequel les emplacements mémoires stockant des données sensibles stockent le deuxième mot de passe de référence, les moyens de mémoire du type à écriture unique comportent un deuxième emplacement mémoire (EMP2) stockant le deuxième bit de référence et on affecte trois autres bits d’inhibition (BINH2) respectivement dédiés aux inhibitions de lecture, d’écriture et de rechargement du registre volatil (1502) associé audit deuxième emplacement mémoire.
- 16. Procédé selon l’une des revendications précédentes, dans lequel après réception de ladite deuxième commande assortie du deuxième mot de passe valide, on interdit tout nouveau placement ultérieur du circuit intégré dans son mode d’analyse avec autorisation de débogage.
- 17. Procédé selon l’une des revendications 1 à 15, dans lequel après réception de ladite deuxième commande assortie du deuxième mot de passe valide, on autorise au moins un nouveau placement ultérieur du circuit intégré dans son mode d’analyse avec autorisation de débogage.
- 18. Produit, comprenant un circuit intégré, capable de fonctionner, en réponse à chaque réinitialisation ou mise sous tension, dans un mode d’amorçage avec interdiction de débogage ou dans un mode d’analyse avec autorisation de débogage, le circuit intégré (1) comprenant un port d’accès de test (10), et des moyens de commande (13, 14, 15) configurés pour, lorsque le circuit intégré n’a jamais été placé dans son mode d’analyse avec autorisation de débogage, prendre c) en réponse à chaque réinitialisation ou mise sous tension du circuit intégré et en absence de réception sur le port d’accès de test (10) d’une première commande (CMD1) assortie d’un premier mot de passe valide, un premier état dans lequel ils sont aptes à placer le circuit intégré dans son mode d’amorçage avec interdiction de débogage, et d) en présence d’une réception sur le port d’accès de test (10) de ladite première commande (CMD1) assortie du premier mot de passe valide à la suite d’une réinitialisation ou d’une mise sous tension, prendre un deuxième état dans lequel ils sont aptes à placer le circuit intégré dans son mode d’analyse avec autorisation de débogage, et maintenir le circuit intégré dans son mode d’analyse avec autorisation de débogage au moins tant qu’une deuxième commande (CMD2) assortie d’un deuxième mot de passe valide n’est pas reçue.
- 19. Produit selon la revendication 18, dans lequel dans leur deuxième état, les moyens de commande (13, 14, 15) sont aptes à placer le circuit intégré dans un mode d’attente avec interdiction de débogage, à la suite de ladite réinitialisation ou mise sous tension du circuit intégré, et à placer le circuit intégré dans son mode d’analyse avec autorisation de débogage, à la suite de chaque réinitialisation ou mise sous tension suivante du circuit intégré.
- 20. Produit selon la revendication 18 ou 19, comprenant en outre une unité centrale (13), une mémoire d’amorçage (14) et un module mémoire (151) comportant des premiers moyens de mémoire et des moyens de mémoire du type à écriture unique, et dans lequel les moyens de commande sont répartis au moins dans l’unité centrale (13), la mémoire d’amorçage (14) et le module mémoire (151).
- 21. Produit selon la revendication 20, dans lequel les moyens de mémoire du type à écriture unique comprennent des moyens de mémoire du type fusible (151).
- 22. Produit selon la revendication 20 ou 21, dans lequel les premiers moyens de mémoire (151) sont du type à écriture unique.
- 23. Produit selon l’une des revendications 20 à 22, dans lequel les moyens de commande (13, 14, 15) sont configurés pour, dans le deuxième état, effectuer au moins une comparaison du premier mot de passe reçu avec un premier mot de passe de référence stocké dans les premiers moyens de mémoire, le premier mot de passe étant considéré comme valide en cas de succès de ladite au moins une comparaison, et si le premier mot de passe est considéré comme valide, stocker un premier bit de référence ayant une première valeur logique de référence dans les moyens de mémoire du type à écriture unique.
- 24. Produit selon les revendications 19 et 23, dans lequel les moyens de commande (13, 14, 15) sont configurés pour, pour placer le circuit intégré dans son mode d’attente, effectuer ladite au moins une comparaison, le stockage éventuel du premier bit de référence ayant ladite première valeur logique de référence, et interdire le débogage, et les moyens de commande (13, 14, 15) sont configurés pour, pour placer le circuit intégré dans son mode d’analyse avec autorisation de débogage, vérifier que le premier bit de référence a bien ladite première valeur logique de référence et si tel est le cas, autoriser le débogage.
- 25. Produit selon la revendication 23 ou 24, dans lequel le circuit intégré (1) est considéré comme n’ayant jamais été placé dans son mode d’analyse avec autorisation de débogage lorsque le premier bit de référence a une valeur logique différente de ladite valeur logique de référence.
- 26. Produit selon l’une des revendications 18 à 25, dans lequel les moyens de commande (13, 14, 15) sont configurés pour vérifier la valeur logique d’au moins un bit de contrôle, ladite interdiction de débogage correspondant à une première valeur logique de contrôle dudit au moins un bit de contrôle et ladite autorisation de débogage correspondant à une deuxième valeur logique de contrôle dudit au moins un bit de contrôle, et les moyens de commande sont configurés pour, à la suite de chaque initialisation ou mise sous tension du circuit intégré, conférer audit au moins un bit de contrôle ladite première valeur logique de contrôle, et pour maintenir cette première valeur logique de contrôle dans le mode d’amorçage avec interdiction de débogage.
- 27. Produit selon la revendication 26 prise en combinaison avec la revendication 24 ou 25, dans lequel les moyens de commande (13, 14, 15) sont configurés pour maintenir cette première valeur logique de contrôle dans ledit mode d’attente pour interdire le débogage, et pour conférer audit au moins un bit de contrôle ladite deuxième valeur logique de contrôle pour autoriser le débogage dans le mode d’analyse avec autorisation de débogage.
- 28. Produit selon l’une des revendications 18 à 27 prise en combinaison avec la revendication 23, dans lequel les moyens de commande (13, 14, 15) sont configurés pour, à la réception sur ledit port d’accès de test (10) de ladite deuxième commande assortie du deuxième mot de passe valide, effectuer une comparaison du deuxième mot de passe reçu avec un deuxième mot de passe de référence stocké dans les premiers moyens de mémoire, le deuxième mot de passe étant considéré comme valide en cas de succès de la comparaison, et si le deuxième mot de passe est considéré comme valide, stocker dans les moyens de mémoire du type à écriture unique un deuxième bit de référence ayant une deuxième valeur logique de référence.
- 29. Produit selon la revendication 28, dans lequel les moyens de commande (13, 14, 15) sont configurés pour, après avoir stocké dans les moyens de mémoire du type à écriture unique, le deuxième bit de référence affecté de sa deuxième valeur logique de référence, placer le circuit intégré dans un mode d’attente avec interdiction de débogage et vérifier après la réinitialisation ou la mise sous tension suivante du circuit intégré, que le deuxième bit de référence a bien sa deuxième valeur logique de référence, et si tel est le cas placer le circuit intégré dans son mode d’analyse avec autorisation de débogage.
- 30. Produit selon les revendications 27 et 29, dans lequel les moyens de commande (13, 14, 15) sont configurés pour, dans ledit mode d’attente avec interdiction de débogage, maintenir ladite première valeur logique de contrôle pour ledit au moins un bit de contrôle.
- 31. Produit selon l’une des revendications 18 à 30 prise en combinaison avec l’une des revendications 20 à 22, dans lequel le circuit intégré (1) comporte en outre des registres volatils (150) associés au module mémoire, accessibles par l’unité centrale (13) et destinés à être chargés par une partie au moins du contenu du module mémoire (151), et les moyens de commande sont configurés pour avant d’autoriser le débogage, effacer le contenu des registres volatils et comportent des moyens d’inhibition (152) configurés pour, après effacement du contenu des registres volatils (150), effectuer une inhibition de lecture des registres volatils, d’écriture dans les registres volatils et de rechargement des registres volatils.
- 32. Produit selon la revendication 31, dans lequel les moyens d’inhibition (152) sont couplés aux registres volatils (150) et sont configurés pour, en réponse à un signal de demande d’inhibition délivré par l’unité centrale (13), activer ladite inhibition par le passage d’un premier état à un deuxième état d’au moins un signal logique d’inhibition (SIHNi), et les moyens d’inhibition (152) sont configurés pour, lorsque ledit au moins un signal logique d’inhibition est passé de son premier état à son deuxième état, ne pouvoir délivrer le signal logique d’inhibition ayant son premier état qu’en réponse à une réinitialisation ou une mise sous tension du circuit intégré.
- 33. Produit selon la revendication 32, dans lequel les premiers moyens de mémoire comportent des emplacements mémoires (EMP3) destinés à stocker des données sensibles (DDS) incluant le premier mot de passe de référence, les moyens de mémoire du type à écriture unique comportent un premier emplacement mémoire (EMP1) destiné à stocker le premier bit de référence et les moyens d’inhibition (152) sont configurés pour délivrer des signaux logiques d’inhibition respectivement dédiés aux inhibitions de lecture, d’écriture et de rechargement des registres volatils associés aux emplacements mémoire stockant lesdites données sensibles, et trois signaux logiques d’inhibition respectivement dédiés aux inhibitions de lecture, d’écriture et de rechargement du registre volatil associé audit premier emplacement mémoire.
- 34. Produit selon les revendications 28 et 33, dans lequel les emplacements mémoires (EMP3) destinés à stocker des données sensibles sont également destinés à stocker le deuxième mot de passe de référence, les moyens de mémoire du type à écriture unique (151) comportent un deuxième emplacement mémoire (EMP2) destiné à stocker le deuxième bit de référence et les moyens d’inhibition (152) sont configurés pour délivrer trois autres signaux logiques d’inhibition respectivement dédiés aux inhibitions de lecture, d’écriture et de rechargement du registre (13, 14, 15) volatil associé audit deuxième emplacement mémoire.
- 35. Produit selon l’une des revendications 18 à 34, dans lequel les moyens de commande (13, 14, 15) sont configurés pour, après réception de ladite deuxième commande assortie du deuxième mot de passe valide, interdire tout nouveau placement ultérieur du circuit intégré dans son mode d’analyse avec autorisation de débogage.
- 36. Produit selon les revendications 23, 28 et 35, dans lequel les moyens de commande sont configurés pour interdire tout nouveau passage dans le mode d’analyse avec autorisation de débogage lorsque le premier bit de référence et le deuxième bit de référence ont respectivement leur première et deuxième valeurs de référence.
- 37. Produit selon l’une des revendications 18 à 34, dans lequel les moyens de commande (13, 14, 15) sont configurés pour, après réception de ladite deuxième commande assortie du deuxième mot de passe valide, autoriser au moins un nouveau placement ultérieur du circuit intégré dans son mode d’analyse avec autorisation de débogage.
- 38. Produit selon l’une des revendications 18 à 37, dans lequel le port d’accès de test (10) est conforme à la norme JTAG.
- 39. Produit selon l’une des revendications 18 à 38, dans lequel le circuit intégré comprend un système sur puce (1).
- 40. Produit selon l’une des revendications 18 à 39, dans lequel le produit comprend un composant électronique.
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR1759500A FR3072195B1 (fr) | 2017-10-11 | 2017-10-11 | Procede de gestion d'un retour de produit pour analyse et produit correspondant |
US16/155,953 US10705141B2 (en) | 2017-10-11 | 2018-10-10 | Method for managing a return of a product for analysis and corresponding product |
CN201811179513.8A CN109656869B (zh) | 2017-10-11 | 2018-10-10 | 用于管理产品返回以供分析的方法和相应的产品 |
US16/909,696 US11143701B2 (en) | 2017-10-11 | 2020-06-23 | Method for managing a return of a product for analysis and corresponding product |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR1759500A FR3072195B1 (fr) | 2017-10-11 | 2017-10-11 | Procede de gestion d'un retour de produit pour analyse et produit correspondant |
FR1759500 | 2017-10-11 |
Publications (2)
Publication Number | Publication Date |
---|---|
FR3072195A1 FR3072195A1 (fr) | 2019-04-12 |
FR3072195B1 true FR3072195B1 (fr) | 2019-10-18 |
Family
ID=61521566
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
FR1759500A Expired - Fee Related FR3072195B1 (fr) | 2017-10-11 | 2017-10-11 | Procede de gestion d'un retour de produit pour analyse et produit correspondant |
Country Status (3)
Country | Link |
---|---|
US (2) | US10705141B2 (fr) |
CN (1) | CN109656869B (fr) |
FR (1) | FR3072195B1 (fr) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11373726B2 (en) | 2019-04-03 | 2022-06-28 | Texas Instruments Incorporated | Management of multiple memory in-field self-repair options |
US11182308B2 (en) * | 2019-11-07 | 2021-11-23 | Micron Technology, Inc. | Semiconductor device with secure access key and associated methods and systems |
FR3111438B1 (fr) * | 2020-06-10 | 2022-08-05 | St Microelectronics Alps Sas | Dispositifs et procédés de sécurisation d’un système sur puce |
US20210012855A1 (en) * | 2020-09-25 | 2021-01-14 | Sankaran M. Menon | Method and Apparatus for enabling Multiple Return Material Authorizations (RMAs) on an Integrated Circuit Device |
CN114398216B (zh) * | 2022-02-15 | 2022-11-15 | 深圳市航顺芯片技术研发有限公司 | 链路控制方法、装置、***、设备及可读存储介质 |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4409056B2 (ja) * | 2000-06-30 | 2010-02-03 | 富士通株式会社 | Lsi,lsiを搭載した電子装置、デバッグ方法、lsiのデバッグ装置 |
US7266848B2 (en) * | 2002-03-18 | 2007-09-04 | Freescale Semiconductor, Inc. | Integrated circuit security and method therefor |
US6769622B1 (en) * | 2003-03-14 | 2004-08-03 | Stmicroelectronics, Inc. | System and method for simulating universal serial bus smart card device connected to USB host |
US7248069B2 (en) * | 2003-08-11 | 2007-07-24 | Freescale Semiconductor, Inc. | Method and apparatus for providing security for debug circuitry |
CA2536610C (fr) * | 2004-02-05 | 2013-04-30 | Research In Motion Limited | Interface de securite de port de debogage |
US7442583B2 (en) * | 2004-12-17 | 2008-10-28 | International Business Machines Corporation | Using electrically programmable fuses to hide architecture, prevent reverse engineering, and make a device inoperable |
US7730545B2 (en) * | 2005-05-23 | 2010-06-01 | Arm Limited | Test access control for secure integrated circuits |
EP1785905A1 (fr) * | 2005-11-13 | 2007-05-16 | Honeywell International Inc. | Standard de cryptage avancé pour fournir une interface clé matérielle |
US8010843B2 (en) * | 2005-12-14 | 2011-08-30 | American Megatrends, Inc. | System and method for debugging a target computer using SMBus |
DE102006046456B4 (de) * | 2006-09-29 | 2009-11-05 | Infineon Technologies Ag | Schaltkreis-Anordnung, Verfahren zum Hochfahren einer Schaltkreis-Anordnung, Verfahren zum Betreiben einer Schaltkreis-Anordnung und Computerprogrammprodukte |
EP2122530A2 (fr) * | 2006-12-15 | 2009-11-25 | Hans Martin Boesgaard Sørensen | Authentification de données numériques |
US7886150B2 (en) * | 2007-05-11 | 2011-02-08 | Mips Technologies, Inc. | System debug and trace system and method, and applications thereof |
US7681078B2 (en) * | 2007-05-18 | 2010-03-16 | Freescale Semiconductor, Inc. | Debugging a processor through a reset event |
US8156317B2 (en) * | 2008-05-16 | 2012-04-10 | Ati Technologies Ulc | Integrated circuit with secure boot from a debug access port and method therefor |
US8332641B2 (en) * | 2009-01-30 | 2012-12-11 | Freescale Semiconductor, Inc. | Authenticated debug access for field returns |
US8276199B2 (en) * | 2009-04-09 | 2012-09-25 | Freescale Semiconductor, Inc. | Method and device for secure test port authentication |
KR101554326B1 (ko) * | 2009-05-21 | 2015-09-18 | 삼성전자주식회사 | 저장 장치 및 그것의 동작 방법 |
CN101620656B (zh) * | 2009-07-29 | 2012-11-28 | 深圳国微技术有限公司 | 安全jtag电路及保护芯片内部信息安全的方法 |
JP5419776B2 (ja) * | 2010-03-30 | 2014-02-19 | ルネサスエレクトロニクス株式会社 | 半導体装置及びデータ処理方法 |
CN103257937B (zh) * | 2012-02-15 | 2016-09-14 | 京微雅格(北京)科技有限公司 | 一种保护fpga芯片内部配置存储器的方法和装置 |
US10771448B2 (en) * | 2012-08-10 | 2020-09-08 | Cryptography Research, Inc. | Secure feature and key management in integrated circuits |
CN104777761B (zh) * | 2014-01-15 | 2018-04-27 | 上海华虹集成电路有限责任公司 | 实现mcu安全性的方法及电路 |
FR3021137B1 (fr) * | 2014-05-19 | 2016-07-01 | Keolabs | Dispositif d'interface utilisateur |
US10223531B2 (en) * | 2016-12-30 | 2019-03-05 | Google Llc | Secure device state apparatus and method and lifecycle management |
-
2017
- 2017-10-11 FR FR1759500A patent/FR3072195B1/fr not_active Expired - Fee Related
-
2018
- 2018-10-10 CN CN201811179513.8A patent/CN109656869B/zh active Active
- 2018-10-10 US US16/155,953 patent/US10705141B2/en active Active
-
2020
- 2020-06-23 US US16/909,696 patent/US11143701B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US11143701B2 (en) | 2021-10-12 |
CN109656869B (zh) | 2023-06-13 |
FR3072195A1 (fr) | 2019-04-12 |
US10705141B2 (en) | 2020-07-07 |
CN109656869A (zh) | 2019-04-19 |
US20190107576A1 (en) | 2019-04-11 |
US20200319247A1 (en) | 2020-10-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
FR3072195B1 (fr) | Procede de gestion d'un retour de produit pour analyse et produit correspondant | |
EP1616242B1 (fr) | Procede et dispositif pour controler l'acces a un periferique | |
EP2280364B1 (fr) | Détecteur d'injection de fautes dans un circuit intégré | |
FR2822971A1 (fr) | Systeme et procede de controle d'acces a des donnees protegees stockees dans une memoire | |
FR2711833A1 (fr) | Circuit intégré contenant une mémoire protégée et système sécurisé utilisant ledit circuit intégré. | |
FR2849226A1 (fr) | Procede et dispositif de securisation de l'execution d'un programme informatique. | |
EP3761199A1 (fr) | Procédé d'exécution d'un code binaire d'une fonction sécurisée par un microprocesseur | |
EP3712795B1 (fr) | Procédé d'exécution, par un microprocesseur, d'un code binaire comportant une fonction appelante et une fonction appelee | |
EP2724237B1 (fr) | Procédé de gestion de l'endurance de mémoires non volatiles | |
FR2923627A1 (fr) | Procede de deverrouillage d'un calculateur de controle moteur. | |
EP1983436A1 (fr) | Contrôle d'intégrité d'une mémoire externe à un processeur | |
EP3382588B1 (fr) | Procédé de protection d'un dispositif électronique contre des attaques par injection de faute pendant l'exécution d'un programme | |
FR3094107A1 (fr) | Procédé d'exécution d'un code binaire d'une fonction sécurisée par un microprocesseur | |
EP3327607B1 (fr) | Procede de verification de donnees | |
FR3045881A1 (fr) | Procede de verification de fonctionnalites d'un logiciel destine a etre embarque dans un composant cryptographique, systeme | |
EP3042334A1 (fr) | Procédé de mise en place de moyens de sécurité dans un dispositif électronique à mémoire, et dispositif pour la mise en uvre dudit procédé | |
WO2023117270A1 (fr) | Module et procédé de sécurisation d'un équipement informatique | |
FR3105484A1 (fr) | Méthode de vérification dynamique de l’intégrité d’un code machine | |
EP4131041A1 (fr) | Procédé de vérification d'une exécution d'un programme logiciel | |
EP4187392A1 (fr) | Procédé de gestion d'une mémoire au sein d'un système sur puce | |
FR3118219A1 (fr) | Procédé de protection d’un système, par exemple un microcontrôleur, et sytème correspondant | |
EP2860669A1 (fr) | Procédé mis en oeuvre dans un microcircuit et dispositif associé | |
CA3179748A1 (fr) | Proced de verrouillage d'une memoire non-volatile reinscriptible et dispositif electronique mettant en oeuvre ledit procede | |
FR2910658A1 (fr) | Systemes electroniques securises,procedes de securisation et utilisations de tels systemes | |
FR2976697A1 (fr) | Transfert securise entre memoire non-volatile et memoire volatile |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PLFP | Fee payment |
Year of fee payment: 2 |
|
PLSC | Publication of the preliminary search report |
Effective date: 20190412 |
|
PLFP | Fee payment |
Year of fee payment: 3 |
|
ST | Notification of lapse |
Effective date: 20210605 |