SlideShare a Scribd company logo
JAVA CARD BASICS
CONCEPTS
Eric Vétillard / Oracle
Hong Kong/18.03.2014
WHY JAVA CARD ?
3
Java on a Smart Card
Smart cards are about tamper resistance (resisting to attacks)
■ Not just attacks coming from the Web
■ Also all kinds of physical attacks
■ Observation attacks, where attackers listen to your devices
■ Fault attacks, where attackers use lasers to derail the silicon
Using a smart card with a Java Card application gives you
■ A physical isolation from the client system and the Web
■ Assets remain secure even if a computer contains malware
■ Assets on the card cannot be accessed directly from internet
■ A physical protection against most direct attackers
■ Useful for end users when their card is stolen
■ Useful for application providers when the user is the attacker
4
Java Card can Protect
your Credentials
Your application will most likely manage some credentials
■ PIN codes or passwords
■ Cryptographic keys
■ Certificates
Java Card products will protect these credentials
■ With standard procedures on all sensitive classes
■ Assets remain secure even if a computer contains malware
■ Assets on the card cannot be accessed directly from internet
■ With standard procedures such as GlobalPlatform
You are only responsible for your application logic
5
How Much do you Need to
Know about Security?
Java Card doesn’t require any specific security skill
■ It simply defines a dialect of the Java language targeting smart cards
Smart card application design requires security skills
■ What if your application returns a password as clear text?
■ Some security experience is required
■ Especially if you design your application from scratch
Smart card application implementation requires security skills
■ Mostly for highly sensitive applications
■ Countermeasures for sophisticated attacks are not obvious
■ Java can even simplify some tasks, like error management with exceptions
6
What about
Security Certifications?
Some industries/countries require security certifications
■ In most cases, Common Criteria, FIPS 140, or proprietary schemes
■ For instance, payment, identity, government apps, etc.
Security certification requires specific skills
■ Not necessarily yours, many consultants are available
Java Card provides you significant help
■ Most of the difficult work is done by platform providers
■ Application developers only need to “prove” that their application is secure
■ While relying on the Java Card security mechanisms
JAVA CARD KEY FACTS
A Full Ecosystem
8
Standards Alignment
• ETSI / 3GPP / GlobalPlatform…
• Critical success factor for global roll-out
• Globally deployed
Service delivery platform
• Storage and execution of several
independent applications
• Matured and full controlled
• Applications are independent from
platforms
High Security
Certifications
• Strong community for certification
• Help is easy to find if required
Post-Issuance
• OTA application management
• Flexible application download,
personalization and lifecycle
management
Interoperability
• Easy migration from one device to
another
• Independence from device provider
• Target platform to be selected on
specific qualities (memory, security)
Openness
• Development open to 3rd parties
• Community support (Java Card Forum)
• Extendable with new technologies (NFC)
9
Target Platform
The target platform is an integrated microcontroller
■ CPU + RAM + NVM + peripherals all in a single chip
■ CPU ranging from 8-bit to low-end 32-bit cores
■ Between 2KB and 32KB of RAM
■ Between 128KB and 1.5MB of Flash or EEPROM+ROM
Security certification requires specific skills
■ Not necessarily yours, many consultants are available
Java Card provides you significant help
■ Most of the difficult work is done by platform providers
■ Application developers only need to “prove” that their application is secure
■ While relying on the Java Card security mechanisms
A Java Card Product
Java Card Core
Native Platform
JCRE
VM
Applet
Applet Applet Applet
Library
Applet
Library
Card
Management
(GlobalPlatform)
API
Three specifications:
• Java Card Runtime Environment specification
• Java Card Virtual Machine specification
• Java Card API specification
Latest release is Java Card Classic, version 3.0.4
A Java Card Platform
Operating System
Native Platform
JCRE
VM
Applet
Applet Applet Applet
Library
Applet
Library
Card
Management
(GlobalPlatform)
API
A Java Card Platform
Card Management
Native Platform
JCRE
VM
Applet
Applet Applet Applet
Library
Applet
Library
Card
Management
(GlobalPlatform)
API
A Java Card Platform
Vertical Libraries
Native Platform
JCRE
VM
Applet
Applet Applet Applet
Library
Applet
Library
Card
Management
(GlobalPlatform)
API
A Java Card Platform
Applications
Native Platform
JCRE
VM
Applet
Applet Applet Applet
Library
Applet
Library
Card
Management
(GlobalPlatform)
API
15
Application model
A smart card is an “on-demand” server
■ The server is available when the card is powered and connected
■ Multiple applications are available, selection is required
■ Request protocols are standard by ISO (ISO7816, ISO14443)
Java Card simply provides a framework around this
■ Each application includes an Applet class, which defines
■ A procedure to manage its instantiation install()
■ A behavior when an application instance is selected select()
■ A behavior when an application processes a request process()
■ And a few more things, like deselection
This framework is sometimes complemented by vertical frameworks
■ For instance, the SIM Application Toolkit framework for SIM cards
■ Also defines a behavior for processing specific events processToolkit()
16
Persistence Model
In Java Card Classic, all data is stored in objects
■ Objects are persistent by default
■ Atomicity is guaranteed for all updates
■ Objects are kept across sessions (persistent VM)
Transient objects (in RAM) are also available
■ Mostly for performance and security reasons
The persistence model greatly influences programming style
■ Most objects are allocated statically during installation
■ Dynamic allocation during processing is strongly discouraged
■ There is no specific code for loading and saving data
■ All data from the application is available at all times
Application Firewall
com.bank.cardapps
EMVApplet OTPApplet
com.localta.tkt
TransportApplet
THANK YOU!
Eric Vétillard
Oracle
eric.vetillard@oracle.com
JCF contact: karen.brindley@javacardforum.org

