Neuigkeiten:

Unsere Liga-Teams suchen noch Mitspieler.

Hauptmenü

Beitrag bearbeiten

Der Beitrag verursachte die folgenden Fehler, die behoben werden müssen:
Achtung: In diesem Thema wurde seit 120 Tagen nichts mehr geschrieben.
Wenn du nicht absolut sicher bist, dass du hier antworten willst, starte ein neues Thema.
Einschränkungen: 10 pro Beitrag (10 verbleibend), maximale Gesamtgröße 49,06 MB, maximale Individualgröße 5 MB
Deaktiviere die Dateianhänge die gelöscht werden sollen
Klicke hier oder ziehe Dateien hierher, um sie anzuhängen.
Erweiterte Optionen...
Verifizierung:
Bitte lasse dieses Feld leer:
Was ist das Gegenteil von oben?:
Shortcuts: mit Alt+S Beitrag schreiben oder Alt+P für Vorschau

Zusammenfassung

Autor Nursey
 - 30.01.2015 07:40
Nackerpatzl ? Sehr schöner Ausdruck ! :up:( mir wäre zum gleichen Thema nur DAU eingefallen)

Ich freue mich

1. dass es Menschen gibt die bei diesem Krempel durchblicken
2. dass es Menschen gibt die nicht durchblicken
Autor Daggi
 - 30.01.2015 07:36
Das ist sehr interessant. Bestimmt verstehe ich beim vierten Lesen auch noch ein bisschen mehr (was aber nur an meinen Vorkenntnissen liegt).
Danke für den ausführlichen Bericht!
Autor Weggi47
 - 30.01.2015 07:14
Nach dem 1. Absatz hatte ich leider einen Knopf im Hirn, wie man bei uns Ösis sagt, bei euch sagt man stattdessen: ich verstehe nur Bahnhof. Aber ich bin kein Kriterium, weil ein technisches Nackerpatzl :-\
Autor Bella 51
 - 30.01.2015 06:32
Wow! Ich bin extrem beeindruckt! :up:
Autor Data
 - 30.01.2015 06:10
Hammer!!! Danke für die Erklärung!  :up:  :servant:
Autor phoenix-sven
 - 30.01.2015 06:09
ähm ja :-\
Autor quizapi
 - 30.01.2015 03:54
Liebes Forum,

da ja nun auch einige technisch Interessierte unter uns sind, möchte ich die Gelegenheit nutzen und die neueste "Quizduell im Ersten"-App gemeinsam mit euch 'zerlegen'  O:-). Letztes Jahr gab es ja dieses Datenleck und dann den Totalausfall der App. Diesmal soll alles besser sein, die App wurde neu programmiert und ausführlich getestet. Mal sehen, welche technischen Raffinessen sich die Entwickler - diesmal ein Team von APPSFactory* aus Leipzig - ausgedacht haben...

Zunächst laden wir die App in Form des Anwendungspaketes de.itv.quizduellimersten-1.apk aus dem Android Playstore. Warum Android? Hier gibt es viel mehr frei zugängliche und weiterentwickelte Entwickler- und Analysetools als unter der proprietären iOS-Plattform.

Im ersten Schritt entpacken wir die .apk-Datei, welche eigentlich ein ordinäres Zip-Archiv ist, und entdecken darin neben ein paar Konfigurationsdateien viele Bilder und Audiodaten sowie eine classes.dex-Datei, welche den Programmcode in unleserlichem Binärformat enthält:


Der zweite Schritt besteht also darin, den Binärcode per Disassembler in eine für uns zugängliche Assemblersprache übersetzt. Diese können wir anschließend lesen und verstehen damit den Programmablauf. Als Disassembler kommt apktool zum Einsatz und wir erhalten folgende Struktur:


Es sticht heraus, dass hier kein Obfuscator verwendet wurde, um uns das Auslesen zu erschweren. Die komplette Klassenstruktur ist erhalten, es traten keine Probleme beim Disassemblieren auf. Also können wir es wagen, für die grobe Analyse noch einen Schritt weiterzugehen und einen Decompiler einzusetzen, um den doch recht mühsam zu analysierenden Assembler-Code in eine Hochsprache, in diesem Fall Java, zurückzuübersetzen.

Als Decompiler kommt der Java Decompiler zusammen mit dex2jar zum Einsatz, das Ergebnis sieht dann wie folgt aus:


Hier haben wir sie also: die Web-API, mit der "Quizduell im Ersten" kommuniziert, um unsere Gewinnspiel-Registrierung entgegenzunehmen sowie die Ergebnisse live in die Show zu übertragen. Ein einfacher Web-Browser genügt, um die wichtigsten Informationen abzufragen: http://qd-prod.appsfactory.de/api/info

