Die Veröffentlichung eines iPhones ohne Fingerabdrucksensor hat einige Diskussionen darüber ausgelöst, wie Fingerabdrücke zur Authentifizierung verwendet werden und wie sicher die Daten gespeichert werden. Das ist großartig. Auch wenn Sie sich keine Sorgen darüber machen, wie es gemacht wird, brauchen Sie eine Menge anderer Leute, um sich Sorgen zu machen, so dass Sie sich keine Sorgen machen müssen!
Für den Anfang verwendet Apple eine ähnliche Lösung und wenn Sie ein älteres Modell mit einem Fingerabdrucksensor haben, können Sie es genauso sicher verwenden wie zuvor. Gleiches gilt für ältere Samsung-Handys, die vor Marshmallow auf den Markt kamen und die Samsung-eigenen Methoden verwendeten.
Die Art und Weise, wie Google Ihre Fingerabdruckdaten speichert, ist mit der aktuellen Technologie die sicherste. Es ist auch faszinierend, wie einfach der Überblick über das Ganze ist, wenn man es sich anschaut. Einfach und sicher ist immer eine Gewinnkombination.
Die Lagerung ist naturgemäß nicht sehr sicher. Es ist dasselbe, als würde man etwas auf einen Post-It-Zettel schreiben und in einen Aktenschrank legen. Es ist da, weil es da sein muss, und das Beste, was Sie tun können, ist zu kontrollieren, wer Zugriff darauf hat. Für ein Archiv verwenden Sie ein Schloss und für Ihr Telefon verwenden Sie die Verschlüsselung. Bei Ihren Fingerabdruckdaten geht es noch einen Schritt weiter: eine vertrauenswürdige Ausführungsumgebung (Trusted Execution Environment, TEE).
Ein TEE ist ein separater und isolierter Bereich in der Hardware des Telefons. Ein TEE kann seinen eigenen Prozessor und Speicher verwenden oder eine virtualisierte Instanz auf der Haupt-CPU verwenden. In beiden Fällen ist das TEE vollständig isoliert und isoliert, indem ein hardwaregesicherter Speicher und ein Ein- / Ausgabeschutz verwendet werden. Der einzige Weg, wie Sie einsteigen, ist, wenn das TEE Sie einlässt, und das wird es nie. Selbst wenn das Telefon gerootet oder der Bootloader entsperrt ist, ist das TEE separat und immer noch intakt.
Ein separater Prozessor mit eigenem Speicher und Betriebssystem dient zur Analyse und Speicherung Ihrer Fingerabdruckdaten.
Google verwendet das, was sie Trusty TEE nennen, um dies zu unterstützen. Auf der TEE-Hardware läuft ein sehr kleines und effizientes Betriebssystem mit dem passenden Namen Trusty OS, und die Kerneltreiber ermöglichen die Kommunikation mit dem System. Es gibt Android-Bibliotheken (Sie haben es erraten: die Trusty-API), die Entwickler verwenden können, damit sie dem TEE eine Ja- oder Nein-Frage stellen können. Im TEE werden nicht nur Fingerabdruckdaten gespeichert. Dinge wie DRM-Schlüssel und Bootloader-Verschlüsselungsschlüssel des Herstellers befinden sich ebenfalls im TEE und funktionieren genauso wie Ihre Fingerabdruckdaten. Beantworten Sie, ob die von einer Anwendung bereitgestellten Daten mit den von ihr gespeicherten Daten übereinstimmen.
Andere Hersteller können Trusty OS oder ein anderes System verwenden. Solange alle Kriterien erfüllt sind (siehe unten) und das TEE isoliert und isoliert ist, entspricht es den Sicherheitsstandards, die für die Verwendung von Pixel Imprint (ehemals Nexus Imprint) erforderlich sind.
ARM TrustZone TEE-Blockdiagramm.Wenn Sie einen Fingerabdruck auf Ihrem Android-Telefon registrieren, erfasst der Sensor die Daten aus dem Scan. Trusty OS analysiert diese Daten im TEE und erstellt dann zwei Dinge: einen Satz Validierungsdaten und eine verschlüsselte Fingerabdruckvorlage. Dies scheinen Junk-Daten für alles außer dem TEE zu sein, der auch den Schlüssel zum Entschlüsseln dieser Junk-Daten hat. Diese verschlüsselte Fingerabdruckvorlage wird in einem verschlüsselten Container entweder auf dem TEE oder im verschlüsselten Speicher Ihres Telefons gespeichert. Drei Verschlüsselungsebenen bedeuten, dass es fast unmöglich ist, Daten abzurufen, und selbst wenn Sie es könnten, wäre es nutzlos, wenn Sie es nicht entschlüsseln könnten.
Android erfordert, dass Ihre Fingerabdruckdaten mit einem eindeutigen Schlüssel gesichert sind, und Sie können sie nicht auf ein anderes Telefon übertragen oder für einen anderen Benutzer wiederverwenden.
Die Validierungsdaten werden im TEE gespeichert. Wenn Sie Ihren Finger auf den Scanner legen, um etwas zu tun, erstellt der Scanner ein Datenprofil. Über die Trusty-API fordert die zugehörige Anwendung den Kernel auf, das TEE zu fragen, ob es richtig ist. Das TEE vergleicht die gespeicherten Validierungsdaten mithilfe seines separaten Prozessors und Speichers und sagt Ja, wenn genügend Daten übereinstimmen. Wenn nicht genügend übereinstimmende Daten vorhanden sind, wird Nein angezeigt. Diese Pass- oder Fail-Antwort wird als Software-Token an den Kernel zurückgesendet, das die API lesen kann, um das Ergebnis anzuzeigen.
Während das TEE selbst ein eigenständiges Betriebssystem und Hardware verwendet, um die Sicherheit zu gewährleisten, verwendet die Fingerabdruckvorlage eine softwarebasierte Verschlüsselung. Es muss mit einem ganz bestimmten Schlüssel signiert sein, um gültig zu sein. Dieser Schlüssel wird mit gerätespezifischen Informationen, benutzerspezifischen Informationen und zeitspezifischen Informationen erstellt. Mit anderen Worten, wenn Sie einen Benutzer entfernen, Geräte wechseln oder versuchen, einen Fingerabdruck erneut zu registrieren (das System erkennt, ob Sie einen vorhandenen Fingerabdruck überschreiben), wird der Schlüssel nicht mehr erkannt und kann nicht zum Entschlüsseln des Fingerabdrucks verwendet werden Vorlage.
Die Grundregeln, die jedes Unternehmen, das Android-Telefone mit einem Fingerabdrucksensor herstellt, befolgen muss:
- Die Analyse aller Fingerabdruckdaten muss innerhalb des TEE durchgeführt werden
- Alle mit einem Fingerabdruck verknüpften Daten müssen im TEE oder im vertrauenswürdigen Speicher (Speicher, den die Haupt-CPU nicht einmal sehen kann) gespeichert sein.
- Fingerabdruckprofildaten müssen selbstverschlüsselt sein, auch wenn sie in einem verschlüsselten Telefonspeicher gespeichert sind
- Durch das Entfernen eines Benutzerkontos müssen auch alle mit den Fingerabdrücken dieses Benutzers verbundenen Daten sicher gelöscht werden
- Wo Fingerabdruckprofile gespeichert werden, dürfen diese für keine Anwendung, Prozesse oder Benutzer sichtbar sein, einschließlich des Root-Benutzers
- Fingerabdruckdaten jeglicher Art dürfen nicht auf einer anderen Quelle, einschließlich der Cloud, Ihrem Computer oder einer Anwendung, gesichert werden
- Die Authentifizierung per Fingerabdruck muss von dem Prozess verwendet werden, der sie angefordert hat (keine Weitergabe von Fingerabdruckdaten, auch nur die Ja- oder Nein-Antwort, um festzustellen, ob sie korrekt war).
Wenn Sie ein paar klare Standardspezifikationen haben, ist es nicht schwierig, diese zu erfüllen. Auf diese Weise wird sichergestellt, dass Ihre Fingerabdruckdaten unabhängig davon, welches Android-Telefon Sie verwenden, sicher gespeichert werden und kein anderer Systemprozess oder keine andere App darauf zugreifen kann. Mit der Weiterentwicklung der Kryptografie, insbesondere der hardwaregestützten Verschlüsselung, wird diese Methode auch die Sicherheit Ihrer Fingerabdruckdaten gewährleisten. Es wird interessant sein, nach dem Start von Android Z einen Blick zurück zu werfen und zu sehen, wie weit wir gekommen sind.