ZEUS – Unterstützung für Zeiterfassung

Zeiterfassung für den Beruf ist eine Aufgabe, die täglich wertvolle Minuten verbraucht und, im Falle eines vergessenen oder falsch eingetragenen Tages, oftmals zu Stresssituationen führt. Meistens fällt es schwer, sich nach mehreren Tagen noch zu erinnern, wie viele Stunden man gearbeitet hat.

Um dies zu vereinfachen, setzt man heutzutage oft auf Zeiterfassungs-Systeme. Beim Betreten und Verlassen der Arbeitsstelle können Angestellte einfach einen NFC-Tag an ein Gerät halten. Die Zeitpunkte werden dann automatisch intern gespeichert und verrechnet. So muss man nur noch ab und zu prüfen ob das System alles richtig eingetragen hat. Ab und zu sind Korrekturen sicher nötig, aber der Aufwand hält sich in Grenzen.

 

Entwicklung

Zeiterfassung: ZEUS Aussehen
Quelle: © Richard Baumann

Ich habe ein solches System in einem Projekt für Method Park umgesetzt. Unter der Verwendung eines Mikrocontrollers [1], eines Displays und weiterer kleiner Hardware wurde ein Lesegerät für NFC-Tags entwickelt. Dieses Lesegerät kommuniziert mit dem bereits in Method Park verwendeten Zeiterfassungssystem „Sugar“ und übernimmt das An- und Abmelden.

ZEUS zeigt dabei praktische Informationen an: den derzeitigen Wochentag, die Uhrzeit und die Identifikations-ID des Angestellten. Im Falle des Abmeldens zeigt es auch die bei der Arbeit verbrachte Zeit an.

Der Mikrocontroller wurde dabei in C/C++ programmiert. Die vorgegebene Entwicklungsumgebung ist für den Einstieg sehr gut geeignet, zeigt aber bei größer werdenden Projekten einige Schwierigkeiten und Probleme. So ist es zum Beispiel in der Entwicklungsumgebung nicht möglich, Code-Dateien in unterschiedlichen Ordnern abzulegen.

Insgesamt verbindet ZEUS vier Komponenten: Die im Bild gezeigte Box (der ZEUS Client), die über MQTT mit einem Übersetzer (ZEUG) redet, der wiederrum mit Sugar kommuniziert. Durch diesen Aufbau ist das Integrieren von zusätzlichen ZEUS-Clients sehr einfach.

 

Sicherheit

Einer der Schwerpunkte bei der Entwicklung war die IT-Sicherheit. Bei der Zeiterfassung entstehen Daten, die Teil der Privatsphäre der teilnehmenden Personen sind. Derartige Daten gelten als äußerst schützenswert. Keiner möchte, dass jede beliebige andere Person sehen kann, wann man anfängt zu arbeiten, oder wann man frühestens von der Arbeit wieder heim kommen kann. Außerdem will natürlich ebenso keiner, dass schlecht gesinnte Personen eventuell sogar die Daten abändern. Beispielsweise könnte ein Angreifer versuchen Daten derart abzufälschen, dass es gar keine Eintragung gibt.

Ein potentieller Angreifer sollte also im besten Fall gar keine, oder zumindest nur eine sehr kleine, Angriffsfläche haben. Dazu ist die Netzwerkkommunikation zwischen allen im Verbund benötigten Geräten verschlüsselt und einige davon zusätzlich mit Nutzername / Passwort-Kombination gesichert. Des Weiteren erhält jedes Gerät nur die Rechte, die es absolut braucht. Das bedeutet, ein Teilnehmer kann Informationen, die für ihn nicht relevant sind, gar nicht auslesen. Als weiterer Schritt sind alle Log-Dateien verschlüsselt, damit ein potentieller Angreifer auch diese Daten nicht auslesen kann.

 

Fazit

Das ZEUS Projekt war in jeder Hinsicht sinnvoll. Es steigert die Produktivität bei der Zeiterfassung von Nutzern und ist gleichzeitig ein Beispiel für Entwickler, wie man Software sicher entwickelt. Für mich war es vor allem ein guter Einstieg in die Welt der Mikroprozessoren, mit all ihren Vor- und Nachteilen. Außerdem macht es natürlich auch Spaß, die vielen kleinen Hardwarebausteine selbst zu verbinden – vor allem wenn man dabei Hindernisse, wie die relativ kleine Anzahl an vorhandenen Pins, überwindet.

 

[1] Particle Photon https://www.particle.io/products/hardware/photon-wifi-dev-kit