2009-05-07 11 views
3

Ich weiß, dass es bereits ähnliche Fragen zu SO gibt. Aber meine Frage ist eher theoretisch.Foolproof Versuchsstrategie

Ich frage mich, ist es möglich, ein idiotensicheres Testsystem zu entwerfen? Unter idiotensicher verstehe ich ein solches System, das nicht geknackt werden kann, selbst wenn ein Cracker den Algorithmus eines solchen Systems kennt?

Es tut uns leid, wenn es keine Programmierfrage ist.

Edit: Ich denke, ich sollte meine Frage praktischer machen. Ich frage nach einem ganzen System und nicht nach einer eigenständigen Anwendung. Das System besteht aus einem PC mit Linux Betriebssystem und einer angeschlossenen Hardware. Vielleicht kann ich eine Festplattenverschlüsselung verwenden?

Antwort

4

Wahrscheinlich ist der einzige Weg eine Internet-basierte "Software as a Service" -Anwendung. Wenn Sie keinen Zugriff bereitstellen, verwenden sie die Software nicht. Wenn es sich um eine Desktop-basierte Anwendung handelt, müssten einige wichtige Funktionen immer noch auf einem Online-Server vorhanden sein.

Wenn der Hacker die gesamte Anwendung auf seiner lokalen Maschine hat, kann es in gewisser Weise rückentwickelt und "geknackt" werden. Der einzige Weg, dies zu überwinden, besteht darin, sicherzustellen, dass ein Teil der Funktionalität niemals auf ihrem Rechner ist.

1

Sie könnten Ihre Anwendung so konfigurieren, dass sie von einem Remote-Server abhängig ist, von dem jeder außer Ihnen die Kontrolle hat.

0

Nein. Sie können es sehr schwer machen, aber Ihre Frage beläuft sich auf "wie kann ich jemanden den Code ausführen lassen, aber nicht lassen Sie sie den Code ausführen."

Zum Beispiel könnten Sie einen kleinen aber wichtigen Teil des Codes weglassen und verlangen, dass dieser Code von einem Server heruntergeladen wird, den Sie kontrollieren. Auf diese Weise können Sie die Testaktivität verfolgen und bestimmte Benutzer herunterfahren. Sobald sie jedoch den Code erhalten haben, können sie ihn erfassen und eine funktionsfähige Version Ihres Produkts erstellen.

+0

Ich denke, es geht um "wie kann ich jemanden den Code ausführen lassen, aber nicht zulassen, dass sie es kopieren oder ändern". – Vanuan

+0

Ich nehme an. Oder: "Wie kann ich zulassen, dass jemand den gesamten Code ausführt, aber nicht eine Teilmenge, die er auswählt?" – Darron

3

Der einzige (theoretische) Weg zur rissfesten Software ist ein vollständig geschlossenes System. Wenn Sie alles von der Hardware über das Betriebssystem bis hin zu den Anwendungen und Entwicklungstools steuern, können Sie Manipulationen verhindern.

Beachten Sie, wie ich sagte, dass dies theoretisch war. Zwangsläufig finden Sie einen Hardware-Hacker, der eine Möglichkeit findet, die Hardware zu modifizieren (siehe modchips). Von dort können sie die gewünschte Software laden und die bereits vorhandene Software modifizieren.

Dasselbe Modell, das für physische Sicherheit (Tresore, Tresore usw.) gilt, gilt auch für Software. Es geht darum, das Stehlen/Kopieren der Waren zu verteuern, indem man sie mit legitimen Mitteln beschafft. Sie können niemals ein narrensicheres System erstellen, aber Sie können leicht verhindern, dass Script-Kiddies und Hobby-Hacker Ihr Produkt knacken. Die Profis dagegen leben zu knacken. Sie werden einen Weg finden.