Für alle weiteren Zugriffe auf die Web-API müssen wir jedoch ein sog. User-Token mitliefern, damit der Server uns überhaupt antwortet. Dieses User-Token erhalten wir erst nach Authentifizierung über Googles OAuth 2-Dienst mit unserem Google-Konto. Statt diesen Prozess mühsam nachzubilden, melden wir uns einfach über die "Quizduell im Ersten"-App unter Android an und kopieren das derart erhaltene User-Token aus der Konfigurations-Datei im Anwendungsverzeichnis der App, de.itv.quizduellimersten_preferences.xml:


Mit diesem Token bestückt, können wir nun die Web-API beliebig aufrufen und eingehender analysieren.

Bleiben wir jedoch bei den Informationen, die wir über die URL /api/info erhalten: Es werden Duelle in Form von Zip-Archiven gelistet. Nach Herunterladen und Entpacken dieser entdecken wir darin jeweils zwei Dateien, catalogue.json und studioteam.json. Die erste Datei enthält einen Katalog aller Fragen, die in diesem Quizduell gespielt werden können, allerdings sind die Fragen verschlüsselt. Doch wo ist der Schlüssel? Java Decompiler liefert das Ergebnis: Der Schlüssel wird mit Beginn jeder Fragerunde während des Live-Duells an die Spieler ausgeliefert. Bis dahin bleiben die Fragen unter Verschluss, denn das eingesetzte symmetrische AES-Verschlüsselungsverfahren ist unknackbar:


Cheaten ist also nicht drin, es sei denn man wertet die Kenntnis über die zweite und dritte Frage schon zu Beginn einer Runde, während andere erst die erste Frage sehen, als einen solchen Betrug.

Wie steht es aber mit der Datensicherheit? Nun, schauen wir uns an, was passiert, wenn ein Benutzer ein eigenes Profilbild hochladen möchte. Dazu wird die URL /api/data/image mit persönlichem User-Token im HTTP-Header aufgerufen, der Server antwortet mit einer URL, unter der wir das Bild hochladen können, z.B.: http://qddev.blob.core.windows.net/images/R spcHmKckfSu0yVWuZ1GTjNIU?sv=2014-02-14&sr=b&sig=3eWnCrl96DcEYPGWbSIBxdYXovenuFaZrA3sfLeg6p4=&st=2015-01-30T01:45:38Z&se=2015-01-30T02:05:38Z&sp=w. Diese URL ist nur für 20 Minuten gültig, danach erlischt der Zugriff darauf. Es scheint also unmöglich, derart unautorisiert und / oder in großem Stil an die Daten der Mitspieler zu gelangen.

Und die Ausfallsicherheit? Durch die geschickten Vorab-Downloads der Fragen und Team-Fotos müssen während eines Live-Duells nur noch kryptographische Schlüssel und einige Metadaten ausgetauscht werden. Dies ist sicher eine deutliche Reduktion des übertragenen Datenvolumens. Weiterhin kommen sog. Websockets zum Einsatz, welche gegenüber der alten App viele Performance-Vorteile bei der Live-Synchronisation des Spielgeschehens bieten.

Allerdings setzen die Entwickler diesmal auf Microsofts Azure Cloudcomputing-Plattform, statt wie beim letzten Mal auf Google samt Google App Engine. Ob dieser Plattformwechsel ohne Startschwierigkeiten verläuft, werden wir sehen. Leicht alarmierend ist auch die Tatsache, dass der Entwickler APPSFactory diesmal - offensichtlich um eine öffentliche Blamage wie zuletzt grandcentrix mit der ersten Version dieser App in 2014 zu vermeiden - sich vorab nirgends als Urheber der App outen möchte.

Fazit: Die Chancen stehen also gut, dass das "Quizduell im Ersten" diesmal deutlich reibungsloser verlaufen wird. Datenlecks sind keine zu befürchten. Alle Beteiligten haben scheinbar die richtigen Schlüsse aus dem Debakel beim letzten Mal gezogen. Bleibt nur abzuwarten, ob ein reibungsloses Quizduell im TV nicht schnell eintönig wird - und wie hoch die Zuschauerquote abzüglich der letztjährigen "Katastrophentouristen" ausfallen wird.

PS: Offenbar haben die Entwickler zum Testen der App die Muppets engagieren können... ob Miss Piggy im Februar auch live bei Herrn Pilawa antreten wird?


PPS: Zum Zeitpunkt des Schreibens dieses Berichts ist die Web-API gerade offline... daher musste ich zum Experimentieren auf http://qd-dev.appsfactory.de/api/info ausweichen.

Ich hoffe, dieser kleine Bericht hat dem ein oder anderen hier gefallen :cheers:. Anmerkungen, Fragen?

*) Hier stand zunächst grandcentrix, doch wird "Quizduell im Ersten" recht unscheinbar im Portfolio von APPSFactory genannt.