Une introduction au Java Ring

La chronique de ce mois est divisée en deux parties. La première partie, incarnée dans cet article, propose l'histoire du Java Ring et de la technologie utilisée pour le construire, ainsi qu'une brève discussion sur l'adéquation de l'iButton pour les applications de sécurité et d'autres applications. La deuxième partie montre comment utiliser l'API Java Card 2.0 avec Java iButton et fournit au lecteur un aperçu très précoce de la conception d'une application, de la télécharger, puis de la communication avec une application exécutée sur une Java Card.

C'est dans les détails

Le Java Ring est un jeton électronique Java extrêmement sécurisé avec une horloge en temps réel inaltérable et fonctionnant en continu et un emballage robuste, adapté à de nombreuses applications. Le joyau du Java Ring est le Java iButton - un micro-ordinateur de confiance à un million de transistors et à puce unique avec une puissante machine virtuelle Java (JVM) logée dans un boîtier en acier inoxydable robuste et sécurisé. Conçu pour être entièrement compatible avec la norme Java Card 2.0 (pour en savoir plus sur Java Card 2.0, voir Java Developer du mois derniercolonne, «Understanding Java Card 2.0»), le processeur dispose d'un exponentiateur modulaire haute vitesse de 1024 bits pour le cryptage RSA, d'une grande capacité de mémoire RAM et ROM et d'une horloge temps réel inaltérable. Le module emballé n'a qu'un seul contact électrique et un retour à la terre, conformément aux spécifications du bus Dallas Semiconductor 1-Wire. La SRAM non volatile à dos de lithium offre une vitesse de lecture / écriture élevée et une résistance au sabotage inégalée grâce à un effacement quasi instantané de toute la mémoire lors de la détection de la trempe, une fonction connue sous le nom de remise à zéro rapide. L'intégrité des données et la fonction d'horloge sont maintenues pendant plus de 10 ans. Le boîtier en acier inoxydable de 16 millimètres de diamètre accepte les plus grandes tailles de puces nécessaires pour jusqu'à 128 kilo-octets de RAM statique non volatile à grande vitesse. L'emballage petit et extrêmement robuste du module lui permet de se fixer à l'accessoire de votre choix pour s'adapter aux modes de vie individuels, comme un porte-clés, un portefeuille, une montre, un collier, un bracelet ou une bague.

Contexte historique

À l'été 1989, Dallas Semiconductor Corp. a produit les premiers dispositifs de mémoire encapsulés en acier inoxydable utilisant le protocole de communication Dallas Semiconductor 1-Wire. En 1990, ce protocole avait été affiné et utilisé dans une variété de dispositifs de mémoire autonomes. Initialement appelés "périphériques à mémoire tactile", ils ont ensuite été renommés "iButtons". Emballés comme des batteries, les iButtons n'ont qu'un seul contact électrique actif sur la surface supérieure, la coque en acier inoxydable servant de masse.

Les données peuvent être lues ou écrites dans la mémoire en série via un adaptateur de port série RS232C simple et peu coûteux, qui fournit également l'énergie nécessaire pour effectuer les E / S. La mémoire iButton peut être lue ou écrite avec un contact momentané sur le récepteur "Blue Dot" fourni par l'adaptateur. Lorsqu'elles ne sont pas connectées à l'adaptateur de port série, les données de la mémoire sont conservées dans la mémoire vive non volatile (NVRAM) par une alimentation au lithium à vie qui maintiendra le contenu de la mémoire pendant au moins 10 ans. Contrairement à la mémoire morte programmable électriquement effaçable (EEPROM), la mémoire NVRAM iButton peut être effacée et réécrite aussi souvent que nécessaire sans s'user. Il peut également être effacé ou réécrit aux vitesses élevées typiques de la mémoire à semi-conducteur à oxyde métallique complémentaire (CMOS),sans nécessiter la programmation fastidieuse de l'EEPROM.

Depuis leur introduction, les dispositifs de mémoire iButton ont été déployés en grandes quantités en tant que supports de données portables robustes, souvent dans des conditions environnementales difficiles. Parmi les utilisations à grande échelle figurent les transporteurs de billets de transit à Istanbul, en Turquie; comme supports d'enregistrement de maintenance sur les côtés des camions Ryder; et comme identifiants de boîte aux lettres à l'intérieur des compartiments de courrier des boîtes aux lettres extérieures du US Postal Service. Ils sont portés comme boucles d'oreilles par les vaches au Canada pour tenir les registres de vaccination, et ils sont utilisés par les travailleurs agricoles dans de nombreuses régions comme substituts robustes des fiches de présence.

