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.
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.
Historique La première génération en a été créée vers 1996 par NatWest au Royaume-Uni..
Le consortium MAOSCO est formé en pour conduire son adoption en standard de l'industrie contrôlée. Ce consortium est composé de 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.
En 2008, Gemalto acquiert Keycorp’s smart card business, le premier fournisseur de carte MULTOS, ainsi que MULTOS Ltd..
Description technologique Normes MULTOS a été développé dans le secteur bancaire comme plateforme pour les cartes à puces .. Un travail sur la sécurité a été effectué pendant une année complète en partenariat avec MAOSCO, pour atteindre le plus haut degré de certification de la norme ITSEC (ITSEC E6)..
Il a aussi atteint la norme EAL 4+ .. 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.. Il en résulte cependant que MULTOS est un système extrêmement stable.
Le processus de certification requiert des ressources financières importantes. De plus, il est difficile de trouver des dispositifs ayant une évaluation supérieure à EAL4. Ainsi selon John Elliott, MULTOS doit atteindre un EAL situé entre les et 7 afin de prétendre à une certification de sécurité maximum.
Architecture MULTOS s'exécute sur une architecture similaire aux cartes MASCs. Elle se compose d'un microprocesseur sur une puce en silicium permettant ensuite d'ajouter plusieurs fonctionnalités.. 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. Une machine virtuelle permet le chargement et l'exécution des applications. Finalement, un gestionnaire de cartes permet de contrôler la sécurité durant le chargement et la suppression d'applications(schéma) :
vignette|400px|center|Architecture MULTOS.
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.. Le gestionnaire de sécurité utilise l'algorithme de cryptographie RSA, ce qui requiert des cartes plus coûteuses en ressources. 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.
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.. 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.
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).. Une application de sécurité disponible, utilisant un pare-feu, permet d'isoler les autres applications.
Une infrastructure est alors mise en place, afin de charger et de supprimer les applications de façon flexible et sécurisée. Avec ce système, l'utilisateur peut gérer les applications présentes sur sa carte à puces. De plus, un certificat est requis pour le chargement des applications (ALC).. 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. La suppression des données est faite de manière permanente et libère de l'espace pour de nouvelles applications.
De plus, MULTOS met en place des moyens cryptographiques afin de garantir la sécurité des données, notamment dans les transactions bancaires. Le système de chiffrement est basé sur l'utilisation de RSA ainsi que du procédé ECC (Cryptographie sur les courbes elliptiques). 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é.
Développement La conception des applications avec MULTOS vignette|300px|right|La conception de l'application avec MULTOS. Mondex International« What is Mondex ». a développé un langage de programmation optimisé pour les cartes à puce, appelé MEL ()... Le code MEL est interprété par la carte en utilisant l'API MULTOS« standard Application Programming Interface. ».. 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..
Les applications peuvent être écrites en langage de haut niveau ., et ensuite traduites à l'aide d'un compilateur, ou machine virtuelle, en langage MEL (). Finalement, le code MEL est interprété par l'interpréteur de la carte à puce en utilisant l'API. La principale caractéristique de MULTOS réside donc dans l'utilisation possible de différents langages. : 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, 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.. 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
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. 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).
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). 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é. L'ALC est le certificat qui détermine sur la carte sur laquelle l'application peut être chargée. 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.
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. 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. L'espace réservé sur la carte devient donc libre pour les applications ultérieures à charger.
De cette façon, la carte MULTOS peut être utilisée comme une carte modulable. 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.
Différentes applications pour MULTOS Trois applications ont été développées dès les premières versions de MULTOS : 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'à , 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.. Le premier met en place un ordinateur disposant d'une connexion internet et qui utilise les applications de manière sécurisée. Pour cela, il doit passer par un module cryptographique qui lui permet de chiffrer et déchiffrer ses mails. L'utilisateur a aussi la possibilité de gérer les données de l'application E-friends à partir de cet ordinateur. 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.
Le deuxième utilise deux smartphones du réseau RTCP et sans connexion internet., 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. Les deux scénarios permettent d'effectuer les mêmes fonctions.
Sécurité KMA () vignette|Langages utilisés pour le développement de KMA. Le KMA, aussi appelé MULTOS CA (), est un système de sécurité qui a été développé afin de répondre à la norme ITSEC... Il a été développé à l'aide de plusieurs langages.. 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. 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. 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.
De plus, le KMA permet d'assurer la sécurité et l'intégrité de l'infrastructure et des applications. En effet, les systèmes basés sur le KMA sont soumis à des contraintes de sécurité les plus strictes. Ainsi, les applications développées avec le KMA doivent répondre à des exigences élevées à plusieurs niveaux. 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. Ensuite la durée de vie est prévue pour s'étendre sur des dizaines d'années. De plus, les différentes parties du système sont classées selon des niveaux de sécurité différents. 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. Les informations à afficher sont alors envoyer vers l'interface graphique de manière sécurisée. Finalement, le KMA permet la génération d'un nombre significatif de certificats.