Scott Guthery and Tim Jurgensen
Table of Contents
Foreword by Nick Habgood, MAOSCO
Preface
Part I Smart Card Background and Basics
|
Chapter 1 Smart Card Programming |
||
|
Smart Card Software |
||
|
Host Software |
||
|
Card Software |
||
|
Host and Card Software Integration |
||
|
High-Level Language Card Programs |
||
|
Assembly Language Card Programs |
||
|
Smart Card Software Security |
||
|
Smart Card Operating Systems |
||
|
Smart Card File Systems |
||
|
Smart Card Communications |
||
|
Smart Card Hardware |
||
|
The Smart Card Memory System |
||
|
The Smart Card Central Processing Unit |
||
|
Smart Card Input/Output |
||
|
Smart Card System Design |
||
|
Data Security |
||
|
Data Integrity |
||
|
Smart Card System Architecture |
||
|
Summary |
||
|
Chapter 2 Physical Characteristics of Smart Cards |
||
|
What's in the Card? |
||
|
Integrated Circuit Chips |
||
|
Coprocessors |
||
|
Security Features |
||
|
The Manufacturing Process |
||
|
Mask Development |
||
|
Code Development |
||
|
Chip Simulators |
||
|
Chip Emulators |
||
|
Protocol Analyzers |
||
|
Interface Devices (Readers) |
||
|
Summary |
||
|
Chapter 3 Some Basic Standards for Smart Cards |
||
|
ISO, IEC, and ANSI Standards for Smart Cards |
||
|
Physical Characteristics of Identification Cards |
||
|
Encoding of Information for Identification Cards |
||
|
The Business Model for Identification Cards |
||
|
Smart Card Standards |
||
|
Characteristics of Smart Cards |
||
|
Other Smart Card Standards and Specifications |
||
|
Summary |
||
|
Chapter 4 Smart Card Commands |
||
|
Link-Level Protocols |
||
|
The T=0 Protocol |
||
|
The T=1 Protocol |
||
|
Application-Level Protocols |
||
|
The ISO 7816-4 APDU |
||
|
The File System API |
||
|
The Security API |
||
|
Summary |
||
|
Chapter 5 The Schlumberger Multiflex Smart Card |
||
|
Activating Smart Cards: Reset and Answer to Reset |
||
|
Directories and Files |
||
|
Selecting a Directory |
||
|
Selecting an Elementary File |
||
|
Keys and Key Files |
||
|
Creating a PIN File and Updating the External Authentication Key File |
||
|
Record Files and Seek |
||
|
Cyclic Files and Electronic Purses |
||
|
Multiflex Commands |
||
|
Protected-Model Commands |
||
|
Internal and External Authentication |
||
|
Authentication States and Authentication State Transitions |
||
|
Tracking EEPROM Usage |
||
|
Summary |
||
Part II Smart Card Software Development
|
Chapter 6 Smart Card Software Development Tools |
||
|
Tools for Host Software Development |
||
|
Smart Card Editors |
||
|
Smart Card Systems, Infrastructures, and Plug-Ins |
||
|
Smart Card Software Development Kits and Application Programming Interfaces |
||
|
Smart Card Reader Interfaces |
||
|
Tools for Card Software Development |
||
|
Assemblers and Compilers |
||
|
Simulators and Debuggers |
||
|
Emulators and Testers |
||
|
Smart Card Operating Systems |
||
|
Miscellaneous Tools |
||
|
Summary |
||
|
Chapter 7 Reader-Side Application Programming Interfaces |
||
|
PC/SC |
||
|
The PC/SC API |
||
|
The Multiflex SSP |
||
|
MULTOS |
||
|
The Open Card Framework |
||
|
ICC Specification for Payment Systems (EMV'96) |
||
|
EMV Commands |
||
|
Data Authentication and Digital Certificates |
||
|
Visa Integrated Circuit Card Specification |
||
|
SET 2.0 and the Visa Open Technology Platform |
||
|
C-SET |
||
|
IATA 791/20.204 |
||
|
Cryptographic Smart Cards |
||
|
Cryptographic Smart Card Commands |
||
|
The DCE Personal Security Module API |
||
|
Summary |
||
|
Chapter 8 Card-Side Application Programming Interfaces |
||
|
Programming Considerations |
||
|
Counterfeit Cards |
||
|
Special Considerations in Writing Card-Side Software |
||
|
Memory |
||
|
Tearing |
||
|
Testing and Debugging |
||
|
Linking and Loading |
||
|
File Design |
||
|
Reader Behavior |
||
|
Reader Communication |
||
|
The Standards-Based APIs |
||
|
The ISO 7816-4 Standard |
||
|
The GSM 11.14 Standard |
||
|
The Vendor APIs |
||
|
Schlumberger's Customer-Oriented System |
||
|
MULTOS |
||
|
The Java Card |
||
|
Java Card API Developments |
||
|
Schlumberger's Java Card 1.0 API |
||
|
Schlumberger's Java Card 20. Core API |
||
|
The JavaSoft Java Card 2.0 API |
||
|
Summary |
||
|
Chapter 9 Smart Cards and Security |
||
|
Objectives and Characteristics of Security Systems |
||
|
Authentication |
||
|
Authorization |
||
|
Privacy |
||
|
Integrity |
||
|
Nonrepudiation |
||
|
The System Components |
||
|
The Card |
||
|
The Cardholder |
||
|
The Card Issuer |
||
|
The Terminal |
||
|
The PC |
||
|
The Network |
||
|
The Application |
||
|
The Mechanisms |
||
|
Physical Security |
||
|
Authentication |
||
|
Integrity |
||
|
Authorization |
||
|
Privacy |
||
|
Summary |
||
Part III Smart Card Application Examples
|
Chapter 10 The Smart Shopper Card Program |
||
|
The Story of the Smart Shopper Cards |
||
|
Merchants Using Smart Shopper |
||
|
Scenarios for Using Smart Shopper |
||
|
High-Level Design |
||
|
File Layout |
||
|
The Master File |
||
|
The Cardholder Personal Data File |
||
|
The Smart Commerce Solutions Card Administration File |
||
|
The Merchant External Authentication File |
||
|
The Frequent Buyer Points File |
||
|
The Cumulative Purchases File |
||
|
The Want List File |
||
|
File Sizes |
||
|
Card Security Architecture |
||
|
Personalizing the Smart Shopper Card |
||
|
The Smart Commerce Solutions Web Site and Smart Commerce Solutions Application Programs |
||
|
The Smart Shopper Card Browser Program |
||
|
The Harvest Festival Application Programs |
||
|
The Scrivener's Corner Application Program |
||
|
The Smart Commerce Solutions Smart Shopper Card Management Utility |
||
|
Summary |
||
|
Chapter 11 The FlexCash Card: An E-commerce Smart Card Application |
||
|
An Example: E-Coins, E-Money, and E-Bucks |
||
|
The Design of the FlexCash Smart Card Program |
||
|
FlexCash Card Monitor Implementation |
||
|
The Flex Cash Card Browser and Editor |
||
|
The E-Bucks E-cash Protocol and Implementation |
||
|
The E-Bucks E-cash Protocol |
||
|
The E-Bucks Card-Side Code |
||
|
The E-Bucks Reader-Side Code |
||
|
Summary |
||
|
Glossary |
||
|
Appendix A - ISO 7816-4 Smart Card Commands |
||
|
Appendix B - Multiflex 3K Smart Card Commands |
||