[Android] Passwörter speichern



  • Hi,

    ich bin neu in der Android-App-Programmierung.

    Wie kann man in einer App am besten Passwörter speichern?
    Reicht es, wenn ich die Passwörter wie den Loginnamen einfach in SharedPreferences speichere, oder könen Dritt-Programme die auslesen?
    Oder kann man die irgendwie sicher verschlüsseln, speichern und dann später wieder auslesen und entschlüsseln?

    Gruß



  • Verschlüsselung ist eine sehr gute Idee. SharedPreferences hingegen ist so ziemlich das übelste, was du nehmen kannst (was im Übrigen aber viele Entwickler nehmen). Teilweise können die sogar ohne root ausgelesen werden. Anders als etwa iOS bietet Android leider noch immer kein einheitliches Konzept für den Umgang mit solchen Daten (OSX/iOS haben Keychain).

    Viele schmeissen solche Daten verschlüsselt ins private App-Verzeichnis (vielleicht am besten in einer Objektstruktur serialisieren und verschlüsseln).

    Es gibt auch noch eine Klasse AccountManager, aber die habe ich noch nie irgendwo eingesetzt gesehen (vielleicht gibt es damit ein Problem oder ist zu komplex?).



  • Hi,

    danke für die Antwort.

    Da ich neu in der App-Entwicklung bin, wie verschlüssele ich am Besten die Passwörter, dass Dritt-Programme sie nicht entschlüsseln können? Gibts dazu ein gutes Tutorial/Beispiel?

    Edit: Wie man Passwörter verschlüsselt weis ich, aber wie geht man am besten mit dem Schlüssel-Key um?

    P.S.: Warum ist SharedPreferences so schlecht? 😉

    Gruß



  • Hi,

    kann man den Key im Internal Storage speichern?
    Ich hab gelesen, der ist nur von der App zugänglich. Stimmt das, d.h. ist der Key da sicher?

    Gruß



  • Hi,

    niemand eine Antwort? 😉

    Gruß



  • Heya, hast nen Stress? 😉

    Du sprichts von Internal Storage -- sowas hab ich gemeint. Bei Android ist diese Storage-Geschichte ein, man verzeihe mir die Ausdrucksweise, riesen Clusterfuck. Aber ja, verschlüssel deine Daten und schmeiss sie dort rein. Wegen dem Key musst du dir etwas überlegen. Vielleicht kannst du den Key ja von irgend etwas ableiten?

    SharedPreferences sind schlecht, weil sie ein offensichtlicher Angriffspunkt darstellen und auf manchen Geräten einfach so ausgelesen werden können. Falls es dich interessiert, lad auf Google Play die App "CheatDroid" runter (oder so ähnlich)--

    MfG



  • Hi,

    ok danke, dann werd ich mir ne Klasse schreiben, um die Sachen im Internal Storage zu speichern.

    Was ich aus deinem Post immernoch nicht rauslesen konnte, ob der Internal Storage wirklich sicher ist, d.H. ob ich den AES-Key da mit speichern könnte.

    Ich hab überlegt, dass man ein Master-Passwort für die App eingeben müsste, von dem man den Key ableiten könnte, aber das wurde vom Chef abgelehnt. 😉
    Ich wüste nicht, wovon ich sonst den Key ableiten könnte.

    Gruß


Anmelden zum Antworten