d applications embarquées en environnement Java Card TM



Documents pareils
La technologie Java Card TM

La carte à puce. Jean-Philippe Babau

Projet de Veille Technologique

as Architecture des Systèmes d Information

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

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

Vulgarisation Java EE Java EE, c est quoi?

Programmer en JAVA. par Tama

Vérification formelle de la plate-forme Java Card

Java Licence Professionnelle CISII,

Une introduction à Java

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

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

Introduction aux Machines Virtuelles avec VMKit

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

Java - la plateforme

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

LA CARTE D IDENTITE ELECTRONIQUE (eid)

Cours 1: Java et les objets

Fiche technique rue de Londres Paris Tél. : Mail : contact@omnikles.com

Éléments de programmation et introduction à Java

A propos de la sécurité des environnements virtuels

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

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

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

Programmation d'applications sur PDA

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

TP1 : Initiation à Java et Eclipse

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

Vérification formelle de la plate-forme Java Card

EP60.92 Projet d application pluridisciplinaire La chasse aux trésors

La Technologie Carte à Puce EAP TLS v2.0

Annexe : La Programmation Informatique

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

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

Chapitre I Notions de base et outils de travail

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

Machines virtuelles Cours 1 : Introduction

SGDN. Projet: JAVASEC

Chapitre 2 : Abstraction et Virtualisation

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

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

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

Programmation en Java IUT GEII (MC-II1) 1

Java et les bases de données

Le stockage unifié pour réduire les coûts et augmenter l'agilité

Une tasse de café fumante est

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

Technique et architecture de l offre Suite infrastructure cloud. SFR Business Team - Présentation

Réglages du portail de P&WC

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

INITIATION AU LANGAGE JAVA

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

Cours Informatique 1. Monsieur SADOUNI Salheddine

Bases de données cours 1

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Java c est quoi? Java pourquoi?

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

Bases Java - Eclipse / Netbeans

Manuel d utilisation de ndv 4

Prise en compte des ressources dans les composants logiciels parallèles

I-JVM: une machine virtuelle Java pour l isolation de composants dans OSGi

Structure fonctionnelle d un SGBD

Évaluation et implémentation des langages

Java pour le Web. Cours Java - F. Michel

Sessions en ligne - QuestionPoint

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

EXALOGIC ELASTIC CLOUD MANAGEMENT

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

Evaluation, Certification Axes de R&D en protection

Automatic generation of vulnerability tests for the Java Card byte code verifier

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)

Sans trop entrer dans les détails, la démarche IO Model consiste à : Pour cela, Microsoft découpe la maîtrise de l infrastructure en quatre niveaux :

Architecture des ordinateurs

Initiation à JAVA et à la programmation objet.

VMWARE VSPHERE ESXI INSTALLATION

Windows Server Chapitre 1: Découvrir Windows Server 2008

Présentation OpenVZ. Marc SCHAEFER. 9 janvier 2009

Code Alphanumérique (Clavier) - L'interphone Le vidéophone La clé électronique de contact

Certificat Big Data - Master MAthématiques

MANUEL D INSTALLATION DES PRE REQUIS TECHNIQUES SALLE DES MARCHES V.7

Nouveautés Ignition v7.7

