libsasl und crypt-md5 in datenbank?

Postfix, QMail, Sendmail, Dovecot, Cyrus, Courier, Anti-Spam
binford3000
Posts: 13
Joined: 2006-03-11 12:20

libsasl und crypt-md5 in datenbank?

Post by binford3000 » 2006-10-23 08:13

Hallo Forum,

Ich benutze sasl + auxprop + mysql für die authentifizierung für den SMTP Server. Ich bin dabei von meinem alten Server auf einen neuen umzuziehen ( gezwungenermaßen wg. Alturo ). Die Passwörter sind dort nur verschlüsselt abgespeichert (crypt-md5). Soweit ich informiert bin braucht sasl die Passwörter aber im Klartext, d.h. im moment gehts nur wenn ich auch das Klartext Passwort abspeichere. Weis jemand wie man sasl dazu bringt verschlüsselte passwörter zu benutzen?

Ich kann mich noch dunkel daran errinern das ich bei der Installation meines alten Servers libsasl2 gepatcht habe. Ich konnte dazu allerdings nichts mehr im Netz finden.

Ich brauch im Endeffekt irgend eine Lösung die mit meinen crypt-md5 verschlüsselten Passwörtern klar kommt. Kann man eventuell den Courier-authdaemon anzapfen (den benutz ich schon für IMAP/POP3 )?

Hat jemand ne idee?

lord_pinhead
RSAC
Posts: 830
Joined: 2004-04-26 15:57

Re: libsasl und crypt-md5 in datenbank?

Post by lord_pinhead » 2006-10-23 14:09

Die gibt es definitiv nicht, ausser du hast ein paar Jahre Zeit sie durch John oder md5crack durchlaufen zu lassen. Mit etwas Glück sind sie vielleicht aus dem Wörterbuch und können mit einen Dict-Angriff geknackt werden, das wars aber schon.

Sasl braucht im übrigen die Passwörter nicht im Klartext, ausser du möchtest nochmal die Usersruktur anlegen. Wenn du den Datenbank Dump einspielst, musst du deine Sasl Config nur anpassen das er wieder die Datenbank lesen kann, dann funktioniert es wieder.

Roger Wilco
Administrator
Administrator
Posts: 6001
Joined: 2004-05-23 12:53

Re: libsasl und crypt-md5 in datenbank?

Post by Roger Wilco » 2006-10-23 18:33

LOGIN und PLAIN sind auch möglich, wenn dir nur die Passwort-Hashes vorliegen. CRAM-MD5 und DIGEST-MD5 benötigen noch das Klartextpasswort.

binford3000
Posts: 13
Joined: 2006-03-11 12:20

Re: libsasl und crypt-md5 in datenbank?

Post by binford3000 » 2006-10-24 14:45

Ok entweder ich bin doof oder ihr habt mich nicht verstanden. Ich möchte passwörter in meiner DB mit crypt(3) MD5 verschlüsselt ablegen. (Zumindest glaub ich das es crypt-md5 ist, es ist das gleiche format wie in einer handelsüblichen /etc/shadow) Ich nutze LOGIN. Ich habs zigmal versucht, bei mir scheint es nicht zu gehen.

Ich habe inzwischen auch den patch gefunden: http://frost.ath.cx/software/cyrus-sasl-patches/.

@Roger: Weist du genau welche art von Verschlüsselung bei PLAIN und LOGIN möglich ist?

Roger Wilco
Administrator
Administrator
Posts: 6001
Joined: 2004-05-23 12:53

Re: libsasl und crypt-md5 in datenbank?

Post by Roger Wilco » 2006-10-24 16:12

binford3000 wrote:@Roger: Weist du genau welche art von Verschlüsselung bei PLAIN und LOGIN möglich ist?
Gar keine. Natürlich kannst du die Verbindung mit TLS oder SSL sichern, dann fällt das weniger ins Gewicht.

lord_pinhead
RSAC
Posts: 830
Joined: 2004-04-26 15:57

Re: libsasl und crypt-md5 in datenbank?

Post by lord_pinhead » 2006-10-24 16:50

Also in meiner Sasl Config hab ich nur
mech_list: login cram-md5 digest-md5
pwcheck_method: auxprop
log_level: 3
und alles läuft.

binford3000
Posts: 13
Joined: 2006-03-11 12:20

Re: libsasl und crypt-md5 in datenbank?

Post by binford3000 » 2006-10-24 17:22

@Lord_Pinhead: Wie sind deine Passwörter in der DB verschlüsselt? Meine sind crypt-md5, d.h. ein passwort sieht ungefähr so aus $1$Q/V/wNmA$mA4IrZIKlPm2AaXqnwjGR0. Die Verschlüsselung kann ich nicht ändern weil ich von einem alten Server auf einen neuen umziehe.

Roger Wilco
Administrator
Administrator
Posts: 6001
Joined: 2004-05-23 12:53

Re: libsasl und crypt-md5 in datenbank?

Post by Roger Wilco » 2006-10-24 17:25

Lord_Pinhead wrote:Also in meiner Sasl Config hab ich nur

