ubuntuusers.de

Smart Cards

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:


Du möchtest den Artikel für eine weitere Ubuntu-Version testen? Mitarbeit im Wiki ist immer willkommen! Dazu sind die Hinweise zum Testen von Artikeln zu beachten.

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

Smart_Card

Dieser Artikel beschreibt die Verwendung von Smart Cards (auch Chipkarte oder Integrated Circuit Card genannt).

Es gibt sie in verschiedenen Bauformen und mit unterschiedlichen physikalischen Schnittstellen. Allgemein lange bekannt sind z.B. Bankkarten mit Kontaktfeld. Auch Security-Token können Chips für Smart Cards enthalten, wie bspw. der Yubikey 🇬🇧 für OpenPGP und das PIV-Protokoll. Ein neuerer Trend besteht in der Verwendung von kontaktlosen Smart Cards mit NFC-Funktion zum Bezahlen in Supermärkten und von Tickets im öffentlichen Nahverkehr. Smartphones mit NFC-Funktion können sowohl Smart Cards mit NFC-Chips lesen wie auch für andere Kartenleser simulieren.

Solche Karten werden beispielsweise verwendet:

Für diese verschiedenen Einsatzgebiete ist ein für die jeweilige Smart Card geeigneter Kartenleser (Smart Card Reader) erforderlich, ebenso eine Anwendung für die Darstellung der Daten.

Kartenleser

Kartenleser

Die Geräte benötigen Treibersoftware. Generell benötigt man immer die Basissoftware aus den Paketen libccid 🇬🇧 , pcscd 🇬🇧 und deren Abhängigkeiten, die aber ggf. von individuell weiteren benötigten Geräte automatisch installiert werden; beispielsweise reicht für die Geräte von REINER SCT die Installation des Pakets libifd-cyberjack6 aus.

Installation

Im Idealfall reicht die Installation[1] von pcscd:

  • pcscd (Middleware für den Zugriff auf Chipkarten mit PC/SC (Daemon-Software), aus universe)

Befehl zum Installieren der Pakete:

sudo apt-get install pcscd 

Dieses Paket installiert die Basissoftware, die bereits einige Standardtreiber für Kartenleser enthält. Bei manchen Geräten benötigt man aber zusätzliche, vom Hersteller bereit gestellte Pakete. Welche Modelle durch welche Pakete unterstützt werden, kann man im Wiki von Debian 🇬🇧 einsehen.

⚓︎ Für einen Kartenleser der Reihe cyberJack von REINER SCT muss installiert werden:

  • libifd-cyberjack6 (REINER SCT cyberJack USB chipcard reader user space driver, aus universe)

Befehl zum Installieren der Pakete:

sudo apt-get install libifd-cyberjack6 

Alternativ zum Bezug dieses Pakets aus den offiziellen Paketquellen von Ubuntu kann man es auch (vielleicht in aktuellerer Version) von der Supportseite des Herstellers beziehen. Dieses Paket hängt von der o.g. Basissoftware ab und installiert diese automatisch.

⚓︎ Manche Geräte des Herstellers ACS benötigen:

  • libacsccid1 (PC/SC driver for ACS USB CCID smart card readers, aus universe)

Befehl zum Installieren der Pakete:

sudo apt-get install libacsccid1 

Die Basissoftware ist separat zu installieren.

Manche Karten bzw. Anwendungen benötigen:

  • libchipcard6 (universe; bis 23.10)

  • libchipcard6t64 (mit libchipcard-data, Bibliothek für den Zugriff auf smartcards, aus universe; ab 24.04)

Befehl zum Installieren der Pakete:

sudo apt-get install libchipcard6 libchipcard6t64 

Für Tests kann hilfreich sein:

  • pcsc-tools (Programme für die Arbeit mit Chipkarten und PC/SC, aus universe)

Befehl zum Installieren der Pakete:

sudo apt-get install pcsc-tools 

Bei der Fehlerdiagnose können helfen:

  • libusb-dev ("userspace USB programming library development files, aus main")

  • libpcsclite-dev ("Middleware to access a smart card using PC/SC (development files), aus main")

  • libchipcard-dev ("API for smartcard readers, aus universe")

Befehl zum Installieren der Pakete:

sudo apt-get install libusb-dev libpcsclite-dev libchipcard-dev 

Schließlich können auch noch bestimmte Anwendungen weitere Pakete erfordern, z.B.

  • aqbanking-tools ("Einfache Befehlszeilenwerkzeuge für Homebanking, aus universe")

Befehl zum Installieren der Pakete:

sudo apt-get install aqbanking-tools 

