Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
SECURITY MODULE COMPONENT
Document Type and Number:
WIPO Patent Application WO/2005/119583
Kind Code:
A2
Abstract:
The aim of said invention is to optimally improve chipboard security by preventing fraudulent controls by a cryptographic processor or processors which use external signals for disturbing the normal operation of a processor or processors. The inventive security module IC component comprises at least two CPU A and CPU B processors, each of which is connected to ROM A and ROM B program memories, to programmable non-volatile and erasable data-containing memories (EEPROM) EEPROM A and EEPROM B and to random access memories (RAM) RAM A, RAM B for temporary storing data during processing, wherein the first CPU A processor comprises a bus for interfacing with the external of the IC component, the second CPU B processor is connected to the first CPU processor by means of a forwarding memory DPR, the non-volatile programmable and erasable memory EEPROM A of the first CPU A processor has a read access R only thereto and the second CPU B processor is provided with a read/write R/W access to said non-volatile programmable and erasable memory EEPROM A of the first CPU A processor.

Inventors:
KUDELSKI ANDRE (CH)
Application Number:
PCT/EP2005/052519
Publication Date:
December 15, 2005
Filing Date:
June 02, 2005
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
NAGRACARD SA (CH)
KUDELSKI ANDRE (CH)
International Classes:
G06K19/00; G07F7/10; G11C16/04; (IPC1-7): G06K19/00
Foreign References:
US5666412A1997-09-09
US5774546A1998-06-30
DE19811646A11999-09-23
Attorney, Agent or Firm:
Wenger, Joel (Route de Clémenty 62, Nyon, CH)
Download PDF:
Claims:
REVENDICATIONS
1. Composant IC de module de sécurité comprenant au moins deux processeurs CPU A, CPU B connectés chacun à des mémoires programme ROM A, ROM B, à des mémoires nonvolatiles programmables et effaçables (EEPROM) EEPROM A, EEPROM B contenant des données et à des mémoires vives (RAM) RAM A, RAM B servant au stockage temporaire de données en cours de traitement, le premier processeur CPU A ayant un bus d'interfaçage avec l'extérieur du composant IC, caractérisé en ce que le second processeur CPU B est connecté au premier processeur CPU A par l'intermédiaire d'une mémoire d'échange DPR, la mémoire nonvolatile programmable et effaçable EEPROM A du premier processeur CPU A étant uniquement en accès lecture R pour ledit premier processeur CPU A, le second processeur CPU B disposant d'un accès en lecture et écriture R/W sur ladite mémoire nonvolatile programmable et effaçable EEPROM A du premier processeur CPU A.
2. Composant selon la revendication 1 , caractérisé en ce la mémoire d'échange DPR consiste en une mémoire vive destinée au stockage temporaire de données, ladite mémoire DPR étant équipée de deux ports, configurés chacun à la fois en lecture et en écriture R/W, dont l'un est connecté au premier processeur CPU A et l'autre au second processeur CPU B.
3. Composant selon les revendications 1 et 2, caractérisé en ce qu'il est monté dans un support portable comportant des accès ACC destinés à l'échange de données avec une unité de traitement extérieure, lesdits accès ACC étant reliés au premier processeur CPU A via le bus d'interfaçage.
4. Composant selon les revendications 1 à 3, caractérisé en ce que le premier processeur CPU A comprend des moyens d'exécution de tâches connues des modules de sécurité et que le second processeur CPU B comprend des moyens de gestion et d'exécution d'opérations sécurisées telles que l'authentification, le décryptage ou la gestion de clés et des algorithmes de décryptage.
5. Composant selon les revendications 1 à 4, caractérisé en ce que la mémoire programme ROM B et la mémoire nonvolatile programmable et effaçable EEPROM B contiennent les programmes ainsi que les algorithmes nécessaires à la décryption selon des instructions communiquées par Ie premier processeur CPU A via la mémoire vive d'échange DPR.
6. Composant selon la revendication 4, caractérisé en ce que le second processeur CPU B comprend des moyens de vérification de données reçues via les accès ACC et la mémoire vive d'échange DPR, lesdites données étant stockées temporairement dans la mémoire nonvolatile EEPROM B lors de la vérification.
7. Composant selon les revendications 2 à 6, caractérisé en ce que Ie second processeur CPU B comprend des moyens de stockage via Ie port R/W des données vérifiées dans la mémoire nonvolatile EEPROM A.
8. Composant selon la revendication 2, caractérisé en ce qu'il est monté dans une carte dotée de contacts galvaniques, de format ISO 7816, formant les accès ACC, ladite carte jouant le rôle de module sécurité amovible dans un décodeur de télévision à péage.
9. Composant selon la revendication 1, caractérisé en ce qu'il comprend au moins un processeur supplémentaire connecté en'lecture / écriture à un premier port d'une mémoire nonvolatile programmable et effaçable supplémentaire, le second port de ladite mémoire étant connecté en lecture seule au premier processeur.
10. Composant selon la revendication 1, caractérisé en ce qu'il comprend au moins un processeur supplémentaire connecté en lecture / écriture à un port supplémentaire de la mémoire nonvolatile programmable et effaçable, ladite mémoire étant connectée en lecture seule au premier processeur.
Description:
COMPOSANT POUR MODULE DE SÉCURITÉ