La gamme de produits iButton et ses nombreuses applications sont décrites sur le site Web iButton de Dallas Semiconductor, qui est répertorié dans la section Ressources. Chaque produit iButton est fabriqué avec un numéro de série unique de 8 octets et porte la garantie qu'aucune pièce n'aura jamais le même numéro. Parmi les iButtons les plus simples, il y a des périphériques de mémoire qui peuvent contenir des fichiers et des sous-répertoires et peuvent être lus et écrits comme de petites disquettes. En plus de ceux-ci, il existe des iButtons avec des zones de fichiers protégées par mot de passe pour les applications de sécurité, des iButtons qui comptent le nombre de fois qu'ils ont été réécrits pour sécuriser les transactions financières, des iButtons avec des capteurs de température, des iButtons avec des horloges date / heure fonctionnant en continu, et même iButtons contenant de puissants microprocesseurs.

Le dispositif de sécurité postale

Depuis plus de 10 ans, Dallas Semiconductor conçoit, fabrique et vend une gamme de microprocesseurs hautement sécurisés utilisés dans les désembrouilleurs de télévision par satellite, les guichets automatiques, les terminaux de point de vente et d'autres applications similaires nécessitant une sécurité cryptographique et résistance aux attaques des pirates. La spécification du dispositif de sécurité postale du programme US Postal Service (USPS) Information Based Indicia, destinée à permettre l'impression d'affranchissements américains valides sur n'importe quel PC, offrait la première occasion de combiner deux domaines d'expertise lorsqu'un microprocesseur sécurisé était conçu dans un iButton.

Le produit résultant, appelé Crypto iButton , combine des performances de processeur élevées, des primitives cryptographiques à haute vitesse et une protection exceptionnelle contre les attaques physiques et cryptographiques. Par exemple, le moteur d'exponentiation modulaire à grand nombre entier peut effectuer des exponentiations modulaires de 1024 bits avec un exposant de 1024 bits en nettement moins d'une seconde. La capacité à effectuer de grandes exponentiations modulaires entières à haute vitesse est au cœur du cryptage RSA, de l'échange de clés Diffie-Hellman, de la norme de signature numérique (FIPS 186) et de nombreuses autres opérations cryptographiques modernes.

Un accord entre Dallas Semiconductor et RSA Data Security Inc. fournit une licence payante à toute personne utilisant Crypto iButton pour effectuer le cryptage RSA et les signatures numériques afin qu'aucune autre licence de la technologie de cryptage RSA ne soit requise. La haute sécurité est assurée par la possibilité d'effacer le contenu de la NVRAM extrêmement rapidement. Cette fonctionnalité, la mise à zéro rapide, est une exigence pour les appareils de haute sécurité susceptibles d'être soumis à des attaques de pirates. En raison de sa haute sécurité, le Crypto iButton devrait remporter la certification de sécurité FIPS 140-1 par le National Institute of Standards and Technology (NIST).

Un système d'exploitation spécial a été conçu et stocké dans la ROM du Crypto iButton pour prendre en charge la cryptographie et les transactions financières générales - telles que celles requises par le programme Postal Service. Bien qu'il ne s'agisse pas d'une machine virtuelle Java, le micrologiciel E-Commerce conçu pour cette application présentait plusieurs points de similitude avec Java, notamment une conception orientée objet et un interpréteur de bytecode pour interpréter et exécuter le langage de script E-Commerce Script de Dallas Semiconductor. Un compilateur a également été écrit pour compiler la représentation de langage de haut niveau du langage de script sous une forme de bytecode qui pourrait être interprétée par la machine virtuelle de commerce électronique. Bien que le micrologiciel E-Commerce ait été principalement destiné à l'application USPS,le micrologiciel prend en charge une variété de modèles généraux de commerce électronique qui conviennent à de nombreuses applications différentes. Le micrologiciel E-Commerce prend également en charge les protocoles cryptographiques pour un échange d'informations sécurisé tels que le Simple Key-Management for Internet Protocol (SKIP) développé par Sun Microsystems Inc. Le E-Commerce iButton et le SDK pour le programmer sont décrits en détail sur le Page d'accueil iButton (voir Ressources).

La connexion Java

Forte de son expérience dans la conception du système d'exploitation et de la machine virtuelle de commerce électronique pour la plate-forme matérielle Crypto iButton, l'équipe de conception de micrologiciels de Dallas Semiconductor pourrait facilement apprécier les avantages d'un nouveau système d'exploitation pour Crypto iButton basé sur Java. Avec un iButton Java, un grand nombre de programmeurs Java existants pourraient facilement apprendre à écrire des applets qui pourraient être compilées avec les outils standard disponibles auprès de Sun Microsystems, chargées dans l'iButton Java et exécutées à la demande pour prendre en charge une grande variété d'applications financières. La spécification Java Card 2.0 a permis de mettre en œuvre une version utile de la JVM et de l'environnement d'exécution avec les ressources limitées disponibles pour un petit processeur.

