Java Card

Java Card

Java Card es una tecnología que permite ejecutar de forma segura pequeñas aplicaciones Java (applets) en tarjetas inteligentes y similares dispositivos empotrados.

Java Card da al usuario la capacidad de programar aplicaciones que se ejecutan en la tarjeta de modo que ésta tenga una funcionalidad práctica en un dominio de aplicación específico (pe. identificación, pago, etc.). Esta tecnología se usa ampliamente en las tarjetas SIM (utilizadas en teléfonos móviles GSM) y en tarjetas monedero electrónico.

La primera tarjeta Java fue presentada en 1997 por varias empresas entre las que estaban Axalto (división de tarjetas de Schlumberger) y Gemplus. Los productos Java Card están basados en la Plataforma Java Card cuyas especificaciones han sido desarrolladas por Sun Microsystems. La última versión de la plataforma JavaCard es la especificación 2.1.1, liberada por Sun en el 2000.

Las principales características de esta tecnología son la portabilidad y la seguridad.

Contenido

Portabilidad

Java Card tiene por objeto la definición de un estándar de tarjeta inteligente que permite a la misma applet funcionar en diferentes tarjetas inteligentes, de forma muy parecida a cómo un applet de Java se ejecuta en diferentes ordenadores. Al igual que en Java, esto se consigue utilizando la combinación de una máquina virtual (la Máquina virtual de Java Card), y unas librerías cuya API está especificada. La portabilidad, en todo caso, sigue siendo obviada en muchos casos por cuestiones de tamaño de la memoria, el rendimiento y tiempo de ejecución (por ejemplo para los protocolos de comunicación o algoritmos criptográficos).

Seguridad

La tecnología Java Card fue desarrollada originalmente con el propósito de asegurar la información sensible almacenada en las tarjetas inteligentes. La seguridad está determinada por diversos aspectos de esta tecnología:

  • Applet. El applet es una máquina de estados que sólo procesa los comandos recibidos a través del dispositivo lector enviando y respondiendo con códigos de estado y datos.
  • Separación de applets. Las distintas aplicaciones están, además, separadas unas de otras por un cortafuegos que limita el acceso y control de los elementos de datos de un subprograma a otro.
  • Encapsulación de datos. Los datos se almacenan en la aplicación y las aplicaciones Java Card se ejecutan en un entorno aislado (la tarjeta de Java VM), separada del sistema operativo y del equipo en que se lee la tarjeta.
  • Criptografía. En esta plataforma están implementados los algoritmos criptográficos más comúnmente utilizados como DES, 3DES, AES, RSA (incluyendo el uso de criptografía de curva elíptica). Otros servicios como la firma electrónica o la generación de claves de intercambio también están soportados.

Java Card frente a Java

Lenguaje

A nivel de lenguaje, Java Card es un subconjunto de Java: todas las construcciones del lenguaje Java Card existen en Java y se comportan de la misma manera. Esto va hasta el punto de que, como parte de un ciclo estándar de desarrollo, un applet Java Card se compila en un archivo de clase Java (.class) por un compilador Java normal, sin ningún tipo de opción especial (aunque el fichero compilado será procesado posteriormente por herramientas específicas para la plataforma Java Card).

No obstante, muchas características del lenguaje Java no son compatibles con Java Card (en particular algunos tipos básicos (char, double', float y long); los enums; los arrays de más de una dimensión; los hilos (threads);... y algunas características son opcionales y están ausentes en la mayoría de las tarjetas inteligentes (pe. el tipo int, en particular, que es el valor por defecto de un tipo de expresión de Java, la recolección de basura).

Bytecode

El bytecode de Java Card gestionado por la máquina virtual de Java Card es un subconjunto funcional de Java (Java 2 Standard Edition) aunque utiliza una codificación diferente optimizada para ocupar menos espacio.

Librerías de ejecución fe

Las librerías estándar de Java Card difieren en mucho de las de Java, y el subconjunto común es mínimo. Por ejemplo, la clase del Java Security Manager no es compatible con Java Card, donde las políticas de seguridad son ejecutadas por la máquina virtual de la tarjeta.

Desarrollo

Las técnicas de codificación utilizadas en la programación de Java Cards difieren significativamente de las que se utilizan en un programa Java. Aún así, al utilizar Java Card un subconjunto del lenguaje Java se acelera la curva de aprendizaje, y permite utilizar un entorno Java para desarrollar y depurar un programa Java Card.



Enlaces externos


Wikimedia foundation. 2010.

Игры ⚽ Поможем написать реферат

Mira otros diccionarios:

  • Java Card — (JC) refers to a technology that allows small Java based applications (applets) to be run securely on smart cards and similar small memory footprint devices. Java Card is the tiniest of Java targeted for embedded devices. Java Card gives the user …   Wikipedia

  • Java Card — est un environnement d exécution Java destiné aux applications pour Carte à puce. Cette technologie fournit un environnement sécurisé pour les applications qui fonctionnent sur ce support de capacité mémoire et de traitement limitées. De… …   Wikipédia en Français

  • Java Card — ist eine Variante der Programmiersprache Java, die es erlaubt, Java Card Applets, einem reduzierten Java Standard folgende Java Applets, auf Chipkarten auszuführen. Java Card Applets werden nur ausgeführt, wenn eine Chipkarte an eine externe… …   Deutsch Wikipedia

  • Java Card — Micro Edition (ME) Standard Edition (SE) Ente …   Википедия

  • Java Card OpenPlatform — Infobox OS name = Java Card OpenPlatform caption = developer = IBM source model = kernel type = supported platforms = Java Card ui = family = Embedded operating systems released = latest release version = latest release date = latest test version …   Wikipedia

  • Java-Plattform — Die Java Plattform (englisch Java Platform) definiert die Ablaufumgebung (Java Virtual Machine) und Programmierschnittstellen (Java Application Programming Interface) innerhalb der Java Technologie. Der Kern der Java Plattform ist die Java… …   Deutsch Wikipedia

  • Java (Plattform) — Die Java Plattform (englisch Java Platform) definiert die Ablaufumgebung (Java Virtual Machine) und Programmierschnittstellen (Java Application Programming Interface) innerhalb der Java Technologie. Der Kern der Java Plattform ist die Java… …   Deutsch Wikipedia

  • Java (Technik) — Java Logo Die Java Technik (englisch Java Technology) ist eine ursprünglich von Sun entwickelte Sammlung von Spezifikationen, die einerseits die Programmiersprache Java und andererseits verschiedene Laufzeitumgebungen für Computerprogramme… …   Deutsch Wikipedia

  • Java Platform, Standard Edition 6 — Die Java Plattform (englisch Java Platform) definiert die Ablaufumgebung (Java Virtual Machine) und Programmierschnittstellen (Java Application Programming Interface) innerhalb der Java Technologie. Der Kern der Java Plattform ist die Java… …   Deutsch Wikipedia

  • Java Plattform — Die Java Plattform (englisch Java Platform) definiert die Ablaufumgebung (Java Virtual Machine) und Programmierschnittstellen (Java Application Programming Interface) innerhalb der Java Technologie. Der Kern der Java Plattform ist die Java… …   Deutsch Wikipedia

Compartir el artículo y extractos

Link directo
Do a right-click on the link above
and select “Copy Link”