Présentation
MULTOS est un système d'exploitation multi-applicatif pour les cartes à puce ('MULT-OS'). Il est développé par un consortium réunissant Gemplus, Hitachi, Mastercard International, Mondex International, Motorola et Siemens [58].

Utilisation
le système MULTOS fournit un support d'exécution pour des programmes écrit en C et compilés vers un langage intermédiaire qui sera interprété sur la carte (le langage MEL). C'est une démarche assez proche de celle de Sun avec JavaCard et les fabricants des deux environnements travaillent d'ailleurs de concert afin de garantir à terme la compatibilité des deux produits.

Architecture

MULTOS s'éxécute sur le micro-contrôleur de la carte à puce, à chaque fois qu'un application est envoyée, il vérifie sa validié, alloue, par l'utilisation de "firewalls" spéciaux, au programme une zone mémoire isolée, protégée des autres applications. L'application y est confinée. Cahque nouveau service ou application est tenu rigoureusement à l'écart des autres programmes déjà présent sur la carte par les firewalls si bien qu'une opération d'une application (ou les cas échéants le "mauvais" fonctionnement d'une application, ou le fonctionnement d'une application "hostile") ne peut interférer avec une autre opération d'une autre opération. Un émetteur de carte MULTOS peut donc être sûr qu'une application requirant un haut degré de sécurité (application bancaire par exemple) peut cohabiter avec d'autres applications pour lesquels la sécurité n'est pas un facteur déterminant (application de carnet d'adresses par exemple). Enfin les fournisseurs d'applications MULTOS n'ont pas à se soucier de la confiance qu'ils peuvent accorder à d'autres applications présentes sur la carte du fait de l'absence d'inter-connections.

Ajout/suppression d'applications
L'architecture de MULTOS permet le "téléchargement" (l'ajout) sécurisé dans la carte à partir d'un ordinateur, d'une borne publique (exemple : dans une banque ) ou via un réseau non sécurisé. L'application peut ensuite être effacée et d'autres ajoutée durant toute la durée de vie de la carte à puce et ceci sans que l'elle n'ai quittée son porteur.

Exemple d'ajout d'une application:

Etape 1 - Le porteurde la carte se connecte au site du fournisseur d'applications MULTOS et choisit le service qu'il souhaite intégrer à sa carte.

Etape 2 - En les technologies de sécurisation des transactions les plus récentes l'application peut être téléchargée dans la carte via un média non fiable (comme internet par exemple).

Etape 3 - Un mécanisme de contrôle permet de s'assurer que l'application qui a été téléchargée dans la carte est bien valide (elle n'a pas été corrompue pendant la transmission par exemple).

Etape 4 : MULTOS utilise des firewalls entre applications pour assurer le confinement de l'application

La recette de Multos
Dans son architecture Multos s'est inspiré de plusieurs langages de programmation. J'ai trouvé sur une présentation que l'architecture du langage Multos est composé de :

  • 30% de SPARK (Sous ensemble d'Ada)
    • Au niveau du "Noyau de sécurité"
    • Certifié pour un haut niveau de sécurité
  • 30% de l'infrastructure d'Ada 95
    • Au niveau de la gestion de la concurrence, des communications inter-processus et inter-tâches, des interfaces de base de données...
  • 30 % de C++
    • Au niveau de la la GUI (Utilise les MFC ou Microsoft Foundation Classes)
  • 5 % de C
    • Au niveau des drivers et des algorithmes de cryptographie
  • 5 % de SQL
    • Pour les procédures de stockage de données.

Remarques
On ne trouve pas énormément d'informations concernant Multos sur Internet. Soit cette technologie est moins ouverte que JavaCard, c'est à dire que moins de publications gratuites sont faites sur le "Comment ça marche" et "Comment on s'en sert" : Ceci permet à Multos de conserver le savoir technologique et de le transmettre à l'aide de formations qu'il facture à grands frais; soit JavaCard (dont on trouve plus d'informations, de tutorials, de FAQ et de forums) supplante Multos par l'utilisation qui en est faite.

Par exemple je n'ai pas pu accéder aux pages d'informations techniques pour le dévelloppement car il faut demander une license de développement sur le site de Multos. J'ai fait ma demande et n'ai pour l'instant reçu aucune réponse.

Si vous voulez tenter votre chance c'est .