Pythonscript "verschlüsseln"

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.
shakebox
User
Beiträge: 175
Registriert: Montag 31. März 2008, 17:01

mal ne ganz dumme Frage: warum kann man nicht das Passwort verschluesselt im Script speichern? Klar muss es eine Verschluesselung sein die momentan nicht in brauchbarer Zeit per Bruteforce entschluesselbar ist. Aber wenn man den verschluesselt speichert und die Eingabe des Users dann auch gleich verschluesselt und beides vergleicht, muesste das doch passen!?

Oder versteh ich grad die Frage/Aufgabenstellung voellig falsch?
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

shakebox hat geschrieben:mal ne ganz dumme Frage: warum kann man nicht das Passwort verschluesselt im Script speichern? Klar muss es eine Verschluesselung sein die momentan nicht in brauchbarer Zeit per Bruteforce entschluesselbar ist. Aber wenn man den verschluesselt speichert und die Eingabe des Users dann auch gleich verschluesselt und beides vergleicht, muesste das doch passen!?
Wenn man es verschlüsselt braucht man einen Key. Woher soll der Key kommen? Aus dem Skript? Dann kann der Angreifer auch den Key lesen, damit ist die ganze Verschlüsselung unwirksam.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Karl
User
Beiträge: 252
Registriert: Freitag 29. Juni 2007, 17:49

Man kann auch den md5-Wert oder so speichern (wie das häufig in Webanwendungen gemacht wird, wenn man Passwörter in Datenbanken speichert) und dann den md5-Wert der Eingabe mit dem gespeichertem Wert vergleichen.
Aber dann kann man das Script auch gleich so manipulieren, dass das ganze unwirksam wird, wenn man eh schon den Plaintext hat, aus dem man das gespeicherte Passwort rauslesen kann.
Imo geht das ganze ohne irgendwelche umständlichen Wege über das Inet (wie ich vorhin in einem Post beschrieben habe) nicht wirklich.
Benutzeravatar
Rebecca
User
Beiträge: 1662
Registriert: Freitag 3. Februar 2006, 12:28
Wohnort: DN, Heimat: HB
Kontaktdaten:

shakebox hat geschrieben:Oder versteh ich grad die Frage/Aufgabenstellung voellig falsch?
Es geht ja darum, dass jemand seinen Code durch Verschluesselung vor dem Blick des Users schuetzen moechte. Das heisst man will dem User den Schluessel/das Passwort nicht geben.
Offizielles Python-Tutorial (Deutsche Version)

Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
shakebox
User
Beiträge: 175
Registriert: Montag 31. März 2008, 17:01

Rebecca hat geschrieben:Es geht ja darum, dass jemand seinen Code durch Verschluesselung vor dem Blick des Users schuetzen moechte. Das heisst man will dem User den Schluessel/das Passwort nicht geben.
Ah, das war mein Missverstaendnis. Danke fuer die Erhellung. Wusste doch dass der Fehler bei mir liegen muss ;-)
n4p
User
Beiträge: 55
Registriert: Dienstag 10. Juni 2008, 11:05

Ich muss nochmal blöd zwischenfragen :)
Was passiert denn mit dem Code, wenn man daraus eine EXE-Datei macht und die evtl nochmal packt oder sonstwie unleserlicher macht als sie sowieso schon ist. Kann dann der normale Endverbraucher sowas wie ein Kennwort mit sowas wie einem Texteditor noch auslesen oder wäre das schon ein Ansatz für ein Programm das jetzt nicht hochsensible Daten verschleiern soll? Und natürlich auch nur für ein Programm was ausschließlich unter Windows verwendet werden kann (oder durchs Nasenloch über den Magen zurück ins Auge über Wine unter Linux)
Karl
User
Beiträge: 252
Registriert: Freitag 29. Juni 2007, 17:49

n4p hat geschrieben:Ich muss nochmal blöd zwischenfragen :)
Was passiert denn mit dem Code, wenn man daraus eine EXE-Datei macht und die evtl nochmal packt oder sonstwie unleserlicher macht als sie sowieso schon ist. Kann dann der normale Endverbraucher sowas wie ein Kennwort mit sowas wie einem Texteditor noch auslesen oder wäre das schon ein Ansatz für ein Programm das jetzt nicht hochsensible Daten verschleiern soll? Und natürlich auch nur für ein Programm was ausschließlich unter Windows verwendet werden kann (oder durchs Nasenloch über den Magen zurück ins Auge über Wine unter Linux)
Du kannst damit machen, was du willst, man kann das Passwort theoretisch immer noch auslesen, wobei der Aufwand sich mit einigen Methoden sicherlich ziemlich stark erhöhen würde.
Das Passwort aus einer kompilierten .exe zu lesen ist sicherlich um einiges schwerer, als das Passwort aus einer normalen Textdatei auszulesen, aber immer noch nicht unmöglich.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Karl hat geschrieben:Das Passwort aus einer kompilierten .exe zu lesen ist sicherlich um einiges schwerer, als das Passwort aus einer normalen Textdatei auszulesen, aber immer noch nicht unmöglich.
Nein, nicht umbedingt, schon mal ``strings`` auf einem Executable ausgeführt?

Wenn es darum geht, dass das Passwort nicht in Plain-Text zu sehen ist, dann kann man ja Nullbytes zwischen die Buchstaben setzen oder rot13 verwenden. Ist zwar keine Sicherheit, aber das Passwort ist nicht mit dem Texteditor sichtbar.

Hint: Sachen die man mit UPX packt kann man genausoleicht auch wieder entpacken.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Zum Thema sourcecode verschlüsseln: [wiki]FAQ#IchWillAberUnbedingtEinenCompiler[/wiki]

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Benutzeravatar
Sr4l
User
Beiträge: 1091
Registriert: Donnerstag 28. Dezember 2006, 20:02
Wohnort: Kassel
Kontaktdaten:

Reverse Engineering für Neugierige
http://www.chaostal.de/cgi-bin/parser.c ... veng-intro

Der Autor gibt einen kleinen Einblick in Reverse Engineering von einem kleinen C Programm. Man kann fast sagen nur die Komplexität bzw. Größe des Programms machen es erst schwierig es zu "cracken" ;-)
BlackJack

Wobei es auch immer auf das Ziel ankommt. Ich kann mich da noch an DOS-Programme erinnern, mit dem typischen Kopierschutz der Abfrage eines Wortes aus dem (gedruckten) Handbuch. Da haben sich die Programmierer oft viel Mühe gegeben den Algorithmus und die Daten im Programm zu verschleiern und es war in der Regel doch nur *eine* Programmstelle, an der am Ende die Entscheidung gefallen ist, ob das Programm startet oder nicht. Wenn man sich da also durchge-"traced" hat, war die Komplexität des Algorithmus und selbst die Daten völlig egal wenn man nur diese eine bedingte Verzweigung gefunden und "entschärft" hat.

Bezogen auf das Problem hier muss man also nur den Punkt finden, wo man einen Haltepunkt nach der Entschlüsselung setzen muss und kann das Passwort oder den (Byte)Code doch lesen. *Wie* die Daten verschlüsselt wurden, ist dabei fast völlig egal.

Edit: Ich sehe gerade in dem "reverse engineering"-Artikel wird die Abfrage so entschärft, wie ich das oben beschrieben habe. :-)
Antworten