Ach ich werde mich einfach mal mit RSA beschäftigen und nen cracker coden was auch gerade ein Post im Forum ist.

Hi Y0Gi!Y0Gi hat geschrieben:Also, nochmal, warum führst du die Berechnungen nicht auf dem Server aus, wo sie definitiv hingehören?
OMG, das hat nicht der Client zu entscheiden! Diese Berechnung gehört auf den Server, dann stellt sich diese Frage gar nicht erst.gerold hat geschrieben:Hi Y0Gi!Y0Gi hat geschrieben:Also, nochmal, warum führst du die Berechnungen nicht auf dem Server aus, wo sie definitiv hingehören?
Ich antworte einfach mal an Stelle von Sr4l.
Weil es egal ist, ob ich die Berechnung am Client durchführe und dann einen gefälschten, verschlüsselten String an den Server schicke, oder ob ich dem Server gefälschte Basisdaten (Punktezahl, Anzahl Bonuspunkte, ...) übermittle.
Es geht ja gerade darum, dass diese Daten an den Server übermittelt werden können -- aber nur vom (unveränderten) Original-Python-Programm -- so dass keiner falsche Punktzahlen an den Server schicken kann.
Es soll also keiner dem Server mitteilen können, dass er den Drachen getötet hat, wenn er es noch nicht geschafft hat.
Gar nicht!Die Frage ist: Wie kann ich vom Server aus feststellen, ob mir die Daten untergeschoben, oder wirklich vom unveränderten Python-Programm geschickt wurden?
Na zum Beispiel ist es egal wie gut der Schlüssel im C-Teil versteckt ist und auf wieviele Variablen er verteilt ist. Interessant ist der Programmpunkt wo entschieden wird, ob der Schlüssel richtig oder falsch ist. Das ist im Regelfall ein einfacher Branch-Befehl. Ich war zu DOS-Zeiten bei Passwortabfragen von Spielen der Art: "Bitte geben sie das X. Wort im Y. Absatz auf Seite Z des Handbuchs ein" immer wieder überrascht wie einfach das fast immer per Debugger mit Breakpoints und Single-Step durch das Programm zu lösen war, in dem man einfach den Punkt herausgefunden hat, wo zwischen Richtig und Falsch entschieden wurde. Dabei war es völlig egal wie kompliziert der Code zum überprüfen war -- am Ende stand ein Branch-Befehl den man einfach nur negieren brauchte. Dann konnte man jedes Wort eingeben -- ausser das richtige.Einen evt. möglichen Ansatz habe ich in einem vorherigen Beitrag aufgezeigt.
Wenn ich falsch liege -- dann bessert mich aus.
Hi BlackJack!BlackJack hat geschrieben:Die Frage von Y0Gi ist also immer noch nicht beantwortet
Wenn die Clients nicht vertrauenswürdig sind, dann musst Du alles auf dem Server berechnen und überprüfen. Da führt kein Weg dran vorbei ohne Lücken zu öffnen. Und natürlich muss man auch dann noch überprüfen ob der Client Aktionen durchführen will, die er gar nicht darf, wie z.B. in der Einheiten-Bewegen-Runde einen Angriff durchführen.Sr4l hat geschrieben:Ich werde es jedoch akzeptieren das es keine vernünftige Lösung gibt.