Sicherheit von App-Passwörtern

  • Sicherheit von App-Passwörtern

    Hallo,

    ich werde demnächst in meiner App vertrauliche Daten übertragen, die nur von Kunden zugegriffen werden können, die auch dafür bezahlt haben. Ich verschlüssel die Daten dazu auf dem Server, sende sie rüber und die App entschlüsselt sie wieder mit dem Schlüssel/Passwort. Ich hatte vor dieses Passwort im Keychain auf dem Gerät zu lagern.

    Wie sicher ist das? Kann jemand, der sein iOS aufgebrochen hat, da ran?
  • Hardcorder schrieb:

    ich werde demnächst in meiner App vertrauliche Daten übertragen, die nur von Kunden zugegriffen werden können, die auch dafür bezahlt haben. Ich verschlüssel die Daten dazu auf dem Server, sende sie rüber und die App entschlüsselt sie wieder mit dem Schlüssel/Passwort. Ich hatte vor dieses Passwort im Keychain auf dem Gerät zu lagern.
    Gilt das Passwort für eine App, für einen Benutzer oder für ein Datum? Möglicherweise gibt es ja eine bessere Möglichkeit als ein Passwort durch die Weltgeschichte zu pusten.
    Wie sicher ist das? Kann jemand, der sein iOS aufgebrochen hat, da ran?
    Vor wem musst Du das Passwort verbergen? Vor dem Benutzer, der die Daten gekauft hat und dem das Gerät gehört? Oder vor einem Angreifer, der Zugriff auf das Gerät erhält?
  • gritsch schrieb:

    klar, alles was irgendwann in den speicher geladen wird kann man abgreifen.
    Auf einem Gerät mit Jailbreak ist nicht nur der Speicher, sondern die Keychain selber kompromittiert, und der Benutzer kann alle Einträge einsehen. Daher sollte man sich gut überlegen, was und in welcher Form man in die Keychain packt.
  • kmr schrieb:

    gritsch schrieb:

    klar, alles was irgendwann in den speicher geladen wird kann man abgreifen.
    Auf einem Gerät mit Jailbreak ist nicht nur der Speicher, sondern die Keychain selber kompromittiert, und der Benutzer kann alle Einträge einsehen. Daher sollte man sich gut überlegen, was und in welcher Form man in die Keychain packt.


    ich frag mich eh warum man einen key zur entschlüsselung in die keychain speichern will. woher soll die kommen? der user darf sie ja nicht wissen also muss sie wohl aus dem app kommen. und wenn man sie dort hat warum sollte man sie dann rausspeichern um wieder reinzulesen...
  • gritsch schrieb:

    ich frag mich eh warum man einen key zur entschlüsselung in die keychain speichern will. woher soll die kommen? der user darf sie ja nicht wissen also muss sie wohl aus dem app kommen. und wenn man sie dort hat warum sollte man sie dann rausspeichern um wieder reinzulesen...
    Der Anwendungsfall ist ja nicht so ungewöhnlich. Wobei symmetrische Verschlüsselung da in der Regel die schlechteste Lösung ist. Den Key kriegst Du zusammen mit den Daten vom Server. Nur nutzt der nix in der Keychain, wenn man ihn auf dem Gerät vor dem Benutzer selber geheim halten möchte. Daher meine Frage, gegen wen sich die Verschlüsselung richtet. Ohne diese Antwort kommt man nicht weiter.
  • kmr schrieb:

    gritsch schrieb:

    ich frag mich eh warum man einen key zur entschlüsselung in die keychain speichern will. woher soll die kommen? der user darf sie ja nicht wissen also muss sie wohl aus dem app kommen. und wenn man sie dort hat warum sollte man sie dann rausspeichern um wieder reinzulesen...
    Der Anwendungsfall ist ja nicht so ungewöhnlich. Wobei symmetrische Verschlüsselung da in der Regel die schlechteste Lösung ist. Den Key kriegst Du zusammen mit den Daten vom Server. Nur nutzt der nix in der Keychain, wenn man ihn auf dem Gerät vor dem Benutzer selber geheim halten möchte. Daher meine Frage, gegen wen sich die Verschlüsselung richtet. Ohne diese Antwort kommt man nicht weiter.


    wozu dann vershclüsseln wenn man den key eh mitschickt...
  • kmr schrieb:

    gritsch schrieb:

    wozu dann vershclüsseln wenn man den key eh mitschickt...
    Ich schrieb ja bereits: symmetrische Verschlüsselung ist da in der Regel die schlechteste Lösung.


    ein asymmetrisches bringt aber auch nichts. irgendwo müssen die keys ja gespeichert werden (und spätestens zum dekomprimieren in den speicher geladen werden). spätestens da hat man ihn bzw die entschlüsselten daten.

    vollkommene sicherheit gibts eben nicht.
  • gritsch schrieb:

    vollkommene sicherheit gibts eben nicht.
    Plattitüden sind ein schlechter Ratgeber. Es geht bei Sicherheit um Bedrohungen, Wahrscheinlichkeiten und die Angemessenheit von Maßnahmen. Und genau deswegen muss man die Anforderungen kennen, um eine sinnvolle Lösung zu bauen.
  • Hardcorder schrieb:

    Ich will die Daten vor Leuten sichern, die die Daten abfangen könnten, wenn sie empfangen werden.
    Du willst also die Netzwerkübertragung schützen und nicht die Ablage auf dem Endgerät? Wenn Du Deine Verbosity ein bißchen höher drehst, könnte man Dir hier sicher helfen. ;)
  • Zwei Dinge:

    Daten sollen so übertragen werden, dass sie nicht für jeden, der sie abfängt, einfach so lesbar sind.
    Wenn die Datei erstmal auf dem Gerät ist, soll gewährleistet werden, dass nicht einfach jeder sie lesen kann, wenn der Käufer sie aus seinem Gerät rauszieht und verteilt.
  • Hardcorder schrieb:

    Zwei Dinge:

    Daten sollen so übertragen werden, dass sie nicht für jeden, der sie abfängt, einfach so lesbar sind.
    Wenn die Datei erstmal auf dem Gerät ist, soll gewährleistet werden, dass nicht einfach jeder sie lesen kann, wenn der Käufer sie aus seinem Gerät rauszieht und verteilt.


    selbst wenn du nur einen schlüssel in die app hardcodest wird es nicht JEDER schaffen an die klartextdaten ranzukommen ;)