HOME | KONTAKT | IMPRESSUM | DATENSCHUTZ | SITEMAP

Zurück zur Übersicht

DIY-Hardware! (Teil 3: API & Frontend)

Artikelinformationen

Der "steinige" Weg zur eigenen Hardware. Unprofessionell und unsinnig, jedoch für Nerds trotzdem spannend!

Dieser Artikel ist eine Bastlerstory von einer Idee zur Verwirklichung eines kleinen RFID-Lesegerätes der Marke "Eigenbau". So hast Du einen Vorgeschmack darauf, was Dich bei der Umsetzung Deiner eigenen Idee erwartet!

Übersicht

Jetzt haben wir also ein kleines Gerät im Netzwerk und können Webadressen aufrufen. Wir benötigen also einen Server der die Requests des Geräts entgegennimmt und verarbeitet (API) sowie ein Interface dass uns die Daten sichtbar macht.

API

Die API soll die Anfragen der RFID-Hardware entgegennehmen. Nun ist in unserem einfachen Setup ja die API im gesamten WWW erreichbar, sodass wir uns einen Weg ausdenken müssen die Anfragen auf unser Gerät zu reduzieren. Da unsere Sicherheitsanforderungen für den Zugriff sowie den Übertragungsweg hier kaum eine Rolle spielen, teilen sich API und Gerät einfach ein gemeinsames Passwort. Nur wenn das Passwort korrekt übermittelt wird, wird die Anfrage bearbeitet. Die sonstigen Parameter der Anfrage sind ebenfalls einfach. Übertragung eines OneWay-Hashes der eindeutigen ID. Dieser Hash reicht uns zur Differenzierung. Achtung: Zum Einen gibt es RFID-Tags die Ihre ID aus Sicherheitsgründen regelmäßig ändern (z.B. der deutsche Personalausweis) und zum Anderen gibt es auch frei konfigurierbare Tags (Stichwort Magic Cards). Für Sicherheitsrelevante Anwendungsbereiche sollte diese Form der Authentifzierung nicht verwendet werden.

Frontend

Das Frontend ist letztendlich ja auch nur eine Website. Auch möchte ich möglichst einfach mehrere Ziele erreichen:

  1. Zugriff soll auf Teilnehmer beschränkt werden
  2. Zugriff soll bei Bedarf Teilnehmerspezifisch sein
  3. Teilnehmer sollen möglichst einfach einen eigenen Bereich für persönliche Zeiten erhalten
Problem Eins lösen wir genauso wie bei der API, nur dass das Kennwort dem gesamten Teilnehmerkreis bekannt ist. (Theoretisch könnten Sie dieses auch an nicht befugte Teilnehmer weiterleiten, jedoch ist das hier ein vertretbares Risiko) Teilnehmerspezifische Zeiten können wir auch leicht lösen, da sich (wenn wir mal absichtliche Täuschung ignorieren) jedes Gerät mit einer eindeutigen ID meldet und somit einen eindeutigen Hash in der API abliefert. Wir wissen zwar nicht wer wer ist, wir können sie jedoch voneinander unterscheiden. Für die einfache anonyme Teilnahme haben ich mir folgenden Weg ausgedacht: Sobald ein Teilnehmer sich mit einem RFID-Tag am Gerät meldet, wird sein Hash in der Datenbank inklusive der Zeit gespeichert. Wird nun das Frontend aufgerufen, sieht der aufrufende Benutzer alle Zeiten die noch keinem Benutzer zugewiesen sind. Nun kann er "seine" Zeit mit "Das bin ich!" auswählen und erhält einen Link für seinen persönlichen Bereich. Alle weiteren Scan-Vorgänge mit dem gleichen Gerät landen nun in seinem persönlichen Bereich, der nur über seinen persönlichen Link aufrufbar ist. Der initiale Zugang zum Portal wird der Person über ein am Gerät angebrachten URL-QR-Code zugänglich gemacht.

Weiter zu Teil 4: Gehäuse


Zurück zur Übersicht