Frage

Leute,

Wir haben eine faszinierende technische Herausforderung. Wie eine sichere Audit-Datei zu schreiben, dass Spuren Nutzung einer Software, so können Lizenzgebühren von der Nutzung es günstiger zu denen dadurch basieren machen, die es weniger verwendet werden.

Im Einzelnen verkauft TickZoom eine Alpha-Generation Handelsplattform für Hedge-Fonds, die derzeit $ 2.000 / Monat Lizenz inklusive Support-Kosten (wird bald erhöhen, um mehr als das Doppelte). Das ist in Ordnung für Institutionen, aber zu teuer für den Einzelnen. Menschen fragen sich oft zu einem günstigeren Preis im Austausch für eine% der Gewinne, die Software, die unter Verwendung, bis sie sich leisten können, die festen Gebühren zu bezahlen.

Wir möchten diesen Vorschlag. Aber wir brauchen einen zuverlässigen Weg, um den Gewinn zu prüfen erzeugte tatsächlich auf der Plattform und eine Möglichkeit, Benutzer zu verhindern, dass „Gaming“ durch das Löschen oder Überschreiben der Audit-Datei dadurch Berichterstattung geringere Erträge als die tatsächlichen.

Diese Anwendung ist in C # geschrieben und dieser Teil des Systems verschleiert wird zumindest was es schwierig macht, den Code zu entschlüsseln.

Die andere Voraussetzung ist, Schreib für jeden Handel auf die Datei, die so auftritt, wie für mehr in die Tiefe Revision in dem Fall zu ermöglichen, dass der Benutzer fühlt sich dort eine gewisse Diskrepanz in der Gesamtgebühr ist. Auf diese Weise können einzelne Handel Gewinne mit Broker Aussagen verglichen werden.

Es ist, natürlich, vorausgesetzt, dass die Datei verschlüsselt wird.

Aber alle Ideen auf, wie es „manipulationssicher“ zu machen? Gerade vor einem einfachen Löschversuch?

Meine erste Vermutung ist die Software immer erfordert eine vorbestehende Audit-Datei zu machen oder es wird laufen verweigern.

Dann, wenn wir die Software liefern sie mit einer „leeren“ Audit-Datei verpackt werden, jedoch in der Tat hat eine Art von fälschungssicheren Überprüfung.

Die nächsten offensichtliche Technik Benutzer könnten versuchen, „Sabotage“ mit der Datei für jemanden einfach Backup wären das Original „leere“ Datei und später nutzen die Audit-Datei dadurch das System täuscht in dem Denken später zu überschreiben, dass es eine war Neuanfang.

Vielleicht kann das durch enthalten eine Art „letzter Aktualisierung Zeitstempel“ und eine Ablaufzeit aufgelöst werden.

Auch ganz andere Lösung Ideen sind willkommen. Wir könnten in diesem Fall gezwungen werden, um eine „nach Hause telefonieren“ Fähigkeit hinzuzufügen, so dass Trades zu unserem zentralen Server protokolliert werden. Aber das scheint unvorteilhaft und fügt möglicherweise einen anderen Fehlerpunkt in einem unternehmenskritischen Anwendung. Im Allgemeinen sie stark „nach Hause telefonieren“ nicht mögen Features mit offensichtlich gute Gründe.

Mit freundlichen Grüßen, Waynek

War es hilfreich?

Lösung

Hier ist ein Gedanke - immer dann, wenn der Benutzer eine Sitzung mit der Software beendet wird, erzeugen ein Hash basierend auf dem Audit-Log. Verschlüsseln Sie den Hash, dann schreiben Sie es heraus auf eine andere Datei, vielleicht unter Ihren Binärdateien versteckt oder in der Registrierung.

Wenn der Benutzer das nächste Mal die Anwendung öffnet, lesen Sie die Protokolldatei, die Hash-Wieder erzeugen und sehen, ob sie den aufgezeichneten Wert übereinstimmt. Wenn es nicht der Fall ist, schließen Sie die Anwendung mit einem „Audit-Datei manipuliert“ Fehlermeldung.

Nicht ganz narrensicher, aber wäre ziemlich fest sein.

Auch überprüfen Sie diese Frage aus

Andere Tipps

Die Aussage des Problems ist:

  • wir trauen dem Client; der Kunde könnte feindlich sein.
  • wollen wir die Kunden uns Daten zu senden, die wir vertrauen können.

Es gibt keine Lösung für dieses Problem. Genauso gut könnte man sagen, „ich zwei Jungs finden will, eine mit dem Namen Bob, einen namens Bill, so dass Bob ein Kopf größer als Bill und Bill ist ein Kopf größer als Bob“. Sie sind nicht mit dieser Eigenschaft.

finden zwei Jungs gehen

Sie absolut positiv nicht vertrauen kann, alles, was von einer Maschine kommt, dass Sie nicht selbst das könnte von einer feindlichen Client gehört. Mein Rat ist, nicht Ihre wertvolle Zeit damit, ein unmögliches Problem zu lösen; verbringt die Zeit auf dem Server zu machen, die Sie selbst tun und Vertrauen, robust gegen feindliche Kunden.

Nein, ich glaube nicht, es ist alles, was Sie können alle das Ergebnis in Echtzeit zurück zu Ihrem Server als Bericht andere tun, aber auch das Problem hat.

- Edit:

Sie sind nur die Optionen, wie ich es sehe, sind:

  • Konvertieren Sie das System auf Web-basierte (oder zumindest Thin-Client), damit alle auf dem Server die Transaktionen zu machen

Natürlich ist dies wahrscheinlich ziemlich unpraktisch, wenn Sie bereits ein ganzes lokal-basiertes System entwickelt sind

  • Denken Sie einige ausgeklügeltes System auf die „harten“ zu brechen und hoffe, die Leute ist nicht brechen

Und innerhalb dieser Methode verbinden, eine Art, die zeigt, Profilieren, wenn die Geschäfte X verdienen, und plötzlich X-sigificantAmount, können Sie feststellen, dass sie nicht einmal profitabel sind nicht mehr, so dass wahrscheinlich das System zu betrügen (oder Ausgehen Geschäfts :) Aber diese Seitenstreifen auf ganz eine Verletzung der Privatsphäre und nicht auf allen geeigneten sein.

Praktisch, ich glaube, Sie werden die Risiken gegen den möglichen Gewinn abwägen müssen, oder einen anderen Winkel finden, wie man diesen Menschen zu verkaufen (dh nur lassen die Schnittstelle / app selbst X insgesamt Mittel verwalten, wenn es geht über , prompt für pro-Version, oder was auch immer).

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