PERSONNALISATION D’UNE CARTE BANCAIRE TYPE INPT

Objectif du projet

L’objectif de ce projet est de personnaliser la carte à puce ACOS3 avec des données sécurisées. Pour ce faire, nous avons suivi un ensemble d’étapes afin de mettre en place ledit projet. Dans ce qui suit, nous décrivons la méthodologie suivie de la personnalisation de la carte bancaire de type INPT.

System And User Files

FF02

On sélectionne le fichier de personnalisation FF02 et on le remplie par les paramètres de l'Option register, Security Option Register et le nombre de fichiers que nous voulons créer à 3.

FF03

On sélectionne le fichier de sécurité FF03 afin d'initialiser le code PIN et vérifier le contenu du Security File

FF04

On réalise un Warm Reset, on vérifie le code ICuser et on sélectionne le fichier de gestion des fichiers FF04 à chaque fois qu'on souhaite créer un fichier et on le personnalise en spécifiant les attributs pour tous les fichiers.

AA10

Afin de stocker l’ensemble des données, il fallait créer un fichier d’application AA10 qui va contenir les données relatives à une carte bancaire à savoir le nom complet du propriétaire de la carte, le numéro de la carte bancaire et sa date de validité. Le fichier est sous forme de quatre enregistrements contenant respectivement les quatre données mentionnées auparavant, chacun de ces enregistrements a une taille de 32 octets. Ce fichier sera libre en lecture et protégé par ICuser en écriture.

AA11

Dans le but de vérifier l’intégrité des données et de garantir l'authenticité de l'expéditeur, on aura besoin d'une signature numérique. Pour ce faire, nous avons, dans un premier temps, appliqué une fonction de hachage sur l’ensemble des données concaténées stockées dans le fichier AA10 à l’aide de l’algorithme MD5. Cette étape va générer une empreinte digitale qui sera chiffrée par la suite suite avec l’algorithme RSA à l’aide des paires de clés privées de la banque que nous avons créé à l’aide de l’outil openSSL. Une fois la signature créée, on la stocke dans le fichier AA11 qui sera libre en lecture et protégé par ICuser en écriture. La taille de ce fichier prend la longueur de la signature créée.

AA12

On aura aussi besoin d'un fichier d'application AA12 afin de stocker la clé publique que nous avons généré à partir de la clé privée de la banque.. Ce fichier est un record de 128 octets et il est protégé par code PIN que nous avons stocké dans le fichier FF03 en lecture et protégé par code ICuser en écriture.

Structure

SmartCardAcos

Dans cette classe, nous avons défini l’ensemble des méthodes spécifiques à la carte telles que l’effacement de la carte, le changement du code PIN, la sélection d’un fichier pour la lecture et l'écriture, etc. Nous nous sommes basés sur le principe de l’encapsulation ou nous faisons la manipulation d’un objet de type Card.

Smart_main

Cette classe est responsable de la création des fichiers ainsi que l’écriture des données.

Linker

La classe Linker prend en charge de la communication entre les fichiers générés par openSSL, shell et JAVA.