Programming Smart Cards with Java Card Technology for Non-Java Programmers
 

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

 

Copyright © InferData Corporation, All Rights Reserved.