|
architectureArchitecture générale d'une JavaCard : Méthodes nativesLes méthodes natives (native methods) sont des méthodes de bas niveaux effectuant les opérations d'entrées/sorties, de gestion de la mémoire et du coprocesseur cryptographique. Machine virtuelle JavaLa machine virtuelle Java (JVM ou Java Virtual Machine) est chargée d'exécuter le bytecode obtenu après édition des liens et compilation. Plusieurs applications pouvant exister sur une même JavaCard, la JVM se charge du partage des données. Certaines données peuvent être communes à toutes les applications hébergées mais une donnée privée à une application particulière ne pourra être accédée par aucune autre application. La JVM offre de plus le support du langage et masque les spécificités liées à la technologie de la carte puisqu'elle est située au dessus du système d'exploitation et des méthodes natives. On possède ainsi une interface de programmation commune à tous les constructeurs et donc une indépendance totale par rapport à la plate-forme de la carte. Standard Class LibrairiesLes Standard Class Librairies sont un ensemble d'APIs (Application Programming Interface). Elles masquent les détails de l'architecture afin d'offrir une interface facile à manipuler permettant d'accéder aux méthodes natives ainsi qu'au JCRE (Java Card Runtime Environment). AppletsLes applets sont les applications hébergées par la JavaCard. Elles ont été écrites en langage JavaCard puis compilées avant d'être stockées sur la carte. Elles s'exécutent chacune leur tour en réponse à une demande du lecteur de carte. Installation d'une appletL'installation d'une applet est réalisée lors de la fabrication de la carte ou lors de sa mise à jour à partir d'un terminal (lecteur de cartes) sécurisé. L'applet est alors soit chargée en ROM (étape de fabrication), soit chargée en EEPROM (étape de mise à jour). Après que l'applet est été chargée, le JCRE
va effectuer une phase de reconnaissance en appelant automatiquement la
méthode publique install(). Cet appel est réalisé
une fois pour toute et est réalisé avant que l'applet ne
soit instanciée. Sélection, activation et désactivation d'une appletUne applet, identifiée par une clé unique, est inactive
tant qu'elle n'a pas été sélectionnée pour
être exécutée. Communication avec les appletsToute applet possède une méthode publique nommée process(). Cette méthode est appelée par le JCRE lorsqu'il reçoit un APDU de commande pour l'applet.
|