More Related Content

PDF
Java Card, 15 years later
PPT
Technical Overview of Java Card
PDF
Step-by-step Development of an Application for the Java Card Connected Platform
PDF
First Steps with Java Card
PDF
Java Card 2.x FAQ (2001)
PPT
Javacardtech
PPTX
jCardSim - development platform for Java Card Applications
PDF
JavaCard development Quickstart
Java Card, 15 years later
Technical Overview of Java Card
Step-by-step Development of an Application for the Java Card Connected Platform
First Steps with Java Card
Java Card 2.x FAQ (2001)
Javacardtech
jCardSim - development platform for Java Card Applications
JavaCard development Quickstart

What's hot (14)

PDF
Security applications with Java Card
PPTX
Javacard
PDF
jCardSim – Java Card is simple!
PPTX
Java card
DOC
Java card
PPT
FIPS 201 / PIV
PDF
Java Card Platform Security and Performance
PPTX
Java card
PDF
Java Card Technology: The Foundations of NFC
PPT
Java card technology
PDF
Study of Java Card and its Application
PDF
Government Citizen ID using Java Card Platform
PDF
From Bitcoin Hardware Wallets to Personal Privacy Devices
PDF
eSmartlock - an antipiracy dongle with integrated DRM functionalities
Security applications with Java Card
Javacard
jCardSim – Java Card is simple!
Java card
Java card
FIPS 201 / PIV
Java Card Platform Security and Performance
Java card
Java Card Technology: The Foundations of NFC
Java card technology
Study of Java Card and its Application
Government Citizen ID using Java Card Platform
From Bitcoin Hardware Wallets to Personal Privacy Devices
eSmartlock - an antipiracy dongle with integrated DRM functionalities
Ad

Viewers also liked (6)

PPTX
Secure Element Solutions
PPTX
IoT Security: Cases and Methods [CON5446]
PDF
Secure Elements in Web Applications
PDF
IoT summit - Building flexible & secure IoT solutions
PPT
NFC Basic Concepts
PPT
Mobile Payment fraud & risk assessment
Secure Element Solutions
IoT Security: Cases and Methods [CON5446]
Secure Elements in Web Applications
IoT summit - Building flexible & secure IoT solutions
NFC Basic Concepts
Mobile Payment fraud & risk assessment
Ad

Similar to Eric java card-basics-140314 (20)

