10 janvier 2005Xavier Perrin – Emile Gourlay – Julien Janier – Emmanuel De Castro Projet de...

Preview:

Citation preview

10 janvier 2005 Xavier Perrin – Emile Gourlay – Julien Janier – Emmanuel De Castro

Projet de veille technologique

Xavier Perrin – Emile Gourlay – Julien Janier – Emmanuel De Castro

10 janvier 2005 Xavier Perrin – Emile Gourlay – Julien Janier – 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.

.java

CompilateurJava

Librairies dedéveloppement

Fichiers ClassJava

.class

Exports

Convertiseur, verifieur, signeur de bytecode

On-cardLoader

APIInterprète

O.S.

Java CardFiles

.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 pratiqueLe 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 pratiqueDocumentation 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?