Ergebnis 1 bis 11 von 11

Thema: Nicht-erlaubte Zeichen in Passwörtern

  1. #1
    Contao-Nutzer
    Registriert seit
    23.09.2012.
    Beiträge
    6

    Fehler Nicht-erlaubte Zeichen in Passwörtern

    Hallo,

    habe gerade von Contao erfahren und es gleich auf meinem Webserver installiert.

    Bei der Installation kam schon das erste Problem auf. Überall wird empfohlen, Passwörter mit Sonderzeichen zu nutzen. Das mache ich schon seit Jahren so, ganz selbstverständlich. Contao warf mir beim Anlegen meines Nutzers aber vor den Kopf, dass mein Passwort kein Raute-Zeichen, keine Klammern etc. enthalten dürfte.

    Meine erste Frage in dem Moment: Warum? Passwörter nicht gehasht in der DB??
    Blick in die DB - doch, zum glück.

    Meine zweite Frage: Kein Salt im Hash?
    Blick in die DB - tatsächlich kein Salt gefunden. Irgs. Unschön!!

    Was mich aber total umgehauen hat: Angeblich diene der Ausschluss dieser Sonderzeichen der Sicherheit, so das CMS in der Installation.
    Entschuldigung, aber ich finde diese Behauptung - vorsichtig gesagt - lächerlich. Eigentlich sogar brandgefährlich. Es gibt durch den Hash keinen vernünftigen Grund, auf diese Sonderzeichen zu verzichten! (Fast) alle anderen CMSe kriegen das auch hin, warum also nicht Contao?

    Wenn diese beiden Punkte:
    * Salt
    * Sonderzeichen
    nicht halbwegs schnell auf der Roadmap landen, muss ich leider nach einem anderen CMS ausschau halten. Davon gehe ich aber derzeit nicht aus. Da ich selbst Entwickler bin und mich fleißig mit Sicherheitsfragen auseinandergesetzt habe, schätze ich, dass auch die Contao-Entwickler recht schnell an diesem Punkt arbeiten werden. Gerne stelle ich dazu auch einen Report im Bugtracker ein.

    Ich würde gerne nur etwas Feedback aus dem Forum hören - vielleicht kennt ja jemand die Hintergründe dazu (à la: "... da hat sich sicher jemand etwas dabei gedacht!").

    Danke schon einmal! Und danke für dieses ansonsten so großartige CMS!
    Gruß,
    Ben

  2. #2
    Wandelndes Contao-Lexikon Avatar von BugBuster
    Registriert seit
    15.06.2009.
    Ort
    Berlin
    Beiträge
    10.522
    User beschenken
    Wunschliste

    Standard

    Zum Thema Salt kann ich dir aber sagen, das die Passwörter sehr wohl "gesalzen" sind wenn du das meinst.
    Grüße, BugBuster
    "view source" is your guide.
    Danke an alle Amazon Wunschlisten Erfüller

  3. #3
    Contao-Urgestein
    Registriert seit
    03.06.2010.
    Ort
    Wuppertal
    Beiträge
    2.149
    User beschenken
    Wunschliste

    Standard

    Ist mir ehrlich gesagt noch nie aufgefallen, weil ich keines der "verbotenen" Sonderzeichen in meinen Passwörtern verwende...

    Hier mal die Liste der nicht erlaubten Zeichen:

    Code:
    #
    (
    )
    /
    <
    =
    >

  4. #4
    Contao-Urgestein Avatar von Thomas
    Registriert seit
    16.08.2009.
    Ort
    Visselhövede
    Beiträge
    1.947
    User beschenken
    Wunschliste

    Standard

    Doch, aufgefallen schon, aber für nicht so wichtig gehalten. Gibt ja noch genug anderer Sonderzeichen.
    So ganz Unrecht hat er aber nicht.

    Manchmal verwende ich ganz paranoide Passwörter, 30 oder mehr Zeichen mit allem was die Tastatur her gibt, ausser Umlauten.
    *I know*, wirklich sehr paranoid.
    Gruß Thomas
    "Zuerst ignorieren sie dich, dann lachen sie über dich, dann bekämpfen sie dich und dann gewinnst du." Mahatma Gandhi

  5. #5
    Contao-Urgestein
    Registriert seit
    03.06.2010.
    Ort
    Wuppertal
    Beiträge
    2.149
    User beschenken
    Wunschliste

    Standard

    Mittlerweile nutze ich KeePass Auto Funktion und seh die meisten Passwörter gar nicht mehr

  6. #6
    Contao-Nutzer
    Registriert seit
    23.09.2012.
    Beiträge
    6

    Standard

    Zitat Zitat von Thomas Beitrag anzeigen
    Doch, aufgefallen schon, aber für nicht so wichtig gehalten. Gibt ja noch genug anderer Sonderzeichen.
    So ganz Unrecht hat er aber nicht.
    Naja,
    1.) es schränkt die Entropie unnötig ein.
    2.) Die Aussage "aus Sicherheitsgründen sind diese Zeichen nicht möglich" ist einfach falsch und gefährlich.

    Zitat Zitat von Thomas Beitrag anzeigen
    Manchmal verwende ich ganz paranoide Passwörter, 30 oder mehr Zeichen mit allem was die Tastatur her gibt, ausser Umlauten.
    *I know*, wirklich sehr paranoid.
    Halte ich für eine schlechte Idee, weil du diese sicher aufschreibst. Meine 16stelligen (variiert) kann ich mir mit einem Trick gut merken:
    1. Passwort mit echtem, gut getesteten Zufallsgenerator (z.B. Linux' pwgen) erstellen lassen. Da kommt dann so etwas (z.B.) raus:
      Code:
      $ pwgen 9 16 -y -c -n -B
      ouZ$ei7it coo7Sah(t vo3rei}N+ iex~ui7Fi eiquae#M7 do#B]i3wu FiX9au)ku Iph}ef4ge
      AiSh3rah_ kee~h9ahN ieQu@oo4u Xie&t4ook iQu7ich/u Ic7Eet{ae ip4eeGo}y ooN3xae{h
    2. Ein Trennzeichen voranstellen (z. B. eines der oben genannten)
    3. Das zu nutzende System voranstellen (z.B. das Contao-Login beginnt mit "Contao", das Youtube-Login mit "Youtube" oder "YouTube").
    4. Fertig ist das Passwort: Contao&do#B]i3wu, Youtube&do#B]i3wu

    Vorteil:
    • Das zu nutzende Passwort ist LANG, immer mindestens ca. 12 Zeichen.
    • Man hat in jeder Systemdatenbank einen komplett anderen Hash, auch wenn die Passworte nicht gesalzen sein sollten.
    • Man muss sich kein Passwort aufschreiben, sondern nur einmal einen "Passwortanhang" merken.


    Zitat Zitat von BugBuster
    Zum Thema Salt kann ich dir aber sagen, das die Passwörter sehr wohl "gesalzen" sind wenn du das meinst.
    Okay, aber zumindest nicht pro User ein eigenes Salt - sondern das bei der Installation verwendete. Wäre doch eine gute Idee, das Salt mit in der DB zu speichern, damit jeder User sein eigenes erhält?

    ---

    Okay, zurück zum Thema.
    Offensichtlich sind wir uns ja schon alle einig, dass der Ausschluss der oben genannten Zeichen (danke für die Auflistung!) nicht der Sicherheit dient.

    Und nun? Soll ich irgendwo einen Bug-Report einstellen, liest der Entwickler mit? Soll ich einen Patch einreichen? Wenn ja, wo?
    Bin für Infos dankbar.


    Gruß & Danke,
    Ben

  7. #7
    Wandelndes Contao-Lexikon Avatar von BugBuster
    Registriert seit
    15.06.2009.
    Ort
    Berlin
    Beiträge
    10.522
    User beschenken
    Wunschliste

    Standard

    https://github.com/contao/core/issues/4047
    In Contao3 darfste dann Sonderzeichen haben.
    Geändert von BugBuster (24.09.2012 um 12:11 Uhr)
    Grüße, BugBuster
    "view source" is your guide.
    Danke an alle Amazon Wunschlisten Erfüller

  8. #8
    Wandelndes Contao-Lexikon Avatar von BugBuster
    Registriert seit
    15.06.2009.
    Ort
    Berlin
    Beiträge
    10.522
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von mampf Beitrag anzeigen
    Okay, aber zumindest nicht pro User ein eigenes Salt - sondern das bei der Installation verwendete. Wäre doch eine gute Idee, das Salt mit in der DB zu speichern, damit jeder User sein eigenes erhält?
    Huh?
    Jedes Passwort erhält ein individuelles Salt und wird damit verschlüsselt, (sha1($salt . $password)).
    Das salt selbst ist: substr(md5(uniqid(mt_rand(), true)), 0, 23);
    Und das salt wird je user in der DB gespeichert.
    Geändert von BugBuster (24.09.2012 um 12:08 Uhr)
    Grüße, BugBuster
    "view source" is your guide.
    Danke an alle Amazon Wunschlisten Erfüller

  9. #9
    Contao-Nutzer
    Registriert seit
    23.09.2012.
    Beiträge
    6

    Standard

    Zitat Zitat von BugBuster Beitrag anzeigen
    Huh?
    Jedes Passwort erhält ein individuelles Salt und wird damit verschlüsselt, (sha1($salt . $password)).
    Das salt selbst ist: substr(md5(uniqid(mt_rand(), true)), 0, 23);
    Und das salt wird je user in der DB gespeichert.
    Merci für den Quellcodeauszug. Ich war von einem DB-Eintrag ausgegangen, an dem man die Trennung erkennt (um z.B. variable längen des Salts zu erlauben). Also etwa "salt;hash". Also, vielen Dank für den Hinweis!

    Danke auch für den Hinweis zum Bugreport. Ich hätte wohl gleich mit Contao 3.0RC1 anfangen können, aber sei es drum.

  10. #10
    Contao-Nutzer Avatar von Der_Ritter
    Registriert seit
    21.06.2009.
    Beiträge
    106

    Standard

    Hallo zusammen,

    ich möchten diesen Thread als Contao 2.11.x-User nocheinmal aufwärmen.
    Dass man Sonderzeichen in Contao 3 haben darf ist prima.
    Wo muss ich in 2.11 was anpassen, damit das auch hier mit den Sonderzeichen klappt?

    Ich habe das Problem, dass ich über das Frontendlogin (credentials) mit der au_ldap_authentication auch gegen das Active Directory prüfe und Usern die Möglichkeit gebe, sich mit ihrem Windows-Login anzumelden. Nun haben wir firmenseitig die Vorgabe, Sonderzeichen bei den Passwörtern zu verwenden. Z.B. '#'.

    Aufgrund der Tatsache, dass bestimmte Sonderzeichen nicht erlaubt sind, können sich nun einige User nicht mit Ihrem Windows-Account anmelden.

    Ich habe in den zwei Dateien contao/install.php und contao/password.php jeweils folgendes auskommentiert und die darauf folgenden (else)if-Klauseln entsprechend angepasst, dass es wieder funktioniert:

    contao/install.php ab Zeile 292
    PHP-Code:
    // Do not allow special characters
                /*if (preg_match('/[#\(\)\/<=>]/', $strPassword))
                {
                    $this->Template->passwordError = $GLOBALS['TL_LANG']['ERR']['extnd'];
                }*/ 
    contao/install.php ab Zeile 845
    PHP-Code:
            // Do not allow special characters in passwords
                    /*elseif (preg_match('/[#\(\)\/<=>]/', html_entity_decode($this->Input->post('pass'))))
                    {
                        $this->Template->passwordError = $GLOBALS['TL_LANG']['ERR']['extnd'];
                    }*/ 
    sowie

    contao/password.php ab Zeile 83
    PHP-Code:
    // Do not allow special characters
                /*if (preg_match('/[#\(\)\/<=>]/', html_entity_decode($this->Input->post('password'))))
                {
                    $this->addErrorMessage($GLOBALS['TL_LANG']['ERR']['extnd']);
                }*/ 
    Jedoch brachte das bisher nicht den gewünschten Erfolg. Wo müsste ich noch rumschrauben, damit das mit den Sonderzeichen funktioniert?

    Grüße
    Der_Ritter

  11. #11
    Contao-Nutzer Avatar von Der_Ritter
    Registriert seit
    21.06.2009.
    Beiträge
    106

    Standard

    Habe es wie folgt hinbekommen (es ging mir in erster Linie um das Zeichen '#'

    In

    system/libraries\Widget.php ab Zeile 704 die Zeile wie folgt abgeändert:
    PHP-Code:
    // Do not allow any characters that are usually encoded by class Input [=<>()#/])
                    
    case 'extnd':
                        
    //if (preg_match('/[#\(\)\/<=>]/', html_entity_decode($varInput)))
                        
    if (preg_match('/[\(\)\/<=>]/'html_entity_decode($varInput)))
                        {
                            
    $this->addError(sprintf($GLOBALS['TL_LANG']['ERR']['extnd'], $this->strLabel));
                        }
                        break; 
    Nun geht's

    Grüße
    Der_Ritter

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •