Passwort sicher im System speichern?



  • Hi, ich poste es mal hier, obgleich ich mir nicht sicher bin ob's in Rund um die
    Programmierung nicht besser aufgehoben wäre...

    Ich schreibe eine Anwendung, der ich Logininformationen für Emailpostfächer
    mitgeben muss. Die Anwendung soll selbständig Mails abrufen.
    Nun muss ich die Passwörter aber so speichern, dass sich nicht jeder einfach
    eine Kopie von der Anwendug zieht und somit dann auch gleich alle Logindaten
    zur Hand hat. MD5 und solche Sachen fallen ja flach, da keine manuelle Eingabe
    erfolgt und somit nicht gegengeprüft werden kann.

    Es bleibt imho nur die Option es in der Registry oder einer anderen Datei
    auf dem System zu speichern. Welche Möglichkeiten das etwas sicherer zu
    gestalten gibt es noch? 😕 `

    Mir ist klar, dass es keine 100%ige Sicherheit gibt. Ich wäre für Anregungen
    dankbar.



  • MD5 und solche Sachen fallen ja flach, da keine manuelle Eingabe
    erfolgt und somit nicht gegengeprüft werden kann.

    Den Teil habe ich nicht verstanden. Wenn du die Passwörter vorher weißt kannst du sie als md5 hinterlegen. Bei der Eingabe wird das PW in einen md5 umgewandelt und du vergleichst die beiden md5. Wird das PW geändert, änderst du den md5.



  • Nach viel hin und her habe ich mir folgendes Modell ausgedacht und bitte um
    eure Meinung dazu:

    Meine Exe läuft auf einem Terminalserver und dort im Adminkontext.
    Nun muss ich einen Pfad der Registry wählen, wo ich verschlüsselt
    die Passwörter abspeichere. Auf diesen Registrypfad darf nur der Adminaccount
    zugriff haben und somit in dessen Kontext auch meine Anwendung.
    Diese holt die Passwörter ab und zieht die EMails.

    Ein normaler Benutzer des Servers kann meine Exe zwar starten und auch
    vorhanden Mails ansehen, kann aber selbst keinen Mailabruf tätigen, da
    der Login aus der Registry nicht gezogen werden kann 😉



  • freak4fun schrieb:

    MD5 und solche Sachen fallen ja flach, da keine manuelle Eingabe
    erfolgt und somit nicht gegengeprüft werden kann.

    Den Teil habe ich nicht verstanden. Wenn du die Passwörter vorher weißt kannst du sie als md5 hinterlegen. Bei der Eingabe wird das PW in einen md5 umgewandelt und du vergleichst die beiden md5. Wird das PW geändert, änderst du den md5.

    Hi, ich muss das Passwort gespeichert hinterlegen, da eben keine manuelle
    Eingabe erfolgt (alles automatisiert). Und MD5 kann ja nur afaik nur ein Vergleichswert sein.
    Womit soll also verglichen werden, wenn keine Interaktion stattfindet.



  • Lennox schrieb:

    freak4fun schrieb:

    MD5 und solche Sachen fallen ja flach, da keine manuelle Eingabe
    erfolgt und somit nicht gegengeprüft werden kann.

    Den Teil habe ich nicht verstanden. Wenn du die Passwörter vorher weißt kannst du sie als md5 hinterlegen. Bei der Eingabe wird das PW in einen md5 umgewandelt und du vergleichst die beiden md5. Wird das PW geändert, änderst du den md5.

    Hi, ich muss das Passwort gespeichert hinterlegen, da eben keine manuelle
    Eingabe erfolgt (alles automatisiert). Und MD5 kann ja nur afaik nur ein Vergleichswert sein.
    Womit soll also verglichen werden, wenn keine Interaktion stattfindet.

    Ja, hast recht, ich hatte das "kein" überlesen. 😞
    Wenn deine Verschlüsselung nicht die einfachste ist, sollte das so gehen. Du solltest aber davon ausgehen, das das verschlüselte PW auch mal in fremde Hände fallen könnte. Diesen Fall also nicht blind ausklammern. 😉



  • Lennox schrieb:

    Ich schreibe eine Anwendung, der ich Logininformationen für Emailpostfächer
    mitgeben muss. Die Anwendung soll selbständig Mails abrufen.
    Nun muss ich die Passwörter aber so speichern, dass sich nicht jeder einfach
    eine Kopie von der Anwendug zieht und somit dann auch gleich alle Logindaten
    zur Hand hat.

    Ich würde sagen: Das ist unmöglich.

    Jeder, der die Anwendung ausführen kann (und Admin-Rechte auf dem PC hat, wo die Anwendung läuft), kann auch die Passwörter finden. Wenn du sie irgendwie unleserlich machst (das ist keine "Verschlüsselung"), dann geht das immer noch problemlos mit einem Debugger. Du musst also davon ausgehen, dass jeder, der dein Programm hat, auch alle Passwörter hat, die das Programm kennt.
    Ich würde die Forderung "Programm kann E-Mail-Account mit bekanntem Passwort abrufen" fallen lassen und mir was anderes überlegen.



  • Christoph schrieb:

    Ich würde die Forderung "Programm kann E-Mail-Account mit bekanntem Passwort abrufen" fallen lassen und mir was anderes überlegen.

    Ich denke es kommt auf die Wichtigkeit an. Wenn der Import von einem Hotmailkonto kommt, das eh jeder hacken kann ist es auch egal. 🤡



  • 1. Leg einen neuen Account bei einem E-Mail Anbieter an.
    2. Programmier dir ein kleines PHP-Script, welches lesenden(!) Zugriff auf dieses Konto bereitstellt.
    3. Steuer dieses PHP-Script an: http://host/?pw=PasswortFuerScript

    Dabei weiß nur das PHP-Script die tatsächlichen Login-Informationen. Das ist nicht sicher, aber es ist letztendlich nur Lesezugriff und es kann zumindest kein Schaden angerichtet werden. Außerdem könnte das PHP-Script und die Anwendung das "Anfrage-Passwort" dynamisch generieren lassen (Nach Datum, etc.). Das ist auch nur Verscheleierung, aber macht es für den Angreifer noch schwieriger.



  • Hi

    Ummöglich ! Das es 100% sicher wird !

    lowbyte



  • Ummöglich ! Das es 100% sicher wird !

    100% agree, wenn Du es selbst loesen willst !

    Aber:
    Du bist nicht der Einzige mit diesen "Problem" !
    Das jemand dein "Programm" hackt und die "Passwoerter" ausspaeht, wirst du zu 100% nicht verhindern koennen, wenn die Vorgabe: "kein Userinput" ist.
    Du kannst nur Steine in den Weg legen (synchrone verschluesselung) ... Das Problem deligieren(einige BS bieten Key-Mappen an, wo man aus Bequemlichkeit passwoerter hinnerlegen kann, dann iss aber der User/die Keymappe schuld ^^) oder du setzt auf externe hardware (password aufn Stick, wird da an bestimmter stelle gesucht, oder fingerabdruck scanner, dessen Daten dir dein wirkliches passwort hashen ... )

    Wenn das alles kein Weg ist, kannst du eigentlich nur noch das Passwort selber schuetzen. das geht nur wenn der Mailserver das unterstuetzt. Wenn der Mailserver zum beispiel selber MD5 oder anderes gehashte Werte akzeptiert, dann solltest die verwenden. Ergo du sagst dem Mailserver das du statt dem klartext Passwort ein Pasworthash schickst, laesst dem user irgendwo sein passwort eingeben, hashst das sofort mit der entsprechenden funktion, und speicherst nur den hash !
    Dann ist zwar sein email konto ned sicher, aber das passwort zumindest !

    Ciao ...


Anmelden zum Antworten