Hallo,
ich starte gerade mit einer neuen Mac App die per Passwort geschützt werden soll. Die Frage hierbei ist, wie und wo die App am besten das Passwort speichert um dieses dann mit der Nutzereingabe beim Login vergleichen zu können.
Die einfachste Lösung wären natürlich das Speichern in den NSUserDefaults. Die kann aber natürlich jeder auslesen, darum sollte man das Passwort dort nicht im Klartext speichern. Aber auch wenn man z.B. nur den MD5 Wert hinterlegt kann man diesen einfach löschen und das Passwort somit auf "leer" zurücksetzten. Man kann natürlich zusätzliche die Information speichern, dass ein Passwort vorhanden ist. Löscht man aber die NSUserDefaults ist auch diese Information weg und die App weiß somit nicht mehr, dass diese nach einem Passwort fragen muss.
Man kann natürlich auch die KeyChain verwenden um das Passwort dort zu hinterlegen. Der Wert dort kann aber auch von außerhalb der der App gelöscht werden. Man hat also quasi dasselbe Problem wie bei den NSUserDefaults.
Wie speichert man also die Information "App braucht Passwort" so ab, dass man diese nicht von außen manipulieren und die Passwort abfrage so deaktivieren kann?
ich starte gerade mit einer neuen Mac App die per Passwort geschützt werden soll. Die Frage hierbei ist, wie und wo die App am besten das Passwort speichert um dieses dann mit der Nutzereingabe beim Login vergleichen zu können.
Die einfachste Lösung wären natürlich das Speichern in den NSUserDefaults. Die kann aber natürlich jeder auslesen, darum sollte man das Passwort dort nicht im Klartext speichern. Aber auch wenn man z.B. nur den MD5 Wert hinterlegt kann man diesen einfach löschen und das Passwort somit auf "leer" zurücksetzten. Man kann natürlich zusätzliche die Information speichern, dass ein Passwort vorhanden ist. Löscht man aber die NSUserDefaults ist auch diese Information weg und die App weiß somit nicht mehr, dass diese nach einem Passwort fragen muss.
Man kann natürlich auch die KeyChain verwenden um das Passwort dort zu hinterlegen. Der Wert dort kann aber auch von außerhalb der der App gelöscht werden. Man hat also quasi dasselbe Problem wie bei den NSUserDefaults.
Wie speichert man also die Information "App braucht Passwort" so ab, dass man diese nicht von außen manipulieren und die Passwort abfrage so deaktivieren kann?