|
Smart Card
Systems Short Survey
|
|
This page is published to provide basic items, references
and links to access the smart card technologies and concepts. This survey
focuses on dedicated hardware proposed by manufacturers, on embedded operating
system whether there are open source or proprietary. It is designed to
be the more exhaustive sources as possible for all these points. Nevertheless
send an email to deville@lifl.fr
or grimaud@lifl.fr to relate some
interesting missing references.
Summary :
I. Dedicated Hardware
I.1 - Microprocessors ;
I.2 - Memories ;
I.3 - I/O ;
I.4 - Hardware& devices links.
II. Smart card Operating Systems & basics software
II.1 - Smart card software history ;
II.2 - Current OS status ;
II.3 - Software examples ;
II.4 - Software (open source) links.
III. Usual smart card soft wares
III.1 - Minimalist pieces of software for smart cards ;
III.2 - Conventional "ISO7816-like" operating system architectures
;
III.3
- ;
Dedicated Hardware Smart card industry is known for not
publishing detailed information about chipsets they use in their products.
This choice is driven by security issues (as well industrial concurrency).
Initially, public informations were limited to frequency bus size and
memories footprint. Todays chipset manufacturers publish the coreship
data sheets. Nevertheless SmartCard manufacturers buy customized version
of their microcontrolers. The Figure 1 shows physical
connectors and a core view of a typical smartcard microcontroler.
Figure 1: SmartCard connector (left) and microcontroler
(right).
Microprocessors :
A wide class of microprocessors are used from
old 8-bit CISC micro chip (4.44 Mhz) to powerful 32-bit RISC (100
to 200 Mhz). The type of CPU used for smart card is highly influenced
by the ISO[9] constraints linked to the card. For example, as the
card is a portable device that is stored in a wallet, it must meet
standards related to torsion and bending capacity. Table 1
gives an overview of some processors commonly used in smart cards.
Historically, smart card manufacturers used 8-bit processors because
operating systems and applications code are known to be more compact.
But smart cards now need to be more efficient and new embedded applications
require more and more computing power. So card designers now choose
32-bit RISC processors (or 8/16 bits CISC).
| Model |
Architecture |
Bus Size |
Registers |
Frequency |
| 68H05 |
CISC |
8 bits |
2 (8 bits) |
4,77 Mhz |
| 80xx51 |
CISC |
8 bits |
6 (8/16 bits) |
4,77 Mhz |
| AVR AT90 |
RISC/CISC |
8 bits |
32 (8/16 bits) |
4,77 Mhz -
44,7 Mhz
|
ARM7xx
ARM9xx |
RISC |
32 bits |
16 (32 bits) |
4,77 Mhz -
30 Mhz |
| R4KSC |
RISC |
32 bits |
32 (32 bits) |
4,77 Mhz -
100 Mhz |
Table 1: Characteristics of common smart
card microprocessors.
Computing performance of a smart card is not a
significant problem for operating systems and applications. Cryptographic
co-processor usually solve specific smart card computing needs. What
is really the limiting factor is the very small amount of memory,
and some annoying hardware-specific problems.
|
Memories :
Different types of memory exist on the card.
The first one is the RAM (Random Access Memory); there is also some
ROM (Read Only Memory); and finally EEPROM (Electric Erasable Programmable
Read Only Memory) or FLASHRAM that are writable persistent memories.
Because smart card silicon is supposed to be limited to 20 mm²,
the physical space needed for storing 1 bit is an important factor.
Each kind of memories used is of different size concerning this
point; the smallest is the ROM. Table 2 gives
an overview of the amount of memory present on board, and also present
the ``memory cell'' which is the size for 1 byte of memory on the
micro module.
| Type |
memory point |
usual capacity |
write time |
page size |
| ROM |
reference |
32-128 KB |
read only |
bus size |
| FlashRAM |
x 2 ~ 3 |
16-64 KB |
2.5 ms |
64-1024 bytes |
| EEPROM |
x 4 |
4-64 KB |
4 ms |
2-64 bytes |
| RAM |
x 20 |
128-4096 B |
bus bandwith |
bus size |
|
FeRAM
M-RAM
|
not published in a Smart Card Product
|
Table 2: Card memory Characteristics.
Persistent memory has a major drawback, linked
to its electronic properties. Its writing delay is up to 10000 times
slower than RAM one. Furthermore, writing in persistent memory may
damage the memory cells (the stress problem occurs when using the
erase operation: making a bit going from 0 to 1).
EEPROM provides 4 primitive operations:
- read: reading a value,
- erase: changing some bits from 0 to 1,
- write: changing some bits from 1 to 0,
- update: an erase followed by a write.
Erase is a stressing operation, it can provoke
a lapse of the memory cell. It is also 38% slower than a write.
Table 3 illustrates this characteristic. This
characteristic is also true for FLASHRAM.
|
Operation
|
time for writing a 64 bytes page |
|
erase
|
2.77 ms |
|
write
|
2 ms |
Table 3: Differences between the two writing
operations in a typical EEPROM usage.
|
Physical links :
|
Smart card industries have provided ISO normalization,
defining I/O protocols. The wired normalization is called ISO 7816
and is declined in "T=x" protocols. The wireless normalization
(for contact less smart card) is defined in ISO SC17 14443. Nevertheless
some Smart Card prototypes have used more conventional protocols
and physical links. The Table 4 summarizes some
of them.
| |
Type |
Protocol |
bandwith |
Technologies |
| wired |
Serial-Line |
ISO 7816 :
"T=0" & "T=1" |
9600 bauds to
192000 bauds |
Half-Duplex |
| wired |
Serial-Line |
ISO 7816 :
"T=2" & "T=3" |
not yet defined |
Full-Duplex |
|
wired
|
USB I - v1.1
|
12 Mb/s |
interleaved |
| wired |
MMC
|
20Mb/s |
interleaved |
|
wired
|
USB II - v2.0
|
480 Mb/s |
interleaved |
|
wireless
|
card ISO SC17 14443
|
- |
one to one |
| wireless |
RFID ISO SC31 18000
|
- |
one to many |
| wireless |
Bluetooth |
<1Mb/s |
Half-Duplex |
Table 4: Published SmartCard IOs.
TODO : some words about ISO7816 usage.
|
Web URLs :
|
Main smart card manufacturers :
Microcontroler manufacturer :
Usual smartcard chip datasheet :
|
| II.
Smart card operating systems |
Smart card softwares until now
|
Basically there are four parties involved during a smart card life
cycle :
-
Smart card microcontrolers are burned in conventional semiconductor
factories ;
-
Smart cards are shaped in smart card factories (this place
is supposed to be the more secured) ;
- Smart cards are distributed to smart card issuers ;
- Smart card are used to the final users.
The burning phase consist in production of silicon including
ROM state.
The shaping phase include plastics production, printing
and software initialization.
The distributing phase consist in selling the smart card and embedded
software services to the final users.
The usage phase consist in embedded software solicitation each
time the user present the smart card to a "smart card reader".
Smart card softwares generations can be classified with regard
to this embedding dates. The table 5 shows the proposed classification.
The first generation the software was exclusively embedded
on the ship by the microchip manufacturer,
as a ROM state. The Smart card manufacturer initialize the software
with confidential datas (its called smart card personalization).
The second generation appears to reduce the time-to-market.
The main
part
of the smart card
software
was
burned
in ROM, but
some part of the application softwares (called "filters") can
be loaded in EEPROM by the Smart card manufacturers. Datas are structured
in a file-system or a databased representation and so there can
be created and managed by everyone in the smart card life-cycle.
The third generation allows applications downloading as well as
datas of the second generation. Clearly it a way to improve software
reactivity (according to markets evolutions). Ensuring smart cards
safety while loading untrusted code is extraordinary more complex
than ensuring smart cards safety while loading datas.
|
1st gen. |
2nd gen. |
3rd gen. |
Smart card
user |
|
Datas |
Datas & Applications |
Smart card
issuer |
|
| Smart card
manufacturers |
Datas |
Datas & Applications |
| semiconductor
manufacturers |
Applications
& OS |
OS |
OS |
Table 5 : Smart card software
generations depending to their deployment actor.
Today, each one of this software generations
are sold by smart card manufacturers. Public phone and banking
smart card
are products of the first generation. Generic ISO7816-4 and ISO7816-7
smart cards, Health cards, are examples of the second generation.
Generic multos and javacard as used in JavaSim modules for the
GSM are examples of the third generation. |
Current OS status
|
The third generation allows applications downloading
as well as datas of the second generation. Clearly it a way to
improve software reactivity (according to markets evolutions).
Ensuring smart cards safety while loading untrusted code is extraordinary
more complex than ensuring smart cards safety while loading datas.
|
Softwares examples
Web URLs :
|
Open source development for smart card :
- SOSSE: Simple Operating System for Smartcard Education (open
source operating system) ;
- PCSC Lite Source
(Smartcard access in Linux Environment) ;
SmartCard Interface APIs :
Smartcard standards :
"Third gen" Smartcards OS :
- JavaCard is
an open source and portable secure operating system to
ease the development of killer applications for the contactless
smartcard hype ;
- ORIGIN-J: a virtual machine that executes true JavaTM bytecode,
that
has been specifically designed for systems with restricted memory
resources, such as smart cards ;
- MultOS ;
- .NET
Card ;
- BasicCard ;
- A list of Java Virtual Machine targetting embedded devices
;
- ...
|
|