Les cartes COS COS = Chip Operating System Les cartes COS (Gemplus) représentent une gamme de cartes à structure de données de type SGF (système de gestion de fichiers). Ces cartes suivent la normalisation ISO 7816-4, qui décrit les types de fichiers, les structures de données, les clés d'accès. Les cartes abritent un `masque' en ROM, qui contient l'OS et l'application. Il est impossible de charger dynamiquement du code dans une carte. Pour dédier une carte à une application (code) particulière on peut prévoir à la fabrication d'installer un `filtre'; i.e. du code spécifique écrit en EEPROM, non modifiable par la suite. Les données contenues dans l'EEPROM des cartes sont modifiables et accessibles par un jeu d'instructions compris par les cartes. On dispose de plus de bibliothèques d'instructions complexes intégrables dans un programme situé sur le PC Hôte. Famille des cartes COS : - COS : année , 8 et 16 Kbits EEPROM, bits RAM - MCOS (Multiple Chip Operating System) : année , Kbits EEPROM, bits RAM - PCOS (Paiement Operating System) : cartes comprenant des instructions dédiées au paiemnt électronique; année 1991, Kbits EEPROM, bits RAM - MPCOS (Multiple Paiement Chip operating System) avec chiffrement des données en interne (algorithme DES ou triple DES) : année 1996, 8 32 et 64 Kbits EEPROM, bits RAM Structure des donnees : - fichiers COS les fichiers sont gérés sur la carte selon une hiérarchie MPCOS à 2 niveaux : Niveau global et niveau local. Au niveau global : un root : le Master File, qui contient jusqu'à 63 fils, soit des fichiers élémentaires appelés EF (fichiers de données), soit des répertoires appelés DF(dedicated files). Au niveau local : i.e. au niveau des répertoires : chaque répertoire contient jusqu'à 63 fichiers élémentaires. Comme il n'y a que 2 niveaux de hiérarchie, un dedicated file (repertoire) ne peut pas contenir d'autre répertoire. Deux types de format de fichiers sont autorisés : le format ISO normalisé et le format PCOS, format spécifique Gemplus non normalisé. Tous les fichiers d'un même répertoire doivent être au même format. certaines instructions spécifiques PCOS ne s'appliquent qu'aux fichiers de format PCOS. Fichiers spécifiques : l'accès aux fichiers est sécurisé par des codes secrets; les codes secrets sont stockés dans des EF spécifiques (appelés EFsc : Elementary Files secret code). Il existe un autre type de fichier spécifique : EFKey (les fichiers qui contienennt des clefs pour le chiffrement). Structure d'un fichier : un descripteur de 16 octets et un corps. Le corps d'un dedicated file (repertoire) contient les noms des fichiers élémentaires qu'il contient.A la création d'un fichier (commande CrtFile) l'OS crée le descripteur. Les descripteurs des DF et des EF sont sensiblement différents : Description des champs : - FP = 1 octet : File Pedigree, alloué par le système et utilisé pour retrouvéun fichier dans la hièrarchie. - Fn = 1 octet : File number, alloué par le système et utilisé par les commandes PCOS pour adresser un fichier - Identifier = 2 octets File Identifier, alloué à la création; utilisé par les commandes de fichiers ISO pour identifier un fichier (commandes qui appelent la commande SelFil). l'identifiant court (Short Identifier) est le contenu des 5 bits de poids faible. Il est utilisé par certaines commandes, comme RdBin et UpdBin. Certains fichiers ont des identifiants précis : ex le Master File possède l'identifiant 3F00. - FDB = 1 octet : File Descriptor Byte; les bits 5 4 3 sont utilisés pour décrire le type de fichier, les bits 7 6 2 1 sont à 0, le bit 0 est 1 pour un DF et à 0 pour un EF. 001110 : DF 001011 : EFKey 001001 : EFsc 000111 : Purse Elementary File (EF de porte-monnaie) 000101 : Transaction Manager EF (pour porte-monnaie) 000001 : EF ordinaire - OPT = 1 octet : File Option Byte; champ utilisé uniquement pour les DF; seuls les bits 2 1 0 sont utilisés; ils sont utilisés séparément : bit 0 : 0 = ISO DF 1 = PCOS DF bit 1 : 0 = SubDeb command enabled (porte-monnaie) 1 = SubDeb command disabled bit 2 : autorise ou non l'utilisation de la balance du porte-monnaie pour les certifications. - CRYPTO = 2 bits : spécifie l'option de cryptographie; seuls les bits 7 6 sont utilisés : 11 = mode triple DES 01 = RFU 10 = RFU 00 = mode DES - Body Size = 14 bits : contient la taille du corps du fichier en octets; - Group1 AC, Group2 AC, Group3 AC= 2 octets chacun : AC contient les conditions d'accès pour chacun des 3 groupes. - Status = 1 octet : pour DF; utilisé par l'OS pour savoir si un fichier de Transactions Manager et un fichier de codes secrets ont été créés sous ce répertoire. - CheckSum = 1 octet : nombre de bits à 0 dans les 15 autres octets du descripteur. Corps des fichiers : Il existe 5 types d'EF : - fichiers d'application - fichiers porte-monnaie - fichiers de clés - fichiers Transaction Manager - fichiers de codes secrets Chaque type de fichier a une structure de corps spécifique. Les fichiers d'application contiennent des données de l'application et leur structure est définie par l'application qui les utilise. Les autres fichiers ont une structure précise. Sécurité : Chaque EFsc (EF de codes secrets) peut contenir jusqu'à 8 codes secrets, numérotés de 0 à 7. Le MF et les DF peuvent contenir 1 EFsc. Les `access conditions' (conditions d'accès) définissent le niveau de protection désiré pour un fichier (lire, écrire ...) : ce sont des registres de 2 octets stockés dans les descripteurs des DF et des EF et qui contiennent : - jusqu'à 2 numéros de codes secrets qui doivent être présentés pour chaque type d'accès (create, read, write et update) - la clef de cryptographie utilisée pour les échanges chiffrés. On peut imposer que le code secret soit présenté avant de sélectionner un fichier. La carte enregistre alors dans un registre d'autorisation (authorization register) les numéros des codes secrets correctement présentés dynamiquement. La carte MPCOS a 2 registres d'autorisations : - le registre du MF - le registre des DF Ensuite, à chaque demande d'accès à un fichier la carte compare les droits validés dans le registre d'autorisation et ceux requis par le fichier. Protocole de communication : une MPCOS reçoit et envoie des données au protocole T=0. Un filtre peut être posé pour utiliser le protocole T=1. De plus, il existe des routines d'I/O rapides pour transmettre des données jusqu'à 115200 bauds (commande SwtPrt). Initialisation : Les cartes MPCOS contiennent une structure initiale à la fabrication (quelques fichiers système qui portent un numéro d'identification précis) : Description de la structure initiale : - MF : Master File, d'identifiant 3F00; conditions d'accès : création de fichiers standard et création de fichiers "sensitive" = secure messaging avec EF Key . - EF Key File : fichier de clés d'identifiant 3F01; Body Size : 24 octets; conditions d'accès : Read = interdit, Write et Update = secure messaging avec EF Key lui-même; valeur de la clé (la même pour toutes les cartes : TEST KEY. - DF System : nom = SYSTEM, identifiant = 0100; conditions d'accès : creation de fichiers standard et "sensitive" = secure messaging avec EK Key du MF. - EF Card File : identifiant = 0101; Body Size = 12 octets; conditions d'accès : read = public, write et update = interdits. Ce fichier contient le numéro du fabricant et le numéro de série de la carte sur 64 bits (numéro unique).. - EF Issuer File : identifiant = 0102; Body Size = 12 octets; conditions d'accès : read = public, Write et update = secure messaging avec EF Key du MF. Ce fichier contient les données de l' "Issuer" (la société qui a demandé la fabrication des cartes, par exemple une banque) REMARQUES : les répertoires MF et DF System ne doivent pas être utilisés pour les applications. Les numéros d'identifiant 01xx sont réservés au DF System et ne peuvent pas être donnés dans d'autres répertoires.