Sicherung von IoT-Geräten auf Mikrocontrollerbasis mit Fingerabdruck-Authentifizierung

Von Bill Giovino

Zur Verfügung gestellt von Nordamerikanische Fachredakteure von DigiKey

Entwickler stehen zunehmend unter Druck, dafür zu sorgen, dass ihr Produkt oder System sicher ist, insbesondere, wenn es mit dem Internet der Dinge (IoT) verbunden sein soll. Hackerangriffe, über die viel berichtet wurde, haben gezeigt, wie anfällig Kennwörter sind und wie einfach PIN-Codes kopiert und Ausweise, die auf Nahfeldkommunikation (NFC) basieren, gestohlen werden können. Entwickler müssen die Sicherheit erhöhen, während Kosten und Entwicklungsdauer gedeckelt werden sollen. Die Fingerabdruck-Identifizierung (Fingerabdruck-ID) ist eine Möglichkeit, beide Ziele zu erreichen.

Über Fingerabdrücke gewährleistete Sicherheit war bisher jedoch in der Regel schwer zu implementieren. Die technischen Details in Zusammenhang mit der Neuentwicklung eines Systems zur Abtastung von Fingerabdrücken mit einem Mikrocontroller oder digitalen Signalprozessor (DSP), der Firmware zur Fingerabdruck-Identifizierung enthält, die Datenverarbeitung und -aufbereitung sowie die Hostkommunikation können ziemlich komplex und mit beträchtlichem Lernaufwand verbunden sein.

Praktischerweise gibt es inzwischen gebrauchsfertige Hardware und Software, die einen Großteil der Arbeit eines Systems zur Fingerabdruckerkennung übernehmen kann. Dieser Artikel erläutert die Grundlagen der Fingerabdruckerkennung und stellt den Fingerabdruckleser SEN0188 vor – eine eigenständige Einheit zur Fingerabdruck-Registrierung und -verifzierung von DFRobot, die an jeden Hostcontroller angeschlossen werden kann, der eine UART-Schnittstelle (Universal Asynchronous Receiver/Transmitter-Schnittstelle) hat.

Anschließend zeigt der Artikel, wie der SEN0188 eingesetzt werden kann, um die Sicherheit einer Einrichtung, die ein IoT-Netzwerk verwendet, durch Fingerabdruck-Identifizierung zu erhöhen und sie besser vor Hackerangriffen und physischen Angriffen zu schützen.

Grundlagen der Fingerabdruck-Identifizierung

Fingerabdrücke sind Abdrücke der Papillarleisten, die an den Fingern und Daumen jeder Hand angeordnet sind und das Greifen und Halten von Objekten erleichtern. Fingerabdrücke sind zum Teil auf die DNA zurückzuführen und zum Teil auf einen Zufallsprozess. Jede Person hat einen individuellen Fingerabdruck, und die Wahrscheinlichkeit, dass zwei Personen denselben Fingerabdruck haben, ist extrem niedrig. Selbst die Fingerabdrücke eineiiger Zwillinge sind unterschiedlich. Aus diesem Grund ist die Fingerabdruck-Identifizierung eine ausgezeichnete Methode zur Personenerkennung für Hochsicherheitssysteme.

Fingerabdruck-Identifizierungssysteme bestehen aus zwei Teilen: Registrierung und Verifizierung. Fingerabdruck-Registrierung bezeichnet den Prozess, bei dem ein neuer Fingerabdruck identifiziert und für eine spätere Verwendung gespeichert wird. Der Fingerabdruck wird einmal oder mehrmals von einem speziellen Scanner gescannt und dann digitalisiert. Anschließend wird der digitalisierte Fingerabdruck analysiert, um sicherzustellen, dass es ein gültiger Fingerabdruck ist. Ist der Fingerabdruck gültig, wird er in einem nicht-flüchtigen Speicher, wie zum Beispiel Flash oder EEPROM, zusammen mit personenbezogenen Informationen zur jeweiligen Person gespeichert, zum Beispiel mit einer ID-Nummer, Namen und Ausweisnummer. Ist der Fingerabdruck ungültig, muss der Finger erneut gescannt werden.

