Log-in Informationen richtig abspeichern

  • Hallo, ich würde gerne mal wissen, wenn ich ein Log-insystem in ein Programm einbaue, als was sollte ich die Log-in Informationen abspeichern so das nicht Jeder beliebige darauf zugreiffen kann?

    Grüße Art1 :thumbup:

    Berliner 8):thumbup:

  • Speicher nicht die Passwörter ab sondern die Hashes der Passwörter (am besten noch mit einem Salt beim Hashen versehen).
    Wenn einer sich einloggt checkst du nicht ob das Passwort mit dem in deiner Liste übereinstimmt sondern ob der Hash des eingegebenen Passwortes mit dem in deiner Liste übereinstimmt.
    Vorteil: Selbst wenn einer an deine interne Liste kommt ist es für ihn mit vertretbarem Aufwand (vor allem wenn man noch salzt) nicht möglich an das Passwort zu kommen.

  • So pauschal würd ich das nicht behaupten. Grundsätlzich natürlich richtig was AspirinJunkie schreibt, aber wenn man es nicht richtig umsetzt ist das Passwort bzw. eine Hashkollision trotzdem noch ohne nennenswerten Aufwand erratbar/errechenbar. MD5 ohne Salt wäre jedenfalls nicht die beste Wahl und ohne Passwortrichtlinie die eine Mindestsicherheit vorgibt hilft auch das beste Hashverfahren nichts.

    Ergänzend könntest du die gespeicherten Hashes noch durch Verschlüsselung der Hash-Datei vor fremdem Zugriff schützen. Letztlich kommt man da aber trotzdem noch ran, sofern man ebenfalls Zugriff zum Script hat und dieses dekompilieren kann.

    Eine weitere Maßnahme wäre das Verstecken der Hash-Datei, z.B. durch Speicherung der Daten in der Registry. Mit Quellcode Zugriff und anderen ReverseEngineering Methoden/Tools findet man aber früher oder später trotzdem raus wo und wie die Daten gespeichert werden.

    Alles kombiniert macht es jedenfalls sehr schwer bis unmöglich an die Zugangsdaten zu kommen.

    Das Problem bei dir sehe ich nur darin, dass du scheinbar die Nutzung deines Programmes mit Passwort absichern willst. Wenn ich Zugang zu deinem Programm erhalte und mir so Zugang zum Quellcode verschaffe kann ich die Funktion zur Programmanmeldung einfach deaktivieren. Das macht jedenfalls sehr viel weniger Arbeit als sich damit auseinanderzusetzen wie deine Passwörter generiert und gespeichert werden.

  • Wenn ich Zugang zu deinem Programm erhalte und mir so Zugang zum Quellcode verschaffe kann ich die Funktion zur Programmanmeldung einfach deaktivieren.

    Ja ganz genau - solange man AutoIt einsetzt muss man sich bewusst sein, dass der Quellcode auslesbar ist.
    Das ist der eigentlich Pferdefuss bei der Geschichte.

    Btw.: Wir hatten auch mal ein beispielhaftes Serial-Überprüfungs-System gebastelt welches eine Serial auf einem MySQL (oder MariaDB)-Server abfragt:
    >>Serial überprüfen<<
    Dort war aber genau das selbe Fazit: Alles schön und sicher gestaltbar - aber mit dem AutoIt-Skript als Achillesferse.

  • Wirklich sicher kann man das nur gestalten, wenn man eine Client/Server Architektur einsetzt und die eigentlich zu schützende Programmfunktion auf einem entfernten Server ohne direkten Benutzerzugriff ausführt. Der Client auf dem Benutzer Rechner dient dann lediglich als Anmeldemaske und sofern vom Server authentifiziert als Steuereinheit. Die Anmeldung kann man dann nicht umgehen, da nur der Server alle relevanten Informationen kennt und nur er alleine entscheidet von wem er sich steuern lässt oder nicht.

    Aber auch hier muss man dann zumindestens die Netzwerkverbindung zwischen Client und Server durch Verschlüsselung absichern um die Anmeldedaten berechtigter Benutzer vor Fremdzugriff zu schützen.

  • EInbruch und Einbruchschutz - ist stets eine Frage des Werkzeuges. Je größer das Werkzeug (je erfahrener der Einbrecher) desto komplizierter der Einbruchschutz. Gegen Superprofis geht der Einbruchschutz schnell gegen 0.

    Wenn man verhindern will, dass jeder dahergelaufene "einbrechen" kann. Dann helfen auch schon einfache Methoden. Also z.B. ein PSW verschlüsselt in einScribt schreiben. Hilft halt nur bei "Laien". Aber da 100%ig.

    Also immer überlegen welches Niveau der Täterkreis hat.

    Gruß
    Peter

    Hinweise auf Suchmaschinen finde ich überflüssig - wer fragt hat es nicht gefunden oder nicht verstanden. Die Antwort gibt sich oftmals schneller als der Hinweis auf Dr. Goggle & Co.

    Ab 19-10-22 ergänzt um:

    Die Welt wird nicht bedroht von den Menschen, die böse sind, sondern von denen, die das Böse zulassen. (Albert Einstein)