Frage

Was sind die wichtigsten Funktionen soll ich beachten, wenn ich einen einfachen fälschungssicher und Nachweisbarkeit System erstellen? Bei dieser Frage konzentriere ich mich vor allem auf die Integrität der Datenbankzeilen. Dies ist keine Sicherheitsberechtigung Frage.

eine Fußball-Datenbank als Beispiel, einige der wichtigsten Features, die ich würde implementieren sind:

  1. Prevent DBA von der Zeilendaten mit traditionellen SQL ändern. 1 als das Ergebnis, wenn DBA das Ergebnis auf 2 geändert: Zum Beispiel hat, wenn die Datenbankzeile bereits 2 3 gespeichert sind, sollten wir in der Lage sein, um die Änderung zu erkennen. Alle Änderungen sollten über die Hauptanwendung erfolgen.

  2. Verhindern Sie das Kopieren einer Zeile der Daten in einer anderen Zeile von der Nutzung der Back-End-Änderungen. Wir sollten die Betrugs Änderungen erkennen können.

Gibt es andere Probleme oder Merkmale sollte ich für mein System betrugssicher zu machen? Was sind die besten Praktiken, dass ich bewusst sein sollten? Alle Hinweise würden die meisten geschätzt werden.

Vielen Dank im Voraus.

War es hilfreich?

Lösung

Erstellen Sie eine Spalte, die eine kryptographische Signatur der anderen Spalten ist. Solange die ID in der Signaturberechnung enthalten ist, können Sie keine Zeile kopieren, da die ID ändern würde. Keine Änderungen durchgeführt werden, um den Hash ohne Neuberechnung, so dass die Änderung auch nachweisbar sein würde DBA.

Das ist nicht das Problem der DBAs angehen Entfernen Reihen, wohlgemerkt - es bestätigt nur, dass jede einzelne Zeile ging durch die entsprechende Geschäftslogik. Sie könnten möglicherweise eine Signatur für die gesamte Tabelle, aber das beginnt ziemlich schwer bekommen!

Natürlich irgendwann müssen Sie ein Geheimnis - den privaten Teil des Signaturschlüssels. Ihr Code wird Zugriff auf das brauchen ... und wer schreibt diesen Code könnte sind eine Hintertür selbst den privaten Schlüssel zu E-Mail usw. Früher oder später haben Sie Vertrauen jemand , Ich vermute. (Sie können mehrere Signaturen gelten, natürlich, aus verschiedenen Teams -., So dass die Teams collude um Schmiede etwas hätte)

Andere Tipps

Um perfekt stumpf. Sie verschwenden Ihre Zeit

DBAs haben das Äquivalent von Root-Zugriff auf die Datenbank. Wenn nicht, dann werden sie eher als unwirksam. Die gleichen Probleme entstehen mit Systemadministratoren und im Grunde alles, was Sie tun können, ist wenig mehr als ein Placebo am besten. Das einzige, was Sie können mit dieser Ebene des Zugangs über eine böswillige Person tun wird ihnen den Zugang nicht geben zu beginnen.

Das Beste, was Sie tun können, ist es macht einen kleine härter durch einen Audit-Trail zu schaffen. Log, wenn sich Benutzer anmelden, abmelden, was sie tun, welche Ereignisse das System reagiert auf und so weiter. Der einzige wirkliche Wert dieser ist in der Lage, (hoffentlich) rekonstruieren, was passiert, wenn Sie später manuell auf sie zu gehen und das Aussehen entscheiden.

Als das Ergebnis eines Fußballspiels zu ändern, fragen Sie sich, wie wahrscheinlich, dass das geschehen ist. Natürlich ist es tatsächlich nicht das Ergebnis des Fußballspiels ändern. Es ist einfach zu ändern, wie es aufgenommen wurde. Jeder, der es oder teilgenommen gesehen hat, wird sich bewusst sein das tatsächliche Ergebnis so Welchen Wert hat es in jemanden, der es auf dem System zu ändern?

In Unternehmen, Fehler und Böswilligkeit und Versöhnungsprozesse behandelt. Ein Börsenmakler wird ein Team hat, die Berichte über läuft, was auf dem System und vergleicht es tatsächlich getan Banktransaktionen. Etwaige Abweichungen erhalten rote Liste steht. So können Sie Ihr Guthaben auf dem System ändern könnten aber wird es, gesichert.

Der andere Teil dieses Rätsels ist, dass Beschränkungen der DBA-Aktivität wird nicht wirklich das Problem lösen. Anwendungsentwickler können beliebigen Code freigeben. Auch wenn es das System noch überprüft hat kann bei Build-Ingenieuren oder jemand mit Root-Level-Zugriff auf die Produktionsumgebung bricht eine modifizierte Version kompilieren und ausführen.

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