Fingerabdruck-Verifizierung ist der Prozess, bei dem ein neuer Fingerabdruck gescannt wird, um ihn mit den digitalisierten Fingerabdrücken im nicht-flüchtigen Speicher zu vergleichen. Das Fingerabdruck-Lesesystem zeigt dann dem Host an, ob der gescannte Fingerabdruck einem gültigen gespeicherten Fingerabdruck entspricht, oder ob die beiden Abdrücke nicht zusammenpassen.

Zugangssicherheit mit IoT

Das IoT vernetzt viele Systeme, die zuvor eigenständig waren. Einige dieser Systeme benötigen eine mittlere Sicherheitsstufe, wie zum Beispiel Schulen und Unternehmen. Ein illegales Eindringen in kritische Systeme wie Wasseraufbereitungsanlagen und Stromnetze kann verheerende Folgen haben, weshalb hier erweiterte Sicherheitsvorkehrungen erforderlich sind. Für solche Systeme sind Entwickler stets auf der Suche nach besseren Möglichkeiten, mit minimalen Kosten Sicherheit zu gewährleisten, da viele IoT-Geräte selbst konstruktionsbedingt kostengünstig sind. In solchen Fällen kann die Fingerabdruck-Identifizierung leicht zusammen mit Sicherheitsausweisen eingesetzt werden.

Der Vorteil von IoT besteht in diesen Netzwerken darin, dass die Ergebnisse eines Fingerabdruck-Scans über das Netzwerk übertragen werden können. Wird ein unbefugter Zutritt erkannt, kann ein akustischer Alarm ausgelöst werden, oder das IoT-Netzwerk kann, in Extremfällen, alle Systeme sperren und noch dazu einen Telefonanruf an entsprechende Behörden veranlassen.

Die Registrierung eines Fingerabdrucks für eine spätere Sicherheits-Identifizierung erfolgt am besten in Anwesenheit eines Technikers oder einer Sicherheitsfachkraft, um zu gewährleisten, dass sie ordnungsgemäß durchgeführt wird. Scanner und Finger müssen sauber sein. Der Techniker muss die Identität der gescannten Person aktiv verifizieren. Nach erfolgreicher Registrierung fügt die Sicherheitsfachkraft weitere Informationen wie den Namen der Person oder eine Mitarbeiternummer hinzu.

Die technischen Details, die bei der Neuentwicklung eines System zur Abtastung von Fingerabdrücken gefordert sind, haben die Implementierung bisher für viele Entwickler, die mit einem knappen Budget arbeiten, lange Zeit verhindert. Heute kann gebrauchsfertige Hardware wie der Fingerabdruckleser SEN0188 von DFRobot – eine eigenständige Einheit zur Fingerabdruck-Registrierung und -verifizierung – einen Großteil der Arbeit eines Systems zur Fingerabdruckerkennung übernehmen (Abbildung 1).

Abbildung 1: Der Fingerabdruckleser SEN0188 von DFRobot enthält sämtliche Hardware und Firmware, die zum Registrieren und Verifizieren von Fingerabdrücken erforderlich ist. Über eine UART-Schnittstelle kommuniziert er mit einem Mikrocontroller. (Bildquelle: DFRobot)

Der SEN0188 kann mit Spannungen von 3,8 bis 7,0 Volt betrieben werden und zieht maximal 130 Milliampere (mA). Er hat einen großen Betriebstemperaturbereich von -20 °C bis +60 °C und toleriert bis zu 80 % relative Luftfeuchtigkeit, sodass er sich für viele Außenanwendungen eignet.

Blickt man auf Abbildung 1, legen die Benutzer ihren Finger links auf den optischen Fingerabdrucksensor. Weniger als eine Sekunde wird benötigt, um ein Abbild eines Fingerabdrucks zur Registrierung oder Verifizierung zu erstellen. Jeder Fingerabdruck wird im internen Flash-Speicher als 512-Byte-Vorlage gespeichert. Der interne Flash-Speicher des SEN0188 kann bis zu 1000 Fingerabdrücke speichern.

Der UART des SEN0188 ist auf der Unterseite des Sensors zugänglich (Abbildung 2).

Abbildung 2: Die UART-Anschlüsse befinden sich auf der Unterseite des Fingerabdrucklesers SEN0188 von DFRobot. (Bildquelle: DFRobot)

Nach dem Einschalten beträgt die Baudrate des SEN0188 57600 Bit pro Sekunde (Bit/s). Sie kann auf einen Wert zwischen 9600 Bit/s und 115.200 Bit/s eingestellt werden. Die UART-Schnittstelle nutzt folgende Signale:

