Ich verschlüssele heruntergeladene Dateien und speichere sie lokal im Dokumentenverzeichnis der App.
Um sie zu lesen, müssen Sie diese Datei entschlüsseln und einige davon vorübergehend speichern.
Meine Bedenken sind:
1.wenn ich sie im doc-Verzeichnis für die Zeit, die sie verwendet werden, speichern, kann man für dieses Zeitfenster diese Dateien mit Tools wie iExplorer bekommen.
2. Meine Idee ist es, sie für die Zeit, in der sie benutzt werden, im Speicher zu speichern und den Tresor nach dem Gebrauch zu spülen. Diese Option ist gut für kleine Dateien, aber für große Dateien sagen 50 MB oder Video von 100 MB, ich habe Angst, dass App Speicher Warnung im Ergebnis wird abrupt beendet werden.
Ich möchte den besten Ansatz dafür wissen.
Es gibt keine perfekte Sicherheit, um lokale Dateien auf sichere Weise zu speichern . Wenn eine Person vollen Zugriff auf das Gerät hat, kann sie immer einen Weg finden, die Dateien zu entschlüsseln, solange Ihre Anwendung es entschlüsseln kann.
Die einzige Frage ist: Wie viel Aufwand ist notwendig, um die Dateien zu entschlüsseln?
Wenn Ihre einzige Sorge ist, dass eine Person den iExplorer verwenden kann, um diese Dateien zu kopieren und zu öffnen, wird eine einfache lokale symmetrische Verschlüsselung ausreichen.
Fügen Sie einfach einen zufälligen symmetrischen Schlüssel in Ihre Anwendung ein und verschlüsseln Sie die Daten blockweise, während Sie sie herunterladen.
Sie können das komfortable Framework "Security Transforms" verwenden, um die symmetrische Verschlüsselung durchzuführen. Es gibt einige gute Beispiele in der Apple-Dokumentation .
Wenn Sie die Dateien laden, können Sie sie mit demselben Schlüssel entschlüsseln, während Sie sie aus dem Dateisystem laden.
Nur um Dinge zu verdeutlichen: Dies ist kein perfekter Schutz der Dateien. Aber um die Dateien zu entschlüsseln, hat man Zugriff auf Ihre App-Binärdatei. Analysieren Sie diese Binärdatei in einem Debugger und suchen Sie nach dem Entschlüsselungsteil, um Ihren symmetrischen Schlüssel zu extrahieren. Dies ist sehr mühsam, nur um die Dateien zu entschlüsseln.
Teilen Sie Ihre Dateien vor dem Speichern in kleinere Größen und entschlüsseln Sie sie anschließend beim Laden.
Spätere Bearbeitung: Ich habe bemerkt, dass dies in den Kommentaren erwähnt wird. Ich bin damit einverstanden, Dateien zu teilen, ist nicht die einfachste Sache der Welt, aber vermutlich brauchst du das nur für Video. Über 100 MB ist viel Text oder Audio. Wenn Ihr PDF so viel wiegt, ist es wahrscheinlich gescannter Text, und Sie können es in eine Serie umwandeln, wenn Bilder vorhanden sind.
Und ja, spaltet sich besser serverseitig, will nicht, dass der Benutzer Akku in Videoverarbeitung verschwendet.
Entschlüsseln Sie sie, verschleiern Sie sie mit einem Spielzeugalgorithmus (z. B. XOR mit einem konstanten Block), und speichern Sie sie in Dokumenten. Wenn nötig, laden und entschlüsseln.
Da das Problem in der Theorie keine Lösung hat (ein entschlossener Angreifer kann Ihren Prozessspeicher immerhin lesen), ist es eine ebenso gute Lösung wie jeder andere.
Tags und Links objective-c ios encryption