MULTOS
MULTOS est un systĂšme d'exploitation destinĂ© aux cartes Ă puce, portant le mĂȘme nom. C'est un systĂšme orientĂ© vers la stabilitĂ© et la sĂ©curitĂ©, implĂ©mentant la norme ITSEC. Son architecture est similaire aux autres systĂšmes d'exploitation de carte Ă puce, mais ajoute un gestionnaire de sĂ©curitĂ© pour le chiffrement des donnĂ©es.
La premiÚre génération en a été créée vers 1996 par NatWest au Royaume-Uni[1].
Le consortium MAOSCO est formé en pour conduire son adoption en standard de l'industrie contrÎlée. Ce consortium est composé de 12 membres DNP, Europay, Infineon (Siemens), KeyCorp, Motorola, Hitachi, MasterCard et Mondex partageant un siÚge, le groupe Fujitsu/ICL/Amdahl, G&D, Novus Discover, Amex et Telstra[1].
En 2008, Gemalto acquiert Keycorpâs smart card business, le premier fournisseur de carte MULTOS, ainsi que MULTOS Ltd[2].
MULTOS | |
Site web | www.multos.com |
---|---|
Les applications pour MULTOS peuvent ĂȘtre dĂ©veloppĂ©es dans plusieurs langages. Elles sont ensuite traduites en bytecode MEL, pour ĂȘtre ensuite interprĂ©tĂ©es par l'API MULTOS. La gestion de ces applications est flexible car il est possible de supprimer ou charger des applications facilement.
La sécurité est assurée grùce à plusieurs outils : un gestionnaire de clés est présent dans de nombreux secteurs du systÚme, ainsi qu'un pare-feu et un systÚme de jetons.
Description technologique
Normes
MULTOS a été développé dans le secteur bancaire comme plateforme pour les cartes à puces [3]. Un travail sur la sécurité a été effectué pendant une année complÚte en partenariat avec MAOSCO[3], pour atteindre le plus haut degré de certification de la norme ITSEC (ITSEC E6)[3] - [4].
Il a aussi atteint la norme EAL 4+ [5]. Cependant, cela ne garantit pas que MULTOS soit la plateforme la plus sĂ©curisĂ©e, mais que l'architecture du systĂšme de sĂ©curitĂ© ait rĂ©pondu Ă un niveau Ă©levĂ© aux CritĂšres communs[6]. Il en rĂ©sulte cependant que MULTOS est un systĂšme extrĂȘmement stable[6].
Le processus de certification requiert des ressources financiÚres importantes[6]. De plus, il est difficile de trouver des dispositifs ayant une évaluation supérieure à EAL4[6]. Ainsi selon John Elliott, MULTOS doit atteindre un EAL situé entre les niveaux 5 et 7 afin de prétendre à une certification de sécurité maximum[6].
Architecture
MULTOS s'exécute sur une architecture similaire aux cartes MASCs[3]. Elle se compose d'un microprocesseur sur une puce en silicium permettant ensuite d'ajouter plusieurs fonctionnalités[7]. Elle est dotée d'un systÚme d'exploitation qui permet un accÚs sécurisé ainsi que le contrÎle de la puissance de la puce[7]. Une machine virtuelle permet le chargement et l'exécution des applications[7]. Finalement, un gestionnaire de cartes permet de contrÎler la sécurité durant le chargement et la suppression d'applications[7](schéma) :
La machine virtuelle a été adaptée pour les cartes à puces MULTOS, afin d'améliorer les performances en matiÚre de vitesse et de stockage[8]. Le gestionnaire de sécurité utilise l'algorithme de cryptographie RSA, ce qui requiert des cartes plus coûteuses en ressources[8]. Cependant RSA est incontournable, car il est utilisé pour le chiffrement par de nombreuses applications, notamment pour les paiements en bourse ou les identifiants numériques[8].
De plus, des moteurs d'améliorations disponibles pour les spécifications fonctionnelles permettent de transformer les commandes sous forme de séquences d'octets[9]. L'utilisation de trois moteurs d'améliorations est une spécificité de MULTOS et permet ainsi une grande assurance provenant de l'utilisation des données mathématiques et aussi une évolutivité du générateur de code[9].
Fonctionnalités
MULTOS permet de toucher une grande part de marché grùce à ses fonctionnalités et ses nombreuses applications disponibles (E-ticketing, GSM, enregistrements de type médical...)[10]. Une application de sécurité disponible, utilisant un pare-feu, permet d'isoler les autres applications[10].
Une infrastructure est alors mise en place, afin de charger et de supprimer les applications de façon flexible et sécurisée[10]. Avec ce systÚme, l'utilisateur peut gérer les applications présentes sur sa carte à puces[10]. De plus, un certificat est requis pour le chargement des applications (ALC)[11]. La suppression utilise un procédé identique, utilisant un certificat pour la suppression des applications (ADC) et ce certificat est téléchargeable sur Internet par les propriétaires de ces applications lors de l'ajout ou la suppression de ces derniÚres[11]. La suppression des données est faite de maniÚre permanente et libÚre de l'espace pour de nouvelles applications[10].
De plus, MULTOS met en place des moyens cryptographiques afin de garantir la sécurité des données, notamment dans les transactions bancaires[5]. Le systÚme de chiffrement est basé sur l'utilisation de RSA ainsi que du procédé ECC (Cryptographie sur les courbes elliptiques)[5]. Ce dernier gÚre des clés de tailles plus petites et est utilisé de maniÚre complémentaire au RSA afin d'améliorer la sécurité[5].
DĂ©veloppement
La conception des applications avec MULTOS
Mondex International[12] a développé un langage de programmation optimisé pour les cartes à puce, appelé MEL (MULTOS Executable Language)[13] - [14]. Le code MEL est interprété par la carte en utilisant l'API MULTOS[10] - [15]. Comme Java, le noyau du systÚme d'exploitation de MULTOS est un interpréteur qui permet de développer des applications indépendamment du matériel sous-jacent[16].
Les applications peuvent ĂȘtre Ă©crites en langage de haut niveau [17], et ensuite traduites Ă l'aide d'un compilateur, ou machine virtuelle, en langage MEL (Multos Executable Language)[16]. Finalement, le code MEL est interprĂ©tĂ© par l'interprĂ©teur de la carte Ă puce en utilisant l'API[16]. La principale caractĂ©ristique de MULTOS rĂ©side donc dans l'utilisation possible de diffĂ©rents langages[18] :
- Assembleur : MULTOS est la seule plateforme qui permet l'utilisation de l'assembleur facilement. Les applications sous MULTOS ont été initialement développées en MEL[11], qui contient des pseudo-instructions et des primitives ;
- Langage C : MULTOS est une plate-forme contenant un compilateur C. Les applications peuvent ĂȘtre Ă©crites dans ce langage et sont ensuite compilĂ©es Ă l'aide du compilateur C en langage interprĂ©tĂ© MEL[19] - [14]. L'outil SwiftC permet d'effectuer rapidement le portage d'une application pour MULTOS ;
- Java : Un compilateur Java traduit le code source en des classes Java qui sont ensuite traduites en code MEL ;
- Visual Basic : L'outil SwiftCard[20], permettant de passer de Visual Basic en Mel, est en cours de développement.
Chargement et suppression des applications sur MULTOS
Le chargement et la suppression des applications sur MULTOS est l'une des caractéristiques les plus intéressantes des cartes MULTOS[10]. Si la société émettrice l'autorise, le titulaire de la carte peut supprimer des applications qui résident sur sa carte et en télécharger de nouvelles sur des réseaux ouverts comme l'Internet ou le Réseau téléphonique commuté (RTC)[10].
Pour charger une application sur la carte MULTOS, il faut avoir un certificat de chargement de l'application valide (ALC) avec l'unitĂ© de chargement d'application (ALU)[11]. La sociĂ©tĂ© Ă©mettrice peut permettre au propriĂ©taire de la carte d'obtenir ces fichiers sur l'Internet et ils peuvent ĂȘtre chiffrĂ©s pour plus de sĂ©curitĂ©[11]. L'ALC est le certificat qui dĂ©termine sur la carte sur laquelle l'application peut ĂȘtre chargĂ©e[11]. S'il y a de la place sur la carte MULTOS, l'application est chargĂ©e en utilisant un logiciel appropriĂ© qui dĂ©compose l'ALU et l'ALC en des morceaux appropriĂ©s et les met sur la carte dans le bon ordre[11].
La suppression des applications sur la carte MULTOS est un processus similaire, avec un certificat de suppression de l'application valide (ADC) requis pour la carte et pour l'application[11]. La suppression d'une application qui réside sur la carte MULTOS permet de libérer définitivement l'espace qui était occupé par l'application et ses données[11]. L'espace réservé sur la carte devient donc libre pour les applications ultérieures à charger[11].
De cette façon, la carte MULTOS peut ĂȘtre utilisĂ©e comme une carte modulable[10]. En effet, les applications rĂ©sident sur la carte le temps que l'utilisateur veut et, avec la permission de l'Ă©metteur de la carte, les utilisateurs peuvent supprimer des applications et en charger d'autres selon leurs besoins[11].
Différentes applications pour MULTOS
Trois applications ont été développées dÚs les premiÚres versions de MULTOS[10] :
- Security : cette application permet, aprĂšs sâĂȘtre identifiĂ© avec un code PIN, d'effectuer ces diffĂ©rentes actions :
- délivrer le certificat digital contenu dans la carte (qui contient la clé publique du détenteur de la carte) ;
- autoriser l'utilisation de la clé privée pour signer, authentifier, et déchiffrer certains items (comme des clés secrÚtes de session) ;
- générer une empreinte du certificat de la carte et la signer avec la clé privée.
- E-friends and family : permet dâenregistrer jusqu'Ă 10 noms, numĂ©ros de tĂ©lĂ©phone ou d'adresses e-mail. C'est en fait un conteneur pouvant stocker n'importe quelle donnĂ©e textuelle, et la retourner lorsqu'elle est demandĂ©e.
- E-ticketing : cette application stocke des tickets Ă©lectroniques. Les tickets sont signĂ©s par l'Ă©metteur du billet afin d'empĂȘcher la fraude.
Ces applications peuvent ĂȘtre utilisĂ©es selon deux scĂ©narios diffĂ©rents[21]. Le premier met en place un ordinateur disposant d'une connexion internet et qui utilise les applications de maniĂšre sĂ©curisĂ©e[21]. Pour cela, il doit passer par un module cryptographique qui lui permet de chiffrer et dĂ©chiffrer ses mails[21]. L'utilisateur a aussi la possibilitĂ© de gĂ©rer les donnĂ©es de l'application E-friends Ă partir de cet ordinateur[21]. L'application E-ticketing passe aussi par ce module de chiffrement et permet ensuite d'indiquer le montant de la somme qui sera versĂ©e lors du paiement[21].
Le deuxiĂšme utilise deux smartphones du rĂ©seau RTCP et sans connexion internet[22], un serveur utilisĂ© avec deux modems reliĂ©s Ă deux lignes tĂ©lĂ©phoniques et qui permet de gĂ©rer l'identification et l'accĂšs aux applications[22]. Les deux scĂ©narios permettent d'effectuer les mĂȘmes fonctions[22].
Sécurité
KMA (Key Managment Authority)
Le KMA, aussi appelĂ© MULTOS CA (Certification Authority), est un systĂšme de sĂ©curitĂ© qui a Ă©tĂ© dĂ©veloppĂ© afin de rĂ©pondre Ă la norme ITSEC[23] - [24] - [3]. Il a Ă©tĂ© dĂ©veloppĂ© Ă l'aide de plusieurs langages[25]. D'abord, le SPARK est utilisĂ© pour la partie sĂ©curitĂ© du systĂšme, car il permet de limiter les problĂšmes de sĂ©curitĂ© liĂ©s au dĂ©veloppement[25]. Cependant l'utilisation de ce langage pour tout le systĂšme est inconcevable pour Chapman, car des fonctionnalitĂ©s de type interface graphique ne peuvent pas ĂȘtre mises en place[25]. Ainsi, Ada95 a Ă©tĂ© utilisĂ© pour la gestion de l'infrastructure, le C++ pour l'approche graphique, le C pour les algorithmes de cryptographie, et enfin le SQL pour les bases de donnĂ©es[25].
De plus, le KMA permet d'assurer la sécurité et l'intégrité de l'infrastructure et des applications[24]. En effet, les systÚmes basés sur le KMA sont soumis à des contraintes de sécurité les plus strictes[24]. Ainsi, les applications développées avec le KMA doivent répondre à des exigences élevées à plusieurs niveaux[24]. D'abord la disponibilité est trÚs importante dans MULTOS, car le systÚme étant lourd à démarrer, il doit fonctionner de maniÚre continue[24]. Ensuite la durée de vie est prévue pour s'étendre sur des dizaines d'années[24]. De plus, les différentes parties du systÚme sont classées selon des niveaux de sécurité différents[24]. Par exemple, les données provenant de l'interface graphique sont considérées comme non sécurisées, car les applications sont développées dans une couche interne du systÚme[24]. Les informations à afficher sont alors envoyer vers l'interface graphique de maniÚre sécurisée[24]. Finalement, le KMA permet la génération d'un nombre significatif de certificats[24].
Le KMA a été produit avec l'accord des clients, qui ont ainsi participé à la gestion du comportement du systÚme[23]. Les erreurs sont détectées trÚs tÎt[26], propriété qui permet de distinguer les systÚmes développés de façon formelle de ceux développés de façon plus ponctuelle[26]. Un systÚme de clés asymétriques, avec une clé propre à chaque carte, est utilisé pour sécuriser les applications[27]. L'enregistrement de la carte auprÚs du KMA permet d'utiliser ses fonctionnalités[27]. L'activation de la carte permet de la rendre unique et offre la possibilité de la désactiver en cas de problÚme[27].
Pare-feu
Les applications n'ont pas accĂšs directement au systĂšme d'exploitation, elles passent par une machine abstraite utilisant les APIs standards[28]. Ces derniĂšres permettent d'effectuer la communication mais aussi les requĂȘtes provenant des applications[28]. La couche d'application est ainsi la plus Ă©levĂ©e et la restriction est assurĂ©e par le pare-feu[28].
Il est utilisé pour protéger les applications au niveau de la machine virtuelle, permettant ainsi de filtrer les actions malveillantes, comme des instructions illégales ou des lectures de données non autorisées[27]. Il est basé sur un systÚme de délégation : l'application cliente est le déléguant alors que l'application serveur est le délégué et fonctionne de la maniÚre suivante[29] - [30] (schéma):
- l'application cliente crĂ©e une commande APDU contenant les identifiants des deux applications, ainsi que la requĂȘte, et est stockĂ©e dans la mĂ©moire ;
- l'application cliente lance la commande en demandant au systĂšme MULTOS d'appeler l'application serveur qui lit et traite la commande ;
- l'application serveur crée une nouvelle commande APDU ;
- le systĂšme d'exploitation revient Ă l'exĂ©cution de l'application cliente en rĂ©cupĂ©rant les rĂ©sultats de la requĂȘte dans la mĂ©moire publique.
En plus de ce systĂšme, les applications Ă©crites en Mel sont dĂ©coupĂ©es sous forme d'actions individuelles par la machine virtuelle[27]. En effet, durant ce processus, des traitements de sĂ©curitĂ© permettent de vĂ©rifier qu'il n'y a pas d'accĂšs non autorisĂ© Ă la mĂ©moire, d'instructions illĂ©gales ou de code modifiĂ©[27]. Cette vĂ©rification a lieu lors de lâexĂ©cution du code plutĂŽt qu'au chargement de l'application[27]. Ce procĂ©dĂ© permet d'obtenir un niveau de sĂ©curitĂ© trĂšs Ă©levĂ© car les instructions sont vĂ©rifiĂ©es Ă chaque fois avant d'ĂȘtre exĂ©cutĂ©es[27].
SystĂšme sans contact
MULTOS possÚde un systÚme « sans contact », qui exploite les fréquences radio[5]. Il est utilisé pour des processus comme les identifications ou les paiements[31]. Ce systÚme regroupe un mécanisme de jetons, afin de gérer la sécurité des applications comme les mails par exemple[32] - [31]. Cependant, il demande beaucoup de ressources[33]. Des niveaux de sécurité sont donc requis afin de minimiser les coûts[33].
Il en est existe quatre[33]. D'abord, le niveau minimum permet de rĂ©cupĂ©rer les informations stockĂ©es sur le jeton, qui sont lisibles par tous[33]. La mĂ©moire peut ĂȘtre bloquĂ©e en cas d'Ă©criture non autorisĂ©e[33]. Ensuite, le niveau faible permet aux jetons d'implĂ©menter un mĂ©canisme d'authentification[33]. La mĂ©moire est protĂ©gĂ©e par un mot de passe ou dans certains cas, l'authentification doit ĂȘtre validĂ©e afin que les donnĂ©es soient libĂ©rĂ©es[33]. Le niveau moyen dispose d'un algorithme de chiffrement, qui est mis en place pour l'authentification ainsi que pour les donnĂ©es[33]. Enfin le niveau Ă©levĂ© possĂšde un algorithme reposant sur un couple de clĂ© publique/clĂ© privĂ©e qui est utilisĂ© pour l'authentification, le chiffrement et la signature des donnĂ©es[33].
En plus de ces diffĂ©rentes sĂ©curitĂ©s, les jetons sont dotĂ©s de diffĂ©rentes technologies permettant aux utilisateurs d'accĂ©der Ă plusieurs systĂšmes avec un seul et unique jeton[33]. Le premier type de jeton, appelĂ© "multiple", permet Ă plusieurs technologies d'ĂȘtre utilisĂ©es pour un mĂȘme composant[33]. Ensuite les jetons "double interfaces" permettent d'offrir deux interfaces disponibles pour un mĂȘme jeton[33]. Enfin, les jetons hybrides possĂšdent deux circuits intĂ©grĂ©s avec leur propre interface[33].
Marché
MULTOS step/one est un systÚme d'exploitation multi-applications de base, basé sur MULTOS, mais destiné aux institutions financiÚres migrant vers EMV qui ne désirent pas incorporer des capacités de DDA (Dynamic Data Authentication)[34] dans leurs portefeuilles EMV[35]. C'est une alternative "standard ouvert" aux cartes EMV propriétaires.
Notes et références
Références
- Elliott 2001, p. 6.
- Europay 2001, p. 21.
- Elliott 2001, p. 8.
- Meadowcroft 2005, p. 12.
- Elliott 2002, p. 45.
- Elliott 2002, p. 46.
- Elliott 2001, p. 1-2.
- Elliott 2001, p. 8-9.
- Coglio 2002, p. 75.
- Elliott 1999, p. 122.
- Elliott 1999, p. 123.
- « What is Mondex ».
- Sauveron 2009, p. 8.
- Grimaud 1999, p. 479.
- « standard Application Programming Interface. ».
- Klaus 1998, p. 328.
- Sauveron 2009, p. 74.
- Selimis 2009, p. 148.
- Trask 1999, p. 328.
- « composant SwiftCard/MEL tool. ».
- Elliott 1999, p. 124.
- Elliott 1999, p. 127.
- Amey 2004, p. 6.
- Chapman 2000, p. 65.
- Chapman 2000, p. 66.
- Amey 2004, p. 7.
- Wilcox 2005, p. 5.
- Akram 2010, p. 213.
- Akram 2011, p. 211.
- Akram 2010, p. 214.
- Hancke 2009, p. 14.
- Yamamoto 2006, p. 2701.
- Hancke 2009, p. 15.
- « DDA sur les cartes EMV.».
- « EMV est le standard international de sécurité des cartes de paiement. ».
Bibliographie
Articles publiés
- (en) John Elliott, « The MAOS trap [smart card platforms] », Computing Control Engineering Journal, vol. 12, no 1,â , p. 4-10 (ISSN 0956-3385, DOI https://dx.doi.org/10.1049/cce:20010102, lire en ligne)
- (en) Chapman Roderick, « Industrial experience with SPARK », Ada Lett.,â , p. 64--68 (ISSN 1094-3641, DOI https://dx.doi.org/10.1145/369264.369270, lire en ligne)
- (en) Paul Meadowcroft, « Hong Kong raises the bar in smart card innovation », Card Technology Today, vol. 17, no 1,â , p. 12-13 (DOI 10.1016/j.physletb.2003.10.071)
- (en) George Selimis, Apostolos Fournaris, George Kostopoulos et Odysseas Koufopavlou, « Software and Hardware Issues in Smart Card Technology », Communications Surveys & Tutorials, IEEE, vol. 11, no 3,â , p. 143 - 152 (ISSN 1553-877X, DOI 10.1016/j.physletb.2003.10.071, lire en ligne)
- (en) Damien Sauveron, « Multiapplication smart card: Towards an open smart card? », Information Security Tech, vol. 14, no 2,â , p. 70 - 78 (ISSN 1363-4127, DOI 10.1016/j.istr.2009.06.007, lire en ligne)
- (en) Peter Amey, « Dear Sir, Yours faithfully: an Everyday Story of Formality », Practical Elements of Safety,â (ISBN 1-85233-800-8, lire en ligne)
- (en) Shuichiro Yamamoto, « Goal Oriented Requirements Engineering: Trends and Issues », IEICE Transactions on Information and Systems, vol. E89-D, no 11,â , p. 2701-2711 (ISSN 0916-8532, DOI 10.1093/ietisy/e89-d.11.2701, lire en ligne)
- (en) Gerhard P. Hancke, « Security of proximity identification systems », Computer Networks, no 752,â (ISSN 1476-2986, lire en ligne)
- (en) John Elliott, « The one-card trick. Multi-application smart card E-commerce prototypes », Computing & Control Engineering Journal, vol. 10, no 3,â , p. 121-128 (ISSN 0956-3385, DOI 10.1049/ccej:19990305)
- (en) Vedder Klaus et Weikmann Franz, « Smart Cards - Requirements, Properties, and Applications », Springer-Verlag,â , p. 307--331 (ISBN 3-540-65474-7, lire en ligne)
- (en) Kenneth R. Wilcox, « Multi-Application Smart Cards: Card Operating Systems and Application Security », 21st Annual Computer Science Conference - Rensselaer at Hartford, vol. Session A2: Network Security Applications,â , p. 1-8 (lire en ligne)
- (en) Raja. Akram, « Application-Binding Protocol in the User Centric Smart Card Ownership Model », Information Security and Privacy, vol. 6812/2011,â , p. 208-225 (DOI 10.1007/978-3-642-22497-3_14, lire en ligne)
- (en) Raja. Akram, « Firewall Mechanism in a User Centric Smart Card Ownership Model », Information Security and Privacy, vol. 6035/2010,â , p. 118-132 (DOI 10.1007/978-3-642-12510-2_9, lire en ligne)
- (en) Neil Trask et Mike Meyerstein, « Smart cards in electronic commerce », BT Technology Journal, vol. 17, no 3,â , p. 328 (DOI 10.1023/A:1009624303146, lire en ligne)
- (en) Jr. Keepper et H. Lester, « System and methods for biometric identification on smart devices using multos », United States Patent Application, no 20100135542,â , p. 1-7 (lire en ligne)
- Gilles Grimaud, Jean-Louis Lanet et Jean-Jacques Vandewalle, « FACADE: a typed intermediate language dedicated to smart cards », SIGSOFT Softw. Eng. Notes, vol. 24, no 6,â , p. 476--493 (ISSN 0163-5948, DOI 10.1145/318774.319265, lire en ligne)
- (en) Alessandro Coglio, « An Approach to the Generation of High-Assurance Java Card Applets », 2nd Conference on High Confidence Software and Systems,â , p. 69-77 (DOI 10.1145/318774.319265, lire en ligne)
- (en) Marc Dutrieux, « The European digital money picture: Europay's role and strategy in developing the market », European Business Review, vol. 99, no 4,â , p. 222-227 (ISSN 0955-534X, DOI 10.1108/09555349910281405, lire en ligne)
- (en) John Elliott, « MAOS tales [multi-application operating systems] », Computing & Control Engineering Journal, vol. 13,â , p. 43-46 (ISSN 0956-3385, DOI 10.1049/ccej:20020107, lire en ligne)
- (en) V. Gayoso MartĂnez, L. HernĂĄndez Encinas et C. SĂĄnchez Ăvila, « Java card implementation of the elliptic curve integrated encryption scheme using prime and binary finite fields », CISIS'11 Proceedings of the 4th international conference on Computational intelligence in security for information systems,â , p. 160-167 (ISBN 978-3-642-21322-9, lire en ligne)
- (en) Europay International, MAOS Platforms - Technical Status Report, (lire en ligne), p. 19-22