Pin-Nummer Signalbezeichnung Ein-/Ausgang Beschreibung
 1  VTOUCH  -  Keine Verbindung
 2  SOUT  -  Keine Verbindung
 3  VIN  Eingang  Eingangsspannung (3,8 bis 7,0 V)
 4  TD (Tx)
 Ausgang  UART-Datenübertragung Ausgang
 5  RD (Rx)
 Eingang  UART-Datenempfang Eingang
 6  GND    Signalmasse

Tabelle 1: Pinbelegung des SEN0188 mit asynchroner UART-Schnittstelle zur Kommunikation mit einem Host. (Quelle der Tabelle: DFRobot)

Die UART-Schnittstelle kann auch eine Verbindung zur Software von DFRobot auf einem PC oder Laptop herstellen, was bei der Entwicklung eines Fingerabdrucksystems einschließlich Debugging-, Registrierungs-, und Verifizierungssoftware hilfreich sein kann.

Einsatz des SEN0188 von DFRobot in einem Mikrocontrollersystem

In einem eigenständigen Mikrocontrollersystem sollte der SEN0188 mit einer Karte verbunden sein, die sowohl einen Mikrocontroller mit ausreichender Leistung als auch eine optische Statusanzeige für den Fingerabdruck auf dem Sensor hat. Das Discovery-Kit STM32F7308-DK von STMicroelectronics verfügt über alle Merkmale, die für ein eigenständiges Fingerabdruck-Identifizierungssystem erforderlich sind. Es nutzt einen leistungsstarken STM32F730I8K6-Mikrocontroller, der auf einem Arm® Cortex®-M7-Kern basiert. Die Karte ist mit einem 25-MHz-Oszillator für hohe Frequenzen und einem 32,768-kHz-Oszillator für niedrige Frequenzen ausgestattet. Sie wird von 64 KB Programm-Flash-Speicher auf dem Chip, zusätzlichen 64 MB externem Flash-Speicher und 256 KB System-RAM unterstützt.

Zur Unterstützung von Peripheriebausteinen und zur Kommunikation verfügt sie über mehrere serielle Schnittstellen, darunter drei I2C- und fünf SPI-Schnittstellen. Außerdem hat sie vier UART/USARTs für eine problemlose Kommunikation mit dem SEN0188. Wird der Mikrocontroller STM32F730I8K6 mit 3,6 Volt versorgt, ist er mit der TTL-Logikschnittstelle des Fingerabdrucklesers von DFRobot kompatibel.

Die Discovery-Karte wird mit einer Arduino™-kompatiblen Tochterkarte geliefert (Abbildung 3). Während der Entwicklung kann diese Tochterkarte nützlich sein, aber für die Fingerabdruck-Identifizierung wird sie nicht benötigt und kann von der Hauptkarte getrennt werden.

Abbildung 3: Die Discovery-Karte STM32F7308-DK von STMicroelectronics verfügt über alle Merkmale, die für ein eigenständiges Fingerabdruck-Identifizierungssystem benötigt werden. Die links oben angebrachte Karte unterstützt Arduino-Tochterkarten, während der ESP-01-Verbinder rechts unten kompatible ESP8266-Karten unterstützt. (Bildquelle: STMicroelectronics)

Sie verfügt auch über ein 240 x 240 TFT-LCD-Display, auf dem angezeigt werden kann, ob ein Fingerabdruck akzeptiert wird oder nicht.

Zur Verbindung mit einem Wi-Fi-Netzwerk hat das Discovery-Kit STM32F7308-DK eine Buchse zum Aufstecken einer branchenüblichen ESP8266-Wi-Fi-Karte. Das Modul WRL-13678 zum Beispiel ist eine ESP8266-kompatible Karte von SparkFun Electronics (Abbildung 4).

Abbildung 4: Das WRL-13678 von SparkFun Electronics ist eine ESP8266-kompatible Karte mit einer ESP-01-Stiftleiste. Es kann auf die Discovery-Karte von STMicroelectronics aufgesteckt werden, um einen einfachen Wi-Fi-Zugang zu ermöglichen. (Bildquelle: SparkFun Electronics)

