Problématique de la couverture de code en environnement Java Card

La carte à puce 

Présentation

Une carte à puce est, comme son nom l’indique, une carte en plastique dans laquelle est enfouie un circuit intégré doté d’un microcontrôleur (ce qui le différencie des cartes mémoires ordinaires) [9]. L’intérêt particulier porté à ce périphérique vient entre autre de sa capacité à stocker des données et de manière sécurisée, de sa capacité à réaliser des calculs d’algorithme cryptographique le tout dans un micro système embarqué avec des ressources très limitées. Ces caractéristiques lui ont valu d’être largement utilisée dans de nombreux domaines technologiques où la nécessité était d’authentifier des entités distribuées et/ou mobiles de réseaux, où il constituait le maillon important du processus de sécurité.

C’est le cas du domaine des télécommunications où la carte à puce joue le rôle de clé d’authentification d’abonné (Subscriber Identity Module (SIM)), sur les réseaux de type Global System for Mobile Communications (GS:\1), Universal Ylobile Telecommunications System (lJMTS) et Long Term Evolution (LTE). Dans le domaine de la télévision payante, la carte joue le rôle de clé de décryptage des signaux (carte de décodeur), dans le domaine bancaire (guichet électronique) elle occupe une place importante dans le processus d’authentification des abonnés (carte bancaire VISA, YlASTERCARD…) .

Aspect Matériel 

Du concept de la mémoire portative dans les années 1947, elle a progressivement évolué à travers l’intégration de dispositifs de traitement de signaux électriques dans les années 1975, puis le recours à un microprocesseur dans les années 1977, pour de nos jours être à même de prendre en charge la pile de protocole IP et HTTP [12] . Le terme «carte à puce» de nos jours, fait référence à un circuit intégré sur laquelle est bâti un microcontrôleur composé des éléments suivants:

• un microprocesseur (Central Processing Unit (CPT.;) et T\etwork Processing Unit (NPU) ) ;
• une mémoire Random Access Memory (RAM) ;
• une mémoire Read-Only Memory ou mémoire morte (ROYI) ;
• une mémoire de stockage Electrically-Erasable Programmable Read-Only :\1emory (EEPROM) ;
• un dispositif d’entrées sorties.

Aspect Logiciel 

L’évolution de la composante matériel des cartes à puces permettait l’élaboration de programmes plus complexes. Ceci conduit entre autres, à la mise en place de système permettant une exploitation plus aisée et efficiente des ressources disponibles par les programmes. Ces systèmes d’exploitation pour cartes (Chip Operating System (COS)) aussi appelés masques, ont permis le passage de systèmes monolithiques  autour des années 1981, aux systèmes multiapplications prenant en charge la post-issuance  . A ce jour, il existe une variété de COS que l’on peut répartir en deux grandes catégories:

• les systèmes fermés;
• les systèmes ouverts.

Les systèmes fermés sont des systèmes très couplés au matériel. Le COS définit un ensemble de commandes devant être utilisées afin d’élaborer les programmes. Ceci a pour avantages de faciliter le développement d’applications, avec le corollaire de limiter le champ des applications possibles (c’est le cas des système GemXplore de Gemalto, CardOS de Siemens). Il faut noter que les cartes implémentant ces systèmes sont généralement mono-applicatif (carte SIM, carte bancaire). Les systèmes ouverts quand à eux sont des systèmes qui permettent après la fabrication de la cartel de charger, d’exécuter et de supprimer une multitude d’applications à usages variées écrit dans un langage de programmation évolué spécifique. Les cartes à puces intègrent depuis leurs conception au sein de la RO:\1 l un COS [81, COS qui en fonction des technologies supportées permet de classifier les cartes à puces, on distingue ainsi:

• les cartes à puces Java (Java Card) exécutant des programmes Java (section 1.1.2 page 4);
• les Basic Card (Windows Card) qui exécutent des programmes réalisés en visual basic;
• les MULTOS smart card, qui sont des cartes capables d’exécuter des programmes réalisés en C, Java, visual basic;
• …

Notre travail sera axé sur le cas spécifique des cartes intelligentes (Smart Card) Java Cardo Le choix de cette catégorie de carte car il rentre dans le cadre des recherches de notre structure commanditaire, en plus du fait que la Java Card est le type de carte le plus rependu au monde .

Technologie Java Card

La technologie Java Card est une combinaison d’un sous-ensemble du langage de programmation orienté objet fortement typé (Java) avec un environnement d’exécution optimisé pour les Smart Card et les périphériques embarqués disposant de ressources limitées [13]. Une carte à puce est qualifiée de Java Card si elle implémente un environnement d’exécution de programme java en son sein appelé Java Card Runtime Environment (JCRE). en programme java s’exécutant sur une Java Card est qualifié d’applet. Une applet Java Card est une classe Java standard étendant la classe javacard.framework.Applet (applet) (confère Annexe B pour un exemple d’applet). La JCRE est décrite par un ensemble de spécifications ouvertes et est principalement constituée:

• d’une machine virtuelle ou Java Card Virtual Machine (JCVM) chargée entre autres de l’interprétation, l’exécution des programmes, la sécurité, le partage des données ainsi que l’interfaçage avec les api natives;
• d’Application Programming Interface (API) standards qui sont des librairies cachant l’infrastructure de la carte;
• des technologies chargées du chargement des programmes, de leur cycle de vie…

Le rapport de stage ou le pfe est un document d’analyse, de synthèse et d’évaluation de votre apprentissage, c’est pour cela chatpfe.com propose le téléchargement des modèles complet de projet de fin d’étude, rapport de stage, mémoire, pfe, thèse, pour connaître la méthodologie à avoir et savoir comment construire les parties d’un projet de fin d’étude.

Table des matières

Résumé
Abstract
Dédicaces
Remerciements
Glossaire
Sommaire
Introduction générale
Chapitre 1: Problématique de la couverture de code en environnement Java Card
1.1 La carte à puce
1.2 La Couverture de Code en Java
1.3 Étude des structures internes des programmes Java et Java Card
Chapitre 2: Détermination et description d’une solution de résolution du problème
2.1 Analyse et choix d’une Solution
2.2 Description des outils nécessaires à la mise en œuvre de la stratégie
Chapitre 3: Mise en œuvre de la solution: phase pré-chargement
3.1 Dénombrement du nombre de sondes requis
3.2 Instrumentation de la structure d’enregistrement
3.3 Instrumentation des sondes et récupération des résultats
Chapitre 4: Mise en œuvre de la solution: phase post-exécution des tests
4.1 Construction des rendues
4.2 Quelques Résultats
4.3 Bilan et perspectives
Conclusion

Rapport PFE, mémoire et thèse PDFTélécharger le rapport complet

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *