Fingerprint Matching On Card
Zielsetzung Implementierung eines Fingerprint Matching Verfahrens mit Hilfe einer Java Card
Überblick Allgemeines über Smart Cards Authentifikation und Biometrie Matching Verfahren Implementierung Vorführung
Smart Card Speicherkarten Mikroprozessorkarten 8-Bit Mikrocontroller 3.57 MHz 96kB ROM, 32kB EEPROM, 2300 Byte RAM Kryptocoprozessor
Java Card Kann Java Byte Code ausführen Keine großen Datentypen (2Byte Short ist der größte) Keine Gleitkommazahlen Keine Threads
Multiapplikations-Karte Applets können nachträglich auf die Karte geladen werden Mit Java kein direkter Zugriff auf die Hardware möglich Anwendungen können sich gegenseitig nicht manipulieren Eine Karte für mehrere Anwendungen
Vorteil gegenüber Magnetkarte Beispiel: PIN Code Überprüfung PIN ist auf Karte gespeichert, kann nicht ausgelesen werden PIN wird an Karte geschickt Vergleich wird auf Karte ausgeführt PIN verlässt niemals die Karte Matching On Card
Authentifikation man hat etwas (Schlüssel, Karte) man weiß etwas (Passwort, PIN) man kann etwas (Unterschrift) man ist etwas ( Biometrisches Merkmal) biometrische Verfahren identifizieren die Person Kombination mehrerer Verfahren sinnvoll
Fingerprint Relevanten Merkmale: Minuzien End- und Knotenpunkte von Fingerlinien x/y Koordinate und Steigungswinkel Minuzien werden in einem Template zusammen gefasst
Matching Vergleich zweier Templates: Kandidat und Referenz Grad der Übereinstimmung wird durch einen Score ausgedrückt Fingerabdrücke können sich in Lage und Drehung unterscheiden drehen und verschieben um maximale Übereinstimmung zu ermitteln (affine Transformationen)
Ursprüngliche Idee Matching Algorithmus komplett auf der Karte implementieren (=Matching On Card) Fingerabdruck verlässt so niemals die Karte (Datenschutz und Datensicherheit) Karte erwies sich als zu langsam Ergebnis: Matching dauerte 5 Minuten Grund: das häufige Transformieren
Neues Verfahren Dem Referenz-Template werden zufällige Minuzien hinzugefügt Dadurch kann nicht auf original Template geschlossen werden Welche Minuzien echt und welche falsch sind, wird in einer Bitfolge kodiert Die Bitfolge ist auf der Karte gespeichert und kann nicht ausgelesen werden Auf der Karte müssen nur zwei Bitfolgen verglichen werden
Ablauf PC liest Template von Karte Verschiebungen und Drehungen werden auf PC ausgeführt um optimale Lage zu ermitteln (diesmal nicht auf der Karte) Auf PC wird Bitfolge ermittelt (siehe Beispiel) Bitfolge wird an Karte geschickt Matching wird auf der Karte durchgeführt (dauert 50 ms) Ergebnis wird zurück an PC geschickt Gesamter Vorgang dauert 800 ms
Beispiel Referenz Kandidat x o o o o x o 01100 01101 o=echt x=falsch
Vergleich Bitfolgen 01101 01100 Beide müssen 1 sein 2 Partner
Ergebnis Ergebnis-Werte gleich wie beim Ausgangsalgorithmus Ausgangsalgorithmus ungenau Verfahren läuft auch auf Karten mit geringer Leistungsfähigkeit (z.B. RFID-Chips ) Sogar allein mit logischen Gattern realisierbar (günstig)