Elektronischer Personalausweis
Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:
Ubuntu 22.04 Jammy Jellyfish
Ubuntu 20.04 Focal Fossa
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:
Hinweis:
Unten beschriebener Workflow bezieht sich nicht zwingend auf die AusweisApp2.
Der elektronische Personalausweis (umgangspr. auch ePerso) stellt mit seinen Digital-Funktionen die Möglichkeit bereit, sich mit der eID Funktion des Personalausweises im Internet amtlich zu identifizieren und zu authentifizieren. Diese Funktion ist nicht auf Behörden beschränkt (Ämter, Polizei etc.) sondern soll explizit auch bei Geschäften, Banken und Versicherungen eingesetzt werden. Somit kann der Personalausweis auch im Internet zur Feststellung der Identität z.B. für Onlineshopping, Kontoeröffnungen und Versicherungsangelegenheiten etc. genutzt werden, analog zum normalen Leben, in dem für viele Vorgänge ein Antragssteller jedoch persönlich anwesend sein muss, um seinen Personalausweis vorzuzeigen.
Diese Funktion zur Personen-Identifizierung per eID müssen jedoch die Firmen und Ämter auch unterstützen und sich bei der Bundesdruckerei, die die Personalausweise ausgibt, registrieren lassen. Alle Dienste, über die eine Identifikation per eID möglich ist, führen daher das oben gezeigte Logo auf der Webseite. Eine Liste dieser Firmen und Dienste ist auch zu finden unter eID-Dienste 🇩🇪.
Technischer Hintergrund¶
Im Prinzip ist der Prozess der Authentifizierung bei der eID-Funktion ähnlich der eines Authentizitäts-Token-Providers, in der sich der Anwender (Ausweisinhaber) bei einem ID-Provider (eID-Server) anmeldet, um sich bei einem Service (Bürgerdienst, Versicherung o.ä.) zu authentifizieren. Die eID-Funktion des Personalausweises geht jedoch weit über die eines normalen Zertifikats hinaus. Im Gegensatz zur Zertifikatskarte kann ein elektronischer Personalausweis nicht einfach "im Vorbeigehen" ausgelesen werden, weil sich auch der eID-Server gegenüber der Behörde und diese gegenüber dem Anwender zertifizieren muss (Details 🇩🇪). Außerdem wird vor dem eigentlichen Datenaustausch eine explizite Authentifizierung des Ausweisinhabers (Eingabe der PIN) verlangt - somit ist dies eine sog. 2-Faktor-Authentifizierung mit Personalausweis (1. Faktor) und PIN Eingabe (2. Faktor) - siehe auch Sicherheit 🇩🇪.
AusweisApp2¶
Als offizielle Software, mit der die eID-Funktion des elektronischen Personalausweises genutzt werden kann, wird auf die AusweisApp2 🇩🇪 verwiesen. Die zweite Version der Ausweisapp benötigt keinen externen Kartenleser, und kann mit einem Smartphone mit NFC Funktion zum Auslesen der Personalausweises gekoppelt werden. Für die Installation in Ubuntu 22.04:
ausweisapp2 (universe)
Befehl zum Installieren der Pakete:
sudo apt-get install ausweisapp2
Oder mit apturl installieren, Link: apt://ausweisapp2
Seit Ubuntu 20.04 gibt es ein Paket in den offiziellen Paketquellen (Version 1.20.0-1), das jedoch mit zusätzlichen Paketen installiert werden muss. (siehe auch Bug auf Launchpad 🇬🇧):
ausweisapp2 (universe)
qml-module-qtgraphicaleffects (universe)
qml-module-qtqml-models2
qml-module-qtquick-controls2 (universe)
qml-module-qtquick-layouts (universe)
Befehl zum Installieren der Pakete:
sudo apt-get install ausweisapp2 qml-module-qtgraphicaleffects qml-module-qtqml-models2 qml-module-qtquick-controls2 qml-module-qtquick-layouts
Oder mit apturl installieren, Link: apt://ausweisapp2,qml-module-qtgraphicaleffects,qml-module-qtqml-models2,qml-module-qtquick-controls2,qml-module-qtquick-layouts
Leider funktioniert die Kopplung eines Smartphones mit der App-Version 1.22.4-1, die mit den offiziellen Paketquellen von Ubuntu 22.04 Jammy Jellyfish zur Verfügung gestellt wird, nicht. Für eine Kopplung ist mindestens die Version 1.26.5 nötig. Siehe auch: https://www.ausweisapp.bund.de/faq#c294. Diese App-Version lässt sich aber aufgrund unerfüllter Abhängigkeiten nicht installieren.
Für Ubuntu-Versionen 20.04 und früher stehen zur Verfügung:
inoffizielle Pakete für Linux: AusweisApp2 als Snap 🇩🇪,
inoffizielle Pakete für Linux: AusweisApp2 als Flatpak
das folgende PPA mit der darin enthaltenen Version 1.22.6-1:
Adresszeile zum Hinzufügen des PPAs:
ppa:misery/ppa
Hinweis!
Zusätzliche Fremdquellen können das System gefährden.
Ein PPA unterstützt nicht zwangsläufig alle Ubuntu-Versionen. Weitere Informationen sind der PPA-Beschreibung des Eigentümers/Teams misery zu entnehmen.
Der Source-Code der AusweisApp2 ist ebenfalls verfügbar 🇩🇪,
Firewall-Einstellungen¶
Wenn ein Smartphone als Kartenleser genutzt werden soll, muss unter Umständen in der lokalen Firewall der dafür notwendige Port noch freigegeben werden (s. hier.) Dafür in einem Terminal den folgenden Befehl eingeben:
sudo firewall-cmd --add-port=24727/udp --permanent
Open eCard¶
Hier wird gezeigt, wie der elektronische Personalausweis mit einem Kartenleser und der Software Open eCard 🇩🇪 unter Ubuntu genutzt werden kann. Java ist erforderlich, die Installation wird im Artikel Java/Installation beschrieben. Die Verwendung wurde mit OpenJDK 11 erfolgreich getestet. Hinweise zur Installation sind dem Artikel Java/Installation/OpenJDK zu entnehmen.
Folgende Pakete müssen installiert werden.
libusb-dev (universe)
libifd-cyberjack6 (universe)
libccid (universe)
libpcsclite-dev (universe)
pcsc-tools (universe)
Befehl zum Installieren der Pakete:
sudo apt-get install libusb-dev libifd-cyberjack6 libccid libpcsclite-dev pcsc-tools
Oder mit apturl installieren, Link: apt://libusb-dev,libifd-cyberjack6,libccid,libpcsclite-dev,pcsc-tools
Hinweis:
Nach der Installation aller Pakete ist ein Neustart erforderlich, damit alle Treiber geladen werden!
Zusatzprogramme installieren¶
Von Open eCard 🇩🇪 werden DEB-Pakete ⮷ angeboten. Die unterstützten Ubuntu-Versionen und Architekturen werden aufgelistet. Nachdem man sie für die korrekte Ubuntu-Version und Architektur geladen hat, müssen die DEB-Pakete noch installiert werden.
Hinweis!
Fremdpakete können das System gefährden.
Kartenleser testen¶
Nach erfolgter Installation können Kartenleser getestet werden, dazu folgenden Befehl im Terminal ausführen.
pcsc_scan
Wird ein Kartenleser gefunden, ist im Terminal folgendes zu sehen:
marko@marko-LIFEBOOK-AH531:~$ pcsc_scan Using reader plug'n play mechanism Scanning present readers... 0: REINER SCT cyberJack RFID komfort (9394279424) 00 00 Tue Dec 18 11:20:21 2018 Reader 0: REINER SCT cyberJack RFID komfort (9394279424) 00 00 Card state: Card removed, /
Getestete Kartenleser¶
Da der Kartenleser sich gegenüber dem eID-Server authentifizieren muss, kann nicht jeder Kartenleser zum Auslesen des ePersos verwendet werden. Zertifizierte ePerso-Kartenleser tragen auch das Logo des elektronischen Personalausweises (s.o.).
Die folgenden Geräte wurden erfolgreich getestet.
Reiner SCT
SCM Microsystems, Inc. SCL011 RFID reader
Reiner SCT¶
Für die Nutzung der Reiner-SCT Leser, auf der Treiberseite 🇩🇪 schauen ob aktuellere Treiber vorhanden sind.
Aktuell ist es der libifd-cyberjack6_3.99.5final.sp16_amd64_u2204.deb für Ubuntu 18.04 / 18.10 / 19.04 / 19.10 / 20.04./ 22.04 Hinweis: 1804 ggf. durch die Versionsnummer des eigenen System austauschen.
Sofern bei dem eigenen Produkt nur veraltete Treiber zu finden sind (z.B. cyberJack RFID basis), sind ggf. unter aktuellen, ähnlichen Produkten (z.B. cyberJack RFID komfort) entsprechende Treiber zu finden und evtl. erfolgreich getestet.
Experten-Info:
Der Treiber aus den Quellen libifd-cyberjack6_3.99.5final.sp09_amd64_u1804.deb bietet keine Funktion!
Hinweis:
Nach der Installation des Treibers ist ein Neustart erforderlich, damit der Treiber geladen wird!
ReinerSCT cyberJack RFID basis Hersteller 🇩🇪 (siehe hierzu Sicherheitsbedenken)
ReinerSCT cyberJack RFID komfort / mit Pin-Pad und Anzeige Hersteller 🇩🇪
ReinerSCT cyberJack RFID standard / mit Pin-Pad und Anzeige Hersteller 🇩🇪
SCM Microsystems, Inc. SCL011 RFID reader¶
Für den SCM Microsystems, Inc. SCL011 RFID reader ist ein Treiber auf https://support.identiv.com/scl010-scl011/ 🇬🇧 verfügbar. Nach der Installation dieses Treibers muss die Datei /usr/lib/pcsc/drivers/SCLGENERIC.bundle/Contents/Info.plist angepasst werden. Dazu den Kartenleser am Rechner anschließen und im Terminal folgenden Befehl ausführen:
lsusb
Es werden die angeschlossenen USB-Geräte angezeigt, darunter der Eintrag des SCM Microsystems, Inc. SCL011 RFID reader:
Bus 001 Device 004: ID 04e6:5292 SCM Microsystems, Inc. SCL011 RFID reader
Der Teil hinter ID ist die VendorId:ProductId, gefolgt vom Namen. Diese in die Datei /usr/lib/pcsc/drivers/SCLGENERIC.bundle/Contents/Info.plist mit Rootrechten eintragen. Der jeweils letzte String wurde ergänzt:
<key>ifdVendorID</key> <array> <string>0x04E6</string> <string>0x04E6</string> <string>0x04E6</string> <string>0x04E6</string> <string>0x04e6</string> </array> <key>ifdProductID</key> <array> <string>0x5591</string> <string>0x5291</string> <string>0x5290</string> <string>0x5293</string> <string>0x5292</string> </array> <key>ifdFriendlyName</key> <array> <string>SCL3711 Reader and NFC Device</string> <string>SCL010 Contactless Reader</string> <string>SCR331CL-NTTCom</string> <string>SCL011G Contactless Reader</string> <string>SCM Microsystems, Inc. SCL011 RFID reader</string> </array>
Das Vorgehen ist auch im Forum beschrieben: https://forum.ubuntuusers.de/topic/problem-mit-treiber-kartenleser-scl/ Danach den PCSC-Daemon neustarten:
sudo systemctl restart pcscd.service
Sollte ein fehlender Treiber von der AusweisApp2 bemängelt werden, funktioniert es nach einem Klick auf "Weiter" trotzdem.
¶
Smartphones, nfc-fähig¶
Außerdem können für die Authentifizierungs-Funktion auf mobilen Geräten auch NFC-fähige Smartphones eingesetzt werden:
unabhängig vom Computer oder
als Kartenleser für eine Sitzung, die im (Linux-)Computer läuft.
Leider funktioniert die Kopplung eines Smartphones mit der App-Version 1.22.4-1, die mit den offiziellen Paketquellen von Ubuntu 22.04 Jammy Jellyfish zur Verfügung gestellt wird, nicht. Für eine Kopplung ist mindestens die Version 1.26.5 nötig. Siehe auch: https://www.ausweisapp.bund.de/faq#c294. Diese App-Version lässt sich aber aufgrund unerfüllter Abhängigkeiten nicht installieren.
Programm starten¶
Nach der Installation ist die Anwendung unter "Anwendungen anzeigen" zu finden. In der Zeile "Suchbegriff eingeben" wird "Open eCard" (oder "AusweisApp2") eingegeben. Im Menü ist Open eCard normalerweise unter "System" eingetragen.
Hinweis: Wenn kein Kartenleser gefunden wird, ist ggf. der Smartcard Daemon zu starten. Der nachfolgende Befehl startet dem Daemon. Die Ausgabe wird hier direkt im Terminal angezeigt mit CTRL-C wird das Programm wieder beendet.
sudo pcscd -f
Transport-PIN ändern¶
Hinweis:
Ist der elektronische Personalausweis eingetroffen, muss vor der ersten Benutzung die Transport-PIN geändert werden.
Vor dem ersten Einsatz des elektronischen Personalausweises muss die Transport-PIN durch eine selbstgewählte PIN ersetzt werden. Wer dies noch nicht getan hat, kann dies in der freien Anwendung Open eCard nach dem Öffnen unter „Konfiguration“ → "PIN-Verwaltung" → "PIN-Verwaltung-öffnen" tun.
PIN verloren¶
Wer die PIN für den Ausweis vergessen und bereits drei Mal vergeblich eingegeben hat, kann sich noch mit der PUK (PIN Brief) behelfen. Ist dieser Brief auch nicht mehr zur Hand, muss der Anwender persönlich zum Einwohnermeldeamt / Bürgeramt und eine neue PIN beantragen (und dort selbst eingeben) gegen eine Gebühr von üblicherweise 6 €. Für diese neue PIN gibt es dann auch keine PUK zum zurücksetzen, falls diese wieder verloren geht.
Achtung!
Achtung: Diese neue PIN-Nummer für den e-perso unbedingt gut und sicher aufbewahren!
Bedienung / Beispiel¶
Hier wird die Bedienung am Beispiel "Beantragen eines Führungszeugnis" aufgezeigt.
Der Anwender steckt den Kartenleser am USB-Port an.
Dann wird die Anwendung Open eCard gestartet.
Danach wird der Personalausweis aufgelegt bzw. eingesteckt. Die Open eCard Anwendung bestätigt diesen Ausweis durch ein Symbolbild.
Der Anwender ruft dann auf der Webseite (bspw. Führungszeugnis beantragen 🇩🇪) den Service auf, um sich zu authentifizieren. In unserem Beispiel links im Menü "Führungszeugnis beantragen" wählen und das Logo des ePersos anklicken, dann erscheint ein Fenster mit den Daten des Dienste-Anbieters zur Kontrolle.
Nach einem Klick auf "Weiter" werden die Daten des ePersos dargestellt, die vom Dienst abgefragt werden sollen.
Ein Klick auf "Weiter" öffnet die Aufforderung zur PIN Eingabe, nachdem das Einlesen am Kartenleser 2 mal mit "Ok" bestätigt wurde. Erst wenn der Anwender von den Daten und der Datenanfrage des Diensteanbieters überzeugt ist, sollte er den nächsten Schritt durch die Eingabe seiner ePerso-PIN bestätigen.
Auf der Webseite des Dienste-Anbieters erscheinen nun die persönlichen Daten des Anwenders, die Authentifizierung und Datenübergabe durch den elektronischen Personalausweis war erfolgreich. Die dargestellten Daten können in den folgenden Schritten vom Dienste-Anbieter verarbeitet werden. Wenn dies nur ein Test war, sollte er hier abgebrochen werden.
Problembehebung¶
Aufgelegter Personlausweis wird vom Lesegerät nicht erkannt.
Hier zunächst mit pcsc_scan
testen, ob andere Giro-, Visa-Karten o.Ä. per NFC erkannt werden.
Falls andere Karten erkannt werden, könnte es evtl. daran liegen, dass diese Funktion beim Personalausweis nicht aktiviert ist. Die zuständige Behörde anfragen.
Falls andere Karten auch nicht erkannt werden, kann es u.U. helfen, das Kartenlesegerät an einem Windows-PC anzuschließen und die zugehörigen Treiber zu installieren: Dort kann man z.B. mit dem Programm von Reiner SCT ggf. die Firmware des Lesegeräts aktualisieren.
Mit Smartphone als Kartenleser konnte ich unter Ubuntu 24.04 nur per Google-Chrome erfolgreich das Führungszeugnis beantragen. Unter Firefox hat es leider nicht funktioniert.
Links¶
offizielle Software und weitere Hintergrund-Informationen: AusweisApp 🇩🇪
AusweisApp2 in Ubuntu 🇩🇪 (nativ)
AusweisApp2 als Backport-PPA 🇩🇪 (nativ)
AusweisApp2 als Snap 🇩🇪 (nativ)
AusweisApp2 als Flatpak 🇩🇪 (nativ)
Sourcen bei Github: https://github.com/Governikus/AusweisApp2
Open eCard 🇩🇪