Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| smartcards [Le 26/07/2012, 11:17] – [PC/SC (Personal computer/Smart Card)] 194.98.114.65 | smartcards [Le 21/03/2024, 17:42] (Version actuelle) – [javax.smartcardio] Fôte de Gramère Jean-Dom | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| - | ====== Smart cards sous Linux ====== | + | {{tag> |
| + | ---- | ||
| - | ===== Présentation | + | ====== Cartes à puce sous Ubuntu ====== |
| - | Les smart cards (carte à puce, carte sans contact...) sont des cartes intelligentes qui embarquent un microcontrôleur ou un microprocesseur. Le nombre d'application | + | Les Cartes à puce (smart cards en anglais) sont des cartes intelligentes qui embarquent un microcontrôleur ou un microprocesseur. Le nombre d'applications |
| - | Les exemples les plus populaires de smart cards sont les cartes de paiement, les cartes | + | Les exemples les plus populaires de carte à puce sont les cartes de paiement, les cartes |
| + | L' | ||
| + | Cette page traite de deux type de cartes, les cartes PC/SC et les cartes de type [[# | ||
| - | ===== Interface | + | [[wpfr> |
| + | La spécification de cette bibliothèque est faite par le PC/SC Workgroup, composé de grands fabricants de carte à puce ou d' | ||
| - | L'utilisation | + | ===== Pré-requis ===== |
| + | |||
| + | * Disposer des [[: | ||
| + | * Disposer | ||
| + | ===== PC/SC (Personal computer/ | ||
| - | ==== PC/SC (Personal computer/ | + | ==== Installation==== |
| - | + | ||
| - | Personal computer/ | + | |
| - | La spécification de cette bibliothèque est faite par le PC/SC Workgroup, composé de grands fabricants de carte à puce ou d' | + | |
| - | + | ||
| - | === Installation === | + | |
| - | + | ||
| - | La gestion des lecteurs PC/SC n'est pas native sous Linux, mais peut être très facilement ajoutée par l' | + | |
| - | + | ||
| - | < | + | |
| - | sudo apt-get install pcscd libpcsclite1 | + | |
| - | </ | + | |
| - | Par la suite, suivant votre lecteur, il vous faudra installer | + | La gestion des lecteurs PC/SC n'est pas native sous Linux, mais peut être très facilement ajoutée par l' |
| - | <code> | + | ====Configuration==== |
| - | $> apt-cache search "PC/SC driver" | + | Par la suite, suivant votre lecteur, il vous faudra installer le pilote PC/SC correspondant à votre périphérique. Un certain nombre est déjà fourni dans les [[: |
| + | Vous obtiendrez une réponse qui vous permettra de savoir quel paquet installer : | ||
| libacr38u - PC/SC driver for the ACR38U smart card reader | libacr38u - PC/SC driver for the ACR38U smart card reader | ||
| libasedrive-serial - PC/SC driver for the Athena ASEDrive IIIe serial smart card reader | libasedrive-serial - PC/SC driver for the Athena ASEDrive IIIe serial smart card reader | ||
| Ligne 37: | Ligne 35: | ||
| pcsc-omnikey - PC/SC driver for Omnikey Cardman Smartcard readers (binary-only) | pcsc-omnikey - PC/SC driver for Omnikey Cardman Smartcard readers (binary-only) | ||
| </ | </ | ||
| + | Installez le paquet correspondant à votre type de carte. | ||
| + | Le paquet **libccid** installé par défaut avec **pcscd** est le pilote PC/SC pour le standard [[wpen> | ||
| - | Le paquet **libccid** installé par défaut avec **pcscd** est le driver PC/SC pour le standard CCID. Il permet la reconnaissance d'un grand nombre de lecteurs génériques basés sur ce standard. | + | ==== Utilisation ==== |
| - | === Test === | + | Pour vérifier que tout fonctionne, vous pouvez utiliser les outils du paquet **[[apt> |
| + | * **pcsc_scan** : un petit script d' | ||
| + | * **gscriptor** : un petit logiciel avec interface graphique qui permet d' | ||
| - | Pour vérifier que tout fonctionne, vous pouvez utiliser l' | ||
| - | < | + | ===== javax.smartcardio |
| - | sudo apt-get install pcsc-tools | + | |
| - | pcsc_scan | + | |
| - | </ | + | |
| - | + | ||
| - | Celui ci vous listera les lecteurs reconnu et les cartes détectés sur ceux-ci avec quelques informations supplémentaires. | + | |
| - | ==== javax.smartcardio ==== | + | |
| L'API Java Smart Card I/O défini par la JSR 268 est une API pour le langage Java permettant la communication avec les smart cards en utilisant l' | L'API Java Smart Card I/O défini par la JSR 268 est une API pour le langage Java permettant la communication avec les smart cards en utilisant l' | ||
| - | Un des ses atouts majeurs | + | Un des ses atouts majeurs |
| - | Cette API a été introduit depuis Java 1.6 et est disponible et fonctionnelle avec les [[java# | + | Cette API a été introduit depuis Java 1.6 et est disponible et fonctionnelle avec les [[:java]] et [[:openJDK]]. |
| - | === Exemple d' | + | ==== Exemple d' |
| - | < | + | < |
| import javax.smartcardio.*; | import javax.smartcardio.*; | ||
| import java.util.*; | import java.util.*; | ||
| Ligne 130: | Ligne 125: | ||
| </ | </ | ||
| - | === Utilisation avec Eclipse === | + | ==== Utilisation avec Eclipse |
| - | Généralement, | + | Généralement, |
| <note important> | <note important> | ||
| - | Pour pallier | + | Pour pallier ce problème, il faut lever les restrictions d' |
| * Clic droit sur votre projet puis **Properties** | * Clic droit sur votre projet puis **Properties** | ||
| * Dans la section **Java Build Path**, onglet **Librairies**, | * Dans la section **Java Build Path**, onglet **Librairies**, | ||
| Ligne 143: | Ligne 138: | ||
| Désormais, vos classes sont accessibles. | Désormais, vos classes sont accessibles. | ||
| - | === Problème de détection des cibles === | + | ==== Problème de détection des cibles |
| - | Si votre cible est correctement détectée avec pcsc_scan mais pas avec Java, ceci est du à un [[https:// | + | Si votre cible est correctement détectée avec pcsc_scan mais pas avec Java, ceci est du à un [[https:// |
| Par défaut, l'API Java cherche **libpcsclite.so** dans les dossiers /// | Par défaut, l'API Java cherche **libpcsclite.so** dans les dossiers /// | ||
| - | Pour y remédier, plusieurs solutions : | + | Pour y remédier, plusieurs solutions, soit vous copiez la bibliothèque au bon endroit : |
| + | * Sous architecture x86 : < | ||
| + | * Sous architecture amd64 : < | ||
| - | == Copier la bibliothèque au bon endroit : == | + | Soit vous définissez |
| - | + | ||
| - | Sous architecture x86 : | + | |
| - | < | + | |
| - | sudo ln -s / | + | |
| - | </ | + | |
| - | + | ||
| - | Sous architecture amd64 : | + | |
| - | < | + | |
| - | sudo ln -s / | + | |
| - | </ | + | |
| - | + | ||
| - | == Définir | + | |
| - | + | ||
| - | < | + | |
| java -Dsun.security.smartcardio.library=/ | java -Dsun.security.smartcardio.library=/ | ||
| </ | </ | ||
| - | + | Soit vous faites | |
| - | == Faire le travail dans le code : == | + | |
| - | + | ||
| - | Rechercher | + | |
| - | + | ||
| - | < | + | |
| File libPcscLite = new File("/ | File libPcscLite = new File("/ | ||
| if (libPcscLite.exists()) { | if (libPcscLite.exists()) { | ||
| Ligne 179: | Ligne 157: | ||
| } | } | ||
| </ | </ | ||
| - | ===== Outils ===== | ||
| - | Voici une liste non exhaustive d' | + | SpringCard met à disposition des outils gratuit pour PC/SC sur son site. Notamment un [[http:// |
| - | + | ||
| - | * Le package **[[apt> | + | |
| - | * **pcsc_scan** : un petit script d' | + | |
| - | * **gscriptor** : un petit logiciel avec interface graphique qui permet d' | + | |
| - | * Les outils SpringCard : SpringCard met à disposition des outils gratuit pour PC/SC sur son site | + | |
| - | * [[http:// | + | |
| - | | + | |
| ===== Liens externes ===== | ===== Liens externes ===== | ||
| - | + | * [[https://wiki.debian.org/fr/Smartcards|liste | |
| - | [[http://www.unixgarden.com/index.php/securite/ | + | |
| - | [[http:// | + | |
| ---- | ---- | ||
| - | // | + | // |
| - | * //[[: | + | |
