Brevet FR3028697A1 — publié le 20160520

DOMAINE DE L'INVENTION La présente invention concerne le domaine des communications et plus particulièrement celui des communications entre un module sécurisé et un dispositif externe lecteur dudit module sécurisé, typiquement entre une carte à circuit intégré (ou ICC pour « Integrated Circuit Card » voire UICC pour « Universal ICC », par exemple une carte à puce) ou un élément sécurisé (SE pour « Secure Element » ou eSE pour « embedded SE »), et un terminal lecteur de carte. CONTEXTE DE L'INVENTION De nombreuses applications embarquées dans des cartes à circuit intégré ou éléments sécurisés communiquent avec le terminal lecteur au travers de canaux de communication protégés. Dans le domaine des cartes à puce par exemple, le protocole connu sous le terme de « messagerie sécurisée » (« secure messaging ») et défini dans la norme ISO/IEC 7816 ou TR SAC v1.01 (Technical Report - Supplemental Access Control v/.0/) est largement utilisé pour protéger les unités de données (APDU pour « Application Protocol Data Unit ») sur le canal de communication. Ce mode de communication est par exemple utilisé pour les documents de voyage électroniques ou eMRTD (« electronic Machine Readable Travel Documents ») et est également connu sous l'appellation SCP03 (ou SCP02 dans sa version antérieure). Le schéma de protection des données est dit en mode « chiffre et authentifie » (« Encrypt then authenticate » par exemple « Encrypt-then-MAC »). En pratique, les données sont chiffrées (ou encryptées) et signées pour assurer leur confidentialité, leur intégrité et leur authenticité, dans les deux sens de communication : carte vers terminal et terminal vers carte. La Figure 1 illustre la situation actuelle lors de la transmission d'une commande APDU depuis un terminal vers une carte à circuit intégré. Un canal sécurisé mettant en oeuvre le protocole Secure Messaging est initialement établi entre les deux entités conformément à la spécification ICAO 9303 ou ICAO TR SAC v1.01. Dans cet exemple, le terminal prépare des données textuelles brutes (« Message ») à insérer dans la commande APDU à envoyer. Ces données textuelles 3028697 2 brutes sont par exemple des données à mémoriser dans la carte pour une utilisation ultérieure (empreinte numérique à vérifier), à l'aide de la commande APDU de type PSO HASH. Dans un exemple, prenons la commande APDU suivante (PSO HASH défini 5 dans ISO/IEC 7816-8) : CLA INS P1 P2 P3 [Message]. 00 2A xx xx [Message] Conformément au protocole Secure Messaging, les données textuelles brutes sont chiffrées résultant en une commande dénotée APDU'(Enc(Message)). A cette 10 occasion, les entêtes de la commande APDU peuvent être modifiées pour notamment indiquer que la commande est en mode sécurisé et que les données sont chiffrées, d'où la notation APDU' et que l'APDU est signée (intégrité et authenticité) à l'aide d'un code d'authentification de message comme décrit ci-après. Dans l'exemple précédent, la commande sécurisée suivante est par exemple 15 obtenue : CLA' INS P1 P2 P3' [Enc(Message)] CLA ayant été modifié en CLA' pour indiquer ces modes sécuritaire et chiffré. P3 ayant pour sa part été modifié en P3', pour prendre en compte la nouvelle longueur des données. 20 Par ailleurs, la commande peut éventuellement être mise en forme selon une structure particulière comme par exemple : - la structure du champ de données peut être modifiée (p.ex. encapsulation des données chiffrées dans des objets de données - ISO/IEC 7816-4) ; - la donnée « Ne » peut être encapsulée dans un objet de données et adjoint 25 au champ de donnée (ISO/IEC 7816-4). Différents algorithmes de chiffrement peuvent être utilisés, typiquement un algorithme de chiffrement symétrique par blocs, par exemple AES (« Advanced Encryption Standard ») ou DES (« Data Encryption Standard »). De même, un code d'authentification de message MACsender(APDU') est 30 calculé sur l'ensemble de la commande mise en forme (comme décrit précédemment), et qui peut comprendre l'en-tête APDU, et le message chiffrée. Le MAC est lui-même mis en forme (p.ex. encapsulation des données chiffrées dans des objets de données - ISO/IEC 7816-4) puis accolé au champ de données contenant le message chiffré avant que le message ne soit envoyé à la carte à circuit intégré sous forme de 35 message 'u'. 3028697 3 A titre illustratif, un code d'authentification de message peut être calculé à l'aide de l'algorithme MAC impliquant l'utilisation d'une clé secrète. Le code d'authentification de message assure une fonction de vérification de l'intégrité du message mais également une fonction d'authentification de l'expéditeur, détenteur de 5 la clé secrète. A réception, l'application embarquée sur la carte et destinataire de la commande chiffrée restaure les données textuelles brutes à partir du message `u' reçu, impliquant des vérifications d'intégrité et d'authenticité à l'aide du code d'authentification de message MACsender(APDU') puis un déchiffrement des données 10 chiffrées. Les techniques de vérification de l'intégrité et de l'authenticité du message `u' à l'aide d'un code MAC sont largement connues et donc ne sont pas détaillées dans le présent document. Les données textuelles ainsi déchiffrées peuvent être utilisées par l'application embarquée pour divers traitements, incluant l'exécution de la commande APDU 15 envoyée voire l'exécution de commandes subséquentes. Ce schéma de traitement n'est cependant pas satisfaisant. En effet, dès lors que les données textuelles ont été déchiffrées, il n'existe plus de moyen permettant à la carte à circuit intégré de continuer à s'assurer de l'authenticité des données ainsi déchiffrées et de leur intégrité. Ainsi, ces données déchiffrées sont vulnérables et 20 peuvent être modifiées de façon malveillante, par exemple par des attaques physiques sur la carte. La situation actuelle est ainsi paradoxale : d'un côté, les données textuelles sont protégées contre des modifications lors de leur transport, par l'utilisation d'un code d'authentification de message, et de l'autre côté, elles sont susceptibles d'être altérées 25 lors de leur utilisation/traitement par l'application/la carte/le terminal. Il serait souhaitable pour le terminal ou la carte de disposer de mécanismes permettant de s'assurer que les données en cours d'utilisation sont bien intègres et sont bien celles qui ont été envoyées par une entité légitime et donc authentifiée. Il serait souhaitable que ces mécanismes limitent les calculs supplémentaires et les 30 données supplémentaires nécessaires. RESUME DE L'INVENTION Dans ce contexte, la présente invention propose un procédé de traitement comprenant les étapes suivantes : 3028697 4 - obtenir un message généré selon un mode de chiffrement et d'authentification, le message incluant des données brutes chiffrées selon un algorithme de chiffrement symétrique par blocs en mode d'enchaînement des blocs et incluant un code d'authentification de message ; et 5 - utiliser le dernier bloc constituant les données brutes chiffrées comme donnée d'intégrité et/ou d'authenticité des données brutes. L'obtention du message inclut la réception d'un tel message, par exemple par une carte ou élément sécurisé en provenance d'un terminal, ou par un terminal en provenance d'une telle carte ou d'un tel élément sécurisé. 10 La présente invention renforce le contrôle de l'intégrité et de l'authenticité des données brutes, soit reçues, soit générées pour transmission. Ce renforcement est obtenu par l'utilisation inventive d'une propriété des algorithmes de chiffrement symétrique par blocs en mode d'enchaînement des blocs. En effet, pour de tels algorithmes, le dernier bloc des données brutes chiffrées dépend 15 de l'ensemble des blocs constitutifs des données à chiffrer. Il peut ainsi constituer une donnée d'intégrité authentique des données brutes. En effet, l'authenticité du dernier bloc est garantie par la présence du code d'authentification de message. A titre d'exemple, les algorithmes de chiffrement symétrique par blocs incluent notamment I'AES, le DES, les algorithmes selon la norme ISO/IEC 18033-3, les 20 algorithmes Camellia, HIGHT, Blowfish, Serpent ou Twofish. Le mode d'opération dit « par enchaînement des blocs » est également connu dans la littérature anglo-saxonne sous l'appellation « Cipher Block Chaining » ou CBC, et inclut les dérivés du CBC, tel le CCMP (« Counter-Mode/CBC-Mac protocol »). Une définition de ce mode d'opération est fourni dans la norme ISO/IEC 10116. 25 Le mode d'opération « par enchaînement des blocs » requiert que les données brutes à coder soient découpées en blocs (généralement de 32 à 512 bits, communément de 128 bits). Il consiste en un chiffrement en cascade où chaque bloc courant de données brutes est chiffré en fonction du bloc chiffré précédent. En pratique, le bloc courant non chiffré est XORed (OU Exclusif) avec le bloc chiffré 30 précédent. Le résultat est chiffré avec la clé symétrique (de l'algorithme de chiffrement symétrique par blocs) et le résultat obtenu est le bloc chiffré courant. Ainsi, chaque bloc chiffré dépend de l'ensemble des blocs de données brutes déjà traités à ce moment. 3028697 5 Corrélativement, l'invention concerne également un dispositif de traitement, par exemple une carte à puce ou un terminal lecteur de carte, comprenant un processeur configuré pour : - obtenir un message généré selon un mode de chiffrement et 5 d'authentification, le message incluant des données brutes chiffrées selon un algorithme de chiffrement symétrique par blocs en mode d'enchaînement des blocs et incluant un code d'authentification de message ; et - utiliser le dernier bloc constituant les données brutes chiffrées comme donnée d'intégrité et/ou d'authenticité des données brutes. 10 L'invention a également pour objet un produit programme d'ordinateur comprenant des instructions adaptées à la mise en oeuvre de chacune des étapes du procédé décrit précédemment lorsque ledit programme est exécuté sur un ordinateur. Le dispositif et le produit programme d'ordinateur selon l'invention présentent des avantages similaires à ceux exposés précédemment en lien avec le procédé. 15 D'autres caractéristiques des procédé et dispositif selon des modes de réalisation sont décrites dans les revendications dépendantes, essentiellement à l'aide d'une terminologie de procédé, transposables par conséquent au dispositif. Dans un mode de réalisation du côté réception d'un message, le procédé peut en outre comprendre les étapes suivantes : 20 - recevoir ledit message d'un dispositif externe ; - vérifier l'intégrité et l'authenticité du message reçu à l'aide du code d'authentification de message ; - déchiffrer les données brutes et les mémoriser ; mémoriser le dernier bloc constituant les données brutes chiffrées ; et 25 utiliser le dernier bloc ainsi mémorisé pour vérifier l'intégrité et/ou l'authenticité des données brutes mémorisées lors d'un traitement ultérieur desdites données brutes mémorisées. Selon cette configuration du côté réception, comme l'authenticité de ce dernier bloc est vérifiée en même temps que celle du message à l'aide du code 30 d'authentification de message, ce dernier bloc assure à la fois l'intégrité et l'authenticité des données brutes déchiffrées, lorsque celles-ci sont utilisées ultérieurement. Un lien avec l'émetteur initial des données chiffrées reçues est ainsi conservé. Dans un mode de réalisation, l'intégrité des données brutes mémorisées est vérifiée périodiquement à l'aide dudit dernier bloc mémorisé. On s'assure ainsi que les 3028697 6 données brutes qui sont utilisées dans divers traitements restent celles effectivement reçues de l'expéditeur légitime. Dans un mode de réalisation, le traitement ultérieur est l'exécution d'une commande reçue ultérieurement audit message, ladite commande mettant en oeuvre 5 lesdites données brutes mémorisées. Par exemple, les données brutes peuvent consister en une clé ou un code de hachage ou « empreinte numérique », et la commande reçue ultérieurement peut inclure un cryptogramme ou une signature et demander le décodage du cryptogramme ou la vérification de la signature à l'aide respectivement de la clé ou du code de 10 hachage reçu précédemment. Ainsi, lorsque la clé ou le code de hachage doit être utilisé, la vérification de son intégrité authentique à l'aide du dernier bloc chiffré mémorisé peut être conduite selon les enseignements de la présente invention. Dans un autre mode de réalisation, ledit dernier bloc est mémorisé en mémoire d'une carte à circuit intégré. Cette disposition a notamment lieu lorsque la 15 carte à circuit intégré établit un canal de communication sécurisé (Secure Channel) avec un terminal externe. Dans un mode de réalisation du côté transmission d'un message, le procédé peut en outre comprendre les étapes suivantes : - obtenir les données brutes et une information d'intégrité et/ou d'authenticité 20 desdites données brutes calculée à l'aide d'un algorithme de chiffrement symétrique par blocs en mode d'enchaînement des blocs, par exemple MAC ; - générer ledit message ; et - s'assurer que le dernier bloc constituant les données brutes chiffrées vaut l'information d'intégrité et/ou d'authenticité, afin de garantir l'intégrité et/ou l'authenticité 25 des données brutes du message avant de transmettre le message généré. Selon cette configuration du côté génération puis transmission, l'utilisation du dernier bloc constitutif des données brutes chiffrées pour garantir l'intégrité de celles-ci assure qu'aucune altération des données ne s'est produite depuis qu'une information d'intégrité/authenticité initiale a été calculée. On évite ainsi que des données altérées 30 puissent être envoyées de façon authentique. Dans lequel on vérifie l'intégrité des données brutes du message en comparant le dernier bloc constituant les données brutes chiffrées avec l'information d'intégrité et/ou d'authenticité. Dans lequel on remplace, dans les données brutes chiffrées générées, le 35 dernier bloc par l'information d'intégrité et/ou d'authenticité. Ainsi, en cas d'absence 3028697 7 d'intégrité, celle-ci sera détectée par le destinataire du message à l'aide du code d'authentification de message calculé sur la base du dernier bloc avant remplacement. Ces deux dispositions peuvent être combinées, par exemple le remplacement ayant lieu uniquement si la comparaison est positive. 5 Dans un mode de réalisation, le procédé comprend en outre une étape d'établissement (souvent préalable) d'un canal sécurisé (par exemple un canal SCP02 ou SCP03) entre un terminal et une carte à circuit intégré. Ledit mode de chiffrement et d'authentification est alors défini pour le canal sécurisé, et ledit message généré est transmis sur le canal sécurisé (soit parce que l'étape d'obtention consiste à recevoir le 10 message, soit parce qu'il est transmis une fois que l'on s'est assuré que le dernier bloc vaut l'information d'intégrité et/ou d'authenticité). Dans un autre mode de réalisation, ledit message comprend une commande APDU selon la norme ISO/IEC 7816. Egalement, dans un autre mode de réalisation, le procédé comprend en outre, 15 à réception d'une commande particulière, le basculement d'un premier mode de fonctionnement vers un second mode de fonctionnement, l'un des modes de fonctionnement mettant en oeuvre l'utilisation du dernier bloc constituant les données brutes chiffrées comme donnée d'intégrité et/ou d'authenticité des données brutes, et l'autre mode de fonctionnement ne mettant pas en oeuvre une telle utilisation. Cette 20 disposition permet d'activer ou désactiver à la demande le mécanisme selon l'invention. BREVE DESCRIPTION DES FIGURES D'autres particularités et avantages de l'invention apparaîtront encore dans la 25 description ci-après, illustrée par les dessins ci-joints, dans lesquels : - la Figure 1 illustre des échanges classiques lors de la transmission d'une commande APDU depuis un terminal vers une carte à circuit intégré ; - la Figure 2 représente schématiquement les éléments principaux d'une forme de réalisation possible pour un dispositif de traitement, tel une carte à 30 microcircuit ; - la Figure 3 représente l'allure physique générale d'une carte à microcircuit ; - la Figure 4 illustre un premier scénario de mise en oeuvre de l'invention ; - la Figure 5 illustre un exemple de commandes APDU mettant en oeuvre ce 35 premier scénario de l'invention ; et 3028697 8 - la Figure 6 illustre un second scénario de mise en oeuvre de l'invention. DESCRIPTION DETAILLEE DE L'INVENTION La Figure 2 représente schématiquement un dispositif de traitement de 5 données 40 dans lequel la présente invention est mise en oeuvre. Ce dispositif 40 comprend un microprocesseur 10, auquel est associée d'une part une mémoire vive 60, par exemple au moyen d'un bus 70, et d'autre part une mémoire non volatile 20 (par exemple du type EEPROM), par exemple à travers un bus 50. Le dispositif de traitement de données 40, et précisément le microprocesseur 10 10 qu'il incorpore, peuvent échanger des données ou messages avec des dispositifs extérieurs au moyen d'une interface de communication 30. La mémoire non volatile 20 par exemple ROM (acronyme de Read Only Memory en terminologie anglo-saxonne) peut constituer un support au sens de l'invention, c'est-à-dire peut comprendre un programme informatique comprenant des 15 instructions pour la mise en oeuvre d'un procédé selon un mode de réalisation de l'invention ; cette mémoire non volatile peut également être une mémoire EEPROM (acronyme de Electrically Erasable Read Only Memory en terminologie anglo-saxonne) ou encore une mémoire Flash. La mémoire vive ou mémoire cache ou mémoire volatile 60 par exemple RAM 20 (acronyme de Random Access Memory en terminologie anglo-saxonne) comprend des registres adaptés à l'enregistrement des variables et paramètres créés et modifiés au cours de l'exécution du programme précité ; lors de la mise en oeuvre de l'invention, les codes d'instructions du programme stocké en mémoire morte ROM, EEPROM ou Flash sont chargés en mémoire RAM en vue d'être exécutés par l'unité de traitement 25 CPU. On a schématiquement représenté sur la Figure 2 la transmission d'une donnée d'entrée X reçue d'un dispositif extérieur (non représenté) et transmise de l'interface de communication 30 au microprocesseur 10. De manière similaire, on a représenté la transmission d'une donnée de sortie Y du microprocesseur 10 vers 30 l'interface de communication 30 à destination d'un dispositif extérieur. Cette donnée de sortie Y est issue d'un traitement de données par le microprocesseur 10, généralement sur la donnée d'entrée X. Bien que, pour l'illustration, les données d'entrée et les données de sortie figurent sur deux flèches différentes, les moyens physiques qui permettent la 3028697 9 communication entre le microprocesseur 10 et l'interface 30 pourront être réalisés par des moyens uniques, par exemple un port de communication série ou un bus. Le microprocesseur 10 est apte à exécuter un logiciel (ou programme d'ordinateur) qui permet au dispositif de traitement de données 40 d'exécuter un 5 procédé conforme à l'invention dont des exemples sont donnés dans la suite. Le logiciel est composé d'une série d'instructions de commande du microprocesseur 10 qui sont par exemple stockées dans la mémoire 20. En variante, l'ensemble microprocesseur 10 - mémoire non-volatile 20 mémoire vive 60 peut être remplacé par un circuit à application spécifique qui 10 comprend alors des moyens de mise en oeuvre des différentes étapes du procédé de traitement de données. La Figure 3 représente une carte à microcircuit qui constitue un exemple de dispositif de traitement de données conforme à l'invention tel que représenté à la Figure 2. En variante à la carte à microcircuit, type carte à puce ICC ou UICC, le 15 dispositif de traitement peut être un élément sécurisé éventuellement embarqué (SE ou eSE) ou une carte micro SD ou tout autre module sécurisé. Un autre exemple de dispositif de traitement conforme à l'invention inclut un terminal lecteur d'une telle carte à microcircuit ou module sécurisé. L'interface de communication 30 est dans ce cas réalisée au moyen des 20 contacts de la carte à microcircuit. La carte à microcircuit incorpore un microprocesseur 10, une mémoire vive 60 et une mémoire non volatile 20 comme cela est représenté sur la Figure 2. Cette carte à microcircuit est par exemple conforme à la norme ISO 7816 et munie d'un microcontrôleur sécurisé qui regroupe le microprocesseur (ou CPU) 20 et 25 la mémoire vive 60. En variante, le dispositif de traitement de données peut être une clef USB, un document ou un support d'informations papier comportant dans l'une de ses feuilles un microcircuit associé à des moyens de communication sans contact. Il s'agit de manière préférée d'une entité électronique portable ou de poche. 30 En référence aux Figures 4 à 6, on décrit maintenant différents exemples de mises en oeuvre du procédé selon l'invention, principalement au niveau d'une carte à microcircuit bien que l'invention puisse être mise en oeuvre dans tout type de dispositif de traitement de données incluant un terminal lecteur d'une telle carte. Le contexte de l'invention est celui d'un message généré selon un mode de 35 chiffrement et d'authentification, le message incluant des données brutes chiffrées 3028697 10 selon un algorithme de chiffrement symétrique par blocs (type AES, DES, etc.) en mode d'enchaînement des blocs (type CBC) et incluant un code d'authentification de message. Le code d'authentification de message, type code MAC, est calculé à partir 5 des données brutes chiffrées, et éventuellement à partir d'autres informations formant le message, telles qu'un en-tête. Le chiffrement par blocs consiste à découper les données à chiffrer en blocs successifs {bo, b1, bn} dont la taille (en bits) est fonction de l'algorithme choisi, par exemple en blocs de 128 bits chacun, et à chiffrer successivement chaque bloc 10 notamment dans l'ordre initial (composant les données à chiffrer) pour obtenir des blocs chiffrés correspondants {B0, B1, Bn} de 128 bits chacun par exemple. En outre, en mode d'enchaînement des blocs (type CBC), le bloc précédent chiffré Bo est utilisé pour chiffrer le bloc suivant b, en B. Généralement le bloc précédent Bo est utilisé dans une logique OU EXCLUSIF (XOR) avec le bloc à chiffrer 15 suivant b,, avant l'opération de chiffrement à proprement parler. Selon l'invention, le dernier bloc constituant les données brutes chiffrées, i.e. Bn, est utilisé comme donnée d'intégrité et/ou d'authenticité des données brutes. La Figure 4 illustre un premier scénario dans lequel l'utilisation dudit dernier bloc des données chiffrées comme donnée d'intégrité permet de renforcer la confiance 20 que la carte (ou plus précisément l'application embarquée destinataire du message) manipule bien les données brutes telles qu'envoyées par l'expéditeur légitime. Dans ce premier scénario, les étapes côté terminal sont identiques à celles de la Figure 1. Du côté de la carte, outre la réception du message chiffré du terminal, 25 l'intégrité et l'authenticité du message reçu est vérifiée à l'aide du code d'authentification de message MACsender(APDU') lors d'une étape 400. Pour ce faire, la carte calcule un deuxième code d'authentification du message MACReceiver(APDU') à partir des données chiffrées APDU' reçues. La comparaison entre ces deux codes permet de détecter un éventuel défaut d'intégrité et/ou d'authenticité, conduisant au 30 rejet du message, éventuellement à l'émission d'un message d'erreur, et à la fin du procédé. De même les données brutes sont déchiffrées et mémorisées lors d'une étape 402, ce qui était déjà le cas dans la Figure 1. Pour la mise en oeuvre de l'invention selon ce premier scénario, le dernier 35 bloc Bn constituant les données brutes chiffrées est conservé par la carte (par exemple 3028697 11 mémorisé dans la mémoire EEPROM de la carte) lors d'une étape 404, contrairement aux procédés connus où les données chiffrées sont toutes supprimées une fois le déchiffrement effectué et les données brutes déchiffrées obtenues. Bien entendu, cette mémorisation peut avoir lieu avant le déchiffrement. 5 Le message déchiffré peut alors être exécuté lors d'une étape 406. Compte tenu du mécanisme (CBC) ayant initialement généré ce dernier bloc Bn, celui-ci dépend de l'ensemble des données brutes, c'est-à-dire de l'ensemble des blocs {b0, b1, ..., bil}. Il constitue donc une donnée d'intégrité pertinente des données brutes. En outre, étant garanti par le code d'authentification de message 10 MACsender(APDU'), il constitue également une preuve de l'authenticité des données brutes. Dans ce contexte, le dernier bloc Bn peut être utilisé pour vérifier l'intégrité et l'authenticité des données brutes mémorisées lors d'un traitement ultérieur desdites données brutes mémorisées. C'est l'étape 408. 15 Il peut s'agir d'une vérification périodique des données brutes mémorisées afin de garantir au long-court leur intégrité authentique, c'est-à-dire leur intégrité telle que transmise par l'expéditeur légitime (ici le terminal). On peut comprendre ici par « périodique » une opération reproduite lors des étapes de traitement de commandes, par exemple lors de l'exécution ou de l'envoi des commandes. 20 Ainsi, toute altération de ces données brutes par une attaque externe (par exemple une attaque par faute) est facilement détectée puisqu'il en résultera une différence entre la donnée d'intégrité authentique pour Bn et une donnée d'intégrité de contrôle, calculée de façon similaire (MAC-CBC équivalent à la norme ISO/IEC 9797-1 - MAC algorithm 1) par le récipiendaire à partir des données brutes altérées. La 25 donnée d'intégrité est typiquement un code d'authentification de message (MAC). En cas de détection d'une altération, la carte ou l'application manipulant lesdites données brutes altérées peut prendre des actions sécuritaires bien connues de l'homme de l'art. Afin de permettre à la carte de déterminer si le message ou la commande 30 APDU reçue est selon le mécanisme de l'invention (afin de mémoriser Bn et ensuite de procéder aux vérifications d'intégrité et/ou d'authenticité), un drapeau dans l'entête du message ou de la commande peut être activé par le dispositif expéditeur. La Figure 5 illustre un exemple de commandes APDU mettant en oeuvre ce premier scénario de l'invention. 3028697 12 Dans cet exemple, les données brutes peuvent consister en une clé ou un code de hachage (autrement connu sous la terminologie « empreinte numérique »), et la commande reçue ultérieurement peut inclure un cryptogramme ou une signature et demander le décodage du cryptogramme ou la vérification de la signature à l'aide 5 respectivement de la clé ou du code de hachage reçu précédemment. Ainsi, lorsque la clé ou le code de hachage doit être utilisé, la vérification de son intégrité authentique à l'aide du dernier bloc chiffré mémorisé peut être conduite selon les enseignements de la présente invention. Un canal sécurisé étant établi entre le terminal et la carte (ce qui permet de 10 convenir de clés de session pour chiffrer les données), un premier message du terminal indique, à l'aide d'un drapeau « 80 28 00 00 » (INS = ENABLE VERIFICATION REQUIREMENT cf ISO/IEC 7816-4 avec une classe propriétaire, que le mécanisme de sécurité selon l'invention est activé. C'est l'étape 500. A noter que le basculement inverse vers une désactivation de la fonctionnalité de sécurisation peut 15 être obtenu par l'envoi de la commande « 80 26 00 00 » (INS = DISABLE VERIFICATION REQUIREMENT cf ISO/IEC 7816-4 avec une classe propriétaire). Bien entendu d'autres valeurs de drapeau pour commander un tel basculement peuvent être prévues. Une première commande PSO HASH (cf ISO/IEC 7816-8) est transmise à 20 l'étape 502, première commande sécurisée comprenant un code de hachage à stocker, le code de hachage étant chiffré par blocs en mode CBC, et comprenant un code d'authentification MAC calculé sur le code de hachage chiffré (et éventuellement sur les en-têtes) complétant la commande. A réception, la carte déroule la commande reçue en vérifiant l'authenticité et 25 l'intégrité de la commande reçue à l'aide du code MAC puis en déchiffrant et mémorisant le code de hachage. C'est l'étape 504. Conformément à l'invention, le dernier bloc Bn est conservé en mémoire EEPROM ou autre, au lieu d'être supprimé. C'est l'étape 506. Lors du traitement de la première commande reçue, une vérification de 30 l'intégrité du code de hachage stocké peut être conduite à l'aide de Bn ainsi stocké, en calculant une donnée d'intégrité de contrôle équivalente (MAC-CBC) à partir du code de hachage stocké. Cela permet de renforcer les contrôles d'intégrité et d'authenticité de la donnée traitée. Ultérieurement (par exemple après réception d'un acquittement d'exécution de 35 la première commande), le terminal envoie une seconde commande APDU de 3028697 13 demande de vérification de signature (par exemple PSO VERIFY SIGNATURE comme décrit dans ISO/IEC 7816-8), commande sécurisée dans laquelle ladite signature est chiffrée symétriquement par blocs en mode CBC. Un code MAC est aussi ajouté sur la commande. C'est l'étape 508. 5 A réception, la carte vérifie le code MAC avant de déchiffrer la signature reçue et de mémoriser le dernier bloc B'm de la signature chiffrée en mémoire EEPROM. C'est l'étape 510. La carte exécute la commande reçue, à savoir vérifie la signature déchiffrée à l'aide du code de hachage en mémoire, c'est-à-dire précédemment déchiffré. C'est 10 l'étape 512. Si la vérification s'avère négative, un message d'erreur peut être renvoyé. Si la vérification est positive, la carte procède ici à une double vérification de l'intégrité et de l'authenticité du code de hachage et de la signature utilisés. Ainsi, la carte ne confirmera la vérification positive de la signature que si les données qu'elle mémorise n'ont pas été altérées dans l'intervalle, à savoir entre la préparation des 15 données par le terminal et le traitement par la carte. Selon l'invention, elle utilise une donnée d'intégrité authentique, les blocs Bn et B'm en l'espèce. Cette double vérification comprend le calcul d'une donnée d'intégrité de contrôle, type code d'authentification MAC-CBC, pour le code de hachage stocké en mémoire et également une donnée d'intégrité de contrôle (MAC-CBC) pour la 20 signature stockée. Ces données d'intégrité de contrôle sont comparées aux blocs Bn et B'm respectivement. Ce sont les étapes 514 (pour le code de hachage) et 516 (pour la signature). Si l'une de ces comparaisons est négative, un message d'erreur est envoyé. Sinon, un message de vérification positive de la signature peut être envoyé au terminal (étape 518). 25 La Figure 6 illustre un second scénario dans lequel le dernier bloc des données chiffrées est utilisé comme donnée d'intégrité et d'authenticité pour protéger des données sortantes encapsulées dans un canal sécurisé préalablement établi, protection contre d'une éventuelle altération survenue pendant les opérations de chiffrement et de signature (code MAC). Ce second scénario vise à garantir que la 30 carte, par exemple, envoie de façon authentique des données non altérées. Dans ce scénario, la carte par exemple stocke en mémoire des données brutes (éventuellement reçues selon le scénario exposé ci-dessus en lien avec les Figures 4 et 5), ainsi qu'une information (MTCL) d'intégrité et éventuellement d'authenticité de celles-ci (comme Bn reçu dans le scénario exposé ci-dessus en lien 35 avec les Figures 4 et 5). Finalement, l'information d'intégrité a été calculée en utilisant 3028697 14 le même algorithme symétrique par blocs que celui utilisé pour chiffrer des données brutes sur le canal de communication, à savoir du MAC-CBC (permettant au final de conserver uniquement le dernier bloc calculé). A réception d'une commande (600) demandant l'obtention des données 5 brutes (par exemple une commande APDU READ BINARY (comme décrit dans ISO/IEC 7816-4)) de la part du terminal, la carte récupère les données brutes en mémoire, et calcule l'information d'intégrité correspondante (ou la récupère en mémoire si elle est disponible, c'est-à-dire préalablement calculée), puis génère un message selon un mode de chiffrement et d'authentification, le message incluant les 10 données brutes récupérées chiffrées selon un algorithme de chiffrement symétrique par blocs en mode d'enchaînement des blocs et incluant un code d'authentification de message. On obtient les blocs chiffrés {Bo, B1, ..., Bill à l'étape 604. Il s'ensuit le calcul du code d'authentification de message MAC, selon des techniques classiques. C'est l'étape 606. 15 Puis la carte s'assure que le dernier bloc Bn constituant les données brutes chiffrées correspond à l'information d'intégrité (MTCL) préalablement calculée. Cette opération 608 vise à garantir l'intégrité et l'authenticité des données brutes du message avant de transmettre le message généré, c'est-à-dire à notamment garantir qu'elles n'ont pas été altérées lors de l'étape d'encapsulation dans le canal sécurisé 20 préalablement établi. Si la comparaison s'avère négative, la carte a détecté une altération des données brutes (éventuellement à raison d'une attaque externe) et un message d'erreur (610) est retourné au terminal. Des mesures sécuritaires peuvent alors être prises. 25 Dans une variante de réalisation, le dernier bloc 13, constituant les données brutes chiffrées est remplacé, dans le message de sortie encapsulé dans le canal sécurisé préalablement établi, par l'information d'intégrité MTCL préalablement calculée. Le message ainsi obtenu est transmis au terminal comme réponse à la commande READ BINARY (étape 610). 30 Le terminal vérifie (étape 612) alors l'intégrité et l'authenticité de la réponse reçue à l'aide du code MAC. Si le code MAC ne correspond pas à la réponse transmise, cela indique au terminal que l'information d'intégrité MTCL remplacée par la carte/SE avant la transmission du message ne concorde pas avec le code MAC. Partant, cela implique que le dernier bloc des données brutes chiffrées utilisé dans le 35 calcul du MAC par la carte/SE ne correspond pas à celui remplacé avant l'envoi de la 3028697 15 réponse, et donc que les données brutes ont été altérées lors de leur manipulation jusqu'au calcul du MAC (c'est-à-dire lors de leur manipulation, chiffrement, et calcul du MAC). Ainsi, le terminal a détecté une altération des données brutes. Des mesures 5 sécuritaires peuvent alors être prises à l'encontre de la carte. REVENDICATIONS1. Procédé de traitement comprenant les étapes suivantes : - obtenir un message généré selon un mode de chiffrement et d'authentification, le message incluant des données brutes chiffrées selon un algorithme de chiffrement symétrique par blocs en mode d'enchaînement des blocs et incluant un code d'authentification de message ; et - utiliser le dernier bloc constituant les données brutes chiffrées comme donnée d'intégrité et/ou d'authenticité des données brutes. 2. Procédé selon la revendication 1, comprenant en outre les étapes suivantes : - recevoir ledit message d'un dispositif externe ; - vérifier l'intégrité et l'authenticité du message reçu à l'aide du code d'authentification de message ; - déchiffrer les données brutes et les mémoriser ; mémoriser le dernier bloc constituant les données brutes chiffrées ; et utiliser le dernier bloc ainsi mémorisé pour vérifier l'authenticité et/ou l'intégrité des données brutes mémorisées lors d'un traitement ultérieur desdites données brutes mémorisées. 3. Procédé selon la revendication 2, dans lequel le traitement ultérieur est l'exécution d'une commande reçue ultérieurement audit message, ladite commande mettant en oeuvre lesdites données brutes mémorisées. 4. Procédé selon la revendication 2 ou 3, dans lequel l'intégrité des données brutes mémorisées est vérifiée périodiquement à l'aide dudit dernier bloc mémorisé. 5. Procédé selon l'une des revendications 2 à 4, dans lequel ledit dernier bloc est mémorisé en mémoire d'une carte à circuit intégré. 6. Procédé selon la revendication 1, comprenant en outre les étapes suivantes : - obtenir les données brutes et une information d'intégrité et/ou d'authenticité desdites données brutes calculée à l'aide d'un algorithme de chiffrement symétrique par blocs en mode d'enchaînement des blocs ; - générer ledit message ; et - s'assurer que le dernier bloc constituant les données brutes chiffrées vaut l'information d'intégrité et/ou d'authenticité, afin de garantir l'intégrité et/ou l'authenticité 35 des données brutes du message avant de transmettre le message généré. 3028697 17 7. Procédé selon la revendication 6, dans lequel on vérifie l'intégrité des données brutes du message en comparant le dernier bloc constituant les données brutes chiffrées avec l'information d'intégrité et/ou d'authenticité. 8. Procédé selon la revendication 6 ou 7, dans lequel on remplace, dans les 5 données brutes chiffrées générées, le dernier bloc par l'information d'intégrité et/ou d'authenticité. 9. Procédé selon l'une des revendications précédentes, comprenant en outre une étape d'établissement d'un canal sécurisé entre un terminal et une carte à circuit intégré, ledit mode de chiffrement et d'authentification étant défini pour le canal 10 sécurisé, et ledit message généré étant transmis sur le canal sécurisé. 10. Procédé selon l'une des revendications précédentes, dans lequel ledit message comprend une commande APDU selon la norme ISO/IEC 7816. 11. Procédé selon l'une des revendications précédentes, comprenant en outre, à réception d'une commande particulière, le basculement d'un premier mode de 15 fonctionnement vers un second mode de fonctionnement, l'un des modes de fonctionnement mettant en oeuvre l'utilisation du dernier bloc constituant les données brutes chiffrées comme donnée d'intégrité et/ou d'authenticité des données brutes, et l'autre mode de fonctionnement ne mettant pas en oeuvre une telle utilisation. 12. Dispositif de traitement comprenant un processeur configuré pour : 20 - obtenir un message généré selon un mode de chiffrement et d'authentification, le message incluant des données brutes chiffrées selon un algorithme de chiffrement symétrique par blocs en mode d'enchaînement des blocs et incluant un code d'authentification de message ; et - utiliser le dernier bloc constituant les données brutes chiffrées comme 25 donnée d'intégrité et/ou d'authenticité des données brutes. 13. Dispositif de traitement selon la revendication 12, dans lequel le processeur est en outre configuré pour : - recevoir ledit message d'un dispositif externe ; - vérifier l'intégrité et l'authenticité du message reçu à l'aide du code 30 d'authentification de message ; - déchiffrer les données brutes et les mémoriser ; - mémoriser le dernier bloc constituant les données brutes chiffrées ; et - utiliser le dernier bloc ainsi mémorisé pour vérifier l'intégrité des données brutes mémorisées lors d'un traitement ultérieur desdites données brutes mémorisées. 3028697 18 14. Dispositif de traitement selon la revendication 13, dans lequel le traitement ultérieur est l'exécution d'une commande reçue ultérieurement audit message, ladite commande mettant en oeuvre lesdites données brutes mémorisées. 15. Dispositif de traitement selon la revendication 13 ou 14, configuré pour 5 vérifier périodiquement l'intégrité des données brutes mémorisées à l'aide dudit dernier bloc mémorisé. 16. Dispositif de traitement selon la revendication 12, dans lequel le processeur est en outre configuré pour : - obtenir les données brutes et une information d'intégrité et/ou d'authenticité 10 desdites données brutes calculée à l'aide d'un algorithme de chiffrement symétrique par blocs en mode d'enchaînement des blocs ; - générer ledit message ; et - s'assurer que le dernier bloc constituant les données brutes chiffrées vaut l'information d'intégrité et/ou d'authenticité, afin de garantir l'intégrité et/ou 15 d'authenticité des données brutes du message avant de transmettre le message généré. 17. Dispositif de traitement selon la revendication 16, en outre configuré pour vérifier l'intégrité des données brutes du message en comparant le dernier bloc constituant les données brutes chiffrées avec l'information d'intégrité et/ou 20 d'authenticité. 18. Dispositif de traitement selon la revendication 16 ou 17, en outre configuré pour remplacer, dans les données brutes chiffrées générées, le dernier bloc par l'information d'intégrité et/ou d'authenticité. 19. Dispositif de traitement selon l'une des revendications 12 à 18, en outre 25 configuré pour établir un canal sécurisé avec un terminal externe, ledit mode de chiffrement et d'authentification étant défini pour le canal sécurisé, et ledit message généré étant transmis sur le canal sécurisé. 20. Dispositif de traitement selon l'une des revendications 12 à 19, dans lequel ledit message comprend une commande APDU selon la norme ISO/IEC 7816. 30 21. Dispositif de traitement selon l'une des revendications 12 à 20, en outre configuré pour, à réception d'une commande particulière, basculer d'un premier mode de fonctionnement vers un second mode de fonctionnement, l'un des modes de fonctionnement mettant en oeuvre l'utilisation du dernier bloc constituant les données brutes chiffrées comme donnée d'intégrité et/ou d'authenticité des données brutes, et l'autre mode de fonctionnement ne mettant pas en oeuvre une telle utilisation. 3028697 19 22. Dispositif de traitement selon l'une des revendications 12 à 21, de type carte à circuit intégré ou élément sécurisé équipant un terminal mobile. 23. Produit programme d'ordinateur comprenant des instructions adaptées à la mise en oeuvre de chacune des étapes du procédé selon l'une des revendications 1 5 à 11 lorsque ledit programme est exécuté sur un ordinateur.