Beiträge von marco79cgn

    Eine Warnung an alle, die bei TankeE laden wollen (verbreitet in NRW bzw. im Köln/Bonner Raum und bei einigen Stadtwerken).


    Die Ladesäulen registrieren die Beendigung des Ladevorgangs nicht! Darüber hinaus sind sie für nachfolgende Kunden unbrauchbar, nachdem man mit dem Smart #1 dort geladen hat! Ein Service Mitarbeiter muss die Ladesäule danach neu booten. 🙄


    Für euch als Kunden bedeutet das, dass horrende Standgebühren anfallen, obwohl ihr längst nicht mehr dort steht! Also unbedingt reklamieren an der Hotline (Tel: 0800 4393030)und vorerst die TankE Ladesäulen meiden. Die IT Abteilung ist jetzt informiert und kümmert sich um das Problem. Kann natürlich etwas dauern, weil langes Wochenende.


    Das ist mir mit dem ID.3 in 9 Monaten nie passiert, beim Smart jetzt bei zwei von zwei Versuchen. 🙈

    morgan

    Die meisten Hersteller machen ihre API öffentlich und stellen zumindest grundlegende Informationen zur Verfügung. Das läuft dann normalerweise so ab, dass man sich mit seinen Zugangsdaten anmelden kann und explizit freigibt, dass App x auf Daten y zugreifen darf. Ähnlich wie bei Spotify, wenn man es mit dem Auto koppelt. Oder wenn man andere E-Autos in Apps wie z.B. Tronity einbindet, so dass eben auch der Akkustand ausgelesen werden kann oder für die Routenplanung berücksichtigt wird.


    Durchaus möglich, dass Smart das in Zukunft für den #1 auch noch zur Verfügung stellt. Bisher ist das eben noch nicht der Fall. Daher ist momentan die einzige Möglichkeit zu schauen, wie die offizielle Smart App das macht und das dann darüber herzuleiten bzw. nachzubauen.

    pirates

    Wie setzt man den Wagen denn zurück, wenn das Display komplett schwarz ist?


    Bei mir blieb gestern nach dem kleinen Update (91 MB) das große Display schwarz. Das kleine hinter dem Steuer ging noch. Habe dann ein paar Dinge ausprobiert und letztlich den Power Knopf (ganz unten links unter dem Display) für mehrere Sekunden gedrückt gehalten. Dann ging auch das andere Display aus und schließlich beide wieder an (mit dem Brabus Startlogo). Letztlich wie bei einem Computer oder Notebook bewirkt der lange Druck auf die Powertaste wohl ein runterfahren bzw. reboot.

    Man kann auch einfach ChatGPT fragen und bekommt eine erstaunlich präzise Antwort. =O

    Frage:

    Weißt du, wie bei REST Kommunikation per OAuth die Sache mit dem Timestamp, Nonce und der Checksumme bzw. Signatur genau funktioniert? Auf Basis welcher Payload wird da was berechnet?


    Antwort:

    Ja, ich kann dir erklären, wie die Kommunikation per OAuth mit Timestamp, Nonce und Signatur funktioniert.

    OAuth ist ein offenes Protokoll, das verwendet wird, um sichere API-Aufrufe zwischen Anwendungen zu ermöglichen. OAuth verwendet in der Regel das HMAC-SHA1-Signaturverfahren, um die Authentizität von Anforderungen zu überprüfen. Der Ablauf ist wie folgt:

    1. Der Client sendet eine Anfrage an den Server, um eine Ressource anzufordern.
    2. Der Client erstellt einen eindeutigen Wert, den sogenannten Nonce (Number Used Once). Der Nonce ist ein zufälliger Wert, der jede Anfrage eindeutig identifiziert. Der Nonce wird zusammen mit einem Zeitstempel (Timestamp) in der Anfrage an den Server gesendet.
    3. Der Server empfängt die Anfrage und prüft, ob der Nonce bereits verwendet wurde. Wenn der Nonce bereits verwendet wurde, wird die Anfrage abgelehnt. Wenn der Nonce noch nicht verwendet wurde, wird die Anfrage fortgesetzt.
    4. Der Server erstellt eine Signatur (Checksumme) der Anfrage durch Verwendung des HMAC-SHA1-Signaturverfahrens. Die Signatur wird aus dem geheimen Schlüssel des Servers und einer Kombination aus dem HTTP-Methodenverb, der URL und den Parametern (z.B. Nonce, Timestamp und OAuth-Token) berechnet.
    5. Der Server vergleicht die berechnete Signatur mit der in der Anfrage enthaltenen Signatur. Wenn die Signaturen übereinstimmen, wird die Anfrage als gültig betrachtet. Andernfalls wird die Anfrage abgelehnt.

    Durch die Verwendung des Nonce und des Zeitstempels in der Anfrage wird sichergestellt, dass jede Anfrage eindeutig ist und nicht wiederverwendet werden kann. Durch die Verwendung der Signatur wird sichergestellt, dass die Anfrage nicht verändert wurde und dass der Client und der Server über den geheimen Schlüssel übereinstimmen.


    Ich hoffe, diese Erklärung hat dir geholfen, das Verfahren zur Authentifizierung von OAuth-Anforderungen zu verstehen.

    marco79cgn Hast du schon versucht die .apk der App zu entpacken? Und könntest du mal den call und die response bei Login in der App loggen? Ob da bei der response evtl. für die späteren calls etwas mitgeschickt wird, denke da an einen secret zum Verschlüsseln der Session-bezogen ist.

    Ich habe mir alles bereits mehrfach angeschaut, aber bisher nichts gefunden, eventuell nur eine heiße Spur.


    Wie man sich anmeldet habe ich nachvollzogen und wie man den Authorization Token für den Header bekommt und refresht (nach Ablauf) weiß ich auch.


    Der Algorithmus der Signatur ist halt auch nicht klar, da muss man probieren. Des weiteren weiß ich nicht, was genau alles zur Payload gehört für die Checksummenberechnung. Nur Timestamp und Nonce? Oder der gesamte URL String auch? Und/oder der gesamte Body?


    Die App habe ich mal entpackt, da steht u.a. der Api Key in einer plist. Aber den kannte ich ohnehin schon.


    Vielleicht könnten sich ein paar Leute zusammen tun?

    Seid ihr alle Informatiker oder was?

    Ja, bin ich. :P

    Zitat

    Kann man das Ganze in Deutsch für Laien zusammenfassen?

    Ich versuche es:


    Die relevanten Daten, die man haben möchte, liegen „in der Cloud“ und man kann über http-Anfragen darauf zugreifen. Das macht zum Beispiel die App. Allerdings werden Anfragen nur beantwortet, wenn man zum einen angemeldet ist und zusätzlich jede einzelne Anfrage mit einer Prüfsumme versehen ist, die mithilfe eines geheimen Schlüssels berechnet wurde. Ansonsten antwortet der Server in der Cloud lediglich mit „Du kommst hier net rein!“.


    So funktioniert vereinfacht die moderne Kommunikation im Web, auch zwischen deinem Browser und der Gegenstelle. Beim Bestellprozess war das einfacher, da war nicht jede Anfrage nochmal zusätzlich mit einer Signatur versehen, sondern es reichte aus zu beweisen, dass man angemeldet ist.


    War das jetzt verständlicher?