Überprüfen, ob ein Server den gleichen Script ausführt

Alles, was nicht direkt mit Python-Problemen zu tun hat. Dies ist auch der perfekte Platz für Jobangebote.
Antworten
bennr01
User
Beiträge: 3
Registriert: Montag 10. Juni 2013, 21:16

Hallo allesamt,
dies ist zwar ein Problem, welches eigentlich eher in das "Netzwerkprogrammierung"-Forum passt, allerdings nicht Python-spezifisch ist und ich daher unter "Offtopic" poste.
Kennt jemand einen Möglichkeit, zu überprüfen, ob ein anderer Server den exakt gleichen Script/Code ausführt? (Davon ausgehend, dass der andere Server "böse" ist, also modifizierten Code ausführt und versucht, diese Prüfung zu bestehen?
Dieses Problem bezieht sich auf eine Konzeptidee eines dezentrales Netzwerk (mehrere gleichberechtigte Server, die von jeden gehostet werden können und normalerweise einen Open-Source-Code ausführen).

Hier noch einmal zusammengefasst:
Wie kann Server A sichergehen, dass Server B den exakt gleichen Script/Code ausführt, wenn Server B versucht, Server A zu täuschen?
Dabei ist der Script/Code von Server A Open-Source und der von Server B in böser Absicht (z.B. NSA) verfälscht, was Server A aber nicht weis.

Eine bloße Überprüfung auf Gleichheit (==) eines angefragten Source-codes wäre ja nicht sicher genug, da es nicht garantiert ist, dass Server B den Script/Code, denn er wirklich ausführt zurücksendet (B kennt den Original-Script, er könnte diesen also stattdessen senden).

Schon einmal vielen Dank für mögliche Antworten (Auch wenn ich befürchte, dass es keinen 100% sicheren Weg gibt).
hans
User
Beiträge: 728
Registriert: Sonntag 22. September 2002, 08:32
Wohnort: Sauerland
Kontaktdaten:

Bin absolut kein Spezialist, aber mit meinem begrenztem Wissen würde ich nach jeder Änderung des Codes auf Server A einen Fingerprint, z.B. SHA oder MD5, machen und nicht veröffentlichen. Server B erstellt den Fingerprint auf gleiche Weise wie A und sendet diesen an A. A verifiziert bei Gleichheit oder lehnt die Verifizierung ab.

Arbeitet das DNF System (Installer unter Linux) nicht ähnlich?

Bin mal gespannt, was die Cracks hier zu diesem Thema zu sagen haben
BlackJack

@hans: Das geht so nicht denn wenn B auf bösartige Weise verändert wird, dann wird derjenige der das gemacht hat, natürlich dafür sorgen, dass B weiterhin den Fingerabdruck einer unveränderten Version liefern wird.

Das nicht-veröffentlichen des Fingerabdrucks ist auch sinnfrei, denn wenn man den bei unverändertem Code berechnet, dann hat man ja den Fingerabdruck den Du nicht veröffentlichen willst. Also was ist der Sinn davon den ”geheim” zu halten, wenn ihn doch jeder berechnen kann‽

@bennr01: Das geht schlicht nicht. Solange Du nicht die Kontrolle über den Server hast, kannst Du nicht feststellen oder sicherstellen, dass der eine unveränderte Version eines Programms laufen lässt.
bennr01
User
Beiträge: 3
Registriert: Montag 10. Juni 2013, 21:16

hans hat geschrieben:Bin absolut kein Spezialist, aber mit meinem begrenztem Wissen würde ich nach jeder Änderung des Codes auf Server A einen Fingerprint, z.B. SHA oder MD5, machen und nicht veröffentlichen. Server B erstellt den Fingerprint auf gleiche Weise wie A und sendet diesen an A. A verifiziert bei Gleichheit oder lehnt die Verifizierung ab.

Arbeitet das DNF System (Installer unter Linux) nicht ähnlich?

Bin mal gespannt, was die Cracks hier zu diesem Thema zu sagen haben
Danke für die Antwort, aber wie BlackJack bereits erkannt hat, würde Server B aufgrund des Open-Source-Codes ebenfalls einen Fingerprint des Source-Codes erstellen und somit diesen als Antwort benutzen können. Aber danke für den Tipp mit dem DNF-System, ich werde mal überprüfen, ob ich bei diesen eine Lösung für das Problem finde.
BlackJack hat geschrieben:@hans: Das geht so nicht denn wenn B auf bösartige Weise verändert wird, dann wird derjenige der das gemacht hat, natürlich dafür sorgen, dass B weiterhin den Fingerabdruck einer unveränderten Version liefern wird.

Das nicht-veröffentlichen des Fingerabdrucks ist auch sinnfrei, denn wenn man den bei unverändertem Code berechnet, dann hat man ja den Fingerabdruck den Du nicht veröffentlichen willst. Also was ist der Sinn davon den ”geheim” zu halten, wenn ihn doch jeder berechnen kann‽

@bennr01: Das geht schlicht nicht. Solange Du nicht die Kontrolle über den Server hast, kannst Du nicht feststellen oder sicherstellen, dass der eine unveränderte Version eines Programms laufen lässt.
Das hatte ich befürchtet. Aber ebenfalls danke für deine Antwort.
Antworten