Smartcards unter Linux Seminar Betriebssystemdienste und Administration Michael Grünewald Hasso-Plattner-Institut 18. Juni 2008 Michael Grünewald (HPI) Smartcards unter Linux 18. Juni 2008 1 / 17
Agenda 1 Grundlagen 2 Praxis 3 Demo 4 Zusammenfassung Michael Grünewald (HPI) Smartcards unter Linux 18. Juni 2008 2 / 17
Chipkarten Grundlagen ISO 7810 Physische Eigenschaften von Identitätskarten (ID-1, ID-2, ID-3, ID-000) Magnet-, Chip- und RFID-Karten ISO 7816 Part 2: Position von Magnetstreifen, Kontakten und Prägungen Part 3: Elektronische Parameter (u.a. ATR) Part 4: Dateiorganisation Part 10: Speicherkarten Part 12: USB Karten Part 15: Signaturkarten Verzeichnis- und Dateistruktur, Signaturen Basis ist PKCS#15 Michael Grünewald (HPI) Smartcards unter Linux 18. Juni 2008 3 / 17
Kartenleser Grundlagen günstig erhältlich, für viele Schnittstellen Seriell, USB, PC Card, ExpressCard,... Sicherheitsklassen 1 keine Sicherheitsmerkmale, nur Kontaktiereinheit 2 zusätzlich Tastatur zur PIN-Eingabe 3 zusätzlich Anzeige und Logik 4 zusätzlich zweiter Kartensteckplatz für Sicherheitsmodul (SAM) viele Anwendungsgebiete Banking Geldkarte Krankenversicherungskarte SIM-Karten für Mobilfunk Authentifizierung am PC und im Netzwerk Michael Grünewald (HPI) Smartcards unter Linux 18. Juni 2008 4 / 17
Grundlagen Treiberarchitektur PAM Modul (pam pkcs11) Anwendungen (Firefox, Thunderbird,...) PKCS#11 Modul (opensc pkcs11) Smartcard Framework (opensc) CT API PC/SC OpenCT Michael Grünewald (HPI) Smartcards unter Linux 18. Juni 2008 5 / 17
Grundlagen pam pkcs11 PAM-Modul für viele Linuxanwendungen benötigt beliebiges PKCS#11-Modul Validierung von Öffentlichem Schlüssel CA (Certificate Authority) CRLs (Certificate Revocation Lists) Zuordnung von Zertifikaten zu Benutzern mittels Mappern optional: Verwendung von mapfiles Michael Grünewald (HPI) Smartcards unter Linux 18. Juni 2008 6 / 17
Grundlagen pam pkcs11: Mapper Common Name Michael Gruenewald Subject /DC=de/DC=uni-potsdam/DC=hpi/OU=INSTITUT/OU=Studenten /OU=Bachelor/OU=2006/CN=Michael Gruenewald /emailaddress=michael.gruenewald@student.hpi.uni-potsdam.de E-Mail-Adresse michael.gruenewald@student.hpi.uni-potsdam.de OpenSSH Schlüssel Schlüsseldatei in ~/.ssh/authorized_keys In Arbeit: LDAP Bestimmtes Attribut im LDAP-Verzeichnis Verwenden der Zertifikatsfelder in LDAP-Abfragen In Arbeit: Kerberos/PKINIT Michael Grünewald (HPI) Smartcards unter Linux 18. Juni 2008 7 / 17
Praxis Praxis Installation von OpenSC Vorbereiten der Karte Einrichten des PAM Andere Programme z.b. Mozilla Firefox Michael Grünewald (HPI) Smartcards unter Linux 18. Juni 2008 8 / 17
Praxis Installation von OpenSC Installation von OpenCT sudo apt-get install openct Zugriff auf Reader für alle Benutzer freigeben sudo chown root:root /var/run/openct sudo chmod 755 /var/run/openct Reader eintragen in OpenCT-Konfiguration sudo nano /etc/openct.conf Installation von OpenSC und des PC/SC Daemon sudo apt-get install opensc pcscd Michael Grünewald (HPI) Smartcards unter Linux 18. Juni 2008 9 / 17
Vorbereiten der Karte Praxis Initialisieren der Karte pkcs15-init -EC -p pkcs15+onepin Karteninhalt festlegen: Erzeugen eines Schlüsselpaares auf der Karte pkcs15-init -G rsa/1024 Privates Zertifikat oder Schlüssel auf Karte ablegen pkcs15-init -S <datei> Öffentliches Zertifikat auf Karte ablegen pkcs15-init -X <datei> Michael Grünewald (HPI) Smartcards unter Linux 18. Juni 2008 10 / 17
Praxis Einrichten des PAM Herunterladen, Kompilieren und Installieren von pam_pkcs11 CA- und CRL-Dateien bzw. -Ordner anlegen z.b. /etc/pam_pkcs11/ca und /etc/pam_pkcs11/crl Mappingdatei anlegen z.b. /etc/pam_pkcs11/subject_mapping Konfiguration /etc/pam_pkcs11/pam_pkcs11.conf editieren Verwendung einrichten z.b. Eintragen in /etc/pam.d/gdm oder /etc/pam.d/login Michael Grünewald (HPI) Smartcards unter Linux 18. Juni 2008 11 / 17
Andere Programme Praxis einige Anwendungen können PKCS#11-Module nutzen native Unterstützung: Netscape/Mozilla (Firefox, Thunderbird, Seamonkey, Sunbird) OpenVPN Client strongswan IPSec Client Unterstützung durch Erweiterungen oder Patches: GnuPG OpenSSH OpenSSL Michael Grünewald (HPI) Smartcards unter Linux 18. Juni 2008 12 / 17
Praxis Andere Programme: Firefox Laden des Moduls über die Programmeinstellungen Optional: Aktivieren der Einzelabfrage Michael Grünewald (HPI) Smartcards unter Linux 18. Juni 2008 13 / 17
Demo Demo Michael Grünewald (HPI) Smartcards unter Linux 18. Juni 2008 14 / 17
Zusammenfassung Fazit aber: sicherere Authentifizierung als per Passwort sichere Hinterlegung von privaten Schlüsseln erhöhte Sicherheit durch Überprüfung von CA und CRLs Verwendung für HTTP-Authentifizierung und E-Mail-Signaturen/-Verschlüsselung PAM-Modul nicht zu allen Anwendungen kompatibel keine Untersützung für Kerberos/PKINIT Michael Grünewald (HPI) Smartcards unter Linux 18. Juni 2008 15 / 17
Zusammenfassung Referenzen Compiling and Installing OpenSC http://www.opensc-project.org/opensc/wiki/compilinginstalling Quick Start with OpenSC http://www.opensc-project.org/opensc/wiki/quickstart OpenSC Security Configuration http://www.opensc-project.org/opensc/wiki/securesetup PAM-PKCS11 User Manual http://www.opensc-project.org/doc/pam_pkcs11/pam_pkcs11.html HU Berlin: Smartcard Based Authentication http://sarwiki.informatik.hu-berlin.de/smartcard_based_authentication Michael Grünewald (HPI) Smartcards unter Linux 18. Juni 2008 16 / 17
Impressum Zusammenfassung Michael Grünewald michael.gruenewald@student.hpi.uni-potsdam.de Dieses Werk ist unter einem Creative Commons Namensnennung-Keine kommerzielle Nutzung-Keine Bearbeitung 2.0 Deutschland Lizenzvertrag lizenziert. Um die Lizenz anzusehen, gehen Sie bitte zu http://creativecommons.org/licenses/by-nc-nd/2.0/de/ oder schicken Sie einen Brief an Creative Commons, 171 Second Street, Suite 300, San Francisco, California 94105, USA. Michael Grünewald (HPI) Smartcards unter Linux 18. Juni 2008 17 / 17