Die Karte kann am ESP-01-Verbinder rechts unten auf der in Abbildung 3 gezeigten Discovery-Karte aufgesteckt werden. Das WRL-13678 hat seine eigene Onboard-Antenne und ermöglicht die Verbindung der Discovery-Karte mit einem 2,4-GHz Wi-Fi-Netzwerk.

In einem IoT-Sicherheitssystem mit Wi-Fi-Anbindung kann jeder Zugang und jede Zugangsverweigerung an einen beliebigen IoT-Knoten übermittelt werden. Dies kann dabei helfen, den Zugang zu weiteren Bereichen oder Systemen zu ermöglichen, die strikten Beschränkungen unterliegen. Wird zum Beispiel Zugang zu einem Hochsicherheitsbereich in einer Einrichtung angefragt, aber niemand mit diesem Berechtigungslevel hat sich mit dem Fingerabdruckleser am Eingang angemeldet und wurde von diesem gemeldet, kann das System diesen Versuch als eine potenzielle Sicherheitsverletzung einstufen und entsprechende Maßnahmen ergreifen.

Für Einrichtungen mit einem solchen Sicherheitsniveau ist es nicht ungewöhnlich, auch beim Verlassen der Einrichtung von allen Personen eine Identitätsprüfung zu verlangen. Mit dieser Vorgehensweise wird nicht nur protokolliert, wer die Einrichtung betreten oder verlassen hat, sie dient auch dazu, unbefugte Personen im Gebäude festzuhalten, während Sicherheitskräfte gerufen werden.

Implementierung von Fingerabruck-Sicherheit

Der Sensor SEN0188 kommuniziert mit der Host-Discovery-Karte von STMicroelectronics mit einem einfachen Befehlssatz über die UART-Schnittstelle. Dieser Befehlssatz enthält insgesamt 22 Befehle, unter anderem zum Registrieren, Erkennen und Löschen von Fingerabdrücken, verschiedene Suchbefehle, Lesen und Schreiben direkt in den internen Flash-Speicher, Lesestatus und die Sicherheitseinstellung für den Sensor. Der Sensor kann auch das gespeicherte Bitmap-Bild eines Fingerabdrucks abrufen und zum Host übertragen, damit es auf dem TFT-LCD-Display der Discovery-Karte angezeigt werden kann.

Die Registrierung von Fingerabdrücken kann an der Fingerabdruck-Identifizierungsstation mit einer PIN oder einem Kennwort aktiviert werden. Sicherer ist es jedoch, die Registrierung durch Übertragen eines Befehls an den IoT-Endpunkt der Discovery-Karte von einem anderen Ort des Netzwerks aus zu aktivieren, zum Beispiel von einer Station des Wachpersonals aus. Alternativ kann ein Mobilgerät wie zum Beispiel ein Handy oder Tablet verwendet werden, um die Registrierung zu autorisieren. Der Erfolg der Registrierung kann ebenfalls auf dem Mobilgerät überprüft werden.

Der optische Sensor des SEN0188 hat eine LED-Hintergrundbeleuchtung, die vom Host aus über die Befehle OpenLED und CloseLED ein- bzw. ausgeschaltet werden kann. In einer Sicherheitsumgebung kann es sinnvoll sein, die Beleuchtung des Fingerabdrucksensors nur einzuschalten, wenn das System bereit ist, einen Fingerabdruck abzunehmen. Während eines Sicherheitsereignisses kann die Hintergrundbeleuchtung ausgeschaltet werden, um anzuzeigen, dass zu diesem Zeitpunkt kein Zugang möglich ist, auch nicht von befugtem Personal.

Der Standard UART-Frame des SEN0188 verwendet ein Startbit, 8 Datenbits und ein Stoppbit. Das niederwertigste Bit (LSB) der Daten wird als erstes übertragen. Nach dem Einschalten benötigt der SEN0188 dreihundert Millisekunden (ms), um einen Selbsttest zu initialisieren und durchzuführen. Anschließend überträgt er ein Byte (55h) zum Host, um anzuzeigen, dass er betriebsbereit ist. Der Host kann auch einen GetEcho-Befehl an den Sensor senden, um den Bestätigungscode 55h anzufordern. Empfängt der Host dieses Byte nicht, kann dies auf einen Funktionsfehler der SEN0188 hinweisen, auf eine Unterbrechung der Kommunikation zwischen SEN0188 und Host oder aber darauf, dass der SEN0188 nicht eingeschaltet ist.

