Overview
A smart card is a plastic card that looks like a credit card but
has an embedded microprocessor. The microprocessor, together with
the built-in volatile and non-volatile memories, allows the smart
card to do things that credit cards cannot do. For example, store
personal information such as medical records; store electronic
money, etc. The possible applications of smart cards are limitless,
especially in today's wireless and Internet world.
Smart cards are
programmed to implement those applications. Because the
inner workings of smart cards differ from one manufacturer to
another, the programming logic for smart cards is manufacturer-specific.
Traditionally it is almost impossible for third parties to develop
smart card applications independently and sell them to card issuers.
Java card technology
tries to leverage on Java language's "write once, run everywhere"
nature and make the application development for smart cards more
aligned with today's mainstream of software development. In particular,
Java card technology relieves smart card programmers of having
to work with low-level, manufacturer-specific API. It exploits
Java's natural support for security, object-oriented technology,
and hardware independence. Developers will write applications
for smart cards using standard Java card API. They can be burned
into any Java card compliant smart cards, even after the cards
are issued.
|
Description
Developing applications
(called applets) for smart card with Java card technology is significantly
different from developing normal Java programs. It is more of
art and discipline than science. This course will spend the first
two days to bring students up to speed with necessary Java knowledge
before moving on to teach students the full cycle of development
for smart cards using Java card technology.
Objectives
Students will
use the Java card development kit to write real world applications
and go through all the steps that lead to the final mask (burning
binary into card). Upon finishing this course, students will be
able to
- Understand
and write normal non-GUI Java programs
- Have a firm
understanding of the Java card architecture
- Master the
Java card framework and API
- Write Java
card applets, optimize them, verify them off the card, and understand
the installation process.
- Master the
APDU protocol and use them effectively in applets.
- Master applet
firewall and object sharing
- Master Java
Card cryptography APIs and platform security
- Understand
how to integrate Java Card with the Visa Open Platform framework
Audience
This course is
designed for non-Java programmers who want to write applications
for smart cards with the Java card technology.
- Developers
- Consultants
- Architects
- Technical managers
Prerequisites
This course does not
assume that students already have programming experience with Java.
If you do have Java experience and want to move to Java card technology
rapidly, you should consider taking
Programming Smart Cards with Java Card Technology instead.
- Any procedural
programming language experience
Duration:
5 Days
Course Outline
Java Fundamentals
- Java architecture
- Java system and
language concepts
- Interfaces and
Packages
- Objects, Classes
& Methods
- Control structures
and primitives
- Threads and concurrent
programs
- Exceptions
- Java Class Model
- Overview of the
Java Core Libraries
- Standard utilities
(the java.util package)
- I/O utilities
(the java.io package)
Smart Card Overview
- What is a smart
card
- Smart card and
international standards
- Smart card types
and hardware
- Smart card communication
protocols
- Smart card operating
system
Java Card Technology
Overview
- Overview of Java
card architecture
- Overview of Java
language used in Java card
- Java card virtual
machine and runtime environment
- Java card framework
and API
- Overview of Java
card development process
|
Writing Java Card
Applets
- Memory model in
Java card
- Persistent and
transient objects
- Atomicity and
transactions
- Exception handling
- Applet class
- Working with APDU
protocols
Java Card Security
- Fundamentals of
Crytography
- Security API in
Java
- Java Crytography
Extension (JCE)
- Applet firewall
- Object sharing
- Cryptography and
Java card cryptography APIs
- Java card security
mechanisms
- Applet security
Java Card Programming
Guide and Tips
- Applet design
and optimization
- Design of the
applet class structure
- Applet error checking
- Creation and reuse
of objects in applets
- 32-bit arithmetic
Operations
- Accessing arrays
Open Platform
/ GLOBALPLATFORM Initiatives
- Open Platform Card
Specification
- Visa Open Platform
Card Implementation Specification
- Open Platform Card
Architecture
- Open Platform Card
and Application Life Cycle
- Open Platform Card
Content Management
- Open Platform Terminal
Specification
- Java Card and Open
Platform Solutions
|
|