XOR-Verschlüsselung

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.
Joghurt
User
Beiträge: 877
Registriert: Dienstag 15. Februar 2005, 15:07

murph hat geschrieben:Ich habe grade die Idee, den md5hash aus dem Text zu ziehen und zu vergleichen mit dem auf dem Server gelegenden Wert (über threading zuerst das ausrechnen lassen und danach den md5-hash vom skript zu ziehen und dem Server senden).
Im Prinzip ist das auch das, was man mit signieren macht. Einziger, aber wichtiger Unterschied ist, dass die MD5 mit einem assymetrischen Verfahren verschlüsselt wird; jeder kann die MD5 entschlüsseln, aber nur der Sender kann sie verschlüsseln.

Denn ansonsten würde der Angreifer einfach den Text ändern und die MD5 anpassen.

Wie schon gesagt, schau dir PyCrypto oder yawPyCrypto an, anstatt das Rad neu zu erfinden.

Oder nimm SSL.
murph
User
Beiträge: 622
Registriert: Freitag 14. April 2006, 19:23
Kontaktdaten:

ich dachte, md5 wäre genau anders.
Jeder kann es verschlüsseln, es ist aber unentschlüsselbar.
Und wenn er sowieso auf dem Server den hinterlegten md5-hash
bearbeiten kann, wird er auch problemlos in die datenbank reinkommen, also wäre das sinnlos....
Joghurt
User
Beiträge: 877
Registriert: Dienstag 15. Februar 2005, 15:07

murph hat geschrieben:ich dachte, md5 wäre genau anders.
Jeder kann es verschlüsseln, es ist aber unentschlüsselbar.
MD5 ist ein Hash. Jedem Text wird ein Wert zugeordnet. Und bei kryptographischen Hashes, wie MD5 eines ist, ist es nicht leicht möglich, zu einem gegebenen Hash einen Text zu finden; oder alternativ einen Text so zu ändern, dass die Hash gleichbleibt (bei MD5 ist es inzwischen gelungen, auch SHA-1 wackelt)

Mit Verschlüsselung meinte ich wirklich das: der Wert wird nochmal verschlüsselt. Allerdings kann nur einer diese Verschlüsselung durchführen, jeder kann sie überprüfen.
Und wenn er sowieso auf dem Server den hinterlegten md5-hash
bearbeiten kann, wird er auch problemlos in die datenbank reinkommen, also wäre das sinnlos....
Ich verstehe nicht ganz, was du meinst. Ich nahm an, du wolltest sicherstellen, dass ein Befehl vom Client zum Server nicht manipuliert werden kann. Wie soll der Server da die MD5 schon vorher wissen?
murph
User
Beiträge: 622
Registriert: Freitag 14. April 2006, 19:23
Kontaktdaten:

Der Skript ist immer der gleiche, dessen md5-hash ermittelt wird.
Deshalb würde ich vor dem Aushändigen mir ankucken, wie der hash jedes mal lauten wird (gegebenfalls als *.txt auf dem server geschützt oder inner datenbank, je nach verwendung).
Dann wird mir der hash zugesendet und ich kann vergleichen...
Joghurt
User
Beiträge: 877
Registriert: Dienstag 15. Februar 2005, 15:07

Ähh... Dann kannst du doch auch gleich das Skript einmalig auf den Server packen.
murph
User
Beiträge: 622
Registriert: Freitag 14. April 2006, 19:23
Kontaktdaten:

Der Skript ist lang und dauert, bis er ausgeführt ist.
Als ich letztens eine Beschwerde bekommen habe (ich teile mir den Server),
Dachte ich, dass ich da ja etwas ändern könnte (aber zu der Zeit war echt "Hochbetrieb")
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