Der SEN0188 ist dafür ausgelegt, eine sichere Umgebung für eine Fingerabdruck-Authentifizierung bereitzustellen, und bietet viele Sicherheitsfunktionen, unter anderem Kennwortschutz. Das 4-Byte-Standardkennwort lautet 00000000h und sollte geändert werden, bevor das System vor Ort eingesetzt wird. Das Kennwort wird im internen Flash-Speicher des Sensors mithilfe des Sensorbefehls für die Festlegung eines Kennworts, SetPwd, gespeichert.

Um die Sicherheit weiter zu erhöhen, enthält der Sensorbefehlssatz keinen Befehl zum Lesen des Kennworts. Geht das Sensorkennwort verloren, wird der SEN0188 unbrauchbar. Es gibt kein Hardware- oder Software-Reset, mit dem die gespeicherten Fingerabdrücke wiederhergestellt werden können.

Der Sensor verfügt auch über eine 4-Byte-Standardadresse (FFFFFFFFh), die im internen Flash-Speicher gespeichert ist und mit dem Befehl SetAddr geändert werden kann.

Jede Fingerabdruck-Authentifizierung und -speicherung erfolgt intern im Sensor. Dies verhindert eine Manipulation der gespeicherten Fingerabdrücke oder des Verifizierungsprozesses.

Vor der ersten Verwendung ist es ratsam, als Sicherheitsvorkehrung sämtliche im Fingerabdruckleser gespeicherten Fingerabdrücke zu löschen. Dies wird durch den Befehl Empty unterstützt, der alle Fingerabdruck-Vorlagen löscht, die im internen Flash-Speicher des Sensors gespeichert sind.

Fazit

Die Zugangssicherheit ist ein Anwendungsbereich für Embedded- und IoT-Systeme mit zunehmender Bedeutung, der aber effizient mit einem ausgewogenen Verhältnis von Kosten, Einfachheit und Wirksamkeit umgesetzt werden muss. Der Fingerabdruckleser SEN0188 von DFRobot ermöglicht Entwicklern, wie oben ausgeführt, eine schnelle Prototyperstellung und Entwicklung von Systemen für einen sicheren Zugang zu sensiblen Bereichen. Zusammen mit dem Discovery-Kit STM32F7308-DK mit einem TFT-LCD-Display und der Wi-Fi-Karte WRL-13678 von SparkFun Electronics kann ein Sicherheitssystem entwickelt werden, das einfach, zuverlässig und bedienerfreundlich ist.

DigiKey logo

Haftungsausschluss: Die Meinungen, Überzeugungen und Standpunkte der verschiedenen Autoren und/oder Forumsteilnehmer dieser Website spiegeln nicht notwendigerweise die Meinungen, Überzeugungen und Standpunkte der DigiKey oder offiziellen Politik der DigiKey wider.

Über den Autor

Image of Bill Giovino

Bill Giovino

Bill Giovino ist Elektronikingenieur mit einem BSEE von der Syracuse University und einer der wenigen, die erfolgreich vom Entwicklungsingenieur über den Anwendungsingenieur zum Technologiemarketing wechselten.

Seit über 25 Jahren wirbt Bill für neue Technologien vor technischem und nicht-technischem Publikum für viele Unternehmen, darunter STMicroelectronics, Intel und Maxim Integrated. Während seiner Zeit bei STMicroelectronics trug Bill dazu bei, die frühen Erfolge des Unternehmens in der Mikrocontroller-Industrie voranzutreiben. Bei Infineon inszenierte Bill die ersten Erfolge des Unternehmens im Bereich Mikrocontroller-Design in den USA. Als Marketingberater für sein Unternehmen CPU Technologies hat Bill vielen Unternehmen geholfen, unterbewertete Produkte in Erfolgsgeschichten zu verwandeln.

Bill war zudem ein früher Anwender des Internets der Dinge, einschließlich der Implementierung des ersten vollständigen TCP/IP-Stacks auf einem Mikrocontroller. Die Botschaft von „Verkauf durch Aufklärung“ und die zunehmende Bedeutung einer klaren, gut geschriebenen Kommunikation bei der Vermarktung von Produkten im Internet sind Bills Anliegen. Er ist Moderator der beliebten „Semiconductor Sales & Marketing Group“ auf LinkedIn und spricht fließend B2E.

Über den Verlag

Nordamerikanische Fachredakteure von DigiKey