PPTX
JAVA CARD BY SAIKIRAN PANJALA
PPT
Java card technology
PPT
java-card20232024999999999999999999999999999999999999999999999999999999999999...
PPT
Java card technology
PDF
Tu dresden 290404_jcop
PDF
Java Card Security
PPT
PDF
SECURE FILE MANAGEMENT SYSTEM FOR JAVA CARDS
PPTX
Smart Cards, ePassports, and open source
PDF
Eric Vétillard's Cardis2010 Slides
PDF
Java Platform Security Architecture
PDF
JavaAndNetBeans.pdf
PDF
Security in Java
PPTX
1. Java Project Guidance for engineering
PDF
verification_slides
PPTX
Introduction to Java Programming- Java Programming Tutorials for beginners
ODP
Open Source and java
PPTX
best java training institute in Chandigarh ppt
PPT
J2ee strutswithhibernate-140121221332-phpapp01
JAVA CARD BY SAIKIRAN PANJALA
Java card technology
java-card20232024999999999999999999999999999999999999999999999999999999999999...
Java card technology
Tu dresden 290404_jcop
Java Card Security
SECURE FILE MANAGEMENT SYSTEM FOR JAVA CARDS
Smart Cards, ePassports, and open source
Eric Vétillard's Cardis2010 Slides
Java Platform Security Architecture
JavaAndNetBeans.pdf
Security in Java
1. Java Project Guidance for engineering
verification_slides
Introduction to Java Programming- Java Programming Tutorials for beginners
Open Source and java
best java training institute in Chandigarh ppt
J2ee strutswithhibernate-140121221332-phpapp01

Recently uploaded (20)

PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PPTX
Programs and apps: productivity, graphics, security and other tools
PPTX
Cloud computing and distributed systems.
PDF
Empathic Computing: Creating Shared Understanding
PDF
A comparative analysis of optical character recognition models for extracting...
PPTX
Machine Learning_overview_presentation.pptx
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
DOCX
The AUB Centre for AI in Media Proposal.docx
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Spectral efficient network and resource selection model in 5G networks
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Approach and Philosophy of On baking technology
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Assigned Numbers - 2025 - Bluetooth® Document
Dropbox Q2 2025 Financial Results & Investor Presentation
Network Security Unit 5.pdf for BCA BBA.
Chapter 3 Spatial Domain Image Processing.pdf
Programs and apps: productivity, graphics, security and other tools
Cloud computing and distributed systems.
Empathic Computing: Creating Shared Understanding
A comparative analysis of optical character recognition models for extracting...
Machine Learning_overview_presentation.pptx
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
20250228 LYD VKU AI Blended-Learning.pptx
The AUB Centre for AI in Media Proposal.docx
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Spectral efficient network and resource selection model in 5G networks
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Building Integrated photovoltaic BIPV_UPV.pdf
Approach and Philosophy of On baking technology
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Encapsulation_ Review paper, used for researhc scholars
Assigned Numbers - 2025 - Bluetooth® Document

