2016-05-15 6 views
1

Es gibt eine SQLite-Datenbank in der APP, und ich möchte sie mit SQLCipher verschlüsseln. Wie wir wissen, ist es nicht sicher, ein Passwort in den Codes zu speichern, deshalb werde ich die Paketkennung als Teil des Passwortes verwenden.Ist es sicher, die Paketkennung von iOS APP als Passwort zu verwenden?

Also ich möchte wissen, ob die Bundle-ID ist einfach von einer APP auf einem Gerät oder Jailbreak-Gerät abrufen?

Danke.

+0

Das wäre überhaupt nicht sicher ... –

+1

Es ist trivial für jeden, der Ihre App heruntergeladen hat, um die ipa-Datei zu entpacken und die Info.plist und alle Ihre Ressourcen zu sehen. Nichts in Info.plist ist versteckt. – rmaddy

Antwort

0

Sicherheit ist schwer, wirklich der einzige Schutz ist es, niemandem etwas zu geben. Wenn Sie ihnen etwas geben müssen, ist es am besten, sie nach einem Passwort zu fragen. Wenn Sie sie nicht fragen können, ist die Verschleierung am besten, selbst wenn Sie die Daten verschlüsseln, weil Sie das Kennwort am besten verstecken müssen, damit es schwieriger zu finden ist oder um herauszufinden, wie es erstellt wird.

So ist es leicht herauszufinden, die Bundle-ID der Anwendung, die Frage ist, wie schwer es ist herauszufinden, was Sie als Passwort verwenden und wie wertvoll ist die Daten, die es schützt.

Wenn die Daten wirklich wertvoll sind, dann schützen Sie sie ordnungsgemäß. Dazu müssen Sie beispielsweise den Benutzer nach einem Kennwort fragen und die Daten von einem Server herunterladen, der sie bei Bedarf verschlüsselt.

Wenn Ihr Ziel einfach ist, den Zugriff auf den Anfänger-Hacker zu verhindern, dann generieren Sie eine GUID, kodieren Sie sie in die App als etwas anderes als ein String-Literal, und verwenden Sie das.

Sie können nicht einen entschlossenen und erfahrenen Hacker stoppen, wenn Sie das Kennwort speichern, überall in der App ...

+0

SQLCipher schlägt vor, dass der Schlüssel aus Sicherheitsgründen online gespeichert werden sollte, aber ich möchte nur den Inhalt lokaler SQLite-Dateien schützen. Es ist schlecht für Benutzer, den Server jedes Mal zu verbinden, wenn die Datenbank geöffnet wird. Also versuche ich eine eindeutige ID zu finden und sie als Teil des Schlüssels hinzuzufügen. Außer Bündel-ID, welche eindeutige ID kann verwendet werden und nicht einfach gestohlen werden? Vielen Dank. – jdleung

+0

generieren Sie eine UUID und speichern Sie sie im Schlüsselbund – Wain

+0

eine weitere Frage, wie kann ich eine UUID separat generieren? Es darf kein zufälliger Schlüssel sein, da ich zuerst die Datenbankdateien irgendwo verschlüsseln und auf den Server stellen muss, damit sie von den Benutzern in der APP heruntergeladen werden können. Irgendwelche Vorschläge zum Generieren dieses Schlüssels? Danke. – jdleung

1

Verwenden Sie niemals Bündelkennung des APP als Passwort. Es ist leicht zu entziffern. Für die Ex: Wenn Sie ideviceinstaller Sie das Gerät für die bund der der Apps installiert abfragen können:

ideviceinstaller -U <UUID> -l 

Es gibt einige andere Möglichkeiten zu bündeln id zu entschlüsseln. Daher wird empfohlen, die Bundle-ID nicht als Passwort zu verwenden. Ich hoffe es hilft.

+0

OK, ich entscheide mich, es nicht zu benutzen. Was denken Sie, kann als Teil des Schlüssels verwendet werden und kann nicht einfach gefunden werden? Danke. – jdleung