• Aucun résultat trouvé

Ensemble d’outils

Chapitre VI : Contribution « Introduction d’un nouveau module de vérification dans le

2. ENVIRONNEMENT DE DEVELOPPEMENT

2.2. Ensemble d’outils

Les logiciels inclus dans le kit de développement pour la plate-forme Java Card 2.2.2 contiennent toutes les spécifications Java Card, l’interface de programmation d'application pour la plateforme Java Card, version 2.2.2, la spécification de l’environnement d’exécution pour la plate-forme Java Card, version 2.2.2, et la spécification de la machine virtuelle pour la plate-forme Java Card, version 2.2.2. Dans cette section, nous allons décrire l’ensemble d’outils contenus dans ce kit. [50]

2.2.1. L’outil « jcwde » (Java Card Workstation Development Environment)

L’environnement de développement et d’exécution de la plate-forme Java Card jcwde est un outil qui permet la simulation d’exécution d'une applet Java Card comme si elle était masquée dans la ROM. Il émule l'environnement de la carte.

Le jcwde n'est pas une implémentation de la machine virtuelle Java Card. Il utilise la machine virtuelle Java pour émuler l’environnement d’exécution Java Card. Pour la version 2.2.2 de l’implémentation de référence de la plate-forme Java Card, le jcwde ajoute le support pour l’invocation de méthode à distance (Java Card RMI).

Les fonctionnalités du JCRE qui ne sont pas prises en charge par le jcwde sont les suivantes:

• L'installation du package.

• L’état de la carte persistante.

• Le pare-feu.

• Les transactions.

• Le nettoyage du tableau transitoire.

• La suppression des applets.

• La suppression des packages. [50] 2.2.2. L’outil « cref »

L’implémentation de référence pour la plate-forme Java Card est écrite dans le langage de programmation C et est appelée cref ("C-langage Java Card RE"). Il s'agit d'un simulateur de l’environnement d’exécution Java Card (JCRE) qui peut être construit avec un masque de la ROM, un peu comme une implémentation d’une carte réelle basée sur la technologie Java Card. Il a la capacité de simuler la mémoire persistante (EEPROM), et de sauvegarder et restaurer le contenu de l'EEPROM envers et à partir des fichiers de disque. Les applets peuvent être installées dans le cref. Le cref effectue des E/S via une interface de socket, simulant l'interaction avec un lecteur de carte implémentant les communications T = 1, T = CL, ou T = 0 avec le lecteur de carte (CAD). Il supporte :

• L'utilisation de jusqu'à trois canaux logiques.

• Le type de données entier.

• La suppression d'objet.

• La réinitialisation de la carte en cas d'allocation d’objet au cours d'une transaction avortée. [50]

2.2.3. L’outil « apdutool »

L’outil apdutool est utilisé pour simuler l’interface de communication entre une carte à puce Java Card et le lecteur de la carte (CAD). Il lit un fichier de script contenant des commandes APDUs et envoie ces commandes au cref ou bien au jcwde. Chaque APDU est traitée et retournée à l’apdutool, qui affiche à la fois la commande et la réponse APDU sur le console. Optionnellement, l’apdutool peut écrire ces informations dans un fichier journal. [50]

2.2.4. L’outil « Converter »

L’outil Converter est utilisé pour transformer les fichiers class qui composent un package Java.

En plus des fichiers class, le convertisseur peut traiter soit la version 2.2.x, ou bien la version 2.1.x des fichiers d'exportation. Selon les options de ligne de commande, le convertisseur génère un fichier CAP, un fichier JCA, et un fichier d'exportation.

Le fichier CAP est un fichier au format JAR qui contient la représentation binaire exécutable des classes dans un package Java. Le fichier CAP contient également un fichier de type manifest qui fournit des informations lisibles sur le package que le fichier CAP représente.

Notons que le vérifieur effectue, avant la transformation, une vérification du sous-ensemble des fichiers classes, en suivant les limitations du langage Java Card définies dans [51]. [50]

2.2.5. L’outil « offcardverifier »

La vérification hors-carte fournit un moyen d’évaluer les fichiers CAP et les fichiers d'exportation dans un simple ordinateur. Lorsqu'elle est appliquée à l'ensemble de fichiers CAP qui vont être chargés sur une Java Card, et l'ensemble de fichiers d'exportation utilisés pour construire ces fichiers CAP, le vérifieur hors-carte (offcardverifier) fournit le moyen d'affirmer que le contenu de la carte à puce a été vérifié.

