H
helpSeeker
Neues Mitglied
- 0
Hallo alle zusammen.
Ich habe da einige Fragen und hoffe, dass ihr mir weiterhelfen könnt. Ich möchte, dass ein Smartphone über WebServices (SOAP) mit einer Web-Applikation kommuniziert. Das wichtige dabei ist, dass sich das Smartphone authentifizieren lassen soll, damit der Zugriff überhaupt legitim ist. Die Web-Applikation übernimmt dabei die Überprüfung. Damit das geht muss das Smartphone eine kryptografische Identität (Zertifikate) erhalten, die der Web-Applikation bekannt ist, so dass sie ihr vertrauen kann.
Meine Idee ist also, dass die Web-Applikation Schlüsselmaterial erzeugt, welches nun sicher auf das Smartphone gebracht werden muss. Der Weg, den ich dabei gern nutzen würde, wäre ein Datenkabel (Denn so kann ich gewährleisten, dass das Smartphone, dass angeschlossen ist auch wirklich das Smartphone ist für das ich es halte. Bei einer Übertragung über das Web, wäre das ganze nicht so einfach möglich.)
Damit ist das Medium über das ich übertragen wollen würde klar. Die nächste Frage lautet nun wohin ich übertragen will. Dazu habe ich in Android Developers Blog: Unifying Key Store Access in ICS bereits gelesen, dass es neben dem allgemeinen KeyStore möglich ist anwendungsspezifische KeyStores zu halten.
Desweiteren wird in dem Blogartikel sogar folgendes erwähnt: "authenticate the user to a server via a client certificate" Und das ist genau das ist was ich erreichen möchte.
Was ich mich frage und noch nicht verifizieren konnte ist:
1. Ist der anwendungsspezifische KeyStore sicher? (Ich gehe zurzeit davon aus, dass die darin enthaltenen Schlüssel NUR über die Anwendung selbst genutzt werden können)
2. Kann ich ein Zertifikat über ein Datenkabel in diesen anwendungsspezifischen KeyStore automatisch übertragen? (Eine manuelle Übertragung samt Installation in dem KeyStore würde wohl leider die Akzeptanz der App senken.)
3. Ist es möglich eine App direkt mit Zertifikaten auszustatten? Vielleicht über den anwendungsspezifischen KeyStore. (Das wäre wichtig um das eigene Zertifikat der Web-Applikation in der App vorzuhalten, damit bei späteren Kommunikationen der Kommunikationskanal verschlüsselt werden kann (SSL/TLS))
4. Wie erfahre ich, welche Krypto-Algorithmen mit welchen Schlüssellängen unterstützt werden? Ist das eine Abhängigkeit von Android oder vom Gerät oder sogar von beidem?
Ich möchte mich jetzt schonmal für Antwort bedanken und hoffe, dass mir hier weitergeholfen werden kann. Sollte ich irgendwo etwas übersehen haben, so würde ich mich über einen Verweis auf den entsprechenden Eintrag freuen. Habe ich mich irgendwo unklar ausgedrückt, so würde ich natürlich versuchen mich noch klarer auszudrücken.
Anmerkung zu 2.: Ich habe auf Zertifikate verwenden - Android OS-Hilfe gelesen, wie man Zertifikate benutzen kann. Das liest sich für mich jedoch so als, ob der "allgemeine" KeyStore benutzt wird (Schlecht, da so potentiell jede App darauf zugreifen kann) und man muss das Ganze manuell übertragen und installieren (SEHR SCHLECHT).
Ich habe da einige Fragen und hoffe, dass ihr mir weiterhelfen könnt. Ich möchte, dass ein Smartphone über WebServices (SOAP) mit einer Web-Applikation kommuniziert. Das wichtige dabei ist, dass sich das Smartphone authentifizieren lassen soll, damit der Zugriff überhaupt legitim ist. Die Web-Applikation übernimmt dabei die Überprüfung. Damit das geht muss das Smartphone eine kryptografische Identität (Zertifikate) erhalten, die der Web-Applikation bekannt ist, so dass sie ihr vertrauen kann.
Meine Idee ist also, dass die Web-Applikation Schlüsselmaterial erzeugt, welches nun sicher auf das Smartphone gebracht werden muss. Der Weg, den ich dabei gern nutzen würde, wäre ein Datenkabel (Denn so kann ich gewährleisten, dass das Smartphone, dass angeschlossen ist auch wirklich das Smartphone ist für das ich es halte. Bei einer Übertragung über das Web, wäre das ganze nicht so einfach möglich.)
Damit ist das Medium über das ich übertragen wollen würde klar. Die nächste Frage lautet nun wohin ich übertragen will. Dazu habe ich in Android Developers Blog: Unifying Key Store Access in ICS bereits gelesen, dass es neben dem allgemeinen KeyStore möglich ist anwendungsspezifische KeyStores zu halten.
Desweiteren wird in dem Blogartikel sogar folgendes erwähnt: "authenticate the user to a server via a client certificate" Und das ist genau das ist was ich erreichen möchte.
Was ich mich frage und noch nicht verifizieren konnte ist:
1. Ist der anwendungsspezifische KeyStore sicher? (Ich gehe zurzeit davon aus, dass die darin enthaltenen Schlüssel NUR über die Anwendung selbst genutzt werden können)
2. Kann ich ein Zertifikat über ein Datenkabel in diesen anwendungsspezifischen KeyStore automatisch übertragen? (Eine manuelle Übertragung samt Installation in dem KeyStore würde wohl leider die Akzeptanz der App senken.)
3. Ist es möglich eine App direkt mit Zertifikaten auszustatten? Vielleicht über den anwendungsspezifischen KeyStore. (Das wäre wichtig um das eigene Zertifikat der Web-Applikation in der App vorzuhalten, damit bei späteren Kommunikationen der Kommunikationskanal verschlüsselt werden kann (SSL/TLS))
4. Wie erfahre ich, welche Krypto-Algorithmen mit welchen Schlüssellängen unterstützt werden? Ist das eine Abhängigkeit von Android oder vom Gerät oder sogar von beidem?
Ich möchte mich jetzt schonmal für Antwort bedanken und hoffe, dass mir hier weitergeholfen werden kann. Sollte ich irgendwo etwas übersehen haben, so würde ich mich über einen Verweis auf den entsprechenden Eintrag freuen. Habe ich mich irgendwo unklar ausgedrückt, so würde ich natürlich versuchen mich noch klarer auszudrücken.
Anmerkung zu 2.: Ich habe auf Zertifikate verwenden - Android OS-Hilfe gelesen, wie man Zertifikate benutzen kann. Das liest sich für mich jedoch so als, ob der "allgemeine" KeyStore benutzt wird (Schlecht, da so potentiell jede App darauf zugreifen kann) und man muss das Ganze manuell übertragen und installieren (SEHR SCHLECHT).