murph hat geschrieben:Der Skript ist lang und dauert, bis er ausgeführt ist.
Und wenn du das Skript erstmal auf den Server hochlädst, dessen MD5 Signatur überprüfst und es dann ausführst, ist es schneller, ja?
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
murph
User
Beiträge: 622
Registriert: Freitag 14. April 2006, 19:23
Kontaktdaten:

Ne, wenn ich den Skript auf den Server hochlade, damit sich die Gamer diesen downloaden. Der wirs lokal ausgeführt, dass Ergebnis in die MySQL-Datenbank eingetragen, aber dass nur dann, wenn der md5-hash auch stimmt von dem Skript, den sie auf ihrem PC lokal ausführen, um das Umschreiben des Skkriptes zu verhindern (weil dann falsche Dateien in die Datnebank geraten könnten).
Eine Alternative wäre natürlcih, den Skript zu schützen. Aber das würde sich um eingiges schwieriger gestallten.
Joghurt
User
Beiträge: 877
Registriert: Dienstag 15. Februar 2005, 15:07

murph hat geschrieben:Ne, wenn ich den Skript auf den Server hochlade, damit sich die Gamer diesen downloaden. Der wirs lokal ausgeführt, dass Ergebnis in die MySQL-Datenbank eingetragen, aber dass nur dann, wenn der md5-hash auch stimmt von dem Skript, den sie auf ihrem PC lokal ausführen, um das Umschreiben des Skkriptes zu verhindern (weil dann falsche Dateien in die Datnebank geraten könnten).
Und wie soll das gehen?

Ich merke mit die MD5, ändere das Skript, führe es aus, und sende die alte (korrekte) MD5 mit...
murph
User
Beiträge: 622
Registriert: Freitag 14. April 2006, 19:23
Kontaktdaten:

Genau das soll nicht gehen. Man soll nicht einfach eine alte md5 benutzen können, sondern er soll automatische einen generieren, den er dann schickt.
Man könnte auch den md5 nur von einem Part der Datei nehmen (es müsste der Größte sein) und den jedes mal überprüfen...oder ich erstelle eine *.exe Datei, die sonst unter wine ausgeführt wird...
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

murph hat geschrieben:Genau das soll nicht gehen. Man soll nicht einfach eine alte md5 benutzen können, sondern er soll automatische einen generieren, den er dann schickt.
Wenn sich die Datei nicht ändert, bleibt die MD5 gleich, wenn sie sich ändert, dann ändert sich die MD5. Woher willst du denn wissen, ob die MD5 generiert ist oder ob jemand die MD5 einfach abgefangen hat, und sie jetzt einfach so mitschickt? Du könntest es noch mit einem Salt versuchen, welchen dir der Server schickt, du in der MD5 verrechnest und diesen neuen MD5-Hash vergleichen.
murph hat geschrieben:oder ich erstelle eine *.exe Datei, die sonst unter wine ausgeführt wird...
Oder auch nicht, weil Wine gerade die nötigen APIs nicht emuliert. Oder nicht installiert ist. Oder weil die Mondphase einfach nicht die richtige ist.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Joghurt
User
Beiträge: 877
Registriert: Dienstag 15. Februar 2005, 15:07

Leonidas hat geschrieben:Du könntest es noch mit einem Salt versuchen, welchen dir der Server schickt, du in der MD5 verrechnest und diesen neuen MD5-Hash vergleichen.
Dann würde ich einfach das alte Skript speichern und die MD5 aus diesem berechnen.

Es gibt keine Möglichkeit sicherzustellen, dass die Daten von deinem Skript erstellt wurden.
murph
User
Beiträge: 622
Registriert: Freitag 14. April 2006, 19:23
Kontaktdaten:

100%ige Sicherheit hat man sowieso nie, ich werde mir aus den Posts mir einen Sicherheitsmix machen, soviele können auch wieder nicht Python, dass ich bei insgesammt 10 Anmeldungen was befürchten müsste^^.
Auch ins Netz des Weißen Hauses hat sich jemand eingehackt...
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

