 |
La Basic Card®
de Zeit Control
|
Même si l’on parle
habituellement de la Basic Card®
au sens large du terme, ce n’est pas moins de 15 modèles qui sont
aujourd’hui commercialisés par son promoteur, la petite société
allemande Zeit Control dont je vous invite à découvrir le site
Internet figurant à la rubrique Liens. Dans
son principe, cette carte n’a rien d’original puisqu’il s'agit d'une
carte à puce à OS ouvert. Mais qu'est-ce qu'un OS ouvert ?
Les cartes à puce à OS ouvert
Même si de nombreuses pages
ont été noircies et le seront encore sur ce sujet, certains auteurs
compliquant à plaisir des notions fort simples ; une carte à OS
ouvert n’est rien de bien compliqué quant à son principe. Il suffit,
pour le comprendre, de toujours garder présent à l’esprit qu’une
carte à puce n’est rien d’autre qu’un microcontrôleur. Une carte à
OS ouvert est en quelque sorte une carte à puce "non terminée",
c’est à dire une carte dans laquelle vous allez pouvoir programmer
votre propre interpréteur de commande, et donc votre propre jeu
d’instructions et vos propres mécanismes de gestion de fichiers.
Contrairement à une carte de
type Gold,
Silver, Fun ou
Jupiter que vous êtes obligé de
programmer intégralement en assembleur, dans une carte à puce à OS
ouvert vous ne programmez pas directement le microcontrôleur de la
carte en assembleur mais en langage évolué, qui peut être le très à
la mode langage Java mais aussi certains langages spécifiques, du C,
voire même du Basic dans le cas de la Basic Card®.
Ce langage évolué est pré-compilé, c’est à dire qu’il n’est pas
traduit directement en langage machine mais en un code
intermédiaire, appelé le P code, qui est alors chargé dans la
mémoire de programme de la carte. Le microcontrôleur qui équipe
cette dernière a quant à lui été programmé par son fabricant avec un
interpréteur de P code et il est donc à même d’exécuter votre
programme.
Même si cela est présenté
comme quelque chose d’extraordinaire par certaines publications ;
tout ceci est très classique pour qui connaît un peu les
microcontrôleurs. Tout ceci est synthétisé visuellement sur la
figure ci-dessous dans le cas d’une carte à puce de ce type.
Une telle approche offre de
multiples avantages que l’on peut résumer de la manière suivante :
- La carte est réellement
programmable en fonction des besoins de l’application, comme lors
d’une programmation par masque.
- La carte se programme en langage évolué, Java, C, Basic,
accessible au commun des mortels et surtout indépendant du
processeur contenu dans la carte.
- Les contraintes de programmation en grande série, imposées par la
programmation par masque, n’existent plus car les cartes de ce type
se programment unitairement si nécessaire.
- L’application ainsi développée est portable puisqu’elle peut être
exécutée, du moins en théorie, dans toute carte compatible du
langage utilisé.
Les Basic Card
Notre Basic Card®
est donc une carte à OS ouvert , c’est à dire encore qu’elle
contient un microcontrôleur programmé avec un interpréteur de P
code. Ce qui est plus original, c’est que ce P code provient du
résultat de la compilation par l’outil de développement d’un
programme écrit en Basic.
Mai attention ! Le Basic en
question se rapproche plus du C que du bon vieux GWBasic des
premiers PC. On y trouve en effet des structures du style "case of"
ou bien encore "do loop". C’est assez loin du bon vieux GOTO des
familles, même si ce Basic évolué a su garder la simplicité de
programmation inhérente à ce langage. Et c’est justement cette
simplicité de programmation qui fait une partie de l’intérêt de la
Basic Card®.
En effet, si vous savez ce qu’est une carte à puce, il ne vous
faudra que quelques heures pour arriver à développer une application
opérationnelle.
Autre intérêt majeur de cette
approche : l’outil de développement nécessaire est totalement
gratuit. Il peut être librement téléchargé sur le site Internet
spécialement consacré à la Basic Card®,
d’adresse www.basiccard.com
En outre, le langage Basic
utilisé pour le développement de l’application côté carte est
également utilisable pour développer l’application côté terminal
destiné à utiliser la carte. Il n’est donc pas nécessaire
d’apprendre ou d’utiliser un nouveau langage pour programmer
l’application côté lecteur. C’est donc un atout non négligeable car
cela peut faire gagner beaucoup de temps.
Enfin, l’outil de
développement intègre un simulateur de carte qui vous permet, sans
posséder le moindre lecteur ni la moindre carte, de tester votre
application. La rubrique "tutoriels" du site vous présente
d'ailleurs quelques exemples d’utilisation de ce remarquable outil.
Avant de conclure cette
présentation de la Basic Card®,
précisons qu’elle offre tout ce que l’on est en droit d’attendre
d’une "vraie" carte à puce en matière de sécurité puisque, comme le
montrent les tableaux ci-dessous qui résument la gamme Basic Card®,
toutes les cartes supportent de puissants algorithmes
cryptographiques tels que le classique DES, quand ce n’est pas le
récent AES ou bien encore le RSA.
Compact BasicCard
Version |
EEPROM |
RAM |
Protocole |
Cryptage |
Virgule
flottante |
Système
de fichiers |
ZC1.1 |
1K |
256
bytes |
T=1 |
SG-LFSR |
Non |
Non |
Enhanced BasicCard
Version |
EEPROM |
RAM |
Protocole |
Cryptage |
Extras |
Virgule
flottante |
Système
de fichiers |
ZC3.1 |
2K |
256
bytes |
T=1 |
DES |
|
Oui |
Oui |
ZC3.2 |
4K |
256
bytes |
T=1 |
DES |
|
Oui |
Oui |
ZC3.3 |
8K |
256
bytes |
T=1 |
DES |
|
Oui |
Oui |
ZC3.4 |
16K |
256
bytes |
T=1 |
DES |
|
Oui |
Oui |
ZC3.5 |
6K |
256
bytes |
T=1 |
DES |
EC-FSA |
Oui |
Oui |
ZC3.6 |
14K |
256
bytes |
T=1 |
DES |
EC-FSA |
Oui |
Oui |
ZC3.7 |
2K |
256
bytes |
T=1 |
DES |
|
Oui |
Oui |
ZC3.8 |
4K |
256
bytes |
T=1 |
DES |
|
Oui |
Oui |
ZC3.9 |
8K |
256
bytes |
T=1 |
DES |
|
Oui |
Oui |
Professional BasicCard
Version |
Cryptographie |
EEPROM |
RAM |
Protocole |
Cryptographie |
Extras |
Virgule
flottante |
Système
de fichiers |
ZC4.5A |
RSA |
30K |
1K |
T=0,
T=1 |
AES |
SHA-1 |
Partiellement |
Oui |
ZC4.5D |
RSA |
30K |
1K |
T=0,
T=1 |
DES |
SHA-1 |
Partiellement |
Oui |
ZC5.4 |
EC-167 |
16K |
1K |
T=0,
T=1 |
AES
& DES |
SHA-1 |
Oui |
Oui |
ZC5.5 |
EC-167 |
31K |
1.7K |
T=0,
T=1 |
EAX/OMAC/
AES/ DES |
SHA-1 |
Oui |
Oui |
MultiApplication BasicCard
Version |
Cryptographie |
EEPROM |
RAM |
Protocole |
Cryptographie |
Extras |
Virgule
flottante |
Système
de fichiers |
ZC6.5 |
EC-167 |
31K |
1.7K |
T=0,
T=1 |
EAX/OMAC/
AES/ DES |
SHA-1 |
Oui |
Oui |
Pour en savoir plus
Je vous invite à consulter la
rubrique "tutoriels" de ce site afin de découvrir quelques exemples
d'utilisation de la Basic Card et à apprendre à prendre en mains son
kit de développement.
|