Tyde / TuCanMobile

Besseres Interface für Android-Smartphones für das Studentenverwaltungssystem TuCan der TU Darmstadt
GNU General Public License v3.0
10 stars 2 forks source link

Passwort und Id werden in Klartext gespeichert #63

Closed dnlbauer closed 9 years ago

dnlbauer commented 9 years ago

In der aktuellen Version werden Passwort und TUID als Klartext gespeichert (/data/data/packagename/shard_prefs/LOGIN.xml). Diese Datei kann bei gerooteten Smartphones oder mittels Privelege Escalation ausgelesen werden.

Der Pull enthält eine Manager Klasse für den Benutzer Account. Account Daten werden verschlüsselt gespeichert und können mit den Methoden updateAccount(), deleteAccount() und getAccount() genutzt werden. Abwärtskompatibilität ist gegeben, sodass alte Versionen nach einem Update noch funktionieren.

flubshi commented 9 years ago

Cool, habe ich mir auch gerade angelesen :) Vielleicht können wir dann darauf aufbauend demnächst auch noch einen SyncAdapter einführen, der regelmäßig Nachrichten, Stundenplan und Prüfungsergebnisse im Hintergrund aktualisiert und z.B. über neue Noten oder Nachrichten informiert. Danke jedenfalls schon mal - Daniel wirds sicherlich bald mergen.

dnlbauer commented 9 years ago

Irgendwie hat github da nun auch den fix für #50 drangehängt, obwohl das nach dem pull request kam. Naja... ^^'

flubshi commented 9 years ago

Ja, weil ein Pull-Request für den gesamten Branch gilt. Alle Änderungen die Du noch commiten wirst bis zum Merge werden glaube ich auch noch angehängt. Wenn Du mehrere Features machst kannst Du sie bei Dir in verschiedenen Branches bei Dir erstellen und für jeden Branch einen eigenen Pull-Request stellen ;)

dnlbauer commented 9 years ago

danke! :)

Tyde commented 9 years ago

Coole sache. Wenn ich gleich daheim bin schau ich mir das mal an und werde das mergen. Für die Version im Play store wäre es dann bestimmt sinnvoll, den salt lokal zu ändern, bevor ich das als apk exportiere oder?

dnlbauer commented 9 years ago

Spielt eigentlich keine grosse Rolle. Aus der APK kann man den salt trotzdem noch auslesen mittels reverse engineering (apktool). 100% sicher ist man da nie. So ist aber zumindest das pw schonmal nicht im klar text, was vor irgendwelchen Skripten schützt die versuchen alle PWs vom Smatphone auszulesen.

Wichtig is das der salt immer gleich bleibt wenn es einmal mit salt im store ist, sonst funkioniert halt das entschlüsseln nicht mehr.

Tyde commented 9 years ago

Okay. Dann ist das so wohl einfacher. Andernfalls müsste ich das irgendwie hinzukommen, dass der salt nicht ins git gelangt.. Am 19.11.2014 23:22 schrieb "danijoo" notifications@github.com:

Spielt eigentlich keine grosse Rolle. Aus der APK kann man den salt trotzdem noch auslesen mittels reverse engineering (apktool). 100% sicher ist man da nie. So ist aber zumindest das pw schonmal nicht im klar text, was vor irgendwelchen Skripten schützt die versuchen alle PWs vom Smatphone auszulesen.

Wichtig is das der salt immer gleich bleibt wenn es einmal mit salt im store ist, sonst funkioniert halt das entschlüsseln nicht mehr.

— Reply to this email directly or view it on GitHub https://github.com/Tyde/TuCanMobile/pull/63#issuecomment-63725390.

flubshi commented 9 years ago

Alternativ könnten wir zum Speichern des Accounts auch den Android AccountManager verwenden: Doku Hätte den Vorteil dass wir uns nicht um Verschlüsselung sorgen machen müssen und wir könnten tatsächlich später einen SyncAdapter schreiben.

dnlbauer commented 9 years ago

Daran dachte ich auch erst. Wollte nur mit meinen ersten pull nicht direkt ne neue Permission einführen :p

Tyde commented 9 years ago

Ist mir übrigens gerade beim durchlesen aufgefallen: Bei Android werden keine getter und setter Methoden genutzt: http://developer.android.com/training/articles/perf-tips.html#GettersSetters

dnlbauer commented 9 years ago

da hält sich ja nicht mal google dran :p