Gibt es eine Möglichkeit, ein statisches Passwort so zu speichern, dass es in der kompilierten App wirklich schwer zu finden ist?Passwort im C-Quellcode verschlüsseln
Es gibt zwei verschiedene Apps, für die ich brauche. One ist ein leichter FTP-Client für Windows, der nur mit einem fest codierten Server verbunden ist. Der andere ist ein Objective-C-Spiel, mit dem Benutzer Level-Packs erstellen und mit Passwörtern speichern können. Sie können ohne Passwort gespielt, aber nicht im Level-Editor geöffnet werden. Ich verschlüssele die Passwörter mit AES, aber ich muss irgendwie das Kennwort für Entschlüsselung speichern.
Die einzige Idee, die ich bisher gefunden habe, ist das Speichern des Passworts nicht als eine Zeichenfolge, sondern als mehrere Zeichenfolgen. Das könnte wirklich gut für das Spiel funktionieren, weil ich nur Strings verbinden kann, die schon da sind. Oder ich könnte es als eine lange Zeichenfolge speichern und einen geheimen Algorithmus verwenden, um das Kennwort aus dieser Zeichenfolge abzurufen - obwohl das die Frage aufwirft: Können C-Anwendungen unter Windows oder Cocoa-Anwendungen unter OS X einfach dekomprimiert werden, um diesen Algorithmus zu finden?
Gibt es sicherere Möglichkeiten, das zu tun?
Ich denke, eine wirklich simple Art, die immer noch wirksam gegen grundlegende Ressourceninspektion ist, ist das Speichern der Passwort-Zeichenfolge XOR'd mit einer Nummer (separat gespeichert). Dann XOR es mit der gleichen Nummer zu "entschlüsseln".Dies würde weder ernsthaften Dekompilierungsversuchen noch einer Speicherinspektion standhalten, insbesondere wenn Sie die dekodierte Zeichenfolge für längere Zeit im Speicher ablegen. – Bob
http://en.wikipedia.org/wiki/Security_through_obscurity –
Das (Sicherheit durch Dunkelheit) ist die Kategorie von Dingen wie das Zusammensetzen verschiedener Strings oder das XORing mit Zahlen, oder? Ich denke, ich werde nur einige Strings XOR, und verwenden Sie Wörter, die nicht wie ein Passwort klingen, wenn jemand aktiv nach einem sucht. Ich möchte nicht zu viel darüber nachdenken, denn es sieht so aus, als könnte jede Verschlüsselung durchbrochen werden, wenn der Angreifer die App auf seinem eigenen System hat. Vielen Dank für die Hinweise, wie nicht die dekodierte Zeichenfolge zu lange im Speicher zu halten :) –