SQLite Datenbank verschlüsseln, bzw. den Zugriff über das App Paket verhindern

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • SQLite Datenbank verschlüsseln, bzw. den Zugriff über das App Paket verhindern

    Hallo zusammen,

    wenn man eine App aus dem App Store kauft, dann kann man sich ja den Inhalt des App Paketes anschauen. Man findet dann auch die SQLite Datenbank der App, in der bei mir schon alle Inhalte liegen.
    Gibt es eine Möglichkeit zu verhindern, dass man die SQLite Datenbank aus einer App herausholen und dann direkt weiterverwenden kann?

    Ich möchte nämlich vermeiden, das mein Datenbankinhalt direkt ausgelesen und weiterverwendet werden kann.

    Danke schon mal
  • Sind die Daten sensibel oder sollen diese nur nirgendwo anders verwendet werden. Im ersten Fall empfiehlt es sich natürlich die gesamte Datenbank komplett zu verschlüsseln. Im zweiten Fall ist es ggf. schon ausreichend einzelne Werte zu verschlüsseln. Wenn man z.B. bei der DVD-Sammlung alle Filmtitel verschlüsselt sind die Daten für eine anderes Programm relativ uninteressant. Andererseits ist in diesem Fall die Frage ob der Aufwand (auch wenn er ziemlich gering ist) überhaupt lohnt. Wer macht sich schon die Mühe eine Datenbank aus einer App zu "klauen" wenn ihm die Daten bekannt sind. Ein Schutz vor echten Dieben ist nur die erste Lösung.
  • Danke für die Antworten.
    Ich würde gerne Textteile in der DB verschlüsseln, diese verschlüsselt in die DB packen & dann später wieder entschlüsseln.
    Wie mache ich das denn am besten, besonders auch im Hinblick auf Review-Sicherheit. So dass Apple die später auch nicht ablehnt.


    Agenor schrieb:

    schon ausreichend einzelne Werte zu verschlüsseln
  • cuSoon schrieb:

    Was kann ich denn da am besten nehmen? Muss jetzt nicht die "hight end" Sicherheit sein.

    Als erstes solltest Du Dir vielleicht mal die eingebaute Verschlüsselung von iOS oder den SQLCipher (s. o.) ansehen, ob die für Dein Problem nicht ausreicht. Falls Du es dann immer noch selbst machen willst / musst, solltest Du Dir mal symmetrische Verfahren ansehen. Das macht aber meines Erachtens nur Sinn, wenn der Nutzer ein Passwort eingibt. Ansonsten kann es ein Angreifer ja aus dem Programmcode lesen.
    „Meine Komplikation hatte eine Komplikation.“
  • Um die Daten einfach "unleserlich" zu machen reicht wie gesagt eine einfache Verschlüsselung. Eine XOR Verschlüsselung lässt sich recht einfach selber umsetzten. Wie macmoonshine aber schon sagt ist jedes symmetrische Verfahren (dazu gehört auch XOR) recht anfällig wenn du Schlüssel im Programm als Konstante speicherst. Sollte sich jemand wirklich die Mühe machen lässt sich das relativ einfach knacken. Besser wäre es schon den Schlüssel zufällig zu erzeugen und diesen z.B. in der Keychain zu hinterlegen. Dann kannst du die Daten aber auch wirklich nur in der App verwenden bzw. muss dafür sorgen, dass man den Schlüssel auch exportieren kann.

    Wirklich sinnvoll ist das alles nicht. Entweder sind die Daten sensibel und müssen geschützt werden oder eben nicht. In ersterem Fall sollte man schon eine "echte" Verschlüsselung verwenden die für potentielle Angreifer wirklich eine Hürde darstellt. Sind die Daten nicht sensibel lohnt der Aufwand meiner Meinung nach nicht.