Domaine de l'invention

La présente invention concerne le domaine des modules de sécurité contenant au moins un processeur et des mémoires généralement sous la forme de cartes à puce. Celles-ci sont disponibles avec ou sans contacts et sont utilisées dans diverses applications nécessitant des transactions sécurisées comme par exemple le paiement, l'échange de données confidentielles ou le contrôle d'accès.

Art antérieur

De façon bien connue de l'homme du métier, le module de sécurité peut être réalisé essentiellement selon trois formes distinctes. L'une d'elles est une carte à microprocesseur, une carte à puce, ou plus généralement un module électronique (ayant une forme de clé, de badge,...)- Un tel module est généralement amovible et connectable à un décodeur de télévision numérique à péage. La forme avec contacts électriques est la plus utilisée, mais n'exclut pas une liaison sans contact par exemple de type ISO 14443.

Une deuxième forme connue est celle d'un boîtier de circuit intégré placé, généralement de façon définitive et inamovible dans le boîtier du décodeur. Une variante est constituée d'un circuit soudé ou monté sur un socle voire un connecteur tel qu'un connecteur de module SIM.

Dans une troisième forme, le module de sécurité est intégré dans un boîtier de circuit intégré ayant également une autre fonction, par exemple dans un module de désembrouillage du décodeur ou le microprocesseur du décodeur.

Plus particulièrement, dans le cadre de la télévision numérique à péage ces modules de sécurité sont sous la forme de cartes. Elles servent de moyens de personnalisation et de sécurisation de l'accès à des programmes cryptés reçus par des décodeurs installés chez les abonnés.

Afin d'améliorer la sécurité d'un accès à des données payantes et empêcher diverses tentatives de fraude, plusieurs solutions ont été adoptées telles que: une encapsulation matérielle du module de sécurité, des algorithmes d'encryption sophistiqués, des clés d'encryption / décryption de taille binaire élevée, multiplicité des cartes ou des processeurs comme décrit dans les documents US5666412 ou US5774546.

Dans ces deux derniers exemples un décodeur de télévision à péage est équipé d'un lecteur de carte à deux embouchures dans chacune desquelles est insérée une carte à puce. La première carte comprend un élément d'identification comportant des informations personnelles et officielles partiellement cryptées. La deuxième carte à puce comprend un élément d'application contenant des clés d'accès et des algorithmes permettant l'accès aux informations contenues dans l'élément d'identification de la première carte. Une telle configuration se présente notamment dans un dispositif de contrôle parental qui nécessite un deuxième niveau de contrôle d'accès en utilisant une clé particulière.

Selon une variante du document cité, les puces ou circuits intégrés de chacune des deux cartes sont regroupées sur un seul support constituant ainsi une seule carte dont les circuits intégrés sont accessibles séparément par le lecteur de carte. Cette carte inclut les données nécessaires définissant plusieurs niveaux de décryption permettant l'accès aux données contenues dans l'un ou l'autre des deux circuits intégrés.

