Sichere Übertragung & speichern eines Passwortes



  • Hallo zusammen,
    Ich habe eine Fragen, und zwar denke ich gerade da drüber nach, wie man am besten eine sichere Übertragung zwischen Browser/Client/App/was auch immer und Server herstellt.
    Ich denke mir, das wenn ich z.B. das Passwort (des Users) oder andere sensible Daten einfach im Klartext (oder Passwort MD5) sende, man es ja einfach "mithören" kann, daher kam mir die Idee den Sendevorgang zu verschlüsseln.
    Also z.B. mit RSA, daher der Client bekommt den public key womit er die Daten verschlüsselt und dann an den Server sendet, der die Daten mit dem private key entschlüsselt.
    Aber was bringt mir die sicherste Übertragung, wenn dann der private key auf dem Server irgendwo in Klartext liegt.
    Mir wil einfach nicht das fehlende Puzzle-Teil einfallen, wie man den "Kreis der Sicherheit" schließen kann 😉

    Ich hoffe ihr versteht was ich meine 🙂
    MfG,
    Fer



  • Es gibt leider keinen "Kreis der Sicherheit" solange nicht irgendwann mal zu irgendeinem Zeitpunkt eine sichere Übertragung stattgefunden hat. (Das ist dann meistens der Public-Key, den kann man uU auch gleich mit der Software mit installieren.) Sobald das der Fall ist, kann man eine sichere Verbindung aufbauen. Jetzt müsste man aber wissen, was genau du erreichen willst. Ich denke einfach mal, ein Passwort soll vom Clienten zum Server übertragen werden, das ist so relativ üblich. Die einfachste Variante ist jetzt, dass der Client das Passwort mit dem Public-Key des Servers verschlüsselt, und ihm schickt. Du hast jetzt bedenken geäußtert, weil der Private-Key ja auf dem Server liegt. Mir ist nicht ganz klar warum; dass er auf dem Server liegt, heißt ja nicht, dass jeder Zugriff darauf hat?

    Ansonsten ist MD5 hoffnungslos veraltet, Hashes allein sind eh kaum geeignet um Passwörter zu speichern und forward-secrecy ist auch noch so eine Sache. Aber dazu verweise ich dich mal auf http://security.stackexchange.com/questions?sort=faq



  • derFer schrieb:

    Aber was bringt mir die sicherste Übertragung, wenn dann der private key auf dem Server irgendwo in Klartext liegt.

    Ist relativ egal. Wenn der Angreifer den Server so weit geknackt hat, daß er den private key auslesen kann, dann kann er auch deine Benutzerdaten lesen.

    Aber was ist, wenn der Lauscher morgen sich als Du einloggt? Er weiß ja jetzt, wie Dein Passwort aussieht, wenn es mit dem private key des Servers verschlüsselt wurde.

    Ansonsten so Sachen http://en.wikipedia.org/wiki/Cryptographic_nonce und überhaupt http://en.wikipedia.org/wiki/Category:Cryptography



  • Hallo,
    Danke, das hat mir schon mal sehr geholfen!
    Das mit dem Private Key stimmt, falls jemand soweit kommt es zu lesen, hab ich andere Probleme 😉
    Ist natürlich auch doof wenn der Lauscher einfach aufzeichnen muss wie das verschlüsselte Passwort aussieht, wenn der Schlüssel und das Passwort immer gleich sind, bleibt wohl auch immer die Antwort des Client an den Server gleich.
    Außer natürlich bei jeder Session wird ein anderer Schlüssel benutzt oder das Passwort wird vorher mit irgendeiner Zufallsvariable gehasht, bevor es verschlüsselt wird...
    Kann sein das es in deinen Links steht, muss mir die morgen in Ruhe (wenn ich wieder wacher bin 😉 ) mal angucken.
    Also danke schon mal 😃
    MfG

    Edit:
    So hab mir mal deine Links durch geguckt, anscheinend hab ich wirklich in die richtige Richtung gedacht 😃
    Ich frage mich gerade nur noch, wie man sicher stellen kann, das der Client nicht korrumpiert wurde... Aber das wird wohl schwer machbar sein...
    MfG²,
    Fer


Anmelden zum Antworten