Hi,
ich bin auf der Suche nach einer Best Practice was die Speicherung von Zugangsdaten angeht.
Zuerst einmal möchte ich darum bitten, dass nicht alle sofort antworten, ich solle erst einmal die SuFu oder Google nutzen. Die Quintessenz ist, dass es nicht möglich ist. Das ist mir klar, denn wann immer eine Applikation Daten im Klartext benötigt, müssen sie irgendwo im Programm lesbar gespeichert werden.
Primär geht es mir um die Speicherung von Zertifikaten und Passwortstrings (wobei die Zertifikate auch auf die Speicherung eines Passwortstrings - einer Passphrase - zurückführbar sind) um Zugang zu Webservices zu bekommen.
Die Lösung das Problem in einen Webservice zu verlagern zählt nicht, denn dort würde ich das Problem auch gerne "lösen".
Der naive Ansatz wäre, die Zugangsdaten in einer Konfigurationsdatei zu speichern und diese mit dem Verfahren meiner Wahl zu verschlüsseln. Der Schlüssel dafür müsste aber auch irgendwo gespeichert werden - das Problem besteht also immer noch.
Ein weiterer Ansatz wäre, die Zugangsdaten mit einem Nutzerpasswort zu verschlüsseln. Dies kommt allerdings nicht infrage, weil man keine weiteren Nutzer anlegen könnte, die das Passwort ebenfalls entschlüsseln könnten. Das ginge nur, wenn ein anderer Nutzer, der das Passwort bereits kennt, das Passwort weitergäbe.
Das einzige was mir jetzt noch einfällt ist die Möglichkeit, das Passwort wie oben beschrieben in eine verschlüsselte Konfigurationsdatei auszulagern und einen Obfuscator zu verwenden, um das Auffinden der Routine zum entschlüsseln etwas unkenntlicher zu machen... Nichtsdestotrotz ließe sich der verschleierte Quellcode aber dennoch zurückgewinnen und man könnte die Anwendung auch noch debuggen...
Nahezu jeder Webservice benötigt doch Zugangsdaten und immer lese ich nur den Hinweis: "Die Zugangsdaten sollten auf keinen Fall im Quellcode gespeichert werden. Das ist hier nur aus Demonstrationszwecken so gemacht."
Gibt es zu diesem Thema eine Best Practice?
ich bin auf der Suche nach einer Best Practice was die Speicherung von Zugangsdaten angeht.
Zuerst einmal möchte ich darum bitten, dass nicht alle sofort antworten, ich solle erst einmal die SuFu oder Google nutzen. Die Quintessenz ist, dass es nicht möglich ist. Das ist mir klar, denn wann immer eine Applikation Daten im Klartext benötigt, müssen sie irgendwo im Programm lesbar gespeichert werden.
Primär geht es mir um die Speicherung von Zertifikaten und Passwortstrings (wobei die Zertifikate auch auf die Speicherung eines Passwortstrings - einer Passphrase - zurückführbar sind) um Zugang zu Webservices zu bekommen.
Die Lösung das Problem in einen Webservice zu verlagern zählt nicht, denn dort würde ich das Problem auch gerne "lösen".
Der naive Ansatz wäre, die Zugangsdaten in einer Konfigurationsdatei zu speichern und diese mit dem Verfahren meiner Wahl zu verschlüsseln. Der Schlüssel dafür müsste aber auch irgendwo gespeichert werden - das Problem besteht also immer noch.
Ein weiterer Ansatz wäre, die Zugangsdaten mit einem Nutzerpasswort zu verschlüsseln. Dies kommt allerdings nicht infrage, weil man keine weiteren Nutzer anlegen könnte, die das Passwort ebenfalls entschlüsseln könnten. Das ginge nur, wenn ein anderer Nutzer, der das Passwort bereits kennt, das Passwort weitergäbe.
Das einzige was mir jetzt noch einfällt ist die Möglichkeit, das Passwort wie oben beschrieben in eine verschlüsselte Konfigurationsdatei auszulagern und einen Obfuscator zu verwenden, um das Auffinden der Routine zum entschlüsseln etwas unkenntlicher zu machen... Nichtsdestotrotz ließe sich der verschleierte Quellcode aber dennoch zurückgewinnen und man könnte die Anwendung auch noch debuggen...
Nahezu jeder Webservice benötigt doch Zugangsdaten und immer lese ich nur den Hinweis: "Die Zugangsdaten sollten auf keinen Fall im Quellcode gespeichert werden. Das ist hier nur aus Demonstrationszwecken so gemacht."
Gibt es zu diesem Thema eine Best Practice?