Benutzerverwaltung bauen...



  • hi,

    ich frag mich, wie man am kleversten eine eigene benutzerverwaltung für das eigene programm bauen kann/sollte!
    benutzername und passwort irgendwie abzuspeichern ist ja nicht schwer, einfach md5-checksumme (o.ä.) vom passwort speichern und dann vergleichen!
    aber wie geht das mit benutzerrechten? wie speichert man die ab? ist doch alles nicht wirklich sicher oder?
    einfach in einer datei speichern, die man verschlüsselt, kann's nicht sein, da mein programm ja den key irgendwo "hardcoded" haben muss und den kann man dann auslesen.
    wie macht man das am sichersten?`

    LG,
    erso



  • Moin Moin

    Datenbank?
    Gibt einige Datenbanken die dem Programm mitgeliefert werden können und mit SQL arbeiten (Link? Hier im Forum suchen:-))

    Oder die Daten verschlüsseln und den Key gut im Programm verstecken=> Nachteil einmal geknackt =>alle Programme dieser Version geknackt also bei der Installation einen Random Key anlegen und verwenden. Diesen Key gut verstecken und am besten intern noch ein wenig umrechnen bevor du das "sichere" Verschlüsselungsverfahren benutzt.

    Ansonsten ist es halt immer das selbe Problem => Key sicher verstecken=>hilft gegen 90% der Kiddis =>10% kommmen durch =>Noch mehr Aufwand reinstecken=>Kosten explodieren usw.

    cu CodeHure



  • erso schrieb:

    hi,

    ich frag mich, wie man am kleversten eine eigene benutzerverwaltung für das eigene programm bauen kann/sollte!
    benutzername und passwort irgendwie abzuspeichern ist ja nicht schwer, einfach md5-checksumme (o.ä.) vom passwort speichern und dann vergleichen!
    aber wie geht das mit benutzerrechten? wie speichert man die ab? ist doch alles nicht wirklich sicher oder?
    einfach in einer datei speichern, die man verschlüsselt, kann's nicht sein, da mein programm ja den key irgendwo "hardcoded" haben muss und den kann man dann auslesen.
    wie macht man das am sichersten?`

    LG,
    erso

    Die Rechte würde ich auch per hash verschlüsseln. Sicherer wird es, wenn du einen konstanten String anhängst und den dann mit verschlüsselst. Den konstante String kannst du dann plain in einer Datei o.ä. speichern. Die Rechtebezeichner würde ich natürlich auch etwas ausgefallener wählen



  • wenn ich die rechte auch als hash speichere (mit oder ohne angehangenem string), dann sehen ja die hash's zweier personen mit gleichen rechten auch gleich aus! dann müsste sich ja ein "bösling" nur den hash von jemanden anderes an seine stelle schreiben und schon hat er auch die selben rechte (angenommen er hat vorher den key aus meinem programm ausgelesen und die datei entschlüsselt 🙂 ). man könnte auch seinen benutzernamen oder sein passwort-hash mit an den rechte-string ranhängen und dann hashen o.ä. aber das ist auch einfach rauszufinden!
    Ich dachte, dass es vielleicht so eine "allgemeine" benutzerverwaltungs-richtlinie gibt oder so, in der steht, wie man das am sichersten macht.
    wär für tipps immer noch sehr dankbar!



  • Gegen das Lesen der Rechte gibt es ja idR nichts zu sagen. Du musst lediglich achten, dass nur der Admin sie ändern kann. zB in eine DB speichern und einem User nur leserechte geben.

    Wichtig ist dann nur, dass man nicht einfach das auslesen der Rechte umgehen kann...



  • Rechte mit Benutzernamen XOR und dann erst md5



  • Lutz schrieb:

    Rechte mit Benutzernamen XOR und dann erst md5

    user XOR rechter -> md5 --- kein problem
    md5 -> ... hmmm ... wie ging das noch mal? 🤡



  • CMatt schrieb:

    md5 -> ... hmmm ... wie ging das noch mal? 🤡

    Brute Force 😉



  • md5(uname XOR rechte) ist aber auch nur solange sicher, bis irgendwer rauskriegt, dass das so abläuft. sobald das einer weiss durch k.A. disassemblieren oder mit softice o.ä. dann ist es ja nicht schwer, sich alle rechte zu geben!
    wie gesagt, für den großteil würde es wohl reichen, aber wenn's richtig sicher sein soll... ?! oder wenigstens etwas aufwendiger zu knacken... 😃


Anmelden zum Antworten