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
http://android-developers.blog…-store-access-in-ics.html
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 http://support.google.com/andr…r.py?hl=de&answer=1649774 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).