JavaCard - Emmanuel de Castro

publicité
Projet de veille technologique
10 janvier 2005
– Emile
Gourlay
– Julien
– Emmanuel
De Castro
XavierXavier
PerrinPerrin
– Emile
Gourlay
– Julien
JanierJanier
– Emmanuel
De Castro
Plan
Cartes à puces
JavaCard
Coté terminal (OpenCard)
JavaCard en pratique
10 janvier 2005
Xavier Perrin – Emile Gourlay – Julien Janier – Emmanuel De Castro
Généralités sur les cartes à puces
Historique
1974, cartes à mémoire
• Innovatron
1977, carte à microprocesseur
• Bull CP8
• 1980, carte bancaire
• 1983, carte santé
1984, carte à micromodules
• France Telecom
10 janvier 2005
Xavier Perrin – Emile Gourlay – Julien Janier – Emmanuel De Castro
Généralités sur les cartes à puces
Réalisations industrielles majeures
Carte Bleue
SESAM Carte Vitale
Porte monnaie
électronique
Téléphonie mobile
10 janvier 2005
Xavier Perrin – Emile Gourlay – Julien Janier – Emmanuel De Castro
Généralités sur les cartes à puces
Types de cartes (1/2)
Carte à mémoire
• Mémoire simple (sans processeur).
• Carte “porte-jeton” .
Carte à logique cablée
• Mémoire accessible via des circuits
préprogrammés et figés .
• Carte “sécuritaire” .
10 janvier 2005
Xavier Perrin – Emile Gourlay – Julien Janier – Emmanuel De Castro
Généralités sur les cartes à puces
Types de cartes (2/2)
SmartCard
• Microcontrôleur encarté (processeur +
mémoires).
• Carte “programmable” pouvant effectuer
tout type de traitements.
• Interface électronique par contacts ou via
signaux RF.
10 janvier 2005
Xavier Perrin – Emile Gourlay – Julien Janier – Emmanuel De Castro
Généralités sur les cartes à puces
Architecture d'une Smartcard
10 janvier 2005
Xavier Perrin – Emile Gourlay – Julien Janier – Emmanuel De Castro
Les Avantages
Langage de haut niveau
Write Once Run Anywhere
Plateforme multi applicative
Partage de données entre applications
Sécurité des données
Souplesse
10 janvier 2005
Xavier Perrin – Emile Gourlay – Julien Janier – Emmanuel De Castro
Java Vs JavaCard
Une sous Classe du langage Java
•
•
•
•
•
•
Pas de chargement de classe dynamique.
Pas de threads / synchronisation.
Pas de Clone.
Pas de méthodes Natives.
Pas de String.
Peu de types.
Une sous Classe de la VM Java
• Un bytecode limité.
• Nommage différent. (pas de string)
• Pas de GC / pas de finalize.
10 janvier 2005
Xavier Perrin – Emile Gourlay – Julien Janier – Emmanuel De Castro
Javacard : comment ça marche?
L’architecture. (JCRE)
• Les Natives methods.
• L’interpréteur.
• Les standard class libraries.
10 janvier 2005
Xavier Perrin – Emile Gourlay – Julien Janier – Emmanuel De Castro
Mécanismes de mise en Oeuvre.
Librairies de
développement
Compilateur
Java
.java
Fichiers
Class
Java
Exports
.class
Convertiseur, verifieur,
signeur de bytecode
API
Interprète
On-card
Loader
O.S.
Java Card
Files
.cap
10 janvier 2005
Xavier Perrin – Emile Gourlay – Julien Janier – Emmanuel De Castro
Création d’une applet
Bibliothèque de base javacard.Framework
Hérite de javacard.Framework.Applet
Implémente
•
•
•
•
Install
Process
Select
deselect
10 janvier 2005
Xavier Perrin – Emile Gourlay – Julien Janier – Emmanuel De Castro
Installation des applets
Pourquoi installer des applets ?
L’installation
• Chargement sur la carte
• Création d’une instance.
10 janvier 2005
Xavier Perrin – Emile Gourlay – Julien Janier – Emmanuel De Castro
Coté sécurité : L’applet Firewall
10 janvier 2005
Xavier Perrin – Emile Gourlay – Julien Janier – Emmanuel De Castro
RPC et systèmes à objets répartis
L’approche :
construire les applications avec la carte
comme des applications réparties
Principes :
• Notion d’interface objet pour décrire les
objets distants
• Pré-compilateur pour générer les couches
(skell stub)
• Le principe Java RMI est retenu.
10 janvier 2005
Xavier Perrin – Emile Gourlay – Julien Janier – Emmanuel De Castro
RPC et systèmes à objets répartis
Applet JavaCard = objet serveur distant
10 janvier 2005
Xavier Perrin – Emile Gourlay – Julien Janier – Emmanuel De Castro
Les Terminaux.
Appareil permettant l'accès à distance
à un système informatique.
Rôle terminal
10 janvier 2005
Xavier Perrin – Emile Gourlay – Julien Janier – Emmanuel De Castro
La norme ISO 7816
Norme décomposée en sous
parties:
• Partie 1: caractéristiques
physique
• Partie 2: les contacts
• Partie 3: caractéristiques
électrique & protocole de
communication
• Partie 4: format de paquets
(APDU)
10 janvier 2005
Xavier Perrin – Emile Gourlay – Julien Janier – Emmanuel De Castro
Le standard PC/SC
Pourquoi?
• Standardiser l’interface entre PC et le
lecteur.
• Exploitation des cartes multi applicatives
• Création d’un groupe de travail (PC/SC
workgroup)
Standard:
• Repose sur la norme ISO 7816
• Offre une interface entre le driver de carte et
la programmation
10 janvier 2005
Xavier Perrin – Emile Gourlay – Julien Janier – Emmanuel De Castro
Opencard
Framework orienté objet pour l’utilisation
des smart card.
Pourquoi?
• Standardiser les accès aux cartes à puce
Les atouts d’Opencard.
• Développeurs
• Fabricants
Opencard VS PC/SC
• Opencard complémente PC/SC
• PC/SC reste d’actualité
10 janvier 2005
Xavier Perrin – Emile Gourlay – Julien Janier – Emmanuel De Castro
Architecture Opencard
10 janvier 2005
Xavier Perrin – Emile Gourlay – Julien Janier – Emmanuel De Castro
Javacard en pratique
Le Java development Kit
Un JDK de SUN spécialement pour
Javacard
• Environnement de simulation
– Support pour la cryptographie
– Adressage étendu
– Support du RMI
• Outils
– Respectant les spécifications Javacard 2.2.1, et
les nouvelles fonctionnalités
• Plateformes
– Support JDK 1.4.1
– Version Linux existante
10 janvier 2005
Xavier Perrin – Emile Gourlay – Julien Janier – Emmanuel De Castro
Javacard en pratique
Documentation du développeur
Javacard sur le site de Sun
• Java Card 2.1.1 Vitual Machine Specification
• Java Card 2.1.1 Runtime Environment Specification
• Java Card 2.1.1 Application Programming Interface
Opencard sur le site d'OpenCard ou
GemPlus
• OpenCard 1.2 Application Programming Interface
• OpenCard 1.2 Programmer's Guide
10 janvier 2005
Xavier Perrin – Emile Gourlay – Julien Janier – Emmanuel De Castro
DEMO
10 janvier 2005
Xavier Perrin – Emile Gourlay – Julien Janier – Emmanuel De Castro
Conclusion (1/3)
Cartes à puces de plus en plus
répandues
Utilisation de plus en plus facile
• plus de C ou d'assembleur -> langage évolué,
objet
10 janvier 2005
Xavier Perrin – Emile Gourlay – Julien Janier – Emmanuel De Castro
Conclusion (2/3)
Javacard propose un SDK complet,
aux outils performant et fortement
documenté.
Opencard propose un framework
pour standardiser les échanges avec
les terminaux.
10 janvier 2005
Xavier Perrin – Emile Gourlay – Julien Janier – Emmanuel De Castro
Conclusion (3/3)
Alternative à Javacard : JITS
• Mélange de l'OS et de la JVM pour plus de
légèreté et de flexibilité.
• API est plus complète que l'API de javacard.
10 janvier 2005
Xavier Perrin – Emile Gourlay – Julien Janier – Emmanuel De Castro
Des questions
?
10 janvier 2005
Xavier Perrin – Emile Gourlay – Julien Janier – Emmanuel De Castro
Téléchargement