La technologie Java Card TM



Documents pareils
La carte à puce. Jean-Philippe Babau

Projet de Veille Technologique

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

as Architecture des Systèmes d Information

Plan du cours. Historique du langage Nouveautés de Java 7

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

Programmer en JAVA. par Tama

Éléments de programmation et introduction à Java

Java Licence Professionnelle CISII,

Vérification formelle de la plate-forme Java Card

Une introduction à Java

Introduction aux Machines Virtuelles avec VMKit

Java c est quoi? Java. Java. Java : Principe de fonctionnement 31/01/ Vue générale 2 - Mon premier programme 3 - Types de Programme Java

Vulgarisation Java EE Java EE, c est quoi?

TP1 : Initiation à Java et Eclipse

Traitement de données

Programmation d'applications sur PDA

Java - la plateforme

Chapitre I Notions de base et outils de travail

Évaluation de l injection de code malicieux dans une Java Card

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre Enrica.Duchi@liafa.jussieu.fr

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Initiation à JAVA et à la programmation objet.

Rapport de certification ANSSI-CC-PP-2010/07 du profil de protection «Java Card System Closed Configuration» (PP-JCS-Closed-v2.

SGDN. Projet: JAVASEC

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique

INITIATION AU LANGAGE JAVA

Annexe : La Programmation Informatique

Généralités sur le Langage Java et éléments syntaxiques.

Cours 1: Java et les objets

Java et les bases de données: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java. Michel Bonjour

Bases Java - Eclipse / Netbeans

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

UE Programmation Impérative Licence 2ème Année

CAHIER DES CHARGES D IMPLANTATION

Perspectives d'utilisation du serveur web embarqué dans la carte à puce Java Card 3

Une tasse de café fumante est

CREER UNE VM DANS WORKSATION. Créer un Virtual Machine dans VMware Workstation 9

Un nouveau modèle d'identité NFC compatible avec l'écosystème mobile, et cas d'usage

CARTES A PUCE. Pascal Urien - Cours cartes à puce /06/10 Page 1

Machines virtuelles. Brique ASC. Samuel Tardieu Samuel Tardieu (ENST) Machines virtuelles 1 / 40

LA CARTE D IDENTITE ELECTRONIQUE (eid)

Virtualisation CITRIX, MICROSOFT, VMWARE OLIVIER D.

Machines Virtuelles. et bazard autour. Rémi Forax

Programmation en Java IUT GEII (MC-II1) 1

Java et les bases de données

Linux embarqué: une alternative à Windows CE?

Solution A La Gestion Des Objets Java Pour Des Systèmes Embarqués

GenDbg : un débogueur générique. Didier Eymery Jean-Marie Borello Jean-Marie Fraygefond Odile Eymery Philippe Bion

La gestion du poste de travail en 2011 : Panorama des technologies

COMPARAISONDESLANGAGESC, C++, JAVA ET

Cours 1 : La compilation

VMware ESX/ESXi. 1. Les composants d ESX. VMware ESX4 est le cœur de l infrastructure vsphere 4.

6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr

Programmation C. Apprendre à développer des programmes simples dans le langage C

Java pour le Web. Cours Java - F. Michel

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

Base de l'informatique. Généralité et Architecture Le système d'exploitation Les logiciels Le réseau et l'extérieur (WEB)

Encapsulation. L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets.

Programmation par composants (1/3) Programmation par composants (2/3)

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40

Java c est quoi? Java pourquoi?

Institut Supérieur de Gestion. Cours pour 3 ème LFIG. Java Enterprise Edition Introduction Bayoudhi Chaouki

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

Bases du langage. Historique Applications et applets Éléments de base du langage Classes et objets Les exceptions

Polycopié Cours Programmation Orientée Objet sous Java Programme : Filière SMI S5

Vérification formelle de la plate-forme Java Card

Évaluation et implémentation des langages

Java - RMI Remote Method Invocation. Java - RMI

Machines virtuelles Cours 1 : Introduction

Rappels Entrées -Sorties

Réglages du portail de P&WC

Cours en ligne Développement Java pour le web

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

Derrière toi Une machine virtuelle!

Cours de Java. Sciences-U Lyon. Java - Introduction Java - Fondamentaux Java Avancé.

SYSTÈME DE GESTION DE FICHIERS

FOG : Free Open-Source Ghost. Solution libre de clonage et de déploiement de systèmes d'exploitation.

Licence Bio Informatique Année Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...

EXALOGIC ELASTIC CLOUD MANAGEMENT

Enseignant: Lamouchi Bassem Cours : Système à large échelle et Cloud Computing

Structurer ses données : les tableaux. Introduction à la programmation

Samsung Data Migration v2.6 Guide d'introduction et d'installation

ERESI : une plate-forme d'analyse binaire au niveau noyau. The ERESI team

Conventions d écriture et outils de mise au point

java : Langage et Environnement

TAI049 Utiliser la virtualisation en assistance et en dépannage informatique TABLE DES MATIERES

ELP 304 : Électronique Numérique. Cours 1 Introduction

Perspectives pour l entreprise. Desktop Cloud. JC Devos IBM IT Architect jdevos@fr.ibm.com IBM Corporation

Certificat Big Data - Master MAthématiques

Introduction au langage C

Service de lettre électronique sécurisée de bpost. Spécificités techniques

La JVM. La machine virtuelle Java. La JVM. La JVM

A propos de la sécurité des environnements virtuels

PHP et le Cloud. All rights reserved. Zend Technologies, Inc.

Transcription:

Présentation interne au CESTI La technologie Java Card TM sauveron@labri.u-bordeaux.fr http://dept-info.labri.u-bordeaux.fr/~sauveron 8 novembre 2002

Plan Qu est ce que Java Card? Historique Les avantages de la technologie Java Card Son architecture La JCVM Le JCRE Les APIs Conclusion et perspectives Page 2

Qu est ce que Java Card? Technologie permettant de faire fonctionner des applications écrites en langage Java pour : carte à puce autres périphériques à mémoire limitée La technologie Java Card définit une plate-forme sécurisée pour cartes à puce, portable et multi-application qui incorpore beaucoup des avantages du langage Java. Page 3

Historique En Novembre 1996, un groupe d ingénieurs de Schlumberger cherche à simplifier la programmation des cartes à puce tout en préservant la sécurité. = la spécification Java Card 1.0 En Février 1997, Bull et Gemplus se joignent à Schlumberger pour cofonder le Java Card Forum. En Novembre 1997, Sun présente les spécifications Java Card 2.0. Page 4

Historique En Mars 1999 sort la version 2.1 des spécifications Java Card. Elles consistent en trois spécifications : The Java Card 2.1 API Specification. The Java Card 2.1 Runtime Environment Specification. The Java Card 2.1 Virtual Machine Specification. Contribution la plus significative : Définition explicite de la machine virtuelle de la Java Card. Le format de chargement des applets. Page 5

Historique En Mai 2000, sort une petite correction = version 2.1.1 En Octobre 2000, plus de 40 entreprises ont acquis la licence d exploitation de la technologie Java Card. En juin 2002, spécifications Java Card 2.2. Page 6

Les avantages de la technologie Java Card La facilité de développement des applications grâce : à la programmation orientée objet offerte par Java à l utilisation des environnements de développement existants pour Java. à une plate-forme ouverte qui définit des APIs et un environnement d exécution standard. à l encapsulation de la complexité fondamentale du système des cartes à puce. Page 7

Les avantages de la technologie Java Card La sécurité grâce : à plusieurs niveaux de contrôle d accès aux méthodes et aux variables (public, protected, private). à un langage fortement typé. à l impossibilité de construire des pointeurs. à un firewall Page 8

Les avantages de la technologie Java Card L indépendance au hardware réalisée grâce au langage Java = Write Once, Run Anywhere La capacité de stockage et de gestion de multiples applications. = possiblité de mises à jour des applications de la Java Card sans avoir besoin de changer de cartes. La compatibilité avec les standards existants sur les cartes à puces. Page 9

Présentation de son architecture Contraintes mémoires : 1Ko de RAM, 16Ko d EEPROM et de 24Ko de ROM = Problèmes pour construire une carte Java = Solutions : supporter seulement un sous-ensemble des caractéristiques du langage Java découper la machine virtuelle Java (JCVM : Java Card Virtual Machine) en deux parties une partie en dehors de la carte une partie sur la carte Page 10

Présentation de son architecture = Problème : Beaucoup de tâches ne sont plus vérifiées à l exécution. = Solution : Un environnement d exécution, le JCRE (Java Card Runtime Environment) chargé de fournir des mécanismes sécuritaires. Page 11

Présentation de son architecture Le JCRE encapsule la complexité fondamentale du système des cartes à puce. A cause du découpage de la JCVM, la plate-forme est distribuée entre la carte à puce et la machine de développement dans le temps et dans l espace. Page 12

Présentation de son architecture Applet Applet Java Card APIs JCRE Java Card Virtual Machine (interpréteur de bytecode) Hardware de la carte à puce et système natif. Cette architecture de la technologie Java Card est définie par : The Java Card 2.1 Virtual Machine Specification. The Java Card 2.1 Runtime Environment Specification. The Java Card 2.1 API Specification. Page 13

Présentation de son architecture Caractéristiques Java supportées Type simple de donnée de petite taille : boolean, byte, short Tableau à une dimension Paquetage Java, classes, interfaces et exceptions Caractéristiques orientées objet : héritage, méthodes virtuelles, surcharge et création dynamique d objet, contrôle d accès Le mot clé int et le support des entiers sur 32 bits sont optionnels Page 14

Présentation de son architecture Caractéristiques Java non supportées Type simple de donnée de grosse taille : long, double, float Tableau plusieurs dimensions Caractères et chaines Chargement dynamique des classes Security Manager Ramasse-miettes et finalisation Threads Serialisation d objet Clonage d objet Page 15

La machine virtuelle de la Java Card VM hors carte VM embarquée Fichiers class Convertisseur Interpréteur Fichier CAP Les deux parties implémentent toutes les fonctions d une machine virtuelle. Page 16

La machine virtuelle de la Java Card Fichier CAP Le fichier CAP est le format standard de fichier pour la compatibilité binaire de la plate-forme Java Card. Un fichier CAP contient une représentation binaire exécutable des classes d un paquetage Java. Un fichier CAP est un fichier JAR qui contient un ensemble de composants. Chaque composant décrit un aspect du contenu d un fichier CAP comme les informations sur les classes, les bytecodes exécutables, les informations de linkage, les informations de vérifications, etc. Page 17

La machine virtuelle de la Java Card Fichier export Un fichier export contient les informations publiques sur les API pour un paquetage de classes complet. Page 18

La machine virtuelle de la Java Card Convertisseur Java Card Le convertisseur réalise les taches que la machine virtuelle Java sur une station de travail doit réaliser au chargement des classes : Vérifie que le chargement des images des classes Java sont bien formées. Contrôle des violations du langage Java Card. Réalise des initialisations de variables static. Page 19

La machine virtuelle de la Java Card Résout les références symboliques aux classes, méthodes et champs dans la forme la plus compact qui peut être traitée efficacement sur la carte. Optimise le bytecode en tirant avantage des informations obtenu au chargement des classes et au linkage. Alloue l espace et créer les structures de données de la machine virtuelle pour représenter les classes. Page 20

La machine virtuelle de la Java Card Fichiers class Fichier CAP Convertisseur Fichiers export Fichier export La sortie produite par le convertisseur est un fichier CAP et un fichier export pour le paquetage converti. Page 21

La machine virtuelle de la Java Card Interpréteur Java Card L interpréteur Java Card fournit le support d exécution du modèle du langage Java qui autorise une indépendance au hardware du code de l applet. L interpréteur réalise les taches suivantes : Exécute les instructions du bytecode et ultimement les exécutions des applets. Contrôle les allocations de mémoire et les créations d objets. Joue un rôle crucial pour s assurer de la sécurité lors de l exécution. Page 22

La machine virtuelle de la Java Card Installateur Java Card et programme d installation hors carte Fichiers class Installateur embarqué JCRE Convertisseur JCVM (Interpréteur) Fichier CAP Programme d installation hors-carte CAD PC ou station de travail Carte à puce Page 23

L environnement d exécution de la JC Le JCRE est responsable de la gestion des ressources de la carte, communication réseau, exécution des applets, du système de la carte et de la sécurité des applets. Applet Applet Applet APIs Extensions spécifiques à l industrie installateur JCRE gestion des applets gestion des transactions Classes systèmes réseau I/O communication Autres services Java Card Virtual Machine (bytecode interpréteur) méthodes natives Hardware de la carte à puce et système natif. Page 24

L environnement d exécution de la JC Le cycle de vie du JCRE Le JCRE est initialisé à la phase d initialisation de la carte (seulement une fois dans le cycle de vie de la carte). Le cycle de vie du JCRE est le même que le cycle de vie de la carte. Page 25

L environnement d exécution de la JC Quand la tension est enlevée, la machine virtuelle est seulement suspendue. L état du JCRE et des objets créés sur la carte est préservée. A la prochaine remise sous tension, le JCRE relance l exécution de la machine virtuelle en chargeant les données depuis la mémoire persistante. Durant le reset, si une transaction n a pas été terminée, le JCRE réalise tous les nettoyages nécessaires pour remettre le JCRE dans un état cohérent. Page 26

L environnement d exécution de la JC Comment le JCRE opère durant les sessions CAD? le JCRE opère comme une carte à puce typique. Applet JCRE Page 27

L environnement d exécution de la JC Les caractéristiques du JCRE Objets persistants et temporaires Objets persitants existent à travers les sessions CAD. Objets temporaires contiennent des données temporaires qui ne persistent pas au travers des sessions CAD. Atomicité et transactions Chaque opération d écriture de la JCVM est atomique. Le champ mis à jour prend soit la nouvelle valeur soit il est restauré à la valeur précédente. Une transaction est un bloc d opérations atomiques. Page 28

L environnement d exécution de la JC Firewall des applets et les mécanismes de partage Le firewall isole les applets à l intérieur de leur espace (contexte). Si les applets ont besoin d accéder à des données ou à des services du JCRE, la machine virtuelle autorise de telles possibilités à travers des mécanismes sécurisés de partage. Page 29

Les APIs Java Card Les APIs Java Card sont un ensemble de classes optimisées pour la programmation des cartes à puce en accord avec le modèle ISO7816. Le paquetage java.lang Le paquetage Java Card java.lang est un sous ensemble strict de son équivalent le paquetage java.lang sur la plate-forme Java. Le paquetage javacard.framework Ce paquetage fournit la structure des classes et des interfaces pour le noyau fonctionnel des applets Java Card. Page 30

Les APIs Java Card Le paquetage javacard.security Le paquetage javacard.security fournit une architecture aux fonctions cryptographiques supportées sur la plate-forme Java Card. Le paquetage javacardx.crypto Le paquetage javacardx.crypto est un paquetage d extension. Page 31

Conclusion et perspectives La technologie Java Card révolutionne le monde de la carte en banalisant sa programmation. Elle offre la possibilité de réduire les coûts de développement et d évaluation. Problème : la carte multi-applicative fait peur aux industriels et aux utilisateurs (verrou psychologique). Solution : utilisation du standard Open Platform pour maintenir un niveau de sécurité supplémentaire afin de rassurer les industriels. utilisation de Java Card comme plate-forme mono-applicative afin de ne pas inquiéter les consommateurs. Page 32