md5 question

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.
sniper

md5 question

Beitragvon sniper » Montag 19. September 2005, 15:29

hi!
hab ne kleine frage zu md5:
wie kann ich mich auf einem server authentifizieren der md5 als encryption hat und mir dazu dann n kleines prog bauen?
falls was unklar is bzw ich was falsch verstanden hab, hab ich mal folgendes gesnifft (das is also die authentifizierungsroutine, c= client, s=server):

s: 4242 NMAP <400000domain432ec34c>
c: AUTH e61f5e84515b4b81e3e4549204abe0ef
s: 1000 OK

in der beschreibung steht dass md5 dahinter steckt. is "400000domain432ec34c" der digest der entscheidend is für mein verschlüsseltes passwort (e61f5e84515b4b81e3e4549204abe0ef)?
und wie kann ich jetz da nen client bauen der mir diese login-routine erfüllt? ich brauchs nur bis zum status "authenticated". das würd mir scho reichen ;)

danke!!
Benutzeravatar
Joghurt
User
Beiträge: 877
Registriert: Dienstag 15. Februar 2005, 15:07

Beitragvon Joghurt » Montag 19. September 2005, 16:42

Welches Verfahren der Server genau benutzt, musst du herausfinden, das Prinzip ist aber folgendes: die Challenge (in deinem Falle 4000....) wird irgendwie mit dem Kennwort verknüpft, z.B. vorgestellt oder angehängt. Von dem Ergebnis wird dann die MD5 Summe gebildet und diese Übertragen.

Sinn des ganzen: Wenn nur die MD5 des Kennwortes übertragen würde, wäre nichts gewonnen, der Angreifer würde einfach den mitgeschnittenen MD5 senden und wäre drin. Mit dem Challenge-Response-Verfahren wird soetwas verhindert, da sich die MD5 immer ändert.
Gast

Beitragvon Gast » Montag 19. September 2005, 17:28

ok danke! aber wie wende ich md5 encryption in python-sprache an? die sachen die ich per google gefunden hab haben mich net wirklich weitergebracht... :/
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Montag 19. September 2005, 18:16

Python hat ein md5 Modul, und mit der Forumsuche findest du viele Beispiele.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Benutzeravatar
Joghurt
User
Beiträge: 877
Registriert: Dienstag 15. Februar 2005, 15:07

Beitragvon Joghurt » Montag 19. September 2005, 18:33

Anonymous hat geschrieben:md5 encryption
MD5 ist eine Hash-Funktion, keine Verschlüsselungsfunktion.
Benutzeravatar
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

Beitragvon mitsuhiko » Dienstag 20. September 2005, 05:26

Anonymous hat geschrieben:ok danke! aber wie wende ich md5 encryption in python-sprache an? die sachen die ich per google gefunden hab haben mich net wirklich weitergebracht... :/


also encryption ist das nicht, aber so würde es funktionieren:

Code: Alles auswählen

ubuntu-de@netz:~/wiki/data/plugin/parser$ python
Python 2.3.5 (#2, May  4 2005, 08:51:39)
[GCC 3.3.5 (Debian 1:3.3.5-12)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from md5 import md5
>>> md5("mein password").hexdigest()
'4aa50efe48804bfb1639090dc6d94aed'
TUFKAB – the user formerly known as blackbird
Benutzeravatar
jens
Moderator
Beiträge: 8458
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Beitragvon jens » Dienstag 20. September 2005, 06:42

Http client using digest authentication (in python):
http://blog.spikesource.com/pyhton_testcases.htm#

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Gast

Beitragvon Gast » Dienstag 20. September 2005, 16:09

naja das is iwie alle auf md5 bezogen aber ich weiss net wie ich da den hash mit einbeziehen soll... ich bekomm nen hash, der wird dann iwie mit dem passwort verarbeitet...
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Dienstag 20. September 2005, 17:58

Hängt ab, wie die Challenge ins gehashte Passwort integriert wird, das musst du wissen:

Code: Alles auswählen

In [9]: import md5
In [10]: challenge = '737'
In [11]: password = 'swordfish'
In [12]: tohash = challenge + password
In [13]: tohash
Out[13]: '737swordfish'
In [14]: md5.md5(tohash).hexdigest()
Out[14]: '2ed686daa4224fa2b76f48bd6b7a4fc6'

Das wäre ein Beispiel wie die Challenge vorgehängt wird. Aber in deinem Fall kann das ja anders sein, das musst du herausfinden. Wie? Du kannst ein Passwort 'a' setzen. Dann gucken, was die Challenge ist und die md5-Summe ist. Jetzt versuchst du es mit vor- und anhängen der Challenge an 'a' und lässt es hashen. Dann vergleichst du die md5-Summe und wenn sie identisch sind, dann weißt du, dass du die Challenge richtig kombiniert hast. Oder aber du guckst in die Doku deines Servers :)
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Benutzeravatar
Masaru
User
Beiträge: 425
Registriert: Mittwoch 4. August 2004, 22:17

Beitragvon Masaru » Dienstag 20. September 2005, 18:21

Öhm .. kann es sein "Gast", dass du ein Grundgerüst für einen "Client" (in Python geschrieben) gebastelt haben möchtest, der dann bis zum Stand "authenticated" kommt - unter Verwendung der oben von dir aufgeführten Daten?

>>Masa<<

Wer ist online?

Mitglieder in diesem Forum: Bing [Bot], Holger Chapman