Java-plattform
|
Java Card er et smartkort-operativsystem som primært gir et kjøretidsmiljø for en delmengde av Java- språket spesielt for smartkortapplikasjoner . Java-kort muliggjør kjøring av applikasjoner innen smartkort, som tilbyr begrenset minne og prosesseringskapasitet. Flere applikasjoner kan distribueres før og til og med etter at smartkortet er levert til sluttbrukeren. Programmer skrevet på Java-programmeringsspråket kan kjøres trygt på alle typer kort som er tilgjengelige på markedet.
I 1996 ønsket ingeniører ved Schlumbergers kortdivisjon i Texas (som senere fusjonerte med Gemplus International for å danne Gemalto ) å forenkle programmering av smartkort og samtidig opprettholde datasikkerhet i samsvar med ISO 7816..
Løsningen som ble tatt i bruk var Java- programmeringsspråket . På grunn av den lave minnekapasiteten som er tilgjengelig på et smartkort, kan bare et delsett av Java brukes. Dermed ble Java Card 1.0 in opprettetNovember 1996, det første objektorienterte språket tilpasset smartkort.
Februar 1997, Schlumberger og Gemplus grunnla Java Card Forum som anbefaler spesifikasjoner til JavaSoft (divisjonen av Sun som eier Java Card) for å oppnå språkstandardisering og fremmer Java Card APIer til å bli plattformapplikasjonsutviklingsstandarden for smartkort .
November 1997, smartkortprodusenter som De La Rue , Bull , Giesecke & Devrient (G&D) blir med på Java Card Forum som publiserer en ny versjon av Java Card 2.0-spesifikasjonene.
Deretter vil Sun deretter publisere fire nye spesifikasjoner: Mars 1999 Java Card 2.1-utgave, i Juni 2002 Java Card 2.2, in Mars 2008 Java Card 3.0 og til slutt det nyeste Java Card 3.0.1 in Mai 2009.
Selskapet Oracle Corporation kjøper oppjanuar 2010 selskapet Sun Microsystems.
Smartkortet representerer en av de minste databehandlingsplattformene. Den største designutfordringen for Java Card-teknologi er å legge inn grunnleggende Java- programvare på et smartkort mens du sparer minneplassen som trengs for å lagre applikasjoner. Løsningen som ble vedtatt av Sun, som er et resultat av Schlumberger-arbeidet, er å implementere en delmengde av funksjonene til Java- språket og å bruke en redusert modell av JVM ( Java Virtual Machine ) kalt JCVM ( Java Card Virtual Machine ). I tillegg til å tilby Java- språkstøtte , definerer Java Card-teknologi et sanntids kjøretidsmiljø som støtter minne, kommunikasjon, sikkerhet og applikasjonens kjøretidsmodell. Dette miljøet er i samsvar med ISO7816-standarden.
Java Card-plattformen er strukturert rundt:
Det viktigste ved JCRE er at den gir et klart skille mellom systemet og applikasjonene. Java Card-teknologi definerer en plattform der applikasjoner skrevet på Java- programmeringsspråket kan kjøres på smartkort og andre enheter med minne. Java-kortapplikasjoner blir sett på som applets eller servlets .
Fra versjon 3.0, publisert av Sun i Mars 2008, etter utviklingen innen smartkort, er Java Card-plattformen tilgjengelig i to versjoner.
Klassisk versjon Denne versjonen er en utvikling av versjon 2.2 og retter seg mot systemer med begrensede ressurser og som støtter appletbaserte applikasjoner. Det gjør korreksjoner og tilbyr bruk av nye sikkerhetsalgoritmer (Eksempel på støtte for 4096-biters RSA-nøkler). I tillegg er det gjort en justering med de nylige standardene for "kontaktløse" kort. Tilkoblet versjon Denne utgivelsen gir et forbedret kjøretidsmiljø og en ny virtuell maskin. En ny arkitektur er designet for å transformere smartkortet til et sikkert nettverkselement. Smartkortet kan da tilby IP-nettverkstjenester som HTTP-webserver, HTTPS-sikker webserver, identifikasjon, tilgang til nettverksressurser. Denne utgivelsen retter seg mot mindre ressursbegrensede produkter som inkluderer nye nettverksorienterte funksjoner som webapplikasjoner, kalt servlets . Denne versjonen integrerer funksjonene til den klassiske versjonen.Java-kort er derfor tilpasningen av Java- teknologi for smartkort . De appleter er utviklet i Java språket , de er så forvandlet for å tilfredsstille minne begrensninger, så lastes inn i kortet. Når den er installert på plattformen og valgt, kjøres bytekoden til appleten av den virtuelle JCVM-maskinen.
Java Card Virtual MachineJCVM utfører bytekode , styrer minnetildeling, administrerer objekter og håndhever sikkerhet under kjøretid. Kapasiteten til smartkort er for begrenset til å inneholde all informasjon fra Java-klassefilene, objektkodeverifisereren, og JVCM er derfor implementert i to forskjellige deler (hovedforskjellen mellom JVM og JCVM):
Sammen implementerer de lasting av Java-klassefiler gjennom kontrolløren og omformeren for til slutt å kjøre appleten ved hjelp av tolk.
revisor undersøker en eller flere klassefiler som inneholder bytekoden , for å sikre at den følger syntaksen og reglene til språket, og verifiserer statisk at kontroll og datastrømmer ikke gir feil ved kjøretid. omformeren laster inn klassefiler sjekket av bekrefteren. Den produserer en CAP-fil (som inneholder en kompakt representasjon av en eller flere kompilerte Java-filer) som tilsvarer konverteringen av en applet.I tillegg til å lage en CAP-fil, produserer omformeren en eksportfil som inneholder offentlig API-informasjon for en eller flere klassefiler. Den definerer tilgangsnivået og navnet på en klasse, samt tilgangsnivået og signaturene til metodene og feltene i klassen. En eksportfil inneholder også informasjon som brukes til å løse referansekryss mellom forskjellige applets på kartet.
Java Card-tolken gir støtte for kjøretid for Java-språket, den utfører følgende oppgaver:
Java Card-tolken laster ikke inn en klassefil eller CAP-fil, den utfører bare koden. I Java Card-teknologi er nedlastings- og installasjonsmekanismer inkludert i en enhet kalt installatøren som er bosatt på smartkortet. Den samarbeider med et installasjonsprogram som ikke er implementert på kortet. Installatøren sender filen (e) til installatøren på kortet gjennom en kortakseptanordning (CAD). Installatøren skriver filen (e) til smartkortminnet for å bli lest sammen med de andre klassene som allerede er lagt på kortet. Den oppretter og initialiserer datastrukturene som brukes av JCRE.
Java Card runtime-miljøJCRE er ansvarlig for styring av kortressurser, nettverkskommunikasjon, utførelse og sikkerhet for appletter. Den er implementert på smartkortet og brukes hovedsakelig til operativsystemet som er tilstede på kortet. JCRE består av JCVM, API-er, bransjespesifikke utvidelser. og klassesystemer.
JCRE skiller applets fra de tekniske egenskapene til smartkortet. Det gir standardsystemet og API-ene for applets. Disse er derfor lettere å skrive og er derfor lett bærbare på forskjellige smartkortarkitekturer.
Det nedre laget av JCRE inneholder JCVM og native metoder. De gir støtte for JCVM og klassesystemet for neste lag. Klassesystemet rammer driften av JCRE, og dens rolle ligner på et operativsystem. Han er ansvarlig:
transaksjonsstyring mekanisme som tillater å gjengi et sett med atomoperasjoner (f.eks. banktransaksjon). kommunikasjon med CAD-serveren Administrasjonen av applets-kommunikasjon skjer via Application Protocol Data Unit (APDU), hvis struktur er definert av ISO 7816-standarden. livssyklusen til appletter JCRE initialiserer appleten etter installasjonen. Han kan deretter velge appleten for å fortelle den å kjøre, fravelge den eller sende den et APDU-signal.Klassesystemet påkaller innfødte metoder. De inneholder et sett med funksjoner på lavt nivå som tillater JCRE å administrere de fysiske ressursene på kortet, for eksempel I / O, minneadministrasjon eller den kryptografiske prosessoren. Disse metodene er samlet i kjørbar kode dedikert til prosessoren på kortet.
API-klassestrukturen definerer applikasjonsprogrammeringsgrensesnitt, APIer . Den største fordelen er at det gjør det lettere å lage applets . Applet utviklere kan fokusere sine programmering innsats mot begrensningene i smartkort system infrastruktur med de tilgjengelige API utvidelser. Applets har tilgang til JCRE-tjenester gjennom API-klasser.
Den bransjespesifikke utvidelsesstrukturen gir komplementære biblioteker med tilleggstjenester eller system- og sikkerhetsmodeller (f.eks. Finansnæringer).
Installatøren muliggjør sikker nedlasting av programvare og applets til kortet etter at kortet er produsert og levert til brukeren. Den interne installatøren samarbeider med den eksterne installatøren à la carte. Sammen utfører de oppgaven med å laste inn det binære innholdet i CAP-filen eller klasse (r) -filen. Imidlertid er installasjonsprogrammet en valgfri JCRE-komponent, men uten det må all kortprogramvare, inkludert appletter , skrives til kortminnet under produksjonsprosessen.
APIDet tilgjengelige applikasjonsprogrammeringsgrensesnittet API brukes til å utvikle applikasjoner og tilby tjenester til disse applikasjonene: Disse klassene definerer konvensjonene som en Java Card-applet har tilgang til JCRE og native funksjoner, inkludert systemfunksjonen. / O operasjoner. APIene som brukes av kortet er:
java.io er en delmengde av java.io-pakken i standard Java- programmeringsspråk . Java.lang gir det grunnleggende for utformingen av Java-kort teknologi undergruppe av Java programmeringsspråk . Klassene som er gitt er hentet fra java.lang i standard Java-programmeringsspråk og representerer hovedfunksjonen som kreves av JVCM. Denne hovedfunksjonen er representert av Object-klassen, som er superklassen for alle Java- språkklasser og Exception- klassen , som er superklassen for unntak og unntaksklasser under kjøretid. Java.rmi definerer det eksterne grensesnittet som identifiserer grensesnitt hvis metoder kan påkalles fra kortmottakerenheten (CAD) til klientapplikasjoner. Javacard.framework gir en struktur av klasser og grensesnitt for design og kommunikasjon av applets, inneholder de viktigste funksjonene i operasjonen med Java Card. Javacard.framework.service gir en tjenestestruktur av klasser og grensesnitt som gjør det mulig å utforme et Java Card-applet som en liste over tjenestekomponenter. Javacard. Sikkerhet gir klassene og grensesnittene som inneholder funksjonen som er tilgjengelig for å implementere sikkerhet og kryptografisk struktur på Java-kortet. Klassene i pakken Javacard.security gir definisjoner av algoritmene som utfører denne sikkerheten og de kryptografiske funksjonene.Versjon 3 “Connected” av Java Card-plattformspesifikasjonene har store forskjeller med de andre eksisterende versjonene.
For det første, mens tidligere versjoner bare kunne laste spesifikke binære filer (CAP-filer), blir "Connected" Java Card 3-applikasjoner distribuert som konvensjonelt kompilerte java-filer (filer .class) gruppert i enkeltfiler .jar. Det er da ikke lenger nødvendig å bruke kodekonverteringsverktøy.
I tillegg favoriserer Java Card 3 “Connected” internettkommunikasjonsmodus: Internett-protokoller via ISO 7816-4 IP-standarden for grensesnitt “med kontakter”. ISO 14443 brukes til “kontaktløse” grensesnitt. De "Connected" Java Card 3-applikasjonene er faktisk Servlets , det vil si ekte Webtjenester , som som sådan respekterer HTTP- protokollen .
Java Card 3 virtuelle maskin er basert på CLDC mye brukt i verden av mobiltelefoni. Denne plattformen gir tilgang til de rikeste funksjonene i JAVA-språket. CLDC-plattformen har blitt redusert i størrelse, protokoller og sikkerhetssystemer for smartkort er integrert.
Utvikling av enheter som støtter Java Card-teknologi
Tradisjonelt smartkort | Nylig smartkort-kompatibel V3 |
---|---|
8/16-biters CPU | 32-biters CPU |
2 kb RAM | 24 kb RAM |
48 kb - 64 kb ROM | > 256 kb ROM |
8–32 kb EEPROM | > 128 kb EEPROM |
Serielt I / O-grensesnitt | Høyhastighets grensesnitt |
9,6 kb / s - 30 kb / s | 1,5 Mb / s - 12 Mb / s |
Full dupleks | Halv dupleks |
Forbedring medført av den tilkoblede versjonen 3 .
Spesifikasjoner |
Generiske |
Metadata |
Autoboksing |
Forbedret for løkke |
Assert ( enhetstest ) |
Oppregning |
Bruke metoder med et variabelargument |
Statisk import |
Begrensning av Java-kort V3 servletmotor
Liste over hovedfunksjonene i Java Serlet 2.4-spesifikasjonene som ikke støttes av Java Card V3-plattformen.
Sikkerhetsadministrasjonen utviklet for smartkort er implementert av JCVM som gir følgende sikkerhetsregler:
Utover objektkodeverifiseringen implementert av JCVM, implementerer Java Card 3-plattformen sikkerhetsmekanismer som gir applikasjonsnivå og sikkerhet for kommunikasjon.
Java Card-plattformen støtter en kodeisoleringsmekanisme. Kodeisolering sørger for at den lastede koden til et program ikke kolliderer med koden til andre applikasjoner.
Java Card-plattformen støtter kontekst- og applikasjonsisolering. Kontekstisolering sikrer at objektene som er opprettet, og som derfor er i besittelse av applikasjoner som opererer i samme kontekst, ikke får tilgang til applikasjoner fra en annen kontekst med mindre disse applikasjonene som har disse objektene eksplisitt gir grensesnitt for tilgang. Slike grensesnitt kalles vanlige grensesnitt og objekter som implementerer disse grensesnittene, kalt vanlige grensesnittobjekter , utgjør lovlige inngangspunkter for disse applikasjonene.
Rollebasert sikkerhet tillater applikasjonens sikkerhetspolicy å begrense tilgangen til programmets beskyttede ressurser. Restriksjonene er basert på egenskapene til applikasjonen som ber om tilgang, for eksempel dens identitet og identiteten til brukeren som tilgangsforsvaret blir bedt om.
Brukerautentisering er prosessen der en bruker beviser sin identitet à la carte. Denne autentiserte identiteten brukes deretter av plattformen til å utføre autorisasjonsbeslutninger, for eksempel de som kreves av rollebasert sikkerhet, for å få tilgang til beskyttede ressurser.
Autentisering av klientapplikasjon er prosessen der en klientapplikasjon beviser sin identitet til en serverapplikasjon. Denne autentiserte identiteten brukes deretter av serverapplikasjonen til å utføre autorisasjonsbeslutninger for å få tilgang til beskyttede ressurser.
Med Java Card-plattformen kan applikasjoner samhandle med eksterne applikasjoner gjennom sikker nettverkskommunikasjon (TLS, SSL).
En webapplikasjonsutvikler kan erklære integritet og konfidensialitet forutsetninger når du distribuerer en webapplikasjon. Applikasjonsutvikleren eller leverandøren kan også kreve at applikasjonen vert på en dedikert sikker port med åpne HTTPS-tilkoblinger.
Java Card-plattformen støtter en kryptografisk struktur. En applikasjonsutvikler eller leverandør kan velge kryptografialgoritmen som best oppfyller behovene til applikasjonen deres.
En Java Card-applet er i samsvar med ISO 7816-standarden, med andre ord, den svarer på forespørsler på samme måte som den mottar dem i form av byte-kodekommandoer. Dette forenkler utviklingen av en applikasjon betraktelig, siden det ikke lenger er behov for koding på lavt nivå for sending og mottak av kommandoer. Denne delen er faktisk innkapslet i et Java-rammeverk.
Byte-kodekommandoer kalles APDUer (Application Protocol Data Unit). Disse er kodet forskjellig avhengig av sending og mottak.
En APDU-kommando som sendes fra leseren til Java-kortet er en serie på fem byte, eventuelt etterfulgt av et varierende antall byte, formatert som følger:
CLA CLA er navnet på den første byten, kalt klasse-byte, definert av ISO 7816-standarden, som indikerer ordrenummeret. INS INS er navnet på den andre byten, kjent som instruksjonsbyte. P1 P1 er navnet på den tredje byten, kalt parameterbyte 1. P2 P2 er navnet på den fjerde byten, kalt parameterbyte 2. Ln Ln er navnet på den femte byten, det indikerer antall byte med data som vil følge (enten sendt eller mottatt, 0x00, noe som indikerer at ingen tilleggsdata vil følge). Data Dette er dataene, Ln i antall, som overføres av leseren til kortet. Hvis den innebygde applikasjonen bare sørger for overføring i motsatt retning, overføres ingen data her. De Det er den siste byten etter dataene som indikerer den maksimale datastørrelsen for svaret.Et APDU-svar som sendes fra Java-kortet til leseren, er en serie byte, returnert som svar på en kommando og formatert som følger:
Data Dette er dataene, Le in number, som sendes av kortet til leseren. Status status returnert av kortet, kodet på to navngitte byte: SW1 og SW2. SW1 den første byten, kalt SW1, angir typen respons. Den heksadesimale verdien mellom 0x90og 0x9Findikerer at kommandoen ble utført. En verdi mellom 0x60og 0x6Findikerer at kommandoen ikke kunne utføres av programmet som er plassert i kortet. SW2 den andre byten, kalt SW2, rapporterer muligens tilleggsinformasjon om svaret.Når kommandoen på appletnivå kjøres normalt, er den returnerte statusverdien 90 00 .
Hvis en INS-instruksjon sørger for både sending og mottak av data, standardiserer Java Card et tofaset APDU-system. Først sendes APDU med for <Ln> et antall byte å sende, deretter når kortet svarer 0x91 <Le> (indikerer at <Le> byte er klare til å bli returnert av kortet, som svar når du bestiller) a Get Svar APDU sendes for å utløse mottak av disse utgående <Le> -byte.
Oppsummert er datafeltet (e) valgfritt i begge tilfeller, kontroll APDU og respons APDU. Derfor er det fire mulige tilfeller av kommunikasjon mellom klienten og Java Card Platform, versjon 2.2.2 (eller versjon 3.0.1 klassisk utgave):
Sak 1 | Kommando APDU uten data | Ingen datasvar APDU |
Sak 2 | Kommando APDU med data | Ingen datasvar APDU |
Sak 3 | Kommando APDU uten data | Svar APDU med data (er) |
Sak 4 | Kommando APDU med data | Svar APDU med data (er) |
Før du kan overføre en kommando til en applet distribuert i et Java-kort, er det nødvendig å velge den ved å sende en spesifikk APDU-kommando som angir identifikatoren til AID- applikasjonen . Søknadsidentifikatoren består av to deler. Den første på 5 byte, RID , er tildelt av ISO-standarden. Dette tilsvarer identifikatoren som er spesifikk for selskapet. Den andre, PIX, er sammensatt mellom 0 og 11 byte. Oppdraget av dette forblir ansvaret for selskapet som utvikler Java Card-applikasjonen.
For å programmere et Java-kort er det fem viktige trinn:
Det sterke punktet med Java Card-utvikling er at de to første trinnene kan gjøres med et klassisk JAVA-utviklingsmiljø.
Her er et eksempel på kode som ganske enkelt returnerer tegnstrengen 'Hello World' på forespørselen som er koblet til 0x10- instruksjonen . I dette eksemplet består AID av verdiene RID = DA8EF6DD26 og PIX = 86E899.
Eksempel på Hello World-appleten .
import javacard.framework.*; public class HelloWorld extends Applet { // Initialisation de la variable avec ‘H’, ‘e’, ‘l’, ‘l’, ‘o’, ' ', 'W', 'o', 'r', 'l', 'd'. private final static byte[] message = { 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x20, 0x77, 0x6f, 0x72, 0x6c, 0x64 }; public static void install(byte[] bArray, short bOffset, byte bLength) { new HelloWorld(); } protected HelloWorld() { register(); } public void process(APDU apdu) { if (selectingApplet()) { // Retourne le status à OK return; } byte[] buffer = apdu.getBuffer() ; if ( buffer[ISO7816.OFFSET_CLA] != (byte)(0x80) ) ISOException.throwIt(ISO7816.SW_CLA_NOT_SUPPORTED); // Retourne le status word CLA NOT SUPPORTED switch(buffer[ISO7816.OFFSET_INS]) { case 0x10 : // Copie du contenu du message dans le buffer de la reponse Util.arrayCopy(message, (byte)0, buffer, ISO7816.OFFSET_CDATA, (byte)message.length); // Envoi de la réponse apdu.setOutgoingAndSend(ISO7816.OFFSET_CDATA, (byte)message.length); break; default: // Retourne le status à la valeur INS NOT SUPPORTED ISOException.throwIt(ISO7816.SW_INS_NOT_SUPPORTED); } } }For dette eksemplet er det nødvendig med to utvekslinger av APDUer mellom klienten og Java-kortet: Den første sendingen tilsvarer valget av applikasjonen ved å spesifisere AID:
Kommando: 0x00 0xA4 0x04 0x00 0X08 0XDA 0X8E 0XF6 0XDD 0X26 0X86 0XE8 0X9A
Svar: 90 00
Den andre samtalen, send instruksjonskoden 0x10 som tilsvarer funksjonen 'char * hallo ()' uten ytterligere data
Kommando: 0x80 0x10 0x00 0x00 0x00
Svar: 48 65 6C 6C 6F 20 77 6F 72 6C 64 90 00
Innholdet i svaret APDU inneholder dataene som sendes av appleten etterfulgt av returkoden som har verdien 90 00. Dette indikerer at funksjonen har blitt utført uten problemer. Dataene består av en serie bytes som inneholder de 11 tegnene i tegnstrengen 'Hello World'.
Her er et eksempel på kode som returnerer tegnstrengen 'Hello World from Java Card' når du ringer til Servlet.
Eksempel på en 'Hello World' Servlet
Innholdet i .java-filen
package org.carte.web; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class HelloWorldWeb extends HttpServlet { @Override public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); try { out.println("<html><head><title>HelloWorldWeb</title></head>"); out.println("<body><h1>HelloWorldWeb</h1>"); out.println("Hello World from Java Card</body></html>"); } finally { out.close(); } } }Innholdet i web.xml-filen
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/javacard/jcweb-app_3_0.xsd"> <description>The web application deployment descriptor conveys web application model elements and configuration information of an application between application developers, application assemblers, and deployers. </description> <display-name>Hello World Web</display-name> <servlet> <servlet-name>HelloWorldWeb</servlet-name> <servlet-class>org.carte.web.HelloWorldWeb</servlet-class> </servlet> <servlet-mapping> <servlet-name>HelloWorldWeb</servlet-name> <url-pattern>/helloworldweb</url-pattern> </servlet-mapping> </web-app>Servlet blir hentet via en nettleser ved å spesifisere følgende URL:
http://adresse_de_la_carte/helloworldwebBruken av Servlets på et Java-kort gjøres på nøyaktig samme måte som på en JAVA EE-plattform.
Smartkortprodusenter (som Gemalto , Idemia ...) implementerer følgende Java- kortfunksjoner :
Bruken av Java-programmeringsspråket gir fordeler for applikasjonsutviklere:
Mange typer smartkort kan dra nytte av Java Card-teknologi:
På de fleste mobiltelefonnettverk bruker en abonnent et smartkort som vanligvis kalles et SIM-kort for å aktivere telefonen. Kortet autentiserer brukeren og gir krypteringsnøkler for digital taletransport. det SIM-kortet implementert Java-kort teknologi kan også gi banktransaksjonstjenester eksternt. Hundrevis av millioner SIM-kort basert på Java Card-teknologi jobber allerede med innovative tjenester på mobiltelefoner .
I banksektoren gir smartkort brukere sikker tilgang til et bredt spekter av finansielle tjenester, inkludert minibanker, betaling av regninger og bompenger. Java Card-teknologi gjør det mulig for et enkelt smartkort å være vert for flere økonomiske applikasjoner og levere tredjeparts tjenester eller sikker online-handel .
Mange applikasjoner er tilgjengelige i områder der sikkerhet og autentisering er viktig, for eksempel sikker tilgang til fasiliteter, medisinske journaler.
Java Card-teknologi forbedrer forbrukernes tilgang til nye e- handelstjenester gjennom tilkoblede enheter. Faktisk er mobiltelefoner og betal-TV-utstyr eksempler på markeder der de fleste produktene som allerede er tilgjengelige, allerede inkluderer smartkortlesere .
Markedsaktører .
Maker | Produkt linje |
---|---|
STMicroelectronics, Atmel, Infineon, Samsung, NXP, Inside Contactless | Halvleder og mikroprosessor |
Gemalto, IDEMIA, Safran Morpho, Giesecke & Devrient | Kort |
Ingenico, Verifone, Hypercom, Nokia | Terminaler og lesere |
Oransje, RATP, Véolia, BNP Paribas | Tjenesteutøver og e-forvaltning |
Trusted Logic, Prism, Multos | Innebygd programvare OS og applikasjoner |
Cesti, Fime | Vurdering og testing |
Experian, Atos Worldline, First Data, Sopra | Integrasjon og systemer |
Tall
I følge regjeringsrapporten "Økonomisk og industriell dimensjon av smartkort" av november 2009, har det globale smartkortmarkedet overgått 5 milliarder enheter. (Kilde Nodal).