Ready to Go? [Retour d'expérience sur un projet en Golang] HTML PDF 1 / 44

+ = OpenStack Presentation. Raphaël Ferreira - enovance. Credits : Thanks to the OpenStack Guys 1

Machines Virtuelles. et bazard autour. Rémi Forax

Sécurité et sûreté des systèmes embarqués et mobiles

CAHIER DES CHARGES D IMPLANTATION

JF SMA'14. A3 - Agent Anytime Anywhere. une plateforme à agents distribués Oct l'expertise middleware.

Nouveau Programme Formation Monétique

INTERSYSTEMS CACHÉ COMME ALTERNATIVE AUX BASES DE DONNÉES RÉSIDENTES EN MÉMOIRE

HSM, Modules de sécurité matériels de SafeNet. Gestion de clés matérielles pour la nouvelle génération d applications PKI

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

SYSTÈME DE GESTION DE FICHIERS

java : Langage et Environnement

Rapport de certification

Sélection du contrôleur

Transcription:

Mémoire de DEA sous la direction de Serge Chaumette Sécurité et vérification d applications embarquées en environnement Java Card TM sauveron@labri.u-bordeaux.fr http://dept-info.labri.u-bordeaux.fr/~sauveron 26 juin 2001

Plan Les différentes cartes à puce La technologie Java Card Développement logiciel Perspectives sauveron@labri.u-bordeaux.fr Page 2

Objectifs Objectif principal : mettre en place les bases de travail nécessaires au commencement d une thèse CIFRE compréhension et maîtrise des spécifications Java Card mise en place de documentations sur la technologie Java Card = un rapport interne du LaBRI RR-1259-01 Autres objectifs : pré-étude des pistes à explorer développement logiciel sauveron@labri.u-bordeaux.fr Page 3

Les différentes cartes à puce Il existe plusieurs sortes de cartes à puce. Plusieurs classements possibles : les cartes à mémoire versus les cartes à microprocesseur les cartes à contact versus les cartes sans contact sauveron@labri.u-bordeaux.fr Page 4

Les différentes cartes à puce La carte à mémoire Premier modèle de cartes à puce Majorité des cartes vendues dans le monde en 1999 Elle possède : une puce mémoire de 1 à 4 Ko une logique cablée non programmable Avantages : sa technologie simple son faible coût (1$) Inconvénients : sa dépendance vis-à-vis du lecteur de carte assez facile à dupliquer sauveron@labri.u-bordeaux.fr Page 5

Les différentes cartes à puce La carte à microprocesseur Taille de la puce : 25mm 2 Microprocesseur (CPU) : 8, 16 ou 32 bits (à architecture RISC ou pas) ROM : 16 à 24 Ko EEPROM : 8 à 64 Ko RAM : 256 octects à 1Ko Coprocesseur cryptographique Générateur de nombres aléatoires (RNG) Avantage : le coût acceptable pour tant de sécurité (entre 1$ et 20$). sauveron@labri.u-bordeaux.fr Page 6

Les différentes cartes à puce La carte à contact Suit le standard ISO 7816 Communication série via huit contacts = insertion dans un lecteur de carte Problèmes : l insertion et le retrait sont des facteurs d usure de la carte orientation de la carte dans le lecteur sauveron@labri.u-bordeaux.fr Page 7

Les différentes cartes à puce La carte sans contact Communication via une antenne dans la carte Récupère son énergie d un couplage capacitif ou d un couplage inductif Problèmes : distance de communication limitée (environ 10 cm) temps de transaction est de l ordre de 200 ms = limite les données à échanger le coût élévé sauveron@labri.u-bordeaux.fr Page 8

Les différentes cartes à puce La carte combi C est une combinaison entre : la carte à contact et la carte sans contact Ces deux possibilités de communication en font une carte idéale. sauveron@labri.u-bordeaux.fr Page 9

La technologie Java Card Technologie permettant de faire fonctionner des applications écrites en langage Java pour : les cartes à puce d autres périphériques à mémoire limitée La technologie Java Card définit une plateforme pour cartes à puce sécurisée, portable et multi-applications qui incorpore beaucoup des avantages du langage Java. sauveron@labri.u-bordeaux.fr Page 10

La technologie Java Card 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 plateforme 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 sauveron@labri.u-bordeaux.fr Page 11

La technologie Java Card 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 sauveron@labri.u-bordeaux.fr Page 12

La technologie Java Card 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 mise à jour des applications de la Java Card sans avoir besoin de changer de cartes La compatibilité avec les standards existants sur les cartes à puce. sauveron@labri.u-bordeaux.fr Page 13

La technologie Java Card Présentation de son architecture Problème : contraintes mémoires Solutions : Applet Applet un sous-ensemble des caractéristiques du langage Java Java Card APIs JCRE découper la machine virtuelle Java en deux parties Problème : pas de vérificateur embarqué Solution : fournir des mécanismes sécuritaires avec l environnement d exécution Java Card Virtual Machine (interpréteur de bytecode) Hardware de la carte à puce et système natif. Spécifications Java Card 2.1.1 Virtual Machine Runtime Environment API sauveron@labri.u-bordeaux.fr Page 14

La technologie Java Card Le langage Java Card Caractéristiques Java non supportées Type simple de donnée de grosse taille : long, double, float Tableau plusieurs dimensions Caractères et chaînes Chargement dynamique des classes Security Manager Ramasse-miettes et finalisation Threads Serialisation d objet Clonage d objet sauveron@labri.u-bordeaux.fr Page 15

La technologie Java Card Le langage Java Card 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éristique orientée 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 sauveron@labri.u-bordeaux.fr Page 16

La technologie Java Card La machine virtuelle Java Card : JCVM Les deux parties implémentent toutes les fonctions d une machine virtuelle. Fichiers class VM hors carte Convertisseur Interpréteur VM embarquée A cause du découpage de la JCVM, la plateforme est distribuée dans le temps et dans l espace. Fichier CAP sauveron@labri.u-bordeaux.fr Page 17

La technologie Java Card L environnement d exécution Java Card Responsable : de la gestion des ressources de la carte de la communication réseau de l exécution des applets du système de la carte de la sécurité des applets Applet Applet Applet APIs gestion des applets gestion des transactions Java Card Virtual Machine (bytecode interpréteur) Extensions spécifiques à l industrie Classes système réseau I/O communication Hardware de la carte à puce et système natif. installateur méthodes natives Autres services JCRE sauveron@labri.u-bordeaux.fr Page 18

La technologie Java Card L environnement d exécution Java Card Les caractéristiques du JCRE Objets persistants existant au travers des sessions avec le lecteur. Objets temporaires dont les données ne persistent pas au travers des sessions avec le lecteur. Chaque opération d écriture de la JCVM est atomique. Une transaction est un bloc d opérations atomiques. Le firewall isole les applets à l intérieur de leur espace (contexte). Pour mettre en commun des données, il existe des mécanismes sécurisés de partage. sauveron@labri.u-bordeaux.fr Page 19

La technologie Java Card Les APIs Java Card Ensemble de paquetages optimisés pour la programmation des cartes à puce en accord avec le modèle ISO 7816. java.lang : un sous ensemble strict de son équivalent sur la plateforme Java javacard.framework : classes et interfaces pour le noyau fonctionnel des applets Java Card javacard.security : modèle pour les fonctions cryptographiques supportées sur la plateforme Java Card javacardx.crypto : un paquetage d extension sauveron@labri.u-bordeaux.fr Page 20

Développement logiciel Réalisation d un outil de visualisation et de modification d applications ou de paquetages Java Card. Une application ou un paquetage Java Card est représenté par un fichier CAP. = Éditeur de fichiers CAP. Réalisé en Java Interface utilisant la bibliothèque graphique Swing Objectifs : Créer des attaques sur la carte en modifiant le fichier CAP sauveron@labri.u-bordeaux.fr Page 21

Développement logiciel Fichier CAP Le fichier CAP est le format standard de fichier pour la compatibilité binaire de la plateforme Java Card. Représentation binaire exécutable des classes d un paquetage Java Card Fichier JAR qui contient un ensemble de composants Chaque composant décrit un aspect du contenu d un fichier CAP : les informations sur les classes les bytecodes exécutables les informations de linkage les informations de vérifications etc. Étiquette Taille Données Tab. 1 Format des composants sauveron@labri.u-bordeaux.fr Page 22

Développement logiciel Présentation de l interface Composant Constant Pool Avantages : Interactif Simple Opérations : Insertion Suppression Inversion Déplacement sauveron@labri.u-bordeaux.fr Page 23

Perspectives Le projet entre le LaBRI et SERMA Technologies Développement d une machine virtuelle Java Card Développement de logiciels afin de créer des attaques Modélisation des spécifications de la technologie Java Card La thèse CIFRE Modélisation formelle de la plateforme Java Card : firewall entre les applets mécanismes de partage etc. Modéliser des attaques Identifier leurs origines dans les spécifications Proposer des corrections sauveron@labri.u-bordeaux.fr Page 24

Conclusion En 30 ans la carte à puce s est imposée en Europe. Il reste un marché énorme (États-Unis, etc.). La technologie Java Card saura-t-elle le conquérir? Pour cela il lui faudra prouver qu elle est parfaitement sûre. sauveron@labri.u-bordeaux.fr Page 25