PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : verschlüsselte passwörter in mysqldb mit cyrus + postfix



boba
22.01.08, 09:50
Hallo,
ich habe ein cyrus cluster aufgesetzt und möchte nun die Passwörter in der Datenbank verschlüsseln.
Auf meinem Testsystem funktionierte dieses schon einmal, soweit mich meine Errinerung nicht täscht.
Wie muss ich vergehen das ich Passwörter die mit ENCRYPT() oder MD5() verschlüsselt wurden nutzen zu können?

Ich nutze eine Fedora8 mit selbstcompilierten postfix(wegen mysql support)

danke

Roger Wilco
22.01.08, 10:26
Wenn du die Passwörter ausschließlich als Hash in der Datenbank ablegst, kannst du nur noch Plaintext-Mechanismen (PLAIN und LOGIN) zur Authentifizierung benutzen.

Eine mögliche Implementierung wäre saslauthd -> pam -> pam_mysql. So kann man die Passwörter mit crypt(3) verschlüsselt in der Datenbank ablegen. Allerdings sind damit nur noch Plaintext-Mechanismen zur Authentifizierung möglich.

Wenn du auxprop und nicht den saslauthd benutzt, wird ein Patch (http://frost.ath.cx/software/cyrus-sasl-patches/) benötigt, damit Cyrus-SASL mit verschlüsselten Passwörtern umgehen kann. Von dieser Variante würde ich abraten.

Sofern du eine Verschlüsselung und kein Hashverfahren (MD5, SHA1 et al) benutzt, kann der SQL-Query bei Nutzung von auxprop auch so abgewandelt werden, dass das Passwort transparent entschlüsselt wird (MySQL-Funktionen AES_ENCRYPT/AES_DECRYPT, DES_ENCRYPT/DES_DECRYPT). Das wäre die bevorzugte Lösung, wenn unbedingt verschlüsselte Passwörter in der Datenbank gespeichert werden sollen.

boba
22.01.08, 10:30
ch hab von pam umgestellt und nutze nun auxprop,i
hier mal die wichtige sektion aus der impad.conf


sasl_pwcheck_method: auxprop
sasl_sql_engine: mysql
sasl_auxprop_plugin: sql
sasl_sql_hostnames: localhost
sasl_sql_user: mail_admin
sasl_sql_passwd: pwd
sasl_sql_database: mail
sasl_sql_verbose: yes
sasl_sql_select: SELECT password FROM users WHERE email = '%u@%r';
sasl_sql_usessl: 0
sasl_mech_list: LOGIN PLAIN
#DIGEST-MD5 CRAM-MD5
#sasl_password_format: crypt
allowplaintext: yes

boba
22.01.08, 12:05
dasd mit den SQL en und decrypt macht leider keinen sinn, da dann in den sourcen der key zum entschlüsseln steht

Roger Wilco
22.01.08, 12:43
dasd mit den SQL en und decrypt macht leider keinen sinn, da dann in den sourcen der key zum entschlüsseln steht
Das ist richtig, lässt sich aber ohne die vorher genannten Einschränkungen nicht umgehen. Zumal alles andere keine Verschlüsselung wäre, sondern ein simpler Hash.