Eric java card-basics-140314

  • 1. JAVA CARD BASICS CONCEPTS Eric Vétillard / Oracle Hong Kong/18.03.2014
  • 3. 3 Java on a Smart Card Smart cards are about tamper resistance (resisting to attacks) ■ Not just attacks coming from the Web ■ Also all kinds of physical attacks ■ Observation attacks, where attackers listen to your devices ■ Fault attacks, where attackers use lasers to derail the silicon Using a smart card with a Java Card application gives you ■ A physical isolation from the client system and the Web ■ Assets remain secure even if a computer contains malware ■ Assets on the card cannot be accessed directly from internet ■ A physical protection against most direct attackers ■ Useful for end users when their card is stolen ■ Useful for application providers when the user is the attacker
  • 4. 4 Java Card can Protect your Credentials Your application will most likely manage some credentials ■ PIN codes or passwords ■ Cryptographic keys ■ Certificates Java Card products will protect these credentials ■ With standard procedures on all sensitive classes ■ Assets remain secure even if a computer contains malware ■ Assets on the card cannot be accessed directly from internet ■ With standard procedures such as GlobalPlatform You are only responsible for your application logic
  • 5. 5 How Much do you Need to Know about Security? Java Card doesn’t require any specific security skill ■ It simply defines a dialect of the Java language targeting smart cards Smart card application design requires security skills ■ What if your application returns a password as clear text? ■ Some security experience is required ■ Especially if you design your application from scratch Smart card application implementation requires security skills ■ Mostly for highly sensitive applications ■ Countermeasures for sophisticated attacks are not obvious ■ Java can even simplify some tasks, like error management with exceptions
  • 6. 6 What about Security Certifications? Some industries/countries require security certifications ■ In most cases, Common Criteria, FIPS 140, or proprietary schemes ■ For instance, payment, identity, government apps, etc. Security certification requires specific skills ■ Not necessarily yours, many consultants are available Java Card provides you significant help ■ Most of the difficult work is done by platform providers ■ Application developers only need to “prove” that their application is secure ■ While relying on the Java Card security mechanisms
  • 8. A Full Ecosystem 8 Standards Alignment • ETSI / 3GPP / GlobalPlatform… • Critical success factor for global roll-out • Globally deployed Service delivery platform • Storage and execution of several independent applications • Matured and full controlled • Applications are independent from platforms High Security Certifications • Strong community for certification • Help is easy to find if required Post-Issuance • OTA application management • Flexible application download, personalization and lifecycle management Interoperability • Easy migration from one device to another • Independence from device provider • Target platform to be selected on specific qualities (memory, security) Openness • Development open to 3rd parties • Community support (Java Card Forum) • Extendable with new technologies (NFC)
  • 9. 9 Target Platform The target platform is an integrated microcontroller ■ CPU + RAM + NVM + peripherals all in a single chip ■ CPU ranging from 8-bit to low-end 32-bit cores ■ Between 2KB and 32KB of RAM ■ Between 128KB and 1.5MB of Flash or EEPROM+ROM Security certification requires specific skills ■ Not necessarily yours, many consultants are available Java Card provides you significant help ■ Most of the difficult work is done by platform providers ■ Application developers only need to “prove” that their application is secure ■ While relying on the Java Card security mechanisms
  • 10. A Java Card Product Java Card Core Native Platform JCRE VM Applet Applet Applet Applet Library Applet Library Card Management (GlobalPlatform) API Three specifications: • Java Card Runtime Environment specification • Java Card Virtual Machine specification • Java Card API specification Latest release is Java Card Classic, version 3.0.4
  • 11. A Java Card Platform Operating System Native Platform JCRE VM Applet Applet Applet Applet Library Applet Library Card Management (GlobalPlatform) API
  • 12. A Java Card Platform Card Management Native Platform JCRE VM Applet Applet Applet Applet Library Applet Library Card Management (GlobalPlatform) API
  • 13. A Java Card Platform Vertical Libraries Native Platform JCRE VM Applet Applet Applet Applet Library Applet Library Card Management (GlobalPlatform) API
  • 14. A Java Card Platform Applications Native Platform JCRE VM Applet Applet Applet Applet Library Applet Library Card Management (GlobalPlatform) API
  • 15. 15 Application model A smart card is an “on-demand” server ■ The server is available when the card is powered and connected ■ Multiple applications are available, selection is required ■ Request protocols are standard by ISO (ISO7816, ISO14443) Java Card simply provides a framework around this ■ Each application includes an Applet class, which defines ■ A procedure to manage its instantiation install() ■ A behavior when an application instance is selected select() ■ A behavior when an application processes a request process() ■ And a few more things, like deselection This framework is sometimes complemented by vertical frameworks ■ For instance, the SIM Application Toolkit framework for SIM cards ■ Also defines a behavior for processing specific events processToolkit()
  • 16. 16 Persistence Model In Java Card Classic, all data is stored in objects ■ Objects are persistent by default ■ Atomicity is guaranteed for all updates ■ Objects are kept across sessions (persistent VM) Transient objects (in RAM) are also available ■ Mostly for performance and security reasons The persistence model greatly influences programming style ■ Most objects are allocated statically during installation ■ Dynamic allocation during processing is strongly discouraged ■ There is no specific code for loading and saving data ■ All data from the application is available at all times
  • 18. THANK YOU! Eric Vétillard Oracle eric.vetillard@oracle.com JCF contact: karen.brindley@javacardforum.org