Java platforma
|
Java Card je operační systém pro čipové karty, který primárně poskytuje běhové prostředí pro podmnožinu jazyka Java speciálně pro aplikace na čipových kartách . Karta Java Card umožňuje provádění aplikací v rámci čipových karet, které nabízejí omezenou paměť a kapacitu zpracování. Lze nasadit více aplikací před a dokonce i po doručení čipové karty koncovému uživateli. Aplikace napsané v programovacím jazyce Java lze bezpečně spouštět na všech typech karet dostupných na trhu.
V roce 1996 chtěli inženýři v divizi karet Schlumberger v Texasu (která se později spojila s Gemplus international a vytvořili Gemalto ), aby zjednodušili programování čipových karet při zachování bezpečnosti dat v souladu s ISO 7816.
Přijatým řešením byl programovací jazyk Java . Vzhledem k nízké kapacitě paměti dostupné na čipové kartě bylo možné použít pouze podmnožinu prostředí Java . Tak byla vytvořena Java Card 1.0 vListopadu 1996, první objektově orientovaný jazyk přizpůsobený čipovým kartám.
Února 1997, Schlumberger a Gemplus založen Java Card fórum, které doporučuje specifikace na JavaSoft (divize společnosti Sun, který vlastní Java Card) s cílem dosáhnout standardizace jazyka a podporuje Java Card API, aby se stal standardem pro vývoj aplikací platforma pro čipové karty .
Listopadu 1997, výrobci čipových karet jako De La Rue , Bull , Giesecke & Devrient (G&D) se připojují k Java Card Forum, které vydává novou verzi specifikací Java Card 2.0.
Sun poté zveřejní čtyři nové specifikace: Březen 1999 Vydání Java Card 2.1, v Červen 2002 Java Card 2.2, v Březen 2008 Java Card 3.0 a konečně nejnovější Java Card 3.0.1 v Květen 2009.
Společnost Oracle Corporation získáváledna 2010 společnost Sun Microsystems.
Čipová karta představuje jednu z nejmenších IT platforem. Největší výzvou pro technologii Java Card je zabudování základního softwaru Java do čipové karty při zachování paměti potřebné pro ukládání aplikací. Řešením, které přijala společnost Sun a které vychází z práce Schlumbergera, je implementace podmnožiny funkcí jazyka Java a použití redukovaného modelu JVM ( Java Virtual Machine ) s názvem JCVM ( Java Card Virtual Machine ). Kromě poskytování Java jazykovou podporu , technologie Java Card definuje běhové prostředí v reálném čase, která podporuje paměť, komunikace, zabezpečení a model aplikační runtime. Toto prostředí vyhovuje normě ISO7816.
Platforma Java Card je strukturována kolem:
Nejvýznamnějším rysem JCRE je, že poskytuje jasné oddělení mezi systémem a aplikacemi. Technologie Java Card definuje platformu, na které mohou aplikace napsané v programovacím jazyce Java běžet na čipových kartách a dalších zařízeních s pamětí. Aplikace Java Card jsou považovány za applety nebo servlety .
Od verze 3.0, publikované společností Sun v Březen 2008, v návaznosti na vývoj inteligentních karet je platforma Java Card k dispozici ve 2 verzích.
Klasická verze Tato verze je evolucí verze 2.2 a zaměřuje se na systémy s omezenými prostředky, které podporují aplikace založené na appletu. Provádí opravy a nabízí použití nových bezpečnostních algoritmů (příklad podpory 4096bitových klíčů RSA). Kromě toho byla provedena úprava podle nedávných standardů „bezkontaktních“ karet. Připojená verze Toto vydání přináší vylepšené běhové prostředí a nový virtuální stroj. Byla navržena nová architektura, která transformuje čipovou kartu na zabezpečený síťový prvek. Čipová karta pak může poskytovat síťové služby IP, jako je webový server HTTP, zabezpečený webový server HTTPS, identifikace, přístup k síťovým prostředkům. Toto vydání se zaměřuje na méně omezené produkty, které zahrnují nové síťově orientované funkce, jako jsou webové aplikace, nazývané servlety . Tato verze integruje funkce klasické verze.Java Card je tedy adaptací technologie Java pro čipové karty . Tyto applety jsou vyvíjeny v jazyce Java jazyk , pak jsou transformovány tak, aby byly splněny paměti omezení, pak jsou načteny do karty. Jakmile je nainstalován na platformu a vybrán, je bytový kód appletu spuštěn palubním virtuálním strojem JCVM.
Virtuální stroj Java CardJCVM provádí bajtový kód , řídí přidělování paměti, spravuje objekty a vynucuje zabezpečení za běhu. Kapacita čipových karet je příliš omezená na to, aby obsahovala všechny informace o souborech třídy Java, ověřovatel kódu objektu, JVCM je proto implementován ve dvou odlišných částech (hlavní rozdíl mezi JVM a JCVM):
Společně implementují načítání souborů třídy Java prostřednictvím kontroly a převaděče, aby konečně spustili applet pomocí tlumočníka.
auditor zkoumá jeden nebo více souborů tříd obsahujících bytecode , aby zajistil, že dodržuje syntaxi a pravidla jazyka, a staticky ověří, že toky řízení a dat nebudou za běhu vytvářet chyby. převodník načte soubory třídy zkontrolované ověřovatelem. Produkuje soubor CAP (obsahující kompaktní zastoupení jednoho nebo více zkompilovaných souborů Java) odpovídající převodu appletu.Kromě vytvoření souboru CAP převaděč vytvoří exportní soubor obsahující veřejné informace API pro jeden nebo více souborů třídy. Definuje úroveň přístupu a název třídy, stejně jako úroveň přístupu a podpisy metod a polí třídy. Soubor exportu také obsahuje informace používané k řešení referenčních spojů mezi různými applety na mapě.
Interpret Java Card poskytuje běhovou podporu pro jazyk Java, provádí následující úkoly:
Interpret Java Card nenačte soubor třídy ani soubor CAP, pouze provede kód. V technologii Java Card jsou mechanismy stahování a instalace obsaženy v jednotce zvané instalátor nacházející se na čipové kartě. Spolupracuje s instalačním programem, který není na kartě implementován. Instalační program odešle soubory instalačnímu na kartě prostřednictvím zařízení pro přijetí karty (CAD). Instalační program zapíše soubory do paměti čipových karet, které mají být načteny, spolu s dalšími třídami, které jsou již na kartě načteny. Vytváří a inicializuje datové struktury, které používá JCRE.
Běhové prostředí Java CardJCRE je odpovědný za správu karetních zdrojů, síťovou komunikaci, provádění a bezpečnost appletů. Je implementován na čipové kartě a používá se hlavně pro operační systém na kartě. JCRE se skládá z JCVM, API, odvětvově specifických rozšíření. a třídní systémy.
JCRE odlišuje applety od technických vlastností čipové karty. Poskytuje standardní systém a rozhraní API pro applety. Proto se na ně snadněji píše a jsou proto snadno přenosné na různých architekturách čipových karet.
Spodní vrstva JCRE obsahuje JCVM a nativní metody. Poskytují podporu pro JCVM a třídní systém pro další vrstvu. Systém tříd rámuje provoz JCRE a jeho role je podobná operačnímu systému. Je odpovědný:
správa transakcí mechanismus pro vykreslení souboru atomových operací (např. bankovní transakce). komunikace se serverem CAD Správa komunikace appletů se provádí pomocí datové jednotky aplikačního protokolu (APDU), jejíž struktura je definována normou ISO 7816. životní cyklus appletů JCRE inicializuje applet po jeho instalaci. Poté může vybrat applet, aby jej spustil, zrušit jeho výběr nebo odeslat signál APDU.Systém tříd vyvolává nativní metody. Obsahují sadu funkcí na nízké úrovni, které umožňují JCRE spravovat fyzické prostředky karty, jako je I / O, správa paměti nebo kryptografický koprocesor. Tyto metody jsou kompilovány do spustitelného kódu vyhrazeného pro procesor karty.
Struktura tříd API definuje aplikační programovací rozhraní, API . Hlavní výhodou je, že usnadňuje vytváření appletů . Vývojáři appletů mohou pomocí dostupných rozšíření API zaměřit své programovací úsilí na omezení infrastruktury systému čipových karet. Applety mají přístup ke službám JCRE prostřednictvím tříd API.
Strukturální rozšiřující struktura poskytuje doplňkové knihovny dalších služeb nebo systémů a modelů zabezpečení (např. Finanční odvětví).
Instalační program umožňuje bezpečné stahování softwaru a appletů na kartu poté, co byla karta vyrobena a doručena uživateli. Interní instalátor spolupracuje s externím instalátorem à la carte. Společně splní úkol načíst binární obsah souboru CAP nebo souboru třídy (tříd). Instalační program je však volitelnou součástí JCRE, ale bez ní by musel být veškerý software karty, včetně appletů , během výroby zapisován do paměti karty.
APIK vývoji aplikací a poskytování služeb těmto aplikacím se používá dostupné rozhraní API pro programování aplikací: Tyto třídy definují konvence, podle nichž má applet Java Card přístup k JCRE a k nativním funkcím, včetně funkce systému. a I / O operace. API používaná kartou jsou:
java.io je podmnožinou balíčku java.io ve standardním programovacím jazyce Java . Java.lang poskytuje základy pro návrh podmnožiny technologie Java Card programovacího jazyka Java . Poskytované třídy jsou převzaty z java.lang ve standardním programovacím jazyce Java a představují hlavní funkci požadovanou JVCM. Tuto hlavní funkci představuje třída Object, která je nadtřídou pro všechny jazykové třídy Java, a třída Exception , která je nadtřídou pro třídy výjimek a výjimek za běhu. Java.rmi definuje vzdálené rozhraní, které identifikuje rozhraní, jejichž metody lze vyvolat ze zařízení pro příjem karet (CAD) klientských aplikací. Javacard.framework poskytuje strukturu tříd a rozhraní pro návrh a komunikaci appletů, obsahuje základní funkce provozu s kartou Java Card. Javacard.framework.service poskytuje strukturu třídních služeb a rozhraní, která umožňují navrhnout applet Java Card jako seznam komponent služby. Javacard.security poskytuje třídy a rozhraní, která obsahují funkci dostupnou k implementaci bezpečnostní a kryptografické struktury na kartě Java Card. Třídy v balíčku Javacard.security poskytují definice algoritmů, které provádějí toto zabezpečení, a kryptografických funkcí.Verze 3 „Připojeno“ specifikací platformy Java Card se zásadně liší od ostatních existujících verzí.
Za prvé, zatímco dřívější verze mohly načíst pouze konkrétní binární soubory (soubory CAP), aplikace „Připojené“ karty Java Card 3 jsou nasazeny jako konvenčně kompilované soubory Java (soubory .class) seskupené do jednotlivých souborů. Soubory .jar, jako jsou běžné virtuální stroje Java. Poté již není nutné používat nástroje pro převod kódu.
Kromě toho Java Card 3 „Connected“ upřednostňuje režim internetové komunikace: internetové protokoly podle normy ISO 7816-4 IP pro rozhraní „s kontakty“. ISO 14443 se používá pro „bezkontaktní“ rozhraní. „Připojené“ aplikace Java Card 3 jsou ve skutečnosti servlety , to znamená skutečné webové služby , které jako takové respektují protokol HTTP .
Virtuální stroj Java Card 3 je založen na CLDC široce používaném ve světě mobilní telefonie. Tato platforma poskytuje přístup k nejbohatším funkcím jazyka JAVA. Platforma CLDC byla zmenšena, byly integrovány protokoly a bezpečnostní systémy čipových karet.
Vývoj zařízení podporujících technologii Java Card
Tradiční čipová karta | Nejnovější čipová karta kompatibilní s V3 |
---|---|
8 / 16bitový procesor | 32bitový procesor |
2 kB RAM | 24 kb RAM |
48 kb - 64 kb ROM | > 256 kB ROM |
8–32 kb EEPROM | > 128 kb EEPROM |
Sériové I / O rozhraní | Vysokorychlostní rozhraní |
9,6 kb / s - 30 kb / s | 1,5 Mb / s - 12 Mb / s |
Plny Duplex | Poloviční duplex |
Vylepšení přináší připojená verze 3 .
Specifika |
Generika |
Metadata |
Autoboxing |
Vylepšeno pro smyčku |
Assert ( test jednotky ) |
Výčet |
Použití metod s argumentem Proměnné |
Statický import |
Omezení servletového motoru Java card V3
Seznam hlavních funkcí obsažených ve specifikacích Java Serlet 2.4, které platforma Java Card V3 nepodporuje.
Správa zabezpečení vyvinutá pro čipové karty je implementována JCVM, která poskytuje následující pravidla zabezpečení:
Kromě ověřování objektového kódu implementovaného JCVM implementuje platforma Java Card 3 bezpečnostní mechanismy, které poskytují aplikační úroveň a zabezpečení komunikace.
Platforma Java Card podporuje mechanismus izolace kódu. Izolace kódu zajišťuje, že načtený kód jedné aplikace nebude v rozporu s kódem jiných aplikací.
Platforma Java Card podporuje izolaci kontextu a aplikací. Izolace kontextu zajišťuje, že k vytvořeným objektům, tedy v držení aplikací pracujících ve stejném kontextu, nelze přistupovat pomocí aplikací jiného kontextu, pokud tyto aplikace, které mají tyto objekty, výslovně neposkytují rozhraní pro přístup. Taková rozhraní se nazývají běžná rozhraní a objekty implementující tato rozhraní, nazývané společné objekty rozhraní , představují legální vstupní body do těchto aplikací.
Zabezpečení založené na rolích umožňuje zásadám zabezpečení aplikace omezit přístup k chráněným prostředkům aplikace. Omezení jsou založena na vlastnostech aplikace požadující přístup, jako je její totožnost a totožnost uživatele, u kterého je požadována ochrana přístupu.
Ověřování uživatelů je proces, kterým uživatel prokazuje svou identitu à la carte. Tato ověřená identita je pak platformou použita k provádění rozhodnutí o autorizaci, například těch, která vyžaduje zabezpečení založené na rolích, k získání přístupu k chráněným prostředkům.
Ověření klientské aplikace je proces, kterým klientská aplikace prokazuje svoji identitu se serverovou aplikací. Tato ověřená identita je pak použita serverovou aplikací k provádění rozhodnutí o autorizaci za účelem získání přístupu k chráněným prostředkům.
S platformou Java Card mohou aplikace komunikovat se vzdálenými aplikacemi prostřednictvím zabezpečené síťové komunikace (TLS, SSL).
Vývojář webových aplikací může při nasazení webové aplikace deklarovat předpoklady integrity a důvěrnosti. Vývojář nebo prodejce aplikace může také vyžadovat, aby byla aplikace hostována na vyhrazeném zabezpečeném portu s otevřenými připojeními HTTPS.
Platforma Java Card podporuje kryptografickou strukturu. Vývojář nebo prodejce aplikace si může zvolit algoritmus kryptografie, který nejlépe vyhovuje potřebám jeho aplikace.
Applet Java Card vyhovuje normě ISO 7816. Jinými slovy, reaguje na požadavky stejným způsobem, jako je přijímá ve formě příkazů bajtového kódu. To značně zjednodušuje vývoj aplikace, protože již není potřeba nízkoúrovňové kódování odesílání a přijímání příkazů. Tato část je nyní zapouzdřena v rámci Java.
Příkazy kódu bytu se nazývají APDU (Application Protocol Data Unit). Ty jsou kódovány odlišně v závislosti na odesílání a přijímání.
Příkaz APDU odeslaný ze čtečky na kartu Java je řada pěti bajtů volitelně následovaná různým počtem bajtů, formátovaná takto:
CLA CLA je název prvního bajtu, nazývaného bajt třídy, definovaný normou ISO 7816, označující číslo objednávky. INS INS je název druhého bajtu, známý jako instrukční bajt. P1 P1 je název třetího bytu, který se nazývá parametr byte 1. P2 P2 je název čtvrtého bajtu, který se nazývá parametr byte 2. Ln Ln je název pátého bajtu, udává počet bajtů dat, která budou následovat (ať už odeslaných nebo přijatých, 0x00 znamená, že nebudou následovat žádná další data). Data Jedná se o data Ln v počtu, která jsou přenášena čtečkou na kartu. Pokud palubní aplikace umožňuje pouze přenos v opačném směru, nepřenáší se sem žádná data. The The je poslední bajt za daty označující maximální velikost dat pro odpověď.Odpověď APDU odeslaná z karty Java do čtečky je řada bajtů vrácená v reakci na příkaz a formátovaná následovně:
Data Jedná se o data v počtu, která jsou zasílána kartou čtečce. Postavení stav vrácený kartou, kódovaný na dva pojmenované bajty: SW1 a SW2. SW1 první bajt, nazývaný SW1, označuje typ odpovědi. Hexadecimální hodnota mezi 0x90a 0x9Foznačuje, že příkaz byl úspěšně proveden. Hodnota mezi 0x60a 0x6Foznačuje, že program nemohl být proveden programem umístěným na kartě. SW2 druhý bajt s názvem SW2 případně hlásí další informace týkající se odpovědi.Když se příkaz na úrovni appletu spustí normálně, je vrácená hodnota stavu 90 00 .
Pokud instrukce INS umožňuje odesílání i příjem dat, Java Card standardizuje dvoufázový systém APDU. Nejprve se APDU odesílá s <Ln> počtem bajtů k odeslání, poté, když karta odpoví 0x91 <Le> (což znamená, že <Le> bajty jsou připraveny k vrácení kartou, v reakci na objednávku) a Get Odezva APDU je odeslána ke spuštění příjmu těchto odchozích <Le> bajtů.
Souhrnně lze říci, že datová pole jsou v obou případech volitelná, a to kontrolní APDU a APDU odpovědi. Proto existují čtyři možné případy komunikace mezi klientem a platformou Java Card Platform, verze 2.2.2 (nebo verze 3.0.1 Classic Edition):
Případ 1 | Příkaz APDU bez dat | Žádná datová odezva APDU |
Případ 2 | Příkaz APDU s daty | Žádná datová odezva APDU |
Případ 3 | Příkaz APDU bez dat | Odezva APDU s daty |
Případ 4 | Příkaz APDU s daty | Odezva APDU s daty |
Než budete moci přenést příkaz na applet nasazený na kartě Java Card, je nutné jej vybrat odesláním konkrétního příkazu APDU s uvedením identifikátoru aplikace AID . Identifikátor aplikace se skládá ze dvou částí. První na 5 bajtech, RID , je přiřazen normou ISO. To odpovídá identifikátoru specifickému pro společnost. Druhý, PIX, se skládá mezi 0 a 11 bajty. Za tento úkol zůstává odpovědná společnost, která vyvíjí aplikaci Java Card.
Při programování karty Java Card existuje pět důležitých kroků:
Silnou stránkou vývoje Java Card je, že první dva kroky lze provést s klasickým vývojovým prostředím JAVA.
Zde je příklad kódu, který jednoduše vrátí řetězec znaků „Hello World“ na žádost spojenou s instrukcí 0x10 . V tomto příkladu je AID tvořen hodnotami RID = DA8EF6DD26 a PIX = 86E899.
Příklad appletu „Hello World“ .
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); } } }V tomto příkladu jsou mezi klientem a kartou Java Card nutné dvě výměny APDU: První odeslání odpovídá výběru aplikace zadáním AID:
Příkaz: 0x00 0xA4 0x04 0x00 0X08 0XDA 0X8E 0XF6 0XDD 0X26 0X86 0XE8 0X9A
Odpověď: 90 00
Při druhém volání pošlete kód instrukce 0x10 odpovídající funkci 'char * hello ()' bez dalších údajů
Příkaz: 0x80 0x10 0x00 0x00 0x00
Odpověď: 48 65 6C 6C 6F 20 77 6F 72 6C 64 90 00
Obsah odpovědi APDU obsahuje data odeslaná appletem následovaná návratovým kódem, který má hodnotu 90 00. To znamená, že funkce byla provedena bez problémů. Data se skládají z řady bajtů obsahujících 11 znaků řetězce znaků „Hello World“.
Zde je příklad kódu, který při volání Servletu vrací řetězec znaků „Hello World from Java Card“.
Příklad servletu „Hello World“
Obsah souboru .java
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(); } } }Obsah souboru web.xml
<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 se vyvolá prostřednictvím webového prohlížeče zadáním následující adresy URL:
http://adresse_de_la_carte/helloworldwebPoužití servletů na kartě Java se provádí přesně stejným způsobem jako na platformě JAVA EE.
Výrobci čipových karet (jako Gemalto , Idemia ...) implementují následující funkce Java Card:
Použití programovacího jazyka Java přináší výhody pro vývojáře aplikací:
Mnoho typů čipových karet může využívat výhody technologie Java Card:
Ve většině celulárních telefonních sítí používá předplatitel k aktivaci telefonu čipovou kartu, která se obvykle nazývá SIM karta . Karta ověřuje uživatele a poskytuje šifrovací klíče pro digitální hlasový přenos. technologie Java Card implementovaná na SIM kartě může také poskytovat bankovní transakční služby na dálku. Stovky milionů SIM karet založených na technologii Java Card již pracují s inovativními službami na mobilních telefonech .
V bankovním sektoru umožňují čipové karty uživatelům bezpečný přístup k široké škále finančních služeb včetně bankomatů, plateb účtů a mýtného. Technologie Java Card umožňuje jediné čipové kartě hostit více finančních aplikací a poskytovat služby třetích stran nebo zabezpečený online obchod .
Mnoho aplikací je k dispozici v oblastech, kde je důležité zabezpečení a ověřování, jako je zabezpečený přístup k zařízením, lékařské záznamy.
Technologie Java Card zlepšuje přístup spotřebitelů k novým službám elektronického obchodu prostřednictvím připojených zařízení. Ve skutečnosti, mobilní telefony a pay TV zařízení jsou příklady trhů, kde většina produktů, které jsou již k dispozici, již patří čipové karty čtenáře .
Hráči na trhu .
Výrobce | Výrobní linka |
---|---|
STMicroelectronics, Atmel, Infineon, Samsung, NXP, Inside Contactless | Polovodič a mikroprocesor |
Gemalto, IDEMIA, Safran Morpho, Giesecke & Devrient | Karty |
Ingenico, Verifone, Hypercom, Nokia | Terminály a čtečky |
Orange, RATP, Véolia, BNP Paribas | Provozovatel služby a e-Government |
Trusted Logic, Prism, Multos | Integrovaný softwarový operační systém a aplikace |
Cesti, Fime | Posuzování a testování |
Experian, Atos Worldline, First Data, Sopra | Integrace a systémy |
Čísla
Podle vládní zprávy "Ekonomický a průmyslový rozměr čipových karet" od listopadu 2009, globální trh s čipovými kartami překročil 5 miliard kusů. (Zdroj Nodal).