Java Card Platform
Java Card Platform
Agenda
Sun Proprietary/Confidential:
Smartcard basics
Small temper resistant device
> > > >
8-32 bit CPU 1-32KB RAM ROM and EEPROM up to 128KB FLASH memory can also be used
High secure memory and CPU Clock and power from the terminal One synchronous I/O line Master-slave protocol based, card is the slave
Sun Proprietary/Confidential:
Smartcard Standards
The Baseline for all standards and specifications are
> ISO 7816 series > defines electrical and physical characteristics, > Handshake between card and terminal > transport protocols, > applications protocol, > File structures, Data structures (TLVs) > Everything in ISO is optional
For Telecommunications (GSM, 3GPP, 3GPP2, OMA, TETRA) ETSI is standardizing a very strict platform the SIM and UICC For the financial market EMV is the main specification ICAO defines data structures for e-passports
Sun Proprietary/Confidential:
of incoming requests
Sun Proprietary/Confidential:
Sun Proprietary/Confidential:
APDU exchange
Client Application Card Application
Processes the request Processes the request Processes the request
BO 40 xx xx 05 61 62 63 00 90 00 BO 20 xx xx 01 01 00 90 00 BO 30 xx xx 00 01 09 90 00
Sun Proprietary/Confidential:
Sun Proprietary/Confidential:
Telecom (SIM card) Banking (Payment card) ID (citizen/corporate card) PayTV (subscriber card) Transport, Healthcare...
Passports
USB Tokens
Contactless
Optional Packages
Optional Packages
Personal Profile
JVM
Sun Proprietary/Confidential:
machine definition suitable for smart card applications > Core and extension Java Card API > A secure multi application card runtime environment > Enables post-issuance secure card application download
Sun Proprietary/Confidential:
Sun Proprietary/Confidential:
Applet n
JCRE JCRE
Java Card Runtime Environment Java Card Virtual Machine Vendor-specific Operating System (Mem, I/O, Crypto)
Sun Proprietary/Confidential:
Split VM Architecture
Off-card
Class loading, linking and name resolution Bytecode verification, optimization and conversion
On-card
Bytecode execution and security enforcement
Sun Proprietary/Confidential:
Small primitive data types: boolean, byte, short One-dimensional arrays Packages, classes, interfaces, exceptions Inheritance, virtual methods, overloading, dynamic object creation, access scope, binding rules Optional: 32-bit integer int data type Optional GC
Sun Proprietary/Confidential:
Java Card VM and Java Card RE run for the whole card lifetime!
Sun Proprietary/Confidential:
Off-card On-card
Command APDU
process( apdu )
Response APDU
Sun Proprietary/Confidential:
JC application modell
A JC applications is always a subclass of the Applet class from javacard.framework Applets class provides entry points to select and deselect the application, install it and receive APDUs from the terminal Reacts to APDU's send from the JCRE to the process method Only one active applications at a time Several applet can be selected at the same time but can not work in parallel
Sun Proprietary/Confidential:
Why a Firewall ?
Provides isolation between applications
> In addition to the Java programming language rules
Sun Proprietary/Confidential:
Sun Proprietary/Confidential:
Firewall Granularity
Applet Instance and Data
AppA1 AppA2
AppB
AppB
Code
AppA1
AppA2
Package A
Package B
Sun Proprietary/Confidential:
Sun Proprietary/Confidential:
3
CAP file Verifier
C-JCRE Simulator
Sun Proprietary/Confidential:
Contactless Enhancements
> Extended length APDU support > Memory access API > Contactless crypto performance
> HMAC-MD5, HMAC-SHA1, SHA256, Korean Seed > Signature w/msg recovery > Partial message digest > Incorporation of Biometrics API
Standards alignment
> 20 Logical Channels support
Sun Proprietary/Confidential:
Agenda
Sun Proprietary/Confidential:
Classic Edition
> Leverages the existing Java Card 2.x platform architecture > For the more resource-constrained devices
Both Editions are backward compatible with previous versions and share key security features
Slide 29
optimization : CAP files > on-card or off-card byte code verification > on-demand Garbage Collection
APDU-based communication
> Contact or contactless
Slide 30
via HTTP(s)
Multi threaded environment Concurrent communication over USB, ISO, contactless Client & Server communication Full backward compatibility
Slide 31
Connected Products
> Network-oriented > High-speed interface > Larger memory
HTTP Webserver Generic Comm. Framework Client mode String, char, long Concurrent communications Multi-dim. arrays, collections Event Framework 32 bit, KVM-level VM Concurrent app execution .class loading, automatic GC APDU-based communication
>
>
> >
Classic Products
> Traditional card
>
>
>
Sun Proprietary/Confidential:
Slide 33
Slide 34
Thank You
Sebastian Hans [email protected]