Les moyens de l'art antérieur mis en œuvre pour améliorer la sécurité des cartes d'accès à des programmes cryptés se sont parfois montrés vulnérables à certaines attaques, notamment aux attaques par perturbations ou "glitch attacks". Il s'agit d'une méthode de violation de la sécurité d'un processeur cryptographique par interruption de l'exécution d'une ou plusieurs instructions. L'attaquant analyse les signaux générés par une séquence d'instructions spécifiques issue du processeur et au moment précis de l'exécution d'une instruction de comparaison ou de saut, il applique des signaux de perturbation sur le bus relié au processeur via le lecteur de carte par exemple. Ces signaux sous forme de train d'impulsions brèves bloquent l'exécution d'instructions ou court-circuitent des programmes critiques d'authentification permettant ainsi un libre accès à des données protégées. But de l'invention

Le but de la présente invention est d'améliorer de manière optimale la sécurité des cartes à puces en empêchant le contrôle frauduleux du ou des processeurs cryptographiques au moyen de signaux externes venant perturber le déroulement normal des tâches du ou des processeurs.

Description sommaire de l'invention

Le but de l'invention est atteint par un composant de module de sécurité comprenant au moins deux processeurs connectés chacun à des mémoires programme, à des mémoires non-volatiles programmables et effaçables (EEPROM) contenant des données et à des mémoires vives (RAM) servant au stockage temporaire de données en cours de traitement, le premier processeur ayant un bus d'interfaçage avec l'extérieur du composant, caractérisé en ce que le second processeur est connecté au premier processeur par l'intermédiaire d'une mémoire d'échange (DPR), la mémoire non-volatile programmable et effaçable du premier processeur étant uniquement en accès lecture pour ledit premier processeur, Ie second processeur disposant d'un accès en lecture et écriture sur ladite mémoire non-volatile programmable et effaçable du premier processeur.

On entend par composant une unité incluant tous les éléments nécessaires aux opérations cryptographiques et réunis sur un support unique afin d'en assurer la sécurité. Ces composants sont généralement composés d'une seule puce électronique, puce qui dispose d'une protection anti-intrusion mécanique ou électronique. D'autres structures composées par exemple de deux puces électroniques sont également assimilées à l'appellation "composant" pour autant qu'elles soient intimement liées et fournies par les distributeurs comme un seul élément.

Ce composant fabriqué de préférence sur une seule puce de silicium est en général implanté dans un support portable, en général une carte à puce amovible. Cette dernière est équipée d'accès reliés au premier processeur constitués soit par un ensemble de contacts disposé sur l'une des faces de la carte selon la norme ISO 7816, soit par une antenne permettant un échange de données par voie électromagnétique sans contact galvanique (norme ISO 14443) avec un dispositif de lecture - écriture approprié.

Selon un autre mode de réalisation du composant, ce dernier est une partie d'un module électronique plus important comprenant des fonctionnalités de traitement des données encryptées. Une partie de ce module traite par exemple les données encryptées DVB et le composant n'est qu'une partie du silicium en charge de ces traitements. Il est à noter que le module électronique peut soit être monté dans l'unité de réception, soit être connecté d'une manière amovible à ladite unité de réception.

La configuration du composant selon la présente invention permet d'isoler totalement le second processeur par rapport aux accès extérieurs. En effet, il n'y aucune connexion directe entre les deux processeurs qui permettrait d'accéder au second processeur à l'aide d'instructions adéquates transmises au premier processeur via les accès extérieurs. Les mémoires reliant les deux processeurs font office de barrière bloquant d'une part des commandes indésirables provenant des accès extérieurs et d'autre part, elles empêchent l'analyse, via les mêmes accès, des signaux qui transitent entre les deux processeurs.

Le premier processeur ne peut de lui-même modifier son programme. Toute modification de son programme doit être vérifiée par le second processeur.

Le second processeur peut ainsi effectuer des opérations de cryptographie indépendamment des opérations exécutées par le premier processeur. De plus, ce dernier ne peut pas effectuer certaines tâches critiques relatives à la sécurité sans l'autorisation du second processeur.

L'invention sera mieux comprise grâce à la description détaillée qui va suivre et qui se réfère à l'unique figure annexée donnée à titre d'exemple nullement limitatif.

Description sommaire de la figure

La figure 1 illustre un schéma bloc d'un composant de module de sécurité comprenant deux processeurs connectés chacun à un jeu de mémoires et reliés entre eux par une mémoire d'échange. Description détaillée de l'invention et exemples de mise en oeuyre

