Ankündigung

Einklappen
Keine Ankündigung bisher.

Verschlüsselung für mehrere User

Einklappen

Neue Werbung 2019

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

  • Verschlüsselung für mehrere User

    Guten Tag
    Mein erster Tag und erster Beitrag hier im Forum.
    Ich hoffe ihr könnt mir bei meinem Problem helfen und stoße niemand vor den Kopf.

    Ich bin ein einem Password-Verwaltung für mich und meine Freunde, dies dient in zum lernen und Kenntnisse vertiefen.

    Ich habe im Internet schon viele male gesucht jedoch nichts was mir weiterhelfen konnte gefunden.
    Es geht darum das ich und meine Freunde gemeinsam Passwörter eintragen sollen und jeder meiner Freunde hat Zugriff auf deren Passwörter und kann diese entschlüsseln.

    Wenn ich ein Password eintrage soll es verschlüsselt in die DB abgelegt werden.
    Meine Freunde können dann dieses Verschlüsselte Password aus der DB entschlüsseln und anzeigen lassen.

    Wie gehe ich dies am besten an, es geht ja auch darum das kein anderer der Zugriff auf die DB und FTP hat diese Passwörter entschlüsseln kann.
    Daher darf ja der Key nicht Fix gespeichert werden.

    Ich habe im Bereich Verschlüsselung nicht viel Erfahrung und habe bis jetzt lediglich Passwörter mit
    Code:
    password_hash
    und
    Code:
    password_verify
    geprüft

    Ich hoffe dies sind genug Informationen.
    Ansonsten entschuldige ich mich und würde natürlich weitere Infos geben

    Ich danke bereits für eure Hilfe

    Gruss



  • #2
    Das sind Hash Funktionen und keine Verschlüsselungen. Die kannst du daher nicht "entschlüsseln", da Hash-Funktionen "Einweg" sind.

    Könntest dir mal http://php.net/manual/de/function.openssl-encrypt.php und die zugehörige _decrypt() ansehen. Oder fertige Klassen suchen.
    The string "()()" is not palindrom but the String "())(" is.

    Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
    PHP.de Wissenssammlung | Kein Support per PN

    Kommentar


    • #3
      Das ging schnell

      Das dies Hash Funktionen sind ist mir bewusst.

      Die Idee mit
      Code:
      openssl_encrypt
      habe ich mich auch angeschaut.
      Jedoch habe habe ich keine Ahnung wie ich Texte (Paswörter) verschlüsselt in die DB ablege so das mehr als nur ein User diese entschlüsseln kann ohne das diese mein Privates Passwort kennen.
      Eine Idee wäre noch mit Privatekey und Publickey, jedoch hatte ich da das Problem das man da nur ein Publickey einfügen kann. Somit könnte dies nur ein User entschlüsseln.
      Das andere problem wäre dann wo ich diese Keys ablege.

      Kommentar


      • #4
        Wozu überhaupt die Verschlüsselung? Was ist der Mehrwert?

        Kommentar


        • #5
          Zitat von hellbringer Beitrag anzeigen
          Wozu überhaupt die Verschlüsselung? Was ist der Mehrwert?
          Wir wollen dann Passwörter zu diversen Server und Websites dort ablegen auf die wir gemeinsam Zugriff haben und auch verwalten.
          Sollte der Server jedoch gehackt werden (nur so theoretisch) sollte der Angreifer die Daten nicht entschlüsseln können.

          An diesem Punkt könnte man sagen.....benutze doch einen Password-Manager wie LastPass, Roboform usw.

          Jedoch geht es mir auch darum mich mal etwas mit einer Solchen Verschlüsselung zu beschäftigen.

          Der Sinn dahinter sollte in diesem Fall keine rolle spielen.

          Kommentar


          • #6
            Die Keys solltest du gar nicht ablegen, oder maximal in der Session - die Schlüssel muss jeder Benutzer selber eingeben, bevor er an die Passwörter kommt, und damit muss der Benutzer das Passwort auch selbst vergeben. Einen Masterkey brauchst du nicht - dich gehen die Passwörter ja auch nichts an, ausser du bist selbst Teilnehmer in dem Ring. Sieh dir mal an wie LUKS (Linux Unified Key Setup) arbeitet, das kann auch mehrere Keys verwalten.
            [I]You know, my wife sometimes looks at me strangely. „Duncan“, she says, „there's more to life than Solaris“. Frankly, it's like she speaks another language. I mean, the words make sense individually, but put them together and it's complete nonsense.[/I]

            Kommentar


            • #7
              Zitat von Neonlight Beitrag anzeigen
              Wir wollen dann Passwörter zu diversen Server und Websites dort ablegen auf die wir gemeinsam Zugriff haben und auch verwalten.
              Sollte der Server jedoch gehackt werden (nur so theoretisch) sollte der Angreifer die Daten nicht entschlüsseln können.
              Wenn der Server gehackt wird, können aber auch die eingegebenen Passwörter der User abgefangen werden.

              Daher würde ich die Werte eher clientseitig ver- und entschlüsseln und nicht am Server.

              Kommentar


              • #8
                Eine Möglichkeit wäre, die Passwörter auf dem Server via "GPG" und den öffentlichen Schlüsseln der User zu verschlüsseln und in der Datenbank zu speichern. Das Entschlüsseln mittels des privaten Keys eines Users kannst du dann clientseitig via JavaScript und OpenPGP.js erledigen. Auf diese Weise werden weder die privaten Schlüssel der User, noch deren zugehörigen Passwörter auf dem Server gespeichert, bzw. verarbeitet.

                Kommentar


                • #9
                  Zitat von CPCoder Beitrag anzeigen
                  Eine Möglichkeit wäre, die Passwörter auf dem Server via "GPG" und den öffentlichen Schlüsseln der User zu verschlüsseln und in der Datenbank zu speichern. Das Entschlüsseln mittels des privaten Keys eines Users kannst du dann clientseitig via JavaScript und OpenPGP.js erledigen. Auf diese Weise werden weder die privaten Schlüssel der User, noch deren zugehörigen Passwörter auf dem Server gespeichert, bzw. verarbeitet.
                  Wenn die Passwörter auf dem Server verschlüsselt werden, muss der Server sie auch als Klartext vorliegen haben. Wie sonst kann er sie verschlüsseln?

                  Kommentar


                  • #10
                    Zitat von Neonlight Beitrag anzeigen
                    ...
                    ... Wenn ich ein Password eintrage soll es verschlüsselt in die DB abgelegt werden. ...
                    hellbringer so wie ich den Eingangspost verstanden habe will er Passwörter selbst oder durch andere User in der Datenbank eintragen lassen (wahrscheinlich mittels eines Formulares). In diesem Fall kann er die Passwörter nach dem Empfang der Formulardaten auf dem Server via GPG verschlüsseln und dann in die Datenbank speichern. Hierzu müssen die Passwörter nicht im Klartext auf dem Server vorliegen (Formular > PHP Script > Shell Befehl ausführen (GPG) -> Rückgabe des verschlüsselten Passwortes in der Datenbank speichern). Somit liegen die "Klartext" Passwörter nur im RAM während der Scriptabarbeitung.

                    Kommentar


                    • #11
                      Zitat von CPCoder Beitrag anzeigen
                      hellbringer so wie ich den Eingangspost verstanden habe will er Passwörter selbst oder durch andere User in der Datenbank eintragen lassen (wahrscheinlich mittels eines Formulares). In diesem Fall kann er die Passwörter nach dem Empfang der Formulardaten auf dem Server via GPG verschlüsseln und dann in die Datenbank speichern. Hierzu müssen die Passwörter nicht im Klartext auf dem Server vorliegen (Formular > PHP Script > Shell Befehl ausführen (GPG) -> Rückgabe des verschlüsselten Passwortes in der Datenbank speichern). Somit liegen die "Klartext" Passwörter nur im RAM während der Scriptabarbeitung.
                      Und wenn der Server gehackt wird, kann das PHP-Script manipuliert und die Passwörter woanders hin übertragen werden. Im blödesten Fall merkt man das monatelang nicht, wenn der Hacker mit Fingerspitzengefühl vorgeht.

                      Kommentar


                      • #12
                        Es wäre doch so einfach wichtigste Passwörter in Firmen offline zu speichern, so wie früher.

                        Kommentar

                        Lädt...
                        X