Ankündigung

Einklappen
Keine Ankündigung bisher.

Passwörter verschlüsselt übertragen

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Passwörter verschlüsselt übertragen

    Hi,

    Wie kann ich Passwörter verschlüsselt über JavaScript zu einer PHP Datei übertragen?
    Brauche ich dazu einen SSL Tunnel oder kann ich
    mir für diesen Zweck selber eine Funktion schreiben?
    Die müsste auch eine Art Tunnel aufbauen.
    Aber meine Scripte auf dem Server haben glaube ich
    nur eine bestimmte Laufzeit.

    Danke für eure Hilfe

  • #2
    du wirst nicht an SSL vorbeikommen.
    [B]PHP4?!?[/B]>>>[B]Aktuelle[/B] PHP Version: [B]5.2.11 || 5.3.0
    [URL="http://en.opensuse.org/Factory/News"]Suse 11.2 *vorfreude*[/URL]
    [/B]

    Kommentar


    • #3
      [OT]
      Der Blaue Gott Balmung
      Vielleicht hilft auch beten

      Willkommen hier im Forum!
      [COLOR="#F5F5FF"]--[/COLOR]
      [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
      „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
      [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
      [COLOR="#F5F5FF"]
      --[/COLOR]

      Kommentar


      • #4
        Wenn du schon sagst: "per javascript an PHP" ist es auch denkbar das Passwort einfach auf Client-Seite per JavaScript zu hashen (md5 oder was weiß ich) und nur den Hash übers Netz zu schicken...
        Natürlich ist das KEIN Ersatz für eine Verschlüsselung ... aber ein einfacher Weg Passwörter nicht im Klartext zu übertragen...
        [URL="https://www.quizshow.io/"]Create your own quiz show.[/URL]

        Kommentar


        • #5
          Du musst nur bedenken, dass es in JavaScript keine MD5-Hash-Funktion gibt. Den Algorithmus muss dann aus dem Internet geladen und in die Seite eingebaut werden (ich meine, bei SelfHTML gibt es ein Skript in JavaScript).
          Meine Erfahrung mit JavaScript und MD5 ist aber, dass das Skript merklich langsam ist.
          Refining Linux: “[url=http://www.refining-linux.org/archives/65/Performing-push-backups-Part-1-rdiff-backup/]Performing Push Backups – Part 1: rdiff-backup[/url]”

          Kommentar


          • #6
            Hey,
            also ich benutze schon seit langem eine Javascript Verschlüsselung für MD5, funzt super und ist schnell.

            http://pajhome.org.uk/crypt/md5/

            Machste dann einfach bei deinem Button, onSubmit und rufst die Funktion "md5()" auf. Das verschlüsselt dann deine Eingabe bevor diese gesendet wird. Funzt super bei mir!

            Gruß, Broady

            Kommentar


            • #7
              Da hatte wohl jemand langeweile... naja scheint jedenfalls zu funktionieren und schnell zu sein

              Kommentar


              • #8
                Mag auch sein, dass es nur die Skript-Ladezeit war. Du solltest daran denken, die Einbindung des Skripts im Footer der Seite zu machen. Ansonsten wird meist erst gewartet, bis das Skript geladen ist, bevor die Seite weiter aufgebaut wird.
                Refining Linux: “[url=http://www.refining-linux.org/archives/65/Performing-push-backups-Part-1-rdiff-backup/]Performing Push Backups – Part 1: rdiff-backup[/url]”

                Kommentar


                • #9
                  Zitat von Agrajag
                  Wenn du schon sagst: "per javascript an PHP" ist es auch denkbar das Passwort einfach auf Client-Seite per JavaScript zu hashen (md5 oder was weiß ich) und nur den Hash übers Netz zu schicken...
                  Natürlich ist das KEIN Ersatz für eine Verschlüsselung ... aber ein einfacher Weg Passwörter nicht im Klartext zu übertragen...
                  Das Hashen des Passworts macht keinen Sinn wenn man sich mit dem Passwort-Hash einloggen kann, weil dieser Hash das Passwort repräsentiert und somit auch "Klartext" ist.

                  Kommentar


                  • #10
                    Zitat von Der Blaue Gott Balmung
                    Das Hashen des Passworts macht keinen Sinn wenn man sich mit dem Passwort-Hash einloggen kann, weil dieser Hash das Passwort repräsentiert und somit auch "Klartext" ist.
                    Ja, das hat kein Sinn.
                    Deshalb direkt auf SSL umsteigen.
                    sonnst, kannst du auch mit dem javascript ein umweg machen.
                    du setzt mit PHP eine Javascriptvariable mit einem Zufallswert
                    var zufall='<?php echo $_SESSION['zufallsstring']; ?>';
                    und lässt mit javascript beides verschlüsseln
                    javascript_md5(zufall+javascript_md5(password));

                    am server muss du jetzt das zu kontrollieren
                    if(md5($md5password_aus_db.$_SESSION['zufallsstring'])==$_POST['password']) echo 'Willkommen';

                    Diese vorgehensweise wird dem Lauscher zwischen dem Klient und Server die Möglichkeit klauen ein direkter Passwort zu bekommen und sich in Zukunft mit diesem Password anzumelden, Die Kommunikation zwischen dir und dem Server bleibt weiterhin dem Lauscher voll sichtbar, was natürlich weiter hin für SSL spricht, da SSL die ganze Kommunikation zwischen Klient und dem Server verschlüsselt und nicht nur die Passwörter
                    Slava
                    http://bituniverse.com

                    Kommentar


                    • #11
                      Zitat von Der Blaue Gott Balmung
                      Zitat von Agrajag
                      Wenn du schon sagst: "per javascript an PHP" ist es auch denkbar das Passwort einfach auf Client-Seite per JavaScript zu hashen (md5 oder was weiß ich) und nur den Hash übers Netz zu schicken...
                      Natürlich ist das KEIN Ersatz für eine Verschlüsselung ... aber ein einfacher Weg Passwörter nicht im Klartext zu übertragen...
                      Das Hashen des Passworts macht keinen Sinn wenn man sich mit dem Passwort-Hash einloggen kann, weil dieser Hash das Passwort repräsentiert und somit auch "Klartext" ist.
                      Man kann sich ja nicht mit dem Hash einloggen. Wenn man den Hash zum Login eingibt, wird dieser bei der Überprüfung ja nochmals gehasht, da das Skript ja davon ausgehen muss, dass eine ungehashte Zeichenfolge gesendet wurde.
                      Refining Linux: “[url=http://www.refining-linux.org/archives/65/Performing-push-backups-Part-1-rdiff-backup/]Performing Push Backups – Part 1: rdiff-backup[/url]”

                      Kommentar


                      • #12
                        @Slava:
                        Vielen Dank, das ist die Lösung für mein Problem
                        Ich habe schon daran gedacht, aber den Gedanken mit dem Einwand abgetan, dass mein PHP Script sich den Seed nicht so einfach merken kann.
                        Dass man Variablen einfach in einer Session abspeichern kann ist mir einfach entfallen. Ich sollte regelmäßiger PHP programmieren ^^
                        Die Passwortstärke reicht für meine Zwecke.
                        Um auf https zurückzugreifen müsste ich den Provider wechseln.

                        Zitat von Manko10
                        Man kann sich ja nicht mit dem Hash einloggen. Wenn man den Hash zum Login eingibt, wird dieser bei der Überprüfung ja nochmals gehasht, da das Skript ja davon ausgehen muss, dass eine ungehashte Zeichenfolge gesendet wurde.
                        Man muss den Hash nicht über das Script schicken.
                        Deshalb wird er nicht noch einmal gehasht

                        Für mich sehen die folgenden Szenarios jedenfalls identisch aus:
                        1.
                        Client: Der User schickt ein Passwort ab
                        Dazwischen: Das Passwort wird abgehört
                        Server: Das Passwort wird gehasht um es mit dem Hash in der Datenbank zu vergleichen. Der User wird eingelogged.

                        -> Der Typ dazwischen schickt das selbe Passwort ab
                        -> Server: Das Passwort wird gehasht um es mit dem Hash in der Datenbank zu vergleichen. Der User wird eingeloggt.

                        2.
                        Client: Der User schickt ein "gehashtes Passwort" ab
                        Dazwischen: Das "gehashte Passwort" wird abgehört
                        Server: Das "gehashte Passwort" wird gehasht um es mit dem Hash in der Datenbank zu vergleichen. Der User wird eingeloggt.

                        -> Der Typ dazwischen schickt das selbe "gehashte Passwort" ab
                        -> Server: Das "gehashte Passwort" wird gehasht um es mit dem Hash in der Datenbank zu vergleichen. Der User wird eingelogged.

                        Im Zweiten Teil habe ich nur Passwort mit "gehashtes Passwort" ersetzt, wobei beides ein String ist, der vom Client gesendet wird und zum einloggen beim Server dient.
                        Also kann man es mit einem Passwort gleichsetzen.

                        Kommentar


                        • #13
                          @Der Blaue Gott Balmung,

                          was ist wenn man noch die IP-Adresse des Clients in den Hash mit einbezieht?
                          So nach dem Motto $hash = md5($_SERVER['REMOTE_ADDR'].$_POST['passwd']);
                          Der Klient müsste sich aber bei Änderung der IP nochmal einloggen.

                          Kommentar


                          • #14
                            @GelaMu
                            Das geht schon, ist aber weniger sicher, weil die IP ein festes Muster hat und Teil der Botschaft ist, die mit dem Passwort übermittelt wird. Durch statische IPs wird diese Möglichkeit noch unsicherer. Da ich mich nicht auf security through obscurity verlassen möchte und weil der Quelltext vielleicht noch freigebeben wird kommt diese Möglichkeit für mich nicht in Frage.

                            Zitat von GelaMu
                            Der Klient müsste sich aber bei Änderung der IP nochmal einloggen.
                            Wenn man nach dem einloggen eine Session aufmacht und nicht bei jedem Script-Aufruf auf die vorherige IP prüft (was aber sicherheitstechnisch sinnvoll ist) bleibt man solange die Session besteht eingeloggt.

                            Kommentar


                            • #15
                              Und was hindert den Man-in-the-Middle daran, den $_SESSION["salt"] abzufangen, den ihr ja irgendwie an JavaScript uebergeben muesst?

                              JavaScript ist client-seitig und somit NIE sicher, man kann es dem Angreifer hoechstens erschweren, aber eine professionelle Loesung ist das nicht, mehr Skript-Kiddie Niveau. Benutz SSL!

                              Kommentar

                              Lädt...
                              X