Frage

Mein Kunde will den HTML-Code für ihre medizinischen Bücher in dem iPhone-Bundle zum Verschlüsseln / komprimieren, ihre IP zu schützen.

Was ist ein guter Weg, um diese Datei für den App-Bundle vorzubereiten, und welche ergänzenden Bibliotheken (C, Obj-C) soll ich die Entschlüsselung und Dekomprimierung auf dem ersten Start der App zu tun?

Kopieren Sie die Datei auf ~ / Dokumente, dann arbeitet es wie die beste Lösung zu sein scheint. Gedanken?

War es hilfreich?

Lösung

Hier ein paar Gedanken.

Wenn das Buch Text alle alphanumerischen Daten vorhanden sind, dann speichern Sie die Daten nicht als ASCII - speichern Sie sie in Ihrem eigenen binär codierten Format (zum Beispiel verwenden 5 Bits anstelle von 8 und in Worte packen). Das gibt Ihnen ein wenig Kompression, leichte Verschleierung und sehr billig (in Taktzyklen) Dekompression. Sie würden ein Datenformat haben, die schnell auf der Fliege den Zugriff auf und den lässigen neugierigen Hacker aus dem Text halten. Taktzyklen würde mein Hauptanliegen und Sicherheit Sekunde.

Eine weitere Idee ist speichern die Entschlüsselungsschlüssel für eine typische Blowfish-Verschlüsselung in verschleierten Format in der App. Geteilt in zwei oder drei Konstanten, die eine ungerade Operation erfordern beispielsweise wiederherzustellen. Aber natürlich jetzt der Overhead von Blowfish oder was auch immer wird Ihr Anliegen.

Da Sie nicht in der Lage sein, perfekte Sicherheit zu implementieren (Perfektion ist extrem teuer), werden die IP-Besitzer müssen traditionelles Urheberrecht und Geschäftsgeheimnis Techniken verwenden, um in vollem Umfang ihr Eigentum zu schützen. Sie haben machten es schwieriger zu hacken, aber es ist immer noch bis zu den Anwälten fleißig zu sein, nur ein Buch auf dem Regal im reservierten Bereich der Bibliothek (keine Fotokopien bitte!).

Prost

Andere Tipps

Das ist ziemlich verzwickt ... fast unmöglich es wirklich unzerbrechlich zu machen. Jede reasonnably motivierte Person in der Lage, durch sie zu durchdringen. Sie werden nur machen es ein wenig schwerer zu tun. In jedem Fall können Sie auf jeden Fall nicht speichern alle geheimen Schlüssel in dem Bündel selbst. Sie müßten den Entschlüsselungsschlüssel über einen sicheren Kanal von einem Server und verwenden Sie es sicher erhalten, je nach Bedarf. Selbst dann jemand Jailbreak tun würde wahrscheinlich in der Lage seines GDB über Ihr laufendes Programm auszuführen und den geheimen Schlüssel in RAM extrahiert + der geheime Schlüssel würde unter allen Nutzern des App geteilt werden ... Sie versuchen, im Wesentlichen ein DRM-Schema zu implementieren , die von Natur aus durch Design fehlerhaft ist ... Wenn Sie die offline-Zugriff benötigen, können Sie die Daten ziehen, wie aus einer sicheren erver benötigt ... mindestens Du „könnte“ Drosselinformationslecks ...

würde ich die Dokumente verschlüsselt halten, wenn ich Sie wäre, und sie nur entschlüsseln, je nach Bedarf. Man würde leicht in der Lage sein, die entschlüsselten Dokumente auf einem jailbroken Gerät zugreifen zu können.

Siehe „Übersicht über die Sicherheit“ Dokument und der CryptoExercise Beispielcode für Verschlüsselungstechniken

Sie werden wahrscheinlich mögen es nicht, aber der beste Weg ist, einfach HTML nicht zu verwenden. Sobald Sie die entschlüsselte Datei zu UIWebView passieren, ist es sehr einfach für ein böswilliger Benutzer auf dieser Ebene zu stehlen, zu besiegen jeden Zweck Verschlüsselungsalgorithmus hatte. Eine UIView Unterklasse mit benutzerdefinierten Zeichencode und einem benutzerdefinierten verschlüsselten Trägerformat wird viel schwieriger sein, zu arbeiten, um

Mac OS X und iPhone OS Security Service :

  

Sie können mit Schlüsseldienste   verschlüsseln und speichern geringe Mengen an   Daten (siehe Keychain Services Referenz   und Keychain Dienstleistungen Programmierung   Führer ). Wenn Sie möchten, verschlüsseln oder   entschlüsseln größere Datenmengen in Mac   OS X können Sie die gemeinsame Sicherheit verwenden   Services Manager (CSSM) Cryptographic   Service Manager. Dieser Manager auch   hat Funktionen zum Erstellen und Überprüfen   digitale Signaturen erzeugen   kryptographischer Schlüssel und erstellen   Kryptographie-Hashes. In iPhone OS,   das Zertifikat, Schlüssel, und Vertrauen   Services API bietet Funktionen für   Verschlüsselungsschlüssel zu erzeugen, die Schaffung   und Verifizieren digitaler Signaturen und   Blöcke von Daten zu verschlüsseln; sehen    Zertifikat, Schlüssel, und Vertrauen Dienstleistungen   Referenz .

Es ist immer eine Wahl zwischen Leistung (Verschlüsselung einfach nicht kommen kostenlos) und Sicherheit (Sicherheit und alles andere, wirklich). Aber was ist sonst noch neu? Wenn Sie die einzelnen Dateien klein genug halten, vielleicht Entschlüsselung nicht verlangsamt Sie nicht nach unten viel. Alternativ können Sie prädiktive Entschlüsselung betrachten, so dass Sie bestimmte Dateien im Hintergrund entschlüsselt werden, sagen diejenigen, die aus der aktuell angezeigten Datei verknüpft, etc. Ich weiß aber, dass concurrancy auf dem iPhone kann ziemlich fleckig sein (ich weiß nicht, wie ich fallen gelassen haben nicht das Geld für eine Lizenz). Sie können auch Leistungssteigerungen realisieren nur durch diese Dateien encrytping, die es wirklich brauchen; ist ein Index / Inhaltsverzeichnis oder andere häufig abgerufenen Datei wirklich verschlüsselt werden müssen? Zählt das als IP Ihr Kunde macht sich Sorgen um?

Für Kompression kann ich QuickLZ (schnellster Motor Ich sah, großes Verdichtungsverhältnis) empfehlen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top