- Projektbeschreibung
- Anwender
- Wissenschaftlicher Hintergrund
- Projektpartner
OpenPGP-Smartcards mit biometrischem On-Card-Vergleich
Motivation
Ende-zu-Ende-Verschlüsselung stellt sicher, dass nur Sender und Empfänger E-Mail-Nachrichten im Klartext lesen können, und ist somit ein wirksamer Schutz vor dem Ausspähen sensibler Daten. Dennoch werden Verschlüsselungslösungen nur wenig genutzt, da ihre Installation und Anwendung zu kompliziert erscheint. Unser Ziel ist es, durch den Einsatz biometrischer Verfahren zur Benutzerauthentisierung die Benutzerfreundlichkeit von Verschlüsselungsverfahren zu verbessern. OpenPGP ist ein offener Standard für ein kryptographisches System, das Schlüsselpaare aus jeweils einem öffentlichen und einem privaten Schlüssel verwendet. Um die privaten OpenPGP-Schlüssel vor Missbrauch zu schützen und um immer die gleichen Schlüssel benutzen zu können, ohne sie auf mehreren potentiell unsicheren Geräten ablegen zu müssen, können Smartcards oder USB-Token eingesetzt werden. Eine OpenPGP-Karte ist eine Smartcard, die private OpenPGP-Schlüssel speichert und sicher vor Missbrauch schützt und Signier-, Entschlüsselungs- und Client/Server-Authentisierungsfunktionen bereitstellt. Um sicherzustellen, dass die OpenPGP-Karte nur von ihrem berechtigten Eigentümer benutzt wird, ist die Eingabe eines geheimen alphanumerischen Kennworts vorgesehen. Vielen Menschen ist jedoch das Eintippen von Kennwörtern lästig, da die Anzahl der zu erinnernden Kennwörter beständig steigt. Biometrische Benutzerauthentisierung kann Abhilfe schaffen. Für die Benutzerauthentisierung auf OpenPGP-Karten eignet sich insbesondere die Prüfung der Dynamik handgeschriebener Unterschriften, die auf einem berührungsempfindlichen Display (Touchscreen) geleistet werden. Handschriftliche Unterschriften sind als Mittel zur Authentisierung seit langem akzeptiert und sind Ausdruck einer willentlichen Entscheidung des Schreibers.
Angepasste OpenPGP-Android-App
Als geeignete OpenPGP-Implementierung unter Android wurde die Open-Source-App OpenKeychain ausgesucht. Ein Vorteil von OpenKeychain ist die mögliche Nutzung der App durch andere auf dem Smartphone installierte Applikationen. Interessant ist hier vor allem die ebenfalls als Open-Source-Software verfügbare E-Mail-App K9. K9 bietet die Möglichkeit, E-Mails mit Hilfe von OpenKeychain zu verschlüsseln, zu signieren und zu entschlüsseln. Wir haben OpenKeychain so modifiziert, dass neben der Benutzerauthentisierung mit Kennwörtern auch Benutzerauthentisierung mittels handgeschriebener Unterschriften möglich ist. Das bedeutet, dass folgende zusätzliche Funktionen unterstützt werden:
- Auswahl des Authentisierungsverfahrens: Wenn die verwendete OpenPGP-Karte On-Card-Unterschriftsverifikation unterstützt, dann fordert OpenKeychain den Benutzer auf zu unterschreiben. Der Benutzer kann die Unterschriftserfassung abbrechen und stattdessen sein Kennwort eingeben.
- Erfassung von Unterschriften: Dies beinhaltet den Zugriff auf den Touchscreen und die Vorverarbeitung und Formatierung der erfassten Unterschriftsdaten. Für die Übertragung von Unterschriftsdaten (Abtastfolgen der x- und y-Koordinaten) über die Smartcard-Schnittstelle wird das in ISO/IEC 19794-7 standardisierte Kompaktformat verwendet.
- Senden biometrischer Daten an die Karte: Sowohl zum Authentisieren als auch zum Ändern der Referenzdaten müssen Unterschriftsdaten an die OpenPGP-Karte gesendet werden.
OpenPGP-Smartcard mit On-Card-Unterschriftsverifikation
Als Implementierungsplattform für unsere OpenPGP-Karten mit On-Card-Unterschriftsverifikation dienen Dual-Interface- (kontaktbehaftet und kontaktlos) Java-Karten. Es wurde die Version der Spezifikation für OpenPGP-Karten, die auch von OpenKeychain unterstützt wird, umgesetzt. Die wichtigsten Kartenkommandos, die das OpenPGP-Applet bietet, sind COMPUTE DIGITAL SIGNATURE zum Berechnen digitaler Signaturen und DECIPHER zum Entschlüsseln. Die Spezifikation sieht zwei Kennwörter (PW1 und PW3) als Referenzdaten zum Authentisieren vor:
- PW1 muss vor dem Ausführen der Kommandos COMPUTE DIGITAL SIGNATURE und DECIPHER erfolgreich geprüft werden.
- PW3 muss vor dem Ausführen administrativer Kommandos geprüft werden.
Falls eine Erfassung der Unterschrift nicht möglich ist, kann die Karte auch als herkömmliche OpenPGP-Karte mit Kennwortprüfung genutzt werden.
Potentielle Anwender sind Benutzer von Mobilgeräten, die eine benutzerfreundliche Möglichkeit zur sicheren E-Mail-Kommunikation erhalten. Insbesondere ist eine solche Lösung auch für die sichere Kommunikation in KMUs geeignet. Diese können durch OpenPGP eine einfache Lösung für sichere Kommunikation erreichen, die deutlich weniger Infrastruktur als andere Lösungen benötigt.
Der in Java für Java-Karten geschriebene On-Card-Unterschriftsvergleichsalgorithmus wurde optimiert, um die Ausführungsgeschwindigkeit zu erhöhen, und auf leistungsfähige Java-Karten portiert. Die Herausforderung bestand darin, den Unterschriftsvergleich mit den in der Smartcard verfügbaren, beschränkten Ressourcen zu bewerkstelligen. Die zu vergleichenden Daten sind vorverarbeitete Abtastfolgen der x- und y-Koordinaten. Mittels des DTW- (Dynamic Time Warping) Algorithmus wird der Abstand der zu vergleichenden Unterschriften als Maß ihrer Ähnlichkeit ermittelt.
Beim Enrolment wird der Benutzer aufgefordert, fünfmal zu unterschreiben. Die Unterschrift, die den anderen am ähnlichsten ist, wird als Referenz ausgewählt und zur Karte übertragen. Zusätzlich wird ein Maß für den Abstand zwischen den beim Enrolment aufgenommenen Unterschriften in der Karte gespeichert. Dieser Wert wird bei der Unterschriftsverifikation zur Normalisierung der Abstandsmaße genutzt.
Beim Enrolment findet eine Qualitätsprüfung der Unterschriften statt: Das Enrolment wird nicht akzeptiert, wenn die Referenzunterschrift zu kurz ist oder wenn die Unterschriften nicht ähnlich genug sind. Geeignete Werte für die Rückweisung wurden empirisch ermittelt.