Le composant IC de la figure 1 est réalisé en général sur une seule puce qui est montée sur un support portable constitué, selon un mode de réalisation préféré, par une carte munie d'accès ACC sous forme de contacts ou d'une antenne.

Le composant IC comprend deux processeurs CPU A, CPU B reliés par l'intermédiaire d'une mémoire vive d'échange DPR et par une mémoire non-volatile programmable et effaçable EEPROM A. Le premier processeur CPU A est connecté d'une part aux accès ACC et d'autre part à une mémoire vive RAM A et à une mémoire morte ROM A. Le second processeur CPU B est également connecté à une mémoire vive RAM B et à une mémoire morte ROM B ainsi qu'à une mémoire non- volatile programmable et effaçable EEPROM B.

Selon une variante, une mémoire supplémentaire non-volatile programmable et effaçable STAT peut être connectée en mode lecture / écriture R/W au premier processeur CPU A. Elle sert à stocker par exemple des données d'historique de fonctionnement du composant qui seraient accessibles en lecture depuis l'extérieur via les accès ACC.

Une des particularités essentielles selon l'invention consiste en ce que la connexion du premier processeur CPU A avec la mémoire non-volatile programmable et effaçable EEPROM A est configurée en lecture seule R tandis que la connexion avec le second processeur CPU B est configurée à la fois en lecture et en écriture R/W. Un autre aspect de cette invention est la présence de la mémoire vive d'échange DPR dont les connexions à chacun des processeurs CPU A et CPU B sont configurées en lecture et en écriture R/W.

Le premier processeur CPU A de ce composant, accessible depuis l'extérieur, est chargé d'exécuter des tâches connues des modules de sécurité c'est-à-dire telles que la gestion des mots de contrôle CW et des messages de contrôle ECM ainsi que la vérification des droits de la carte. On peut imaginer que des opérations sécurisées telles que l'authentification, le décryptage de message de gestion EMM ou la gestion de clés et des algorithmes de décryptage sont réservées au second processeur CPU B. Le second processeur CPU B gère et exécute toutes les opérations sécurisées faisant appel à des clés d'encryption / décryption stockées, par exemple, dans la mémoire morte ROM B. La mémoire non-volatile programmable et effaçable EEPROM B contient les programmes ainsi que les algorithmes nécessaires à la décryption selon des instructions communiquées par le premier processeur CPU A via la mémoire vive d'échange DPR.

Grâce à la configuration en lecture seule du premier processeur CPU A, le contenu de la mémoire non-volatile programmable et effaçable EEPROM A ne peut pas être modifié depuis l'extérieur. Toute instruction du processeur issue de commandes reçues via les accès ACC est stockée temporairement dans la mémoire vive d'échange DPR et son exécution est vérifiée par Ie second processeur CPU B avant que les données résultantes soit stockées par ledit second processeur CPU B dans la mémoire non-volatile EEPROM A via le port RA/V.

Selon une variante, le processeur CPU B peut contrôler directement le processeur CPU A au moyen d'une connexion C sans passer par la mémoire d'échange DPR. Un tel contrôle permet par exemple une activation ou un blocage rapide du processeur CPU A en fonction du résultat d'une vérification effectuée par le processeur CPU B. -r Une carte comportant un composant tel que décrit plus haut peut être utilisée dans un décodeur de télévision numérique à péage où une sécurité élevée est exigée d'une part, au niveau des droits d'accès à des données cryptées d'un flux audio vidéo diffusé par câble ou satellite et d'autre part, au niveau des logiciels de fonctionnement de la carte.

Une fonction de la carte consiste à contrôler l'accès à des données cryptées d'un flux audio vidéo reçu par le décodeur en vérifiant des messages de contrôle ECM accompagnant lesdites données cryptées. Lorsque cette vérification aboutit, le décryptage des données du flux est autorisé en fonction des droits d'accès aux données audio vidéo inclus dans le message ECM.

Pour définir les droits d'un utilisateur, le centre de gestion envoie des messages d'administration EMM qui sont généralement individuels à savoir encryptés par une clé unique pour cet utilisateur. Selon un exemple d'application de l'invention, ce type de message ne peut être décrypté par le processeur CPU A puisque ce dernier ne dispose pas de la clé personnelle unique de l'utilisateur. Cette clé peut être symétrique ou asymétrique (clé privée et clé publique).