Le vérifieur hors-carte offert par le kit de développement pour la plate-forme Java Card 2.2.2 (Javacard Developpment Kit 2.2.2) est une implémentation de l’algorithme de vérification hors-carte de Sun que nous avons présenté dans le chapitre précédent. Il consiste à une combinaison de trois outils : verifycap, verifyexp, et verifyrev, dont :

« verifycap » : L'outil verifycap est utilisé pour vérifier un fichier CAP dans le contexte de fichier d'exportation de son package (s’il y en a un) et les fichiers d'exportation des packages importés. Cette vérification confirme si un fichier CAP est intrinsèquement cohérent, telle que défini dans le chapitre précédent, et compatible avec un contexte dans lequel il peut résider dans une Java Card.

« verifyexp » : L'outil verifyexp est utilisé pour vérifier un fichier d'exportation comme une seule unité. Cette vérification est «superficielle», elle examine seulement le contenu d'un fichier d'exportation unique, et n’incluse pas les fichiers d'exportation référencés par le package du fichier d'exportation. La vérification détermine si un fichier d'exportation est intrinsèquement cohérent et viable tel que défini dans [51].

« verifyrev » : L'outil verifyrev est utilisé pour vérifier la compatibilité binaire entre les versions d'un package en comparant les fichiers d'exportation respectifs. La vérification examine si les règles de la version de la plate-forme Java Card, y compris celles qui sont imposées pour assurer la compatibilité binaire tel que définies dans [51], ont été suivies. [50]

2.2.6. L’outil « scriptgen »

L’outil scriptgen est utilisé pour simuler le programme d'installation hors-carte. Il permet de convertir un package contenu dans un fichier CAP en un fichier de script. Le fichier script contient une séquence d'APDUs au format ASCII approprié pour un autre outil, comme l’apdutool, pour l’envoyer au CAD à fin d’être chargé sur le simulateur de la plate-forme Java Card cref ou bien jcwde. L’ordre des composants du fichier CAP dans le script APDU est identique à l'ordre recommandé par la spécification de la machine virtuelle pour la plate-forme Java Card, version 2.2.2 [48]. [50]

2.2.7. L’outil « Installer »

L’Installer est l’outil offert par le kit de développement pour la plate-forme Java Card 2.2.2 qui représente l'installeur sur carte. Il permet de charger un package Java Card au format d’un script APDU dans une carte à puce et peut aussi le supprimer, ainsi que les applets. L’installer peut être utilisé pour:

• Charger dynamiquement un package sur une carte à puce de type Java Card. Au cours du développement, le fichier CAP peut être installé sur le simulateur du JCRE cref, plutôt que sur une carte réelle. L'installeur est capable de charger les versions 2.1, 2.2, 2.2.1, 2.2.2 des fichiers CAP.

• Effectuer au besoin, l’édition de liens sur la carte.

• Supprimer des applets et des packages d'une Java Card. Une fois l'installeur est sélectionné, les demandes de suppression peuvent être envoyés, à partir du terminal, à la carte sous forme de commandes APDUs.

• Le réglage, par défaut, des applets sur les différents canaux logiques.

L’installer n'est pas une application multiselectable. Au démarrage, l’installer est l'applet par défaut sur le canal logique 0. L'applet par défaut sur les autres canaux logiques est définie à No applet selected. [50]

2.2.8. L’outil « capgen »

Avant de décrire la fonction de l’outil capgen, nous allons, en premier définir ce qu’est un fichier JCA.

Fichier JCA (Java Card Assembly) : C’est une représentation textuelle lisible d'un fichier CAP qu’on peut utiliser pour faciliter les tests et le débogage.

L’outil capgen est utilisé pour générer un fichier CAP à partir d'un fichier JCA (Java Card Assembly) donné. Le fichier CAP qui est généré a le même contenu d’un fichier CAP produit par le convertisseur. L'outil capgen est un back-end au convertisseur. [50]

2.2.9. L’outil « capdump »

L’outil capdump est utilisé pour créer une version ASCII (ensemble de commandes APDUs) d'un fichier CAP pour faciliter le débogage. [50]

2.2.10.L’outil « exp2text »

C’est un outil qui permet de visualiser n'importe quel fichier d'exportation en format texte. [50]