gesicherte Dateien

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Codeagon
User
Beiträge: 12
Registriert: Sonntag 8. Dezember 2019, 17:25

Guten Tag,
Ich bin gerade dabei mit Python einen Chat über Dateien zu programmieren. Wenn eine Person was schreibt wird es in eine txt-Datei geschrieben und von einem anderen Programm ausgelesen.(Ich weiß das Python nicht unbedingt die beste Programmiersprache für sowas ist.) Das Problem ist, dass wir ein System mit Moderatoren aufbauen wollen, und die Namen dieser Moderatoren auch in txt-Dateien stehen. Leider kann jeder diese txt-Dateien verändern und seinen Namen hineinschreiben. Ich grübele schon lange über einer Lösung aber alle Ansätze scheitern. Passwortgeschütze zip-Dateien können nicht mit Python umgeschrieben werden und Datenbanken können von anderen Python-Programmen geändert werden. :( Hat jemand eine Idee :?: .
Danke
Das deutsche Python-Forum ist das beste Forum der Welt. :geek:
Fire Spike
User
Beiträge: 329
Registriert: Montag 13. Mai 2019, 16:05
Wohnort: Erde

Codeagon hat geschrieben: Samstag 14. Dezember 2019, 17:37 Passwortgeschütze zip-Dateien können nicht mit Python umgeschrieben werden...
Doch, das geht. Schau dir mal das Modul pyzipper an 😉
Codeagon
User
Beiträge: 12
Registriert: Sonntag 8. Dezember 2019, 17:25

Danke! Ich habe es nur mit dem Modul zipfile getestet. Hätte nicht gedacht, dass es da noch Andere gibt.
Das deutsche Python-Forum ist das beste Forum der Welt. :geek:
nezzcarth
User
Beiträge: 1764
Registriert: Samstag 16. April 2011, 12:47

Ich bin mir nicht ganz sicher, ob ich die funktionsweise deines Programms im Detail verstanden habe. Ein gängiges Konzept (unter Unix zumindest; keine Ahnung, wie das in der Windowswelt läuft) ist jedenfalls, dass Server-Prozesse unter einem eigenen Benutzer laufen. Dateien, an denen kein anderer User (außer root) etwas ändern können soll, gehören dem User, erhalten entsprechende Berechtigungen und damit hat sich die von dir beschriebene Problematik für die meisten Szenarien im Grunde weitestgehend erledigt, weil das OS sich darum kümmert.

Will man darüber hinaus gehende "Fälschungssicherheit" erreichen, sind weitere Maßnahmen möglich. Ein relativ leicht zu implementierendes Verfahren wäre etwa, dass du einen kryptographischen Hash (mit Salt) über die Datei bildest, den du dir nach jeder Schreiboperation separat merkst. Das verhindert schon mal, dass jemand ohne vertiefte Kenntnisse Änderungen an der Datei vornimmt. Man kann sich darauf aufbauend noch komplexere Systeme ausdenken. Allerdings muss man meiner Meinung nach dazu sagen, dass der Mechanismus, das du beschrieben hast (Moderatoren stehen einfach in einer Textdatei) konzeptuelle Schwächen hat und vermutlich nicht viel mehr zulässt. Wenn es wirklich halbwes sicher sein soll, müsstest du das denke ich anders aufbauen.
Codeagon hat geschrieben: Samstag 14. Dezember 2019, 17:37 (Ich weiß das Python nicht unbedingt die beste Programmiersprache für sowas ist.)
Aus Neugier: Warum ist Python denn deiner Ansicht nach dafür nicht gut geeignet?
Zuletzt geändert von nezzcarth am Samstag 14. Dezember 2019, 19:46, insgesamt 2-mal geändert.
Benutzeravatar
sparrow
User
Beiträge: 4538
Registriert: Freitag 17. April 2009, 10:28

Läuft das Programm auf einen Server? Dann sollten die Dateien ja eh nicht von den Clients aus abrufbar sein.
Wenn nicht, kannst du dir den Einsatz eines Passworts für die ZIP-Datei sparen, weil das Passwort im Quelltext steht.
Benutzeravatar
noisefloor
User
Beiträge: 4194
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,
Leider kann jeder diese txt-Dateien verändern und seinen Namen hineinschreiben.
Dann ist das wohl "broken by design". Du musst halt die Datei an einem Ort speichern, wo _nicht_ jeder (bzw. niemand außer der Admin) dran kommt.

Passwort-Cracker für Zip-Dateien gibt es ja auch, von daher ist das auch nicht der Weißheit letzter Schluss.

Gruß, noisefloor
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Wenn es keinen Server gibt, der eingehende Verbindungen managt, und weiß, wer privilegiert ist, dann muss man das anders lösen. ZB indem man jede Nachricht eines Admins signiert mit dessen private key, und der Server prüft die dann. Damit ist nachträgliches verändern ausgeschlossen.

Das dieses Vorgehen mit Textdateien bescheuert ist, steht auf einem anderen Blatt.
Sirius3
User
Beiträge: 18272
Registriert: Sonntag 21. Oktober 2012, 17:20

@__deets__: warum sollte man signieren nicht auch mit Textdateien umsetzen können?

@Codeagon: bisher hast Du noch nicht erklärt, wie Du denn denkst, so einen Chat umzusetzen?
Wenn die Datei mit den Moderatorennamen verschlüsselt ist, kann sie auch niemand mehr lesen, um zu wissen, wer denn nun Moderator ist.
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

@Sirius3 ich sage doch, das man das kann. Was ich auch sage ist, einen Chat via Dateien zu implementieren ist eine doofe Idee.
Antworten