Das Projekt umfasst sowohl eine serverseitige als auch eine Webanwendung, die für die Kommunikation mit Smartwatch-Geräten für Kinder konzipiert ist, die mit einem GPS-Tracker verschiedener Modelle ausgestattet sind und unter verschiedenen Marken bekannt sind. Es kann zum Beispiel mit Q50, Q60, Q80, Q90, Q100, Q360, Q523, Q730, Q750, Q8, GW100, GW100S, GW200, GW200S, GW300, GW300S, GW400S, GW400X, GW500S, GW600S, GW700, GW800, GW900, GW900S, GW1000, GW1000S, EW100, EW100S, EW200, K911, W8, W9, W10, Y3, G36 SICHERHEIT, DS18, T58, T100, I8, G10, G100, D99, D100, D100S und viele andere. Grob gesagt macht es dasselbe wie Anwendungen wie SeTracker, FindMyKids usw. Der Hauptunterschied besteht darin, dass alle persönlichen Daten wie Kontakte, Positionen, Kommunikationsverlauf usw. wirklich privat werden, da sie auf der vom Benutzer kontrollierten Hardware gespeichert werden.
Ein weiteres Problem, das angesprochen wurde, ist das Sicherheitsmodell der Kommunikations- und Tracking-Anwendungen für Kinder-Smartwatches. Standardmäßig könnte jede Person die Kontrolle über das Gerät übernehmen, sofern die Gerätekennung bekannt ist, ohne dass eine weitere Bestätigung erforderlich ist, dass sie der Geräteeigentümer ist. Die Kennung wiederum kann leicht durch Senden einer SMS an das Gerät ermittelt werden, sofern die Mobiltelefonnummer des Geräts bekannt ist. Natürlich gibt es ein Passwort, aber alle Geräte haben das gleiche Werkspasswort und es gibt keine lästigen Benachrichtigungen, die dazu auffordern, es zu ändern, also macht das niemand.
In dieser Anwendung wurden folgende Sicherheitsszenarien implementiert:
Und zu guter Letzt ist es kostenlos und werbefrei :).
Der Aufbau des Projekts ist so einfach wie
docker compose -f docker-builder.yml run --rm builder
Beim Aufbau wird ein für https
-Verbindungen erforderliches SSL-Zertifikat erstellt. Mithilfe der Umgebungsvariablen DOMAIN
und IP
ist es möglich, eine Domäne und/oder eine IP-Adresse anzugeben
docker compose -f docker-builder.yml run --rm -e DOMAIN=example.com -e IP=123.45.67.89 builder
Die Anwendung kann nach Ihrer Wahl durch verschiedene Datenbanken gestützt werden. Das einfachste Szenario ist die Verwendung einer eingebetteten H2-Datenbank. In diesem Fall kann die Anwendung mit einem Befehl gestartet werden
docker compose --profile h2 up -d
Es ist auch möglich, PostreSQL entweder containerisiert oder eigenständig zu verwenden. Im ersteren Fall können Sie die Anwendung mit dem Befehl starten
docker compose --profile pg up -d
Im letzteren Fall müssen Sie die Datei db.env
mit der Datenbank-URL und den Anmeldeinformationen vervollständigen und dann den Befehl ausführen
docker compose --profile pg_ext up -d
Wenn Ihre Compose-Version keine Profile unterstützt, können Sie für jedes Szenario dedizierte Compose-Dateien verwenden
docker compose -f h2.yml up -d
docker compose -f pg.yml up -d
docker compose -f pg_ext.yml up -d
Im letzten Fall müssen Sie noch die Datei db.env
mit der Datenbank-URL und den Anmeldeinformationen vervollständigen.
Es ist auch möglich, die langweilige Erstellungsphase zu überspringen und die dem Release beigefügte Binärdatei auszuführen (Java 8 oder höher sollte installiert sein).
java -jar kidtracker.jar
Die Binärdatei ist für die Verwendung der eingebetteten H2-Datenbank konfiguriert. Beim ersten Start werden im Arbeitsverzeichnis drei Ordner erstellt:
data
enthalten Datenbankeinträge für Gerätestandorte, Telefonnummern usw. Dieses Datum ist vertraulich, also bewahren Sie es sicher auf!logs
sind selbsterklärend genug und enthalten Protokolle sowohl für die Anwendung selbst als auch für Geräte, wenn das Geräte-Debugging aktiv ist.media
Dieser Ordner wird zum Konvertieren eingehender Audiodaten im AMR-Format in MP3 verwendet Die Web-Benutzeroberfläche ist unter https://<hostname>:8003
verfügbar. Um sich anzumelden, verwenden Sie die Standardanmeldeinformationen admin
/ password
.
Um einem bei der Anwendung registrierten Benutzer ein Gerät zuzuweisen, muss die Anwendung in öffentlichen Netzwerken verfügbar sein, d. h. sie sollte über eine öffentliche IP-Adresse und möglicherweise einen zugehörigen Domänennamen verfügen. Standardmäßig lauscht die Anwendung Geräte an Port 8001
, vorausgesetzt, dass genau derselbe Port dem öffentlichen Netzwerk zugeordnet ist. Dann veranlasst die folgende an das Gerät gesendete Textnachricht, dass es eine Verbindung zur Anwendung herstellt:
pw,123456,ip,<public IP address or domain>,8001#
Hier ist 123456
das Standardpasswort, das höchstwahrscheinlich auf dem Gerät eingestellt ist. Andere bekannte Standardkennwörter sind 523681
, 54321
und 654321
. Wenn jedoch das Passwort geändert wurde, sollte das neue Passwort anstelle des Standardpassworts verwendet werden.
Es wird dringend empfohlen, das Standardpasswort zu ändern!
Klicken Sie dann auf die Schaltfläche auf der rechten Seite der Navigationsleiste und dann auf die Schaltfläche in der Fußzeile. Für die Gerätezuordnung ist die Gerätekennung erforderlich. Sobald das Gerät mit der Anwendung verbunden ist, wird ein vierstelliges Bestätigungstoken an das Gerät gesendet. Um zu bestätigen, dass der Benutzer das Gerät besitzt, sollte dieser Token innerhalb der nächsten 5 Minuten nach Ablauf dieser Zeit in das Popup-Formular eingegeben werden.
Jeder bei der Anwendung registrierte Benutzer kann entweder ein regulärer Benutzer oder ein Administrator sein. Administratoren können andere Benutzer registrieren, normale Benutzer jedoch nicht. Dies ist der einzige Unterschied. Administratoren können sowohl normale Benutzer als auch andere Administratoren erstellen. Für bestehende Benutzer können Administratorrechte weder gewährt noch widerrufen werden. Die einzige Möglichkeit, sie zu ändern, besteht darin, das Benutzerkonto zu entfernen und es neu zu erstellen.
Aus Sicherheitsgründen kann die Mobiltelefonnummer des Benutzers auch nicht geändert werden. Um es zu ändern, muss das Benutzerkonto erneut entfernt und neu erstellt werden. Um ein Benutzerkonto zu entfernen, muss die Zuordnung aller Geräte zum Konto aufgehoben werden.
Bei der ersten Ausführung gibt es ein Standardbenutzerkonto mit Administratorrechten mit dem Login admin
und dem Passwort password
. Es wird empfohlen, entweder dieses Konto zu entfernen, wenn andere Benutzerkonten erstellt werden, oder das Standardkennwort zu ändern. Wenn nur ein Konto mit Administratorrechten vorhanden ist, kann es nicht entfernt werden. Das Standardadministratorkonto hat keine gültige Mobiltelefonnummer und es kann ihm kein Gerät zugewiesen werden.
Geräte kommunizieren über Nachrichten mit der Anwendung. Es gibt verschiedene Arten von Meldungen. Einige können Informationen über den Standort des Geräts und Warnungen enthalten, andere enthalten den tatsächlichen Akkuladestand und den Schrittzählerwert.
Einige Nachrichten können von der Anwendung auch an ein Gerät gesendet werden, damit es mehrere Aktionen ausführt oder seine Einstellungen ändert. Um sicherzustellen, dass das Gerät die Nachricht empfangen hat, sendet es eine Bestätigungsnachricht an die Anwendung zurück. Während Sie auf die Bestätigungsnachricht warten, bleibt die Benutzeroberfläche blockiert. Erfolgt innerhalb von 10 Sekunden keine Bestätigung (konfigurierbar), gilt die Erstmeldung als nicht bestätigt.
Die Positionsmarkierungen aller zugewiesenen Geräte teilen sich zusammen mit der Benutzerpositionsmarkierung die gleiche Karte. Gerätemarkierungen enthalten Informationen über die Zeit des letzten bekannten Standorts, den Akkuladestand, den Schrittzählerwert und schließlich den Alarm zum Abheben des Geräts, den Alarm zu niedrigem Akkustand, den Alarm zu Verbindungsverlust und den Alarm zu veraltetem Standort. Das Gerät gilt als verloren, wenn die letzte Nachricht vom Gerät vor mehr als 15 Minuten empfangen wurde.
Das Gerät könnte seinen tatsächlichen Standort auf der Grundlage direkter GPS-Daten bereitstellen, wenn diese verfügbar sind, sowie die zuletzt erkannte Position, wenn keine direkte GPS-Beobachtung verfügbar ist, meist innerhalb von Gebäuden oder bei Vorhandensein von elektromagnetischem Rauschen, in solchen Fällen die GPS-Daten
gilt als veraltet. Wenn die empfangenen Standortdaten veraltet sind, wird die Warnung „Veraltete Daten“ angezeigt.
Beachten Sie, dass die Warnung bei niedrigem Batteriestand und der tatsächliche Ladewert in unterschiedlichen Meldungstypen vorliegen. Nachrichten mit tatsächlichen Gebühren kommen häufiger (alle 5 Minuten) als Nachrichten mit Standorten und Warnungen, die stundenlang nicht gesendet werden können. Daher ist es nicht ungewöhnlich, dass ein Marker 100 % der Batterieladung zusammen mit einer Warnung bei niedrigem Batteriestand anzeigt. In diesem Fall hat der numerische Wert der Batterieladung Vorrang und die Warnung bei niedrigem Batteriestand kann ignoriert werden.
Gerät sendet Alarmmeldungen, wenn die SOS-Taste gedrückt wird. In diesem Fall wird die Gerätemarkierung rot und es ertönt ein Sirenenton, bis auf die Markierung geklickt wird. Das Anklicken der Markierung führt dazu, dass sie nach oben verschoben und die Kinderauswahl geändert wird. Wenn die Kinderauswahl umgeschaltet wird, wird die Markierung für das ausgewählte Gerät oben angezeigt.
Das Gerät kann Audionachrichten und (sofern mit einer Kamera ausgestattet) Schnappschüsse an die Anwendung senden. Wenn eine neue Nachricht dieser Art eintrifft, wird die Gerätemarkierung blau und der Klingelton des alten Telefons wird abgespielt, bis auf die Markierung geklickt wird. Wie im Alarmfall führt das Anklicken der Markierung dazu, dass sie nach oben verschoben und die Kinderauswahl geändert wird.
Überall in der Benutzeroberfläche können Zeitstempel angeklickt werden, und mit einem Klick kann zwischen dem absoluten Datums- und Zeitwert und dem Zeitintervall ab jetzt umgeschaltet werden.
Es gibt zwei Symbole mit zwei Zuständen: gefüllt und verbunden. Der erste wird gefüllt, wenn die Kartenansicht der ausgewählten Gerätemarkierung folgt. Der Status kann durch Anklicken umgeschaltet werden. Eine weitere wird gefüllt, wenn die Kartenansicht der Positionsmarkierung des Benutzers folgt. Der Status kann auch durch Anklicken umgeschaltet werden. Wenn ein Symbol gefüllt wird, wird ein anderes verkabelt und umgekehrt. Beim Ziehen der Karte werden beide Symbole vernetzt.
Durch Klicken auf einen Befehl wird GPS aktiviert und die aktuelle Position an das Gerät gesendet. Die Kartenansicht beginnt, der Gerätemarkierung zu folgen, das Symbol „Gerät folgen“ wird ausgefüllt.
Der Chat mit dem Gerät ist asymmetrisch. Text-Chat-Nachrichten können mit der Taste an das Gerät gesendet werden, während das Gerät kurze Audio-Nachrichten und, wenn das Gerät mit einer Kamera ausgestattet ist, Schnappschüsse senden kann. Mit der Taste kann das Gerät auch gezwungen werden, einen Schnappschuss zu machen oder mit der Taste eine 15-sekündige Audioaufnahme zu erstellen.
Der Verlaufsdialog ermöglicht die Auswahl des Zeitintervalls in zwei Modi: das Datum, von einer Mitternacht zur nächsten, und allgemein, wobei sowohl der Anfang als auch das Ende des Intervalls vom Benutzer ausgewählt werden können. Um zwischen den Modi zu wechseln, klicken Sie auf die Beschriftungen der Datums- und Uhrzeitauswahl.
Wenn ein Zeitintervall ausgewählt wird, können der Chat-Verlauf oder das Schrittzähler- und Batterieladediagramm angezeigt werden. Der Gerätetrack für das ausgewählte Zeitintervall kann ebenfalls auf der Karte angezeigt werden. In der rechten oberen Ecke erscheint ein Schieberegler, mit dem Sie die Gerätemarkierung entlang der Spur verschieben können. Wenn die Verlaufsspur überprüft wird, ändert sich das Symbol des Verlaufsdialogs in . Um den Track zu entfernen und zu den Online-Markerpositionen zurückzukehren, klicken Sie darauf.
Im Dialogfeld „Kontakte“ können Sie primäre und sekundäre Geräteadministratoren, SOS-Nummern, Gerätekontakte, Nummern, die zum Tätigen von Anrufen an das Gerät zugelassen sind, und Schnellrufnummern, die den Gerätetasten zugewiesen sind, bearbeiten. Für alle Kontaktkategorien gibt es eine feste Anzahl an Plätzen, die besetzt werden können. Leere Slots sind standardmäßig ausgeblendet, können aber durch Klicken auf die Schaltfläche in der Fußzeile des Dialogs angezeigt werden.
Im Kinderdialog können Benutzer Kindergeräte zuweisen bzw. die Zuweisung aufheben, den Daumen ändern und einige allgemeine Informationen über das Gerät und seinen aktuellen Status abrufen. In der linken Spalte befindet sich ein anklickbarer Daumen. Wenn Sie darauf klicken, wird der Kinderbearbeitungsdialog geöffnet. In der mittleren Spalte befindet sich die Gerätekennung. Wenn das Gerät online ist, ist seine Kennung grün, andernfalls rot. Unterhalb der Gerätekennung steht der Zeitpunkt, wann die letzte Nachricht vom Gerät empfangen wurde. Alle Benutzer, die Zugriff auf das Gerät haben, werden in der Spalte ganz rechts mit ihren Mobiltelefonen aufgelistet.