Fitbit Aria Wi-Fi Smart Scale: Unterschied zwischen den Versionen
K (Architekt verschob Seite Fitbit WLAN Waage nach Fitbit Aria Wi-Fi Smart Scale: cooler) |
K (change project name) |
||
Zeile 1: | Zeile 1: | ||
{{Infobox Projekt | {{Infobox Projekt | ||
− | |name = | + | |name = Fitbit Aria Wi-Fi Smart Scale |
|kategorie = | |kategorie = | ||
|status = beta | |status = beta | ||
|autor = [[Benutzer:architekt|architekt]], [[Benutzer:krisha|krisha]] | |autor = [[Benutzer:architekt|architekt]], [[Benutzer:krisha|krisha]] | ||
− | |beschreibung = | + | |beschreibung = Fitbit WLAN Scale Reverse Engineering |
|image = Fitbit cat img.jpg | |image = Fitbit cat img.jpg | ||
|imagesize = 280 | |imagesize = 280 |
Version vom 7. November 2012, 02:36 Uhr
Fitbit Aria Wi-Fi Smart Scale Status: beta | |
---|---|
Beschreibung | Fitbit WLAN Scale Reverse Engineering |
Autor: | architekt, krisha |
PayPal |
Beschreibung
Waage
Die WLAN Waage von fitbit.com misst Gewicht und Körperfett. Es können Accounts angelegt werden und die Daten über deren Webseite abgerufen werden. Die Daten werden nach jeder Messung über WLAN zu fitbit.com gesendet. Die Nutzer werden anhand von Gewicht und eventuell Körperfett identifiziert.
Der Plan
Wir wollen einen eigenen Server für die Waage bereit stellen, um so die Daten nach belieben auszuwerten und eventuelle Beschränkungen der Waage zu umgehen und zu erweitern. So können wir mehrere Benutzer erlauben und die Daten z.B. über eine eigenes Webinterface korrigieren (Nutzer-Zuordnung). Außerdem werden dann die persönlichen Daten nicht mehr ins Internet geschickt. Interesse bestand weiterhin an dem Analysieren der gesendeten Daten... :)
Analyse
Dumps
- HTTP POST an http://www.fitbit.com/scale/upload
- Im Normalfall 62 Bytes Payload:
- Little Endian
+---+---+---+---+---+---+---+---+ +---+---+---+---+---+---+---+---+ | Ident | ??? | | MAC | ??? > | 02 00 00 00| 5C 00 00 00| | 00 1D C9 XX XX XX| 1C 00> +---+---+---+---+---+---+---+---+ +---+---+---+---+---+---+---+---+ > | ??? | Timestamp 2 | ??? | ??? > > 00 00| 21 00 00 00| 30 4D 90 50| 01 00 00 00| 02 00> +---+---+---+---+---+---+---+---+ +---+---+---+---+---+---+---+---+ > | ??? | Weight in g | Timestamp 1 | User > > 00 00| 00 00 00 00| 06 FE 00 00| 1C 4D 90 50| 00 00> +---+---+---+---+---+---+---+---+ +---+---+---+---+---+---+---+---+ > ID | Body fat 1 | Body fat 2 | Body fat 3 | > 00 00| 00 00 00 00| 00 00 00 00| 00 00 00 00| +---+---+---+---+---+---+---+---+ +---+---+---+---+---+---+
- Timestamp 2: Ende der Messung
- Timestamp 1: Beginn der Messung
- Body fat 1 : Angezeigtes Körperfett in % * 1000
- Body fat 2 : Vielleicht physikalischer Messwert (Widerstand)
- Body fat 3 : Wert ähnlich Body fat 1
Erklärung
/* TODO */
Own tools
/* to be crafted */
Attacks
Fatify local target
Das geht relativ einfach: Mit tcpdump oder Wireshark die Daten eines Ziels nach der Messung mitschneiden. Da meistens WPA im WLAN zum Einsatz kommt, empfiehlt es sich hier am Router oder danach die Daten mitzusniffen. Anschließend einfach den Request klonen und ein eigenes Gewicht oder Körperfett einsetzen. Es kann sein, dass fitbit die Anzahl der Messungen beschränkt und das Gewicht der Person in einem gewissen Limit (Durschschnitt) liegen muss.
Fatify the world
In der Theorie ist es möglich alle fitbit User etwas schwerer zu machen. Die Waage authentifiziert sich mit der MAC Adresse, zusätzlich gibt es eine xx Bit Userkennung. Die MAC Adresse (Herstellerkennung + Wert) kann man per Brute-Force testen, die Benutzerkennung macht den Aufwand aufgrund der vielen Bits aber sehr langwierig. Da der fitbit Server allerdings auch auf Gäste antwortet und zwar mit der kompletten Userliste inkl. der Benutzerkennung, kann man einfach einen Request als Gast (Wert 0) absetzen. Als Antwort schickt der Server die Kennungen zurück und man kann sich seine eigenen Requests zusammensetzen - für alle fitbit User weltweit ;-)