2010-11-27 5 views
7

Ich entwickle eine iOS-App für das Gesundheitswesen. Ich möchte, dass die Daten meiner Benutzer verschlüsselt werden. Wenn das iPhone gestohlen wird, kann der Dieb nicht auf seine Gesundheitsdaten zugreifen. Der rechtmäßige Eigentümer SOLLTE auf seine Informationen zugreifen können (also anders als this question).Wie sollte ich eine SQLite-Datenbank in iOS sichern?

Ich überlege mit SQLCipher die gesamte DB zu verschlüsseln und das SQLCipher Passwort in Keychain zu setzen.

Ist das eine gute Technik?

Versteh ich auch richtig, dass - da alles auf dem Gerät ist - ein entschlossener Hacker in der Lage sein wird, einzubrechen, egal was?

+0

mögliches Duplikat von [Sichere Informationen auf dem iPhone SQLite DB] (http://stackoverflow.com/questions/3335364/secure-information-contained-on-iphone-sqlite-db) –

+0

Siehe auch [iPhone SQLite Passwortfeld Verschlüsselung] (http://stackoverflow.com/questions/3017581/iphone-sqlite-password-field-encryption) –

+0

Nun, es ist nicht wirklich ein Duplikat dieser Frage, weil die gesicherten Daten nicht meine (der App-Entwickler) ist der Benutzer. Ich versuche nicht, meine IP vor Konkurrenten zu schützen, ich versuche, die Gesundheitsinformationen des Benutzers vor Dieben oder Leuten zu schützen, die auf dem iPhone-Backup herumschnüffeln. – Ford

Antwort

2

Ich denke, dass Ihre Lösung sens machen. Es bietet ziemlich gute Sicherheit und hält Ihre App einfach zu bedienen.

Die Hauptsache, die Sie mit Schlüsselbund haben, ist, dass die Benutzer-Backups gesichert werden, da Schlüsselbund-Inhalt nicht mit iphone gesichert wird. (Aber ich denke, dass Sie das bereits wissen)

Aber das ist riesiges Sicherheitsplus, da der potentielle Hacker physischen Zugang zum iphone bekommen muss. Darüber hinaus, wenn das iPhone durch Pin blockiert ist, ist es wahrscheinlich, dass der einzige schnelle Weg, um die Daten aus dem physischen Speicher Zugriff auf den Flash-Speicher des Geräts, die nicht die einfachste Sache zu tun ist.

Um ehrlich zu sein glaube ich nicht, dass Benutzer Ihre App verwenden werden, wenn Sie sie zwingen, lange Passwörter einzugeben. Und wenn Sie zulassen, dass sie ein beliebiges Passwort verwenden, können Hacker die Datenbankverschlüsselung mithilfe von Wörterbuchangriffen durchbrechen.

+0

Wie kann ich damit umgehen .. – Jitendra

4

Ziel der Zwei-Faktor-Verschlüsselung: Sie sollten die Datenbank wie beschrieben verschlüsseln, müssen jedoch bei jedem Start der Anwendung ein Kennwort eingeben. Der Schlüssel der Datenbank wäre ein Hash des Passworts, gesalzen mit einem Nonce. Speichere das Passwort Salz im Schlüsselbund.

Ein entschlossener Hacker könnte durch Dateisystemzugriff auf die verschlüsselte SQLite-Datenbank zugreifen. Wenn sie in der Lage wären, die Schlüsselbundverschlüsselung zu durchbrechen, könnten sie die Datenbank leicht knacken, aber indem sie ein Passwort (oder eine Passphrase) vom Benutzer verlangen, hilft es gegen diesen Angriff.

Verwandte Themen