La mémoire qui va contenir ce droit est la mémoire EEPROM A dans notre exemple. Cette mémoire étant accessible en écriture uniquement par le processeur CPU B, le processeur CPU A va transmettre le message d'administration EMM au processeur CPU B via la mémoire d'échange DPR. Le processeur CPU B va débuter son cycle de décryption du message, et après vérification, va mettre à jour la mémoire EEPROM A avec les nouveaux droits.

II est également possible de placer ces droits dans la mémoire STAT selon une autre variante. Dans ce cas, le résultat de la décryption du message EMM sera transmis au processeur CPU A via la mémoire d'échange DPR pour être stocké dans la mémoire STAT.

Le téléchargement du logiciel de la carte stocké dans la mémoire non-volatile EEPROM A ou la mise à jour de ce logiciel est géré avec une sécurité accrue dans une carte équipée d'un composant selon l'invention. En effet, il ne sera pas possible de stocker un logiciel dans une telle carte via les accès ACC et le processeur CPU A sans effectuer des vérifications par le biais du processeur CPU B.

Le logiciel ou une mise à jour est reçu par le décodeur sous forme de blocs cryptés qui seront ensuite acheminés un par un au premier processeur CPU A via les accès ACC de la carte. Le processeur CPU A ne peut décrypter car il ne dispose pas de la clé correspondante. Ces blocs sont transmis au CPU B via la mémoire d'échange DPR. Le CPU B va lancer un processus de décryption dans un mode sécurisé donc ininterruptible. Le résultat de cette opération est stocké dans la mémoire spécifique du CPU B soit EEPROM B.

Il est prévu que la valeur de vérification ou la signature est contenue dans un message d'administration EMM. Le CPU B reçoit ce message via la mémoire d'échange DPR et va pouvoir calculer la signature du bloc de données précédemment déchiffré et la comparer avec cette reçue dans le message. Seulement une fois cette vérification opérée, le CPU B va initier un cycle d'écriture de la mémoire du CPU A à savoir EEPROM A.

Au cas où le résultat de cette comparaison serait négatif, le processus de téléchargement ou de mise à jour du logiciel s'arrête et le processeur CPU A transmet soit un message d'erreur au décodeur, soit une commande de réinitialisation du téléchargement.

Lorsque tous les blocs sont vérifiés avec succès et stockés dans la mémoire EEPROM B, le processeur CPU B les transfère dans la mémoire EEPROM A. Le processeur CPU A se charge ensuite de l'installation et de la mise en service du nouveau logiciel.

Selon une variante, avant le transfert d'un bloc vers la mémoire EEPROM A, l'ensemble des blocs stockés dans la mémoire EEPROM B peut encore être vérifié par le processeur CPU B en calculant une empreinte sur la totalité des blocs. La comparaison s'effectue alors avec la signature globale du logiciel obtenue, elle aussi, via un message EMM.

Selon une variante de fonctionnement, les messages d'administration EMM sont traités par le CPU A. Il est à noter que lors de chaque session de décryptage de ces messages EMM1 le processeur CPU A demande la clé nécessaire au processeur B pour une exécution directe de la décryption. Une fois la décryption terminée, la clé est effacée et uniquement stockée dans la mémoire vive RAM A du CPU A. Il n'y a donc pas de stockage intermédiaire de la clé dans une mémoire non volatile EEPROM A qui serait ainsi accessible en lecture via les accès ACC. Seul des résultats intermédiaires de calculs sont stockés dans la mémoire vive RAM A et le processeur CPU A transfère les données finales (droits par exemple) dans la mémoire STAT.

Si le nombre de tâches sécurisées venait à augmenter et dépasser les capacités d'un seul processeur, il est envisageable de multiplier le nombre de processeurs en fonction de la complexité des opérations à exécuter. Le schéma bloc d'une telle configuration serait une extension de celui de la figure 1 où chaque processeur supplémentaire serait connecté à une mémoire vive d'échange DPR à deux ports dont l'un serait relié au premier processeur possédant les accès vers l'extérieur. Selon une variante, la mémoire vive d'échange DPR de séparation peut comporter autant de ports supplémentaires qu'il est nécessaire pour la connexion de processeurs additionnels.