Le Crypto iButton fournit également une excellente plate-forme matérielle pour l'exécution de Java car il utilise la NVRAM pour le stockage de programmes et de données. Avec 6 kilo-octets de NVRAM existante et la possibilité d'étendre la capacité de NVRAM à 128 kilo-octets dans le facteur de forme iButton existant, le Crypto iButton peut exécuter Java avec une pile Java relativement grande située dans la NVRAM. Cette mémoire agit comme une RAM haute vitesse conventionnelle lorsque le processeur est en cours d'exécution, et l'énergie au lithium préserve l'état complet de la machine pendant que le Java Ring est déconnecté du lecteur. Il n'est donc pas nécessaire de traiter les objets persistants d'une manière particulière - les objets persistent ou non en fonction de leur portée afin que le programmeur ait un contrôle complet sur la persistance des objets. Comme dans Java standard,l'iButton Java contient un garbage collector qui collecte tous les objets hors de portée et recycle la mémoire pour une utilisation future. Les applets peuvent être chargées et déchargées de l'iButton Java aussi souvent que nécessaire. Toutes les applets actuellement chargées dans un iButton Java s'exécutent effectivement à vitesse nulle chaque fois que l'iButton n'est pas en contact avec un récepteur Blue Dot.

Lorsque la spécification Java Card 2.0 a été proposée, Dallas Semiconductor est devenu un titulaire de licence JavaSoft. L'accord appelait au développement d'une implémentation de Java Card 2.0 et également à la conception de «parties plus» qui tirent parti des capacités uniques offertes par la NVRAM Crypto iButtons, telles que la capacité de prendre en charge une véritable pile Java et le ramasse-miettes. Avec l'ajout de l'horloge au lithium fonctionnant en continu et du moteur d'exponentiation modulaire à grande vitesse et à grands nombres entiers, l'implémentation Java iButton de Java Card 2.0 avec plus de parties promet un nouveau jeu de fonctionnalités passionnant pour Java Card avancé applications.

Garder votre argent en sécurité

La plate-forme matérielle Crypto iButton offre un ensemble unique de fonctionnalités spéciales expressément conçues pour empêcher les clés privées et autres informations confidentielles de devenir accessibles aux pirates. La figure 1 montre un détail de la construction interne du Crypto iButton. La puce en silicium contenant le processeur, la ROM et la mémoire NVRAM est liée métallurgiquement au substrat de barrière à travers lequel tous les contacts électriques sont réalisés. Ce substrat barrière et les techniques de construction métallique à trois couches utilisées dans la fabrication du silicium refusent efficacement l'accès aux données stockées dans la NVRAM. Si une tentative est faite pour franchir ces barrières, les données NVRAM sont immédiatement effacées.Cette technique de construction et l'utilisation de la NVRAM pour le stockage de clés privées et d'autres données confidentielles offrent un degré de sécurité des données beaucoup plus élevé que celui offert par la mémoire EEPROM. Le fait que le chemin de communication entre le Crypto iButton et le monde extérieur soit limité à une seule ligne de données offre une sécurité supplémentaire contre les attaques matérielles en limitant la gamme de signaux accessibles au pirate.

De plus, le processeur lui-même est piloté par un oscillateur en anneau non stabilisé fonctionnant sur une plage de 10 à 20 mégahertz, de sorte que la fréquence d'horloge du processeur n'est pas constante et ne peut être déterminée par des moyens externes. Cela diffère de la conception des dispositifs alternatifs dans lesquels le signal d'horloge du processeur est injecté par le lecteur et est donc exactement déterminé par le processeur hôte. Le contrôle externe de l'horloge fournit un outil précieux aux pirates informatiques, car ils peuvent faire un cycle répétitif d'un tel processeur au même point de son exécution simplement en appliquant le même nombre de cycles d'horloge. La commande de l'horloge offre également un moyen d'induire une erreur de calcul et ainsi obtenir des informations qui peuvent finalement révéler des clés de chiffrement secrètes.Un oscillateur à cristal de 32 kilohertz est utilisé dans le Java iButton pour faire fonctionner l'horloge de l'heure à une fréquence constante et bien contrôlée, indépendante de l'horloge du processeur.

Dallas Semiconductor a produit plus de 20 millions de mémoires et d'ordinateurs physiquement sécurisés avec un emballage rigide optimisé pour la possession personnelle. Le Java iButton, par conséquent, est tout simplement le descendant le plus récent et le plus complexe d'une longue gamme de produits qui ont fait leurs preuves sur le marché. Avec son armure en acier inoxydable, il offre l'emballage le plus durable pour une classe de produits qui subiront probablement une utilisation intensive et des abus en tant qu'objets personnels. Le facteur de forme iButton permet la fixation à une grande variété d'accessoires personnels, notamment des bagues, des bracelets de montre, des porte-clés, des portefeuilles, des bracelets et des colliers, afin que l'utilisateur puisse sélectionner une variante qui convient à son style de vie.