[[Vorlage(getestet, jammy, noble, ) ]] {{{#!vorlage Wissen [:Pakete installieren: Installation von Programmen] [:Terminal: Ein Terminal öffnen] [:Paketinstallation_DEB: Ein einzelnes Paket installieren] }}} [[Bild( Smart_Card, 64, left ) ]] [[Inhaltsverzeichnis()]] Dieser Artikel beschreibt die Verwendung von [wikipedia:Chipkarte: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 [https://www.yubico.com/products/ Yubikey] {en} für OpenPGP und das [wikipedia:FIPS 201: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: * von Universitäten als universelle Studentenausweise: Ein Beispiel ist die Thoska+ in Thüringen, mit der man sich u.a. von zu Hause aus für Prüfungen anmelden oder Immatrikulationsbescheinigungen herunterladen kann. * als LKW-Fahrerkarten * zur Identifizierung bei Bankgeschäften * zum Nachweis der Mitgliedschaft in Krankenkassen, Vereinen und anderen Organisationen oder Berufsständen (z.B. Arztausweis) * zur sicheren Aufbewahrung kryptografischer Schlüssel zum Signieren oder Verschlüsseln elektronischer Dokumente * zur Zutrittskontrolle (Werksausweis) bei Unternehmen und staatlichen Stellen * als [:Elektronischer Personalausweis:Personalausweis] Für diese verschiedenen Einsatzgebiete ist ein für die jeweilige Smart Card geeigneter Kartenleser (Smart Card Reader) erforderlich, ebenso eine [#Anwendungen Anwendung] für die Darstellung der Daten. [[Bild( Kartenleser, 250, align=right ) ]] = Kartenleser = Die Geräte benötigen Treibersoftware. Generell benötigt man immer die Basissoftware aus den Paketen [packages:libccid:] 🇬🇧 , [packages:pcscd:] {en} 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: {{{#!vorlage Paketinstallation pcscd, Middleware für den Zugriff auf Chipkarten mit PC/SC (Daemon-Software), aus universe }}} 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 [debian:Smartcards#Supported_Hardware:Wiki von Debian] {en} einsehen. [[Anker( cyberJack ) ]] Für einen Kartenleser der Reihe cyberJack von REINER SCT muss installiert werden: {{{#!vorlage Paketinstallation libifd-cyberjack6, REINER SCT cyberJack USB chipcard reader user space driver, aus universe }}} 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. [[Anker( ACS ) ]] Manche Geräte des Herstellers ACS benötigen: {{{#!vorlage Paketinstallation libacsccid1, PC/SC driver for ACS USB CCID smart card readers, aus universe }}} Die Basissoftware ist separat zu installieren. Manche Karten bzw. Anwendungen benötigen: {{{#!vorlage Paketinstallation libchipcard6, universe; bis [:23.10:] libchipcard6t64, mit libchipcard-data, Bibliothek für den Zugriff auf smartcards, aus universe; ab [:24.04:] }}} Für Tests kann hilfreich sein: {{{#!vorlage Paketinstallation pcsc-tools, Programme für die Arbeit mit Chipkarten und PC/SC, aus universe }}} Bei der Fehlerdiagnose können helfen: {{{#!vorlage Paketinstallation 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" }}} Schließlich können auch noch bestimmte Anwendungen weitere Pakete erfordern, z.B. {{{#!vorlage Paketinstallation aqbanking-tools, "Einfache Befehlszeilenwerkzeuge für Homebanking, aus universe" }}} == Tests == 1. Um zu Testen, ob ein per USB angeschlossener Kartenleser überhaupt als Gerät erkannt wird, kann folgender Befehl[2] verwendet werden: [[Vorlage( Befehl, "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 }}} 1. Eine Auflistung der vom System erkannten Kartenleser erhält man von [#Cardpeek Cardpeek]: [[Vorlage(Befehl, "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 }}} 1. Um zu testen, ob eine eingesteckte Smart Card überhaupt erkannt wird, kann folgender Befehl verwendet werden: [[Vorlage( Befehl, "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. :arrow: Weitere Artikel über [#Links 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 ([#Links Secoder] Sicherheitsstufe 3). === Cherry === * [https://www.cherry.de/en-gb/product/smartterminal-st-1144 SmartTerminal ST-1144] {de}: Leser ohne Pin-Pad * [https://www.cherry.de/de-de/produkt/smart-terminal-st-2100 ST-2100UG] {de}: Leser mit Pin-Pad * [https://www.cherry.de/de-de/produkt/kc-1000-sc KC 1000 SC] {de}: Leser in Tastatur mit Pin-Pad * KC 1000 SC-Z: Leser in Tastatur mit Pin-Pad (zertifiziert, nicht mehr lieferbar) === REINER SCT === * [https://www.reiner-sct.com/produkt/cyberjack-rfid-komfort/ cyberJack RFID komfort (USB)] {de} vor 2026: [[BR]] Das Gerät ist nicht mehr lieferbar. Der Hersteller kündigt für das 2. Quartal 2026 einen Nachfolger an, über den noch keine Erfahrungen vorliegen. * [https://www.reiner-sct.com/produkt/cyberjack-rfid-standard/ cyberJack RFID standard (USB)] {de} * [https://www.reiner-sct.com/produkt/cyberjack-one/ cyberJack one [USB]] {de}: [[BR]] Erst den Leser verbinden, hat er grün geblinkt dann die Smart Card einstecken. :arrow: [#cyberJack 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. :arrow: Ggf. [#ACS 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: {{{#!vorlage Paketinstallation cardpeek, "Werkzeug um den Inhalt von ISO7816 Smartcards auszulesen, aus universe" }}} == 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. ## Hinweis für den Bearbeiter: ## Die Liste der Chipkartenanwendungen wird automatisch erzeugt, hier sind keine Anpassungen erforderlich. ## Dem jeweiligen Artikel muss der Tag „Chipkartenanwendung“ hinzugefügt werden, was mit dem Wiki-Team abgestimmt werden sollte. ## Der neue Eintrag erscheint nach Aktualisierung sämtlicher Caches, was einige Zeit dauern kann. [[TagListe( Chipkartenanwendung ) ]] = Links = * [wikipedia:Chipkarte:] * [debian:Smartcards:Seite Smartcards] {en} im Wiki von Debian: Hintergrundinformationen, Treiberliste * [http://pannetrat.com/Cardpeek Projektseite von Cardpeek] {en} – u.a. Dokumentation und Quelltext (unter "Install") * [https://pcsclite.apdu.fr/ Projektseite PCSC lite] {en} -- Kernkomponente zur Unterstützung von Smart Cards unter Linux: Hintergrundinformationen, Dokumentation, Quelltext * [https://pcsc-tools.apdu.fr/ Projektseite pcsc-tools] {en} * [https://www.heise.de/news/Neue-Sicherheitsspezifikation-fuer-Chipkartenleser-186008.html Neue Sicherheitsspezifikation für Chipkartenleser] {de} -- Spezifikation Secoder der deutschen Kreditwirtschaft zur Sicherheit von Chipkartenlesern, bei heise online aus 2008 ## * [:Archiv/AqBanking:] ## Weitere manuelle Links vor dieser Zeile eintragen! ## Die nächste Zeile generiert eine automatische Linkliste und soll an letzter Stelle stehen. [[TagListe( Chipkartenhardware ) ]] #tag: Hardware, Sicherheit, Chipkartenhardware