Tests

  1. Um zu Testen, ob ein per USB angeschlossener Kartenleser überhaupt als Gerät erkannt wird, kann folgender Befehl[2] verwendet werden:

    lsusb 

    Beispielausgabe:

    Bus 002 Device 004: ID 046a:002d Cherry GmbH SmartTerminal XX44
    Bus 001 Device 006: ID 0c4b:0500 Reiner SCT Kartensysteme GmbH cyberJack RFID standard dual interface smartcard reader
  2. Eine Auflistung der vom System erkannten Kartenleser erhält man von Cardpeek:

    cardpeek --version 

    Beispielausgabe:

    This is Linux 6.14.0-37-generic x86_64.
    Cardpeek path is /home/░░░░░/.cardpeek/
    There are 2 readers detected:
    -> pcsc://Virtual PCD 00 00
    -> pcsc://Virtual PCD 00 01
  3. Um zu testen, ob eine eingesteckte Smart Card überhaupt erkannt wird, kann folgender Befehl verwendet werden:

    pcsc_scan 

    Beispielausgabe für eine LKW-Fahrerkarte:

    Using reader plug'n play mechanism
    Scanning present readers...
    0: Cherry GmbH SmartTerminal XX44 00 00
     
    Tue Jun  1 13:43:38 2021
     Reader 0: Cherry GmbH SmartTerminal XX44 00 00
      Event number: 0
      Card state: Card inserted, 
      ATR: 3B DB 96 FF C0 10 21 FE 25 80 67 15 04 B4 03 00 09 00 81 05 21
    
    ATR: 3B DB 96 FF C1 10 31 FE 35 80 67 15 0A B4 03 00 09 00 81 05 21
    + TS = 3B --> Direct Convention
    + T0 = DB, Y(1): 1101, Z: 11 (historical bytes)
      TA(1) = 96 --> Fi=512, Di=32, 16 cycles/ETU
        250000 bits/s at 4 MHz, fMax for Fi = 5 MHz => 312500 bits/s
      TC(1) = EF --> Extra guard time: 255 (special value)
      TD(1) = C0 --> Y(i+1) = 1100, Protocol T = 0 
    -----
      TC(2) = 10 --> Work waiting time: 960 x 16 x (Fi/F)
      TD(2) = 31 --> Y(i+1) = 0011, Protocol T = 1 
    -----
      TA(3) = HE --> IFSC: 254
      TB(3) = 45 --> Block Waiting Integer: 4 - Character Waiting Integer: 5
    + Historical bytes: 80 67 15 01 B4 12 00 09 00 81 05
      Category indicator byte: 80 (compact TLV data object)
        Tag: 6, len: 7 (pre-issuing data)
          Data: 15 01 B4 08 00 09 00
        Tag: 8, len: 1 (status indicator)
          LCS (life card cycle): 05
    + TCK = 21 (correct checksum)
    
    Possibly identified card (using /usr/share/pcsc/smartcard_list.txt):
    3B DB 96 FF C0 1A 31 FE 45 34 67 15 0A B4 03 00 09 00 81 05 21
    	Digital Tachograph Card for Professional Driver
    	olish driver card for digital tachograph
    /

    Beispielausgabe für eine Gesundheitskarte:

    Possibly identified card (using /usr/share/pcsc/smartcard_list.txt):
    3B D1 96 ?? 81 B1 FE ?? 1F 07 ?? 81 05 2D
    	German public health insurance card (Elektronische Gesundheitskarte eGK), 2nd generation (G2) (HealthCare)

Getestete Kartenleser

Hier stehen Geräte, deren grundsätzliche Funktion unter Ubuntu Bearbeitern des hiesigen Wikis aus persönlichen Erfahrungen bekannt ist. Es wird etliche weitere, hier nicht aufgeführte Geräte geben, die unter Ubuntu funktionieren. Die nachstehende Liste erhebt keinen Anspruch auf Vollständigkeit und mit der Nennung eines Gerätes ist keinerlei Empfehlung und keine Garantie verbunden.

▶ Weitere Artikel über Chipkartenhardware

Die Funktion mit einer speziellen Art der Smart Card und die Tauglichkeit zur Zusammenarbeit mit einer speziellen Anwendung muss aber im konkreten Einzelfall geprüft werden.

Ein Pin-Pad wird funktional oft nicht benötigt, sein Gebrauch steigert aber die Sicherheit, da seine Verwendung einige Angriffe von Schadsoftware verhindert (Secoder Sicherheitsstufe 3).

Cherry

  • SmartTerminal ST-1144 🇩🇪: Leser ohne Pin-Pad

  • ST-2100UG 🇩🇪: Leser mit Pin-Pad

  • KC 1000 SC 🇩🇪: Leser in Tastatur mit Pin-Pad

  • KC 1000 SC-Z: Leser in Tastatur mit Pin-Pad (zertifiziert, nicht mehr lieferbar)

REINER SCT

▶ Installation der Treiber

ACS

  • Unter dem Namen "ACS ACR39U ICC Reader" (oder ähnlichen Namen) werden verschiedene sehr billige Lesegeräte angeboten (Stand 2023-09), die alle auf dem ACR39U-Chip beruhen.

▶ Ggf. Installation der Treiber für manche Geräte von ACS

Anwendungen

Cardpeek

Das ist eine Anwendung mit graphischer Oberfläche zum Auslesen von Smart Cards, nützlich beispielsweise zum Testen. Sie kann aus den offiziellen Paketquellen von Ubuntu installiert[1] werden:

  • cardpeek ("Werkzeug um den Inhalt von ISO7816 Smartcards auszulesen, aus universe")

Befehl zum Installieren der Pakete:

sudo apt-get install cardpeek 

Artikel im UU-Wiki

Es gibt zahlreiche Anwendungen, die optional mit einem Kartenleser für Smart Cards benutzt werden können oder für die dies sogar Voraussetzung zur Funktion ist. Einige davon werden im hiesigen Wiki beschrieben, siehe folgende Liste.

Damit der Kartenleser und Anwendung zusammen arbeiten, muss ggf. noch eine Einrichtung in der Anwendung erfolgen. Die Vorgehensweise dazu ist dem Handbuch des Programms zu entnehmen.

Seiten mit Tag „Chipkartenanwendung“

Seiten mit Tag „Chipkartenhardware“

Diese Revision wurde am 4. März 2026 01:35 von Ruth-Wies erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Sicherheit, Hardware, Chipkartenhardware