Bug 108 - passwort vergessen, emails
: passwort vergessen, emails
Status: ASSIGNED
Product: Auto*
autotool
: other
: PC Linux
: P2 normal
Assigned To: Johannes Waldmann
:
:
:
  Show dependency treegraph
 
Reported: 2006-02-24 14:48 CET by Johannes Waldmann
Modified: 2009-09-22 13:09 CEST (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Johannes Waldmann 2006-02-24 14:48:43 CET
Was ist, wenn ein Student sein Passwort vergißt?

Einfache Lösung: Button: neues würfeln und an bekannte Adresse mailen.
Problem: auf den Knopf kann jeder drücken

bessere Lösung (?): Passwort wird neu gewürfelt und in die Mail geschrieben,
aber noch nicht im System gesetzt. In der Mail steht noch
ein weiterer zufälliger String, wenn der Student den das nächste mal
eingibt, dann wirkt die Änderung, sonst nicht.

Vereinfachung (?): dieser Token kann ja auch identisch mit dem neuen
Passwort sein. Dann wäre es so: System merkt sich aktuelles
und evtl. "zukünftiges" passwort, bei jedem Login akzeptiert es
das alte und auch das neue - in dem Moment ersetzt es aber das alte.
In der Mitteilungsmail steht dann also: "ein Benutzer mit der
IP-Adresse XX.XX.XX.XX hat für Sie ein neues Passwort angefordert.
Es ist PPPPPPP. Bei der ersten Benutzung dieses Passworts
wird das bisherige ungültig. Falls Sie jedoch Ihr altes Passwort
weiter benutzen möchten, dann tun Sie das einfach."

Eventuell könnte man das auch als grundsätzlichen Anmeldevorgang
nehmen (damit stellt man sicher, daß der Student (wenigstens am Anfang)
eine gültige Emailadresse angibt.)

Implementierungs-Problem: das tool schickt bis jetzt
überhaupt keine mails. Da besteht auch Spam-Gefahr,
jemand könnte (mit Script) 10^6 mal auf den Knopf drücken,
als denial-of-service-Attacke.
Comment 1 Johannes Waldmann 2006-03-07 09:39:45 CET
> Es ist auf alle Faelle keine gute Idee, wenn angezeigt wird, an welche
> e-Mail-Adresse geschrieben wird.

OK, das werde ich wohl so machen, wie du vorschlägst:

> "Ein neues Passwort wurde an die zu dieser Matrikelnummer gespeicherten 
> e-Mail-Adresse gesandt."



> Ich sehe das mit dem Mailen derzeit weniger kritisch.

von dir kommen ja die mails dann nicht... 
ich kann aber auch nittka@informatik... als Absender eintragen :-)
Ich sehe da ein Spam-Problem: man kann leicht einen neuen
Account anlegen mit fremder Mailadresse und diese dann
vom autotool zumüllen lassen (auf Knopfdruck). Wenn es dann Ärger gibt,
wird ein Verursacher gesucht, und das ist eben der Betreiber des autotool, 
weil man ja nicht weiß, wer geclickt hat.


Grundsätzliche Lösung ist hier nur, daß die jeweilige Einrichtung
(z. B. Uni Leipzig) es gestattet, ihr Standard-Authentifizierungssystem
(passwortserver o. ä.) zu verwenden. Dann gibt es den gesamten Ärger
beim autotool nicht. Ist natürlich eine Datenschutzfrage: es geht sicher *nicht*
so, daß das Passwort (für den Uni-Account) ins autotool hineingetippt wird
(die Information könnte ich ja anderweitig benutzen). 
Comment 2 Johannes Waldmann 2006-03-16 14:22:29 CET
> was ist mit den Adressen von schon angemeldeten Studenten. 
> Bei uns ist das in den seltensten Faellen eine studserv-Adresse.
> Funktionieren diese also weiter oder ist eine Neuanmeldung noetig?

Die funktionieren weiter.
Adresse wird nur beim Neu-Eintragen oder Ändern geprüft. 
Comment 3 Alexander Nittka 2006-03-22 10:21:29 CET
Achtung, derzeit wird beim Passwortversenden immer noch die e-mail-Adresse zum
Account angezeigt. Das erlaubt es jedem anhand einer Matrikelnummerliste (z.B.
Prüfungsergebnisse) e-mail-Adressen zu sammeln und ggf. die dazugehörigen Namen
herauszubekommen.

Bezüglich Spamproblem hast Du mich überzeugt (bitte nicht meine Adresse als
Absender eintragen ;-)). Vorschlag: Passwortmail maximal einmal pro Tag und
account. Passwortzusenden geht nur, wenn man in einer Veranstaltung eingetragen
ist. In dem Fall kann man dann nicht einfach ein Account eröffnen und das zum
Spammen benutzen und die Einschreibefrist ist ja zeitlich begrenzt.
Comment 4 Johannes Waldmann 2006-03-23 10:07:29 CET
die härtere Variante ist: passwortmailen geht überhaupt nur einmal,
dann muß das neue wenigstens einmal benutzt werden:

wrong_password stud = do
    plain "Passwort falsch."
    par 
    if ( Inter.Crypt.is_empty $ T.next_password stud )
       then ask_pwmail stud
       else plain $ unlines
                  [ "Sie haben eine Email mit einem neuen Passwort erhalten,"
                  , "aber Sie haben dieses neue Passwort noch nicht benutzt."
                  ]
Comment 5 Johannes Waldmann 2006-03-23 11:00:02 CET
und wenn nach Mailing eines neuen das alte doch weiter benutzt wird,
dann wird das neue gelöscht.

use_first_passwort stud =
    if ( Inter.Crypt.is_empty $ next_passwort stud )
    then return stud -- ändert sich nichts
    else do
        plain $ unlines
              [ "Sie hatten eine Email mit einem neuen Passwort erhalten,"
              , "aber Sie haben jetzt Ihr altes Passwort benutzt."
              , "Das Passwort aus der Email wird dadurch ungültig,"
              , "Ihr bestehendes (jetzt benutztes) Passwort bleibt gültig."
              ]
        let neu = stud { T.next_passwort = Inter.Crypt.empty }
        io $ Control.Student.DB.put ( Just $ T.snr stud ) neu
        return neu
Comment 6 Johannes Waldmann 2009-09-22 13:09:57 CEST
*** Bug 228 has been marked as a duplicate of this bug. ***