Ir al contenido
Menú principal
Menú principal
mover a la barra lateral
ocultar
Navegación
Página principal
Cambios recientes
Página aleatoria
Ayuda sobre MediaWiki
Buscar
Buscar
español
Apariencia
Crear una cuenta
Acceder
Herramientas personales
No has accedido
Discusión
Contribuciones
Crear una cuenta
Acceder
Edición de «
Java Card
»
Página
Discusión
español
Leer
Editar
Editar código
Ver historial
Herramientas
Herramientas
mover a la barra lateral
ocultar
Acciones
Leer
Editar
Editar código
Ver historial
General
Lo que enlaza aquí
Cambios relacionados
Información de la página
Apariencia
mover a la barra lateral
ocultar
Advertencia:
no has iniciado sesión. Tu dirección IP se hará pública si haces cualquier edición. Si
inicias sesión
o
creas una cuenta
, tus ediciones se atribuirán a tu nombre de usuario, además de otros beneficios.
Comprobación antispam. ¡
No
rellenes esto!
'''Java Card''' es una tecnología que permite ejecutar de forma segura pequeñas aplicaciones [[Java (lenguaje de programación)|Java]] ([[applets]]) en [[tarjeta inteligente|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 [[Tarjeta SIM|SIM]] (utilizadas en teléfonos móviles [[GSM]]) y en [[tarjeta monedero|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 3.2, liberada por [[Oracle Corporation|Oracle]] en el 2023. Las principales características de esta tecnología son la portabilidad y la seguridad. == 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 Java|Máquina virtual de Java]] Card), y unas librerías cuya [[Interfaz de programación de aplicaciones|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 [[tarjeta inteligente|tarjetas inteligentes]]. La seguridad está determinada por diversos aspectos de esta tecnología: * '''Applet'''. El applet es una máquina de estados que solo 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 [[Data Encryption Standard|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. Aun 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 [[Depuración de programas|depurar]] un programa Java Card. == Enlaces externos == * [https://java.sun.com/products/javacard/specs.html Plataforma Java Card Specification (Sun Microsystems)] * [https://globalplatform.org/ GlobalPlatform Especificaciones (GlobalPlatform)] {{Control de autoridades}} [[Categoría:Aplicaciones informáticas]] [[Categoría:Tarjetas inteligentes]]
Resumen:
Al guardar los cambios aceptas los
términos de uso
y liberas de forma irrevocable tu contribución conforme a los términos de las licencias
licencia CC BY-SA 4.0
y
GFDL
. Aceptas igualmente que un hipervínculo o URL es atribución suficiente conforme a la licencia Creative Commons.
Cancelar
Ayuda de edición
(se abre en una ventana nueva)
Buscar
Buscar
Edición de «
Java Card
»
Añadir idiomas
Añadir tema