murph hat geschrieben:100%ige Sicherheit hat man sowieso nie...
One-Time-Pad :wink:
TUFKAB – the user formerly known as blackbird
murph
User
Beiträge: 622
Registriert: Freitag 14. April 2006, 19:23
Kontaktdaten:

Das ist doch XOR, wenn das Passwort lang genug ist...
aber mit der Schlüsselsuche "if",
was man immer in einer programmiersprache findet,
ist das auch wieder geknackt
Python 47
User
Beiträge: 574
Registriert: Samstag 17. September 2005, 21:04

murph hat geschrieben:Das ist doch XOR, wenn das Passwort lang genug ist...
aber mit der Schlüsselsuche "if",
was man immer in einer programmiersprache findet,
ist das auch wieder geknackt
Nein!Wenn du wirklich alle Bedingungen von One Time Pad erfüllst ist es 100% nicht knackbar!

Da der Schlüssel aus statistisch unabhängigen Werten (z. B. weißes Rauschen) besteht und nur einmal verwendet wird, ist es mathematisch nachweisbar sicher, das heißt, es gibt kein Verfahren, die übermittelte Nachricht zu entziffern, wenn man den verwendeten Schlüssel nicht kennt. Auch Brute-Force ist zwecklos, denn es besteht keine Möglichkeit zu beurteilen, welcher Quelltext, der aus Testschlüsseln erzeugt wird, der richtige ist.
:arrow: http://de.wikipedia.org/wiki/One-Time_Pad
mfg

Thomas :-)
Benutzeravatar
Hannes-Spz
User
Beiträge: 123
Registriert: Sonntag 7. August 2005, 22:42

ganz andere frage:
murph hat geschrieben:Ich habe ein paar Fragen:
Macht es Sinn, das XORC-Ergebnis noch eimal zu verschlüsseln (noch einmal XORC oder 128bit?)
ähhm, ist die 128-bit verschlüsselung nicht sogar das höchste in deutschland zugelassene verschlüsselungssystem??
(was noch decodierbar ist)
[size=85]"Unsere Situation ist immer die eines schwarzen Mannes der in einem schwarzen Keller einen schwarzen Hut sucht, den es vielleicht gar nicht gibt." Sir Karl R. Popper[/size]
modelnine
User
Beiträge: 670
Registriert: Sonntag 15. Januar 2006, 18:42
Wohnort: Celle
Kontaktdaten:

ähhm, ist die 128-bit verschlüsselung nicht sogar das höchste in deutschland zugelassene verschlüsselungssystem??
Es gibt in Deutschland gottseidank noch keine Grenzen auf die zugelassene Verschlüsselungsstärke, wie's die zum Beispiel in Frankreich gibt.
--- Heiko.
murph
User
Beiträge: 622
Registriert: Freitag 14. April 2006, 19:23
Kontaktdaten:

Ist das dein Ernst?
Die Gheimdienste wollen alles Kontrollieren dürfen und verbieten deshalb dem Volk, sicher zu vercodieren?
Ich bin geschockt!
---
ich gedenke die Quantenkryptographie mit einzubeziehen, aber das für etwas anderes wegen der Fehlerrate (5-10%, für einen Skript tödlich)
BlackJack

Hannes-Spz hat geschrieben:ganz andere frage:
murph hat geschrieben:Ich habe ein paar Fragen:
Macht es Sinn, das XORC-Ergebnis noch eimal zu verschlüsseln (noch einmal XORC oder 128bit?)
ähhm, ist die 128-bit verschlüsselung nicht sogar das höchste in deutschland zugelassene verschlüsselungssystem??
(was noch decodierbar ist)
Was bitte ist "128-bit Verschlüsselung"? Das sagt an sich noch gar nichts aus. Könnte auch ein XOR mit einer Schlüssellänge von 128 Bit sein und das ist recht einfach knackbar, wie hier ja schon festgestellt wurde.
Antworten