[...]

und alles läuft.
Ja, das Default Backend von auxprop ist AFAIK die sasldb(2) und in der stehen die Passwörter im Klartext. ;)
binford3000 wrote:@Lord_Pinhead: Wie sind deine Passwörter in der DB verschlüsselt? Meine sind crypt-md5, d.h. ein passwort sieht ungefähr so aus $1$Q/V/wNmA$mA4IrZIKlPm2AaXqnwjGR0. Die Verschlüsselung kann ich nicht ändern weil ich von einem alten Server auf einen neuen umziehe.
Unabhängig vom SASL-Backend könntest du deinen SQL-Query etwas anpassen. http://dev.mysql.com/doc/refman/5.0/en/ ... on_encrypt sollte dir die Richtung zeigen. Aber generell sind mit crypt() verunstaltete Passwörter böse, da die crypt Funktion nicht plattformübergreifend immer das gleiche Ergebnis auswirft.

lord_pinhead
RSAC
Posts: 830
Joined: 2004-04-26 15:57

Re: libsasl und crypt-md5 in datenbank?

Post by lord_pinhead » 2006-10-25 19:19

Meine sehen genauso aus, von daher dürfte das Problem woanders liegen.

Beweis:

Code: Select all

imappw=$1$nNZEuoHz$zGkf5W4Rhf8cE.xS06cG5.
Paste doch mal deine Mailer Config rein und ob du mit Plaintext Files arbeitest oder Datenbanken wie Mysql/PGSql. Dann noch deine Sasl Config und Logeinträge, sonst raten wir hier uns nen Ast deswegen.

lucki2
Posts: 427
Joined: 2006-10-03 01:31

Re: libsasl und crypt-md5 in datenbank?

Post by lucki2 » 2006-10-26 00:43

Vergiss es!

cram st ein chalange response Mechanismus und da gibts imho nur MD5 und SHA als Hashes. Wenn Du MD5 zur authentizierung nutzt, dann brauchst Du die Klartextpasswörter. Der Grund ist: da wird genau so ein Ding wie in Deiner Datenbank gebildet - nur kommt da noch etwas zum Passwort dazu(bei CRAM meine ich Hostname und Timestamp), damit das auch jedesmal anders aussieht und niemand einfach abfangen kann(die Länge ist immer gleich). Sonst ist das das gleiche wie in deiner Datenbank oder in der /etc/shadow. Aber das mußt Du jedesmal berechnen ergo brauchst Du die Plaintextpw.

Das bedeuted, wenn Du CRAM-MD5 oder DIGEST-MD5 willst, mußt Du die DB neu anlegen. Was Du willst, ist genau das, wovor MD5 schützen soll.

Wenn Du Deine Passwortdatei(egal ob in DB oder wo auch immer Pam das herzieht) verwenden willst - auch mit SASL - müssen da Plaintextpassworte über die Leitung(Typ: Plain oder Login). Was anderes geht nicht außer Du hast Durchschnittsdeutsche als User, die sich nicht mehr als 4 Ziffern merken können.

Wenn Du das schaffen solltest, brauchst Du keine Verschlüsselung mehr(ich habe john nämlich auch!).

binford3000
Posts: 13
Joined: 2006-03-11 12:20

Re: libsasl und crypt-md5 in datenbank?

Post by binford3000 » 2006-10-26 04:52

Ok anscheinend hab ich mich undeutlich ausgedrückt.

Es ging mir um die "verhashung" der Passwörter in der Datenbank. Mit dem patch im o.g. post hab ich nun crypt-md5 passwörter in der DB, und die Authentifizierung geht über LOGIN.

Danke an alle.

lucki2
Posts: 427
Joined: 2006-10-03 01:31

Re: libsasl und crypt-md5 in datenbank?

Post by lucki2 » 2006-10-26 05:43

Für die Zukunft mit mysql:
update tablexxx set passwordcolumn=md5(passwordcolumn);

hätte alles mit einem Schlag gehashed.
Sorry ich hatte das(in guter Gesellschaft) andersrum verstanden.

Roger Wilco
Administrator
Administrator
Posts: 6001
Joined: 2004-05-23 12:53

Re: libsasl und crypt-md5 in datenbank?

Post by Roger Wilco » 2006-10-26 14:33

lucki2 wrote:Für die Zukunft mit mysql:
update tablexxx set passwordcolumn=md5(passwordcolumn);
hätte alles mit einem Schlag gehashed.
...und hätte damit vermutlich alles kaputt gemacht. So wie ich es verstanden habe, lagen/liegen die Passwörter bereits ausschließlich als Hash (Rückgabe von crypt(3), MySQL-Funktion ENCRYPT()) in der Datenbank vor.

lucki2
Posts: 427
Joined: 2006-10-03 01:31

Re: libsasl und crypt-md5 in datenbank?

Post by lucki2 » 2006-10-26 16:30

binford3000 wrote:Ok anscheinend hab ich mich undeutlich ausgedrückt.

Es ging mir um die "verhashung" der Passwörter in der Datenbank.
Dafür ist die Zeile das Richtige.